Concetti Chiave
- Durante la fase di fetch, l'unità di controllo carica nel memory address register (MAR) l'indirizzo contenuto nel contatore di programma (PC).
- Il contenuto della locazione indicata viene trasferito nel read write register (RWR) tramite il bus dati e poi inviato al registro istruzione o al bus interno.
- La fase di fetch si conclude con l'aggiornamento del contatore di programma, preparandosi per la fase successiva.
- La fase di decode determina quanti altri byte devono essere letti dalla memoria per completare l'istruzione nel processore.
- Il fetch degli operandi è un'operazione separata che avviene dopo la decodifica, con gli operandi inviati direttamente sul bus interno.
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.
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.
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.