Architettura degli elaboratori, 4 Ottobre 2007

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.
  • Gli iscritti alla laurea triennale debbono essersi prenotati sul portale studenti del nostro ateneo. In caso cio' non sia stato fatto, comunicatelo immediatamente al docente o all'assistente in aula.

  • Esercizio 1
    Che relazione esiste tra le Macchine di Turing ed il concetto di Macchina Astratta Imperativa? Ogni macchina astratta e' comunque imperativa, o possono esserci altre nozioni di macchina astratta? Giustificare.
    Esercizio 2
    Si consideri la figura 3.38(a) del testo, rappresentante il diagramma temporale degli eventi in un bus sincrono durante un ciclo di lettura di una parola di memoria.
    Cosa rappresenta l'intervallo TAD? Perche' nel testo si indica che tale intervallo non ha un limite minimo (potrebbe anche essere 0), ma non puo' superare 4 nsec come limite massimo?
    Esercizio 3
    Descrivere brevemente le soluzioni proposte nel materiale del corso per realizzare la gestione di Trap per IJVM relativamente all'uso scorretto dello Stack degli operandi.
    Esercizio 4
    Si supponga di avere in Memoria Dati due vettori A e B, di 1024 parole ciascuno. Tali vettori sono memorizzati a partire dagli indirizzi contenuti, rispettivamente, nei registri OPC e SP. Scrivere il programma Mic-1 che calcoli l'OR bit a bit di tutte le 1024 parole che si ottengono calcolando, per ogni parola del vettore A, l'AND bit a bit con la parola corrispondente in B. Tale risultato deve essere inserito in TOS.
    Esercizio 5
    Tradurre in JAVA o in qualsiasi linguaggio ad alto livello, il seguente metodo assembly IJVM.
    .method Boh(x)
            ILOAD x       
            IFEQ zero     
            BIPUSH 1    
            LDCW objref   
            LDCW objref   
            ILOAD x
            BIPUSH 1
            ISUB
            INVOKEVIRTUAL Boh 
            BIPUSH 1
            ISUB
            INVOKEVIRTUAL Boh 
            LDCW objref
            ILOAD x
            BIPUSH 1
            ISUB
            INVOKEVIRTUAL Boh 
            IADD
            IADD
            GOTO fine
    base:   BIPUSH 0      
    fine:   IRETURN
    .end-method
    

    Esercizio 6
    Discutere brevemente dei Criteri progettuali per i formati d'istruzioni del livello ISA.