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:

  1. 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.
  2. 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)
  3. durante la m-routine viene modificato il mPC
  4. 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.

  1. m-routine del ciclo di prelievo (fetch). L'ultima istruzione è un salto alla procedura di referenziamento degli operandi, oppure alla routine di esecuzione.
  2. m-routine per il referenziamento degli operandi. termina con un salto alla m-routine di esecuzione.
  3. 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:

  1. la rete logica per m-indirizzo invia un segnale di abilitazione alla lettura
  2. la m-istruzione, il cui m-indirizzo è nel m-PC viene posta nel registro di buffer
  3. 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
  4. la rete logica per il m-indirizzo carica il m-indirizzo nel m-PC, calcolato opportunamente

Calcolo del m-indirizzo:

  1. caricare la m-istruzione successiva, incrementando di 1 il PC
  2. saltare ad una nuova m-routine, e caricare il m-PC con il campo indirizzo della m-istruzione corrente
  3. 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

Topic attachments
I Attachment History Action Size Date WhoSorted ascending Comment
GIFgif cu_cablata.gif r1 manage 11.9 K 2002-03-31 - 16:54 GiuseppeMacario  
GIFgif cu_microprogrammata.gif r1 manage 9.2 K 2002-03-31 - 16:55 GiuseppeMacario  
GIFgif cu_microprogrammata2.gif r2 r1 manage 6.8 K 2002-04-02 - 07:26 GiuseppeMacario  
GIFgif stati_cu.gif r3 r2 r1 manage 2.4 K 2002-03-31 - 17:06 GiuseppeMacario  
Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r4 - 2002-04-02 - GiuseppeMacario






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback