Uz zase vlastni CPU :).

Jiří Sloupenský jsloupensky@ktuo.cz
Středa Říjen 6 21:49:51 CEST 2004


Tohle řešení ale opravdu žere dost paměti. Když jsem v roce 1975 chodil 
na katedru počítačů
, tak jsme s panem docentem Pluháčkem navrhovali na cvičeních počítač 
POP, který měl jen 1 kW paměti.
Instrukce byla pevné délky, 16 bitová , 4 bity Op. kód,  10 bitů adresy 
, jeden bit příznak nepřímého
adresování a jeden příznak, který si už nepamatuju. ( Je to fakt už 
dlouho).  Za semestr jsme nakreslili
z hradel NAND a NOR celý počítač , bohužel jen teoreticky, udělat to 
tehdy nešlo. Pak jsme na to taky
v  assembleru psali programy. Asi to byly nejzajímavější cvičení, která 
jsem na ČVUT absolvoval.
  Dneska by to asi šlo do nějakého XILINXU vypálit. Ta skripta mám ještě 
někde ve sklepě.
 Nechcete to někdo zkusit ?

J. Sloupenský

jiri@bezstarosti.cz wrote:

>Zdravim jich.
>
>Chtel bych se s nimi podelit o jednu myslenku, jak take muze vypadat takovy
>procesor.
>
>Predstavme si, ze chceme napriklad udelat 32bit CPU.
>
>Instrukce pak vypada tak, ze prvnich 32b obsahuje adresu jednoho operandu,
>dalsich 32b adresu druheho operandu, dalsich 32b adresu kam se skoci kdyz
>neni priznak a poslednich 32b adresu kam se skoci kdyz priznak je. Protoze
>ale potrebujeme uz po nabrani operandu vedet, jakou ze to provadime
>instrukci, zkratime adresy operandu na 28b a tim si v nich uvolnime celkem
>8bitu k definici co s temi operandy delat. Takze nabereme z pameti 32b, coz
>je adresa (a cast kodu instrukce) a nabereme obsah teto adresy do CPU. Pak
>nabereme druhy operand a tim mame co je to za instrukci a nacteme z adresy
>co jsme ziskali druhy operand. Provedeme na nich treba soucet (dle
>instrukcniho kodu, onech 8b popisu instrukce) a ulozime na adresu druheho
>operandu - adresova sbernice se od posledniho cteni k zapisu nezmenila. Ted
>podle priznaku nabereme bud obsah dalsi adresy ci jeste o jednu dal adresy a
>postavime se na ni pro dalsi instrukci. Spoustu veci neni potreba ani drzet,
>ty adresy operandu se proste jen prenesou z datove sbernice na adresovou,
>cimz se zase setri zdroje.
>
>Takze ted potrebujeme na kazdou instrukci 4 adresy. Kdyz dame pravidlo, ze
>vsechny instrukce musi byt na adresach delitelnych 4mi, nemusime PC vubec
>pricitat, ale jen si na tvrdo nastavujeme "00","01","10" a "11" na konec
>adresy.
>
>Hloupe na tom je, ze kdyz se neda skakat na adresu jinou nez delitelnou 4mi,
>jsou volne bity v adresach kam se skace a mohla by tam byt zakodovana
>instrukce, jenze ty cteme zrovna na konec a to jeste jen jednu z nich, coz
>setri hardware a zvysuje rychlost :).
>
>Protoze jak jsem to navrhl je typ instrukce dan (pro tento pripad) 8bity,
>snadno se do toho zakomponuje i to, podle jakeho priznaku ma ta ktera
>instrukce skakat, tedy nemusi to byt vzdy jen podle C, ale take podle Z atd.
>
>Pekne je, ze processor pak nema vlastne zadne registry (zase uspora zdroju),
>jak je z beznych CPU zname a tudiz i odskok do preruseni se spokoji s
>uschovanim adresy, kam se ma skocit v prave provadene instrukci, kdy doslo k
>preruseni. Stejne tak neni potreba inkrementovat PC, protoze kazda instrukce
>jej po sobe jen nastavi. Tim ma kazda instrukce podmineny rozskok a program
>nemusi byt v pameti vubec adresu za adresou, ale klidne libovolne na
>preskacku. Pokud chci skocit nepodminene, dam obe adresy skoku stejne.
>
>Protoze vsechno adresovani operandu je pres pevne danou adresu, da se na
>takovou adresu predpripravit literal (spolu se zavedenim programu) a tedy
>ani s tim neni problem.
>
>Dalsi veci je, ze lze do RAM snadno pripravit instrukci, protoze pamet dat a
>programu je tataz a na ni skocit pro pocitane skoky ci pro brani dat poli
>pres ukazatel atp.
>
>Uznavam, zere to dost pameti, prece jen 4x 32b na instrukci a cist v kazde
>instrukci 5x a 1x zapisovat take neni malo, ale ucelem je vytvorit neco
>opravdu funkcniho a snad i s vyhradami pouzitelneho, pricmez ale co
>nejjednodussiho a tohle myslim cesta k tomuto cili je. A jeste je to co se
>tyce sirky sbernic skalovatelne :). Nakonec vetsi pamet dnes uz takovy
>problem neni. Uznavam, je to silne zjednoduseni CPU na ukor pameti, ale
>vzdycky je neco za neco :).
>
>Jen se mne proboha neptejte k cemu to je. No prece k odlehceni mozku od te
>hnusne elektroniky :).
>
>--
>Jiri Bezstarosti
>_______________________________________________
>HW-list mailing list  -  sponsored by www.HW.cz
>HW-list@mailman.nethouse.cz
>http://mailman.nethouse.cz/mailman/listinfo/hw-list
>
>
>  
>



Další informace o konferenci Hw-list