Architettura degli elaboratori, 17 Giugno 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.
  • Dopo una settimana dalla pubblicazione dei risultati, i voti (quelli positivi) verranno registrati. Chi non intende accettare il voto o desidera fare l'orale (se il voto e' maggiore di 24), deve comunicarlo per tempo al docente.

  • Esercizio 1
    (a) Cos'e' un Multiplexer? Cos'e' un Demultiplexer? Dire brevemente perche' in un latch SR la configurazione S=1, R=1 non viene utilizzata.


    (b) Cos'e' la componente Controllo di Sequenza in una macchina astratta? Prendete in considerazione la macchina astratta Mic-1. Quali parti della sua realizzazione hardware descritta nel testo (Tanenbaum) corrispondono alla componente Controllo di Sequenza?



    Esercizio 2
    (a) Si prenda in considerazione il diagramma di Fig. 3-37 e lo si commenti, descrivendo in modo sufficientemente dettagliato cosa accade.


    (b) Scrivere un programma Mic-1 che interpreti la seguente istruzione che intendiamo aggiungere al microinterprete per IJVM:
    ADDLCL varnum1 varnum2 varnum3 la cui semantica e' la seguente
    M[LV + varnum1] <-- M[LV + varnum2] + M[LV + varnum3] (si pone nella variabile locale indicata da varnum1 la somma delle variabili locali indicate da varnum2 e varnum3.
    I campi varnum solo lunghi un byte.
    Volendo, per semplicita', si possono utilizzare, per memorizzare valori temporanei, i registri TOS, CPP e OPC, senza preoccuparsi di ripristinare i loro valori precedenti (per TOS e CPP infatti non farlo in pratica creerebbe problemi).
    Commentare il codice. Codice non commentato non verra' preso in considerazione.
    Esercizio 3
    (a) Elencare e descrivere brevemente alcuni modi per realizzare l'Input/Output nei Personal Computer.
    Nel corso si e' fatto un esempio dettagliato di una particolare realizzazione. Supponiamo che ad un dato istante si abbia la seguente situazione all' interno del controller della tastiera:
    	     IP            RDY
    	     CSR  0000000000000001       BR 0110111000000000
         
    Che cosa e' probabile che sia successo negli istanti precedenti? Cosa accadra' probabilmente negli istanti successivi?



    (b) Considerate un metodo Java che prenda in input due parametri formali k e j (numeri interi) e che restituisca (3*k)+4 se j e' uguale a zero e j-1 altrimenti. Scrivere il codice assembly IJVM che traduca tale metodo ed il segmento di codice che traduca la chiamata di tale metodo con parametri attuali 5 e 7.