Rekisteri (tietokonetekniikka)

Wikipediasta
Siirry navigaatioon Siirry hakuun

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ä]

  1. a b c Von Neumann Architecture computerscience.gcse.guru. Viitattu 10.7.2018.
  2. The MIPS Register Files cs.uwm.edu. Arkistoitu 6.7.2018. Viitattu 10.7.2018.
  3. Donn Stewart: Flip-flops and registers cpuville.com. Viitattu 10.7.2018.
  4. Frequently Asked Questions homepage.divms.uiowa.edu. Viitattu 26.7.2017. (englanniksi)
  5. Gordon Bell: Rise and Fall of Minicomputers ethw.org. Viitattu 22.1.2020. (englanniksi)
  6. CPU Special Registers HN Computing. Viitattu 10.7.2018.
  7. a b CPU Registers (PDF) Texas Instruments. Viitattu 10.7.2018.
  8. CPU Registers doc.ic.ac.uk. Viitattu 10.7.2018.

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]