Hva er et instruksjonsregister?
Når det gjelder maskinvare, er et instruksjonsregister et element i den sentrale prosesseringsenheten (CPU) til en datamaskin eller annen enhet som har programmeringsinstruksjonen som vil bli utført ved starten av den neste klokkesyklusen som diktert av andre deler av PROSESSOR. Andre elementer i CPU, for eksempel instruksjonsdekoderen, er avhengige av instruksjonsregisteret for å holde denne informasjonen slik at den kan dekodes, løses og til slutt utføres. Med noen typer mikroprosessorarkitektur kan det være mer enn ett instruksjonsregister, slik at flere instruksjoner kan behandles samtidig, og danne en samlebåndstil for logikk som er kjent som en rørledning. Generelt blir nye instruksjoner gitt til instruksjonsregisteret gjennom en annen del av CPU-en, kjent som programtelleren, som tjener et veldig likt formål, men kan gå videre til neste instruksjon mens informasjon instruksjonsregisteret har, blir utført.
Et register er en serie fysiske brytere på en mikroprosessor eller kretskort som kan slås av eller på, noe som gjør hver bryter lik en bit. Når flere av bryterne, også kalt sperrer, er koblet sammen, kan de lagre binære data, for eksempel tall, som kan gjøres om til minneadresser eller instruksjonskoder. Innenfor CPU kan instruksjonsregisteret inneholde adressen i datamaskinens minne for instruksjonen som blir utført, eller for effektivitet kan den inneholde selve instruksjonen. Denne informasjonen blir gitt til registeret gjennom et annet register, kjent som programtelleren, som i de fleste tilfeller hopper frem til neste instruksjon som skal utføres etter videreføring av gjeldende instruksjon.
Typene instruksjoner som behandles av registrene er vanligvis kommandospråk-kommandoer på lavt nivå som til slutt blir oversatt til maskinkode eller bytekode. Disse er tydelig forskjellig fra instruksjonene i programmeringsspråk på høyere nivå, fordi monteringsinstruksjonene fungerer i veldig liten, direkte skala. Et eksempel er en linje med høyt nivåkode som legger to tall sammen og lagrer resultatene i en variabel, som bare tar en enkelt linje med høyt nivåkode å uttrykke. Når koden er satt sammen, kan et dusin eller flere instruksjoner genereres for å fullføre oppgaven, med hver instruksjon som noe enkelt, for eksempel å stokke verdier mellom datamaskinens tilfeldig minneminne (RAM) og et verktøyregister.
Når en instruksjon er henvist til av instruksjonsregisteret, sendes den til instruksjonsdekoderen slik at instruksjonen kan konverteres til maskinkode. Henvisninger til minneposisjoner som kan inneholde variabler eller annen informasjon blir løst, og at informasjonen noen ganger blir plassert i andre registre. Til slutt blir selve instruksjonen utført. I løpet av denne tiden blir programtelleren økt av CPU for å peke på neste instruksjon som vil bli holdt av instruksjonsregisteret, slik at prosessen kan gjenta seg til hele programmet har kjørt.