Architettura degli elaboratori, 5 Ottobre 2010

Per A.A. precedente a 08/09 (6 crediti): esercizi 1-4
Per A.A. 08/09 e successivi (9 crediti): esercizi 1-5

(Indicare sul compito se il proprio piano di studi richiede 6 o 9 crediti)

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.
  • Gli iscritti alla laurea triennale debbono essersi prenotati sul portale studenti del nostro ateneo. Se cio' non e' stato fatto, comunicatelo immediatamente al docente o all'assistente in aula.
  • Gli orali si terranno giovedi' 7 alle ore 14 in aula 41.

  • Esercizio 1   Cosa si intende per multiplexed bus?
    A cosa serve la linea WAIT in un bus sincrono? Perche' deve esser presente anche nei bus asincroni?

    Esercizio 2   Supponiate di non avere in IJVM l'istruzione IADD e che per fare una somma abbiate pero' a disposizione un metodo add.
    Con queste assunzioni, scrivere un metodo in assembly IJVM che calcoli la moltiplicazione in modo ricorsivo utilizzando la somma, nel seguente modo:
    x*0 = 0
    x*y = x + x*(y-1)   se y e' diverso da 0

    Commentare il codice.Codice non commentato non verra' valutato.

    Esercizio 3  Nelprogramma del corso e' presente un esempio di I/O gestito ad interruzioni per la macchina del livello ISA del Tanenbaum. In tale esempio il controllo della presenza di interruzioni e' realizzato dall'interprete microprogrammato estendendo il microinterprete del Tanenbaum con le seguenti microistruzioni
    int1 if opc[15] goto main1; 
    
    int2 if (not(opc[0]) and not(opc[1]) ... and not(opc[7])) goto main1;
    
    int3 SP=MAR=SP+1; 
    
    int4 MDR=PC; wr; 
    
    int5 SP=MAR=SP+1;
    
    int6 MDR=OPC; wr; 
    
    int7 MAR=OxFF; rd; 
    
    int8 OPC[15]=1; 
    
    int9 PC=MDR; fetch; 
    
    int10 
    
  • Descrivere cosa fanno (e perche') tali microistruzioni. Non tutte le microistruzioni sono microistruzioni Mic-1. Quali non lo sono? perche' sono state aggiunte?
  • Modificare il precedente microcodice affiche' il gestore delle interruzioni venga eseguito ad interruzioni abilitate.
  • Dire brevemente e informalmente come si potrebbe far si che il gestore gestisca le interruzioni supponendo che esistano delle priorita' tra i vari devices.
  • Perche' il gestore delle interruzioni deve necessariamente essere realizzato con un segmento di codice IJVM e non in Mic-1?
  • E' possibile poter far si che il controllo della presenza di interruzioni sia realizzato in hardware? Se si, descrivere informalmente un modo possibile di farlo, se no, giustificare la risposta negativa.



    Esercizio 4   Prendendo in considerazione l'esempio di assemblaggio per l'assembly IJVM proposto nel materiale del corso, descrivere il comportamento del Linker.

    Esercizio 5   Rappresentazione dei numeri razionali in Virgola Mobile e Standard IEEE 754.
    Discuterne brevemente.