Architettura degli Elaboratori 13 Settembre 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)
Cosa significa, in un sistema di calcolo a livelli, che
"un livello che realizza una macchina astratta non copre del tutto il livello sottostante"?
E' possibile realizzare la macchina astratta Mic-3 sopra il livello della macchina
astratta Mic-2 supponendo che quest'ultima sia realizzata in hardware?
(b)
Che cosa e' una switching algebra?
Qual e' un possibile procedimento per passare
dalla descrizione di una funzione booleana tramite tabella di verita' ad una
descrizione della stessa funzione come espressione algebrica?
Applicare tale procedimento a
a b | f
--------
0 0 | 1
0 1 | 0
1 0 | 1
1 1 | 1
Esercizio 2
(a)
Qual e' l'effetto in Mic-1 dell'esecuzione di goto(MBR)?
In quale modo l'architettura Mic-1 realizza l'esecuzione di un goto(MBR)?
A cosa puo' servire in un microprogramma un goto(MBR)?
(b)
Si traduca in Mic-2 il seguente codice Mic-3.
A=LV B=SP
B=TOS C=A+B
A=CPP C=B-1 MAR=C
C=A+1 MDR=C;wr
TOS=C mem=MDR
Esercizio 3
(a)
Tradurre in Java (o in qualsiasi altro linguaggio ad alto livello, anche
in modo non sintatticamente preciso) il seguente metodo IJVM.
.method paraponzi (a,b,c)
ILOAD b
ILOAD a
IF_ICMPEQ L
ILOAD b
ILOAD a
ISUB
IFLT L
ILOAD c
ILOAD a
IADD
IRETURN
L LDC_W objref
ILOAD b
DUP
ILOAD c
ILOAD b
ISUB
ILOAD c
INVOKEVIRTUAL paraponzi
IRETURN
.end-method
(b)
Descrivere il comportamento delle istruzioni IJVM INVOKEVIRTUAL e IRETURN
e il loro effetto sullo Stack.
Esercizio 4
(a)
Si prenda in considerazione il diagramma di Fig. 3-37 e lo si commenti,
descrivendo in modo sufficientemente dettagliato cosa accade.
(b)
Elencare alcuni modi per implementare operazioni di Input/Output.
Nel corso si e' fatto un esempio dettagliato di una particolare implementazione.
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?