Nihkeregister

Allikas: Vikipeedia

Nihkeregister (inglise shift register) on arvutitehnikas kasutatav digitaalne elektroonikalülitus, mida kasutatakse bittide hoidmiseks ning kus toimub sisendisse antud bittide nihutamine väljundisse.

Ehitus ja tööpõhimõte[muuda | muuda lähteteksti]

D-triger

Nihkeregistrid koosnevad järjestikku ühendatud sünkroonsetest D-trigeritest. Kuigi mõnede integraallülituste tootjate nihkeregistrite elektriskeemidest võib leida nii RS- kui ka JK-trigereid, on need siiski ühendatud D-trigerile ekvivalentset ülesannet täitma.[1]

Nihkeregistrites kasutatavad trigerid kujutavad endast ühe biti suurusi mälusid, mis hoiavad oma hetkelist väärtust väljundis pingena.

Lisaks andmete sisendile D (data), väljundile Q ja inverteeritud väljundile Q on neil alati olemas kolmnurgaga tähistatud taktsignaali sisend (clock). Vahel kasutatakse ka asünkroonseid eelseadistamise ning lähtestamise sisendeid S (set) ja R (reset), mis seavad olenemata teistest sisenditest väljundi vastavalt kõrgesse ja madalasse olekusse.[1]

Taktimpulsi saabumisel vaadatakse, mis väärtus on sisendis, ning uuendatakse selle väärtusega väljundi olekut. Vastavalt trigeri taktsignaali sisendi polaarsusele võib uuendamine toimuda taktimpulsi tõusva või langeva frondi hetkel. Nihkeregistrites on iga järgneva trigeri sisend ühendatud talle eelneva trigeri väljundiga. Kõik trigerid jagavad ühte taktsignaali, mille abil takteeritakse nihutamist. Kuna taktimpulss jõuab kõikidesse trigeritesse üheaegselt, toimub kõikide trigerite väljundis olevate väärtuste uuendamine samal hetkel. See tekitab efekti, kus iga taktimpulsi ajal liiguvad kõikide trigerite väljundis olevad väärtused ühe võrra edasi.

Nihkeregistri andmemahutavus on võrdeline üksteisega järjestikku ühendatud trigerite arvuga.

Vastavalt sellele, mis kujul andmeid sisendist loetakse ja väljundisse antakse, saab nihkeregistreid liigitada viieks.[2] Nende kohta on üldiselt kasutusel ka ingliskeelsed lühendid.

  1. Järjestiksisend järjestikväljund ehk SISO (serial in serial out)
  2. Paralleelsisend järjestikväljund ehk PISO (parallel in serial out)
  3. Järjestiksisend paralleelväljund ehk SIPO (serial in parallel out)
  4. Universaalne paralleelsisend paralleelväljund ehk PIPO (parallel in parallel out)
  5. Ringloendur (ring counter)

Järjestiksisend järjestikväljund[muuda | muuda lähteteksti]

Järjestiksisend järjestikväljund nihkeregister on kõige lihtsama ehitusega nihkeregister.

4-bitine järjestiksisend järjestikväljund tüüpi D-trigeritest koostatud nihkeregister
Olekutabel
Taktimpulss QA QB QC QD, Väljund
1. 1
2. 1
3. 1
4. 1



Olekutabelist on näha sisendisse antud väärtuse 1 liikumine väljundisse. Sisendis olev loogiline 1 nihutatakse esimese taktimpulsi tõusva frondi ajal trigeri A väljundisse. Järgmise taktimpulsiga liigub A väljundis olev väärtus edasi trigerisse B. Nihutamine toimub edasi, kuni neljandal taktimpulsil jõuab esialgselt sisendisse antud väärtus väljundisse.

Järjestiksisend paralleelväljund[muuda | muuda lähteteksti]

Järjestiksisend paralleelväljund nihkeregister on ehituselt väga sarnane järjestiksisend järjestikväljund nihkeregistriga. Ainus erinevus on see, et paralleelväljund nihkeregistri väljundiks pole ainult viimase trigeri väljund, vaid kõikide trigerite väljundid.[1]

4-bitine järjestiksisend paralleelväljund nihkeregister
Olekutabel
Taktimpulss Q1 Q2 Q3 Q4
1. 1
2. 1 1
3. 0 1 1
4. 0 0 1 1

Olekutabel kirjeldab olukorda, kus järjestiksignaal 0011 muudetakse paralleelseks. Kui esimesel taktimpulsil anda sisendisse väärtus 1, liigub see trigeri A väljundisse. Järgmisel taktimpulsil anname sisendisse jälle väärtuse 1. Nüüd liigub trigerisse A 1 ning enne A-s olnud 1 trigerisse B. Järgneval kahel taktimpulsil anname sisendisse väärtuse 0. Nüüd trigerites A ja B olevad ühed nihkuvad kaks kohta edasi ning ongi saavutatud olukord, kus Q1=Q2=0, Q3=Q4=1.

