Architetture degli Elaboratori
10 Dicembre 2001


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.

Esercizio 1
(a) Prendete in considerazione la macchina astratta Mic-1. Quali parti della sua realizzazione hardware descritta nel testo (Tanenbaum) corrispondono alla componente Controllo di Sequenza?

(b) E' possibile che una macchina astratta che tipicamente sarebbe realizzata in hardware venga realizzata per traduzione o compilazione su una macchina astratta corrispondente ad un linguaggio ad alto livello come Java o C?
Ne abbiamo esempi nella pagina web del corso?

Esercizio 2
(a) Considerare un modulo di memoria MM costituiro da m registri di n bit ciascuno e interfacciato con l'esterno tramite i registri MAR e MBR.
Specificare quali delle affermazioni seguenti sono vere e perche' quelle false sono tali:
(b) Dimostrare che l'insieme di operatori booleani {not, and} e' funzionalmente completo.
Dire perche' non puo' esistere un insieme di operatori funzionalmente completo e contenente un solo operatore booleano.


Esercizio 3
(a) Descrivere brevemente la funzionalita' di un generico PIO (Parallel Input/Output) chip.
Descrivere brevemente i due modi in cui un PIO chip puo' venire selezionato (cioe' in quale modo puo' venire settato il segnale CS, Chip Select).

(b) Per permettere il funzionamento della Pipeline del picoJavaII, le istruzioni JVM vengono classificate in base al loro comportamento. In particolare alcune vengono classificate come non raggruppabili (Nonfoldable). Per cosa utilizza tale classificazione la Pipeline del picoJavaII?

Esercizio 4
Descrivere il comportamento delle istruzioni IJVM INVOKEVIRTUAL e IRETURN, mostrando anche graficamente lo stato in cui deve trovarsi lo Stack prima della loro esecuzione. Mostrare anche quale sara' lo stato dello Stack dopo la loro esecuzione.

Lo Stack fisico in realta' realizza vari Stack logici relativi alla macchina astratta IJVM, quali?


Esercizio 5
Che cosa e' una tecnica di Predizione di Salto Statica (Static Branch Prediction)?
E Dinamica (Dynamic)?
Dire come funziona in genere la tecnica di predizione dinamica con un bit di predizione.
Perche' quella con due bit di predizione e' migliore? Come funziona?

Esercizio 6
La tabella sotto riportata rappresenta la struttura di una memoria cache a mappatura diretta (direct-mapped cache), composta da 8 slot.
La dimensione di una linea di cache e di 4 parole.
Supponendo che la cache 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.