U digitalnim kolima, pomerački registar je kaskada flip flopa, koja deli isti klok (clock), u kojoj je izlaz svakog flip-flopa povezan sa "data" ulazom na sledeći flip-flop u lancu, što dovodi do kola koje pomera za jednu poziciju niz bajtova uskladištebig u njemu, pomeranje u (shifting in) podatke predstavljene kao ulaz i pomeranje iz (shifting out) poslednjeg bita u nizu, u svakom prelazu na klok (clock) ulaz. Uopšteno, pomerački registar može biti više dimenzionalan, takav da njegove "data in" (podaci u) i fazni izlazi su sami bitovi nizova: to se jednostavno sprovodi pokretanjem nekoliko pomeračkih registra sa istom dužinom bitova, paralelno. Postoje vrste koje sadrže i serijski i paralelni ulaz i vrste sa serijskim i paralelnim izlazom. Tu su i dvosmerni (bi-directional) pomerački registri koji omogućavaju pomeranje u oba smera: L→R ili R→L. Serijski ulaz i poslednji izlaz pomeračkog registra, mogu da se povežu tako da prave kružni pomerački registar (circular shift register).
Serial-in, serial-out (SISO)
Destruktivno očitavanje
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
Ovo je najjednostavnija vrsta pomeračkog registara. Niz podataka je prikazan na " Data in " i pomera se udesno za po jednu fazu svaki put kada 'Data Advance' na visokom logičkom nivou. Bit na krajnje levoj strani (tj. 'Data In') je pomeren na prvi flip-flop izlaz. Bit na krajnje desnoj strani (tj. 'Data Out') je pomeren napolje i gubi se(izgubljen je).
Podaci se čuvaju nakon svakog flip-flopa na 'Q' izlazu, tako da postoje četiri 'slota' za skladištenje na raspolaganju u ovom aranžmanu , stoga to je 4-bitni registar. Da bi shvatili pomeračke obrasce, zamislite da registar sadrži 0000 (dakle, sva mesta za odlaganje su prazna). 'Data In' predstavlja 1,0,1,1,0,0,0,0 (tim redosledom , sa impulsom na 'Data Advance' svaki put - to se zove clocking ili strobing) u registar, to je rezultat. Leva kolona odgovara krajnje levom izlaznom pinu flip-flopa, i tako dalje. Takođe, u svakom trenutku, ceo registar može da se podesi na nulu tako što se resetuju(R) visoki pinovi.
Ovaj aranžman vrši destruktivno očitavanje - svaki podatak koji je jednom izgubljen treba da se pomeri do(shifted out) krajnje desnog bita.
Ova konfiguracija omogućava konverziju iz serijskog u paralelni format. Шаблон:Data; (podatak) je serijski ulaz, kao što je opisano u SISO odeljku iznad. Kada su podaci jednom upisani, mogu se očitati na svakom izlazu istovremeno, ili može biti pomereno van (енгл.shifted out) i zamenjeno.
U slučajevima gde paralelni izlazi ne bi trebalo da se menjaju tokom procesa serijskog punjenja, poželjno je koristiti zaključan izlaz. U zaključanom pomeračkom registru (kao što je 74595) serijski podatak (serial date) se prvo učitava u unutrašnji pomerački registar, zatim po prijemu učitanih signala, stanje pomeračkog registra se kopira u skup izlaznih registara.
Ova konfiguracija ima unos podataka na linijama D1 kroz D4 u paralelnom formatu. Za pisanje podataka u registar, Piši/Pomeri kontrolna linija mora se održavati na енгл.LOW;. Za prebacivanje podatka, Piši/Pomeri kontrolna linija donosi енгл.HIGH;, a registri su klokovani. Aranžman sada deluje kao SISO pomerački registar, sa D1 kao Шаблон:Data Input; (ulazni podaci). Međutim, sve dok broj ciklusa nije veći od dužine podataka-tekst(data-string), iznazni podatak (Data Output), Q, će biti očitani kao paralelni podaci.
Animacija prikazuje Piši/Pomeri sekvencu, uključujući i unutrašnje stanje pomeračkog registra.
Upotreba
Jedna od najčešćih upotreba pomeračkog registra je za konverziju između serijskih i paralelnih interfejsa. Ovo je korisno za rad na kolima koja rade na grupama bitova paralelno, ali serijski interfejs je jednostavnije konstruisati. Pomerački registri se mogu koristiti kao jednostavna delay(odlaganje) kola. Nekoliko dvosmernih pomeračkih registra (bi-directional shift registers), mogu biti paralelno povezani za hardversku implementaciju steka.
SIPO registri su obično vezani za izlaz mikroprocesora kada je više pinova opste namene Ulaz/Izlaz (I/O) potrebno, nego što je na raspolaganju. Ovo omogućava da se nekoliko binarnih uređaja kontroliše pomoću samo dva ili tri pina, ali sporije nego paralelni I/O-uređaji povezani sa paralelnim izlazima pomeračkog registra, zatim željeno stanje svih ovih uređaja može biti poslato od mikroprocesora korišćenjem jednostruke serial connection(serijske veze). Slično tome, PISO konfiguracija se obično koristi da doda još binarnih ulaza na mikroprocesor nego što je slobodno (dostupni) - svaki binarni ulaz (tj. dugme ili komplikovanije kolo) je priključeno na paralelni ulaz pomeračkog registra, tada se podaci šalju nazad serijski do mikroprocesora, koristeći manji broj redova nego što je prvobitno bilo potrebno.
Pomerački registri se takođe mogu koristiti kao impulsni produžeci (pulse extenders). U poređenju sa monostable 'multivibrators', tajming ne zavisi od sastavnih vrednosti, međutim, to zahteva eksterni clocki i tačnost tajminga je ograničena zbog razuđenosti ovog clock-a.
U ranim računarima, pomerački registri su korišćeni za rukovanje obradom podataka: dva broja koja treba dodati su uskladišteni u dva pomeračka registra i isteklo vreme u aritmetičko i logičku jedinicu (ALU ) sa rezultatom koji je prosleđen nazad na ulaz jednog od pomeračkog registra (akumulator) koji je bio jedan bit duži jer binarni sabirač može samo dovesti do odgovora koji je iste veličine ili jedan bit duži .
Mnogi računarski jezici uključuju uputstva za 'pomeri desno' i 'pomeri levo' podatke u registar, efektivno deleći dva ili množeći sa dva za svako mesto koje je pomereno.
Veoma veliki serijski ulaz, serijski izlaz pomerački registri (hiljade bitova u veličini ) korišćeni su na sličan način u raniji, memorijama za odlaganje, u nekim uređajima koji su izgrađeni ranih 1970-ih . Takva sećanja su ponekad nazivana kružna memorija.[1]
Istorija
Jedan od prvih poznatih primera pokretačkog registra bio je Kolos, mašina za dešifrovanje poruka iz 1940-e godine.[2] Kolos je koristio vakuumske cevi (termoelektronske cevi), tiratrone. Pomerački registar je takođe bio korišćen u IAS mašini, izgrađen od strane Džon fon Nojman-a i drugih sa енгл.Institute for Advanced Study;, u kasnim 1940-im.
Reference
^bitsavers.org, DataPoint 3300 Maintenance Manual, December 1976.