Esame Architetture degli Elaboratori, 18 Febbraio 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.


Esercizio 1
(a) E' possibile avere delle macchine astratte senza la componente Interprete?
Motivare brevemente la risposta.
(b) Dire perche' e' indispensabile che in un sistema di calcolo organizzato a livelli esista un livello microprogrammato.

Esercizio 2
(a) Dimostrare che nella codifica in complemento a due dei numeri interi la rappresentazione dei i numeri positivi ha "0" come cifra piu' a sinistra, mentre quella dei numeri negativi "1".

(b)









Nel diagramma a lato sul cerchio piu' esterno sono collocate le stringhe binarie di lunghezza tre, con una virgola fissa dopo la prima cifra piu' significativa. Sul cerchio intermedio ci sono i valori numerici corrispondenti alle stringhe date supponendo che queste rappresentino la codifica di numeri positivi frazionari con un codice a lunghezza fissa e virgola fissa. Inserire i valori frazionari al posto delle "?" del cerchio piu' interno in modo che questi corrispondano al valore rappresentato dalle stringhe binarie nel caso di una rappresentazione a lunghezza fissa, virgola fissa, in complemento a due.
(Copiare il cerchio piu' interno con le soluzioni nel foglio di bella)













Esercizio 3
(a) Cos'e' il principio di dualita' nell'Algebra Booleana?

(b) Vogliamo realizzare un circuito che riceva una sequenza di bit in cui i bit sono da considerarsi logicamente raggruppati in sottosequenze consecutive di 2 e 1 bit. La sottosequenza di due bit rappresenta un numero in binario, a cui viene sommato il valore del bit successivo ed il risultato fornito in output. E' ininfluente l'output fornito negli istanti intermedi.
Esempio:
tempo    t0  t1   t2    t3   t4   t5   t6  t7  t8  .... 

Input:   0    1    1     1    1    1    0   0   1  ....  

Output   -    -    3     -    -    4    -   -   1  .... 
Descrivere tutti i passi, per quanto possano essere semplici, utilizzati nella sintesi della rete, la cui parte combinatoria deve essere SP ottimale.


Esercizio 4
Si intende progettare una memoria cache con i seguenti vincoli: Si giustifiche la seguente asserzione: "Con questi vincoli ogni slot di una cache associativa necessita di 284 bit, mentre per uno slot di una cache diretta sono sufficienti 274 bit".

Esercizio 5
Simulare passo passo l'esecuzione del seguente frammento di programma supponendo che inizialmente il PC valga 100. Si visualizzi ad ogni istruzione il contenuto dello Stack, lo Stack Pointer, PC ed AC.
100	LODD 200
101	CALL 300
102	STOD 201
...     ........
...     ........
200  	15
201	2670
...     ........
...     ........ 
300	PUSH
301	ADDL 0
302	ADDL 1
303	POP
304	RETURN
...     ........ 
Verificare se l'esecuzione di tale codice restituisce nell'accumulatore il perimetro di un quadrato di cui e' passato in ingresso nell'accumulatore la lunghezza del lato.
In caso contrario modificare opportunamente il codice in modo da rispettare la specifica.

Esercizio 6
Descrivere BREVEMENTE le fasi salienti della storia dell'evoluzione degli elaboratori elettronici.

Esercizio 7
(a) Descrivere i tipi di conflitto possibili in presenza di esecuzione parallela di istruzioni.
(b) Nell'architettura RISC I in ogni momento sono disponibili 32 registri, di cui 10 sono globali, 6 sono parametri di input, 10 sono locali e 6 sono parametri di output. Di quanti registri deve avanzare il CWP in una chiamata di procedura? Giustificare la risposta.

Esercizio 8
Per quale motivo la traduzione in linguaggio macchina di una serie di procedure sorgente scritte in assembler non e' eseguita direttamente, ma ciascuna procedura e' tradotta singolarmente in un formato intermadio e i diversi moduli vengono in una seconda fase collegati dal meccanismo di linking?