Estratto del documento

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

Anteprima
Vedrai una selezione di 7 pagine su 27
Esercitazione Architettura degli Elaboratori 2 Pag. 1 Esercitazione Architettura degli Elaboratori 2 Pag. 2
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Esercitazione Architettura degli Elaboratori 2 Pag. 6
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Esercitazione Architettura degli Elaboratori 2 Pag. 11
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Esercitazione Architettura degli Elaboratori 2 Pag. 16
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Esercitazione Architettura degli Elaboratori 2 Pag. 21
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Esercitazione Architettura degli Elaboratori 2 Pag. 26
1 su 27
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher flaviabat di informazioni apprese con la frequenza delle lezioni di Architettura degli Elaboratori 2 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Piemonte Orientale Amedeo Avogadro - Unipmn o del prof Moiso Corrado.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community