Architettura degli Elaboratori 2 Marzo 2005

Niente appunti o calcolatrici. Risposte nel foglio di bella copia. Massima SINTETICITA', l'eccessiva verbosita' verra' considerata negativamente.
Gli esercizi di programmazione in Mic e in IJVM sono obbligatori
Esercizio 1.
(a)Cos'e' l'Interprete in una macchina astratta?
Identificare nella macchina Mic-1 quali sono le parti che corrispondono alla componente Memoria.
(b) Descrivere la funzionalita' ed il comportamento del circuito di Fig. 3-16.
Esercizio 2
(a) Ci sono tre schemi differenti per realizzare l'Input/Output nei personal computers. Dire quali sono e, brevemente, in cosa consistono.
(b) Descrivere come estendere l'architettura Mic-1 per poter gestire operazioni di I/O con interruzioni e Memory-mapped I/O, avendo come periferiche una tastiera ed una stampante (praticamente come e' descritto nelle note del corso "Esempio (con simulatore) di realizzazione di Input/Outpur con interruzioni").
Esercizio 3
(a) Supponiamo di estendere il linguaggio IJVM con la seguente istruzione
CMPVAR varnum1 varnum2 offset
dove gli argomenti varnum1 e varnum2 sono lunghi 1 byte, mentre offset e' lungo 2 byte.
Scrivere in Mic2 (due!) il codice (da inserire nel programma che realizza l'interprete IJVM) che realizza tale istruzione, la cui semantica e' la seguente:
confronta i valori delle due variabili identificate da varnum1 e varnum2 e, se sono identici, salta all'istuzione distante offset dal byte contente l'opcode dell'istruzione.
Commentare il codice (codice non commentato non verra' valutato).
(b) Supponiate di avere a disposizione in IJVM un'istruzione GETCH che pone sullo Stack il primo elemento del buffer circolare relativo alla realizzazione di I/O con interruzioni di cui al punto 2(b).
Scrivere un metodo in assembly IJVM che restituisca il valore 3n, dove n e' il primo elemento nel buffer circolare (che si assume rappresenti un numero naturale).
Si puo' assumere di avere a disposizione un metodo mult che esegue il prodotto.
Commentare il codice (codice non commentato non verra' valutato).
Esercizio 4
(a) A cosa serve la linea WAIT in un bus sincrono? Cosa la rimpiazza nei bus asincroni?
(b) Considerando la modalita' di implementazione di operazioni di Input/Output in Mic-1 vista a lezione (praticamente il punto 2(b) sopra), 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?