Skiftregister - Shift register

Et skifteregister er en type digitalt kredsløb, der bruger en kaskade af flip-flops, hvor output fra en flip-flop er forbundet til den næste indgang. De deler et enkelt ursignal , som får de data, der er gemt i systemet, til at skifte fra et sted til det næste. Ved at forbinde den sidste flip-flop tilbage til den første, kan dataene cykle inden i shifterne i længere perioder, og i denne form blev de brugt som en form for computerhukommelse . I denne rolle ligner de meget de tidligere forsinkelseslinjehukommelsessystemer og blev meget brugt i slutningen af ​​1960'erne og begyndelsen af ​​1970'erne til at erstatte den form for hukommelse.

I de fleste tilfælde vil flere parallelle skiftregistre blive brugt til at opbygge en større hukommelsespulje kendt som en " bit array ". Data blev gemt i arrayet og læses tilbage parallelt, ofte som et computerord , mens hver bit blev lagret serielt i skiftregistrene. Der er en iboende afvejning i designet af bitarrays; ved at sætte flere flip-flops i træk kan en enkelt skifter gemme flere bits, men kræver flere urcyklusser for at skubbe dataene gennem alle skifterne, før dataene kan læses igen.

Skiftregistre kan have både parallelle og serielle ind- og udgange. Disse er ofte konfigureret som "serial-in, parallel-out" (SIPO) eller som "parallel-in, serial-out" (PISO). Der er også typer, der har både seriel og parallel input og typer med seriel og parallel output. Der er også "tovejs" skiftregistre, der tillader forskydning i begge retninger: L → R eller R → L. Den serielle indgang og den sidste udgang fra et skiftregister kan også tilsluttes for at oprette et "cirkulært skiftregister". Et PIPO-register (parallelt ind, parallelt ud) er meget hurtigt - en output gives inden for en enkelt urimpuls.

Serial-in serial-out (SISO)

Destruktiv aflæsning

Eksempel på brug af et 4-bit skiftregister. Dataindgang er 10110000.
Tid
Udgang 1
Udgang 2
Udgang 3
Udgang 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

Dette er den enkleste form for skiftregistre. Datastrengen præsenteres ved "Data In" og forskydes til højre et trin hver gang "Data Advance" bringes højt . Ved hvert fremskud flyttes biten til venstre (dvs. "Data In") til den første flip-flops output. Biten yderst til højre (dvs. "Data Out") flyttes ud og går tabt.

Dataene lagres efter hver flip-flop på "Q" -outputtet, så der er fire "slots" til rådighed i dette arrangement, hvorfor det er et 4-bit Register. For at give et indtryk af det skiftende mønster, forestil dig, at registret indeholder 0000 (så alle lagerpladser er tomme). Da "Data In" præsenterer 1,0,1,1,0,0,0,0 (i den rækkefølge, med en puls ved "Data Advance" hver gang - dette kaldes ur eller strobing) til registret, er dette resultatet. Den højre søjle svarer til flip-flops output pin, og så videre.

Så det serielle output af hele registeret er 00010110. Det kan ses, at hvis data fortsættes med at input, ville det få nøjagtigt, hvad der blev sat i (10110000), men modregnet i fire "Data Advance" -cyklusser. Dette arrangement er hardwareækvivalenten for en . Også når som helst kan hele registeret sættes til nul ved at bringe reset (R) -stifterne højt.

Dette arrangement udfører destruktiv aflæsning - hvert nulpunkt går tabt, når det er blevet flyttet ud af den højre bit.

Serial-in parallel-out (SIPO)

4-bit SIPO Shift Register.svg

Denne konfiguration tillader konvertering fra serielt til parallelformat. Dataindgang er seriel som beskrevet i SISO-afsnittet ovenfor. Når dataene er blevet klokket ind, kan de enten aflæses ved hver udgang samtidigt, eller de kan flyttes ud.

I denne konfiguration udløses hver flip-flop kant . Alle flip-flops fungerer ved den givne urfrekvens. Hver inputbit går ned til Nth-output efter N-urcyklusser, hvilket fører til parallel output.

I tilfælde, hvor de parallelle udgange ikke skal ændres under den serielle indlæsningsproces, er det ønskeligt at bruge et fastgjort eller bufret output. I et låst skiftregister (såsom 74595 ) indlæses serielle data først i et internt bufferregister, hvorefter buffertregistrets tilstand efter modtagelse af et belastningssignal kopieres til et sæt outputregistre. Generelt er den praktiske anvendelse af serieindgang / paralleludgangsskifteregistrering at konvertere data fra serielt format på en enkelt ledning til parallelformat på flere ledninger.

