Architettura degli elaboratori, 13 Luglio 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.
  • Se si passa lo scritto, si deve obbligatoriamente sostenere anche un colloquio orale. Date ed orari degli orali verranno indicati nella pagina dei risultati e sul Forum.
  • Esercizio 1   Cosa si intende per "gerarchia di memoria" (memory hierarchy)? Discuterne.
    Esercizio 2   La rappresentazione binaria delle istruzioni Mic-2 e' identica a quella per le istruzioni Mic-1? Se si, giustificare. Se no, specificare cosa occorre modificare rispetto alla rappresentazione binaria di Mic-1.
    Esercizio 3
    Si supponga di aggiungere a IJVM (realizzato per interpretazione su Mic-1) una nuova istruzione BOING e di aver inserito nel Control Store il codice Mic-1 che la realizza. Si supponga che il codice operativo di BOING sia 0x01 e che, per motivi a noi ignoti, sia impossibile inserire il segmento di codice Mic-1 che realizza BOING nel Control Store a partire dall'indirizzo 0x01.
    Scrivere le istruzioni (due o piu') da mettere nel microinterprete al posto dell'istruzione Main1 affinche' tutto possa funzionare comunque correttamente. Nello scrivere il codice si supponga che l'etichetta "boing1" corrisponda all'indirizzo del Control Store dove e' stato memorizzato il codice che realizza BOING.
    Commentare il codice. Codice non commentato non verra' valutato.
    Se si utilizzasse Mic-2 al posto di Mic-1 per risolvere lo stesso problema, si potrebbe pensare di concludere ogni microprogramma delle varie istruzioni IJVM con un'istruzione "goto Main1" (eliminando quindi il "goto(MBR) )" e poi di aggiungere al microinterprete Mic-2 la microistruzione
    Main1 Z=MBR1-1; if(Z) goto boing1; else goto(MBR1)
    
    Questa soluzione pero' non funzionerebbe. Perche'?
    Descrivere brevemente perche', se si usa Mic-2, la soluzione di questo problema richiederebbe una pesante modifica del microinterprete.
    Esercizio 4
    Elencare alcuni modi per implementare operazioni di Input/Output.
    Nel corso si e' fatto un esempio dettagliato di una particolare implementazione di Input/Output, estendendo e modificando l'hw Mic-1.
    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?

    Esercizio 5
    Descrivere la rappresentazione (a lunghezza fissa) in complemento a due dei numeri interi.
    Fornire una procedura per ottenere, data la rappresentazione in complemento a due di un numero, quella del suo opposto.
    Dimostrare formalmente la correttezza di tale procedura.