Rekisteri (tietokonetekniikka)

Antsawikistä
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 ovat 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 Intel Pentium sarjassa).

Erityskäyttöön tarkoitettuja rekistereitä:[1][4][5]

  • 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): 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.[5][6]

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. 1,0 1,1 1,2 Von Neumann Architecture computerscience.gcse.guru. Viitattu 10.7.2018.
  2. The MIPS Register Files cs.uwm.edu. Viitattu 10.7.2018.
  3. Donn Stewart: Flip-flops and registers cpuville.com. Viitattu 10.7.2018.
  4. CPU Special Registers HN Computing. Viitattu 10.7.2018.
  5. 5,0 5,1 CPU Registers (PDF) Texas Instruments. Viitattu 10.7.2018.
  6. CPU Registers doc.ic.ac.uk. Viitattu 10.7.2018.