Rekisteri (tietokonetekniikka)

Rekisteri tietokonetekniikassa tarkoittaa nopeaa muistialuetta, joka on suorittimen sisäistä muistialuetta. 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. Von Neumannin arkkitehtuurissa tieto on aina tallennettava rekisteriin ennen kuin se voidaan käsitellä. Nykyaikaiset suorittimet hyödyntävät useita rekisterejä. Rekisterit on toteutettu kiikuilla.

Rekisterit mikroprosessoreissa
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. IBM S/360:n vaikutuksesta tavusta tuli kahdeksan bittiä ja sanasta tavun monikerta.

Erityskäyttöön tarkoitettuja rekistereitä:
 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.

Rekisterit oheislaitteille
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
Signalointirekisteri () on rekisteri, johon koskeminen aiheuttaa aina saman toiminnon. Rekisterin lukeminen tai minkä tahansa arvon kirjoittaminen siihen, saa aina aikaan saman toiminnon.

Lähteet

Aiheesta muualla 

Tietokonetekniikka