Вы находитесь на странице: 1из 28



        "!$#&%')(+*, .-/10324'5,6   )789;:<=?>A@ ?BDCE#F;(

G H IKJMLON/PRQMSTN/UVWJ

XYN Z PRS3[MUN4Y5S?NAQ\P/Y ]_^a`bVWJcVed f

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

5 i6u Ti~r k}km~


u uz sl6 Ti|es)imivr
q~u kms ikosTl}u k<yu
|alms{Tl
wu kpyrha{ T ?~nyuzilms) u4 sTl6 eu
vi ~
szulkjh xys r hy{ pw)s |n"k3kmrs)h
s)hqpKu4h)kml3kou s)h r hy{ vi r |q~
u)a)uKkjuO5rq~
u
"
ivuwk sM8uz3k<n5l}uziTiEk Thqx u4 y
n ~ 3kou ~
u4imi
l}u4nyu4h)ko~ nqivu4x sthyu4i
uwk4irh)tu4iEkmr
{3kmu ivs) u k}l}uzhqxqil}s)
|esr h)ki

;F #F'5'5W#F #&;8#F( '24, 2R77;

k<yu4ivu "r
uK

--#F#&
(

y
        "!$#&%')(+*, .-/10324'5,6   )789;:<=?>A@ ?BDCE#F;(

H IKJMLON/PRQMSTN/UVWJ

XYN Z PRS3[MUN4Y5S?NAQ\P/Y ]_^a`bVWJcVed f

Ts l 6ivu4nyuzh)kmr~ Rlpyrkmuzp$knyl}u4ik<yu EsTl


Rlpyrkmu4pOkn5lmu p3kou{sTlmr
uzi Tivu4x sth xqx5l}uzi}ivrha{ Rlmu

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

"

p pnq na~ 3kosTl g7 |q~


r pwrkm~ nqi6uzi xau4xyr p3kou4x
l}u{riEkmul p~~
uzx <k yu  !#"%$ kos ikosTl}u
l}uzi}na~ ki
. ivu4x r h s~xauKl Rlpyrkmu4pOkn5lmu4ijhysz
sivs~uwkmu 

u {riEkmul'&)( uz sTlv  * |WuKlRkmr


sthqi )u Th
s|eulThjx yrp l}u4ivrxau4irh u4 sTl6 + "|qrp4~
~
kau l}uzi}na~ kril}r k}kmuzh r h lmu{r ikouKl
g7htkmu~-,/.A0,/1
i
 ul}r
uz

u {r ikouKl2 stTx3&  kosTl}u  g7hasTl Rkmr


sth r i
k}l<Thqivulvlmu4x rh)kos lmu{r ikouKli"r "45 s|eul3kor
s)hji
l}s) u4 sTlv hqx lmr kvkou4h kms u4 sTl6 "r
pyr
|i:
6 )"7$8 s|eul3kor
s)hqi
9 ~ s)iEk ~~- g 

;F #F'5'5W#F #&;8#F( '24, 2R77;

--#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 ;

;(FE#DC?B A@?>=<;:987)  6 5


, '43210/.- ,+*)('&%$#"
!       
  
  

 a


(
& #F
# -
-

W1(A8F9
 t#;8 

*, .-/10324'5,6   )789;:<=?>A@ ?BDCE#F;(

 H  [ef  YWU.LwNY"P ^ S3[MU.JcY5L  VWJ



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 yr hyu4i

 t

u{riEkmuloi Rlmu ik

" u4imi u4 sTlv k}l p


5 r
{)auKl pws5xyu xau4hqivr k
 i6ruKlkms {uKk pws) |qr
~uKl ~uw)u~bs|ykor rzRkmr
sthqi
Ts l}u l}u{riEkmuloi  l}u
nji}nj?~
~ euwk}kmuKl8sTl uzTivu s
|alms{Tl rhy{ Tq
h x u  pwr
uzhqp$ l}u/Ti6sthqi
pKs)nqh)kouKl
uOjT |j~
u g7h)kou~ ,/. ,/1
(

u{riEkmuloi Rlmu uO5|Wu4hqivr )u)yivs kyul}u ri ~r r k sth ys/


