Architettura degli elaboratori, 18 Settembre 2007
Non e' ammesso l'uso di
alcun testo, appunti o calcolatrici. Le risposte vanno scritte
nel foglio di bella copia.
Si raccomanda la massima SINTETICITA'. L'eccessiva verbosita' verra'
considerata negativamente.
I risultati (sia positivi che negativi) verranno
registrati sul portale CEA non appena corretti i compiti.
Chi non intenda accettare un voto basso o desideri fare un orale in caso di voto basso
(se quest'ultimo e' comunque maggiore di 24), deve comunicarlo per tempo al docente
o all'assistente in aula.
Gli iscritti alla laurea
triennale debbono essersi prenotati sul portale studenti del nostro
ateneo, in caso cio' non sia stato fatto fatelo immediatamente presente
al docente o all'assistente in aula.
Esercizio 1
Fornire le definizioni di: Circuito, Circuito Combinatorio, Circuito Sequenziale, Circuito Sequenziale
Sincrono, Circuito Sequenziale Asincrono.
Esercizio 2
Descrivere lo schema di arbitraggio centralizzato daisy chaining (collegamento a festone) per i bus.
Esercizio 3
Scrivere il codice piu' corto possibile in IJVM puro che esegua un loop infinito
che non fa' nulla. Giustificare la risposta.
Esercizio 4
Tenendo presente la realizzazione Hw di Mic-1 presentata dal testo,
dire se tale Hw potrebbe realizzare, senza modifica alcuna, anche
istruzioni Mic-1 contenenti salti condizionali del tipo
if (N or Z) goto et1; else goto et2
Giustificare la risposta.
Esercizio 5
Scrivere un metodo assembly IJVM tale che
la rappresentazione in esadecimale dei byte che vengono inseriti nella Method Area
a seguito della sua traduzione sia:
0x00 0x05 0x00 0x03 0x15 0x02 0x59 0x36 0x06 0x84 0x06 0x04 0x10 0x03 0x59 0x9B 0x00 0x05 0x15 0x07 0x60 0xAC
Esercizio 6
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 Mic-1 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' preso in considerazione.