PDA

View Full Version : Microprogrammazione: Non ho capito, potete spiegarmela?


stgww
21-09-2009, 09:29
Ciao, ho appena iniziato Ingegneria Informatica, ma non ho capito quando il prof ha spiegato la microprogrammazione di Wilkes.
Vi allego le diapositive che ha usato il prof, sono disponibili liberamente sul suo sito quindi non penso che sia problema:

http://rapidshare.com/files/282939689/P1algoritmo.pdf

La speigazione si trova a pag 14 ma ho allegato tutto perchè ci sono riferimenti a pagine precedenti facili da individuare e che quindi non sto a sottolineare.

Ringrazio tanto chi ha la pazienza di spiegarmelo;)

_Claudio
21-09-2009, 11:06
In sostanza ti fa vedere la CPU come un programmino su una memoria ROM.

Al programmino-cpu vengono passate le istruzioni da elaborare (eseguire) come una lista ordinata (es. vettore, array):

ad es.
ADD R0, R1, R2
Il programmino-cpu esegue in sostanza l'istruzione:
R0=R1+R2
e poi passa alla seguente.

Però per eseguire queste istruzioni non dispone delle operazioni normali (istruzioni C ad esempio) ma deve aggiornare registri, aggiornare lo stato ecc...

Si compone delle fasi:

La fase di fetch: preleva il codice operativo (ADD) e gli operandi (R0, R1 e R2)
fase di esecuzione: decodifica la parola ADD (tramite il case associato) e capisce che quella parola vuol dire sommare gli operandi seguenti, esegue le operazioni indicate e aggiorna il Program Counter (PC) in modo che successivamente venga prelevata la prossima istruzione. In caso di ADD ad esempio aggiorna il PC all'istruzione successiva, in caso di BRANCH invece aggiorna il PC con l'istruzione relativa alla verifica della condizione di salto.

Ovviamente il calcolatore ha una codifica per ADD, BRANCH, operandi e indirizzi che non è fatta col normale alfabeto (se urli ADD R0, R1, R2 al microfono il calcolatore non capisce che deve sommare R1 e R2) ma in codice binario dove ad esempio 0110 corrisponde alla ADD, 0101 alla SUB... gli operandi vengono tradotti anch'essi in indirizzi binari da mandare sul bus e così via... ecc...

stgww
21-09-2009, 19:19
In sostanza ti fa vedere la CPU come un programmino su una memoria ROM.

Al programmino-cpu vengono passate le istruzioni da elaborare (eseguire) come una lista ordinata (es. vettore, array):

ad es.
ADD R0, R1, R2
Il programmino-cpu esegue in sostanza l'istruzione:
R0=R1+R2
e poi passa alla seguente.

Però per eseguire queste istruzioni non dispone delle operazioni normali (istruzioni C ad esempio) ma deve aggiornare registri, aggiornare lo stato ecc...

Si compone delle fasi:

La fase di fetch: preleva il codice operativo (ADD) e gli operandi (R0, R1 e R2)
fase di esecuzione: decodifica la parola ADD (tramite il case associato) e capisce che quella parola vuol dire sommare gli operandi seguenti, esegue le operazioni indicate e aggiorna il Program Counter (PC) in modo che successivamente venga prelevata la prossima istruzione. In caso di ADD ad esempio aggiorna il PC all'istruzione successiva, in caso di BRANCH invece aggiorna il PC con l'istruzione relativa alla verifica della condizione di salto.

Ovviamente il calcolatore ha una codifica per ADD, BRANCH, operandi e indirizzi che non è fatta col normale alfabeto (se urli ADD R0, R1, R2 al microfono il calcolatore non capisce che deve sommare R1 e R2) ma in codice binario dove ad esempio 0110 corrisponde alla ADD, 0101 alla SUB... gli operandi vengono tradotti anch'essi in indirizzi binari da mandare sul bus e così via... ecc...

Ti ringrazio, spiegato così non è difficile, come mai allora ci sono diecimila passaggi come l'ha spiegato il prof. ? Forse perchè spiega dettagliatamente tutti i passaggi con descrivendo anche tra quali registri passa etc?
Quindi è una cosa da sapere oppure basta sapere concettulamente cosa è la microprogrammazione?

Thx a lot

_Claudio
21-09-2009, 21:56
Ti ringrazio, spiegato così non è difficile, come mai allora ci sono diecimila passaggi come l'ha spiegato il prof. ? Forse perchè spiega dettagliatamente tutti i passaggi con descrivendo anche tra quali registri passa etc?
Quindi è una cosa da sapere oppure basta sapere concettulamente cosa è la microprogrammazione?

Thx a lot

Non saprei a che livello di dettaglio il tuo prof la richiede.

Lì è descritta ogni singola operazione effettuata sui bus e sui registri. Può essere che per svolgere determinati esercizi bisogna conoscere ogni singolo passaggio nel dettaglio (che male non fa), però fossi in te di quella pagina inizierei a studiarmi a grandi linee BENE quello che fa l'algoritmo, per approfondire sei sempre a tempo mentre svolgi esercizi e temi d'esame.

gugoXX
25-09-2009, 23:02
E pensa che alcuni microprocessori come la famiglia 680x0 sono addiruttura nanoprogrammati.
Ogni istruzione macchina viene spaccata in piu' microistruzioni, e ogni microistruzione viene spaccata in piu' nanoistruzioni

stgww
26-09-2009, 09:09
Interessante:) Ho chiesto al prof. e mi me l'ha rispiegata, ora ho capito.
Grazie