Posuvný registr - Shift register - Wikipedia
A posuvný registr je typ digitální obvod pomocí kaskády žabky kde je výstup jednoho klopného obvodu spojen se vstupem dalšího. Sdílejí jeden hodinový signál, což způsobí přesun dat uložených v systému 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 formě byla použita jako forma paměť počítače. V této roli jsou velmi podobné předchozím paměť zpožděné linky systémy 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 několik paralelních posuvných registrů použilo k vytvoření většího fondu paměti známého jakobitové pole Data byla uložena do pole a čtena zpět paralelně, často jako počítačové slovo, zatímco každý bit byl uložen sériově v posuvných registrech. V designu bitových polí existuje 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 obojí paralelní a seriál 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
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 při každém vyvolání „Data Advance“ se posune o jednu fázi doprava vysoký. Při každém postupu se bit zcela vlevo (tj. „Data In“) posune do prvního žabky výstup. Bit zcela vpravo (tj. „Data Out“) je posunut ven a ztracen.
Data se ukládají po každém žabky na výstupu „Q“, takže v tomto uspořádání jsou k dispozici čtyři „sloty“ úložiště, proto se jedná o 4bitový registr. Chcete-li si udělat představu o vzoru řazení, představte si, že registr obsahuje 0000 (takže všechny paměťové sloty 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.
Sériový výstup celého registru je tedy 00001101. Je vidět, že pokud by se v zadávání dat mělo pokračovat, dostalo by se přesně toho, co bylo vloženo (10110000), ale posunuto o čtyři cykly „Data Advance“. Toto uspořádání je ekvivalentem hardwaru a fronta. Celý registr lze také kdykoli nastavit na nulu tím, že se vynulují resetovací (R) piny.
Toto uspořádání funguje destruktivní odečet - každý údaj je ztracen, jakmile byl posunut z nejpravějšího bitu.
Sériový paralelní výstup (SIPO)

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 hrana spuštěna. 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 cyklech hodin, 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 západku nebo vyrovnávací paměť výstup. V západkovém posuvném registru (například 74595 ) sériová data se 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í.

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

Použití

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 a zásobník.
Registry SIPO jsou běžně připojeny k výstupu mikroprocesorů, pokud jich je více univerzální vstup / výstup kolíky jsou povinné, 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 o několik linek méně, 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 (schematické ).
V časných počítačích se posuvné registry používaly ke zpracování dat: dvě čísla, která se měla přidat, byla uložena ve dvou posuvných registrech a vytažena do aritmetická a logická jednotka (ALU) přičemž výsledek je přiváděn zpět na vstup jednoho z posuvných registrů (akumulátoru), 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.
Podobně jako dříve byly použity velmi velké posuvné registry serial-in serial-out (velikost tisíců bitů) paměť zpožděné 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 Datový bod 3300 terminál uložil své 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, poskytujících ú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ů.[1]
Dějiny
Jeden z prvních známých příkladů posuvného registru byl v Mark 2 Kolos, stroj na rozbíjení kódů postavený v roce 1944. Bylo to šestistupňové zařízení postavené z vakuové trubky a tyratrony.[2] Posuvný registr byl také použit v Stroj IAS, postaven John von Neumann a další v Institut pro pokročilé studium na konci 40. let.
Viz také
- Paměť zpožděného řádku
- Posuvný registr lineární zpětné vazby (LFSR)
- Počítadlo zvonění
- SerDes (Serializer / Deserializer)
- Sériová periferní sběrnice rozhraní
- Vyhledávací tabulka posuvného registru (SRL)
- Kruhový nárazník
Reference
- ^ bitsavers.org, Příručka pro údržbu DataPoint 3300, Prosinec 1976.
- ^ Květiny, Thomas H. (1983), „Design Colossus“, Annals of the History of Computing, 5 (3): 246, doi:10.1109 / MAHC.1983.10079