Pokud chci realizovat počítač s jednodušších logických IO či přímo z diskrétních součástek (tranzistorů), musím toto zohlednit v konstrukci. Čím méně komponent bude konstrukce mít, tím snáze a rychleji ji postavím a bud v ní také méně chyb. Proto bych jako první konstrukcí začal s obměnou TX-0.
Myšlenkou je co nejjednodušší dekódování instrukcí. Instrukční slovo počítače je rozděleno do dvou polí. První pole obsahuje bity operačního kódu a ve druhém poli se nachází adresa operandu. V případě mikrooperace se v druhém polí nachází mikrokód.
Instrukční dekodér je pak složen ze dvou obvodů, demultiplexeru 1 ze 4 který dekóduje operační kód a posuvného registru který pomáhá generovat pulzy pro mikroinstrukce.
Nyní tedy jak přidělit instrukcím kódy. Máme k dispozici jen dva bity a to jsou tedy čtyři možné kombinace.
Tabulka 29.30.
OpCode | Mnemonic | popis |
---|---|---|
00 | JMP | addr→PC |
01 | ADD | AC+Mem[addr]→AC |
10 | STO | AC→Mem[addr] |
11 | OPR | prověď mikrooperace sériově |
Kód pro instrukci skoku byl zvolen tak aby adresa buňky mohla sloužit jako adresa skoku. Máme-li v AC adresu a chceme-li skočit začít vykonávat instrukce na ní, pak to provedem následujícím kódem:
325: STO 326 326: 0
Instrukce STO na adrese 325 uloží adresu cílového programu v AC do paměťi na adresu 326. Hned poté se pokračuje instrukcí na adrese 326. Protože ta ma oba nejvyšší byty nastaveny na 0 je to instrukce skoku.
Za úvahu stojí, jestli instrukci STO nenahradit instrukcí obdobnou DCA, tedy uloží obsah AC na uvedenou adresu a poté vymaže obsah AC.
Instrukce skoku je podmíněnou instrukcí. Skok se provede v závislosti ob obsahu jednobitového příznaku LINK.
Mikropoerace instrukce OPR je třeba vhodně zvolit. Jednak to musí být ty správné a potom musí být ve správném pořadí aby umožňovali smysluplné kombinace.
1.. ...... CLA (CLAC) .1. ...... CLL (CLC) ... ...... ... NOT AC NOT LINK ROL ROR HALT