Architettura degli elaboratori, 1 Febbraio 2007
Non e' ammesso l'uso di alcun testo, appunti o
calcolatrici.
Si raccomanda la massima SINTETICITA'. L'eccessiva verbosita' verra'
considerata negativamente.
Dopo una settimana dalla loro pubblicazione su web, i risultati
(sia quelli positivi che negativi) verranno registrati sul portale CEA.
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
Cos'e' un Multiplexer? Cos'e' un Demultiplexer?
Dire brevemente perche' in un latch SR la configurazione S=1, R=1 non
viene utilizzata.
Esercizio 2
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 3
Si prenda in considerazione il diagramma di Fig. 3-38 e lo
si commenti, descrivendo in modo sufficientemente dettagliato cosa
accade.
Esercizio 4
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 5
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?
Esercizio 6
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.