1. Fetch: L'indirizzo dell'istruzione (contenuto nel contatore del programma, PC) viene inviato alla memoria. La memoria prende le istruzioni da quell'indirizzo e le inserisce nel registro delle istruzioni (IR). Il PC viene quindi incrementato per indicare l'istruzione successiva.
2. Decodifica: L'unità di controllo decodifica le istruzioni nell'IR. Ciò implica l'identificazione del codice op (parte dell'istruzione che specifica l'operazione da eseguire) e gli operandi (i dati su cui l'operazione agirà). Gli operandi potrebbero essere valori immediati (incorporati nell'istruzione stessa), indirizzi delle posizioni della memoria o numeri di registro.
3. Esegui: Sulla base del codice operativo decodificato, l'unità di controllo dirige le azioni appropriate:
* Operazioni aritmetiche/logiche: Se l'istruzione è un'operazione aritmetica (aggiunta, sub, ecc.) O un'operazione logica (e, o, ecc.), Gli operandi (recuperati dalla memoria o dai registri come specificato) vengono inviati all'unità logica aritmetica (ALU). L'ALU esegue l'operazione e memorizza il risultato in un registro o in una posizione di memoria specificata.
* Operazioni di trasferimento dei dati: Istruzioni come caricamento e archivio spostano i dati tra memoria e registri. Load sposta i dati da una posizione di memoria in un registro; Store sposta i dati da un registro in una posizione di memoria.
* Istruzioni per il flusso di controllo: Queste istruzioni cambiano l'ordine dell'esecuzione delle istruzioni.
* Jump: Il PC viene caricato con un nuovo indirizzo specificato nell'istruzione, causando il salto del programma in una posizione diversa.
* Branch (salto condizionale): Il PC viene caricato con un nuovo indirizzo solo se viene soddisfatta una condizione specificata (ad esempio, il valore di un registro è zero). Altrimenti, l'esecuzione continua con la prossima istruzione.
* Halt: Il processore interrompe l'esecuzione.
Esempio:
Diciamo che abbiamo un'istruzione `Aggiungi R1, R2` (aggiungi il contenuto del registro R1 per registrare R2 e memorizzare il risultato in R2).
1. Fetch: Il PC punta alla posizione della memoria contenente `Aggiungi R1, R2`. Questa istruzione viene recuperata e caricata nell'IR. Il PC è incrementato.
2. Decodifica: L'unità di controllo riconosce "Aggiungi" come Opcode e identifica R1 e R2 come operandi (registri).
3. Esegui: L'unità di controllo dirige le seguenti azioni:
* I contenuti di R1 sono recuperati.
* I contenuti di R2 sono recuperati.
* L'Alu aggiunge i due valori.
* Il risultato è memorizzato in R2.
Il ciclo si ripete quindi con l'istruzione successiva indicata dal PC. I dettagli specifici dell'utilizzo del registro, delle modalità di indirizzamento della memoria e dei formati di istruzioni variano leggermente a seconda della particolare implementazione SAP-1 descritta in un libro di testo o in un corso. Tuttavia, il ciclo di esecuto-decine-decode fondamentale rimane costante.
sistemi © www.354353.com