Che cos'è un registro delle istruzioni?
In termini di hardware del computer, un registro di istruzioni è un elemento nell'unità di elaborazione centrale (CPU) di un computer o altro dispositivo che contiene le istruzioni di programmazione che verranno eseguite all'inizio del successivo ciclo di clock come dettato da altre parti del PROCESSORE. Altri elementi della CPU, come il decodificatore di istruzioni, si basano sul registro di istruzioni per conservare queste informazioni in modo che possano essere decodificate, risolte ed eventualmente eseguite. Con alcuni tipi di architettura a microprocessore, può esserci più di un registro di istruzioni in modo che più istruzioni possano essere elaborate contemporaneamente, formando uno stile di catena di montaggio noto come pipeline. Generalmente, nuove istruzioni vengono fornite al registro delle istruzioni attraverso un'altra parte della CPU nota come contatore dei programmi, che ha uno scopo molto simile ma può passare all'istruzione successiva mentre vengono eseguite le informazioni contenute nel registro delle istruzioni.
Un registro è una serie di interruttori fisici su un microprocessore o su un circuito che possono essere accesi o spenti, rendendo ogni interruttore equivalente a un bit. Quando sono collegati più switch, chiamati anche latch, sono in grado di memorizzare dati binari come numeri, che possono essere trasformati in indirizzi di memoria o codici di istruzioni. All'interno della CPU, il registro delle istruzioni può contenere l'indirizzo nella memoria del computer dell'istruzione che viene eseguita o, per efficienza, può contenere l'istruzione stessa. Questa informazione viene passata al registro attraverso un altro registro noto come contatore dei programmi, che nella maggior parte dei casi passa all'istruzione successiva da eseguire dopo aver passato l'istruzione corrente.
I tipi di istruzioni elaborate dai registri sono generalmente comandi di linguaggio assembly di basso livello che alla fine vengono tradotti in codice macchina o codice byte. Questi sono nettamente diversi dalle istruzioni nei linguaggi di programmazione di livello superiore, poiché le istruzioni di assemblaggio operano su una scala molto piccola e diretta. Un esempio è una riga di codice di alto livello che aggiunge due numeri insieme e memorizza i risultati in una variabile, che richiede solo una singola riga di codice di alto livello per esprimere. Quando viene compilato il codice, è possibile generare una dozzina o più di istruzioni per completare l'attività, con ogni istruzione che è qualcosa di semplice, come mescolare i valori tra la memoria ad accesso casuale del computer (RAM) e un registro di utilità.
Una volta che un'istruzione viene referenziata dal registro delle istruzioni, viene passata al decodificatore dell'istruzione in modo che l'istruzione possa essere convertita in codice macchina. I riferimenti alle posizioni di memoria che potrebbero contenere variabili o altre informazioni vengono risolti e tali informazioni vengono talvolta inserite in altri registri. Infine, verrà eseguita l'istruzione effettiva. Durante questo tempo, il contatore del programma verrà incrementato dalla CPU per indicare l'istruzione successiva che verrà mantenuta dal registro delle istruzioni in modo che il processo possa essere ripetuto fino a quando l'intero programma non sarà eseguito.