Architettura I e laboratorio, 14 Giugno 2002

Non e' ammesso l'uso di alcun testo, appunti o calcolatrici. Le risposte vanno scritte nel foglio di bella copia. Massima SINTETICITA'. L'eccessiva verbosita' verra' considerata negativamente.

Esercizio 1
(a) Descrivere brevemente la funzionalita' di un generico PIO (Parallel Input/Output) chip. Descrivere brevemente i due modi in cui un PIO chip puo' venire selezionato (cioe' in quale modo puo' venire settato il segnale CS, Chip Select).
(b) Dimostrare che l'insieme di operatori booleani {not, and} e' funzionalmente completo. Dire perche' non puo' esistere un insieme di operatori funzionalmente completo e contenente un solo operatore booleano.
Esercizio 2
(a) Scrivere un segmento di codice che inserisca in OPC il valore m[m[...m[TOS]...]] (m[-] iterato n volte). Dove: n e' il valore contenuto in LV. m[x] indica il valore contenuto nella locazione di memoria di indirizzo x, dove per memoria si intende la parte di memoria organizzata in parole da 32 bit, a cui Mic-1 puo' accedere. Con TOS si intende il valore contenuto in tale registro.
(b) Nel Data Path dell'architettura del Mic-1 il registro MBR e' indicato piu' o meno, nel seguente modo:
| |
           - - - - - - - ---- ==> | |
           :  MBR     ->|   |     | |
           - - - - - - - ---- ==> | |
                         ^ ^      | |
                         | |
Perche' parte del registro e' disegnata tratteggiata? Perche' sono indicati due collegamenti al Bus B? Perche' ha tre segnali di controllo (le frecce piccole)? A cosa servono?
Esercizio 3)
(a) Descrivere il comportamento delle istruzioni IJVM INVOKEVIRTUAL e IRETURN, mostrando anche graficamente lo stato in cui deve trovarsi lo Stack prima della loro esecuzione. Mostrare anche quale sara' lo stato dello Stack dopo la loro esecuzione.
(b) Considerate un metodo Java che prenda in input due parametri formali k e j (numeri interi) e che restituisca (2*k)+4 se j e' uguale a zero e j-1 altrimenti. Scrivere il codice IJVM puro (non assembly IJVM) che traduca tale metodo ed il segmento di codice che traduca la chiamata di tale metodo con parametri attuali 5 e 7.
Esercizio 4
(a) E' possibile progettare un codice ad espansione che permetta la codifica di quanto segue in una istruzione di 12 bit? Un registro viene indicato con 3 bit.
  • 4 istruzioni con tre registri
  • 258 istruzioni con un registro
  • 8 istruzioni con zero registri Giustificare la risposta.
    (b) Discutere brevemente il funzionamento della Istruction Fetch Unit del Mic-2, anche in relazione al concetto di parallelismo di tipo pipeline.



    Architettura degli Elaboratori
    14 Giugno 2002
    Parte aggiuntiva per Anni Precedenti


    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.

    Esercizio 5
    Progettare un circuito che produce 1 all'output Z quando l'input X cambia da 0 a 1, oppure da 1 a 0 e produce 0 nei rimanenti casi. Si assuma, per lo stato iniziale, che 0 sia l'ultimo input osservato. Mostrare il diagramma di transizione, la tabella degli stati (con la loro codifica) le mappe di Karnaugh ed il circuito finale.


    Esercizio 6
    Riguardo ai moduli oggetto ottenuti da un assemblatore:
    Cos'e' l' external reference problem? Chi risolve tale problema e come viene risolto? Esiste tale problema nei moduli oggetto ottenuti traducendo un eventuale programma in assembly IJVM scritto in vari file sorgente?