Paralleelsisend järjestikväljund[muuda | muuda lähteteksti]

Paralleelsisend järjestikväljund nihkeregister muudab paralleelselt sisenditesse antud loogilised väärtused järjestiksignaaliks. Jooniselt võib näha, et seda tüüpi nihkeregistri elektriskeem sisaldab peale trigerite ka AND- ja OR-loogikaväravaid.[1] Need on vajalikud, kuna iga trigeri sisendil on kaks signaaliallikat: paralleelselt trigeritesse laetavad väärtused sisenditest S1 kuni S4 ning nihutamisel tekkivad väärtused eelnevate trigerite väljunditest. Sisendi LAE NIHUTA väärtus määrabki ära, kummast allikast signaal trigeri sisendisse pääseb. Kui LAE NIHUTA on madalas olekus, valitakse sisend paralleelsetest sisenditest, kui kõrges olekus, siis järjestiksisendist või eelmistest registritest.

4-bitine paralleelsisend järjestikväljund nihkeregister
Olekutabel
Taktimpulss QA QB QC QD, Väljund
1. 1 0 0 1
2. 1 0 0
3. 1 0
4. 1



Olekutabel kujutab olukorda, kus sisendites S1 kuni S4 on väärtused 1001. Et väärtusi paralleelselt trigeritesse laadida, olgu sisend LAE NIHUTA madal. Esimese taktimpulsi ajal laetakse sisendites S1 kuni S4 olevad väärtused trigerite A kuni D väljunditesse. Et väärtusi järjestikkujul edasi nihutada, paneme LAE NIHUTA sisendi kõrgeks. Järgnevate taktimpulsside ajal toimub andmete nihutamine paremale, mille käigus kõik sisendisse antud väärtused jõuavad ühekaupa väljundisse.

Universaalne paralleelsisend paralleelväljund[muuda | muuda lähteteksti]

Paralleelsisend paralleelväljund nihkeregister on ehituselt väga sarnane paralleelsisend järjestikväljund nihkeregistriga. Ainus erinevus on see, et paralleelväljund nihkeregistri väljundiks pole ainult viimase trigeri väljund, vaid kõikide trigerite väljundid.[1]

4-bitine paralleelsisend paralleelväljund nihkeregister

Tööpõhimõttelt on seda tüüpi nihkeregister identne eelmisega, kuid väljundit saab lugeda nii järjestikkujul väljundist V4 kui ka paralleelselt väljunditest V1 kuni V4.


Universaalne nihkeregister kujutab endast nihkeregistrit, mida saab kasutada kõikides eelmainitud konfiguratsioonides.[1] See tähendab, et universaalsel nihkeregistril on sisend ja väljund mõlemad saadaval nii järjestik- kui ka paralleelkujul. Kusjuures nihutamine saab toimuda tänu loogikaväravatest koostatud ahelale nii paremale kui ka vasakule.[1] Üks selliste omadustega nihkeregister on näiteks integraallülitus 74HC194.[3]

Ringloendur[muuda | muuda lähteteksti]

Ringloendur on nihkeregister, mille väljund on ühendatud sisendiga. Trigeritesse alglaadimise ajal laetud väärtused läbivad nihkeregistri, liiguvad väljundisse jõudes uuesti sisendisse ning sama tegevus kordub taktimpulsside olemasolul lõpmatuseni.[1] Ringloendurite puhul on väga oluline trigerite alglaadimine õigete andmetega, kuna trigeri väljundid jäävad toitepinge külgeühendamisel määramata olekusse.[4] Ringloendureid jagatakse vastavalt tagasisidestatud signaali polaarsusele kaheks.

Otsese tagasisidega ringloendur, mille korral nihkeregistri sisend on ühendatud viimase trigeri väljundiga.[5]

4-bitine otsese tagasisidega ringloendur.
Olekutabel
Taktimpulss Q1 Q2 Q3 Q4
0. Algseis 1 0 0 0
1. 0 1 0 0
2. 0 0 1 0
3. 0 0 0 1
4. 1 0 0 0
...

Olekutabel kirjeldab ringloenduri tööd. Eeldame, et trigerid nihkeregistris on alglaetud väärtustega Q1=1, Q2=Q3=Q4=0. Siis nihkub trigeris A olev loogiline 1 iga taktsignaaliga ühe koha võrra edasi, kuni jõuab trigerisse D. Kuna trigeri D väljund on ühendatud trigeri A sisendiga, liigub väärtus 1 uuesti sisendisse ning kogu protsess kordub.


Inverteeritud tagasisidega ringloendur ehk Johnsoni loendur, mille korral nihkeregistri sisend on ühendatud viimase trigeri inverteeritud väljundiga.[5]

4-bitine inverteeritud tagasisidega ringloendur ehk Johnsoni loendur.
Olekutabel
Taktimpulss Q1 Q2 Q3 Q4
0. Algseis 0 0 0 0
1. 1 0 0 0
2. 1 1 0 0
3. 1 1 1 0
4. 1 1 1 1
5. 0 1 1 1
6. 0 0 1 1
7. 0 0 0 1
8. 0 0 0 0
...

Olekutabel kirjeldab ringloenduri tööd. Eeldame, et kõik trigerid nihkeregistris on alglaetud loogilise väärtusega 0. Esimese taktsignaaliga liigub viimase trigeri inverteeritud väljundist väärtus 1 trigerisse A. Saame väljundite Q1 kuni Q4 väärtusteks 1000. Järgmisel taktsignaalil liigub uuesti viimase trigeri väljundis oleva väärtuse inversioon esimesse trigerisse, saame väljunditesse väärtused 1100. Eelpool kirjeldatud protsess kordub kuni väärtusteni 1111. Edasi nihkub jälle viimase trigeri väljundis oleva väärtuse inversioon ehk 0 trigerisse A, saame väärtused 0111. Protsess kordub kuni väärtusteni 0000, mil hakatakse uuesti ühtesid esimesele kohale viima.

Kasutusvaldkonnad[muuda | muuda lähteteksti]

Mikroprotsessorites kasutatakse nihkeregistreid binaararitmeetiliste tehete sooritamiseks ning andmete järjestikkujult paralleelkujule teisendamiseks.[6].

Järjestikandmeliinid kasutavad nihkeregistreid andmete paralleelkujult järjestikkujule teisendamisel.[2]

Paljud mikrokontrolleri külge ühendatavad seadmed: analoog-digitaalmuundurid, digitaal-analoogmuundurid, ekraanidraiverid ja mälud kasutavad nihkeregistreid, et vajalike sisendite ja väljundite hulka vähendada.[2]

Eraldiseisvate integraallülitustena kasutatakse nihkeregistreid mikrokontrolleri digitaalsete väljundite arvu suurendamiseks.[7] Üks levinud integraallülitus selle tarbeks on 8-bitine järjestiksisend paralleelväljundi tüüpi nihkeregister 74HC595, mis sisaldab peale nihkeregistri ka väljundandmete hoiustamise registrit ning 3-olekulisi väljundpuhvreid.[8]

Järjestiksisend järjestikväljund nihkeregistreid kasutatakse digitaalsetes süsteemides signaali hilistuse tekitamiseks.[4]

Ajalugu[muuda | muuda lähteteksti]

Nihkeregistrid võeti kasutusele 1944. aastal valminud superarvutil Colossus Mark 2,[9] mida kasutati Teise maailmasõja ajal andmete dekrüpteerimiseks. Tänu nihkeregistrite kasutamisele suurenes arvuti arvutusvõimsus võrreldes eelmise versiooniga Colossus Mark 1 viis korda, ulatudes 25 000 sümbolini sekundis.[9]

Vaata ka[muuda | muuda lähteteksti]

Viited[muuda | muuda lähteteksti]

  1. 1,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7 Anil K. Maini. Digital electronics: principles, devices and applications Chichester: Wiley, 2008, lk 398–449
  2. 2,0 2,1 2,2 "Shift registers: Introduction". www.allaboutcircuits.com. Kasutatud 05.10.2014. Inglise.
  3. "74HC/HCT194: 4-bit bidirectional universal shift register". www.datasheetcatalog.com. Kasutatud 05.10.2014. Inglise.
  4. 4,0 4,1 Ronald J. Tocci, Neal S. Widmer Digital systems: principles and applications Upper Saddle River (N.J.); Columbus (Ohio): Prentice Hall, 2001, lk 372, 191
  5. 5,0 5,1 "Synchronous counters – Final report: Ring Counters". London Imperial College, Department of Computing, SURPRISE 96 Surveys. Kasutatud 05.10.2014. Inglise.
  6. Vallaste, H.: Nihkeregister e-Teatmik: IT ja sidetehnika seletav sõnaraamat, 2014
  7. "Serial to Parallel Shifting-Out with a 74HC595". http://arduino.cc. Kasutatud 06.10.2014. Inglise.
  8. "74HC595; 74HCT595: Product data sheet". http://www.nxp.com. Kasutatud 06.10.2014. Inglise.
  9. 9,0 9,1 Flowers Thomas H. D-Day at Bletchley Park Harvnb: Copeland, 2006, lk 78–83

Välislingid[muuda | muuda lähteteksti]