Presentazione di PowerPoint - Dipartimento di Ingegneria

Transcript

Presentazione di PowerPoint - Dipartimento di Ingegneria
Prof. G. Ascia
Architettura del set di istruzioni
(ISA)
1
Calcolatori Elettronici-Ingegneria Telematica
Instruction Set Architecture
Prof. G. Ascia
Application (Netscape)
Compiler
Software
Hardware
Assembler
Operating
System
(Windows)
Processor Memory I/O system
Instruction Set
Architecture
Datapath & Controllo
Digital Design
Circuit Design
transistors
Calcolatori Elettronici-Ingegneria Telematica
2
Classificazione dell’ISA
Prof. G. Ascia
Stack:
Gli operandi sono implicitamente sulla cima dello stack
0 operandi add
tos ← tos + next
Stack Pointer
tos
next
..
Accumulatore:
Un operando è implicitamente l’accumulatore
1 operando add A acc ← acc + mem[A]
1+x operandi addx A
acc ← acc + mem[A + x]
3
Calcolatori Elettronici-Ingegneria Telematica
Classificazione dell’ISA
General Purpose Register
Prof. G. Ascia
Gli operandi sono tutti espliciti: possono essere registri o memoria.
Abbiamo tre classi di GPR Architecture:
• Memoria-Memoria:
2 operandi add A B mem[A] ← mem[A] + mem[B]
3 operandi add A B C
mem[A] ← mem[B] + mem[C]
• Registro Memoria:
2 operandi add Ra,C
Ra ← Ra+mem[C]
3 operandi add Ra,Rb,C
Ra ← Rb+mem[C]
• Registro-Registro (Load/Store):
3 operandi add Ra Rb Rc
Ra ← Rb + Rc
Calcolatori Elettronici-Ingegneria Telematica
4
Confronto
Prof. G. Ascia
• In riferimento all’istruzione di alto livello A:= B+C
STACK
REGISTROREGISTRO
MEMORIAREGISTRO
MEMORIAMEMORIA
ADD
PUSH
B
LOAD
R1, B
LOAD
B
PUSH
C
LOAD
R2, C
ADD
C
ADD
R3,R1,R2 STORE
STORE
A, R3
ADD
POP
A
A,B,C
A
5
Calcolatori Elettronici-Ingegneria Telematica
Alcuni esempi
Prof. G. Ascia
Machine
EDSAC
IBM 701
CDC 6600
IBM 360
DEC PDP-8
DEC PDP-11
Intel 8008
Motorola 6800
DEC VAX
Intel 8086
Motorola 68000
Intel 80386
MIPS
HP PA-RISC
SPARC
PowerPc
DEC Alpha
Number of
registers
1
1
8
16
1
8
1
2
16
1
16
8
32
32
32
32
32
Calcolatori Elettronici-Ingegneria Telematica
Architecture Style
Year
accumulator
accumulator
load-store
register-memory
accumulator
register-memory
accumulator
accumulator
register-memory, memory-memory
extended-accumulator
register-memory
register-memory
load-store
load-store
load-store
load-store
load-store
1949
1953
1963
1964
1965
1970
1972
1974
1977
1978
1980
1985
1985
1986
1987
1992
1992
6
General Purpose Registers
Prof. G. Ascia
• 1975-2004 tutte le macchine usano general purpose
registers
• Vantaggi dei registri:
– Sono più veloci della memoria
– Sono più facili da usare per un compilatore
• Es., (A*B) – (C*D) – (E*F) A differenza dello stack, i prodotti
possono essere eseguiti in qualsiasi ordine
– Possono conservare variabili
• Il traffico con la memoria è ridotto, cosicchè I programmi sono
più veloci
– La densità del codice aumenta (poichè la codifica del nome
di un registro richiede meno bit dell’indirizzo di una locazione
di memoria)
7
Calcolatori Elettronici-Ingegneria Telematica
Indirizzamento della memoria
Prof. G. Ascia
• Ogni macchina usa indirizzi a livello di 8 bit (byte)
• Due problemi per il progetto dell’ ISA:
– Dal momento che una word di 32 bit può essere letta come
una sequenza di quattro byte, come mappare gli indirizzi a
livello di byte all’interno della word ?
– L’indirizzo iniziale di una word può essere qualsiasi?
Calcolatori Elettronici-Ingegneria Telematica
8
Ordinamento degli indirizzi
• Big Endian:
L’indirizzo del byte più significativo = indirizzo word
(xx00 = Big End of word)
Prof. G. Ascia
– IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA
• Little Endian:
L’indirizzo del byte meno significativo = indirizzo word
(xx00 = Little End of word)
– Intel 80x86, DEC Vax, DEC Alpha (Windows NT)
9
Calcolatori Elettronici-Ingegneria Telematica
Allineamento in memoria
Prof. G. Ascia
• Esempio: parole di 32 bit, formate da quattro banchi di 8 byte
• La parola tratteggiata è non allineata; ha il byte meno
significativo in i+6 (Little Endian) il più significativo in i+9
• Occorrerebbero due accessi alla memoria
Calcolatori Elettronici-Ingegneria Telematica
10
Modalità di indirizzamento (dati)
Significato
Prof. G. Ascia
Modalità
Esempio
Register
Add R4,R3
R4
R4+R3
Immediate
Add R4,#3
R4
R4+3
Displacement
Add R4,100(R1)
R4
R4+Mem[100+R1]
Register indirect
Add R4,(R1)
R4
R4+Mem[R1]
Indexed / Base
Add R3,(R1+R2)
R3
R3+Mem[R1+R2]
Direct or absolute
Add R1,(1001)
R1
R1+Mem[1001]
Memory indirect
Add R1,@(R3)
R1
R1+Mem[Mem[R3]]
Post-increment
Add R1,(R2)+
Pre-decrement
Add R1,–(R2)
R1
R2
R1+Mem[R2]; R2= R2+d
R2–d; R1 = R1+Mem[R2]
11
Calcolatori Elettronici-Ingegneria Telematica
Uso delle modalità di indirizzamento
Prof. G. Ascia
3 programmi
misurati su una macchina con tutte le
modalità di indirizzamento (VAX)
--- Displacement:
42% avg, 32% to 55%
--- Immediate:
33% avg, 17% to 43%
75%
88%
--- Register deferred (indirect): 13% avg, 3% to 24%
--- Scaled:
--- Memory indirect:
--- Misc:
7% avg, 0% to 16%
3% avg, 1% to 6%
2% avg, 0% to 3%
75% displacement & immediate
85% displacement, immediate & register indirect
Calcolatori Elettronici-Ingegneria Telematica
12
Modalità di indirizzamento (controllo)
Prof. G. Ascia
• Salto, salto condizionato, chiamata e ritorno da
sottoprogrammi
– Diretto
– Relativo al PC o ad altro registro
• Esempi
JMP DEST
; Diretto o relativo a PC
JZ wait
; Di solito relativo a PC
callsub
; Di solito diretto
BR R30
; EA destinazione = R30
13
Calcolatori Elettronici-Ingegneria Telematica
Dimensione dello spiazzamento
Prof. G. Ascia
Int. Avg.
FP Avg.
30%
20%
10%
15
14
13
12
Address Bits
11
10
9
8
7
6
5
4
3
2
1
0
0%
Solo 1% degli indirizzi > 16 bit
Sono necessari 12 - 16 bit
Calcolatori Elettronici-Ingegneria Telematica
14
Indirizzamento: riassumendo
Prof. G. Ascia
ƒModalità di indirizzamento dei dati più importanti:
•Displacement, Immediate, Register Indirect
ƒ Dimensione dello spiazzamento:
•dai 12 ai 16 bit
ƒ Dimensione degli operandi immediati:
• dagli 8 ai 16 bit
15
Calcolatori Elettronici-Ingegneria Telematica
Formato delle istruzioni
Prof. G. Ascia
Variabile:
(VAX)
…
…
Fissa:
(MIPS,PowerPC)
Ibrida:
(Intel 80x86)
Calcolatori Elettronici-Ingegneria Telematica
16
Formato delle istruzioni
Prof. G. Ascia
• Se la dimensione del codice è il requisito più importante,
si usano istruzioni a lunghezza variabile
– Questo stile è il migliore quando sono presenti molte
modalità di indirizzamento e operandi
• Se le prestazioni sono il requisito più importante, si usano
istruzioni a lunghezza fissa
– Questa scelta è particolarmente indicata quando
l’operazione e la modalità di indirizzamento sono combinate
nel codice operativo
– Lavora bene quando sono presenti poche modalità di
indirizzamento
17
Calcolatori Elettronici-Ingegneria Telematica
MIPS:
Modalità di indirizzamento
Formato Istruzioni
Prof. G. Ascia
• Tutte le istruzioni solo di 32 bit
Register (direct)
op
rs
rt
rd
register
Immediate
Base+index
op
rs
rt
immed
op
rs
rt
immed
register
PC-relative
op
rs
PC
Calcolatori Elettronici-Ingegneria Telematica
rt
Memory
+
immed
Memory
+
18
Formato Power PC
Prof. G. Ascia
ADD
ADD.
ADDO
ADDO.
RD,RA,RB
RD,RA,RB
RD,RA,RB
RD,RA,RB
(OE=0,
(OE=0,
(OE=1,
(OE=1,
Rc=0)
Rc=1)
Rc=0)
Rc=1)
Calcolatori Elettronici-Ingegneria Telematica
19
PowerPC
Prof. G. Ascia
Calcolatori Elettronici-Ingegneria Telematica
20
Formato Intel
Prof. G. Ascia
Esempio
MOV
EAX, ES:V[EBX+EIX]
PUSH
EAX
6 byte
1 solo byte
PUSH Var[EBX]
fino a 6 byte
21
Calcolatori Elettronici-Ingegneria Telematica
Le prime 10 istruzioni 80x86
Prof. G. Ascia
° Rank instruction
Integer Average Percent total executed
1
load
22%
2
conditional branch
20%
3
compare
16%
4
store
12%
5
add
8%
6
and
6%
7
sub
5%
8
move register-register
4%
9
call
1%
10
return
1%
Total
96%
° Simple instructions dominate instruction frequency
Calcolatori Elettronici-Ingegneria Telematica
22