funkcia / navrh CPU

j s jarin.hw@gmail.com
Středa Únor 18 13:56:10 CET 2009


Zdravim pritomnych,

premyslal som, ci tomuto nedat nalepku "OT", pretoze tvorba a navrh
vlastneho CPU je zalezitost mimo beznej pracovnej naplne zucastnenych,
ale nakoniec som si povedal, ze je to HW, ba dokonca aj elektronika,
tak je to bez "OT" ;-) Viem, ze niektori z pritomnych (mam na mysli
napriklad Wek-a) sa pokusali o navrh vlastneho CPU z obvodov na urovni
klasickej TTL logiky, tak snad moje otazky nepadnu na neurodnu podu.

Ako z predmetu vyplyva, snazim sa navrhnut si vlastny CPU.
Pravdepodobne nepojde aj o fyzicku realizaciu, ale momentalne
predovsetkym o ideovy navrh, resp. simulaciu.
Predosielam, ze som z mladsich rocnikov, teda navrh digitlanych
obvodov na "nizkej" urovni (rozumej uroven klasickej 74xx, resp. 40xx
logiky) som prilis prakticky nezazil, takze niektore moje otazky mozu
zniet "starym harcovnikom" ako trivialne.
Vo svojom navrhu CPU som sa snazil inspirovat znamymi jadrami, ako
8080 alebo 6800, ale bezne sa clovek stretne s ich hrubym popisom
stylu "toto je ALU a je pripojene k registrom a zbernici", co je
naozaj hruby popis, bez detailov, ako je to "pripojene". Teda tuto
cestu som zavrhol a vydal som sa smerom k jednoduchsim platformam, az
som prisiel k MC14500. To je velmi trivialna jednobitova platforma,
ktora nedokaze robit takmer nic a teda je vynikajuca pre moj ucel. Tu
to bolo pomerne jednoduche a po case som mal nacrtnuty jednoduchy
stavovy stroj riaditelny externymi "instrukciami", teda v zasade to
iste, co v pripade 14500. Tu sa vsak moj nadhlad konci, pretoze
"seriozny" CPU bude zrejme potrebovat rozny pocet instrukcnych cyklov
na rozlicne instrukcie (tak ako je to v pripade napriklad 8080) kvoli
rozlicnym dlzkam instrukcii vyplyvajucich z rozlicnych modov
adresovania (inherentny, s jednoduchovu alebo viacnasobnou dlzkou
slova) a rozlicnych poctov osloveni externych zariadeni alebo pamati.
No a tu moja predstavivost konci a akekolvek knstrukty, ktore by
zodpovedali takejto architekture su viac ako sialene zlozite
(kombinacia dvoch a iacerych stavovych strojov), co ma privadza k
myslienke (alebo aspon dufam), ze sa to da snad urobit aj
jednoduchsie, aj pri akceptovani nerovnakych dlzok instrukcii.
Da sa niekde "okukat" nejaky podrobnejsie popisany navrh CPU? - teda
okrem sialenych projektov s radovo stovkami TTL puzdier (tie zas
prekracuu ramec jednoduchosti - chcem len samotne CPU). Samozrejme
Google ma po desiatkach kliknuti poodkazoval na vsetko, od nakupu
najnovsich CPU do desktopov az po pornostranky (asi to zodpoveda
narokom priemerneho hladaca na Google), len nie na to, co potrebujem -
co je pochopitelne, pretoze nie kazdy si doma v ramci volneho casu
navrhuje CPU.
Zdoraznujem, ze nechcem realizovat CPU v nejakej programovatelnej
logike, vlastne este ani nechcem nic realizovat, ale keby aj, tak
urcite nie v programovatelnej logike, ale v klasickej 74HCxx. Vsetko
su to zatial cisto akademicke uvahy. Ide mi teda z zavere o nejaky
pouzitelne "okukatelny" navrh CPU, mozno aj nejaka literatura,
pravdepodobne starsieho data, resp. nejake postrcenie, ako spracovavat
instrukcie rozlicnej dlzky.

Dakujem,

J.S.



Další informace o konferenci Hw-list