Architettura degli elaboratori, 19 Dicembre 2009

Per A.A. precedente a 08/09: esercizi 1-4
Per A.A. 08/09: esercizi 1-5

(Indicare sul compito se si e' del 08/09 o 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.
  • 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.
  • Per superare lo scritto occorre che almeno uno degli esercizi 3 e 4 sia svolto in maniera sufficiente
  • Se si passa lo scritto, si deve obbligatoriamente sostenere anche un colloquio orale, se indicato dal docente. Date ed orari degli orali verranno indicati nella pagina dei risultati e sul Forum.
  • Esercizio 1
    Fornire la definizione di "livello di Microprogrammazione" all'interno di un sistema di calcolo organizzato a livelli.
    Esiste sempre tale livello? perche'?
    Esercizio 2
    In un processore con parallelismo di tipo pipeline, cosa si intende per latenza (latency) e larghezza di banda del processore (processor bandwidth)?
    Fare le dovute ipotesi e fornire latenza e larghezza di banda per un processore pipeline con n fasi e ciclo di clock di T nsec.
    Cos'e' un processore superscalare? e' anch'esso di tipo pipeline?
    Esercizio 3
    L'hw Mic-1 e' tale da non permettere, in generale, di memorizzare nel Control Store le microistruzioni in binario nello stesso ordine in cui sono scritte nel microcodice mal. Perche'?
    Scrivere due microprogrammi Mic-1 di quattro righe e tali che (la traduzione in binario de) le istruzioni del primo si possano memorizzare nel Control Store nello stesso ordine in cui sono nel programma, mentre per le istruzioni del secondo questo non sia possibile.
    Quali modifiche si dovrebbero apportare all'hw Mic-1 per fare in modo che sia sempre possibile memorizzare nel Control Store le istruzioni nello stesso ordine in cui sono scritte nel microcodice mal?
    Esercizio 4
    Descrivere dettagliatamente il comportamento dell'istruzione INVOKEVIRTUAL.
    E' possibile avere, in un programma assembly IJVM ottenuto dalla traduzione di un programma Java, due istruzioni INVOKEVIRTUAL consecutive? In caso affermativo, fornire un esempio (sia frammento di codice Java che corrispondente traduzione assembly IJVM). In caso negativo, descrivere in modo sufficientemente dettagliato il motivo (sia per quanto riguarda il linguaggioJava, che per quanto riguarda il linguaggio assembly IJVM).
    Esercizio 5
    Si supponga di avere una memoria cache a corrispondenza diretta (direct-mapped cache) composta da 8 linee, ciascuna avente porzione Dati di 4 parole.
    Supponiamo che il processore indirizzi i byte della memoria principale mediante indirizzi di 9 bit abcdefghi aventi il seguente formato: i bit ab per il tag, i bit cde per la linea, i bit fg per la parola, i bit hi per il byte. Si supponga inoltre che inizialmente la cache sia vuota (tutti i bit di validita', Valid, a 0) e che il processore esegua la seguente sequenza di indirizzamenti:
    100011000, 100111001, 110011000, 101010011, 100000000, 110010011, 001010001, 110100011,  010001100, 011010011
    Dire, giustificando la risposta, se, ed in quali casi, avviene un cache hit.
    Risposte prive di giustificazione non verranno valutate.