Architettura degli elaboratori, 17 Giugno 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.
Dopo una settimana dalla pubblicazione dei risultati, i voti (quelli positivi) verranno registrati. Chi non intende accettare il voto o desidera fare l'orale (se il voto e' maggiore di 24), deve comunicarlo per tempo al docente.
Esercizio 1
(a)
Cos'e' un Multiplexer? Cos'e' un Demultiplexer?
Dire brevemente perche' in un latch SR la configurazione S=1, R=1 non viene utilizzata.
(b)
Cos'e' la componente Controllo di Sequenza in una macchina astratta?
Prendete in considerazione la macchina astratta Mic-1. Quali parti della sua realizzazione hardware descritta nel testo (Tanenbaum) corrispondono alla componente Controllo di Sequenza?
Esercizio 2
(a)
Si prenda in considerazione il diagramma di Fig. 3-37 e lo si commenti, descrivendo in modo sufficientemente dettagliato cosa accade.
(b)
Scrivere un programma Mic-1 che interpreti la seguente istruzione
che intendiamo aggiungere al microinterprete per IJVM:
ADDLCL varnum1 varnum2 varnum3
la cui semantica e' la seguente
M[LV + varnum1] <-- M[LV + varnum2] + M[LV + varnum3] (si pone nella variabile locale indicata da varnum1 la somma delle variabili
locali indicate da varnum2 e varnum3.
I campi varnum solo lunghi un byte.
Volendo, per semplicita',
si possono utilizzare, per memorizzare valori temporanei, i registri TOS, CPP e OPC,
senza preoccuparsi di ripristinare i loro valori precedenti (per TOS e CPP infatti
non farlo in pratica creerebbe problemi).
Commentare il codice. Codice non commentato non verra' preso in considerazione.
Esercizio 3
(a)
Elencare e descrivere brevemente alcuni modi per realizzare l'Input/Output nei Personal Computer.
Nel corso si e' fatto un esempio dettagliato di una particolare realizzazione.
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?
(b)
Considerate un metodo Java che prenda in input due parametri formali k e j (numeri interi)
e che restituisca (3*k)+4 se j e' uguale a zero e j-1 altrimenti.
Scrivere il codice assembly IJVM che traduca tale metodo ed il segmento di codice che traduca la chiamata di tale metodo con parametri attuali 5 e 7.