Академический Документы
Профессиональный Документы
Культура Документы
"!$#&%')(+*, .-/10324'5,6 )789;:<=?>A@ ?BDCE#F;(
G H IKJMLON/PRQMSTN/UVWJ
g7hjikmlonqpOkmr
sth ivuwk xyuzi6r{)h |ql}rhjpwr
|j~
u4irhqpK~nqxyu)
uu| kau g~
sz
" uu| kau ghqiEk}lonjp$kmrs)hqi|eul|al}s{lT
~sz
k<yu4ivu "r
uK
--#F#&
(
y
"!$#&%')(+*, .-/10324'5,6
)789;:<=?>A@ ?BDCE#F;(
H IKJMLON/PRQMSTN/UVWJ
k Tp uzxqikyu u4 sTl6 ~
s5p3kor
s)hqi 3 kkyu
kms| sk<yu ikTp Thqx
| nqimyu4ilmu4imny~ k<is)h k yu kms|
sk<yu ikTp
s jqr kTi|ql}s ?q
~
kau ~Tik s)hyu
"
--#F#&
(
":)
'
G;
A
" )
":)
B;
F;
G;
B;
9
F;
C B;
D
C B;
D
" )
%
?
@
>
"
&
! =
"! )
<
":)
&
3+
! ;
>
>
>
>
E*
C B;
D
6
! (
54)
!
)
3)
"
!
+
! *
! (
3 #
"
! *
2
10/
- ,
.
" #
'
&%
$!
" #
"
!
;77R
2 ,4
2
' (
F#8;&#
F#W
5
5
' F'#F;
(
& #F
# -
-
W1(A8F9
t#;8
$
8 $
" 6 8
8 6
#8 $
Tparhyuzi Rl}u
+
sz)ul6 y
u~ rhy{~ sTl}u e
| s|ny~lThqx s)ik |Ws)ik
, . ol par kmuzp$k<n5l}uzil}u
~ sTx&iEkmsl}u Tp yrhyu4i
t
--#F#&
(
9
=
!)
":)
"!
A
>
=
A
!
'
! (
&%
"'!
$ =
%
"
3
(
!
! (
'
&%
"'!
")
"
>
! 8
":)
"'!
!)
")
3+
"
":)
>
9
4
+
<
:)
"+
"<
!)
+
&
v,(a
! 8;
#
y
! =
"
&
"! )
<
! ;
;77R
2 ,4
2
' (
F#8;&#
F#W
5
5
' F'#F;
(
& #F
# -
-
H VWLwN Y5JcY
MN V
uwk
lmu|almu4ivu4h)k s|eul3kor
s)hjirk uz sl6
s|eulThjxqiThqx kms?k~ s|WuKlhqxqi|euKls|WuKlRkmr
sth
u {riEkmul'&) u{riEkmuKl
. o ji i6r |j~
u y5uzx
~
uzhy{?k< uzhqpws"xarhy{ |es)imi6rq~
u)i6r |j~
r
"rhy{ pws5xyu
{uzhyuKl<3kmrs)h g7hqiEk}lnqp$kor
s)hjij)u ~
sz gqn"k
sTl}u rhqikmlonqpOkmrs)hqi eu hyuuzxyu4x kos uO5|almu4imi
|alms{Tl s) u rhqikmlonqpOkmrs)hqi hys?k n"kor
~
r u
~~kyurl uzhqpws"xarhy{ i6| pwu
"
u {riEkmul'&)( uz sTlv
< 3k< p4Th eu
Tppwu4imivu4x r k<ys)n"k ~
sTx s|eul3kor
s)h
g7hjikmlonqpOkmr
sth 8sTlo 3k p4Th Wu u/Ti6r~ u4hjpws"xyuzx r k<
{ss5x xyuzhqivr k hqpKs"xyrha{ s u4 sTl6 hqx
l}u{riEkmul sl uzTp rhjikmlonqpOkmr
sth ~r r k<i hnj euls
l}u{riEkmuloi g_TRlmr
uzi s|eulThqx ~
s"p43kmrs)h
u4 sTl6 &)( uz s l6
& Ti~Rlm{u T l}rRkmr
sth
rh rhqikmlonqpOkmrs)h 6i r u Thqx sTl} xys)hau T h
rhjikmlonqpOkmr
sth ( zu sl6 TppKu4imip4Th eu
es?k}km~u4hyuzp
(
--#F#&
(
K (
7
H
fN4Y PcY"PU.J
lxyuKl
crkvkm~u hqxarTh
.
!,
.
r
{ hqxyrh
.
z
.
1
z
.
rh
!,
.
--#F#&
(
a 'F (?BE'1
uzp$k
ru
rh kou4i:
kmu
~r
{)hau4x
s"x
s"x
s"x
)uKlv yuKlmu
~ sTlox
slox
s)nyq~u slox
yuKlmu
.
s) |qr
~uKloik5|qrp4~
~ jThqxy~u ?~
r
{thq uzh)k ( s)iEk
--#F#&
(
a?EE 8
W 7
(
H Z \P/Y5L4L4U8J
V cY5L
" g7 u4xyr3kmu
ri6|q~Tpwuz uzh)k
5
u{riEkmul xyu8uKl}l}u4x
rhqxyrlmu4pOk2
" g7hjxyuO5uzx
u4 sTl6 rhjxyrlmu4p$k
(
r
l}u4pOk
5
n"kmsrhqpwl}u4 u4htk
n"kos"xyu4pwl}uz uzh)k
p4~
uzx sTl rhqxyuw5u4x
--#F#&
(
V cY5L
--#F#&
(
G G H
!#"%$'&
$'(*)
+ 67,.8#"9$&
,.!#"%$'&
&
+-,.$
#,,/0$0(.1
$(*);:#<2.$>=?&
$'(*)4D(5$>$,
#(
2$'
$'#(5@(.1
)4A?B)
$("9+-,.@(51
&
,.$
/4#(51 $
C/01 $
$"EA?#(.@0&
30%
Integer average
25%
Floating-point average
20%
Percentage of
displacement
15%
10%
5%
0%
0
10
11
12
13
14
15
Value
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b
n&
&
9
$,.!B)0$
"%+ &
</ $
&
x
)4A5$
@&
j
#
$,.!B)0$
.
+-,.$s)E $
&
! - s
#(
('
:#<2.$
+ $>/4#(8, F
+ V$9/4C)0z+ (
t NMRLb
6/0+*&
+ #,89=
<O2 $
10%
Loads
45%
87%
Compares
77%
58%
ALU operations
78%
35%
All instructions
10%
0%
50%
100%
Floating-point average
FIGURE 2.8 We see that for integer ALU operations about one-half to threequarters of the operations have an immediate operand, while for integer compares
75% to 85% of the occurrences use an immediate operand.
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b
n&
&
$,.!B)0$
6 >:*+#/
&
<OV: <@2.$'
! "$9)X3
9
5
t NMRLb
)0+
Y)0/ +*(.1^
#(,
"J)4 #wF
60%
gcc
50%
40%
30%
TeX
20%
spice
10%
0%
0
8
12
16
20
24
Number of bits needed for an immediate value
28
32
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b
$9/ B)0O+*(
6 <za@(*) +
) A.$
/0 ) A&
6 +^zz+ 3D(.1
$9)0"
#(,
B)E
$'"%@&
<
/4<A.@"
#(,
u)0+#/0$
="<OZ=/0$%) 2/ ( =)0/4<
+ @(*)
u)0/ @(51
&
+ #,
"5/4#(8"EA = 2&
+*(*)0/ +
O$
= =u=
/ #( 6 $>/
O+ B) @(.1
. )0$'&
"
t NMRLb
#&
+ 1 "<
5 jV
-$
6] F$
%
u) /0@(.1
#
#,,
&
(,
&
2.J)0z8
C/0$^=8 $'C/4"EA
?>=8"%+ &
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
= =u=
+':*$*=?"%+*&
$>
+^?9=
5/0$0
qsr4turwvxNMRYQyNZdzd{b
"
O+ B) @(.1
5/0@&
+^@(*)
+#/ ,8;6 + /
C/ O
5/0$,.+ &
+ $9/ #(,>=-3
+ (
"J)
Double word
(8#(*)
A.zO$
Byte
-
" )
,5+*2"O$
+ $9/ B)0O+*(
/0$>
+ $9/ #(,>F
0%
69%
74%
Word
Half word
2 $
t NMRLb
31%
19%
0%
7%
0%
0%
20%
40%
60%
80%
Floating-point average
FIGURE 2.16 Distribution of data accesses by size for the benchmark programs.
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b
)4A.$
#&
&
+#/ $
C/0"O$
$"9 8$>/
6]+#/
A.$ #,.$9/F
! !
6]$%3
"5/0@,
+ $>/4B) z+*(
$
A.$9/0$
/ $',2"%$
A.+'3
#(
/ $h2.J/0$
) +
A.$
&
#7$>/ &
$(8"%+-,.(.1*>=-3
@
"%O$("
(
)4
A5@"EA
#
"?2)
+ $>/4B) +#/
+^$9/ #(,
&
+#/0$
#
)4A5$
@ +
$ .5/ $' D
6]$%3
C/0$
A8>:*$
&
5/ + 1 /4#&
#wF
@("9@2,5$
6]+ zO+'3
"?2-)
@(
&
)4A.$
(.$$,
#wF
@(5$,
"
) A.$
$"9 8$', F
) / #,.$+
(,
h+ &
$(.1 ) A
+ V$9/4C)0z+ (
! !
! *+*2-)'F
(.$$,
%
A8 s)4A.$
@("9@2,.$
$(.1#)4A
$,
$%)
(*)0+
C/) )0O+*(.$',
t NMRLb
+ $>/4#(8,
(
,5$"%+,.@(.1
&
$&
)4A.$
+#/
2)0zO B)0O+*(
#(,
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b
" +#/
$ &
t NMRLb
O$^=8"9+*( @,.$>/
Operation &
Address
no. of operands specifier 1
Address
field 1
Address
specifier n
Address
field n
Operation
Address
field 1
Address
field 2
Address
field 3
(b) Fixed (e.g., DLX, MIPS, Power PC, Precision Architecture, SPARC)
Operation
Address
specifier
Address
field
Operation
Address
specifier 1
Address
specifier 2
Address
field
Operation
Address
specifier
Address
field 1
Address
field 2
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b
+*&
zO$9/
#(,
5
-
t NMRLb
/ B)4A5$9/
"%O+* $> uF
Dependencies
Language dependent;
machine independent
Function
Transform language to
common intermediate form
Front-end per
language
Intermediate
representation
High-level
optimizations
Global
optimizer
Code generator
FIGURE 2.18 Current compilers typically consist of two to four passes, with more
highly optimizing compilers having more passes.
#(
!
+ .)0&
'B) z+*(8
)0+#/0$
:#<2.$D@(
</ 1 $
"$>/D+ 6
(h28&
6/0$ h2.$'(*)0
"$(.$ 5)
6 / + &
#""%$' $,
A8>:@(.1
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b
)0&
6j) $(
$
+ 6j)T3
#(
$
$ C/
"9z$'("
"@(,5@(.1
t NMRLb
)0&
"?2-);/ $',2"%$'
/42(
+ 6)4A5$
C/ $*F
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b
C/ )0J)0z+ (
"
O1*2/ $
&
(.
$'&
+#/
$&
&
$&
@(*) +
+#/
+#/
*+
&
1 $;+^6
5/ + 1 /4#&
t NMRLb
wF
2-)
+ 6
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
#
/ +^1#/4#&
qsr4turwvxNMRYQyNZdzd{b
np$ BI
%
(
+^.)0&
>$9/
F
'
A.+ 2.@,
.) @&
(.$%: $9/
$9/
A8>:*$
z&
6e2(" ) z+*(
"<O@>F
3
+#/ h@(.1
'B) z+*(
z!#(.1
"5/ $
(.1
-F
t NMRLb
5/ $9:*$(*)
<Oz+-"B)0O+*(
@(.O@(.(.1
6 + /
:#C/0"8z$>=8$*F 18F
F
#7+^@(*) $9/
0"EA.$'&
F
&
$9)0@"
,.$>6]$'B) D<z!#
,.$9)0$'" )0O+*(
$'9F
2. ) ) h(.1
!
0A8C/ $',
-F
C/0 )4A8&
z&
J)4
<zO+-"B) z+*(
+^6
,?B) F
J)4
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
<zO+-"B) z+*( F
qsr4turwvxNMRYQyNZdzd{b
np$ BI
F
h$C/4C)0$
$ 8#&
+ &
OB) z+*(
!5/0$%:*$'(*)4
(.z(.@(.1
t NMRLb
6 +#/
8z$# F
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b
"!
F$#
$1*2.!C/ J)
!Z #
! " #
$%)4D"9+*( @ )
t NMRLb
+ 6
$>/4B) z+*(
C)
-$
! " #
,,/0$0(.1
A.@"wA
A.+ 2.@,
&
"$
+-,5$
! F $*F
) / $ B)0$',
@(8,.$>$'(,.$'(*)0 &#wF
-F
/0+':-,.$
#
5/ &
J)0J:*$>= (5+ )
"$
F
@(.6 / $h2.$'(*)0
h&
Oz6
"%+ Y)
F
+ 6
"(,.@(51
C/0$
"%+*&
O$ J)
$'"%
= #(,
&
2 $, F
/4#,5$>+
$%);)4A5$
2 $9/
-(5+'3
) A.$
/0+':-,.$
#
A?C/ ,-3
+ 2-)0O+*(
C/0
25+#/ )0@(51
"@(8,.@(.1
)0&
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
"9+*&
8zz$
)0@&
5/0+':-,.$; $>$', F
qsr4turwvxNMRYQyNZdzd{b
g'IXW R dO[eH [YNMPk [ \ d@I K ITIn_ NLHziYQ dO[eijd!WYH [ <[ekTdr IBgIXPkWXdO[eH*`ni]Q [eRYi[ `
F
-
c/ / $1*2.</
"$"9+*&
) A.$
sA8>:*$
+h+
$( :-J/0+*(&
A8C/4,-3
F
h&
+ .) @&
1 +
uF
)0+
>3
#,5$
&
3
#"EA.(.$
A.$9/0$
) A.$
,.$'O1*(.@(51
+
2((.$'"%$' C/ O
"V+ z">
.&
A.$
6]$'B) 2/ $'
&
@(
)4A.$
+ :*$9/ ) $'(
$9/ $
A5@"EA
/ #(
( #
#,.$
"
6e# )0$>/D+*(
( #
(5+#/ &
<
C/ $*F
Oz6
$&
&
$(*) s3
$'$ C/ "wA
&
,.$"9@ z+*(8;@(
#(.1 28<1 $
#"EA.(.$>F
1 +^@(.1
(.+ )
"<zO$,
C/0$
"2-)
&
8<1*25$
(.$9:*$9/;$("9+*2(*) $9/0$,
)0+
-F
.=#^+*A(
Y(*)0$
"%O$'C/;) A8B);)4A5$
"# @"
+* )
,.
$
A?C/ ,
&
?
3;/0+ )0$
c)
+
< $>/
t NMRLb
+#/
&
$9/
A?#,
#(8<1 $'&
&
: $9/
$(8,8<z
5/0+':-,.$,
&
/4#,5$>+
$'(*)F
#"wA.@(5$
z&
J)0$',
h28C/0$
(
A5@"EA
) A.$
A.D5/0$%:*$'(*)0$',
B)0O+*(>F
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b
g'IXW R dO[eH [YNMPk [ \ d@I K ITIn_ NLHziYQ dO[eijd!WYH [ <[ekTdr IBgIXPkWXdO[eH*`ni]Q [eRYi[ `
F
/0+':-,.$
#
"(,.@(51
>:-@(51
#;&
6]+#/
&
$>C/ B)0$
A.$
"9+*&
A."EA
"<OZF
"9+*&
A8 ,
628(" ) z+*(
$,.!B)0$*=53
25+#/ )0@(51
+'3
8zz$
$%: $9/;)4A5$
)0@&
t NMRLb
)4
2$
#
&
@(
8zC)0z+ ( F
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b
& ^U
`nQyPk [
t
F
&
O 8$',
:*$9/4O+*(
!Z2$',
$%)
@&
NLPk [
6]$'B) 2/ $'
@("9@2,.$
$(5$9/4 #
2/0+* $
+ 6 )4A.$
#
!
#
n #wF
&
(
t NMRLb
-F
-2.8+#/)D6]+#/
,.!#"%$'&
"%+*&
&
$'(*)
+*(
#,,/0$0(.1
"J) #w=8@&
&
&
+-,.$'
F
h&
F
-2.8+#/)
-F
F
O$
#(,
$,
O$(.1 ) A
"
@( )0$>1^$9/
/0+':-,.$
#
$>C/ B)0$
2 $,
fF
@&
6 +#/
-2.J) "8z$
+ .) @&
z$
h$9)F
,?B)
>$'
-=
"J)
#
#
"J)
"J)
"
"
!
#
#wF
= =
8+ C)0@(51
%=
#
6]+#/Dz$z(.@(.1
V+ @(*)'F
$("9+-,.(.1F
# = # =
"J)
(,
< 3
"9+*&
#
<J/4
#(,
"#(
"$
5 F
zO$9/
B)0O+*( F
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b
Lo ^U
&
'
+,.$
C/0$
I - type instruction
6
Opcode
C/0$
$("9+-,.$,
@(
t NMRLb
)4A.$
"8 )F
16
rs1
rd
Immediate
11
rs1
rs2
rd
func
26
Offset added to PC
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b
Lo ^U
t NMRLb
"
$
%F 8F %D: "!" #%&
$ '($&"
# $ '($&" ) F
%
F
< ^$9/F
G9HJILKMHONMPPQSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp
qsr4turwvxNMRYQyNZdzd{b