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?