Esame Architetture degli Elaboratori, 23 Settembre 1999




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
La componente "memoria" di una Macchina Astratta deve necessariamente essere realizzata in hardware? Perche'?

Esercizio 2
(a) Fornire la rappresentazione in virgola fissa (in modulo e segno o in un'altra codifica), con 24 cifre dopo la virgola, del numero decimale -0.3
Facoltativo: Si rappresenti lo stesso numero utilizzando lo standard IEEE 754 per la rappresentazione in virgola mobile dei numeri reali in precisione singola (1 bit di segno, 8 per l'esponente e 23 per la mantissa), supponendo pero' che l'esponente venga rappresentato in complemento a due.

(b) Fornire la dimostrazione di correttezza dell'algoritmo di complementazione di un numero rappresentato in complemento a 2. Dimostrare cioe' che, data la rappresentazione di un numero in complemento a due, la rappresentazione del suo opposto si ottiene lasciando inalterati gli 0 meno significativi fino all'1 meno significativo compreso, ed applicando poi la negazione logica al resto delle cifre.


Esercizio 3
(a) Dare la definizione di: (b) In casa avete lo scaldabagno e la lavatrice, ma a causa di un impianto difettoso, non potete utilizzarli contemporaneamente. Sintetizzare (descrivendo tutti i passi di sintesi, per quanto possano essere semplici) un circuito sequenziale che, opportunamente collegato agli interruttori di tali elettrodomestici, impedisca di utilizzarli entrambi nello stesso momento (se la lavatrice e' accesa allora accendere lo scaldabagno non ha alcun effetto e viceversa; non ha alcun effetto anche accendere contemporaneamente tutti e due).
N.B.: i circuiti combinatori della rete devono essere sintetizzati utilizzando il procedimento per ottenere forme SP minimali.


Esercizio 4
Sia dato il seguente frammento di programma in un linguaggio ad alto livello:
.....
prod:=1;
for i:=1 to lim
do prod:=prod+1
.....
Il seguente frammento in codice Mac-1 e' una traduzione scorretta del codice appena descritto.
La costante lim si vuole rappresentata con una parola di memoria, mentre le variabili prod e i si vogliono rappresentate con le ultime due posizioni sullo stack.
     :
     :
    LOCO 1
    PUSH
    LOCO 1
    STOL 0
L1: LOCO 0
    ADDD 1
    STOD 1
    LOCO 0
    ADDL 0
    PUSH
    SUBL LIM
    JNEG L1
    JZER L1
     :
LIM: 30
     :
(a) Modificare il meno possibile il codice Mac-1 fornito affinche' risulti una traduzione corretta del codice nel linguaggio ad alto livello.
(b) Modificare il meno possibile il codice corretto come da punto (a) affiche' risulti corretto per il frammento in linguaggio ad alto livello simile a quello fornito, ma in cui l'ultimo assegnamento sia prod:=prod+i.


Esercizio 5
(a) Si specifichi la funzione dei dei seguenti campi che costituiscono parte del formato di una istruzione Mic-1:
AMUX, COND, SH, MAR, RD, ENC.
(b) Dire quale istruzione Mac-1 viene realizzata tramite la seguente sequenza di microistruzioni:
sp:=sp+(-1);
mar:=sp; mbr:=pc; wr;
pc:=band(ir,amask);wr; goto 0;
(c) Le due seguenti microistruzioni, (1) e (2), sono equivalenti? Motivare la risposta.

In caso di risposta affermativa, data una microistruzione sp:=sp+n, qual'e' il massimo valore di n?



Esercizio 6
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     |   |     |        |
-----------------------------
| 001     |   |     |        |
-----------------------------
| 010     |   |     |        |
-----------------------------
| 011     |   |     |        |
-----------------------------
| 100     |   |     |        |
-----------------------------
| 101     |   |     |        |
-----------------------------
| 110     |   |     |        |
-----------------------------
| 111     |   |     |        |
-----------------------------
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 7
Facciamo riferimento all'Esempio di Interrupt-driven I/O con politica Memory Mapped visto nel corso.

Esercizio 8
Si dica, motivando la risposta, se sia possibile progettare una macchina con le seguenti caratteristiche:
  • formato istruzione: 16 bit
  • numero di registri indirizzabili: 8
  • numero di parole di memoria: 1024
  • 7 istruzioni con 1 operando in memoria e 1 operando registro
  • 15 istruzioni con 3 operandi registri
  • 8 istruzioni con 2 operandi registri