Architettura degli elaboratori, 2 Ottobre 2008

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 risultati (sia positivi che negativi) verranno registrati sul portale CEA non appena corretti i compiti. Chi non intenda accettare un voto basso o desideri fare un orale in caso di voto basso (se quest'ultimo e' comunque maggiore di 24), deve comunicarlo per tempo al docente o all'assistente in aula ed indicarlo sul proprio elaborato.
  • 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
    Identificare nella macchina Mic-2 quali sono le parti che corrispondono alla componente Controllo di Sequenza. Fornire breve giustificazione.
    Esercizio 2
    Cos'e' un insieme di operatori booleani funzionalmente completo? Dimostrare che {NAND, OR} e' funzionalmente completo.
    Esercizio 3
    Supponiamo di voler realizzare un arbitro, per un'arbitraggio centralizzato ''a stella'' (tipo il bus PCI), utilizzando la macchina microprogrammabile Mic-2 del testo.
    Supponiamo che le 8 linee di richiesta di uso del Bus degli 8 master connessi al Bus siano collegate ai bit piu' significativi del registro PC e che le linee di grant siano collegate ai bit piu' significativi del registro OPC. Scrivere un microprogramma che realizzi il processo di arbitraggio.
    Quali vantaggi si potrebbero ottenere utilizzando Mic-1 anziche' Mic-2?
    Codice non commentato non verra' valutato
    Esercizio 4
    Si prenda in considerazione il codice Mic-2 di INVOKEVIRTUAL, ed in particolare la microistruzione invokevirtual3.
    In che punto del ciclo di clock l'Hw e' a conoscenza che il valore di PC verra' modificato? In che punto del ciclo di clock e' stabile il valore che verra' assegnato a PC? Che cosa provoca nell'Hw Mic-2 una modifica del contenuto di PC? La temporizzazione degli eventi nell'Hw Mic-2 permette che l'istruzione invokevirtual4 sia eseguita correttamente? Potrebbe risultare utile o indispensabile l'inserimento di un'istruzione vuota tra invokevirtual3 ed invokevirtual4?
    Esercizio 5
    Scrivere un metodo assembly IJVM che calcoli il numero massimo di 1 consecutivi contenuti nella parola (di 32 bit) che viene passata come argomento al metodo. Codice non commentato non verra' valutato
    Esercizio 6
    Discutere dello schema di I/O con DMA.