4 bitový počítač
Moderátor: Moderátoři
Třeba teď umíš tou maticí dekódovat maximálně 8 instrukcí Fetch + instrukce.
V čítači IRC máš použito na dekódování jen 3 bity.
Když použiješ bit0 na čítání mikroinstrukcí a bit1-3 na dekódování, tak se Ti tam vejde 8 instrukcí + NOP a odpadne dekódování /WRIR, protože se bude dělat vždy, když je IRC0=0 a také /CIR nebude potřeba.
Ale musím Tě pochválit, už teď je to mnohem lepší než PIP-2
Když D3=0 tak se opakuje NOP
když D3=1 tak se dodělá instrukce
/ROMCS generuje přímo /RDRAM přidat 7408, nebo diodu do matice.
Máš tam volné výstupy ROM, můžeš udělat signály /WRA, /WRB, /WRO přímo.
/RDI, /RDALU můžeš zapojit přímo na dekodér ROM, zůstanou Ti tam jen dva signály /RDRAM a /RDA a ty můžeš budit přímo D5, D4.
Odpadne celej dekodér DECA, DECB.
Klíčovat to můžeš společně na ROMCS.
Dvojitý hodiny nejsou třeba, můžeš je zrušit a STEP bude chodit po jedné mikroinstrukci.
Ono by se toho ještě našlo, je to jako Rubikova kostka
Čítač mikroprogramu dobrej, čítač programu dobrej, ale architektura ALU mi připadá strašně těžkopádná.
Tak to zase nechápu já, kdo generuje /RDRAM když je ROM zakázaná ?lesana87 píše:1 = dioda v matici, negací ušetřím až 16 diod.danhard píše:D3 u instrukce nemusíš negovat.
Když D3=0 tak se opakuje NOP
když D3=1 tak se dodělá instrukce
To nechápu, je to ROMCS, ROM je povolená log. 1 a když je ROM zakázaná, tak je generovaný signál /RDRAM, co je na tom potřeba měnit?danhard píše:/ROMCS generuje přímo /RDRAM přidat 7408, nebo diodu do matice.
A negace na vstupu IRC dělá akorát změnu kódování instrukcí, nic jiného.
Počítal jsem, že na IRC půjde beze změn D0-D3 a sudý nible bude NOP a lichý nible bude instrukce.
Když je D0=0 (po resetu) tak je ROM zakázaná a generuje se přímo z IRC Q0 /RDRAM, pokud se načte D0=1, tak se skočí na IRC Q0=1 a generuje se cykl podle obsahu ROMCS, pokud se načte D0=0, tak se skočí na IRC Q0=0, tj. provedl se NOP a začne se provádět další FETCH.
ROM se dekóduje z IRC Q1-Q3 a Q0 je ROMCS. ROM je tam teď 8x8bitů.
Pokud by tam byla MH74188, tak samozřejmě použiju celou paměť, tj. 16 instrukcí x 2 takty + FETCH na začátku.
IRC bude plně obsazený, takže musím předřadit čítač mikroinstrukcí mod 3, který bude mít stavy 00, 10, 11.
Ve stavu 00 budu generovat přímo FETCH, ve stavech 10, 11 funkci podle ROM. IRC nebude čítat, stačí synchronní registr, třeba 74HC175.
Bude tam 16 instrukcí s pevnou délkou 3 takty, pokud potřebuji NOP, tak ho přiřadím jako instrukci.
Pokud chceš dělat "repliku" PIP-2, tak to musíš udělat stejně blbě, jinak to není replika
Funkční instrukce jsou stejný jako před tím 0-7, instrukce 8-F jsou NOP. Instrukce jsou uložené v programové PROM a ta má výstup negovaný (dioda v matici = log 1), aby prázdná matice generovala samé NOPy, dřív, teď by to neplatilo. D3 je negovaný, aby v matici nemusely být u normálních instrukcí diody na D3.
Je to synchronní replika, PIP-2SE.
A nevidím důvod, aby každá instrukce trvala 3 takty, u většiny je to plýtvání a tím skokem na NOP se to krásně vyřeší, nostalcomp nebyl zase úplně blbej, jak se tu snažíš prezentovat.
Nicméně proč Tě zajímá D3 když je to matice 8x8 ?
A opakuju, není to žádná replika, když to není udělané tak blbě, jako PIP-2.
Zůstala z toho jen ta blbá aritmetika
Instrukce by trvala 3 takty, abych z mikrořadiče dostal maximum možného, samozřejmě na dva takty to můžeš zkrátit, použiješ pak jen 1/2 ROM, nebo jdeš přes NOP a ve výsledku mají instrukce 3 takty, je to celkem jedno.
Proměnná délka instrukcí 2/3 takty Tě stojí 1 nezávislý bit ROM.
V PIP-2 trvá instrukce LDA 4 takty, tak co Ti na tom vadí ?
Krom toho 3 takty je minimum pro JMP na 8 bit adresu, pokud tam bude větší paměť programu, než 16 nible.
Fázi FETCH na začátku mikroprogramu mají všechny ty "staré vykopávky" jak jsi to označila. Není to patent mistra nostalcompa, ale když to prostuduješ, jak to tam napatlal a jak se tím prsí ? tak bohužel musím konstatovat, že je to uživatel bez hlubších znalostí.
Samozřejmě, že fázi fetch má každá instrukce, ale vypůjčit si jí z NOPu je určitě nostalcompův výmysl. Instrukce má trvat nejkratší možnej čas. S 74188 může mít instrukce klidně i 4 takty, když bude fetch (NOP) dvoutaktový (8 bitové instrukce nebo 4 bit + 4bit parametr).
I při replikování dochází k určitým mutacím, tak se na tom slově furt nevož. Napodobenina, když je replika takový problém.