Jedním ze způsobů „vylepšení“ architektury 12-ti bitových počítačů by mohl být systém řadičů.
Řadič je samostatný procesor se specializovaným hardare a s vlastním programem. Funkcionalita řadiče je dána jednak jeho konstrukcí, použitím a propojením speciálních funkčních bloků. Druhým způsobem modifikace funkcionality je programování řadiče. Tedy ty funkce které je třeba vykonávat často a rychle jsou realizovány specializovaným hardware. Zbytek je realizován programem. Tím získáme vysoký výkon specializovaných operací při velké variabilitě funkčnosti dané programem.
Řadič tvoří most mezi vnějším prostředím a počítačem. Je to takový komunikační kanál na jehož vnějším konci je V/V zařízení. Druhou stranou je připojen přímo do paměti počítače. Je toho dosaženo buďto tak, že řadič sdílí část operační paměti počítače. Nebo pro zvýšení výkonu má vlastní paměť, kterou může druhou branou adresovat počítač. V takové konfiguraci může být počítač připojen k většímu počtu plně samostatně fungujících a nijak se neovlivňujících řadičů pracujících každy na plný výkon.
Pro jednoduchost navázání na architekturu počítače je šířka slova v paměti řadiče stejná jako šířka slova hlavního počítače, Tedy 12 bitů. Jejich adresní schopnosti jsou ovšem jednodušší. Tato jednoduchost je dána tím že řadič je specializovaný na nepotřebuje velký objem paměti a na druhou stranu umožní zjednodušit instrukční soubor a elektroniku řadiče tak aby při tom podávala velký výkon. Předpokládám jen instrukce dvou základních tvarů, jak je uvedeno na obrázku.
Obrázek 29.17. Instrukční formáty pro 12-ti bitový řadič
11 0 +-------+------------+ Obecný tvar instrukce s adresou. | Kód | Adresa | Kóduje běžné instrukce a instrukci F. +-------+------+-----+ | 110 | ff | p | IO instrukce +-------+---+--+-----+ | 111 | g | μkód | Mikroinstrukce bez adresy. +-------+---+--------+
Instrukční soubor je velmi inspirován počítačem PDP-8. Hlavním důvodem je jednoduchost hardware řadiče. Předpokládám více specializovaných řadičů v počítači a není důvod aby jejich elektronika byla zbytečně komplikovaná tam kde nemá být. Výkon řadiče je v specializovaném hardware a ne v univerzálním procesoru.
Tabulka 29.23.
kód | název | popis |
---|---|---|
000 aaa aaa aaa | ADD a | Sčítání: AC+mem[a]→AC |
001 aaa aaa aaa | AND a | Logický součin: AC∧mem[a]→AC |
010 aaa aaa aaa | OR a | Logický součet: AC∨mem[a]→AC |
011 aaa aaa aaa | F a | Specializovaná funkce. F(mem[a]) |
100 aaa aaa aaa | ST | |
101 aaa aaa aaa | B a | Pokračování programu na adrese a . |
110 fff fff ggg | IO f,p | IO operace f na portu p |
111 gbb bbb bbb | μCODE | μbits. První bit nebo bity mohou specifikovat mikroinstrukční řetězec. |
Instrukce ADD umožňuje realizovat základní aritmetické instrukce jako je sčítání, odčítání, inkrementace a dekrementace.
// Inkrementace. .data ONE: DW 1 // 0001 .code ADD ONE // AC+1→AC // Dekerementace .DATA NEGONE: DW -1 // 7777 .CODE ADD NEGONE // AC-1→AC
Jinou ukázkou řadiče je více mikroprogramování a méně univerzálních instrukcí.
Obrázek 29.18. Instrukční formáty pro 12-ti bitový μřadič
11 0 +-----+----------+--------+ | kód | podmínka | data | +-----+----------+--------+ | kód | μbits | +-------+-----------------+
Řadič má buďto oddělený prostor instrukční a datové paměti. Tedy taková Hardwardská architektura. Nebo mohou být tyto prostory namapovány přes sebe. Řadiče jsou technologicky samostatné procesory, ale jejich instrukční sada je zjednodušená a jsou orientovány na jednodušší nebo specializované úkoly. Nejedná se tedy o univerzální procsory.
Použití řadiče může být k obsluze vybraných periferií, či přímo jako „kanálového“ procesoru zajišťujícího samostatnou komunikaci, přenost a předzpracování dat pro vlastní procesor.
Hlavní procesor komunikuje s řadičem několika málo jednoduchými způsoby.
Z hlediska architektury jsou řadiče specializované koprocesory se sdílenou pamětí.
Řídicí slovo, tedy způsob ovládání řadiče procesorem může vypadat například takto:
11 0 +--------+--------------+ | příkaz | adresa | +--------+--------------+
Řídicí instrukce jsou velmi jednoduché a je jich velmi málo. Potřebujeme jen instrukce pro spuštění řadiče a jeho zastavení. Protože startovací adresa programu řadiče je součástí startovací instrukce, můžeme tak použitím odlišných startovacích adres volad odlišné funkce řadiče dané jeho aktuálním programem.
kód | název | popis |
---|---|---|
110 aaa aaa aaa | START a | Adresa je nahrána do čítače instrukcí řadiče a tento je spuštěn. |
001 xxx xxx xxx | STOP | Řadič je zastaven po dokončení právě vykonávané instrukce. |
010 xxx xxx xxx | CONT | Opětovné spuštění bez zadání adresy. Řadič pokračuje v práci tam kde přestal. |