Architettura degli elaboratori, 21 Settembre 2005
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.
Dopo una settimana dalla
pubblicazione dei risultati, i voti (quelli positivi) verranno
registrati. Chi non intende accettare il voto o desidera fare l'orale
(se il voto e' maggiore di 24), deve comunicarlo per tempo al docente.
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
(a) 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.
(b)
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 2
(a)
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.
(b)
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 3
(a)
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.
(b)
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.