Come funziona una CPU: microprogrammazione verticale ed orizzontale differenze #0.4.6.2.1

La microprogrammazione è una tecnica utilizzata per l’implementazione dell’unità di controllo della CPU, il dispositivo in grado di controllare l’esecuzione di istruzioni in linguaggio macchina, di interpretare ogni istruzione in linguaggio macchina tramite una sequenza di micro-operazioni eseguite direttamente dall’hardware, e di generare nella giusta sequenza i segnali di controllo che provocano l’esecuzione di ogni operazione elementare.

Negli articoli precedenti abbiamo visto:

Nel caso più semplice (microprogrammazione orizzontale), le microistruzioni contengono un bit per ogni segnale di controllo.

Si ottiene così massima velocità di esecuzione: i segnali di controllo sono pilotati direttamente, senza bisogno di manipolazioni.

Esistono tuttavia alcune controindicazioni:

  • la lunghezza delle microistruzioni può divenire eccessiva;
  • talune combinazioni di valori dei segnali di controllo possono non verificarsi mai;

La microprogrammazione orizzontale viene utilizzata quando le microistruzioni sono composte da un numero elevato di bit e quindi possono essere svolti molti compiti in parallelo, generando svariati segnali di controllo contemporaneamente;

microprogrammazione

In questo caso ogni microistruzione memorizza in maniera codificata le informazioni da inviare ai segnali di controllo.

I segnali di controllo sono suddivisi in gruppi in base alla loro compatibilità. Due segnali si dicono compatibili se non vengono mai attivati insieme.

Ogni gruppo di segnali di controllo corrisponde ad un gruppo di bit (Control Field) della singola microistruzione, il cui valore è codificato.

Il valore di ciascun segnale di controllo viene quindi prodotto dalle uscite di un Decoder, pilotato dai bit della microistruzione.

In questo modo le microistruzioni hanno quindi una lunghezza più ridotta, in quanto per l’i-esimo gruppo (composto da ni segnali) si memorizzano log2 n_i bit. Ne risulta un’unità di controllo di dimensioni ridotte (per via delle ridotte dimensioni della Memoria di microcodice) ma più lenta (per via del ritardo associato a ciascun Decoder). Questa soluzione progettistica è adottata di frequente!

La microprogrammazione verticale si utilizza quando le microistruzioni presentano un numero limitato di bit. La microprogrammazione verticale conduce ad una minore velocità di funzionamento, in quanto, diminuendo il numero di bit, si ha bisogno di più microistruzioni per specificare tutte le operazioni svolte con una sola microistruzione “orizzontale”.

microprogrammazione

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.