II ESONERO Architetture degli Elaboratori, 7 Aprile 2001

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) Scrivere il microcodice che interpreta l'istruzione INSB che vogliamo aggiungere ad IJVM.
Il formato di INSB e' il seguente
INSB ind val
dove gli operandi ind e val sono di 1 byte.
INSB prende la parola di memoria di indirizzo ind la shifta a sinistra di 1 byte e nel byte lasciato libero pone il byte val.
Il risultato lo pone in cima allo Stack.
Scrivere il microcodice a cui si salterebbe nel microinterprete dopo aver eseguito la microistruzione Main1.

(b) Nel Data Path dell'architettura del Mic-2, oltre al registro MBR, e' presente anche un registro MBR2, indicato, piu' o meno, nel modo seguente:
                                  | |
           - - - - ---------- ==> | |
           :      ->| MBR2  |     | |
           - - - - ---------- ==> | |
                       ^  ^       | |
                       |  |
Qual e' lo scopo di avere questo altro MBR?

Esercizio 2
E' possibile che quello che segue (ovviamente per facilita' di lettura non abbiamo scritto tutto in esadecimale) e' quello che viene posto nella method area dopo aver tradotto un metodo Java?
Ci sono errori o incongruenze, quali, perche'?
  0x00 0x02 0x00 0x02
  BIPUSH 734
  ILOAD 6
  IADD
  IADD
  GOTO 5 

Esercizio 3
(a) Cosa si intende con Memory Mapped I/O?
Brevemente, come viene settato il bit CS (Chip Select) dei vari chip presenti su un bus se viene utilizzato l'approccio Memory Mapped I/O?
(b) Si supponga di avere un calcolatore con indirizzamento al byte, con 232 byte di memoria e dimensione di blocco di 4 byte. Quanti bit sono necessari per una cache diretta che contenga 64K byte di dati?
Giustificare brevemente.