29.8.6. Řadiče

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ódnázevpopis
000 aaa aaa aaaADD aSčítání: AC+mem[a]→AC
001 aaa aaa aaaAND aLogický součin: AC∧mem[a]→AC
010 aaa aaa aaaOR aLogický součet: AC∨mem[a]→AC
011 aaa aaa aaaF aSpecializovaná funkce. F(mem[a])
100 aaa aaa aaaST 
101 aaa aaa aaaB aPokračování programu na adrese a.
110 fff fff gggIO f,pIO 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      |
+-------+-----------------+

Tabulka 29.24.

   
kkk ccc ddd dddIF C LOAD r,d 

Ř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.

  1. Pomocí paměti data/programu. Procesor čte a zapisuje do datové paměti řadiče, kterou vidí jako blok vlastní paměti. Procesor zapisuje do paměti programu řadiče, čímž modifikuje funkčnost řadiče.
  2. Pomocí stavového slova řadiče. Stav řadiče je prezentován jedním stavovým slovem. Bity tohoto slova svou hodnotou vypovídají o jednotlivých částech řadiče a jejich stavu.
  3. Pomocí řídících instrukcí. Procesor má možnost několika málo instrukcemi: zastavit řadič, spusutit řadič.

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ódnázevpopis
110 aaa aaa aaaSTART aAdresa je nahrána do čítače instrukcí řadiče a tento je spuštěn.
001 xxx xxx xxxSTOPŘadič je zastaven po dokončení právě vykonávané instrukce.
010 xxx xxx xxxCONTOpětovné spuštění bez zadání adresy. Řadič pokračuje v práci tam kde přestal.
Licence Creative Commons
Elektronika a počítače, jejímž autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .