Rekisteri (tietokonetekniikka)
Rekisteri tietokonetekniikassa tarkoittaa nopeaa muistialuetta, joka on suorittimen sisäistä muistialuetta.[1] Rekisteri sisältää tyypillisesti vain pienen määrän bittejä (1–64). Rekisterissä olevaa tietoa voidaan käsitellä yhden kellojakson aikana, kun muun muistin käsittely voi vaatia useamman kellojakson ajan.[2] Von Neumannin arkkitehtuurissa tieto on aina tallennettava rekisteriin ennen kuin se voidaan käsitellä.[1] Nykyaikaiset suorittimet hyödyntävät useita rekisterejä. Rekisterit on toteutettu kiikuilla.[3]
Rekisterit mikroprosessoreissa
[muokkaa | muokkaa wikitekstiä]Mikroprosessorit sisältävät tyypillisesti useita eri rekistereitä, joista osa näkyy ohjelmoijalle, mutta osaa käytetään prosessorin sisäiseen toteutukseen. Ohjelmoijan näkökulmasta rekistereihin talletetaan lukuarvoja, jotka ohjaavat konekielikäskyjen toimintaa. Laitteistosuunnittelijan näkökulmasta rekisterit ovat D-kiikkuja, jotka ovat syötteinä piirin sisäiselle tilakoneelle.
Tyypillisissä 32-bittisissä suorittimissa ohjelmoijan näkemät rekisterit ovat 32-bittisiä ja 64-bittisissä suorittimissa vastaavasti 64-bittisiä. Tämä ei kuitenkaan päde aina sillä ns. 32-bittisissä suorittimissa voi esiintyä jopa 128-bittisiä rekistereitä (esimerkiksi SSE2-laajennos).
Rekisterien koot ovat vaihdelleet tietokonearkkitehtuureissa ja esimerkiksi PDP-8 käytti 12-bittistä arkkitehtuuria.[4] IBM S/360:n vaikutuksesta tavusta tuli kahdeksan bittiä ja sanasta tavun monikerta.[5]
Erityskäyttöön tarkoitettuja rekistereitä:[1][6][7]
- Instruction Register (IR): suorituksen alla oleva käsky
- Memory Data Register (MDR): muistista haettua tietoa
- Memory Address Register (MAR): muistista haetun tiedon osoite
- Program Counter (PC): ohjelmalaskuri, ohjelman suorituspaikka, viittaa seuraavaan muistista haettavaan käskyyn
- Stack Pointer (SP): pinon osoitin
- Accumulator (AC): laskuri, joka sisältää ALU-yksikön tuloksen
Lisäksi on joukko yleiskäyttöisiä rekistereitä ohjelman suorituksen avuksi.[7][8]
Rekisterit oheislaitteille
[muokkaa | muokkaa wikitekstiä]Oheislaitteet tarjoavat omaa toiminnallisuuttaan sovelluksille rekisterien avulla. Rekistereitä on kahta lajia tähän tarkoitukseen. Jotkin oheislaitteet tarjoavat tietyn I/O-portin, johon ohjelmoijan täytyy kirjoittaa kaikki käskynsä. Uudemmat laitteet tarjoavat yleensä I/O-muistiavaruuden, jonne ohjelmoija voi kirjoittaa komentonsa. I/O-muistiavaruus näyttää ohjelmoijalle tavalliselta muistilta, mutta I/O-porttien tapauksessa komentojen antaminen ei välttämättä onnistu tavallisilla muistinkirjoituskomennoilla (store), vaan ohjelmoija joutuu käyttämään erikoiskäskyjä suorittimesta.
Signalointirekisterit
[muokkaa | muokkaa wikitekstiä]Signalointirekisteri (engl. strobe register) on rekisteri, johon koskeminen aiheuttaa aina saman toiminnon. Rekisterin lukeminen tai minkä tahansa arvon kirjoittaminen siihen, saa aina aikaan saman toiminnon.
Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ a b c Von Neumann Architecture computerscience.gcse.guru. Viitattu 10.7.2018.
- ↑ The MIPS Register Files cs.uwm.edu. Arkistoitu 6.7.2018. Viitattu 10.7.2018.
- ↑ Donn Stewart: Flip-flops and registers cpuville.com. Viitattu 10.7.2018.
- ↑ Frequently Asked Questions homepage.divms.uiowa.edu. Viitattu 26.7.2017. (englanniksi)
- ↑ Gordon Bell: Rise and Fall of Minicomputers ethw.org. Viitattu 22.1.2020. (englanniksi)
- ↑ CPU Special Registers HN Computing. Viitattu 10.7.2018.
- ↑ a b CPU Registers (PDF) Texas Instruments. Viitattu 10.7.2018.
- ↑ CPU Registers doc.ic.ac.uk. Viitattu 10.7.2018.
Aiheesta muualla
[muokkaa | muokkaa wikitekstiä]- Kuvia tai muita tiedostoja aiheesta Rekisteri (tietokonetekniikka) Wikimedia Commonsissa