Architettura degli Elaboratori 8 Luglio 2003

Niente appunti o calcolatrici. Risposte nel foglio di bella copia. Massima SINTETICITA', l'eccessiva verbosita' verra' considerata negativamente.

Esercizio 1.
(a) Cos'e' una Macchina di Turing? Perche' il modello della Macchina di Turing e' alla base delle architetture di tipo Von Neumann?
(b) Il latch SR e' un circuito combinatorio? Giustificare brevemente.
Dire brevemente perche' in un latch SR la configurazione di input S=1, R=1 non viene utilizzata.
Esercizio 2
(a) Descrivere brevemente il funzionamento di un arbitro del bus centralizzato che usa la "daisy chain".
(b) Tradurre in Mic-1 binario la seguente istruzione Mic-1 mal:
						      	LV=MAR=MDR;rd;if (Z) goto A; else goto B

							
Dove A corrisponde all'indirizzo 111001011.
Esercizio 3
(a) Considerate un metodo Java che prenda in input due parametri formali k e j (numeri interi) e che restituisca (3*k)+4 se j e' uguale a zero e j-1 altrimenti. Scrivere il codice assembly IJVM che traduca tale metodo ed il segmento di codice che traduca la chiamata di tale metodo con parametri attuali 5 e 7.
(b) Discutere brevemente della "predizione dei salti" (branch prediction) statica e di quella dinamica.
Esercizio 4
(a) Dire quali sono le modalita' di indirizzamento utilizzate per le seguenti istruzioni IJVM: BIPUSH, DUP, IADD, IINC. Dire quale istruzioni di IJVM utilizzano l'indirizzamento diretto. Discutere brevemente le risposte.
(b) Cosa significa che in un linguaggio di livello ISA c'e' ortogonalita' tra opcodes e modalita' di indirizzamento? C'e' ortogonalita' in IJVM? Perche'?