Architettura degli Elaboratori 28 Gennaio 2004

Niente appunti o calcolatrici. Risposte nel foglio di bella copia. Massima SINTETICITA', l'eccessiva verbosita' verra' considerata negativamente.
Un esercizio di Mic e uno di IJVM vanno svolti svolti obbligatoriamente

Esercizio 1. (a) Qual e' la relazione tra macchina di Turing, macchina (architettura) di von Neumann e definizione di macchina astratta imperativa? Perche' non e' possibile definire macchine astratte che non siano imperative?
(b) Presentare brevemente quella che vien chiamata "legge di Moore".
Esercizio 2 (a) Descrivere brevemente l'architettura Mic-4. Tale architettura realizza fasi del ciclo di fetch-execute dell'interprete di una sola macchina astratta? Discutere.
(b) Scrivere il microcodice Mic-2 per implementare in IJVM l'istruzione
	ISET 32-bit-mask
L'istruzione ISET utilizza una maschera a 32 bit che segue il codice operativo e applica la maschera all'elemento che si trova in cima allo Stack, forzando a 1 i bit che sono 1 nella mask e lasciando inalterati gli altri.
Esercizio 3 (a) Scrivere un metodo height-operand-stack in assembly IJVM che calcoli l'altezza che ha l'Operand Stack del metodo che invoca height-operand-stack al momento in cui questo viene invocato.
(b) Scrivere il metodo assembly IJVM che calcoli la funzione ricorsiva H come nella seguente definizione.
	H(x) = if (x=0) then 0 else 1+H(H(x-1)-1)+H(x-1)

Esercizio 4
(a) Abbiamo a disposizione uno spazio di indirizzamento di 28 posizioni. Una parte della memoria e' fisicamente realizzato da una ROM contenente 24 parole di memoria. Vogliamo che tali parole vengano lette dalla CPU come se fossero le posizioni da 8 (23) a 15 (24-1) e da 32 (25) a 47 Disegnare il circuito combinatorio da collegare tra le linee di indirizzo del Bus e il segnale di Chip Select del Chip della ROM (supponendo che il CS sia asserito basso).
(b) Il linguaggio assembly IJVM possiede una direttiva per definire costanti simboliche con la seguente sintassi
.constant
constant1 value1
constant2 value2
.end-constant
Qual e' l'effetto dell elaborazione di una tale direttiva nel processo di assemblaggio di un metodo assembly IJVM che la contenga? In che modo, in un metodo assembly IJVM, e' possibile far riferimento alle costanti simboliche definite da questa direttiva? A cosa corrispondono i valori numerici risultanti dalla traduzione di tali riferimenti simbolici?