Architettura degli elaboratori, 22 Gennaio 2010

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.
  • 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
    Fornire la definizione di Realizzazione Interpretativa di una macchina astratta.
    Descrivere la differenza tra realizzazione interpretativa via firmware o via software. Dire perche', nello stesso sistema organizzato a livelli, non ci possono essere due macchine astratte entrambe realizzate in modo interpretativo.
    Esercizio 2
    Qual e' la funzione di un tipico PIO chip?
    Descrivere i due modi in cui un PIO chip puo' venire selezionato. Fornire un esempio semplice ma dettagliato di utilizzo di uno di tali modi.
    Esercizio 3
    I seguenti segmenti di codice Mic-1 e IJVM erano equivalenti (la loro esecuzione aveva cioe' il medesimo effetto). In uno dei due (e solo in uno dei due) sono stati pero' volutamente inseriti alcuni errori. Individuare tali errori e modificare il codice (fornendo adeguata giustificazione) in modo che i due segmenti di codice tornino ad essere equivalenti. Ricopiare poi i codici, commentandoli.
       MAR=SP; rd                                      DUP
       MAR=PC+1; rd                                    ILOAD 1
       OPC=MDR                                         ISUB
       H=MDR                                           IFLT L
       N=OPC-H; if(Z) goto L1; else goto L2            ILOAD 1
    L2 MAR=OPC; wr                                     SWAP
       MAR=SP+1                                        ISTORE 1
       MDR=H; wr                                    L
    L1
    

    Esercizio 4
    Il linguaggio assembly IJVM possiede una direttiva per definire costanti simboliche con la seguente sintassi
    .constant
    constant1 value1
    constant2 value2
    .end-constant
    Qual e' l'effetto dell elaborazione di una tale direttiva nel processo di assemblaggio di un metodo assembly IJVM che la contenga? In che modo, in un metodo assembly IJVM, e' possibile far riferimento alle costanti simboliche definite da questa direttiva? A cosa corrispondono i valori numerici risultanti dalla traduzione di tali riferimenti simbolici?
    Esercizio 5
    Cos'e' un codice a espansione con configurazione di espansione? Perche' puo' risultare utile utilizzare tali codici per rappresentare i codici operativi di un linguaggio macchina?
    Fare il seguente esercizio relativo a tali codici.
    Una macchina ha le seguenti caratteristiche:
    Dimensione istruzioni: 32 bit
    Numero registri indirizzabili: 8
    Numero celle di memoria : 4K
    Si intende progettare un codice ad espansione (codice operativo espandibile) per codificare il seguente insieme di istruzioni:
    31 istruzioni con due indirizzi di memoria e un indirizzo di registro;
    7 istruzioni con due indirizzi di memoria;
    n istruzioni con un indirizzo di celle di memoria ed un indirizzo di registro.
    Dire, giustificando, qual e' il valore massimo di n.