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.