Posuvný registr - Shift register

Posuvný registr je typ digitálního okruhu pomocí kaskádu žabky , kde je výstup z jednoho flip-flop připojen ke vstupu na další. Sdílejí jediný hodinový signál , který způsobí, že se data uložená v systému posunou z jednoho místa na druhé. Připojením posledního klopného obvodu zpět k prvnímu mohou data po delší dobu cyklovat v řadičích a v této podobě byla použita jako forma paměti počítače . V této roli jsou velmi podobné dřívějším paměťovým systémům zpožďovací linky a byly široce používány na konci 60. a na začátku 70. let k nahrazení této formy paměti.

Ve většině případů by se k vytvoření většího fondu paměti známého jako „ bitové pole “ použilo několik paralelních posuvných registrů . Data byla ukládána do pole a čtena zpět paralelně, často jako počítačové slovo , zatímco každý bit byl ukládán sériově do posuvných registrů. V designu bitových polí je inherentní kompromis; uvedení více klopných obvodů do řady umožňuje jednomu řadiči uložit více bitů, ale vyžaduje více hodinových cyklů, aby se data posunula všemi řadiči, než lze data znovu načíst zpět.

Posuvné registry mohou mít paralelní i sériové vstupy a výstupy. Často se konfigurují jako „sériový vstup, paralelní výstup“ (SIPO) nebo jako „paralelní vstup, sériový výstup“ (PISO). Existují také typy, které mají sériový i paralelní vstup a typy se sériovým a paralelním výstupem. Existují také „obousměrné“ posuvné registry, které umožňují řazení v obou směrech: L → R nebo R → L. Sériový vstup a poslední výstup posuvného registru lze také připojit k vytvoření „kruhového posuvného registru“. Registr PIPO (paralelní vstup, paralelní výstup) je velmi rychlý - výstup je uveden v rámci jediného hodinového pulzu.

Sériový vstup, sériový výstup (SISO)

Destruktivní odečet

Ukázkové použití 4bitového posuvného registru. Vstup dat je 10110000.
Čas
Výstup 1
Výstup 2
Výstup 3
Výstup 4
0 0 0 0 0
1 1 0 0 0
2 0 1 0 0
3 1 0 1 0
4 1 1 0 1
5 0 1 1 0
6 0 0 1 1
7 0 0 0 1
8 0 0 0 0

Jedná se o nejjednodušší druh posuvných registrů. Datový řetězec je prezentován v „Data In“ a je posunut doprava o jednu fázi pokaždé, když je „Data Advance“ vysoký . Při každém postupu se bit zcela vlevo (tj. „Data In“) posune do výstupu prvního klopného obvodu . Bit zcela vpravo (tj. „Data Out“) je posunut ven a ztracen.

Data se ukládají po každém klopném obvodu na výstupu „Q“, takže v tomto uspořádání jsou k dispozici čtyři „sloty“ úložiště, a proto se jedná o 4bitový registr. Chcete-li získat představu o vzoru řazení, představte si, že registr obsahuje 0000 (takže všechny sloty úložiště jsou prázdné). Protože „Data In“ představuje do registru 1,0,1,1,0,0,0,0 (v tomto pořadí, s pulzem při „Data Advance“ pokaždé - tomu se říká taktování nebo strobování), je to výsledek. Pravý sloupec odpovídá výstupnímu kolíku klopného obvodu nejvíce vpravo atd.

Takže sériový výstup celého registru je 00010110. Je vidět, že pokud by se mělo pokračovat v zadávání dat, dostalo by se přesně toho, co bylo vloženo (10110000), ale posunuto o čtyři cykly „Data Advance“. Toto uspořádání je hardwarovým ekvivalentem fronty . Také kdykoli lze celý registr nastavit na nulu tím, že se resetovací (R) piny zvýší.

Toto uspořádání provádí destruktivní odečty - každý údaj je ztracen, jakmile byl posunut z bitů nejvíce vpravo.

Sériový paralelní výstup (SIPO)

4-bit SIPO Shift Register.svg

Tato konfigurace umožňuje převod ze sériového na paralelní formát. Zadávání dat je sériové, jak je popsáno v části SISO výše. Jakmile jsou data taktována, mohou být buď načtena na každém výstupu současně, nebo mohou být posunuta.

V této konfiguraci je každý klopný obvod spouštěn hranou . Všechny klopné obvody fungují při dané hodinové frekvenci. Každý vstupní bit se dostává dolů na N-tý výstup po N taktovacích cyklech, což vede k paralelnímu výstupu.

