Architettura degli elaboratori, 16 Dicembre 2008
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.
I risultati (sia positivi
che negativi) verranno registrati sul portale CEA non appena corretti i
compiti. Chi non intenda accettare un voto basso o desideri fare un
orale in caso di voto basso (se quest'ultimo e' comunque maggiore di
24), deve comunicarlo per tempo al docente o all'assistente in aula ed
indicarlo sul proprio elaborato.
Gli iscritti alla laurea
triennale debbono essersi prenotati sul portale studenti del nostro
ateneo, in caso cio' non sia stato fatto fatelo immediatamente presente
al docente o all'assistente in aula.
Coloro che debbono sostenere
l'esame da 9 crediti, uno volta superato lo scritto dovranno sostenere
un orale sulla parte del programma del loro anno di corso non coperto
dal programma di quest'anno.
Esercizio 1
Si consideri la seguente frase presa dalle note del corso:
"La gerarchia di macchine astratte di un sistema di
calcolo
non termina necessariamente con l'implementazione di un linguaggio di
programmazione HLL L."
Commentarla, spiegandone il significato.
Esercizio 2
I segnali provenienti dalle parole di una memoria possono venire
collegati ad un bus tramite dei tri-state devices (in
particolare dei noninverting buffer), come
e' fatto nell'esempio di memoria 4x3 del testo.
Descrivere come in tale esempio i 3 tri-state devices sono collegati ai
segnali provenienti
dalle parole di memoria e ai segnali CS (Chip Select), RD (Read), OE
(Output Enable).
Dire anche qual e' la funzione di CS, RD e OE.
Esercizio 3
Supponiate di estendere l'hardware di Mic-1 in modo da poter inserire
dall'esterno
un valore (positivo) nel registro CPP. Inoltre supponiate che il
registro SP sia collegato
direttamente ad un campanello che suona quando il valore di SP e' 1 (e
resta muto
quando e' 0).
Noi vogliamo che, non appena qualcuno dall'esterno inserisce un valore
m in CPP, dopo m cicli di clock il campanello si metta a suonare per
2*m cicli di clock.
Scrivere un microprogramma Mic-1 che permetta tale funzionamento
(all'inizio SP e' 0).
N.B.: Va bene anche se si aspettano uno o due cicli in piu' o se
il campanello
suona uno o due cicli in piu' di quanto richiesto.
Inoltre si puo' scrivere il
microprogramma senza tener conto del vincolo di Mic-1 che impone che
due microistruzioni con salto condizionato con uguale etichetta sul
ramo
"else" abbiano anche uguale etichetta sul ramo "then".
Commentare il codice. Codice non commentato non verra' valutato.
Esercizio 4
Supponiate di avere un Bus con 4 linee per gli indirizzi e che tali
linee
siano collegate al segnale CS di una ROM come indicato nella figura.
__________ CS
|
AND
_________
| |
OR |
______ |
| | |
| | |
A3 -----x--|----|-------
A2 --------|----|-------
A1 --------x----|-------
A0 -------------x-------
Ovviamente una CPU collegata a tale bus potra' leggere in uno
spazio di indirizzamento di 24-1 parole. Di queste, quali
sono quelle che
fisicamente appartengono alla ROM sopra citata?
Giustificare la risposta.
Esercizio 5
Tradurre in assembly IJVM il seguente metodo:
public int owl(int x, int y)
{
int counter = 0;
while(counter < 12)
{ x = counter + x + y;
counter = counter + 1;
}
return castle(x);
}
Supporre di avere gia' un metodo IJVM di nome "castle".
Tradurre il metodo cosi' com'e', senza fare ottimizzazioni.
Commentare il codice. Codice non commentato non verra' valutato.
Esercizio 6
Descrivere nel modo piu' dettagliato possibile quello che avviene su un
bus sincrono durante una operazione di lettura, in particolare
considerando l'esempio del testo, in cui le linee di controllo sono
MREQ, RD e WAIT.