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.