Architettura degli elaboratori, 5 Ottobre 2005
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 voti (quelli positivi) verranno
registrati subito dopo la correzione causa imminente termine sessione d'esami.
Chi pensa che potrebbe non accettare il voto o pensa di poter fare l'orale
(se il voto fosse maggiore di 24), deve scriverlo sulla bella del compito. In tal modo pero'
l'eventuale voto verrebbe registrato nella sessione di esami successiva.
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.
Coloro che debbono sostenere
l'esame da 9 crediti, uno volta superato lo scritto dovranno sostenere
un orale sulla parte del programma del loro anno di corso non coperto
dal programma di quest'anno.
Esercizio 1
(a) Si descriva la componente Gestione Trasferimento Dati nella macchine astratte
Mic-1 e IJVM.
(b)
Fornire la definizione insieme di operatori booleani funzionalmente completo.
Dimostrare che l'inseme {And, Or, Not} e' funzionalmente completo.
Esercizio 2
(a) Supponiate di avere un traduttore da IJVM puro a Mic-1, a cui abbiamo dato
da tradurre un segmento di codice IJVM, ottenendo il seguente codice Mic-1.
OPC = 1
OPC = PC+1
H = LV
MAR = OPC+H; rd
OPC = OPC+1
TOS = MDR
MAR = OPC+H; rd
H = TOS
MDR = TOS = MDR+H
SP =SP+1
MAR = SP; wr
Dire quale potrebbe essere il codice IJVM che abbiamo fatto tradurre (fornire
cioe' un segmento di codice IJVM puro che faccia la stessa cosa che fa il segmento
Mic-1 proposto).
(b)
Si consideri la realizzazione di I/O con interruzioni ottenuta estendendo l'architettura
Mic-1 come descritto dal materiale del corso.
Descrivere il contenuto dei registri CSR e BR del controller della tastiera
nel momento immediatamente precedente all'esecuzione del driver della tastiera
dopo che, avendo premuto un tasto, l'interruzione generata e' stata accolta.
Giustificare perche' il contenuto di CSR e BR e' cosi'.
Esercizio 3
(a) Fornire un metodo Java la cui possibile traduzione in assembly IJVM sia il seguente
codice.
.method Quetal(a,b)
.var
n
x
.end-var
BIPUSH 3
ISTORE x
BIPUSH 1
ISTORE n
loop: ILOAD x
BIPUSH 73
IF_ICMPEQ then
ILOAD x
ILOAD b
ISUB
ISTORE x
GOTO check
then: LDCW OBJREF
ILOAD x
BIPUSH 1
IADD
INVOKEVIRTUAL Quetal
ISTORE x
check:ILOAD n
ILOAD a
IFCMPEQ end
IINC n 1
GOTO loop
end: ILOAD x
IRETURN
.end-method
(b)
Descrivere il comportamento del Linker in un Assemblatore, con particolare riferimento
all'esempio di assemblaggio per IJVM fornito nel materiale del corso.