Architettura degli elaboratori, 3 Luglio 2006

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 alcuni giorni dopo la loro pubblicazione su web. Chi non intende accettare il voto o intende fare un orale (se il voto fosse maggiore di 24), dovra' comunicarlo per tempo al docente.
  • 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 consideri un sistema a livelli contenente i livelli L1, L2 ed L3.
    L1 e' realizzato in hardware e tale che il tempo di esecuzione di un'istruzione di L1 e' di K secondi.
    I livelli L2 ed L3 sono invece interpretati. Ogni istruzione di L2 viene realizzata con n istruzioni di L1. Ogni istruzione di L3 viene realizzata con n istruzioni di L2.
    Il linguaggio L3 e' m volte piu' potente del linguaggio L2 (per ogni cosa che fa un'istruzione di L3, ce ne vogliono m di L2 per fare la stessa cosa. In breve, lo stesso algoritmo si realizza in L2 con un programma m volte piu' lungo di uno equivalente in L3).
    Siano P3 e P2 due programmi semanticamente equivalenti scritti, rispettivamente, in L3 e L2 (semanticamente equivalenti significa che calcolano la stessa cosa).
    Fornire delle espressioni che esprimano il tempo di esecuzione di P3 e di P2 in modo da poter confrontare tali tempi tra loro e poter decidere (fissati n ed m) se, dal punto di vista della velocita' di esecuzione, convenga eseguire P3 sul livello 3 oppure P2 sul livello 2.
    Giustificare brevemente la soluzione proposta.
    (b) Dimostrare che l'insieme di operatori booleani {not, and} e' funzionalmente completo. Dire perche' non puo' esistere un insieme di operatori funzionalmente completo che contenga un solo operatore booleano.

    Esercizio 2
    (a) Si scriva un segmento di codice Mic-1 che calcoli il numero di bit ad 1 presenti nel registro TOS, inserendo tale numero in SP.
    (b) Si supponga di non avere, in Mic-1, la possibilita' di eseguire "goto(MBR)". Si supponga inoltre che i codici operativi della istruzioni IJVM siano differenti da quelli del testo.
    Nel momento in cui MBR contiene il codice operativo dell'istruzione IJVM, la fase di decodifica dell'interprete IJVM sara' quindi realizzata con un segmento di codice Mic-1 da aggiungere al microinterprete del testo, segmento di cui forniamo qui di seguito una parte:
    d1  H=MBRU<< 8
    d3  H=H<< 8
    d4  H=H<< 8
    d5  OPC=H; if (N) goto ...; else goto d6 
    d6  H=OPC=H+OPC; if (N) goto ...; else goto d7 
    d7  H=OPC=H+OPC; if (N) goto ...; else goto d8 
    d8  H=OPC=H+OPC; if (N) goto d9; else goto ... 
    d9  H=OPC=H+OPC; if (Z) goto bipush1; else goto ...
    :   : 
    
    dove bipush1 e' l'etichetta della prima microistruzione del codice che realizza l'istruzione BIPUSH.
    Qual e' il codice operativo di BIPUSH?
    Perche'?

    Esercizio 3
    (a) Si supponga che in IJVM l'istruzione BIPUSH abbia la possibilita' di lavorare con due differenti modalita' di indirizzamento: l'indirizzamento immediato e quello diretto. Si supponga quindi che il formato di BIPUSH sia di tre byte:
    BIPUSH mode num
    dove mode e num sono di un byte. mode specifica la modalita' (0x00 per la immediata, 0x01 per la diretta), .
    Si scriva il codice Mic-2 (DUE!) che implementa questa versione di BIPUSH.
    (b) Supponiamo che la ALU di Mic-1, produca, oltre ai segnali N e Z, anche un segnale O, che indica quando l'operazione eseguita dalla ALU produce un overflow.
    E' possibile fare in modo che il segnale di overflow faccia scattare una trap (che dovra' venire gestita opportunamente da un programma gestore di trap, trap handler) utilizzando lo stesso meccanismo descritto nel corso ed utilizzato per rilevare e gestire interruzioni con l'architettura Mic-1?
    Giustificare la risposta, sia che essa sia negativa o positiva.