Architetture degli Elaboratori, 15 Febbraio 2001


Non e' ammesso l'uso di alcun testo, appunti o calcolatrici. Le risposte ai quesiti vanno scritte nel foglio di bella copia.
Si raccomanda la massima SINTETICITA' negli esercizi che richiedano una spiegazione scritta. L'eccessiva verbosita' verra' considerata negativamente.



Esercizio 1
(a) In quali casi e' possibile avere un sistema di calcolo organizzato a livelli in cui tutti i livelli sono realizzati in hardware?

(b) In un sistema di calcolo organizzato a livelli, cosa si intende quando si dice che "un livello non e' completamente coperto da quello superiore"? Fornire un possibile esempio.

Esercizio 2
(a) Discutere brevemente dei vantaggi e degli svantaggi delle reti sequenziali sincrone e asincrone e dei contesti nei quali risultano utilizzabili.

(b) Fornire l'automa a stati finiti che descriva il seguente comportamento: supponendo di avere {0,1} come possibili ingressi e uscite, si manda in output 1 quando esattamente due degli ultimi 3 input sono a 0, in tutti gli altri casi l'output sara' 0. (Si supponga che solo per il secondo input della sequenza la condizione sia "quando gli ultimi 2 bit siano a 0").
Minimizzare l'automa o dimostrare che e' minimo.

Esercizio 3
(a) E' possibile che in un microprogramma Mic-1 mal la microistruzione
label1: TOS=H+SP; if (N) goto labelA; else goto labelB
corrisponda in binario alla sequenza di 36 bit, di cui i primi 9 siano i seguenti?
100110101
(b) Quale istruzione IJVM e' realizzata dal seguente codice Mic-2?
MAR=LV+MBR1U;rd
H=MBR1
MDR=MDR+H;wr;goto(MBR1)

Esercizio 4
(a) Considerate un metodo JAVA che abbia 4 parametri, b3, b2, b1 e b0, che possono avere come valore 0 o 1. Il metodo restituisce il numero la cui rappresentazione in binario e' b3 b2 b1 b0. Scrivere il codice IJVM che traduca tale metodo ed il segmento di codice che traduca la chiamata di tale metodo con parametri attuali 1,1,0,1. Specificare quali saranno i 4 byte che verranno inseriti nella method area prima del codice IJVM che traduce il metodo.

(b) Dire se c'e' qualcosa che non va nella seguente sequenza di byte (rappresentati in esadecimale) che si suppone essere inserita nella Method Area come traduzione di un metodo java.
0x00 0x02 0x00 0x02 0x10 0x05 0x15 0x07 0x60 0xAC



Esercizio 5
(a) Cosa si intende per multiplexed bus?

(b) A cosa serve la linea WAIT in un bus sincrono? Perche' deve esser presente anche nei bus asincroni?
Esercizio 6
(a) Cosa si intende per speculative execution (esecuzione speculativa)? Il Pentium II "supporta" la speculative execution?

(b) Cosa fa un assemblatore (assembler) quando durante il processo di assemblaggio incontra una definizione di macro? Cosa fa quando incontra una chiamata di macro?

Esercizio 7
(a) Dovremmo cambiare molte cose nella IJVM, ed eventualmente cosa, se pretendessimo che la modalita' di indirizzamento per entrambi gli argomenti dell'istruzione IINC sia puro indirizzamento diretto?

(b) L'istruzione IRETURN ha una modalita' di indirizzamento? Se si, quale? Se no, perche'?

Esercizio 8
Cos'e' LINDA? e ORCA? e GLOBE?