Th) |ql}s"pKu4imi6sTl p4Th )u  |Wu4pwr~|n5lm|es)ivu
l}u{riEkmuloi p4Th u Tparhyu jRlx kos nqhqxyuloiEk<Thqx

;F #F'5'5W#F #&;8#F( '24, 2R77;

--#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 ;

;(FE#DC?B A@?>=<;:987)  6 5


, '43210/.- ,*

(
& #F
# -
-

a 24; 80  ;0 #;y!(E,68*, .-/10324'5,6   )789;:<=?>A@ ?BDCE#F;(




H VWLwN  Y5JcY
MN V


^ S3[MU.JcY ] f Y5L

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
"r hy{ pws5xyu
{uzhyuKl<3kmrs)h g7hqiEk}lnqp$kor
s)hjij)u ~
sz gqn"k
sTl}u r hqikmlonqpOkmrs)hqi eu hyuuzxyu4x kos uO5|almu4imi
|alms{Tl  s) u r hqikmlonqpOkmrs)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}r Rkmr
sth
rh r hqikmlonqpOkmrs)h 6i r u Thqx sTl} xys)hau T h
rhjikmlonqpOkmr
sth ( zu sl6 TppKu4imip4Th eu
es?k}km~u4hyuzp
(

;F #F'5'5W#F #&;8#F( '24, 2R77;

--#F#&
(

 K ( 
7


*, .-/10324'5,6   )789;:<=?>A@ ?BDCE#F;(

 H


fN4Y  PcY"PU.J 

kmu sTloxauKl}r hy{ ri xas)hyu rh ks yi


u
~ uzik ivr
{)har  p4Th)k kou ri
  8 5    y
rh <k yu ~sz Ts loxyul uz s6l
"
  5    yu yr
{) sTlxyuKlkmu rir h kyu
~
s/ sTl xyuKl 4u Ts l6
s
r qrkslox uKl}u iEkmsl}u4x 3 k ~
s5p3kor
s)h
u4 sT6l yu~x kyu T~ nyu . zT 1!, kyuzh
u4 sT6l s)ny~ x ~
ss ~r
u)


lxyuKl

crkvkm~u  hqxar Th
.

!,
.

r
{  hqxyr h
.

z
.

;F #F'5'5W#F #&;8#F( '24, 2R77;


1

 z


.

rh

 !,
.

--#F#&
(

a 'F (?BE'1

*, .-/10324'5,6   )789;:<=?>A@ ?BDCE#F;(

Y5d VeP/f Z 8U WJMd Y5JeN

u T ppKu4imi6uzx u  wp ru4h)ko~ ykyu xj3k


Ts l zu s l6 kms e
nqik Wu     8 5 r h <k yu uz sTlv
4u hqhau4imi Thqx 3 kvkouKli6s)h q
n ivu k yu 8 s~
~sz rhy{
hys?k3kmrs)hy yul}u ri 4u sT6l ~
5
s p3kor
s)h


 uzp$k


ru

rh kou4i:

kmu


~r
{)hau4x

s"x

s"x

s"x

 )uKlv yuKlmu

~  sTlox

 slox
s)nyq~u  slox

 yuKlmu

.


"r hy{ xj3k< ~r


{)hau4x |euKl r kiTiEkmul u4 sTlv
Tppwu4imiqhqx k"|qr p~~ kau lmu4Ei k}l}r p$kor
s)h r iu4hy8sTlpwu4x rh
kau hT u sMu  pKr
uzhqp$
kms u u| TppKu4imiivr |q~u


s) |qr
~uKloik5|qrp4~
~ jThqxy~u ?~
r
{thq uzh)k ( s)iEk

Rlpyrkmu4pOkn5lmu4inqivu slox i6r u s|eul3kor


s)hqi
yszuK)uKl gh)kmu~ , .A ,/1 rh)krhjikou Thqx j~
sTlox
s|euKl<3kmrs)hqi

;F #F'5'5W#F #&;8#F( '24, 2R77;

--#F#&
(

a?EE 8
W 7

*, .-/10324'5,6   )789;:<=?>A@ ?BDCE#F;(


(

H Z  \P/Y5L4L4U8J 

V cY5L

)s ik Rlpyrkmuzp$knyl}u4iimny|q|WsTl6k i}ny i6uKksk<yu4ivu


