Testo dell`esonero - Dipartimento di Informatica

Corso di Laurea in Informatica
Architetture degli Elaboratori
Corsi A e B
Esonero del 7 luglio 2005
Esercizio 1 (punti 4)
Le seguenti microistruzioni implementano l’istruzione IJVM IINC varnum const che somma
una constante (const) a una variabile locale (varnum). Completare le parti mancanti.
H=
MAR = MBRU + H;
PC = PC + 1; fetch
= MDR
PC = PC + 1; fetch
= MBR + H; wr; goto Main1
Esercizio 2 (punti 3)
Data la seguente configurazione di bit del registro MIR dell’architettura Mic-1:
NEXT ADDRESS:
JMPC, JAMN, JAMZ:
SLL8, SRA1:
F0 , F1 , ENA, ENB, INVA, INC:
H, OPC, TOS, CPP, LV, SP, PC, MDR, MAR:
WRITE, READ, FETCH:
Bus B:
000000010
000
00
111100
001000010
100
0000
specificare in formato MAL la microistruzione in esecuzione sapendo che l’indirizzo NEXT ADDRESS
corrisponde all’etichetta “Main1”, che l’operazione corrispondente a F 0 e F1 è la somma
e che i registri sul bus B sono codificati nel seguente modo: MDR (0), PC (1), MBR (2),
MBRU (3), SP (4), LV (5), CPP (6), TOS (7), OPC (8).
Esercizio 3 (punti 3)
Si supponga che nel Mic-1 i sottocicli del ciclo di clock richiedano i seguenti tempi:
• preparazione dei segnali di controllo (∆w): 1 nsec.;
• caricamento del contenuto di un registro sul bus B (∆x): 0.5 nsec.;
• funzionamento della ALU e dello shifter (∆y): 1.5 nsec.;
• propagazione dei risultati ai registri (∆z): 1 nsec.;
• che la larghezza dell’impulso di clock è 0.5 nsec.
1
Questa macchina può funzionare a 100 MHz? 200 MHz? 300 MHz?
Esercizio 4 (punti 3+1)
Scrivere la sequenza di istruzioni IJVM tale che sia la traduzione corretta del frammento di
codice Java seguente e sapendo che le variabili x e y sono memorizzate nelle posizioni 1 e 2
nel frame di allocazione delle variabili locali :
x = x
if (x
x
y = y
<
=
-
y;
0)
0;
1;
Dire quanti byte occupa tale frammento di codice IJVM.
Esercizio 5 (punti 3)
Si consideri l’istruzione IJVM ISTORE varnum che effettua il pop di una parola dallo
stack e la memorizza in una variabile locale. Riordinare le seguenti microistruzioni affinché
implementino correttamente l’istruzione suddetta per l’architettura Mic-1.
1. MAR = MBRU + H
2. TOS = MDR; goto Main1
3. H = LV
4. PC = PC + 1; fetch
5. MDR = TOS; wr
6. SP = MAR = SP - 1; rd
Esercizio 6 (punti -1, 4)
Si considerino le varie modalità di indirizzamento.
a) Un esempio di indirizzamento di tipo immediato è quella dell’istruzione IJVM “BIPUSH 1”.
b) Un esempio di indirizzamento di tipo a stack (o zero indirizzi) è quella dell’istruzione
IJVM “GOTO L0”.
c) Nell’indirizzamento di tipo diretto l’indirizzo in memoria a cui reperire l’informazione
si determina sommando due valori di cui uno solitamente contenuto in un registro
mentre l’altro fornito nell’istruzione stessa.
d) Nell’indirizzamento di tipo indiretto l’indirizzo in memoria a cui reperire l’informazione
è contenuto nell’istruzione stessa.
e) Nell’indirizzamento di tipo indicizzato l’indirizzo in memoria a cui reperire l’informazione
si determina sommando due valori di cui uno solitamente contenuto in un registro
mentre l’altro fornito nell’istruzione stessa.
f) Un esempio di indirizzamento di tipo indicizzato è quella dell’istruzione IJVM “BIPUSH 1”.
2
Esercizio 7 (punti -1, 4)
Si consideri l’architettura denominata Mic-2.
a) Il control store contiene un numero di microistruzioni superiore rispetto all’architettura
Mic-1 ma inferiore in termini di lunghezza della singola microistruzione.
b) Il control store contiene un numero di microistruzioni inferiore rispetto all’architettura
Mic-1 ma superiore in termini di lunghezza della singola microistruzione.
c) Dispone di una unità per l’esecuzione in parallelo del caricamento delle istruzioni
(prefetch).
d) L’operando di sinistra dell’ALU (bus A) è implicito, in quanto fornito sempre dal
registro H.
e) L’ALU effettua l’incremento del registro PC per reperire l’istruzione successiva.
f) In generale, i tempi di preparazione dei segnali di controllo (∆w), di caricamento del
contenuto di un registro sul bus B (∆x), di funzionamento della ALU e dello shifter
(∆y), di propagazione dei risultati ai registri (∆z) e la larghezza dell’impulso di clock
sono assunti più brevi rispetto a quelli dell’architettura Mic-1.
Esercizio 8 (punti -1, 4)
Si considerino i calcolatori che implementano un instruction set di tipo CISC rispetto a
quello di tipo RISC.
a) In generale, i primi riescono a mettere in esecuzione un numero maggiore di istruzione
rispetto ai secondi a parità di tecnologia utilizzata.
b) In generale, i primi richiedono che gli operanti (sorgenti e destinazione) di gran parte
delle istruzioni siano forniti esclusivamente dai registtri.
c) In generale, nei secondi l’esecuzione delle istruzioni è divisa in molte fasi, ognuna
delle quali viene gestita da un pezzo di hardware dedicato in modo che tutto possa
funzionare in parallelo.
d) In generale, nei primi viene adottata la tecnica del pipeline per avviare un numero
maggiore di istruzioni in esecuzione rispetto ai secondi a parità di tecnologia utilizzata.
e) In generale, i secondi affidano al compilatore il lavoro di riorganizzare le istruzioni
affiché sia possibile sfruttare l’esecuzione parallela delle istruzioni (risoluzione delle
dipendenze tra istruzioni).
f) I calcolatori che implementano un instruction set di tipo RISC sono nati negli anni
’90.
Esercizio 9 (punti -1, 4)
Si consideri il processo di assemblaggio a due passi e il linguaggio assembler (o assembly).
a) Nel primo passo il processo di assemblaggio colleziona le informazioni riguardanti i
simboli di variabili e le etichette di salto presenti per programma assembler.
3
b) Ogni istruzione assembly ha una corrispondenza uno ad uno con le istruzioni a livello
ISA.
c) In generale, ogni istruzione assembly ha una corrispondenza uno a molti con le
istruzioni a livello ISA.
d) Compito del processo di assemblaggio è quello di sostituire ogni nome simbolico di
istruzione con il suo codice binario e di sostituire i riferimenti simbolici con riferimenti
binari.
e) Nel secondo passo il processo di assemblaggio colleziona le informazioni riguardanti i
simboli di variabili e le etichette di salto presenti per programma assembler.
f) Il processo di assemblaggio a due passi ha lo scopo di risolvere il problema del riferimento in avanti, ossia il riferimento ad un simboli la cui definizione avviene in un
secondo tempo.
4
Esonero di Architetture degli Elaboratori del 27/5/2005
MODULO RISPOSTE
Cognome:
Nome:
Matricola:
Corso:
1. (Punti 4)
H=
MAR = MBRU + H;
PC = PC + 1; fetch
= MDR
PC = PC + 1; fetch
= MBR + H; wr; goto Main1
2. (Punti 3)
Istruzione MAL:
3. (Punti 3)
100 MHz
200 MHz
300 Mhz
4. (Punti 3+1)
Codice:
Numero byte:
5. (Punti 3)
Sequenza corretta:
5
6. (Punti -1, 4)
a
b
c
d
e
f
c
d
e
f
c
d
e
f
c
d
e
f
7. (Punti -1, 4)
a
b
8. (Punti -1, 3)
a
b
9. (Punti -1, 4)
a
b
6
Esonero di Architetture degli Elaboratori del 7/7/2005
SOLUZIONI
Cognome:
Nome:
Matricola:
Corso:
1. (Punti 4)
H = LV
MAR = MBRU + H; rd
PC = PC + 1; fetch
H = MDR
PC = PC + 1; fetch
MDR = MBR + H; wr; goto Main1
2. (Punti 3)
Istruzione MAL: TOS = MDR = MDR + H; wr; goto Main1
3. (Punti 3)
100 MHz
200 MHz
4. (Punti 3+1)
Codice:
ILOAD 1
ILOAD 2
ISUB
ISTORE 1
ILOAD 1
IFLT L0
GOTO L1
L0: BIPUSH 0
ISTORE 1
L1: ILOAD 2
BIPUSH 1
ISUB
ISTORE 2
Numero byte: 26
5. (Punti 2)
Sequenza corretta: 3, 1, 5, 6, 4, 2
7
6. (Punti -1, 4)
a
e
7. (Punti -1, 4)
b
c
8. (Punti -1, 4)
c
e
9. (Punti -1, 4)
a
b
d
f
8