Confronto architetture ISA

9
Architettura degli elabor atori 25/6/2003 Confronto architetture ISA P.Torasso

description

Confronto architetture ISA. P.Torasso. Macchina a tre indirizzi. Architettura load/store (solo queste due istruzioni accedono a dati in memoria) Architettura con 32 registri di cui 28 di uso generale (R0 – R27) Tutte le istruzioni stanno in una sola parola di 32 bit (semplificazione) - PowerPoint PPT Presentation

Transcript of Confronto architetture ISA

Page 1: Confronto architetture ISA

Architettura degli elaboratori 25/6/2003

Confronto architetture ISA

P.Torasso

Page 2: Confronto architetture ISA

Architettura degli elaboratori 25/6/2003

Macchina a tre indirizzi• Architettura load/store (solo queste due istruzioni

accedono a dati in memoria)

• Architettura con 32 registri di cui 28 di uso generale (R0 – R27)

• Tutte le istruzioni stanno in una sola parola di 32 bit (semplificazione)

• Le operazioni logiche aritmetiche avvengono tra registri

• Operazioni logico aritmetiche possono avere un operando che è un immediato

• Le istruzioni di salto condizionato dipendono dal risultato della istruzione precedente (bit impostato su PSW)

Page 3: Confronto architetture ISA

Architettura degli elaboratori 25/6/2003

Macchina a tre indirizzi• Istruzioni aritmetiche e logiche hanno la forma

src1, src2, dest dove scr1, scr2 e dest sono dei registri di uso generale,

• Le istruzioni con questo formato siano ADD, SUB, MULT, AND, OR, XOR, NOR

• Per le istruzioni di cui sopra esiste anche un formato in cui scr2 è sostituito da un immediato (nelle operazioni aritmetiche interpretato come numero in complemento a due). Il formato è src1, immed, dest dove scr1 e dest sono dei registri di uso generale

• In questo formato il codice operativo è ADDi, SUBi, MULTi, ANDi, ORi, XORi, NORi

Page 4: Confronto architetture ISA

Architettura degli elaboratori 25/6/2003

Macchina a tre indirizzi• Le istruzioni NOT e INV hanno il formato

Scr, dest dove scr e dest sono registri di uso generale

• Esistono anche istruzioni per lo shift a destra (SHR) e a sinistra (SHL) il cui formato è src,immed, dest dove il contenuto di scr e’ shiftato di un numero di bit dato da immed e il risultato e’ salvato in dest

• Scr e dest sono registri di uso generale

Page 5: Confronto architetture ISA

Architettura degli elaboratori 25/6/2003

Macchina a tre indirizzi• La LOAD ha formato addr, dest dove addr è l’indirizzo di una cella di

memoria e dest è un registro generale. La LOAD carica in dest il contenuto della cella di cui si è fornito addr

• L’ istruzione LOADi carica in dest l’immediato che è fornito come parametro

• LOADx carica in dest quanto e’ contenuto nella cella il cui indirizzo e’ ottenuto sommando a scr (usato come il registro indice) l’offset

Esempi

• LOAD 1000, R2

• LOADi 1000,R2

• LOADx R1, 1000, R2

Per istruzione STORE esiste formato Src, Addr e formato indicizzato STOREx con Scr, offset, Index

Page 6: Confronto architetture ISA

Architettura degli elaboratori 25/6/2003

Macchina a tre indirizzi• Istruzione di salto incondizionato è JUMP Addr

(l’indirizzo e’ un displacement rispetto al registro PC)

• Ci sono varie istruzione di tipo BRANCH nel cui codice operativo è indicata anche la condizione (ze, nz, po, np, ne,nn)

• Le istruzioni di tipo BRANCH hanno il formato Branch addr e valgono le stesse considerazioni fatte per Jump Jump

• Esiste una istruzione CALL addr e la sua duale RETURN

Page 7: Confronto architetture ISA

Architettura degli elaboratori 25/6/2003

Esempio Architettura tre indirizziSupponendo che le variabili k, i e j

siano memorizzate nelle celle di indirizzo esadecimale 1000, 1003 e 107 rispettivamente

LOAD 1003, R1

SHL R1,2,R1

LOAD 107,R2

SUB R1,R2,R3

SUBi R3,3,R3

BRze 3

AND R2,0,R2

JUMP 2

ADDi R2,5,R2

STORE R2, 107

STORE R3, 1000

Frammento in JAVA

k = 4*i –j –3

if (k= =0)

j = j+5;

else

j = 0;

Page 8: Confronto architetture ISA

Architettura degli elaboratori 25/6/2003

Esempio Architettura tre indirizziLOAD 1003, R1

SHL R1,2,R1

LOAD 107,R2

SUB R1,R2,R3

SUBi R3,3,R3

STORE R3, 1000

ADD R3, 0, R3

BRze 3

AND R2,0,R2

JUMP 2

ADDi R2,5,R2

STORE R2, 107

Come nel caso precedente si suppone che le variabili k, i e j siano memorizzate nelle celle di indirizzo esadecimale 1000, 1003 e 107 rispettivamente

Per essere più vicini ad una traduzione di ogni singola istruzione java si può avere il seguente codice

E’ necessaria una istruzione logica artimentica (es ADD R3, 0, R3) per settare i bit della condizione che verranno analizzati da BRze

L’istruzione AND R2,0,R2 può essere sostituita da LOADi 0, R2

Page 9: Confronto architetture ISA

Architettura degli elaboratori 25/6/2003

Esempio in IJVMFrammento in JAVA

k = 4*i –j –3

if (k= =0)

j = j+5;

else

j = 0;

Supponendo che le variabili k, i e j siano memorizzate nella local variable area con offset 5, 2 e 6 rispettivamente

ILOAD 2 ISTORE 6

DUP GOTO 6

IADD IINC 6 5

DUP ……..

IADD

ILOAD 6

ISUB

BIPUSH 3

ISUB

ISTORE 5

ILOAD 5

IFEQ 10

BIPUSH 0