Architettura degli Elaboratori 30 Settembre 2004
Niente appunti o calcolatrici. Risposte nel foglio di bella copia.
Massima SINTETICITA', l'eccessiva verbosita' verra' considerata negativamente.
Un esercizio di Mic e quello di IJVM vanno svolti svolti obbligatoriamente
Esercizio 1.
(a)
Architetture RISC, architetture CISC. Discuterne brevemente. Vantaggi, svantaggi.
(b)
Come puo' venire utilizzato il circuito di Figura 3-19 nell'implementazione
della macchina Mic-1?
Da dove provengono, in tale implementazione, i
vari segnali di input del circuito?
Esercizio 2
(a)
Discutere di come realizzare la componente
memoria nell'architettura Mic-1.
Descrivere anche come la memoria viene
collegata ai segnali che provengono dall'hardware descritto in Figura 4-6.
(b)
Si scriva del codice Mic-2 (due!) che implementi una nuova istruzione IJVM: IMAX.
L'esecuzione di IMAX comporta la rimozione delle due parole in cima allo Stack
e l'inserimento sullo Stack di quella delle due che rappresenta il valore
intero piu' grande.
Esercizio 3
(a)
Tradurre in Java (o in qualsiasi altro linguaggio ad alto livello, anche
in modo non sintatticamente preciso) il seguente metodo assembly IJVM, supponendo che
esista un metodo IJVM di nome "mult" che esegue la moltiplicazione tra due
numeri.
.method cuccuruccuccu (J,K)
ILOAD K
IFEQ End
LDC_W OBJREF
ILOAD J
LDC_W OBJREF
ILOAD J
ILOAD K
BIPUSH 1
ISUB
INVOKEVIRTUAL cuccuruccuccu
INVOKEVIRTUAL mult
End: BIPUSH 1
IRETURN
.end-method
Tradurre poi il metodo assembly IJVM cuccuruccucu in IJVM puro (per quel che si puo';
per quel che non si puo' dare comunque indicazioni).
Cosa calcola cuccuruccuccu?
(b)
Si prenda in considerazione il diagramma di Fig 3-39 e lo si commenti,
descrivendo in modo sufficientemente dettagliato il significato delle varie parti del diagramma e della transazione che esso rappresenta.
Esercizio 4
(a)
In presenza di memorie cache, la scrittura di una parola di memoria
deve essere gestita con tecniche opportune. Perche', quali problemi comporta?
Descrivere brevemente tali tecniche.
(b)
Elencare alcuni modi per implementare operazioni di Input/Output.
Nel corso si e' fatto un esempio dettagliato di una particolare implementazione.
Supponiamo che ad un dato istante si abbia la seguente situazione all'
interno del controller della tastiera:
IP RDY
CSR 0000000000000001 BR 0110111000000000
Che cosa e' probabile che sia successo negli istanti precedenti? Cosa accadra' probabilmente
negli istanti successivi?