En 1a) metodo IJVM per valore assoluto
Si programmi il metodo in IJVM che restituisce il valore assoluto di un intero (abs(n))abs(n): = if (n < 0) return (-n), else return n; (per ottenere -n: 0-n).
Due possibili implementazioni
.method abs(n)
.var
.end-var
ILOAD n
DUP
IFLT cambioSegno
IRETURN
cambioSegno:
BIPUSH 0
SWAP
ISUB
IRETURN
.end-method
.method abs(n)
.var
.end-var
ILOAD n
IFLT cambioSegno
ILOAD n
IRETURN
cambioSegno:
BIPUSH 0
ILOAD n
ISUB
IRETURN
.end-method
b) Programma IJVM corrispondente al codice C
Si scriva il programma IJVM corrispondente al seguente codice C:
int y = 12;
int x = 10-k; (k = costante definita nel programma)
int y = abs(x)+2-y;
.constant
OBREF 0 x40
k1 x2
.end-constant
.main
.var
x
y
.end-var
BIPUSH 12
ISTORE y
BIPUSH 10
LDC_W k
ISUB
ISTORE x
LDC_W OBREF
ILOAD x
INVOKEVIRTUAL abs
BIPUSH 2
IADD
ILOAD y
ISUB
ISTORE y
HALT
.end-main
Prova 1 - 6/5/2021
En 1 a) metodo IJVM per valore assoluto
Si programmi il metodo in IJVM che restituisca il valore assoluto di un intero (abs(n))abs(n) = if (n < 0) return (-n); else return n; (per ottenere -n: 0 - n).
Due possibili implementazioni
.method abs(n)
.var
.end-var
ILOAD n
DUP
IFLT cambioSegno
IRETURN
cambioSegno:
BIPUSH 0
SWAP
ISUB
IRETURN
.end-method
.method abs(n)
.var
.end-var
ILOAD n
IFLT cambioSegno
ILOAD n
IRETURN
cambioSegno:
BIPUSH 0
ILOAD n
ISUB
IRETURN
.end-method
b) Programma IJVM corrispondente al codice C
Si scriva il programma IJVM corrispondente al seguente codice C:
int y = 12;
int x = 10-k; (k = costante definita nel programma)
int y = abs(x) + 2 - y;
.constant
OBJREF 0 x 60
k1 42
.end-constant
.main
.var
x
y
.end-var
BIPUSH 12
ISTORE y
BIPUSH 10
LDC_W k
ISUB
ISTORE x
LDC_W OBJREF
ILOAD x
INVOKEVIRTUAL abs
BIPUSH 2
IADD
ILOAD y
ISUB
ISTORE y
HALT
.end-main
2) Estensione del micro-interprete HIC-1 per JVM
Si estenda il micro-interprete HIC-1 per JVM con l'istruzione:
CODICE OPERATIVO NOME MNEMONICO SEMANTICA OPERAZIONE
0 x 88 IINC1 varnum Incremento di 1 la variabile locale con indice varnum
Direttiva per il compilatore: 0 x 88 IINC1 varnum
Direttiva per il caricamento del microprogramma: label iinc11 0 x 88
Se invece di iinc1 si indica iinc, si va a creare conflitto con la direttiva relativa a IINC
Sequenza di microistruzioni
iinc11 H = LV; // MBR contains index, copy LV to H
iinc12 MAR = HBRU + H; rd; // Copy LV index to MAR; read variable
iinc13 PC = PC + 1; Fetch; // Fetch next opcode
iinc14 MDR = MDR + 1; wr; goto Main1 // MDR++, update variable
B) Vantaggi e svantaggi dell'introduzione di IINC1
Discutere gli eventuali vantaggi e svantaggi dell'introduzione di IINC1 rispetto all'uso dell'istruzione IINC varnum 1.
-> MANCANTE
C) Durata in cicli di clock
Qual è la durata, misurata in cicli di clock, dell'esecuzione delle due istruzioni?
- IINC: 6 (+1 per main1)
- IINC1: 4 (+1 per main1)
3) Instruction Fetch Unit (IFU) di HIC-2
Descrivere il funzionamento della Instruction Fetch Unit (IFU) di HIC-2
L'IFU è una componente che viene inserita nell'architettura per ridurre il carico alla ALU. Questa interpreta ogni OPCODE, determinando i parametri richiesti per poi metterli in un registro in modo che l'istruzione possa essere eseguita. La IFU, al posto di un solo registro MBR a 8 bit, ce ne sono due: MBR1 a 8 bit e MBR2 a 16 bit. Le sempre due interfacce con il bus B: MBR1 = MBRU. L'IFU è responsabile del prelievo di un flusso di byte e ha un proprio registro IMAR per indirizzare la porzione della memoria in cui si trova la parola da prelevare. Funziona in modo asincrono con D&EU.
B) Registri PC e IMAR nell'automa a stati finiti
Illustrare come cambiano i valori dei registri PC e IMAR in corrispondenza delle transizioni nell'automa a stati finiti che descrive il comportamento di IFU.
- A) Prelievo di una parola
- B) MBR1: PC = PC + 1
- C) MBR2: PC = PC + 2
2) Istruzione di salto e valore di IMAR
Se un'istruzione di salto imposta PC con il valore 0x5FA7A5, quale valore assume IMAR?
a) PC = 0x5FA7A5 → 0101 1111 1010 0111 1010 010116
b) W(PC): indirizzo della parola in cui è presente
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Esercitazione Architettura degli elaboratori
-
Architettura degli elaboratori - Esercitazione
-
Esercitazione Architettura tecnica
-
Esercitazione 2 proiezioni