La REALIZZAZIONE CABLATA si contrappone ad un'altra filosofia di progetto, quella MICROPROGRAMMATA.
Abbiamo visto che l'Unità di Controllo ha un automa di due stati:
per temporizzare il prelievo e l'esecuzione dell'istruzione, serve un GENERATORE DI FASI,
che modula opportunamente il segnale di clock.

questo è un esempio di unità di controllo realizzata secondo la logica cablata.
In realtà, la realizzazione cablata diventa sconveniente con un elevato numero di bit,
a causa dei troppi stati da gestire.
Un secondo tipo di realizzazione è quella MICROPROGRAMMATA. E' chiamata "micro" perché
esegue una serie di funzioni elementari in modo ordinato. La microprogrammazione è
stata introdotta da Maurice V. Wilkes negli anni '50.

In sostanza, l'idea è quella di progettare, nel calcolatore, un microcalcolatore che
usi gli stessi ingressi e le stesse uscite della realizzazione cablata. Avremo, quindi,
un micro-PC e una memoria ROM contenente il micro-programma.
Come funziona:
- all'inizio del fetch, il mPC punta alla locazione della ROM da cui inizia la sequenza di m-istruzioni che determina l'esecuzione dei passi per il caricamento.
- l'istruzione si trova nell'IR e il codice operativo viene usato per determinare l'indirizzo della m-istruzione per la specifica istruzione (m-routine)
- durante la m-routine viene modificato il mPC
- al termine dell'istruzione il mPC viene riportato a puntare alla locazione della ROM da cui inizia la m-routine di fetch.
La memoria ROM è divisa in sezioni, ognuna contenente una m-routine.
- m-routine del ciclo di prelievo (fetch). L'ultima istruzione è un salto alla procedura di referenziamento degli operandi, oppure alla routine di esecuzione.
- m-routine per il referenziamento degli operandi. termina con un salto alla m-routine di esecuzione.
- inizio del ciclo di esecuzione. termina con un salto alla m-routine specifica dell'istruzione, ad esempio quella per l'AND o per l'ADD. Alla fine di esse c'è un salto alla prima m-istruzione della m-routine di prelievo.
I modi per organizzare la microprogrammazione sono due:
MICROPROGRAMMAZIONE ORIZZONTALE
L'inconveniente sta nel fatto di avere parole lunghe e quindi una memoria ROM
"pesante" e male utilizzata, con molti zeri e pochi collegamenti.
MICROPROGRAMMAZIONE VERTICALE
la prima parte della m-istruzione contiene i codici relativi alle funzioni. Ciò
permette di avere istruzioni più corte e quindi una ROM meglio organizzata, anche
se è necessario l'uso di un decodificatore per i codici.
A questo punto disegnamo nuovamente lo schema della CU:
- la rete logica per m-indirizzo invia un segnale di abilitazione alla lettura
- la m-istruzione, il cui m-indirizzo è nel m-PC viene posta nel registro di buffer
- dal registro di buffer vengono generati i segnali di controllo per moduli operativi (ALU, BUS, MUX-DEMUX) e i segnali per il calcolo del m-indirizzo
- la rete logica per il m-indirizzo carica il m-indirizzo nel m-PC, calcolato opportunamente
Calcolo del m-indirizzo:
- caricare la m-istruzione successiva, incrementando di 1 il PC
- saltare ad una nuova m-routine, e caricare il m-PC con il campo indirizzo della m-istruzione corrente
- saltare ad una procedura corrispondente all'istruzione macchina
Vantaggi della microprogrammazione: facilità di progettazione, realizzazione,
modificazione, manutenzione e controllo
svantaggi: la fase di prelievo è piuttosto lunga, quindi l'esecuzione risulta più lenta.
-- GiuseppeMacario - 31 Mar 2002