Concetti Chiave
- La fase di fetch prevede il caricamento dell'indirizzo dal contatore di programma nel memory address register e l'invio del contenuto al read write register.
- Il contenuto del read write register viene inviato al registro istruzione se è un codice operativo, altrimenti va sul bus interno, gestito da un demultiplexer.
- La decodifica del codice operativo determina quanti byte aggiuntivi devono essere letti dalla memoria per completare l'istruzione all'interno del processore.
- Il processo di fetch degli operandi richiede ulteriori cicli di lettura dalla memoria, con gli operandi inviati direttamente sul bus interno senza passare per il registro IR.
- Dopo ogni fase di fetch, il contatore di programma viene incrementato, assicurando una corretta sequenza di esecuzione delle istruzioni.
Fase di fetch
Durante la fase di fetch,l'unita di controllo provvede a far caricare nel memory address register (MAR) ,e quindi sull'address bus,l'indirizzo contenuto nel contatore di programma (PC).
Il contenuto della locazione indicata arriva ,tramite il bus dati,nel read write register (RWR).
L'accesso ai bus avviene attraverso due registri temporanei che abbiamo indicato con AB e DB. Poiché il contenuto di RWR corrisponde a un codice operativo,sarà inviato al registro istruzione ;nel caso si trattasse di un generico operando ,passerebbe direttamente sul bus interno .si potrebbe immaginare tale operazione gestita da un demultiplexer. La fase di fetch si conclude con l'aggiornamento del contatore di programma.
Decodifica del codice operativo
Poiché la lunghezza delle istruzioni e variabile in base al tipo di azioni che deve essere svolta ,una semplice decodifica del codice operativo servirà all'UC per decidere quanti altri byte dovranno essere letti dalla memoria per fare in modo che l'istruzione si disponibile completamente all'interno del processore. E' questa la fase di decodifica del codice operativo o ,semplicemente,la fase di decode.
Come vedremo ,e proprio il modo in cui deve essere realizzata al fase dio decode a costituire una notevole discriminante nella progettazione di un sistema di elaborazione.
Fetch degli operandi
In seguito alla decodifica del codice operativo,potrebbero essere necessari altri cicli di lettura dalla memoria per il riempimento degli eventuali operandi. Questa e ,a tutti gli effetti ,una fase operativa a se stante ,che viene indicata come fetch degli operandi. L'unica differenza rispetto al fetch del codice operativo sta nel fatto che gli operandi non vengono memorizzati nel registro IR, ma da RWR vengono immediatamente dirottati sul bus interno tramite il quale raggiungeranno la corretta destinazione. Dopo ogni fetch,il contatore di programma viene incrementato.
Domande da interrogazione
- Qual è il ruolo del contatore di programma (PC) durante la fase di fetch?
- Come avviene la decodifica del codice operativo?
- Qual è la differenza tra la fase di fetch del codice operativo e quella degli operandi?
Durante la fase di fetch, il contatore di programma (PC) fornisce l'indirizzo della locazione di memoria da caricare nel memory address register (MAR), permettendo così l'accesso al codice operativo tramite il bus dati.
La decodifica del codice operativo consente all'unità di controllo (UC) di determinare quanti byte aggiuntivi devono essere letti dalla memoria per completare l'istruzione, essendo una fase cruciale nella progettazione di un sistema di elaborazione.
La differenza principale è che, mentre il codice operativo viene memorizzato nel registro istruzione (IR), gli operandi vengono immediatamente dirottati sul bus interno senza passare per l'IR, e il contatore di programma viene incrementato dopo ogni fetch.