Architetture degli Elaboratori, 12 Luglio 2000


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.



PARTE 1

Esercizio 1
(a) Qual'e' il numero teorico massimo di livelli in un sistema di calcolo? Perche'?
(b) Se come parametro di valutazione abbiamo la velocita' di esecuzione dei programmi, e' meglio una realizzazione interpretativa o compilativa di un linguaggio ad alto livello? Perche'?

Esercizio 2
(a) Dare brevemente la definizione di codice e dire qual'e' la differenza tra un codice a lunghezza variabile ed uno ad espansione.
(b) Fornire brevemente le differenze tra architetture CICS e RISC.
Esercizio 3
(a) Dire cosa fa il seguente automa a stati finiti con stati interni S={1,2,3,4} (lo stato 1 e' quello iniziale), ingressi X={A,B,C} ed uscite Z={0,1}. E' un automa minimo? Dimostrare che lo e' o costruire l'automa minimo equivalente mostrando tutti i passi.

(b) Descrivere il compostamento del flip-flop RS (Set-Reset).
Perche' gli ingressi S=R=1 non sono permessi?


PARTE II

Esercizio 4
Scrivere un segmento di codice Mic1 che moltiplichi il contenuto dei registri TOS ed OPC ed inserisca il risultato in SP, supponendo che il contenuto di OPC sia >= 0.


Esercizio 5
(a) Scrivere alcune istruzioni IJVM che, memorizzate a partire dal byte 33, siano tali che dopo l'esecuzione della terza il PC valga 41. Nel codice non devono esser presenti etichette simboliche. Gli eventuali argomenti delle istruzioni devono essere tutti valori numerici espliciti.

(b) Scrivere un segmento di codice IJVM che inserisca sullo stack i numeri da 0 a 35.
Ovviamente tale codice deve essere composto da molto meno di 35 istruzioni.

Esercizio 6
Nella seguente figura sono riprodotte le prime tre componenti del pipeline del Mic-4.
Descrivere brevemente il loro funzionamento, ed in particolare descrivere il significato dei campi IJVM-lenght, Micro-op ROM index, final e goto.




PARTE III

Esercizio 7
La tabella sotto riportata rappresenta la struttura di una memoria cache ad indirizzamento diretto composta da 8 slot.
La dimensione dei blocchi di memoria e' di 4 parole.
Supponendo che inizialmente sia vuota e che il processore esegua la seguente sequenza di riferimenti in memoria:
1011000, 1011001, 1111000, 1010011, 1000000, 0010011, 0010001, 1100011
(a) Si completi la tabella in modo che rappresenti lo stato della cache dopo che il processore ha eseguito tutta la sequenza di riferimenti;
(b) Si calcoli il numero di fallimenti (letture di blocchi da memoria centrale) totali.







-----------------------------
| n.slot  | V | Tag | Dati   |
-----------------------------
| 000     | 0 |     |        |
-----------------------------
| 001     | 0 |     |        |
-----------------------------
| 010     | 0 |     |        |
-----------------------------
| 011     | 0 |     |        |
-----------------------------
| 100     | 0 |     |        |
-----------------------------
| 101     | 0 |     |        |
-----------------------------
| 110     | 0 |     |        |
-----------------------------
| 111     | 0 |     |        |
-----------------------------
Il campo V denota il bit di validita'(1=valido; 0=nonvalido). Per il campo dati si indichi semplicemente M[xxxxx], dove xxxxx e' l'indirizzo del blocco caricato nello slot della cache.


Esercizio 8
Un modulo oggetto e' composto da sei parti: Identification (identificazione), Entry point table (tabella indirizzi partenza), External reference table (tabella referenze est.), Machine instructions and constants (istruzioni macchina e costanti), Relocation dictionary (dizionario di rlocazione), End of module (fine del modulo).
Descrivere cosa contengono queste parti.

Esercizio 9
Nel contesto delle reti di interconnessione (interconnection networks), dire cosa si intende per:
Diameter (diametro)
Bisection bandwidth (bisezione dell'ampiezza di banda)
Dimensionality (dimensionalita')
Aggregate bandwidth.