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?