Come funziona una CPU: progetto dell’unità di controllo microprogrammata #0.4.6.2

L’unità di controllo microprogrammata ha una maggiore flessibilità di progetto, al prezzo di un maggiore costo hardware e di una minore velocità. L’unità di controllo cablata è modellata come una Macchina a Stati Finiti (Finite State Machine o FSM). La microprogrammazione fu proposta per la prima volta da M.V. Wilkes nel 1951 (articolo “The Best Way to Design an Automatic Calculating Machine”).

Negli articoli precedenti abbiamo visto:

L’insieme di segnali di controllo prodotti dalla UC ad un certo istante viene denominato parola di controllo (Control Word, CW), o microistruzione.

Ciascuna istruzione corrisponde ad una sequenza di microistruzioni.

L’insieme delle microistruzioni (microprogramma) è memorizzato in una Memoria apposita (Memoria di microcodice) in un formato prefissato.

Moltissimi processori CISC includono un’UC microprogrammata.

Architettura e funzionamento

Ecco qui la struttura (semplificata) dell’unità di controllo microprogrammata.

microprogrammata

Si esegue una lettura dalla Memoria di microcodice (la quale è una ROM), utilizzando il contenuto del Micro Program Counter (µPC) come indirizzo. Il µPC contiene infatti l’indirizzo della parola (cioè la stringa di bit situata all’interno della Memoria di microcodice) costituita dai bit che devono fungere da segnali di controllo per l’unità di elaborazione (e/o per i moduli esterni alla CPU) in quello specifico stato (nonché periodo di Clock). Ogni parola è costituita da tanti bit quanti sono i segnali di controllo che l’UC deve pilotare. La Memoria di microcodice contiene tante parole quante sono le righe della tabella degli stati dell’UC. È opportuno notare, anche sulla base dell’esempio riportato in figura, che il µPC non sempre s’incrementa ad ogni periodo di Clock! L’UC potrebbe infatti rimanere in uno stesso stato (nell’esempio appena citato tale stato è il 2) per diversi periodi di Clock, magari in attesa di ricevere determinati segnali dall’esterno (come il segnale MFC).

La parola corrispondente viene caricata nel Micro Instruction Register (µIR).

Il contenuto del µIR pilota i segnali di controllo per l’unità di elaborazione e per la logica di generazione dell’indirizzo della successiva microistruzione.

Tale logica genera un nuovo indirizzo, sulla base anche dei segnali provenienti dall’esterno (ad esempio dall’Instruction Register), e fa in modo che tale indirizzo sia corretto (ovvero che corrisponda all’indirizzo della parola i cui bit, nello stato corrente, vanno inviati all’unità di elaborazione come segnali di controllo).

Tutte queste operazioni vengono eseguite in un solo colpo di Clock.

Generazione dell’indirizzo della microistruzione successiva 

L’indirizzo della microistruzione successiva può essere (a seconda delle microistruzioni):

  • quello successivo;
  • un indirizzo fornito dall’esterno (ad esempio l’inizio del microcodice dell’esecuzione di una nuova istruzione);
  • un indirizzo di salto (condizionato o incondizionato);

Se non si hanno microistruzioni di salto, l’indirizzo è dato da quello della microistruzione corrente, opportunamente incrementato.

Nel caso generale può essere specificato in vari modi:

  • ogni microistruzione ha un campo aggiuntivo, che viene utilizzato dalle microistruzioni di salto per
    contenere l’indirizzo di salto;
  • le microistruzioni di salto hanno un formato diverso da quello delle microistruzioni normali;

Caratteristiche dell’unità di controllo microprogrammata

  • Flessibilità:
    • modificare un’istruzione o aggiungerne di nuove comporta semplicemente la modifica del contenuto della Memoria di microprogramma. Questo tipo di UC risulta quindi anche più facile da progettare;
  • Velocità:
    • l’esecuzione di un’istruzione richiede una serie di accessi alla Memoria di microprogramma. Un’UC microprogrammata è quindi in genere più lenta di un’UC cablata (per via della ridotta frequenza del Clock);
  • Costo:
    • la presenza della Memoria di microprogramma e della relativa logica fa crescere il costo in termini di hardware;

Iscriviti ai nostri gruppi Telegram

Link utili

Seguici per non perdere le prossime novità!

Simone Candido è un ragazzo appassionato del mondo tech nella sua totalità. Simone ama immedesimarsi in nuove esperienze, la sua filosofia si basa sulla irrefrenabile voglia di ampliare a 360° le sue conoscenze abbracciando tutti i campi del sapere, in quanto ritiene che il sapere umano sia il connubio perfetto tra cultura umanistica e scientifica.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.