Dan's Brain

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
      1. MBR1

        • 8bit
      2. MBR2

        • 16bit

        questi nuovi registri non si interfacciano piu' direttamente alla memoria si interfacciano invece alla IFU

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

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'

Questo permette di automatizzare il ciclo di Fetch Main1

Links to this note