Architettura degli elaboratori, 28 Giugno 2007
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.
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.
Esercizio
Architetture RISC e CISC. Discuterne brevemente.
Esercizio
Che cosa sono le Trap?
Esercizio
Nel materiale del corso e' descritto un esempio di realizzazione di Trap per IJVM
a livello Mic-1.
In particolare, per quanto riguarda l'istruzione POP,
viene proposto il seguente codice Mic-1:
pop1 MAR=LV; rd
pop2
pop3 H=MDR+1
pop4 Z=SP-H; if (Z) goto Trap1; else goto pop5
pop5 MAR=SP=SP-1;rd
pop6
pop7 TOS=MDR; goto Main1
Trap1 MAR=SP=SP+1
Trap2 MDR=PC;wr
Trap3 PC=1<<8; fetch; goto Main1
Giustificare tale implementazione. E commentare il codice fornito.
Esercizio
L'Hw Mic-2 possiede la seguente caratteristica.
Se all'interno di codice che realizza un'istruzione IJVM di salto (o
INVOKEVIRTUAL/IRETURN) viene modificato il PC, tale modifica si riperquote automaticamente
anche su IMAR. Questa modifica di IMAR permette
di procedere al fetch di altri 4 byte (cioe' una parola) dalla memoria.
Se il PC viene aggiornato, per esempio, con il valore 37,
vuol dire che l'istruzione a cui saltare e' ad indirizzo 37.
Pero' noi non possiamo estrarre dalla memoria 4 byte a partire da quello 37,
poiche' le parole iniziano sempre con byte di indirizzo multiplo di quattro.
Come fa l'Hw Mic-2 a fare in modo che, nel nostro esempio, la parola prelevata sia la parola 9?
(la parola 9 e' quella che inizia col byte di indirizzo 36). Inoltre, come fa' a far si che,
una volta arrivati i 4 byte della parola 9, lo Shift Register elimini il primo byte?
Fornire una descrizione a grandi linee (ma non troppo grandi....)
Esercizio
Nel contesto del processo di assemblaggio, cos'e', a cosa serve
e come viene utilizzata la Tabella dei Simboli?
Esercizio
Scrivere un metodo assembly IJVM che calcoli il Coefficiente Binomiale,
Binomial(n,k), utilizzando l'usuale definizione ricorsiva:
Binomial(n,k) = 1 se k=0
Binomial(n,k) = 1 se n=k
Binomial(n,k) = Binomial(n-1,k) + Binomial(n-1,k-1) altrimenti
Commentare il codice. Codice non commentato non verra' preso in considerazione.