Parallel-in serial-out (PISO)

Denne konfiguration har datainput på linjerne D1 til D4 i parallelformat, hvor D1 er den mest betydningsfulde bit. For at skrive dataene til registret skal Write / Shift-kontrollinjen holdes LAV. For at forskyde dataene bringes W / S-kontrollinjen HØJ, og registre klokkes. Arrangementet fungerer nu som et PISO-skiftregister med D1 som dataindgangen. Imidlertid, så længe antallet af urcyklusser ikke er mere end længden af ​​datastrengen, vil dataudgangen, Q, være de parallelle data, der læses af i rækkefølge.

4-bit PISO Shift Register

Animationen nedenfor viser skrive- / skift-sekvensen inklusive skiftregisterets interne tilstand.

4-bit PISO Shift Register Seq.gif

Anvendelser

Toshiba TC4015BP - Dual 4-Stage Static Shift Register (med seriel input / parallel output)

En af de mest almindelige anvendelser af et skiftregister er at konvertere mellem serielle og parallelle grænseflader. Dette er nyttigt, da mange kredsløb arbejder parallelt med grupper af bits, men serielle grænseflader er lettere at konstruere. Skiftregistre kan bruges som enkle forsinkelseskredsløb. Flere tovejsskiftregistre kunne også forbindes parallelt til hardwareimplementering af en stak .

SIPO-registre er almindeligt knyttet til output fra mikroprocessorer, når der kræves mere generelle input / output- ben, end der er tilgængelige. Dette gør det muligt at styre flere binære enheder ved hjælp af kun to eller tre ben, men langsommere end ved parallel output. De pågældende enheder er knyttet til skifteregisterets parallelle udgange, og den ønskede tilstand for alle disse enheder kan sendes ud af mikroprocessoren ved hjælp af en enkelt seriel forbindelse. Tilsvarende bruges PISO-konfigurationer ofte til at tilføje flere binære indgange til en mikroprocessor, end der er tilgængelige - hver binærindgang (såsom en knap eller mere kompliceret kredsløb) er knyttet til en parallel indgang i skifteregistret, så sendes dataene tilbage via seriel til mikroprocessoren ved hjælp af flere færre linjer end oprindeligt krævet.

Skiftregistre kan også bruges som pulsforlængere. Sammenlignet med monostabile multivibratorer har timingen ingen afhængighed af komponentværdier, men det kræver eksternt ur, og tidsnøjagtigheden er begrænset af en granularitet af dette ur. Eksempel: Ronja Twister , hvor fem 74164 skiftregistre skaber kernen i timinglogikken på denne måde ( skematisk ).

I tidlige computere blev skiftregistre brugt til at håndtere databehandling: to numre, der skulle tilføjes, blev gemt i to skiftregistre og klokket ud i en aritmetisk og logisk enhed (ALU), hvor resultatet blev ført tilbage til input af et af skiftet registrerer (akkumulatoren), som var en bit længere, da binær tilføjelse kun kan resultere i et svar, der er af samme størrelse eller en bit længere.

Mange computersprog inkluderer instruktioner om at "skifte til højre" og "skifte til venstre" dataene i et register, der effektivt divideres med to eller ganges med to for hvert skiftede sted.

Meget store serielle serielle udskiftningsregistre (tusinder af bit i størrelse) blev brugt på samme måde som den tidligere forsinkelseslinjehukommelse i nogle enheder bygget i begyndelsen af ​​1970'erne. Sådanne minder blev undertiden kaldt "cirkulerende hukommelse". For eksempel lagrede Datapoint 3300- terminalen sin visning af 25 rækker med 72 kolonner med store bogstaver ved hjælp af fireoghalvtreds 200-bit shift-registre, arrangeret i seks spor med ni pakker hver, hvilket giver lager til 1800 seks-bit tegn. Skiftregisterdesignet betød, at rulning af terminalvisningen kunne opnås ved blot at sætte displayoutpausen på pause for at springe en linje over tegn over.

Historie

Et af de første kendte eksempler på et skiftregister var i Mark 2 Colossus , en kodebrydende maskine bygget i 1944. Det var en seks-trins enhed bygget af vakuumrør og tyratroner . Et skiftregister blev også brugt i IAS-maskinen , bygget af John von Neumann og andre ved Institute for Advanced Study i slutningen af ​​1940'erne.

Se også

Referencer