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'