Txqxyl}u4imivrhy{ s5xyu4i
u{riEkmul

" g7 u4xyr3kmu
r i6|q~Tpwuz uzh)k

5


u{riEkmul xyu8uKl}l}u4x

r hqxyrlmu4pOk2

" g7hjxyuO5uzx

u4 sTl6 rhjxyrlmu4p$k
(

r
l}u4pOk


5

n"kmsrhqpwl}u4 u4htk



n"kos"xyu4pwl}uz uzh)k

p4~
uzx sTl r hqxyuw5u4x

;F #F'5'5W#F #&;8#F( '24, 2R77;

--#F#&
(

a2z; 0 );04?EE  778

*, .-/10324'5,6   )789;:<=?>A@ ?BDCE#F;(

G H VeLwN  YyJcY


MN V Z  \PAY5L4LU.J 

V cY5L

n |j|esTl6korhy{ Th) Txqx5lmu4imi6r hy{ s"xau4ijTi y


y
r{)
pwstik rh kouKlo
i s pyr
| xyuzi6r{)h  Txjxyrhy{ kos k<y
u
pwst |q~uO5rk s
k<yu uz sTlv TppKu4imiiEyiEkmuz


g  xyuzi6r{)hqikou4hqx kms r hyr r u k<yu hnq WuKl A k"|eu


s Txjx5l}uzi}ivrhy{ s"xyu4ikos ky
u ts ik l}uznyu4htkm~ q
n ivu4x
s)hyuzi

 Y5ST^ N/[c^qN VWJcY S VWJMLwYQcYyJMSTY V Z d c^ [ L


^ U.L N/[c^aN N/[cY e
 P/Y^aN4Y5LwN L  YY MQ  S VWd Y5L
FP/VWd
V cNAU8d U
U.J  NA[cY d VWLON SVed d VWJ S^ LKY5L


;F #F'5'5W#F #&;8#F( '24, 2R77;

--#F#&
(

;* ,EB#1'1 7y?EE 8


 

G G H


 

!#"%$'&

$'(*)

+ 67,.8#"9$&
,.!#"%$'&

*, .-/10324'5,6   )789;:<=?>A@ ?BDCE#F;(

 

 

&

+-,.$

 

#,, /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

FIGURE 2.7 Displacement values are widely distributed.

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b

p m{P.Pf[_ QyNZdO[ IcH*U4Q dO[eHzN%t _ _ H []\z\QSRTKVv In_n<


[]\ [ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `



n&
&

9

$,.!B)0$



( ) / 28" )0O+*(

"%+ &

</ $
&

x

#,8, / $'  @(.1

)4A5$

@&

j 

#

!"5/4 ("EA.(.1$# =&%

$,.!B)0$

,, / $'  @(51

 . 

+-,.$s)E $
&

Y)0/ $' &

! - s

#(

('

:#<2.$

+ $>/4#(8, F
+ V$9/4C)0z+ (

t  NMRLb

 

6/0+*&

 + #,89=
<O2 $

6]+#/;)4A5$>J/D+ V$9/4 (,>F

10%

Loads

45%
87%

Compares

77%
58%

ALU operations

78%
35%

All instructions

10%
0%

50%

100%

Percentage of operations that use immediates


Integer average

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.

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b



 CNMRTKL[-I m P.Pf[_ QyNZdO[ NyWT[]\



n&
&




$,.!B)0$

6 >:*+#/

 &

  

<[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `







#,8, / $'  @(.1

<OV: <@2.$'

! "$9)X3

9

 

5 

B) )0$>/ (D $>$'&


$>$'(



t  NMRLb

   

)0+

Y)0/ +*(.1^

 5);@( 

#(,

"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

FIGURE 2.9 The distribution of immediate values is shown.

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b

p&^QSRY_n\*I k [HONZdQ IXRT\



$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<

"<z9=/  : zz$1 $,



+ @(*)

u)0/ @(51
&

 + #,
"5/4#(8"EA = 2&

+*(*)0/ + 

O$

= =u=


/ #( 6 $>/

O+ B) @(.1

#(, =.+#/= +#/

 . )0$'&
"

t  NMRLb

"B)0$1 +#/ O$

#&

 + 1 "<


  5 jV

-$


<[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `




6] F$

%

u) /0@(.1
#

#,,


&

(,

&

2.J)0z8

C/0$^=8 $'C/4"EA

?>=8"%+ &

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

= =u=

+':*$*=?"%+*&

 $>

+^?9=

5/0$0

qsr4turwvxNMRYQyNZdzd{b



peo >b k[]\ NMRY_a`nQ [ I ^k [HONLRY_n\



"

O+ B) @(.1

5/0@&

 


 
  


+^@(*)

+#/ ,8;6 + /

C/ O

<[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `




5/0$,.+ &

+ $9/ #(,>=-3
+ (



"J)

Double word

(8#(*) 
A.zO$

Byte

@(*) $>1 $>/

-  



" )

,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%

Frequency of reference by size


Integer average

Floating-point average

FIGURE 2.16 Distribution of data accesses by size for the benchmark programs.

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b

p  m{RT\Jd!HOWYijdQ IXR `X[ dRYijIY_ QSRTK`cd!HzNZdO[]KcQ []\




 


   


/4 ,. ) z+*(8 z




@(8Y)0/ 2" )0z+ (

)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

@( ) /42" ) z+*(

,.$%) $9/ &

@(5$,

"

) A.$

 $"9 8$', F

) / #,.$+


(,

 >: +#/ ;+^6

$9/D@(8Y)0/ 2" )0z+ (;$>/;/ + 1#/ #&

h+ &

(Y)0/ 2" )0O+*(

 $(.1 ) A

+ V$9/4C)0z+ (

za@( ) /42" ) z+*(

! !

! *+*2-)'F

(.$$,

%


A8 s)4A.$

@("9@2,.$

 $(.1#)4A

 $,

 $%)

(*)0+

#,,./ $0D $"9 8$>/ >F

C/ )0J)0z+ (.@(.1


"

@(8Y)0/ 2" )0z+ (

 C/)  )0O+*(.$',

t  NMRLb

#      h 

+ $>/4#(8,

<[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `




(

,5$"%+ ,.@(.1

&

$&
)4A.$

+#/

2 )0zO B)0O+*(

#(,

(Y)0/ 2" )0O+*(>F

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b

p  m{RT\Jd!HOWYijdQ IXR `X[ dRYijIY_ QSRTK`cd!HzNZdO[]KcQ []\


" +#/


$  &


 


   

<[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `




t  NMRLb

#      h 

O$^=8"9+*( @,.$>/

Operation &
Address
no. of operands specifier 1

Address
field 1

Address
specifier n

Address
field n

(a) Variable (e.g., VAX)

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

(c) Hybrid (e.g., IBM 360/70, Intel 80x86)

FIGURE 2.17 Three basic variations in instruction encoding.

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b

p  g'IXP-k Q  [eH t HziYQ dO[ei!djWYH [-m{R d@[HONLi!d!Q IXR




+*&




zO$9/ 

#(,

<[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `




  

 

    5

 

C/ "wA. ) $" )42 /0$

@( )0$9/ #" )

 - 

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

Somewhat language dependent,


largely machine independent

For example, procedure inlining


and loop transformations

High-level
optimizations

Small language dependencies;


machine dependencies slight
(e.g., register counts/types)

Including global and local


optimizations + register
allocation

Global
optimizer

Highly machine dependent;


language independent

Detailed instruction selection


and machine-dependent
optimizations; may include
or be followed by assembler

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 @ )0$>/ >=#(,

</ 1 $

"$>/D+ 6

(h28&

6/0$ h2.$'(*)0

"$(.$ 5)

6 / + &

1 $'(.$9/ < ?2 / V+*$

#""%$'  $,
A8>: @(.1

/ $1 @ )0$>/ >F

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b

p QSRY_ QSRTK BQSPf[

<[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `






)0&

6j) $(
$

 + 6j)T3

#(
$ 

$ C/ 
"9z$'("




"@(,5@(.1

t  NMRLb

     
)0&

"?2-);/ $',2"%$'

/ +':-,.$D1#/ $ B)0$>/


8$   "zO )

/42(

+ 6)4A5$

C/ $*F

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b

  v [ePfIcH{bavxNMRYN KL[ePf[ R d*QSR Ng









/4 ,. ) z+*(8  '

C/ )0J)0z+ (

"

O1*2 / $

&

 


(.   

$'&



k H ILKcHzNMP <[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `




+#/

$&

&

$&



@(*) +

+#/

+#/

*+




&

1 $;+^6

  

5/ + 1 /4#&

t  NMRLb

  wF

2-)

+ 6

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp


#

/ +^1#/4#&

qsr4turwvxNMRYQyNZdzd{b

 



np$ BI

dOI <[  [NZd ^kTdQSP Q NZdQ IXR

 
%
(

+^.)0&

 >$9/

5/0+ 1#/4 &

$ $'"% z

 F
'

  


<[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `




  



 A.+ 2.@,

.) @&

(.$%: $9/

$9/ 

A8>:*$

z&

+ (*)0$>/ s)0+

6e2(" )0z+ (

6e2(" ) z+*(

"<O@>F

5/0$%:*$'(*)4s/0$>1 Y) $9/

  
3

+#/ h@(.1

J)4>=?V+ @(*) $9/4

 'B) z+*(

z!#(.1

 

"5/ $ 

,.$6 $ B)D+ .)0&

(.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

/ $1 @ )0$>/

<zO+-"B) z+*(

+^6

,?B) F

z+ "< :#</  "z$'Dz&

J)4

/ $1 @ )0$>/

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

<zO+-"B) z+*( F

qsr4turwvxNMRYQyNZdzd{b

 

np$ BI

 F



dOI <[  [NZd ^kTdQSP Q NZdQ IXR

h$C/4C)0$

$ 8#&

+ &

<[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `




OB) z+*(

!5/0$%:*$'(*)4

(.z(.@(.1

t  NMRLb

6 +#/

8z$# F

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b

 t HOiYQ d@[ijd!WYHON B[ k  IcH*g'IcP k Q  [HJ\

 

  

<[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `




 

 


  

        
  
 

           
   "!

 F$#

$1*2.!C/ J)

!Z #

! " #

n( ) /42" ) z+*(




 

 
  
 


   



 $%)4D"9+*( @ )

t  NMRLb

 

+ 6

$>/4B) z+*(
C)

-$


! " #

,, /0$0(.1

A.@"wA

 A.+ 2.@,

&

"$

+-,5$

! F $*F

+#/) A.+ 1 +*(?<

) / $ B)0$',

@(8,.$>$'(,.$'(*)0 &#wF

-F

/0+':-,.$
#

5/ &

6]$'B) 2 / $'; ,,

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.$

@( ) /42" ) z+*(89F

/0+':-,.$
#

A?C/ ,-3

+ 2-)0O+*(

@( ) /42" ) z+*(8




C/0

 25+#/ )0@(51

"@(8,.@(.1

)0&

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

"9+*&

8zz$

)0@&

5/0+':-,.$; $>$', F

qsr4turwvxNMRYQyNZdzd{b

 g'IXW R dO[eH [YNMP k  [ \ d@I K ITIn_ NLHziYQ dO[eijd!WYH [ <[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `





 F

  - 


c/ / $1*2.</

"$"9+*&

) A.$



sA8>:*$

+h+


$( :-J/0+*(&
A8C/4,-3

 F

h&

5/0+ 1#/4 &

+ .) @&

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

C/4"EA.J)0$" )42 /0$


&

(.+ )

"<zO$,

2(,5$9/  ) (, =.+*(.$

C/0$

"2-)

&



8<1*25$

(.$9:*$9/;$("9+*2(*) $9/0$,

)0+

5/0+ 1#/ #&

-F

.=#^+*A(

Y(*)0$


"%O$'C/;) A8B);)4A5$

"# @"

+* )

,.

$


A?C/ ,

&

?    



  



3;/0+ )0$

 

c)


 +



/ "EA5 )0$'" ) 2 / $'

<  $>/


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.$

"%+*( ) / +^ +':*$9/

A.D5/0$%:*$'(*)0$',

 B)0O+*(>F

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b

 g'IXW R dO[eH [YNMP k  [ \ d@I K ITIn_ NLHziYQ dO[eijd!WYH [ <[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `


F

/0+':-,.$
#

@( ) /42" ) z+*(8

"(,.@(51
 >:-@(51

#;&

6]+#/
&

 $>C/ B)0$

A.$

"9+*&

A."EA

"<OZF

"9+*&

 

A8 ,

628(" ) z+*(

$,.!B)0$*=53

 25+#/ )0@(51

+'3

8zz$

@( ) /42" ) z+*(

$%: $9/;)4A5$

5/ $9:*$(*) $,

)0@&

t  NMRLb

 )4

2$

# 
&
@(

8zC)0z+ ( F

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b

& ^U

`nQyP k  [ 
t

 







 F
&

<[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `






O 8$',

:*$9/4O+*(

!Z2$',

 $%)




 @&

@(8Y)0/ 2" )0z+ (




NLP k  [

6]$'B) 2 / $'

@("9@2,.$

$(5$9/4  #

2 /0+* $

+ 6 )4A.$

 #
!





#

n #wF

 &

(




t  NMRLb

+ , < )0+#/0$

$>1 Y) $9/ 

C/4"EA.J)0$" )42 /0$^F

-F

-2.8+#/)D6]+#/

,.!#"%$'&

"%+*&

&

    

$'(*)

+*(

#,, /0$0(.1

"J) #w=8@&
&

&

+-,.$'

$',.B) $^=8/ $>1^@ )0$9/

,.$6 $>/ / $', F

 F

h&

F

-2.8+#/)

-F
 F

n( ) /42" ) z+*(

O$

#(,

 $,

O$(.1 ) A

"

@( )0$>1^$9/

/0+':-,.$
#

 $>C/ B)0$
2 $,

fF

 @&

6 +#/

-2.J) "8z$

+ .) @&

 

 

z$

h$9)F

,?B)

 >$'

-=  

"J)

 


( ) / 28" )0O+*(


&

#
#

"J)
"J)

"
"

!


#
#wF

 =   = 


8+ C)0@(51


 %=

!+ ,, B$9:*$(

# 

6]+#/Dz$z(.@(.1

V+ @(*)'F

$("9+-,.(.1F

#  = #  =


"J)


(,

< 3
"9+*&

# 
 <J/4

#(,



"#(

"$

5  F
zO$9/

 B)0O+*( F

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b

Lo ^U





<[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `




m RT\zdHOWYijdQ IXR TIMH@P N d




#,,./ $0 @(.1

&

'  

+ ,.$

C/0$

+  "9+-,.$*=5<Oa(Y)0/ 2" )0O+*(

I - type instruction
6
Opcode

 



C/0$

$("9+-,.$,

@(

t  NMRLb


)4A.$

"8 )F

16

rs1

rd

Immediate

Encodes: Loads and stores of bytes, words, half words


All immediates (rd
rs1 op immediate)
Conditional branch instructions (rs1 is register, rd unused)
Jump register, jump and link register
(rd = 0, rs = destination, immediate = 0)
R - type instruction
6
Opcode

11

rs1

rs2

rd

func

Registerregister ALU operations: rd


rs1 func rs2
Function encodes the data path operation: Add, Sub , . . .
Read/write special registers and moves
J - type instruction
6
Opcode

26
Offset added to PC

Jump and jump and link


Trap and return from exception

Figure 2.21 Hennessy/Patterson


Computer Architecture
Morgan Kaughmann Pub.
100% Illustrious, Inc. 6/26/95-dc,jp

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b

Lo ^U

m RT\zdHOWYijdQ IXR TIMH@P N d

<[ekTdr IBgIXP kWXdO[eH*`ni]Q [eRYi[ `




t  NMRLb

    






"
      $ 
   
 

  
     %F  8F %D: "!" #%&
$ '($&"
# $ '($&" ) F
%
F 

< ^$9/F

G9HJILKMHONMP P QSRTKVU4NMRTKXWYNZKL[]\^NMRY_a`cbT\Jd@[ePf\hgIXRYij[ekTdlgC`nm<onpLp

qsr4turwvxNMRYQyNZdzd{b

Вам также может понравиться