IFU
Preferibile ad una ALU completa
Per ogni istruzione
PC e' passato attraverso l'ALU e incrementato
PC e' usato per leggere il byte
gli operandi sono letti
l’ALU esegue un calcolo e i risultati sono memorizzati
permette di rimuovere il carico dalla ALU
incrementa il PC indipendentemente
legge i byte del programma prima che siano necessari: Pre-Fetching
- implementa piu' efficientemente operandi wide
- scrive i byte in
- 
MBR1 - 8bit
 
- 
MBR2 - 16bit
 questi nuovi registri non si interfacciano piu' direttamente alla memoria si interfacciano invece alla IFU 
 
- 
 
- scrive i byte in
Composizione
porta di lettura dalla memoria da 4 Byte
Memoria a scorrimento - Shift Register
6 byte: [ ][ ][ ][ ][ ][1] –> [ ][ ][ ][ ][2][1]
- 
Quando richiesto MBR1 (per un goto MBR) Il contenuto della posizione piu' a destra e' spostato in MBR1 
- 
Quando e' richiesto MBR2 (offset) Contenuto delle due posizioni piu' a destra sono invertite e spostate su MBR2 - questo ci permette di non usare
- Byte 1 <<
- Byte1 OR Byte 2
 
 
- questo ci permette di non usare
incrementatore di +1 o +2
Dal PC al PC
IMAR
Accede alla memoria allo stesso modo di MAR - con uno shift << 2
- richiede parole da 4 Byte
In questo modo popola il buffer (Shift Register)
A sua volta connesso ad un incrementatore +1
una scrittura su PC scrive a sua volta su IMAR
PC e' copiato con i 2 bit meno significativi su IMAR
E' questo registro che comunica con la memoria
- al peggio non uso i byte aggiuntivi caricati
- al meglio in quei byte ho valori che usero'