Vad är ett instruktionsregister?
När det gäller datormaskinvara är ett instruktionsregister ett element i den centrala behandlingsenheten (CPU) på en dator eller annan enhet som innehar programmeringsinstruktionen som kommer att exekveras i början av nästa klockcykel såsom dikterats av andra delar av CPU. Andra element i CPU, såsom instruktionsavkodaren, förlitar sig på instruktionsregistret för att hålla denna information så att den kan avkodas, lösas och så småningom köras. Med vissa typer av mikroprocessorarkitektur kan det finnas mer än ett instruktionsregister så att flera instruktioner kan bearbetas samtidigt och bilda en monteringslinjestil logik som kallas en pipeline. I allmänhet ges nya instruktioner till instruktionsregistret genom en annan del av CPU-enheten, så kallad programräknaren, som tjänar ett mycket liknande syfte men kan gå vidare till nästa instruktion medan information som instruktionsregistret innehar exekveras.
Ett register är en serie fysiska omkopplare på en mikroprocessor eller kretskort som kan slås på eller stängs av, vilket gör varje switch likvärdig med en bit. När flera av omkopplarna, även kallade spärrar, är länkade kan de lagra binära data såsom nummer, som kan förvandlas till minnesadresser eller instruktionskoder. Inuti CPU kan instruktionsregistret innehålla antingen adressen i datorminnet för instruktionen som utförs eller för effektivitet kan den innehålla själva instruktionen. Denna information överförs till registret genom ett annat register, så kallad programräknare, som i de flesta fall hoppar fram till nästa instruktion som ska utföras efter att den aktuella instruktionen har överförts.
De typer av instruktioner som behandlas av registren är vanligtvis kommandospråkskommandon på låg nivå som så småningom översätts till maskinkod eller byte-kod. Dessa skiljer sig tydligt från instruktioner på programmeringsspråk på högre nivå, eftersom monteringsanvisningarna fungerar i mycket liten, direkt skala. Ett exempel är en rad med hög nivåskod som lägger till två siffror tillsammans och lagrar resultaten i en variabel, som bara tar en enda rad högkodskod att uttrycka. När koden sammanställs kan ett dussin eller fler instruktioner genereras för att slutföra uppgiften, varvid varje instruktion är något enkelt, till exempel att blanda värden mellan RAM-minne (RAM) och ett verktygsregister.
När en instruktion har refererats av instruktionsregistret, överförs den till instruktionsavkodaren så att instruktionen kan omvandlas till maskinkod. Hänvisningar till minnesplatser som kan innehålla variabler eller annan information löses och att information ibland placeras i andra register. Slutligen kommer den faktiska instruktionen att utföras. Under denna tid kommer programräknaren att ökas av CPU för att peka på nästa instruktion som kommer att hållas av instruktionsregistret så att processen kan upprepa tills hela programmet har körts.