Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1 / 17
Chapter Overview
Classification
Memory Addressing
Operand Types
Basic Operations
2 / 17
Classification
Register-memory architectures
Load-store architectures
Stack architectures
Memory-memory architectures
Accumulator architecture
3 / 17
Memory Addressing
4 / 17
5 / 17
16%
24%
TeX
Register indirect spice
gcc
3%
11%
43%
TeX
Immediate spice
gcc
17%
39%
32%
TeX
Displacement spice
gcc
55%
40%
0%
10%
20%
30%
40%
50%
Frequency of the addressing mode
60%
6 / 17
Percentage of displacement
35%
Integer average
30%
25%
20%
Floating-point average
15%
10%
5%
0%
0
5
6
7
8
9 10 11
Number of bits of displacement
12
13
14
15
7 / 17
Frequency of Immediates
Floating-point average
Integer average
22%
23%
Loads
19%
ALU operations
25%
16%
All instructions
0%
21%
5%
10%
15%
20%
25%
30%
8 / 17
Size of Immediates
45%
Percentage of immediates
40%
35%
Floating-point average
30%
25%
20%
15%
Integer average
10%
5%
0%
0
4
5
6
7
8
9 10 11
Number of bits needed for immediate
12
13
14
15
9 / 17
80x86 instr
1
2
3
4
5
6
7
8
9
10
load
conditional branch
compare
store
add
and
sub
move (reg-to-reg)
call
return
Frequency
(% total executed)
22%
20%
16%
12%
8%
6%
5%
4%
1%
1%
10 / 17
Call/return
Jump
Conditional branch
0%
Floating-point average
8%
Integer average
19%
10%
6%
82%
75%
25%
50%
75%
Frequency of branch instructions
100%
11 / 17
Percentage of distance
30%
25%
20%
Integer
average
15%
Floating-point average
10%
5%
0%
0
8
9 10 11 12 13
Bits of branch displacement
14
15
16
17
18
19
20
12 / 17
5%
2%
Not equal
16%
18%
Equal
0%
Greater than or equal
Greater than
11%
0%
0%
Less than
0%
44%
33%
34%
35%
10%
20%
30%
40%
50%
Frequency of comparison types in branches
13 / 17
Additional Comments
PC relative addressing
Indirect jumps
impact on caches
14 / 17
Register allocation
Provide regularity
15 / 17
lucas, level 3
11%
lucas, level 2
12%
Branches/calls
Floating-point ALU ops
lucas, level 1
Loads-stores
21%
100%
lucas, level 0
mcf, level 3
76%
mcf, level 2
76%
mcf, level 1
84%
100%
mcf, level 0
0%
20%
40%
60%
80%
Percentage of unoptimized instructions executed
100%
16 / 17
17 / 17