Rekisteri (tietokonetekniikka)

tietokonetekniikassa nopea muisti, joka on suorittimen sisäistä muistialuetta

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

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

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 (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

Aiheesta muualla

🔥 Top keywords: