Architettura degli Elaboratori, 29 Gennaio 2003


Non e' ammesso l'uso di alcun testo, appunti o calcolatrici. Le risposte vanno scritte nel foglio di bella copia. Massima SINTETICITA'. L'eccessiva verbosita' verra' considerata negativamente.

Esercizio 1
Cosa si intende per "realizzazione" di una Macchina Astratta per interpretazione? e per compilazione (traduzione)?


Esercizio 2

Che cos'e' una direttiva all'assemblatore? Fornire esempi di direttive all'assemblatore dell'assembly IJVM.
A cosa serve, nel processo di assemblaggio per l'assembly IJVM, il calcolo della lunghezza delle istruzioni?
Esercizio 3

Fornire la traduzione in IJVM del seguente frammento di codice Mic1.
SP=MAR=SP+1
MDR=1; wr
SP=MAR=SP+1
MDR=MDR+1; wr

MAR=SP;rd
MAR=SP-1;rd
H=MDR
MDR=MDR+H;wr


Esercizio 4

Consideriamo il seguente esempio di formato delle istruzioni di una macchina a due indirizzi
Bits   8       3      5      4       3      5      4
  _______________________________________________________ 
  |  OPCODE | MODE | REG | OFFSET | MODE | REG | OFFSET |
  -------------------------------------------------------
  :      (optional 32-bit direct address or offset)     :
  .......................................................
  :      (optional 32-bit direct address or offset)     :
  .......................................................
Supponiamo che l'opcode dell'istruzione MOV che sposta il contenuto di locazioni di memoria/registri in locazioni di memoria/registri sia 01010101
Fornire delle stringhe di 32 bit che rappresentano le due seguenti istruzioni
MOV  #3  4
MOV (R4) R6 
Dove #n rappresenta la modalita' immediata, Rn quella registro, (Rn) quella registro indiretta e n quella diretta.
Le modalita' di indirizzamento sono codificate nel seguente modo: 000 immediata, 001 diretta, 010 registro, 011 registro indiretta, 100 indice.

Esercizio 5
Il linguaggio macchina della UltraSPARC II puo' manipolare 32 registri. In realta' la macchina UltraSPARC II ha ben piu' di 32 registri. Questa caratteristica, chiamata register window, serve a sostenere efficacemente le chiamate di procedura.
Descrivere brevemente il funzionamento delle finestre di registro (register window) di UltraSPARC II.


Esercizio 6 Qual e' la rappresentazione in esadecimale dei byte che vengono inseriti nella Method Area a seguito della traduzione del seguente codice in assembler IJVM?
.method zumpappero(a,i,j,k)
.var
bambi 
tippete
fiorellino
.end-var

   ILOAD i
L: ISTORE tippete
   IINC tippete 4
   BIPUSH 3 
   DUP 
   IF_LT L
   IRETURN

.end-method



Architettura degli Elaboratori
29 Gennaio 2003
Parte aggiuntiva per Anni Precedenti


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.


Vogliamo realizzare un circuito che riceva una sequenza di bit in cui i bit sono da considerarsi logicamente raggruppati in sottosequenze consecutive di 2 e 1 bit. La sottosequenza di due bit rappresenta un numero in binario, a cui viene sommato il valore del bit successivo ed il risultato fornito in output. E' ininfluente l'output fornito negli istanti intermedi.
Esempio:
tempo    t0  t1   t2    t3   t4   t5   t6  t7  t8  .... 

Input:   0    1    1     1    1    1    0   0   1  ....  

Output   -    -    2     -    -    4    -   -   1  .... 
Descrivere tutti i passi, per quanto possano essere semplici, utilizzati nella sintesi della rete.