Architettura degli elaboratori, 5 Ottobre 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.
  • I voti (quelli positivi) verranno registrati subito dopo la correzione causa imminente termine sessione d'esami. Chi pensa che potrebbe non accettare il voto o pensa di poter fare l'orale (se il voto fosse maggiore di 24), deve scriverlo sulla bella del compito. In tal modo pero' l'eventuale voto verrebbe registrato nella sessione di esami successiva.
  • 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 descriva la componente Gestione Trasferimento Dati nella macchine astratte Mic-1 e IJVM.

    (b) Fornire la definizione insieme di operatori booleani funzionalmente completo. Dimostrare che l'inseme {And, Or, Not} e' funzionalmente completo.

    Esercizio 2
    (a) Supponiate di avere un traduttore da IJVM puro a Mic-1, a cui abbiamo dato da tradurre un segmento di codice IJVM, ottenendo il seguente codice Mic-1.
    OPC = 1
    OPC = PC+1
    H = LV
    MAR = OPC+H; rd   
    OPC = OPC+1
    TOS = MDR            
    MAR = OPC+H; rd  
    H = TOS         
    MDR = TOS = MDR+H    
    SP =SP+1
    MAR = SP; wr     
    
    Dire quale potrebbe essere il codice IJVM che abbiamo fatto tradurre (fornire cioe' un segmento di codice IJVM puro che faccia la stessa cosa che fa il segmento Mic-1 proposto).

    (b) Si consideri la realizzazione di I/O con interruzioni ottenuta estendendo l'architettura Mic-1 come descritto dal materiale del corso.
    Descrivere il contenuto dei registri CSR e BR del controller della tastiera nel momento immediatamente precedente all'esecuzione del driver della tastiera dopo che, avendo premuto un tasto, l'interruzione generata e' stata accolta. Giustificare perche' il contenuto di CSR e BR e' cosi'.

    Esercizio 3
    (a) Fornire un metodo Java la cui possibile traduzione in assembly IJVM sia il seguente codice.
    .method Quetal(a,b)
    .var
    n
    x
    .end-var
     
          BIPUSH 3
          ISTORE x      
          BIPUSH 1
          ISTORE n      
    loop: ILOAD x
          BIPUSH 73
          IF_ICMPEQ  then    
          ILOAD x
          ILOAD b
          ISUB
          ISTORE x
          GOTO check    
    then: LDCW OBJREF
          ILOAD x
          BIPUSH 1
          IADD
          INVOKEVIRTUAL Quetal  
          ISTORE x       
    check:ILOAD n
          ILOAD a
          IFCMPEQ end         
          IINC n 1
          GOTO loop 
    end:  ILOAD x  
          IRETURN
    .end-method
    

    (b) Descrivere il comportamento del Linker in un Assemblatore, con particolare riferimento all'esempio di assemblaggio per IJVM fornito nel materiale del corso.