Minimal Instruction Set - vlastni CPU.

jiri@bezstarosti.cz jiri@bezstarosti.cz
Čtvrtek Září 23 11:39:11 CEST 2004


No ja bych mel takovy namet i kdyz primo jedna jedina instrukce to nebude
:).


Procesor je von Neumann architektury (pamet dat a programu spolecna) s
rozsahem adres 64kB.

Neexistuji IO porty, vse je pripojeno jako pamet.

Procesor disponuje registry A,B,X,Y a priznaky C,Z,I, kde I je povoleni
preruseni.

Preruseni je jen jednourovnove s odskokem na jednu konkretni adresu a
zasobnik pro toto jen zase pro jednu navratovou adresu a preruseni se da
vyvolat pouze externim signalem (hranou) a to dvemi vstupy, kde oba maji
stejny ucel, ale jeden je maskovan priznakem I (dostupnym instrukci) a druhy
nikoli (ale je vzdy zakazano volani preruseni v preruseni pro oba vstupy
preruseni).

CALL a RETURN jako takove neexistuji, ale daji se nahradit sadou instrukci,
stejne jako operace se zasobnikem, kdyz zasobnik jako takovy take
neexistuje.

Vsechny instrukce se koduji do 8b a zadna nema za sebou zadny dalsi operand,
tedy kazdy bajt se da provest zvlast.

Aby se vesly i literaly, 8b registry se proste naplni po 4b, tedy jako
plneni literalem spodni nebo dolni pulky registru.

Skoky se provadeji tak, ze se naplni k tomu prislusne registry a skoci na
adresu v nich obsazenou. Stejne registry X,Y se pouzivaji pro indexove
adresovani pro vyber a zapis pameti a neexistuje jina moznost, jak z pameti
neco vzit ci do ni ulozit, nez s pouzitim techto indexovych registru.

Vsechny instrukce jsou podminene. Tedy v kazde jsou dva bity vyhrazeny pro
urceni kdy provest, tedy C,NC,Z,NZ.

Protoze vsechny instrukce jsou podminene, existuje i instrukce negace
priznaku, tedy kdyz udelam negaci priznaku pokud je jednickovy, je jasne, ze
vysledkem je vzdy smazany priznak (nebo se da i nahodit) a nasledujici
instrukce muze byt tim padem vzdy provedena.

Matematicke operace jsou ocesany ve stylu "co se tam vejde" :).

Vsechny instrukce do tech 8b nacpat je docela problem a to jeste rozumne k
co nejprimitivnejsimu dekodovani instrukci, ale uz se mi to snad nejak
poveslo (zatim na papire) a zda se mi, ze mi nic nechybi :). Jen to musim po
dlouhe dobe zase vyhrabat, pokud bude zajem o tom trochu podiskutovat, tedy
co je nedomyslene, jak by se to dalo vylepsit atd.

Znovu podotykam, melo by jit o akademickou debatu, takze nic praktickeho od
toho moc nelze cekat :).

--
Jiri Bezstarosti



Další informace o konferenci Hw-list