V případech, kdy by se paralelní výstupy neměly během procesu sériového načítání měnit, je žádoucí použít výstup se západkou nebo s vyrovnávací pamětí . V západkovém posuvném registru (například 74595 ) se sériová data nejprve načtou do interního registru vyrovnávací paměti, poté se po přijetí signálu zátěže zkopíruje stav registru vyrovnávací paměti do sady výstupních registrů. Obecně platí, že praktickou aplikací posuvného registru sériový / paralelní je převod dat ze sériového formátu na jednom vodiči do paralelního formátu na více vodičích.

Paralelní sériový výstup (PISO)

Tato konfigurace má vstup dat na linkách D1 až D4 v paralelním formátu, přičemž D1 je nejvýznamnější bit. Chcete-li zapsat data do registru, musí být ovládací řádek Write / Shift držen LOW. Chcete-li posunout data, je řídicí linka W / S přivedena VYSOKÁ a registry jsou taktovány. Uspořádání nyní funguje jako posuvný registr PISO s D1 jako datový vstup. Pokud však počet hodinových cyklů není větší než délka datového řetězce, datový výstup Q bude paralelním odečítáním dat v uvedeném pořadí.

4bitový registr posunu PISO

Animace níže ukazuje sekvenci zápisu / posunu, včetně vnitřního stavu posuvného registru.

4-bit PISO Shift Register Seq.gif

Použití

Toshiba TC4015BP - duální čtyřstupňový statický posuvný registr (se sériovým vstupem / paralelním výstupem)

Jedním z nejběžnějších použití posuvného registru je převod mezi sériovým a paralelním rozhraním. To je užitečné, protože mnoho obvodů pracuje na skupinách bitů paralelně, ale sériová rozhraní jsou jednodušší. Posuvné registry lze použít jako jednoduché zpožďovací obvody. Několik hardwarových obousměrných posuvných registrů lze také připojit paralelně pro hardwarovou implementaci zásobníku .

Registry SIPO se běžně připojují k výstupu mikroprocesorů, když jsou vyžadovány obecnější vstupní / výstupní piny, než jsou k dispozici. To umožňuje ovládání několika binárních zařízení pomocí pouze dvou nebo tří pinů, ale pomaleji než paralelním výstupem. Dotyčná zařízení jsou připojena k paralelním výstupům posuvného registru a požadovaný stav pro všechna tato zařízení lze odeslat z mikroprocesoru pomocí jediného sériového připojení. Podobně se konfigurace PISO běžně používají k přidání více binárních vstupů do mikroprocesoru, než je k dispozici - každý binární vstup (například tlačítko nebo složitější obvody) je připojen k paralelnímu vstupu posuvného registru, poté jsou data odeslána zpět prostřednictvím sériově k mikroprocesoru s použitím několika méně linek, než bylo původně požadováno.

Posuvné registry lze také použít jako prodlužovače pulzu. Ve srovnání s monostabilními multivibrátory nemá časování žádnou závislost na hodnotách komponent, vyžaduje však externí hodiny a přesnost časování je omezena granularitou těchto hodin. Příklad: Ronja Twister , kde pět posuvných registrů 74164 vytváří jádro časovací logiky tímto způsobem ( schematicky ).

V časných počítačích se posuvné registry používaly ke zpracování zpracování dat: dvě čísla, která se měla přidat, byla uložena do dvou posuvných registrů a vytažena do aritmetické a logické jednotky (ALU), přičemž výsledek byl přiváděn zpět na vstup jedné z posuvných registrů registry (akumulátor), který byl o jeden bit delší, protože binární přidání může mít za následek pouze odpověď stejné velikosti nebo o jeden bit delší.

Mnoho počítačových jazyků obsahuje instrukce k „posunu doprava“ a „posunutí doleva“ dat v registru, což účinně vydělí dvěma nebo vynásobí dvěma pro každé posunuté místo.

Velmi velké posuvné registry serial-in serial-out (velikost tisíců bitů) byly použity podobným způsobem jako dřívější paměť zpožďovací linky v některých zařízeních postavených na začátku 70. let. Takovým vzpomínkám se někdy říkalo „cirkulující paměť“. Například terminál Datapoint 3300 uložil zobrazení 25 řádků 72 sloupců velkých znaků pomocí padesáti čtyř 200bitových posuvných registrů, uspořádaných do šesti stop po devíti balíčcích, což poskytuje úložiště pro 1800 šestibitových znaků. Návrh posuvného registru znamenal, že rolování displeje terminálu lze provést jednoduchým pozastavením výstupu displeje, aby se přeskočil jeden řádek znaků.

Dějiny

Jedním z prvních známých příkladů posuvného registru byl stroj Mark 2 Colossus , stroj na rozbíjení kódů, postavený v roce 1944. Jednalo se o šestistupňové zařízení postavené z elektronek a tyratronů . Posuvný registr byl také použit ve stroji IAS , který postavil John von Neumann a další na Ústavu pro pokročilé studium koncem 40. let.

Viz také

Reference