Ciclo di fetch-execute

Da Wikipedia, l'enciclopedia libera.

Nel campo dell'informatica, l'espressione ciclo di fetch-execute si riferisce alla dinamicaenerale di funzionamento dei processori dei computer. In termini generali, un processore esegue iterativamente due operazioni: preleva (fetch) una istruzione dalla memoria, e la esegue (execute).

Funzionamento[modifica | modifica wikitesto]

L'istruzione caricata viene quindi codificata ed eseguita. L'esecuzione comporta l'invio di segnali di controllo a un certo numero di unità interne del processore, a seconda del significato dell'istruzione da eseguire. Alla fine del processo il Program Counter (PC) viene cambiato per puntare all'istruzione successiva (se presente).

Funzionamento in dettaglio[modifica | modifica wikitesto]

1. Caricamento dell'istruzione dalla memoria principale[modifica | modifica wikitesto]

La CPU carica l'istruzione dalla memoria principale via bus dati nella memory data register (MDR). Il valore dalla MDR è poi depositato nell'Instruction Register (IR), un circuito che trattiene l'istruzione temporaneamente così che possa essere decodificata ed eseguita.

2. Caricamento dei dati dalla memoria principale[modifica | modifica wikitesto]

Legge l'indirizzo dalla memoria principale se l'istruzione ha un indirizzo indiretto. Dopodiché carica i dati richiesti dalla memoria principale per poi essere processati e depositati all'interno dei registri.

3. Esecuzione dell'istruzione[modifica | modifica wikitesto]

Dall'Instruction Register, l'istruzione è decodificata dall'Unità di Controllo (Control Unit). Se poi le informazioni della decodifica passano come una sequenza di segnali di controllo pertinenti alle funzioni della CPU per eseguire l'azione richiesta dall'istuzione come per esempio leggendo valori dal registro, essi passano all'ALU che li aggiunge insieme e scrive il risultato di nuovo al registro.

Esempio in pseudocodice[modifica | modifica wikitesto]

I dettagli del funzionamento del ciclo dipendono, in genere, dal particolare processore e quindi dal particolare linguaggio macchina. Il seguente estratto di pseudocodice rappresenta, a titolo di esempio, un possibile algoritmo di un nome del ciclo di fetch-execute su un particolare computer. Nel testo si adotteranno le seguenti convenzioni:

   switch (CIR.Codice Operativo – primi 4 bit)      
{/*esecuzioneindirizzo in RI
   (passi come nel fetch)
   f.Registro B = DR      
   g.Registro B = sommatore ALU  (A, B)
   h.AR => bus indirizzi => memoria centrale
   i.DR = registro B      
   j.DR => bus dati =>memoria centrale      
   k.comando S => bus controlli => memoria centrale
   l.esecuzione S
   m.OK esecuzione => bus controlli => CPU
 case 1001(BR): PC = CIR.operando      
 .........
 }/*switch*/
}/*while*/

Bibliografia[modifica | modifica wikitesto]

Andrew S. Tanenbaum, Architettura dei calcolatori. Un approccio strutturale., Amsterdam, Pearson, 2006, ISBN 88-7192-271-9.

Voci correlate[modifica | modifica wikitesto]

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica