sei sul sito di Giovanni Fraterno
Il microprocessore
si incarica di gestire
il programma e i suoi dati e di eseguire i calcoli richiesti.
Le azioni
appena elencate rendono necessario che il microprocessore abbia da qualche
parte, al suo interno, qualcosa che gli consenta di prendere
nota di ciò che sta facendo e di
trascrivere i risultati parziali dei suoi calcoli.
Ed infatti
all’interno del microprocesore ci sono una serie di registri,
ed appunto impiegati per tutta quella serie di operazioni che devono essere
svolte con velocità, dati i frequenti accessi richiesti, oppure che servono
alla definizione dello stato del microprocessore
stesso.
Tali registri sono collocati
all’interno del microprocessore, e ciò per
risparmiare il tempo che sarebbe richiesto se si impiegassero
i 3 bus già esaminati.
I registri si dividono in
due categorie:
-
i registri generali
-
i registri speciali.
I registri
generali non hanno uno scopo specifico, ma servono
per mantenere traccia del lavoro in corso.
I registri
speciali, invece, servono a prendere nota di
un particolare aspetto o evento relativo allo stato complessivo del microprocessore.
Nella figura successiva è
riportato un esempio di blocchi interni di un microprocessore.
Il registro PC (program counter) è il registro
contatore di programma, esso serve per conservare l’indirizzo della
locazione successiva di memoria da analizzare.
Il registro MAR (memory address register) è il registro indirizzi,
esso è un registro di parcheggio contenente l’indirizzo che è stato inviato sul
bus indirizzi.
RWR (read write register) è il registro di lettura e
scrittura, il suo scopo è di fungere da area di parcheggio dei dati
-
o che devono essere posti sul bus dati verso l’esterno
del microprocessore
-
o che sono appena arrivati all’interno del microprocessore
per essere manipolati secondo quanto indicato dal programma.
IR (instruction register) è il registro di istruzione, la sua funzione è di conservare il codice
operativo dell’istruzione in corso di esecuzione.
ACC (accumulator) è il registro
accumulatore, esso è necessario nelle operazioni logiche aritmetiche
perché
-
o fa da sorgente di uno degli operandi dell’operazione
da svolgere all’interno dell’ALU
-
o fa da destinazione del risultato dell’operazione
svolta all’interno dell’ALU.
SP (stack pointer) è il puntatore
all’area di stack, questo registro contiene l’indirizzo dell’ultima
locazione occupata dall’area di stack o pila.
F (flag) è il
registro dei flag, in questo registro ogni bit ha un significato specifico visto che ognuno indica il verificarsi o meno di un evento
specifico, la sua consultazione è fondamentale ogni volta che il microprocessore
deve prendere una decisione sul flusso di azioni da eseguire, con i flag che sono
modificati solo da operazioni di tipo logico o aritmetico.
L’unità di controllo UC è il referente
unico del bus di controllo; in base, infatti, ai segnali di controllo
eventualmente attivati, o alle istruzioni date da programma, l’unità di
controllo deve prendere le sue decisioni e attivare le parti coinvolte del
processore, con l’unità di controllo che dunque si preoccupa di identificare e decodificare l’istruzione e di conseguenza eseguire l’azione
relativa.
Per facilitare il riconoscimento e la decodifica, in testa ad ogni
istruzione, è presente il cosiddetto codice
operativo.
L’ALU lavora con la
maggior parte dei registri indicati nella figura sopra riportata, tuttavia il
suo lavoro ha effetto immediato sicuramente sull’accumulatore ACC (che le
fornirà sicuramente uno degli operandi), e sul flag F (che conterrà indicazioni
sul risultato delle operazioni).