You are on page 1of 50

unn

13
~
'1J

aemuouaesersena RIse

13.2 1111'm~d L",ufl1'lj'iI\n~' 'fItY 13.3 111"1'if~idt",urt.fltiimh~latfU9-4~ftl~81thun1j1~J.Jtl.1lam'tt1 13.4 d01ilVlnn1111RIse 13.5 'lIiJ'au':uflo1i1V1nn1111 RIse 13.6

.awn

<II

MIPS R4000

13.7 SPARe

13.8 ufll~un~1~'fIiH RIse ua~ else

522 unfi

13

f}OUUbWH)SVlS:::Qa

RIse

Glmdvr\lJJ'Ul

~ El:l--lV11 bq]Erfbb1.J'lJ

stored-program

~u:l--lllutJ

'Vu>1.

2493

l~ilrmvr\lJJu

l ~ El:l--lV11q]El~YlVI~lU 1m-J6'1~vl bm::;6'1mU q]~md:l--l~nEll~1l b 6'1dJJ1~~-JGlEllJJd 9

lrnd~~l\>lblJbnt)l~uil:El~:l--Iln ~

• The family concept:

'lJ~jjYllElUb~:l--Il~0\lJJulum:l--l1Vl&h~~n1l

"q]d::;!:;]~" 'lJ~~

'lIEl-J 1~

bfl~El-JflEl:l--lV11bq]El~~u1t)1m~:l--I<1fu~ vr\lJJUlflEl:l--lV11bq]El~uq]d::;n~

System/360

1utJ

'\III.fI. 2507

DEC

~ "PDP-8"

~u1unmGlEl:l--ll

um:l--l'llEl-JG1d::;n~~El:l--lV11bG1El~

1~bb~n6'1muq]~md:l--lflEl:l--lV11bq]El~bb~::;nld6'1~l-J~U:l--ll1~-JluElEln,<\)lmlu

iiu~El'lJ~jj'YI

~ ~f1Glmd-Jl'lblU l b~'UElbfl~El-j flEld-JV1d El~bb1J1JGll-j'l bGl Glmh~R'YlTIm'V1

~i'l mld-J bbGlnGll-jn'U LWJll'U'llfil

L'U'lIrn~~ 8-jfl-jU l b~'UElfiEld-JV1d bGlEl~~i'l~mi1Gl ~m'ld-J bb1J1J &1 n'UGlEl bm

~.jfl~
OJ

mld-JbbGlnGll-j L'U~l'U'llfllbb~~tJ"J~R'YlTIm'V1~'UbTlI?1~Willnm'l~1l-jflEld-JV1dbGlEl~ tl?1~8-jfl-ji'l~mi1Gl~m'ld-Jbb1J1Jb&1d-J b'Ylfl'Ut~8d'1~~nUlb~'UEl t tl?1~

~d~b'YlflUfl~bbGlnGll-jn'U

• Microprogrammed control unit:


'V1.~. 2494

Wilkes

L'UU

bb~~1~11Jm'lulltJL-ii-jl'UL'UfiEld-JV1dbGlEl~

System/360

'lIEl-j1J~~lEltib~d-J

L'UU 'V1.~. 2507

Microprogramming

'lhmllLVi-jl'UElElmb1J1Jbb~~m'l~1l-jVlUd~

• Cache memory: System/360


mh-jd-Jln

VlUd~mld-J~lbb1J1J 'V1.~. 2511

cache

1~11Jm'l~1l-j

l11'UfiEld-JV1dbo/lEl~ lEltib~d-J

iu 85L'UU

~-jl~id~bvid-JtJ'l~R'YlTIm'V1L'Um'ltJ'l~d-Jd~~~~'Uvl~

• Pipelining:

dJ'Ub'YlflUfI~Ulbbmmld-J~l?1mW'l~d-Jd~~mb1J1J'lI'Ul'Ub'iilltJ~~d-J~m'Un1J

ttJ'lbbmd-J~l~-j~i'lnl'l'Y1l-jl'Ubb1J1J~~-jo/ild-J~l~1J~l~-j

• Multiple processors:
~dd-Jn'Ul~ 'illnvh.nEl~1~m1ldd-Jl.nl-j~'U btJ'UtJ'l~&1~m'ld-J~itl~ru~~I?1~El
'" ~ q

~-j~bTlI?1~'UL'U~l~1JGlElltJ~-ji'lmld-JUl~'U ~mi1o/1~m'ld-Jbb1J1J

L'il bb~~m'il'il~

Reduced Instruction Set


l~UlltJ~fldld-J~'U

Computer (RISe)
~'U'l Elm-j'lfl?1b'il'U tm-j~1l-j

~mi1o/1~m'ld-Jbb1J1Jd'1~bb~n&hbEl-jElEln'illn~mi1Gl~m'ld-JbblJ1J m'llbml~t..1~mi1o/1~m'ld-J

RISe

h L'U~l'U

bb~~~mi1o/1 ~m'ld-J~itl~b!!~-j

1&Jbfl~ bTl ?1~'Ud-Jl El'U 1 ri bb1J1J bo/lnGll-jn'UElEln ltJ b

bb~llflEld-JV1d bGlEl~bb1J1J RIse 'V1El~d-Jm'l tl?1~n~d-JGll-j'l •

l~blnnlVl'U1?1 bb~~l~11Jm'lElEln OJ

n'U bbGl~-j~8-jfl-jbVl5'JEl'Un'U l~bbri bb~~/VI~El m'lL-iib'Ylfl t'U t~8ttJ'lbbmd-JG1dbbtJ~m'jjlLVii'l

m'li'l~~mo/lEl~btJ'U'ill'Ud'Ud-Jln m'lLm~mGlEl~m.h-ji'ltJ'l~R'YlTIm'V1
I I I I

• •

~1?1~l~-jbfl~El-jfli'l~l~-jbb1J1JJl~'l m'lbu'Um'lL-iitJ'l::;t~'lf'U'1tJillm..t Gll'll-j

bb~~i'l'illm'U'illnl?1

13.1 l~bb~l?1-j LVib~'U.nmtJ~~1Jbfl~m~Vlll-jflEld-JV1dbGlEl~bb1J1J

RIse

, bb~~bb1J1Jfl

l~L'll

RIse

524

unit

13 / ftDuubW}()SVlS:::l}a

RIse

Complex Instruction Set (CISC) Computer


Characteristic Year developed Number of msrructlons Instruction size (bytes) t\ddressing modes Number of general-purpose registers Control memory size (kbits) Cache size
(kbytes) IBM

Reduced Instruction Set (RISC) Computer


Intel

Superscalar
Ultra

370!.l68 1973 208 2u 4 16 420


64

VAX 111780 1978 3m 2-57 22 16 480 64

80486 1989 235


I-ll
II

SPARC 1987
69
4

MIPS R4000 1991


94
4

PowerPC 1993 225 4 2

SPARC 1996

MIPS RIOOOO 1996

--

8 246 8

40-520

32

31

4(1--510

~J . ..,._

:'1

128

16-32

~..,..... "

64

11\9J,J'Ulm~m f_h-,lVld-,l~ 6~ moliEl,l1l'lJ~EI:J-J~l 'lJEI-,lmJjl~lVl'llinld h.h66m:J-J~EI:J-J~1 6~EI~

6~EI~~m:J-Jldbl:J-JEI-,l6~'U l~EI tJl-,l'ii~ 6OJ'U~EI Vi'\9J,J'U lnld 6~Eldl m'lJEI-,lElJJmrnm~~ , 66 d'fl~ildl~lblnfl-,l~ :J-JGi~l ~ 66~Gi'U

'lJEI-,l'llEly.JGl6n~ni1i''lJildl~l~~-,l~'U

~-,l~ dl~~'U 1JJ'V1~EI:J-J'l n'U~EI i1fl!Vll6~EI~-,l'lJEI-,lnld'lJl~ 1JJ~n ~-,li'r'U

unVi'\9J,J'UllJJd66m:J-Jn~-,l'YlllVfdl~l'lJEI-,l'llEly.JGl6n~'fl'-,l~'U~ 'lJEI-,ll-,lOJd~l~'lJEI-,ld::;'lJ'lJ~EI:J-J~l 6~EI~~-,lnm <ii'lJ.jiEl'U6~:J-J~'U~EI

~-,l~nmI'J6tJ'U:J-JGi~lVlii'n ~ ~-,l~'Ylll Vfdl~ml:J-J

I'J6tJ'U'llEly.JGl6n~ Wl 'lfm~~6n~

ml:J-J 1d-l'i-bl6~EI~EI'lJEI-,l'llEly.JGl6n~

~-,lOJ::;6~'U1~EI~6'fl':J-JElll1JJd66m:J-JGil-,l'l loi!-,ll'U'lJEI-,l'llEly.JGl6n~'U'l ~EI nldVi'\9J,J'UllJJd66nd:J-JJllJjl rmn-i 6V1Ghd

i1nOJ::;iloliEli::l~'V1m~ 6n~~'U

U'lJ~-,l 66Gi6~:J-J loi!-,ll'U1JJ~GiEl~m~nld

nld~EI'lJ'fl''UEI-,l~6n~~'UOJlnunl~m6Gi::;'lJ~~'YI~B-J~~

~EI:J-J~16~E1~d::;~'lJ'fl'-,l lVld-l'l ~ilml:J-Jm:J-Jldbl'fl'-,l~'U66Gid1ml:J-J<ii'lJ.jiEl'U:J-Jln~-,l~'U ~ ~ 'lfll'J lVftrVi'\9J,J'UllJJd66m:J-Jm:J-Jldm6'fl'~-,l8GinEl~:J-J ~ 1~:J-Jln~'U 1~6~1'J-,l~d-,l:J-Jln~-,l~'U

m:J-Jldbl~66'fldll'J'fl::;6~1'J~ ~

66Gi::;'fl'U'lJ'fl'i1>'UnldElEln66'lJ'lJJJd66nd:J-J66'lJ'lJillm-,l'fl'~l-,l l

(structured programming)

VI~EIlJJd66nd:J-J66'lJ'lJ8E1'lJ60JnGl

(object-oriented

design)

'VlU'Yl1"~U1bff'j,.m 1'VlJ.Jd 1Ji'rl11Vibn~i1b1!'Vl11'VlJ.J~1d-Jd-J1 i1b1!'Vl1m1d-Jbb~f)1Yi1" ~eJ 1UJi'lU m1d-J'VlJ.,J1tJ(semantic bbfl::;mlrll"lU~bn~~u~~" J'1mld-Jbb~f)lYil"1U~lU~U'l JllBl bf1~eJ,,~1'VlblJ1~ bnuml

gap)

~"'Vld-J1tJn"m1J.,Jbb~f)lYil"l::;WJ1"mlrll"lu~J'11'UJllBll::;(~1JJGj" tJnllJ.,Jf1e:Jd-J'V11 b~tr~ mld-J bb~f)lYil"d~"b1f)f)~lTJlrl11 '!J

1uffmil~

Vi

~1tJb'liU mllh::;d-J1flv.Jfl~1J.JJ'11h::;~'YlITJll'\f1 'lJUl~'lJeJ" Tthbbnld-J bbfl::;mld-Jo]iu~eJU ~bn~~u 1 uTLhbbnld-JG11 bbJJflJllBl i(f)eJeJf) uiru

1~'\f1tJltJld-J~~::;bb1li1ru'Vll~bn~~ub~eJrl11Vimld-Jbb~f)Gil"dfl~fl" ~ 'i1~~1~"'lJU1~

f1ruffd-J1i~~~l~ru 1~bbflml141 ,~ 1VirJ'VlflltJbbUUd-J1f)~U G11m.h"

1'Vlq,l
CASE

mlr11'VlU~~lbb'VlU"~eJ~

(addressing mode)

bbfl::;mlff~l"m~~ 1~bbri~1~"

bn~~1'Vl1UmlJJl::;mfl ~J'1141"lUUUbf1~eJ"

v.Jfl~1~"U1"~1~" 1'UJl1B1l::;~Uff" 1~ tJ~l" '!J

VAX

~lif"fiJ'1m1d-Jo]iu~eJUd-J1f)~Ub1f)ff~1"~UJ.,Jl '!J

• •

'li1 tJ1Vi"lU'lJeJ"1JJlbbnlJ.,JG11 bbJJflJllB1J1 tJ~u bv1d-JJJl::;~'YlITJll'\f11umlJJl::;d-J1flv.Jfl deJ"~1f)"lf~~1~,,~J'1m1J.,Jo]iu~eJU ff1J.,J1lb1bbfll'lJ b 1~tJ , ml141

microcode
1'UJl1Bll::;~uff,,~J'1m1d-Jo]iu~eJU 1~J.,J1f)~"~U '!J 1u'Vld,,~'\f1 sn tJlJ.,Jr11'VlU~f1ruflf)Bru::;bbfl::;lJJ uuu , '!J

ff1d-J1lb1ffi(uffuu~1~" , 1unm b~ mnu

J'1ml~f)B1~n~lU

ml1Jl::;J.,J1flv.Jfl'lJeJ"~1~"bf1~eJ" ~bbJJflm1d-J'Vld-J1tJd-J1~1f) 1JJlbbnld-J~b~tJU~1tJJllB1f1eJJ.,J'V11b~eJ~ l::;~Uff" '!J mll~ v.Jfl~1f)ml~f)B11~~u 11Vii(f)l~ tJfhu 'Vld"rl1ml~f)B11
,

UbbU1'Yll,,~Gi1"tmf) 1JJ b'liU 1'UJl1B1l::;~Uff" '!J

tJff~l"ffmi1~

tJnllJ.,J'lJeJ" 1JJlb'lfffb'lfeJ~ ~ffi(uffu

umlJJl::;mflv.Jfl~l~"

1~tJ~l" 1ViJ'1m1J.,JJ1tJ~U bb'YlU~~::; 1ViJ'1m1d-Jo]iu~eJmubnu 1JJ b~eJrl1m1J.,Jboii1hb~mnUb'Vl~v.Jfl~ffi(uffuuffmi1~tJnllJ.,J , , b~d-J~1 tJmle:JITU1 tJf1ruflf)Bru::;mlJJl::;d-J1fl , • n1'3Cth:n'U.~di(p)~'U.

RISC

1Vi~~,,~u ~,,~::;

v.Jfl~l~" bf1~e:J" tJtJeJ ~"J'1m1J.,Ju1ffu h~"d 1~

~::;dJUG11UeJf) 1Vi'Yll1Un"'VlU1~~~::;~eJ"m::;rl11~tJ;V1tJbbfl::;'!J

JJ5n~tJl~1~~eJunU'VlU1tJm1d-J"il1

• ~dtmn'3:::':h~t1m.Z1ttli.-2f
.. ..

~::;UeJf)1Vi'Yll1Un"'lf'ft~'lJeJ,,&hb1f)nl::;'Y11 bbfl::;m1J.,J~1uml '!J

141"lu

~"~::;ff1mlb1U

11JJ141r11'VlU~eJ" iflJJl::;f) eJU'lJeJ"'VlU1 tJm1d-J~1~1'Vl1U~ ~ bflU

&hb1f)nl::;rll b'Vl~ld l1d-J.$i"lITmle)1" Ej"Gl1 bb'VlU"~eJJ~l41 t'!J '!J

526 unri

13 / Vl()lJUi::n~()s~s:::lJa RIse
1'U~d'U ~ bVl~e)'lIe)-JV(doiJ

811 ~~ 1~ ff1JJ ~~~l~~lflm~~mjl'\/'.Jbl~m~~'lIe)-J

1JJ~bbm~ (b~t.Jfl1lbtJ'U

mBl~~<ihJff-J ~ fll~l<J1bb'lJ'lJ 1JJ~bbm~

~-JbtJ'Ufll~1<J1~~~bn<J1~'U1'U'lIill~~1JJ~bbm~ril'~-JbiflJJ~~~d~~~ ~

dynamic)

~'U~e)fll~l<J1~~btJ'Ufll~bn'lJoiJm;j~~bn<J1~'U 1'U'l1ill~~ril'~1-JJJ~~~d~~~ ~-Jd1'U'YIl-Jfli1'lJn'U fll~l<J1~~

bb~~Yllfll~U'lJ~l'Ud'Uf1~-JflldYll-Jl'U~~e)-Jfll~~flBl

~dtJ1TIfll~'lJ~l'Ud'U~l~-JJJ~~I1l'YIGil-J"l

~lfl&b 1JJ~bbm~ 1<J1tJGl~-J (b~tJfl1lbtJ'Um~1<J1bb'lJ'lJ tatic) s ff~Yle)'Uml ~ btJm~-J

~ ~ldJ1 VfJJ~dt_j6Jft1:Gi e)m~~flBlJJ~~~'YITIm'V'J b~tJ bde)-J~l n btJ'U&bbm~ldJl~

nl'~'t11~lU m~~flBll~ tJ btJ'U~ l'U d'U~l

l~Yll fll~l

bml~~'V'Jbl ~m~~'11 e)-J 1JJ~bbm~mBl~~<i1'lJ~-J ~tb~'Ul~1l bm~-Jl'UJJ~~~flii ~~<J1~d'U

Glldl-J 4.7 ~fl~ld~-J 1'U'lJ'YI~4 "x'Ul~bbff<J1-J 1Vfb~'U~~md~flBllbml~~~l'Ud'UVI'd-J ~~~l~"x'U~ml~ffe)<J1f1~e)-Jn'U~lfl~~flld 1.jf1JJdbbm~~b~tJ'U~dWllBlGil-J"l

~bbGlflGil-Jn'U JJd~1tJf1~l~-J~lVl~'lJm~rilVl'U<J1fil
9 'iI 'iI

(assignment statement)
<V

~lfl~ff<J11~bbff<J1-J 1Vfb~'U1l mdbf1~e)'UtJltJoiJe)~~ 1'Ud'!Jbb'lJ'lJ~JltJ~ff<J1dilml~~l~rubtJ'Ue)~l-J~lfl 'I JJd~1tJf1~l~-J~lv\1'lJmdbbtJflmdm'lJ~~ ~~<J1~d'Ude)-J~-J~l

(conditional statement

b'lf'U IF

Vl1e) LOOP)

JJd~ 1tJf1~l~-JJJd~I1l'YId~~\lmbJJ~

lubtJ'U~l~-JJJ~~I1l'YI

compare and
ldJue)tJ ~

branch

~-JbtJ'Um~1Vfb~'U1lfl~ lflm'lJf1~ih<i1'lJmd'!Jd~~d~~~~l~-J"x'Un~ml~~l~ru ,

~~~1~1'lJdbtJ'U~l~bb'U~~~ml~~l~b1JGie)ufle)e)flbb'lJ'lJ'Q'<J1~l~-J~e) i\l~-J6jfU<J11<J1~bim~tJfl1'lhje)tJ61 nmd~~ ~ I e)~l-JldnGll~ ~~~l~d1dJl~bu<J1b~tJ

btJ'Umd~1Vfb~'U1l

1~1'lJmdffu'lJff'U'U , 1VfYll-Jl'U l~e)~l-J~JJd~~'YITIm'V'J

1Vfb~'Ull~l~-J 1<J11.jf~~tJ~nm 1'Um~JJ~~~d~~~'Ul'U~ff<J1,

Dvnamic Occurrence . Pascal C


ASSIGN LOOP CALL IF GOTO OTHER
4"01 )/0 3HfX)
3(~(j

Machine-Instruction Weighted Pascal C


13(X)
1}(};}

Memory-Reference Weighted Pascal C


14'7:) 33c/,() 44(}b
71}~}

15'X,
26~ltt

5 (x) IS')';,
2Y"j(, 6%

42(~{J
31 'X,

32 (YO 33(~1t:, 21%


/0 lOJ

12'~~)
43% 3t~f,
lOl .0

1 1 (x)
3f}'iJ

45% 13'?h
IQ' 10

20/0

l3.l b~8 'lViboiil hl.hln[)mdrud

I V!rua)Juffiiib1t1uEhJmst1s::;)J:JaCJavhctHVl~EhJ
~...:JcJ1~md;;1~l...:J l 1JJdbbm:l-J~l'vj~'unld'Yl(91;;18'U~'Ub~tmll

527

Patterson programs VAX PDP-ll

bbG'1~'YllmdbbJJG'1btl'U 1JJdbbm:l-JJll'fj-l
'IJ

b'fl~8...:J~lVl~'Ubf1~8...:Jf18:l-JV1'd bq]8~ fll b%~ tJ'lI8...:J-;;Jl'U'd'U

bbG'1::;~lVl~'U~V1 tJ

Motorola 68000

b~8 'l <ii'l'UmdVll


'IJ

q;)l~...:Jbf1~8...:J bbG'1::;mdeJl...:J8...:JVlU'dtJml:l-J-;;Jl'll8...:JbbqlG'1~q;)l~...:J oii8:l-JG'1 'l'Uf18~:l-JU~;;18...:JbbG'1::;~m:l-J 'l'U q]ldl...:J 13.21cJ1bb;;1(91...:J 'lVib~'Uml:l-J~~bn(91~'U'lI8...:Jq;)l~...:JJll'fj-ld~~'U;;1...:J~~'l'U1JJdbbm:l-Jqll...:J'l


'IJ

oii8:l-JG'1
'IJ

1:lnd'd'lJd'd:l-J:l-JlOJlnmdil...:Jbnq]
'IJ 'IJ

'l'U'lIru~~nl~...:JJJd~:l-J'dG'1v-.1G'11JJdbbm:l-J
'IJ

oii8:l-JG'1 'l'Uf18~:l-JU~~bbG'1~Vil
'IJ 'IJ

(1:lnr1'd...:JJ'lVlun 1(91tJq;)l~...:JJll'fj-l bf1~8...:J) bn(91OJlnnldt·boii8:l-JG'1 'l 'Uf18~:l-JU~;;18...:J bbG'1~~m:l-J:l-Jlf1rucJ1'd tJ -;;Jl'U'd'Uq;)l~...:Jbf1~8...:J~bn(91~'U ~dl(91~'U 'l'U'Yll'U8...:Jb&imn'U

(normalized)
'IJ

b~8 'lVioii8d;jG'1 'l'Uf18~:l-JU~~bbG'1~~Vilbb;;1(91...:Jml:l-J~ bn(91OJlnmdf1ruml:l-J~~bn(i1~'UcJ1'dtJ


'IJ

oii8:l-JG'1 'l'Uf18~:l-Ju~VilbbG'1~~Vln

-;;Jl'Ud'Uf1~...:Jl'UnldeJl...:J8...:JVlU'dtJml:l-J-;;Jl ' ~8l'Umdboiil


'IJ

hlq]blJJd::;;;1...:J~~mlOJ~...:J'lI8...:Joii8:l-JG'1
,

'IJ

'l'Uq]ldl...:J

13.2

q]ldl...:Jdbb;;1(91...:Jl '

Vi b~'U

ml:l-J~lci1b1!'lI8...:Jq;)l~...:J 'l 'UJll'fj-ld~~'U~...:J

(b~mJmbJJG'1 'l Vibtl'U 1JJdbbm:l-JJll'fj-l lJJ mh...:J hnq]l:l-J

bf1~8...:J) ~...:J f1~8...:J b

f18:l-JV1'dbq]8~'l1il,(91~'UmOJ 'lViv-.lG'1~bbq]nqll...:Jn'U88n ~ btl'U&h'U8n

md~n'fj-litlcJ1'lViv-.lG'1~'VIJTI

'l Vi'Yldl'Un...:J ml:l-J<ii'U<ii8'U'lI8...:J~(91q;)l~...:J

bf1~8...:J'l 'Uq]d~1JG'1

ClSC (Complex

instruction set computer) Ylltlnn1~'t11


'lJ

bb~ll'l1il,(91'l18...:J&h~nm~'Yll

(operand types)

OJ~~ml:l-J~lci1b1!

btl'Umil...:J:l-Jln

bbqlb~8...:Jun~'U

lcJ1~'Uml:l-J;;1'U h 'l'Umd~n'fj-ll~tJu8tJ:l-Jln &hblnm~'Yll~blneJl...:J8...:J


'IJ 'IJ

v-.lG'1md~n'fj-l'll8...:J

Patterson

b~mn'U'l1il,(91'l18...:J

lcJ1bb;;1(i1...:J 'lVib~'U 'l'Uq]ldl...:J 13.3

v-.lG'1~'VIJttcJ1bb;;1(91...:J 'lVib~'Uml:l-J;;18(i1f1i18...:J
'IJ

'lI8...:J JJdbbm:l-J~b~tJ'UcJ1'dtJJll'fj-l 1

bbG'1::; Pascal

~~nldeJl...:J8...:J&hblnm~'Yll'l1il,(i1'U8n-;;Jl'U'd'U

(scalar variable)
~8
'IJ

:l-Jln~~(91 bbG'1~80% 'lI8..J&l'dbbJJd'l1il,(91dOJ~btl'U&l'dbbJJdYl8...:J~'U (local 'l<ii...:Jl'U8~bV1tJ...:JJlltJ 'l'UY1...:Jnoii'UVl~81'VIJd~btJ8~Vl~...:J bvh,x'U


'IJ 'IJ

variable)

~'lI8'Ub'llq]md

mdeJl...:J8...:J I,JJiJ...:J

&l'dblnm~'YllJJd~bJl'Ylm~bdtJVl~81m...:J;;1~l...:Joii8:l-JG'1bb'U'U~'U'l

OJ~cX8...:J~mdeJl...:J8...:Jn...:J(i1dd'l1U Vl~8

Pascal Integer constant Scalar variable Array/structure 16(};,


58~) 26uAJ

C
23 (X) 53(}b 24°,{)

Average
20(}~)

55 'X, 25 yo
t

528

unfi

13 I flOl1W:HLilosLils:::l}a Rise

Percentage of Executed Procedure Calls With


>3 arguments

Compiler, Interpreter, and Typesetter


0--3 (~{)

Small Nonnumeric Programs

>5 arguments
>8 words of arguments local scala rs and and

o (;,f)
0-6IY;J

>.12 words of arguments


local scalars

~1~~lbbVlU-,J~-,Jn~(9dlb1J'U JJd::;bJ1'V1 scalar

scalar variable

e:J~l-,JVld-,J ~,:ni'U~-,J$'lmde)l-,J8-,J lJJ~-,J~1b1nm::;yil ~


9

~ b1J'U~1

bbJJdYie:J-,J~'U 'Uif(9)ri1'U~6'1-,J&.Jln~6'1(9) 1 -u

m~b~tJn

lohl'jI\Jd~'btJe:J~
~

(procedure

call)

bbfl::;mdtJe:J'UnihJ&.JlYil-,Jl'Ub~&.J b~ tJ'U~1 tJJ1l'tm::;~1J6'1-J


'lJ

(return)
~-J V-Jfl"Jlnmdf1m~l

b1J'U

e:J-J~JJd::;nmJ~~l<f1rue:J ~ bb6'1(9)-J 1wmdl-J

~l-JVld-J'lIe:J-J 1JJdbbm&.J~

13.2

1~~1 Vibt1'U II b1J'Uri1'U ~l olrb m 1'UmdbbJJfl b1J'UJll'jjl b~~e:J-J'Ul'U&.Jln~6'1(9) 1


9

~-J~ 'U~-J b1J'Umd~tll"J::;6'1l&.Jldbl6'1~l-J1TImdb~tJn 1 Vi$'lJJd::;f{'YlTIJ1l'jI\J&.Jln -J~'U ~ bbfl::;~hbbJJ~1'jI\Jd'6btJe:J~illolr-Jl'U "JlnV-Jflmdf1n'jjl'lle:J-,J

1 olr1 'jI\Jd'6btJe:J~ bbfl::;mdtJ e:J'Un ii'1J&.JlYil-Jl'Ub~&.J lli1e:J ~l'U1'U'lIe:J-J'jI\Jldl~ b(9)e:J~

~-J~~l~b1I6'1e:J-Je:J ~l-J~"J::;~e:J-,J~"Jldru,

bbfl::;oJl'U1'Ud::;~1J~'U~1'jI\Jd'6btJe:J~b~tJnsife:J'Un'U

(depth of nesting)
lolr-Jl'U bbfl::;

Tanenbaum

'jI\J1Jll

98%

'lIe:J-J 'jI\Jd'6btJe:J~~bn(9)mdb~tJn 1 6 ~1

l'Ud::;V11l-J~1JJdbbm&.Jfilii'-JblnJJd::;&.J1f1V-Jfl~'U -u 'lIe:J-J'jI\Jd'6btJe:J~~\lm~tJn 1 l&Jbn'U 6 ~1 (9)ldl-J

$'lmdri-JvJl'U'jI\Jldl~b(9)e:J.fl&Jbn'U

92%

1 olrbVlfhdl olr~1 bbJJd1Je:Jn~l'U1'Ubb1J1JYie:J-J~'U 13.4 l~bb6'1(9)-,JVibt1'UV-Jflmdf1n'jjl1(9)tJ l V-Jflmdf1n'jjll~ bb6'1(9)-,J 1 Vibt1'Ull

(local scalar variables)


~-Jil

Berkeley RISe team

V-Jflmdf1n'jjl~6'1e:J(9)~ii'e:J-Jn'U 1'jI\Jd'6btJe:J~~'U$'l'll'Ul(9)t.J1Vl1;1!Un

'lI'Ul(9)'lIe:J-J'jI\Jldl~ b(9)e:J~~lVl~1J

"Jl nmdf1n'jjll~ lnii' b~ tJ-Jn1Jf1l~-J 'Yll-J~~nll~e:J

tJ b1J'U~l'U 1'U&.Jln'jI\J1Jll 1 'UJ1l'jjld::;~1J6'1-J~'U -u


9

nld6'1~l-J6'1m1:1(9) tJmd&.J'lle:J-J'li(9)f1l~-J
9

1 Viililn'jjru,::; bfl tJ
I

1&Jl'libb'U1'Yll-Jnlde:Je:Jn
9

bb1J1J~ilJJd::;f{'YlTIJ1l'jI\J

md'jllJmm&.J6'1u1J6'1'U'Umd'!J.'fuJJd-JJJd::;f{'YlTIJll'jI\J'lIe:J-Jri1'U~n'Ubdm

l'UmdYIl-,Jl'U'Ul'U61

'lIe:J-J 1JJdbbm&.JJll'jjld::;~1J6'1-J -u

13.2 / ~-.l~md-JldflmtIM~lnnld~mnb'!J'U~l'Ud'Ud-Jlnmd-J'l..h::;md
q

msltiS~aw1C)s1uJauU1~11'1rY 529
~-.ll~nmtJb'lJ'Unldnl'VI'U(91

f1ruG'1d-JiJ~'lI€l-.lG'1mlJ<iltJmdd-J
q

RIse

~€l

l.h::;mdbbdn

md lm~m<il€l~~l'Ud'Ud-Jln

'VI~€ll-iib'YIf1uf1
'lJ

mdbbtJ1.'11tJdbbmd-J li45'1md lrnm<il€l~€l~l-.l5'1tJd::;~'YITIm'V'J li45'1tJd::;~'YITIm'V'J~-.l~'U bb1.'1::;G'td'U l'V1qJbu'Umd md8l-.l8-.l~bn(91~'U

~-.lbU'UmdtJ.'futJd-.lmd8l-.l8-.lGhflnn~l q

md~mnl~bbG'1(91-.l1i4bi1'U1l5'1md8l-.l8-.lbn(91~'U'VImtJf1~-.l<il€l'VI-d-.l~l~-.l

l-ii~l~-.l~l'VI~1Jmdnl'VI'U(91~l (l'U'VI'udtJmld-J~l)
q

(assignment statement)
b~mn'U

~€lddd-Jb-ihn1J

l'U1J~nru

bb1.'1::;md8l-.l~-.lciidbbtJdG'td'Ul'V1qJ~bu'U

'll'U(91 scalar bb~d 'Y1l1i4bi1'U1l~::;md-JldfltJ~1JtJd-.ltJd::;~'YITIm'V'J1~(91tJmd1.'1(91~l'Ud'Umd8l-.l8-.l 'VIUdtJmld-J~l~d

urm1m~m<il€l~~l'Ud'Ud-Jln

.$f-.ldb'ii€l-.l'<innmd8l-.l8-.l~bn(91~'U l'U1J~nrub~ ltJl~

mn'U

bb1.'1::;mdb~d-J~lm'U~~m<il€l~'Ubu'U~-.l~bU'U tJd::;md~G'1€l-.l d::;ir(91d::;l-.l ~l'Ud'Ud-Jln md€l€ln

bb1J1J~l~-.l bf1~€l-.l~l'VI~1Jmd'Y1l1tJtl1mt~

::;C;;€l-.lm::;'Y1l~d tJmld-J
'lJ

bct€l-.l~ln~(91G'td'U'lI€l-.l~l~-.l

branch

bb1.'1::;mdb~tJn l-ii1'V'Jd'libtJ€l~,x'U5'1€l~bU'U 1~md-JldmbniJQJ'VIl'U~~ bb~dnmtJbU'U~l~-.l~1~C;;€l-.lmd ~-.l~::;'Y1l1i4 l-ii-.ll'U

rm l-iib'YIf1uf11tJl~1mX~dtJ1TImdtJn~,x'U~::;

bn(91iJQJ'VIlmd€h'U~l~-.lbU'U~lm'Ud-Jlnb-ih~1tJtl1mt tJd::;mdG'1(91Y1ltJ md~mn


q

1~bbG'1(91-.l1i4bi1'U1lmd l-ii~l~-.l~1~sii1Jsii€l'U bb<iln~::;bi1'U 1~-ii(91b~'U1 'WIl tJ'VI~-.l

bb~1ltJd::;b~'Ud~::;

~-ii(91b~'Ub'Yhn1JG'1€l-.ltJd::;b~'Ubbdn~nG'ild!i-.l

r..J~G'1dtJ~1~nG'ild!i-.llwxd-n€l
q

13.1

,x'U 1~~1i4bi1'Umld-J<ile:J-.lmd

l'Umd

l-ii-.ll'Uciidflnm::;'Y1l
'lJ q

mh-.ldd(91 b~d

Wi-.l~1~'YIdl1J bb~d1l

~l~-.lmdnl'VI'U(91~l,x'U5'1if(91G'td'Ud-Jln~G'1(911'U
'iJ 'lJ,
Q.I

1tJdbbmd-J
'iJ

11l1.~m::;Wi1JG'1-.l 'U€ln~lndli-.l'V'J1J1lciidflnm::;'Y1l~fln€il-.l8-.l,x'U 'iI bn1J€l~l'U~'U~b~mn'U


'lJ

G'td'Ul'V11J.lbu'Uciidflnm::;'Y1l~ md lm~m<il€l~

b~€lddd-J-nmYl~~~-.l.$f-.lG'1€l-.ltJd::;m~b-nl~dtJn'U~::;'V'J1J1l
'lJ

~lm'Ud-Jln
q

l'Umdbn1J-n€ld-J~

b'VI r..J~~ bG'1'U€l 1 <iI bb'U::;


'lJ

i41m~m<il€l~
~~m<il€l.fty.J~
'lJ

'Umdbn1J-n€ld-J~n
'lJ 'lJ q

bct€l-.ld-Jl~ln1l

~~m<il€l~bU'U€ltJmru
q

~l'VI~1J bn1J-n€ld-J~~5'1mld-J b~d 1 'Umd'Y1l-.ll'UG'1-.l~G'1(91 ~-.l b~dn1lmld-J bb~::;'VIUdtJmld-J~l

b~d'll€l-.l'VIUd tJmld-J~l'VI~n

cache

(register file)

'VId-JltJ!i-.l n~d-J'lI€l-.l~~m<il€l~~5'1'l1'Ul(91
'lJ q

b~nd-Jln md-Jldmn1J1111ltJ
'lJ

l'Uciid'li.y:)tJ1~b'VI5"j€l'Un1J'VIudtJbmb€l~tJbb~::;'\IIudtJm1Jf1d-J
'lJ

bb~::;li-.l5'1'l1'Ul(91

'lI€l-.l<illbb'VIU-.l~mj~'Un1l'll'Ul(91'l1€l-.l<illbb'VIU-.l~€l~'lI€l-.l'VIudtJmld-J~l'VI~n
'I 'iJ

bb~::;bYi€lli4md lm~m<il€l~
'lJ

5'1tJd::;1tJ'll'uG'1-.lG'1(91 ~-.l<il€l-.l5'11TImdbYim;,ld-Jll.rl'Umdbn1J~mnciidflnm::;'Y1l~fln8l-.l8-.l!i-.ltJ€ltJf1~-.l 'iJ 111'U~~m<il€l~ ~-.l~::;'lfdtJ~(91mld-J~1'Umdbb~nbtJ~tJ'U-n€ld-J~d::;'VI1l-.l~~m<il€l~


'lJ

bb~::;'VIUdtJmld-J~l

530 unfi

13 / flOlJUJJUilOS{iJ.S::lJ8 RIse

lTIrm~~m:h':d:)lTI~'U~l'Um.h:m~lTI~

'l!8y.j~bb11'OJ::: 1oii1'Lldbbm3-.l<if1bbui;Ull'l~1j'U<if1~'l'i1V1i(1~U~~lJ1Viijmd 1oii~1'U~~~b<il81m.h~ij d Ud:::~'YlTIm'V'l 1Udbbm3-.l<if1bbUi.'1m~l'OJ:::'V'I~mJ13-.1U~~lJ 1Vi<if1bbud~'OJ:::nn 1oii~1'UumJfI~~~~CJ1 '" , (rnu 1'U'lh~b1mVld~) nmnlJ 11l'U~~m<il81 ~~dj'Ul~<ii8~ 1oiieJi.'1n81Yi3-.l~~lJ~8'U 1'Umdlbfldl:::~
'lJ

'"

'"

8 bblJlJ~loii'l!8y.j~bb11bbi.'1:::bblJlJ~1 bb111TIm~ oiim1CJ1

'V'Ibl~md3-.l'll8~1Udbbm3-.1 lTImdbblJlJm{CJ1bb1{it'UbY1~~bb~byj3-.l-;J1'U1'U~~m<il8{lViij3-.l1n~'U b~8~'OJ::: 1~m3-.l1dmnlJ<if1bbud 111 'UVI'vb~m13-.1-;J11~bU'Ud:::~:::b1m'U1'U~'U1'Ul11-ii8d''OJ::: 1~

1CJ1~Un~bb~1 rm 1~~m<il8{-;J1'U1'U3-.l1n 'OJ:::'li1~i.'1CJ1m13-.1~1'Umdbbi.'1mu~~'U-ii83-.1i.'1d:::VI';h~ ~~m<il8{nlJmb~m13-.1-;J1i.'1~ ~~it'U~1'Umd88nbblJlJ'OJ:::b~m-ii8~nlJmd~CJ11m~~~1~~~m<il8{ 1VilJddi.'11<ilnud:::~~~d' ,, bd8~'OJ1 nmd€11~€l~<if1nnm:::'l'i1it 'UbnCJ1~'UnlJ<if1 bbud~nn bnlJl11'UlJ~b 1 ill 1n~ b~~~n'U
'lJ '"

'"

1TIm~oifCJ1b'OJ'U~8nlJ<if1bbudbVlG'i1.a:t1l'U~~~b<il8{ b 1CJ1~m'OJ'OJ:::bnlJ~~m<il8{~1'UVld~11~lV1TIJ <if1bbUd~bnlJ8 ~1 'UlJ~b1ill~'U "~JutlJYidllJEJt.i'1u~u~lJ~rnu


'"

(global variables)

i:1b11V11~bnCJ1~'Un~8;:;'m3-.l'll8~~h:h it'Uijmd\'u~~'UUUi.'1~8~b~3-.l8
'lJ

'1n~b$iI:JJnU (local variable)"

1CJ1~b~'V'I1:::, 1'U'Ylnfl~~~ijmdb~~n 1oii1'V'1d~b~8{ 8mdli8'Un~lJ3-.l1'1'i1~1'U~b~3-.I~~iJn'OJ:::bilCJ1~'U m 8~b~3-.l81'U'Ylnfl~~~ijmdb~~n 1oii1'V'1d~b~8{ if1bbud.$i~Vl3-.lCJ1'OJ:::<ii8~nnu'UYinn~lJi.'1~ < lu~VI'u1~


'lJ , 'lJ

m13-.1-;J1V1~nb~81Vi1'V'1d~b~8{~nm~~nit'Um3-.l1dn 1oii~~m<il8{bVlG'i1it'Ul~ 8~1~i(8~~~CJ1


'lJ ,

nm'OJ'OJ:::u oii~1V1~lJmd~~~1'U1'i1<if1'V'11dlil 13-.111 b<il8{ 1'Umdli8'Un~lJ3-.l1'1'i1~1'U~ <if1bbUd'll8~ b~3-.I


~1'U 1udbbm3-.l~ b~~n1oii1 ~·~b~8~:::<ii8~nne:i1'U1'i1n~lJ3-.l111~ b~3-.l8nfl~~Vld~b~8'OJ::: W bnlJ 1~m3-.l1dbl

'l'i1~1'U~81LJ1~ d13-.1.$i~j;.,Ji.'1~'V'ITI~1~'OJ1nmd'l'i1~1'U'lI8~ 1'V'1d~b~PJ{it'U'OJ:::nn~~m~11:J


'lJ

'"

LevelJ

Call/return

Level J + 1

13.2 I

ms ltiS~E1wws1uJauU1w lnrU 531


~~~mild 1n 'UVldoii813.1

Vl'UYIl~ bbni:lruvnd~'UmHhJ l>JG'1Jl ~~l'Ur!8~m.h:rYi~~'o,nnmd~n~l ~ 'lJ lh~mdbbdn tJd~md~r!8~

1'V'ld~b~8fYidltJiJmd1'V'llJl~b<ll8~bbG'1~c;hbbl.hblA1~~ laJ~c;h ~~bbr!l?1~ 1'U<lllJl':! 13.4 mdb~~n-if8w1l8~ 1'V'ld~b~8~

(nested call)

iJn'OJ~bnl?1~'U-if8'Un'U laJ~~'Ub'Yh~'U ~~mdbbtJ~~~m<ll8~

~~bbr!l?1~'UdtJ 4.16 1 'lJ

b~81Vibnl?1tJd~ 1~'lfur!~r!l?1fii8r!m'Umdrnb'lf'Ud 'lJ , Vl'1~bfiil~ Vl~8

88mU'U'lfl?1b~n'l (b~~nll

window)

Vlm~'lf1?11l?1wllVl'Ul?1md1oii~l'UbbfiiG'1~'lf1?1

1Vinu 1'V'ld~b~8~fiil~'l 'lfl?1fiil~'l ,

n'U mdb~~n 1

oii1'V'ld~b~8~~~ bU'UblA1 ~~mdr!Gi'umd

"

1oii~l'U~~m<ll8~

bb'Yl'U~'OJ~bu'Umdu'U.;;inbbG'1~eil'Uoiim-JG'11Vibbri~~m<ll8~ Vl'UlfiiW1l8~ 1'V'ld~b~8~m'OJ 'lJ

Yiu-if8'Un'Ub~81oii1 'UmdGi~e.Jl'Uf1l'V'lldl~b<ll8~ i1,md-Jnld'Yll~l'U 1'UGi'n~rn~dbbr!l?1~ 1Vib~'U1'UdtJ 13.1 tu nm 11?1f1<llld-J 'OJ~51VlU lfiil~ 'lJ ~~m<ll8~blA1 ~~VlUlfiil~ b~m~f1nu ld-Jl1oii~l'U Vli(lfiil~~~m<ll8~bbtJ~88n bU'Urlld-JGid'U ~51'l1'Ull?1 'lJ fI~~ 'V'lldl~b<ll8~~~r!b<ll8~

(parameter

register)

1oii~lVl~Ubf1Uf1l'V'lldl~b<ll8~~Gi~d-Jl~~

1'V'ld~b~8~bbG'1~ 1oii1'UmdGi~f1lnGi'u~d~b'lf'Un'U

lG'1f18G'1~~m<ll8~ (local

register)

1oii~lVlW

bf1Uf1lG1d bbtJd~nlVl'U1?11oii~lVl~U 1'V'ld~b~8~~'U'l ~~r!b<ll8~~dmld nu 1'V'l~b~8~~'U ( temporary

~~~n 1oii~l'U11?1 ultJdbbndd-JG1d btJG'1m~l b

register)

1.j5~lVl~mdbbG'1mtJ~~'U'V'llJl~b<ll8~bbG'1~l>JG'1Gi''V'lTI

~~m<ll8~~dmld'll8~

1'V'ld~b~8~Vl'ct~'OJ~bu'U'lfl?1b~mnu'V'lldl~b<ll8~~~m<ll8~ ,

'lI8~1'V'ld~b~8~f1n b~~n1oii~~'OJ~'lfd 1Vi51mdbbG'1n ~ btJ~~'U'V'lldl~ b<ll8~d~Vlll~n'UlcX[l?1~ laJrii8~51 'lJ mdbfl~8'Ulh~oii8~G'111?1'l 1'Umdr!ii:ur!'U'UmrYh~l'U'lI8~mdb~~n , 1oii1'V'l~b~8~bbG'1~mdli8'UnGi'ud-Jl'Yll~l'U~b~d-J (calls

and returns)

-.Jl'Ud'UVli(lfiil~~~r!b<ll8~Uld-Jl1oiimd'OJ~rii8~51-.Jl'Ud'U laJ-.Jlnl?1(b'V'ldld'V'l~b~8~ ~~bU'Ub~8~~bU'U lLllaJM ~~~'U~~rii8~bl tJ'Un'U 10ifVlU lfiil~~~r!b<ll8~

m'OJ ~tJn-if8'Un'U b l~-.Jlnl?1)

~51-.Jl'Ud'U-.JlnI?18tJ-.Jl'Ud'UVl.ct,~ ~~Uld-Jl1oii~lVl~U1'V'ld~b~8~f1m~~n 1oii1'U~l~UVlGi'~'l oii8d-JG'1 'lJ 'lJ 'lJ ~lVlW 1'V'ld~b~8~f1m~~n 1oii1'Un~d-Jbbdn'lOJ~f1nulltJbf1uIn'UVl'j,b~mld-J-.Jl ' 'iJ 'iJ
'I

bbG'1~f1neil'UnGi'u 'iJ

boiild-Jl1'U~~m<ll8~m~VlGi'~~~~1~n~ldd-Jlbb~d lm~r!-n~'lI8~Vlulfiil~~~r!b<ll8~~~51Gi'n~rn~bu'U U~b~8~f1n


'lJ

1oii~l'UbbuUVld-J'Ubl~'U 11?1~511Jl~Gid'U'lI8~Vlulfiil~~~m<ll8~8tJ~l?1n'U~wii8'UYiun'U8tJ 'iJ 'iJ


'I

G1d8tJl~md 1.j5~l'U'OJ~1~n~ld~~1'Uvhoii8 13.7 dtJ 13.2 bbr!I?1~Gi'n~rn~u~b~8~51md 1.j5~l'Ubb1J1JVld-J'Ubl~'Ubu'Ud~nG'1d-J-.Jl'Ud'U 6 VlUlfiil~ 'lJ ,

(WO ~~ W5)
B, B G1d~

U~b~8~f1n 1oii~l'Ub.ct,8~'OJlmnl?1nm~~n 1oiil'V'ld~b~8~-if8'Un'U4 fI~~ (A b~~n 'lJ 11?1~511'V'ld~b~8~ D bu'Ul'V'ld~b~8~nlGi'~f1ntJd~mG'1l>JG'1 'lJ

b~~n C, bbG'1~ b~~n D) C

CWP (Current Window Pointer)


~~m<ll8~~f1n
'lJ

bU'UG1d~~~lbbVlU~'lI8~VlUlfiil~~nlGi'~1oif~l'U8~
v "

1'U'lIrn~~'U

8l~8~ 11?1 ~f1l~~ bfl~8~'OJ~f1ntJ~Uf1l1 Vi<lld~n1JVlUlfiil~~f1nril8~

11?1~f1l'll8~ cWP b~81Virlld-JldflUloii8d-JG'11'U~~r!b<ll8~rii8~md ltI1oif~l'U1~ G1d~saved-window

"

532 unfi

1.3 / Yl()UUbWl()SDls:::l}a RIse

Restore

Save

Currentwindow pointer \

~ ~

pointer bb~<ll-.1~lbbVlU-.1'lJ€i-.1V1ii:wh-.1bbdn1ll~ 1ui:ivJbvJ€J~~t,]nb'h.Jn 106 r;:ilU~b1jU temporary register 'lJ€J-.11'jAjd~b~€J~D

<jJm')ltll1'jAjd~b~€i~ D

bd~n 106-.1lu1'jAjd~b~€J~ E r;:ilu~dju'jAjldl~b(j]€i~'lJ€J-.11'jAjd~b~€J~ E ~~bmnlVlu<lllVi<ii€JuYi'lJn'lJ (r;:ilU~<ii€JUYi'lJd~VI'Jl-.1V1ii:l<jJl-.1w3

"

bbG'l~w4) G'l~fil'IJ€J-.1 CWP

~~b~€Ju~lbbVlu-.11u~~Vlii:l~l-.1t;l<lld-Jl w5

tll1'jAjd~b~€J~ E bd~n1061'jAjd~b~€J~ F mdbd~nf1~-.1d~~hi~ld-JldblnlVlu<lllo6~u~ 1Vibbfi1'jAjd~b~€J~ F 1~ bii€J-.1~lnijr;:ilu~<ii€JuYi'lJn'lJ b'jAjdl~tll1'jAjd~b~€J~ F 'jAjmmd-Jrilufil'jAjldl~b(j]€J~b-i:ild-Jl

wO ~-.1djUVlii:l<jJl-.1'IJ€J-.11'jAjd~b~€J~ A n~~'I'1l1Vifilb~d-J'lJ€J-.11'jAjd~b~m~ A

13.2 I (l-U'6'i1'U

mslJ5S~alb1os1uJauu1V11l'ifli

533

A.in) bini.'1'lJ~'l ~

~'l~'Utllfil'll€l'l

cwr

rlm~mhd-Jlii'l~lbbVlU'l~5'1filb'Yhn'lJ ~

swr
F

QJ~"YlllVid'~~~'Ub'Yle:J11Y1Yi QJln~'U

bY1e:J"Yllnld1JwYimh'U

A.in
1u

bbi.'1~

A.loc

l~1'U'vju1~ml:!-l..:ll l-if[Y1d*b~€l1

swr

QJ::;rlmYid-Jfil1u~~~-'bbVlu'lVliblGll'lil~ ~ ;;:i1'Umdiie:J'Un~'lJ

bbi.'1::;nd::;'lJ1'Umdb1~n
9

QJ::;\91l U'UGle:J b 1uGll:!-lun~ 1 'U"Yll'Ue:J'lb&1mn'U ~1Y1d*b~e:J1 A

1u"Yll'll'U~'l'OJ~~

b1~n l-if[ Y1d*b~.Je:J1n'OJ::;'I'1l'll'U

b'lf'U b~e:J1Y1d*b~Je:J1 B b;;:!~'OJ~'Umd"Yll'll'Ubbi.'1::;c;re:J'lmdiie:J'Un~'lJ 1u"Yll'll'UGle:J

fil'lle:J~

cwr

QJ~binG'1~fili.'1~:!-ll ~~ l'U~-d'OJ::;5'1filb'Yhn'lJ ~

SWP

~~QJ~"YlllVibn~

'OJ::;b{4'U 1~1lVliblGil~1~mGle:J1~l'U1'U VliblGil~b'Yh~'U 'OJlnmd~mjlY1'lJ1lfil'lle:J~

N VliblGil'l'OJ::;md-Jldbi'\.l,ld-Jlloii'll'U'OJ1~ l~bYl~~ N 1aJoJlbu'Uc;re:J~5'1fillVlqj:!-lln~e:J

N-1

5'1filUd::;d-Jlru,

8 VliblGil~

b'lf'U l'Ub~~e:J~

Berkeley RISe

~~'lI'Ul~

8 VliblGil~bbGii.'1::;VliblGil~5'1161~mGle:J1
bU'Uc;r'U

b~~e:J~~e:Jd-J~1bGle:J1

Pyramid

5'1 16 VliblGil~

bbGli.'1::;Vl'UlGil~5'132 1~mGle:J1

mWl~l'U

1~~ loiiVliblCJil~~~;;:!bGle:J1Glld-J~1~e:JfilJl~

1ubb~1~'U

bU'Ulfimd~5'1ud::;~'Ylfi[llY1~lVl1'lJ mh~ 1dnGlld-J1TImdd

md~(9]bn'lJc;j'1bbuJYie:J~~'U

(local variable)

~lVl1'lJ 1Y1d*b~e:J1~W-1

'hJmd-Jldrl'\.l,ld-Jlloii1'Umdbn'lJc;j'1bbud;;:i1'Unm~ -5l~8~ii~ 1Jl1(9]~ 1Y1d*b~e:J1Gil~"l

(global variable)

1Jl ~~Vld-Jl~ii~c;j'1bbU~md-Jldbi

1Jll'Ub1mb&1~1n'U

5'11TImd~md-Jldbi'\.l,l:!-ll1oii1Jlm.h~ibe:J~ 1'U1Udbbndd-J[llMld::;~'lJ;;:!~'OJ::; 1Jl1'lJmd ~ b~~e:J~~~Vld-J(9]~-5l~~~ii~c;j'1 bbUd

;;:!e:J~1fi~e:J 1TIbbdn Gl1bbu~11Jd::;mf1bU'UGl1bbud;;:i1'Unm~ nlVl'U(9]~l bbVlU~~e:J ~1(9]~ 1Udbbndd-Jc;j'1 ~

uilsrmn

~l~~[llMl

bVlG'ild'OJ::;oiimd-5l~~~ 1u~Vlu1~mld-J..:ll1(9]~Gld~ 1 ~~m1(9]bb11bbi.'1::;'l!e:JyjGi'bb11 ;;:i1'Unm~ue:J~~~~

1TIm~dj'Umwl~l'Ubb'lJ'lJGld~ e:J~l~ 1dnGlld-J

1um~d-Jl~lVl1u tll5'1nld-5l~~~Gl1bbUd

(1Udbbndd-Jc;j'1bbUi.'1[llMl)

1fim~'OJ::;bu'U1TI~5'1u"l"::;~'Ylfi[llY1~l b~Gl'lle:J~~~;;:!bGle:J1~lVl1'lJ bn'lJc;j'1 bbud;;:i1'Unm~

Vl'U'Yll~ b~e:Jn bb'lJ'lJ~;;:!e:J~ ~e:J md'l'1l~lWhd-Jn'lJ

111'U*Yl~ ~ 1(9]~b%Y1l::; 1~;;:!bGle:J1nG'id-J-d'OJ::;5'1..:ll'U1'U..:lln(9] bi.'1::;m:!-lldbi-5l~~~ 1Jl'OJln 1Y1d*b~e:J15'U b 9 ~~Vld-J(9] d'!Jbb'lJ'lJ~Jl~ ~ md'\.l,ld::;'lJ'lJmdnlVl'U(9]Gl1bi.'1'l1bb'lJ'lJd::;'lJ'lJb&1~1:!-ll1oii'OJ::;'lf1~ Gl1e:J~l~b'lf'U md-5l~~~lu~~1~mGle:J1Vl:!-llmi.'1'l1 lVid'!Jbb'lJ'lJ~l~~b~~e:J~bU'U ~

0 ii~Vld-Jl~bi.'1'l1 7 'OJ::;bu'Umd

-5l~~~ 1u~~c;j'1bbud;;:i1'Unm~b'Yh~'U c;j'1bbUdYfe:J~~'U

bbi.'1::;1~mGle:J1Vld-Jl~bi.'1'l1 8 ii~ 31 ~~'OJ::;Vld-Jl~ii~md-5l~~~

1TIm"l"d'OJ::;'I'1l1 Vimde:Je:Jnbb'lJ'lJm1(9]

u115'1mld-J'i!'lJ.jfmibYid-J~'Ubbi.'1::; ~

1Udbbnd:!-l

c;j'1bbUd[llMln'OJ::;c;re:J~c;j'(9]~'U h1l b'Yh1(9]

Gl1 bbud;;:i1'Unm~c;j'11(9]~'OJ::;rln

bn'lJ 111 'U~~mGle:J1Vl:!-ll ~bi.'1'l1

534

unf

13 I ~OlJlli::HJilOSJilS::;lJa Rise

1~ml1le:)'fl'\"J~

(register file)

~~\i1lm-.lG'1'~l-.lbtJ'UbbuuVliblGhJ bbth~~

rllVlUl~btJ'UbVl~€l'Ui:i'\"Jb'\"J€l{

mld-Jb~1G'1'-.l'lJ'U l\i1 b~n ~

~1.jf~lVl1u~\i1bnu&h

bb'U1luwh<il::;blmbd-Jl1.jf-.ll'UJJmJ~~-.l ~ (bbGl~mld-Jb~1G'1'-.ln1ld-Jln)

1~ml1l€l.fl'\"J~~-.lrllVlUl~~~lWlUbtJ'UVlI.-i111~1ld-J'<ill ~-.lbn\i1~'U1lnll";'l~-.lVlI.-i111mld-J'<ill bb'fl::;~n1lVl1€llaJ I1ll1l-.l 13.5

Cache

~lmd-J

cache

bb'fl::;1~G'1'bl1l€l.fl'\"J~d-Jl1.jf,xW'J::;btJ'U1TInll~Jlll

btJ111UbVillu~ru~ml'ru::;'lJ€l-.lnll1.jf-.ll'U~-.lG'1'€l-.lbbUU q

nll1.jf1~G'1'bG'l€l.fl'\"J~

'lJ'Ul\i11V1qj~lVlwbnlJ'li€l~'fl&l1bbtJl'I1€l-.l~'U bn'U ltJ ~-.lbn\i1~'UU€llld-Jln)

(lInb1'U 1'Uul-.lmru~VlulGll-.l1~ml1l€l{m'<il~'lJ'Ul\i1b~n N-

'lJ€l-.l I".Jl~bll€l{ T

1Wl~bll€l{~l~\i1

VlI.-i11Imld-J '<ill

cache

'<iI::;b~€ln bnu-ii €ld-J'fl'lJ€l-.lG'h bbtJl~bln";' ~ ~ 'li111'fl\i11::;1I::;bd'fll1'Unllrll-.ll'U 1'U'Vll-.ln~un'UVlI.-i111mld-J'<ill


'lJ

ld-Jl1.jf-.ll'U~l

G'1'\i1'<ill'U Vlti-.l 1~mG'l€l.fl 1'U q

'\"J~'<iI:;G'1'ld-Jllbl : 1111l'fl€l\i1bdm

1Vi~'U'fl-.llJi

bWll::;&l1bbtJl~-.lVld-J\i1b1nbnU1mn ~
q

cache

'<iI::; l.jf~'U~lVibn\i1'l.ll::;lmfilinn~G'1'\i1 .

bWll::;1l'<il::;Gl€lUG'1''U€l-.l
'lJ

GlmVll1lmlruU'<il'<ili:i'U€l~bG'1'd-J€l ~-.ln1l'd:VlI.-i111mld-J'<ill q q 1'UVlI.-i111mld-J'<illbVl~€l'Un'UVld-J\i1

cache

iJ-.lI1l€lUG'1''U€l-.lGl€lnl18l-.lEJ-.l-ii€ld-J'fl ~-.l,x'UnlltJl::;VliJ\i1bdm 1'U

rll'U€l-.lU~-.lm'<ilbn\i1'lJ'U lJinuVlI.-i111mld-J'<ill 1~ mGl€l.fl '\"J~m'<il1.jf-.ll'U~'U~1

~-.l~l~-.lb~~€l-.lbm::;-ii€ld-J'fl'Vln'JfU\i1 ~ q

cache

byilu'U

'Unllbnu-ii€ld-J'fl€l ~

~l-.llaJ~tJld~'VlTIrnw

bd€l-.l'<illn Wl~bll€l{

Ul-.ln~d-Jb'Yh,x'U~'<iI::; 1.jf~'U~1'UVlulGll-.l1~mGl€l.flJi~-.lVld-J\i1 q b'Yll,x'U 1'U'Vll-.ln~un'UVlI.-i111mld-J'<ill

fl1'U 1V1q}'<iI::; 1.jf-.ll'UbWlI-.lUl-.lfl1'U bd€l-.l'<illn-ii€ld-J'flblnBl'U ~~

cache

m'<il~tJl::;~'VlTIrnW~l

b-iild-Jl~~-.l'fl::;V!d-.lu~€ln ~-.l~-ii€ld-J'flVi'tJ~€l-.lml1.jfGl\i1 b-iild-JlJi1 1I 1 'U'lJruv ..,ffi~mGl€l.fl '\"J~'<iI::;bnub%Wl::;

-iiEld-J'fl&l1bbtJ~'<iI::;~€l-.l";'ld-Jl1.jf-.ll'Ub'Yll,x'U

VlI.-i111~1ld-J'<ill

cache
~

md-Jllmnu-ii€ld-J'fl'lJ€l-.l&l1bbtJ~-.lbbUUr1€l-.l~'U ~
~

bm::;bbuufl1'Unm-.l
'Il

&l1bbtJlfl1'Unm-.lm'<il~B~btJ'U'<ill'U1'Ud-Jln VlI.-i111mld-J'<ill

bbGl~bln";'ld-Jl1.jf-.ll'U€l~l-.lVlun,x'U~€l~btJ'U'<ill'U1'UU€lll filVlUlGll-.l

cache

md-JllblI1l11'<i1G'1'BUml1.jf-.ll'U&l1bbtJlbVl~lu~JI1'U'lJruv...y\1.jf-.ll'U'<iI~-.l

Large Register File All local scalars Individual variables Compiler-assigned global variables Save/restore based on procedure nesting depth Register addressing

Cache Recently used local scalars Blocks of memory Recently used global variables Save/restore based on cache replacement algorithm Memory addressing

13.2 /

ms ltiS~aUn()S1uJauU1V11nrli 535

1~m<il€l1Sj~u~Y1bq;fi'l'~lVl1'l.JbfhJcjl1 bb'l..h1:'i1un 'l n-o;):::m~ldn<il€l'lJ~U€l'lmdl-if'llu l~mh'l m !l'l..h:::~'VlTIm'l"j mh'lldn<ill~ dJumdmn~ln~ludbbm~cjl1 bbU~mi'l'l-o;):::m~ldn'Vldl'lJ~1l 1 cjl1bbud1:'i1unm'lcjl1l11V11€lmi~111~nn l , 1 '" l-if'llu€l~l'l~ln bb~:::~~md-O;):::bn'lJl11uVliilGil'l1~m<il€l1 ~lVlW1~m<il€lilyjA mdb~~€lulhEJ-ii€l~~d:::Vl1l'l1~m<il€l1bm:::VI~1EJml~.:ll nnrhVlul11 '" '" 1111J.:llUdu~~'l~l 'l"jd;bEJ€l1b1EJn-if€lU E YI'l.J1lU bd€l'lO;)ln.:llUdU~~'l~-if€lU YI'l.J1lU'Sj.:llUdU d ~l~bb~u€lUbb~:::!l~l€l~mEJ 1WIJ€l'lJ 'll<il~.:llnl11i1'lVld'l rrrs l-ifVl~1EJml~.:llVl~n~'lirn-o;)::: b '" l~dll11~uu€lEJitn VI~1EJml~.:ll cache 1:'i1u lV1q!o;)::: l-if1TImdnlVlul11ml~~~YruTIdJu n~~~€lEJ (set associative) ~'l~U~'lSj8umlEJbtJU€l~l'l~ln~-iim.J~Vl1m1l~'l5u mo;)o;)::: uuVinYl'lJ-ii€l~~'lI€l'lcjl1bbu~nn8l'lEl'li1'lU€lEJ'l
'"

'"

Instruction

(a) Windows-based

register file

Instruction

(b) Cache

ill , 3.3

536 unfl

13

/ flCllJW::Hl1IElS(;lS:::Qa Ii)ln~1.;)nr;il1~lbb~1

RIse
l~~m(i1e:rft~G'i'"lI'Ul~ 1'V1~ bbG'1::;md l-if'VIt.h~ iJ'l~.jJEI~li)ldru, 15n ti'U~E1l.J~~lru,'ll'U~

'VI'UY1l'lb~E1m::;'Vrhmld

ml~"')l

cache

~'UiJ'l1~m~ldbl<ii~~'U

1 VI-if~bli)'UG'1'l1l.J1.;)EI~l'l hn(i1l~

.jJEI'VItt'l~Ii)::;;-if~ 1.;)11

rm l-if~~m(i1E1{1~G'i'~'UblJ'U'VI'UY1l'lb~E1n~~n1l

bil~~'U l'Umd5l'l~'lGllbb'VIt-b'l~E1~"lIEI'l1~md~'l~E1'lbbU1J

'"

~~m(i1E1{1~G'i'Ii)::;l-if'VI~I~bG'1"l1b~~E1'U(virtual ~o/lEl'lmd Yio/lEl'lmd


'iJ

number)

~1'VI1u~~m(i1E1~bbG'1::;'VI~l~bG'1"l1'V1ibIGiI'l ~'l l'Umdb~E1n~~m(i1E1~ li)::;o/lEl'll-ifGllbb'VIt-b'l bb'VIt-b'l~E1~ 'iJ

'VI~1 ~ bG'1"l1 b'VIG'11dm~ldbl'fi'l

v.ll'U1l.J iJ'l <ii1blElmVi' mbuu~l

md51'l~'lGllbb'VIt-b'l~E1~'VIt-b1~ml~"')11'U'VIt-b1~fm~"')1 l~ 1 'VIrun11~E1~b~~E1'U~ln 'iJ


IV

~E1~Ii)~'l~'l~"lI'U

'"

cache

bbG'1::;ml~-liu-iiEl'U l'Umd5l'l~'lGll

iJ'l~'UEI~nU1~mdnl'VI'U~Gllbb'VIt-b'l~E1~5n.;)1~

'"

'"

l'U'VIt-b1~fm~"')l~lm~mdnl'VI'U~ml~~~Yr'UTI
'iJ

blJ'Unr;i~ ~ EIu 'fi1'U'VItt'l"llEl'len bb'VIt-b'l~E1 ~Ii)::;blm.b 1l.Jl-ifl 'Umdnl'VI'U~m~lru,


9 'iJ

.jJEI~G'1~o/lEl'lmde)l'U
'lJ

bbG'1::;tag 1i)::;~"lI'Ul~b'yhnu"ll'Ul~"lI€l'ln~~~E1~ ~'lli)::;'lh~ lV1m~ldble)l'U.jJm;!G'11'U

5n'fi1'U'VItt'lli)::; l-ifl'Umdbl.J~~ubYi~u

tag

word

o/lEl'lmd 1.;) li)::;b~'U 1.;)-if~bli)'U11bbiJ11'VIt-b1~ml~",)1 bbGid::;~::;bdm~l-ifl'Umde),'U.jJEI~G'1Ii)::;o/lEl'l'U''U

cache
rrrunn

1i)::;~ml~b~1

l'Umd'f'lI'lI'Ub'yhnu~~m(i1E1~

'"

~'l~'U l'U~~~E1'l"ll€l'll.Jd::;~YlTIJll~ ,

l'Umd'f'll'll'Ubb~1 ~l'l~ln

~~m(i1E1{1~G'i'~'U~ml~b'VI~l::;~~

1 'Umdib~,1-ifbnu.jJEI~G'1<ii1bbl.JdYiEl'l~'UblJ'UEi

'"

mdl.J~ul.Jd'll.Jd::;~YlTIJll~mli)bn~~'U

1.;)

t~~md

l-if'VIt-b1~fm~"')l

cache

~l'VI~Ubnufil~'lbf1~E1'lbbGibY1~'lEl~l'lb~m

~~~~1l

bf1~E1'lf1E1~~1b(i1E1~biJl'VI~l~blJ'UbbUURISe ~'lm~m(i1E1~~l'VI7u

l-if'l,'Uvh 1l.JEI~~~lnibn

'"

(16 - 32 <i(1) l'Umrudmd


<ii1bbl.JG'1Jlljjl

l-if'll'U~~~b(i1E1~lV1bn~l.Jdd~'lf.u~'l~~Ii)::;blJ'U'VIibl~"lIEI'l

'" ,

tl.Jdbbm~

(compiler)

1tldbbm~~

b; ~'U~'U.;)1Wlljjld::;~UGJ'lIi)::;

1~m~ldbl5l'l~'ln'l

~~m(i1E1{1<Kt~~(i1d'l

~'lli)::;l-if'll'Ur.Jl'U<ii1bbl.Jd

(variables)

bbYl'U 1(i1bll.Jd~~'l~"lIEI'l tl.Jdbbm~ 111'U~~~b(i1E1~

Gi'1bbl.JG'1Jlljjl~E1 mdbnu<ii1\]nm~'f'll lV1t.;)~,n~~~b'yh~Ii)~'f'l,1.;) ,

(operator)

~l'VI~Umdfil'U1ru,Gil'l'l

bbYl'U~Ii)~bnU111 'U'VIt-b1~ml~"')l'VIii'n

bbG'1~Ii)::;o/lEl'l~mm~G'1~md

bbG'1nbl.J~~'U.jJEI~G'1d~'VI1l'l'VIt-b1~ml~",)lnu~~m(i1E1~Vlbn~~'UibEl~f1~'l~~~

'"

,
'"
li)::;blnnl'VI'U~~ruii'njjru 'iJ
IV

t~~~1

1l.Jbb~1

bb'U1~'f'll~'Ubn~~'U~'ld
'iJ

'fi1'U"lIEI'ltl.Jdbbm~~t.bJ.J,l-if1'UmdbnlJ.jJElJ.JG'1

(~E1<ii1blnm::;'f'll) 'iJ

~mli)li)::;m~ldmhiiEl~G'1J.Jlbnu111'U~~~b(i1E1{1.;)~'U

'VI~E1'V1~l mG'1"l1~~~b(i1E1~b~S1E1'U lV1~'l~"')''U 1'U1~"')ln~

Ii)ln~'U tl.JdbbmJ.J<ii1bbl.JG'1Jlljjlli)::;~~'f'll

bb~'Umd" l.if..:ll'U'lIe:J..:I~~m<Jle:J~bG1fle:J'Un'lJ~~~JG1b<Jle:J~~a:ll.if..:ll'Ue:J ~'OJ~..:I ~~m<Jle:J~bG1~e:J'U1 'Un~a-J~

"

laJa:l'lle:J'lJb'll<Jlmd" l.if..:ll'U-ife:J'UYf'lJn'U'OJ:::ma-Jld"blnl'vlw?11V11.if~~m<Jle:J~

('OJ~..:I) c;llb~mn'U

1~

G'l1'U'lIe:J..:I1ud"bbma-J~a:l-oJl'Ul'U~~m<Jle:J~bG1~e:J'Ua.Jlnnll-oJl'Ul'U~~m<Jle:J~'OJ~..:I n'OJ:::Gle:J..:InlVl'U!?1~~m<Jle:J~ bG1fle:J'UG'll'U~dl'U,x'U lVi1ul.if~'U~1'UVI'ul~f11la-J-oJlbb'Yl'U


" 'IJ

~l~..:I load-and-store 'OJ:::bln"ba-Jll.if

l'Umd"eil'U~lc;l1b1nm:::'Yllb.jJllum~m<Jle:J~dj'Umd"~lmll1'Ud":::Vlll..:l~a:lmd"~l'Ulrubn!?1~'U ~..:I~~l~ru~G1!?1'l1e:J..:Im:::'lJ1'Umd"'YlllV1bn!?1md"
Q.oO

"

'I

l.ifud"::: 1~'l!uG1..:1G1!?1(optimization) 'iJ


'I

~e:J

md"c;l!?1~'U hll'OJ:::nlVl'U!?11V1c;l1b1nm:::'YllVl~e:J.jJe:Ja-J~-oJl'Ul'U 'IJ 'IJ l'Unm

1!?1 ~'OJ:::blmn'lJH1'U~~m<Jle:J~ 'IJ RISe ~e:J

1!?1'l1e:J..:I1ud"bbma-J b'YlflUfl~U~a-J"ba-Jll;ntI11Jd"bbma-Jc;llbbU~m'jjl~lVl~lbfl4e:J..:I

b'YlflUflmd"d":::'lJl~f!~Umly.j

(Graph coloring)
nlVl'U!?11V1ndly.j~iJVI'd..:lud":::ne:J'lJ~b~ 1V1'U!?1(node) md"nlVl'U!?1f!lV1n'lJbb~~::: 1V1'U!?1'OJ:::a:lb~e:J'U 1V1'U!?1~e:J~ 1'l11l

ilrtJVllmd"d":::lJl~f!~mly.jdj'U~..:I-d: bb~:::bli'Ub~e:Ja-J (edge) -oJl'Ul'UVld..:l

&l!?1n'U,x'U'OJ:::Gle:J..:Ia:lf!~l..:ln'U bb~:::-oJl'Ul'Uf!~l.if~..:IVla-J!?1,x'U'OJ:::Gle:J..:Ia:l-oJl'Ul'Ui(e:J~~G1!?1 ~ , ilruVild ma-Jld"bI"ba-Jlud":::~n<Jl1.ifn'lJmd'Yll..:ll'U'lIe:J..:I1ud"bbma-Jc;llbbu~m'jjllJ1~..:Id , \1,lb.jJl Ud":::md"bbd"n1Ud"bbma-J

(input)

'OJ:::\jni bml:::~

b~e:JG1~l..:lbtJ'U~Umly.j~a:lmd"eJl..:l8..:11V1'U!?1~btJ'U~~m<Jle:J~ ~~m<Jle:J~\jn l.if..:ll'U1Wlil..:1nm b~ mn'U 1'U1Ud"bbma-J'OJ:::\jn

(i=fqJii'n'jjclVl~e:J~~m<Jle:J~bG1~e:J'U)

b~e:Ja-J~m.jJlJ11~n'UJ11 ~bli'Ub~e:Ja-J b~mbG1!?1..:11 Vlbt4'Ufllla-J b~m.jJe:J..:In'U btlm1l'OJ'Ufldtl~..:IVla-J!?1bb~l ~'U~e:J lu n dj'Umd"nlVl'U!?1f!l

VImi1

VI'U!?1~l..:l'l 1!?1~a:l-oJl'Ul'Uf!G1..:1G1!?1 b'Ylln'lJ-oJl'Ul'U~~ m<Jle:J~~a:l 'IJ , lJ1 rhm:::'lJ1'Umd"d'taJud":::G1'lJ

l-ii..:ll'U 1 VI'U!?1~~f!b&i mn'U'OJ:::ma-Jld"bll-ii~~m<Jle:J~Ghb&imn'U

f11la-JGh~'OJ (~e:J-oJl'Ul'Uf!1aJbVl~..:I~e:Jmd"l.if..:ll'U) 1V1'U!?1~tr..:l1aJ1J1d":::'lJl~f!'OJ:::blnnlVl'U!?11V1bij'U.jJe:Ja-J~ 'IJ 'IJ ~bn'lJlll'UVI~l~mla-J-oJl e:Jl..:le:J..:Ibn!?1'l1'U d"U 13.4 bbG1!?1..:1c;lle:J~l..:l'lle:J..:Im::::'lJ1'Umd"~..:In~ll G1a-Ja-J&ill1ud"bbma-J~m~m<Jle:J~bG1~e:J'U 'IJ , -oJl'Ul'U 6 c;l1'OJ::::blnbbU~..:I1Vi1ul~~m<Jle:J~'OJ~..:I~a:lbVl~..:I3 c;l1 d"U 13.4a bbG1!?1..:1r;:il~'lJ~'U<Jle:J'Unm 'IJ 'IJ ~lVl~'lJmd" l~~m<Jle:J~bG1~e:J'Ubb~~::::&h G'l1'U b bbG1!?1..:1f11la-Ji=fa-J~'UTI'lIe:J..:I~~m<Jle:J~bVl~ld (l'U~d VI'U'Yll..:l~
i.I=.=.X

bb~:::~l~..:I load-and-store

'OJ:::bln\1,la-Jll-iin'lJ.jJe:Ja-JmVl~ldb~e:Ja:lmd" 'IJ 'IJ

l-iimd"bbd"b..:ll md"~!?1bli'U'Ylbb~..:I-iil~ bb~:::md"md"~!?1bli'U'Ylbb~..:I'lIllbb'Yl'Uf! 3 f!~\1,la-Jll-ii) dj'U lulJ1bb'lJ'lJVld..:ll~ bbG1!?1..:11V1bt4'U 'IJ l'Ud"U

~~G1b<Jle:J~bG1fle:J'Uc;llV1d..:l "F" laJa:lmd"d"::::'lJl ~f!

bbG1!?1..:11lbtJ'U.jJe:Ja-J~~'OJ::::Gle:J..:Ibn'lJlll'UVI~1~mla-J-oJlbb~:::l-ii~l~..:I 'IJ

load-and-store l'Umd"eJl..:l8..:1

538 unn
A

..J

1.3 / V1CJuubWlCJSlllS:::1J8 RIse

t
..
I

In

t
..
I

IE

II
(b) Register interference grapb

Rl

R2

R3

(a) Time sequence of active use of registers

tl?1tJrfl1u

SHJe:J~-iJm~mnl?1~m:::'Vl'hmld"

l-m~'fIbCile:J{oJl'Ul'U~ln

m~:::nld"fhvl'U1?11-if'l1'U

1~mCile:J{1 Vibnl?1ud"dtJ'Il'I1'f1'1'f11?1 ~lmh'l ",

b'li'U unl~

tJn~~'Vl'd'l1Jl'Yhnld"'YlI?1~e:J'I bU~ tJ'UbbU~'1 , ~'1 ~mnld"l~ tJ1Jl~

oJl'Ul'U1~mCile:J{d":::'VI11'l 16 ~'1 128 ~1 ~'1$J~'1bb1J1J~nl'VI'U1?11VibU'U1~mCile:J{~1'VI11J-if'l1'Urfl1tl l ~'1'V1~1?1 bb~:::bb1J1J~bbU'Inld" l-if'l1'Ud":::'VI11'lb~"lJoJl'Ul'Ub~~n1J b~"lJoJlmWiI1'1

lVib'i~'Ul1 bbtJ1T'il:::-ifb'YlfI'Uflnldr11'VI'U1?11-if'l1'U~mCile:JnVibnI?1Ud":::ttJ'Il'I1'f1'1'f1l?1bb1J1J~$Jml~~1J~e:J'U l

",

iie:JtJ~'fIl?1bb~l rrrs l-m~mCile:J{bVltJ'I 64 ~lnU1Jl1bVltJ'IV1e:J , 'YlllVibnl?1ud"dtJ'Il''U11?11 ~lnUn 'fI'I'fI1?1b1J1J~$Jml~~1J~e:J~ln~ll-if'll'U b

rm l-m~mCile:J{~lnnll'd"il:::'W1Jl

bb~b~mbb'YlflUflnld"nl'VI'U1?11-if'l1'U1~mCile:JnVibnl?1ud"dtJ'Il'l1 V11Jl1 $Jml~ bbCiln~l'l bVltJ'I b~niie:J ubnl?1~'Ub~e:J$JoJlm'U rm l-m~mCile:J{oJl'Ul'U

",

1~mCile:J{~lnnl1

32 ~1

Ud":::nld"'fII?1YlltJ ~~nld"1~mb'flI?1'11Vib~'Ul1 ,

iie:JtJ~'fIl~1d"b11-if'l1'U-}1~n'U 1Jl~~Ud":::~'YlTIrnV11'Unld'Yll'l1'U~nl1~mCile:J~bbU'In~~md'Yl1'l1'U ,

l'U~l-iJe:Jd"il::: 1Jln~11~'1f1ru~mjru:::rfl1u ,

bb~:::bbd"'1m:::o/1'U~1'VI11J'fImuCiltJmd"~ ,

RISe

1:'Il'U~1e:JtJl'l bfl~e:J'Ifle:J~V11bCile:JWd":::t.r1'Y1d"il::: 111 'UCile:J'UYlltJ1J'Yl 1JltJn

1304 /

amilaanssu

RIse 539

4 .e.. , 'Yl1fl~YlflD'W'J'~fl1U'lJ'lJ CISC bVlCilv.J~VlG1n~G'1'itlJG'1'UUbbUd liU-Jmd" lair'lfCllf1l~'I~ilf1l~'I:J.Jln:J.JltJilG'1'€J'Il.h::;md"~€J q q q ~'OJ::;'YllVi1Ud"bbnd:J.Jcjj'dbbUd"Jll'jj'lil'llulCllb~n~'I l ~'I~


€I ~ ~
q

ml:J.Jcil€J'Imd"

bb~::;ml:J.Jcil€J'Imd"~'OJ::;u-:flJUd"'IUd"::;~'YlITJll'\Al ml:J.Jcil€J'Imd"~'OJ::;·lh tJ bVI~€Jitn~CJ.lm llUd"bbnd:J.J


~

b~€J'IVlG1'1'l1 'I bVlCil €I v.J~-0'1G'1'€J'I-ii €Jd~€J


q q

~dtJmd"G'1'itlJG'1'uumd" loif1ud"bbm:J.JJll'jj'ld"::;~lJG'1''I ml:J.Jcil€J'Imd"~'OJ::;y'h lVi1ud"bbm:J.J~dbbu'flJll'jj'lil'llulCllb~n'fl'l,xu i:'1'l:J.Jld"1:wohl~CIltJmd"lv;

lud"bbm:J.Jcjj'dbbU'flJll'jj'lG'1'~'IG'il~lJ'lI€J'If1l~'IJll'jj'lbf1~€J'I ~lVl-llibb<ii'fl::;f1l~'IlWll'jj'ld::;~lJG'1''I1Ji1C1ltJm'l ~ ml:J.Jcil€J'Imd"it'1~nn


~

lcilbbiJ'I1C1ltJitn1~

tJ~G'1'itlJG'1'UUG'1'mi:lCil tJndd":J.Jf1€J:J.JYldbCil€J~bblJlJ
q

RISe
m~

iiU~€Jf1l~'I bf1~€J'I~ilml:J.J.]5lJ<i1€Ju,xumn~'OJ::;"b:J.Jll

airUd"::; ltJ'lfu bti€J'I'OJlnlud"bbnd:J.J~dbbU~Jll'jj'l

'OJ::;cil€J'IVll~l~'I1Wll'jj'ld"::;~lJG'1''I ~ilml:J.JG'1'€JCIlf1!i'€J'InlJf1l~'Ibf1~€J'I~ilml:J.J.]5lJ<i1€JudlV\1.~ ~
q

'OJ::;G'1'1l'll~CIl biJlVl:J.JltJ1V;il'llu lCllb~n~G'1'CIlmd"~CIl-oJludUf1l~'I bf1~€J'I bb'fl::;'11 tJml:J.Ji:'1'l:J.Jld"n'll€J'I tn luln~u,xuri'lilml:J.Jmnri'l~uL1ju'Yl1mu


q

~
q

~lVl~1 bVlCilv.J'flud"::;md"~G'1'€J'Ilue)u~'OJ::;u-lliUd"'IUd"::;~'YlITJll'\Al,xu~€J~lG'1'mi:lCil b tJmd":J.Juuu

else

'OJ::;'YlllV\1.Ji1ud"bbm:J.JJll'jj'-'bf1~€J'I~s:l'llUlCllb~n'fl'l bb'fl::;m:J.Jld"nUd"::;:J.Jd~v.J'fll~d"dCllb~dri'l~U ihermum


q

lUd"bbnd:J.J~s:l'llulCllb~mXuil-ii€Jl~bu~tJlJ~~lfiqJG'1'€J'Iud"::;md"~€J bd€J~luVludtJml:J.J-oJlu€JtJ'fl'l s:ld"lmnn'fl'ln1lbb~ri€JU:J.Jln ~ ~'OJ::;cil€J'Inne)lub-iil:J.Jl ~ (paging),xu (page fault


€I ~l'lld"nCill:J.J

lUd"bbnd:J.J'OJ::; lair

bti€J'I'OJlnlui:I'OJ'OJuu~'\Al~lairdjuVludtJml:J.J-oJl,xu

'YlllV;-iie:J$1bu1tJlJ-iie:J.[bJi:'1'l:J.Jld"n'l-il:J.JlYl'OJld"rull$1~n<ii€Jlu l ~€J ilm:J.Jlrnf1l~'I

ud"::;m~G'1'€J'I lud"bbnd:J.J~il'llulCllb~n~'I'OJ::;'lidtJb~:J.JUd"::;~'YlITJll'\Allv;&iri'l~u

1u~Y1tJU€JtJ'fl'l ~

use lud"::;lJlJ~lJ~Vlld"nld

lairVludtJml:J.J-oJl uuu b'\Al'OJ~'I fault u€JtJ'fl'l lumd"

l~CIl~s:l'llulCllb~n'OJ::;air-oJludub'\Al'OJu€JtJ'fl'l'YlllVfill€JmG'1'~'OJ::;bnCll l page ~€J md"e)lu-iim;J'fl'OJlmn~CIl~G'1'rib-iilluluVludtJml:J.J-oJlVlG1n

;'1 b5tJnm

'Yll'llu:J.Jln)

[PATT82a] 11 C Programs
RISe! VAX-JI/780 M680(]O Z8002 PDp·l1!70

[KATE83) 12 C Programs
1.0 0.67 0 O.7l

[HEAT84} 5 C Programs
1.0 .9 .12

1.0
0.8 009

1.2
0.9

540 unfi

13 I flCllJubwws(ils:':Qa

RIse

i1b1:!Vll~Ul~'Uh~El

1'U'Y1l-:ltJ5u~t.1'U1tJ'mm~~1oiff1l~-:I'ild~1Jr;'1 elSe

'iI~i1'lJ'Ul<?1

b~nnll1tJdbbm~~1oiff1l~-:I'ild~nr;'1 RIse ~l~mJbVl~N 1<?11'UVlm~mru1tJdbbm~ 1'U'ild~nr;'1 ~ ~ else m'il'il~i1 "lIU1<?1~UnJl(~Eli1~l'Ud'Uf1l~-:I~El~nll) bb'ii~l'Ud'UiJ'il~1oif1'Umdu'UY1nf1l~-:I l'UVlud~ml~~lt.1'Um'il'il~i1 "lIU1<?1UeUJnJl bVl~-:lb~n~Elm'Yht.1'U'illdl-:l 13.6 bb~<?1-:11V1b'i~'Ull !'oJr;'1md~m~n1%~m~mru~.yhmdbm~lJb.yj~lJ"lIUl<?1"l1El-:l1tJdbbf)d~~b'll~u~b~ 1tJdbbm~m~l~ bb~d bbtJr;'11 1tJdbbm~m~l bf1~El-:l1'Ubf1~El-:lf1El~vh VldJ'U b'ilEl~'iil-:l'l n'U 1<?1 W"llVl'U<?11 Vlbf1~El-:l RISe-I i1'lJ'Ul<?1~W\il'Ub1J'U 1 VlUd~ 'iI~b{1'U<J11l1tJdbbm~'U'ild~nr;'1else 1 1 ~ ~ ~El~~ln VI~Ell~i1tJdd~'lfubr;'1~b~mm~lJb.yj~lJnlJ1tJdbbm~1'U'ild~nr;'1 ~ RIse 1<J111Jmd~uiJ'U'illnmd~n~l"llEl-:lun1%~"lIEl-:llJm lmJb5~bbr;'1~~'U'l i1bVl'il!'oJr;'1~m~ldb1~'UiJ'U!'oJr;'1md1%~dVlm~tJd~mdherrrarm i , c;]d bbtJarn~l'lJEl-:l bf1~El-:lelse else iJ~l'Ud'Uf1l~-:I~lnnll 'Y1l1VitJl<J11JJ~,mtJd~ 1~'lfu'lJEl-:lmdoiff1l~-:I-1f1J.]fEl~lnun tJd~m~~m 1 ml~md~lnnll<J1d~ tJd~md~<?1.yh~ ~mi1'il~md~ , bdEl-:l'ill n1tJdbbm~ bdEl-:l'illn~mi1'il~md~ t.1'Ui1tJd~mru 1 ~,mmd~n~ld

ifn'il~b~Eln 1oiff1l~-:I bblJlJJl~~lnllf1l~-:I~i1ml~-1flJ.]fEl'U~ln 'Y1l1vrc;]El-:lloi51#1mVf~~iJml~md~lnnll 'Y1l1V1t~tJdbbm~~iJ RIse b~'Umd1oif-:ll'U~~~b'ilEl~~lnnll

md€h-:l8-:1V1Ud~ml~~l ~-:I'Y1l1V1i1'lJ'Ul<?1'lJEl-:l~l'Ud'UiJ'il1'Umd€h-:l8-:1~'Ur;'1-:1 ~-:lt.1'Umd~f1l<?1V11-:11l1tJdbbm~~mi1'il~md~ else 'iI~i1'lJ'Ul<?1'lJEl-:l1tJdbbm~~'Unll 'illnf1';ll~ 1<J1 bm~lJ~mhd~lbb~dt.1'U~-:ll~bil<?1~'UEl-:l~tJd~nEllJtJd~md~~El-:l~m~c;]'U bn<?1md , LVI Vi'@J'Ulf1l~-:I~i1ml~-1flJ.]fEl'Ut.1'U~El mdr;'1<?1d~~~nm 1'UmdtJd~~dr;'1!'oJr;'11V1~'Ur;'1-:1 <?1bVl~El'Ull ~ f1l~-:l1Wll~ld~~1J~-:I ~b1nbb1Jr;'11V1b1J'Uf1l~-:lm~lbf1~El-:l~iJml~-1f1J.]fEl'UbVlmf1l~-:lb&1mt.1'U Ul'il~ ~~ 1oifnm 1'UmJtld~~dr;'1!'oJr;'1~'UnllmdbbtJr;'1f1l~-:lb~ 1Vlb1Jw~<?1f1l~-:I~1 mn'U oiff1l~-:I~'U'lVlm~f1l~-:I El~l-:lldn'ill~ bdEl-:l'illni1bb'Ud 1~~~'iI~b~Eln1oiff1l~-:I~i1ml~-1f1J.]fEl'U~El~~lnnllmdb~Eln 'loif " 'UEln'illnitVlud~mlJf1~md ,

'Y1l-:ll'U'lJEl-:l~Vl~'iI~c;]miJml~-1flJ.]fEl'U~ln~'U bbr;'1~/VI~El1m 1tJdbbm~~mlJf1~md'Yil-:ll'U'iI~i1 ~ ~ , ml~md~lnri-:l~'U b~El~UlJ~'U'Umd'Yil-:ll'U'lJmf1l~-:I~i1~l'Ud~ln ~-:I 'hJll'il~b1J'U ltJ1'Umru1<?1 , n'il~i1!'oJr;'1'Y1l1V1d~~~nm 1'UmdtJd~~dr;'1!'oJr;'1f1l~-:lb~El-:l (bblJlJJl~'l) t.1'U'Ul'U~'Unllb&1~

bb~ll'il~i1b'b'Ud'Y1l-:lmdVi'@J'Ul~mi1'il~md~ RIse (Reduced Instruction Set Computer)

13.4 / Ei01UvU:InSSlJ RIse

541

• •

mdY11~1'Ud':::Vl11~d''OJm<ilEld'

l.d.:.

ft

'lmTImd'nlVl'U<?lGllbbVl".(~~mjbb1J1J~l~

"

flru~:J..Ji:i~ojjmbd'n , 'J.:I"iieJ1J~1i.:lb~~eJ.:I

~El

n1"iiU"iit3J'JsUoJ5I 1 ~1i.:l~eJ\fIit.:l'J.:I"iieJ1.Jn1"iiU"iit3J'J5I~51

\fI;eJ

(one machine instruction per machine cycle)


'Jnnl'VI'U<?l~'U 1<?lm:::~:::bd m~'l

rXIJEJ'l.Jrh~Jbfl~EJJ

(machine cycle)

oii'l 'Umd'thwih'Jnm:::'I'l1@~Gi'1'OJln~~m<ilEl~
1~d'El1J~1~~b~El~

~1:J..J11h::::J..J1~t:-.J~ 1<?l~VI".(1~bmbeJ~~ 'lJEl~~mi1<ilmTI:J..J 1J'Ubfl~El~

RISe

~~i1ml:J..J.jf1J'i5El'U 'l'Ud':::<foi'1Jb~mn'Un1J~l~~ 1:J..J 1m

"

bb~:::i:i'UY1nt:-.J~~'l-'JTIn~1J~~ltJ~~m<ilEl~

(microinstruction)

else

<J11~ml:J..J~1 ~'lJEl~1~d'El1J~1~~ (VI:J..Jl~il~~l~~

~~ ldJi1ml:J..J'«)lb1J'U'OJ:::c$lEl~i11:J..J1m 1#1<?l 'loif~l'U ~l~~

(microcode)

bfl~El~~'Jn~~l~~'U:J..Jlb1J'Uen~<?lbbdn<?l~<ild'~)

<foi'~n~11~ l'OJ:::m:J..Jld'bltJd'::::J..J1~ t:-.J~ ~ b~1n~1~1~~ 1

bfl~El~ 'l 'Ufl El:J..Jv:i b<ilEl;bfl~El~~'U 1

biieJ~'OJln

1dJi1ml:J..J'«)lb1J'U'OJ:::c$lEl~b~~n 'loitt:J..J M<?l 'l'Ud':::Wil~~'I'llmWd'::::J..Jd~t:-.J~ 1m flru~:J..J1J<il'lJEl'YI~El~ flEl mWd'::::J..Jd~t:-.Jmh'U , ;1\i'6tb~eJ~@btJf1'U. ml:J..J'«)l ltJ<J11~ (b'li'U rmaen 1<?l~i1~1~~
cu=. 2.1

.d.

'l

d X , VIlli 1il::bn~n1"iibb5lmtl5ltJ'U.'lJeJ3J5I'lJ'U."iitm1.:1 ~
I Q AI

..

Load

bb~:::

Store

111oj(l'Umd'bb~mtJ~~'UojjEl:J..J~n1JVI".(1~
~~'U ~~'OJ:::'I'l1 Viff1'Um1Jm-Ji1ml:J..J~1 'l ,

bb1J1Jb'li'Ud'l'll 'l Vi~l~~ bfl~El~i1ml:J..J~l

"

b'li'U 'If<?l~l~~ ,

RISe

m'OJtJd':::nEl1J<J11~~1~~

ADD

bY1~~Vlii~VI~El~El~~l~~b'Yil,x'U b'li'Ubfl~El~

integer add

bb~:::

add with carry)

'l'U'lJru:::~bfl~El~

else

VAX

i1~1~~

ADD

:J..Jlnil~ 25 bb1J1J t:-.J~tJd':::1~'lfil5ntJd':::md'Vlii~~El~mi1<iltJmd':J..J


9

RIse
'lI

~,x1J~'U'U 'lVibn<?l ,
I

ml:J..J'l-'JtJltJl:J..J~'OJ:::'loiftJd'::: tJ'lfil'OJln~~m<ilEl~V1t<J1:J..Jln~~<?l 1 ,x'U'OJ:::blmn1J l11'UEltJmrubn1JoiiEl:J..J~ml:J..J


'lI 9 'lI

'I'll 'lViGi'1blnm:::'l'll~bln€ll~~~il~UEltJ6'1 'lI

b~1~~ 'lI

(d~m<ilEl~)

md'bib 'Umd''I'l1~1'Ud':::WJ1~~~m<ilEl~<J11 ~mi1<iltJmd':J..J ~i1md'bb~n

tJll'U

(register-to-register)

b1J'U~ <?l (i)'U'lJEl~ b

RIse

bfl~El~ 'l'U<ild':::n~

"

else

~<?l'lVii1~l~~

'l'Umi:J..Jdb'li'Un'UbbGintr~i1~l~~

btJ~ tJ'Uojjm;Jm:::V1' .. ~VI".(1 tJml:J..J'«)ln1J~~m<ilEl~ h .. ~VI".(1tJml:J..J'«)1 h

(register/memory)
~1tJn'U

bb~:::md'

bb~mtJ~tJ'UojjEl~m:::V1'

(memory-to-memory)

l~i1ml:J..J'l-'JtJltJl:J..J

~'OJ:::'I'llmd'btJ~tJ1JbYitJ1JtJd'd~'YITIm'I-'J'lJEl~md''I'll~l'UdriEl'U~'OJ:::i1md'~l~mi1<iltJmd':J..J ~'U:J..Jl'loif~l'U W

RISe

"

13.5a bb~<?l~'lVib~'Umd'bmtJ1JbYitJ1J~bn<?l~'U

~mi1<iltJmd':J..J~:J..J:J..J~l~bln

"

tJd':::biJ'Uf11 'l 'Ub~El~'lJ'Ul<?l'lJEl~ ihu m:J..J bb~:::'«)l'U1'UiJ<il'lJEl~md'bb~mtJ 1

~ tJ'UojjEl:J..J~n1JVI".(1Jml:J..J'«)l t

"

......

= I
~ ~

......

......

542

13.4 / amUvJ.8nSS1J RIse NG'lrml~ tJ-u~~~l Vi'b~'U,r.h~rll'u'11tJmd:hll 'U,€l'U,f1'111&J-11bU'U,G1€l._Jm~m'11€l~mjbG'ltJ l

543

f1._J'OJ:::G1€l._J~._J~tJ lwii€l~'illd 1~m'11€l.ft&Ju€ltJnr.h

b~l€l._J'OJln~m1:l'11tJmd:hl

RIse

~b1n~-n._J~'U,:hIll'U,nG'l1~'U,il-11Wm

"

bbGl'V\G'lltJf1'U,

"

528 Gi'r.mm'YiL~m ~._JrlllVi'NG'l~'WTI€l€ln:hlllWr11._Jn~'lJn'U,d$i€l md'lll~ml:hl 'V\~€l


Q.f

~._J~'lIl~'V\ltJ l'lJ'OJlnmd~l~tJ b.jJl

h l'U,b~€l._Jmdml:hl~1'U,m~ieJl._J8._J.jJ€l:hlG'l-11'U,1'U,'V\-d,._J
" " "

~._Jf11m~~b'11€l~-11m'U,~bV1tJ._J'W€l Gi'1b1nm:::rll~1'U, 'tI

rrrs l-ii1'lJdbbm:hl&hu'lJG'lmjjl~rlllVi'bn~md bn'lJmJ1'U,1~m'11€l~bU'U,d:::tJ:::n"n'U,1'U, , ~ru~:hI{jGl.jJ€lYi~l:hl$i€l bb'lJ'lJ~ltJ ~€l~1~tJ bf1~€l._J RISe l~~m'11€l~

l-ii'lJd:::1tJ'lf.u~._J~~bb~1 'tI q

lw;u'OJ:::b1n
'U

~._J~'U,'ill l3.5b ~._Jbb~~._JmdbmtJ'lJbYitJ'lJ~ilml:hlbU'U,iidd:hl


,

rm l-iilTI

fl1'jfh\1l~@l(p'hmn.i~;iil~ (addressing mode)


lTImdbb'lJ'lJ~W-l b'lf'U, rm l-ii~m'WG'l~b:hlWr1 nm'OJul:hll

bil€l'lJ'~._J'V\:hI~'OJ::: l-iilTImdnl'V\'U,~G11bb'V\U._J~mjbb'lJ'lJ~ltJ$i€l

(register addressing)

"

mdnl'VI'U,~

(displacement)
1

bbG'l:::bb'lJ'lJ l-iiG11u'V\u._J~€l~bb'lJ'lJ~:hIYi''Y1TI

(relative addressing)

oift~
I

~1'U, lTIm~ilml:hlojf'lJi~€l'U,bb'lJ'lJ~'U,

'OJ:::b1n bb'lJ~ml:hl'V\:hIl u bUWlf~f11~._J~1-iilTImdnl'vl'U,~

"

G11bb'V\U._J~€l~ bb'lJ'lJ~l u 1~ tJ1'lJdbmd:hlGi'1bb'lJ~m'jjl

"

f1ru~:hI{jGl.jJ€ldrlll

bbG'l:::m'U,m'lJ f1:h1md'Yll._Jl'U,._JltJ"lm ,
0 I "'~

"

Vi'md€l€ln

bb'lJ'lJ'lf~f11~._J

f1ru~:hI{jGl.jJ€l~~r11tJ$i€l

rrrs l-ii

'jtlmn.Jfh~~~~1J1J~1!Jsimple instruction format) ( " "


word
l'U,'V\u1tJml:hl-11

1~tJYh l'lJbf1~€l._J

RISe

'OJ:::S'hj_JU'lJ'lJf11~._J€l~bV1tJ._J'V\d._Jbb'lJ'lJ'V\~€ll&J~bb'lJ'lJb'yh~'U, ml:hltJl1'l1€l._J

f11~._J'OJ:::il'll'U,1~f1._J~ bm:::~tJ._J~h€l~l'U,G1-lbb'V\u._J~'W€l~n'lJ'lI'U,l~'lI€l._J G11bb'V\U._J'lI€l._Jb'll'11.jJm~~ 1~tJb%Wl::: l'U,1m._J~~1._J'lI€l._J1~~di4~ b~:hI€l md€l€lnbb'lJ'lJ l'U,bb'U,1'Y11._JdilN~~'V\~ltJ'lJd:::md 1~~~~

"

"

(opcode)
mdnl'V\'U,~

'OJ:::€l~'11d._JG11bb'V\U._Jb~:hI

lVi'b'll'11.jJm,m€l~1'U,G11bb'VIu._J

~f1._J~ rlllVi'mdbb'lJ~ml:hl'V\:hIltJ rll._Jl'U,l~'W~€l:hln'U,

UG'l:::md81'U,.jJ€l:hlG'lGi'1b1nm:::rll'OJln~~m'11€l~m:hlldbi

"

"

'ill bb'lJ'lJf11i~._J~~1tJni:i._JrlllVi''V\u1 tJm'lJf1:h1ilml:hl~l

"

"

"

u 1'lJ~1 tJ md81'U,f11~._J

b.jJl:hll'OJln'V\u1tJml:hl-11n'OJ:::ii'lJdd'l'Y1fim'W~._J~~ ~._Jb'r'hnlJ'lI'U,l ~.jJ€l:hlG'l~ bn~mdbl,G'ln

",

b'Wdl:::f11~._Jil'll'U,1~b'r'hn'lJ

word

'W€l~

'lI€l..:J.jJ€l:hlG'lbbGl(;'l::: word nbu'U,md~'lJ'lJd:::nw:il'OJ:::l&Jilf11~..:J~11..:J€ltJl'U,G1lbb'V\U..:Jd:::w;h..:J l'U,'V\u1tJml:hl-11~..:J'OJ:::rlllVi'bn(9mldbbG'lnb'lJ~tJ'U,.jJ€l:hl(;'l'V\mtJf1~..:J

"

b'lJ~tJ'U,d:::w-.il._Jn'U,

md11._JG11 bb'V\U._J'lI€l._Jf11~._Jm 'U,'lI€l'lJb'll'11 tJ1

"

"

word

"

~€lUlf1ru~:hI{jGl~..:J~'lJd:::rn~ld1:h1n'U, ,

'OJ:::rlll Vi'b~'U,'lJd:::1tJ'lf'Il~'OJ::: l~m_mn~miJ'11 ~1'U,~b~m.jJ€l~n'lJ'lJd:::~'Y1fim'W

tJmd:hl

RISe

~..:JbbU~€l€ln l~bU'U,~€l~'lJd:::b.rl'Yl$i€l

bb(;'l:::~1'U,~b~m.jJ€l~

n'lJb'Y1f11'U,1(;'1~ VLSI ~Ul:hll~-n~~V1tJ 1~'OJln~m'U,m'W~~l:hlldblUl:hlleJl~8~

"

l'U,~1'U,~b~m.jJ€l~n'lJ'lJd:::~'Y1fim'W~'U,m:hlldbl€lfi'lJltJ l~$i€l 'lJd:::mdbbdn rlllVi'm:hlldblYi''WJ'U,l1'lJdbbnd:hl

544 unfl

13 /

flomlbwwslils:::lJa RIse
ri,J~u 1~ t1.Jdbbm~duJl ~d

&ldbb1.J61m~l~i'l~dl~~1J~€lU~.nn til~m~l,JlU1Jl,JG'fdU88nlilln

urm 1 ~b.y;~,J bb~~l~,J~u~iluY]ll ...


(loop)

Vli'lt8mG'f~Iil::;

b~8~l?Ib~mG'1l~1Jm~l,JlU'll8,J~l~,J bb61::;~U"l iJ,Ji'l

b~~ lV\~lV1i'l1.J,}::;~'YlIT[ll'v'mlnri,J~u ml~btJu

1.J~1J1.J~,Jm'} 1~1.J'}d~'l5ulilln~~m<il8{

11.J1,~~Iil::;y]lmd1.J,}::;~d61~61~l~,JG'fdu~i'lml~'liu~8u

l~u'}::;V\':ll,J~y]lm,}bb1.J61 t1.J,}bbm~

(compile time)
1.J'}::;m'}~G'f8,J ~,J~l~mild~lbbli'd iim::;btJu~l~,J~btJUbb1J1J~l~6'1
I

~l~,Jm~lb~~€l,J~rlnbb1.J61

mjbbli'd ~,J,iU~,Ji'lbv\<il~61~G'f~~d'} \J
9

"

tl?l~ t1.J,}bbm~&ldbb1.J61m~l lum~Iil::;G'fT1,JV\"b~m1J~~


,

~,JIil::;y]llV1m'}1.J,}::;~d61~m~hn':h 1.J'}::;m'}~m~

rnulu;Y1~~G'fU1JG'fUUb%~l::;~l~,J '"
bMmn1Jm'}

lud1.Jbb1J1J~l~ bb~::; ~ 1

t~I?I1.J,}::;I.fl'Ylb~mnU lUb~~€l,J l~b'Yl~-U~ l1.J1il61U

"

t~'}Ml?lbb~bY1~,Jb~nU€lHVI~€l ~l~b61~

crsc
RIse
i'lml~~~nll

unl~~bMmn1J

b'Yl~-U~ 11.J1i161um~l'}m,b~l1.J'}::;~n<il1 , 1.J'}::;m'}G'fI?lYll~ ;Y1~

~,JlU 1~8 ~l,Ji'l1.J,}::;~'YlITm~ m~l,}bl<il€l1JG'fU€l,J~88Ub'Yl8{~'Yl1~~nll

"

"

RIse

~,Jdbct€l,Jlilln

8Ub 'Yl€lTI~r1Iil::;blnmdlilG'f81J 1~ U~l~,J bb1J1J~l~1~~ rrn ~l~,J bb1J1J~~1J~€lU

"

lu~lum,}G'f~l,J~u~ll~,Jlu~d~b'Yl~ bMmn1Jm,}88nbb1J1Jbb61::;m,}~~<il~u

tut61~

VLSI

,iuy]llV1bnl?lm,}b1.J~~ubb1.J61,J~u~ilu

... lu
,

b~~€l,J~€l~ybb<il€l{tI?l~~d

l1.J1.J'}::;n€l1J~d~bb~,Jd,JIil'}V\fi'n

(circuit board)
lU'lJru::;~b'Yl~ tut61~ ~~bY1~,J&ldb~m 'lIUG'f8,JlJ'}::;m,}~€l
){ •I "".

~lUdUV\61lmbc.Ju~1.J'}::;n€l1J~dmb~mn<ilm<il'}3lU

SSI

bb61::;

MSI

LSI
I

bb61::; VLSI

,ium~l,}bl1J,},}1il

,t1.J,}b'l5m'l58{~,J&ld61,Jl1.Jl1m~
b~m,iu
==

~l'VI~1Jtlhb'l5m'l58{~1Jd,}1il8~lu~~bY1~,J&ld

,"
.d

l~Y]ll Vlbnl?lbb,},Jm::;<ifu nmd~8


,""

lJ'}::;m1bb'}n

blJUlJ,}::;bI?lUbnmn1JlJ'}::;G'f'YlDm~

fl

•I

c;;

~.

,}::;~::;bdm'VIUd,J

(delay) RISe
~dU

~bnl?l~um~lu~~,iui'l~l~lnll,}::;~::;bd61l'VIud,J~bnl?l~u,}::;'VIll,J~~btJu8~l,J~ln ~,JIil::;b~ul~lilln~~ tm t~l?I~l'VIWm1md1J~~m~l,Jlu ,

~,J,iu~,Ji'lml~b'VIm::;G'f~~Iil::;ul~~1.J,}::;I.fl'Yldt1.Jl~,Jlu~bnl?l~u~ ~€l€lmb1J1J lV1~~,J'VIct,J'lI8,J~~ btJu!;:hU~1Jd,}lill~ ,

Berkeley

RISe-I

l~~~u~1.J,}::;~lru

6% btJU~dU'lI€l,J'VIUd~m1J~~

CPU
RIse 1 RISe II

Transistors (thousands)
44

l>esign (person-months)
15 18

Layout (person-months)
12 12

41

M68000 Z8000
Intel iAPx-432

68 18 110

100 60 170

70 70
90

13.4 I amUvlEIDSSlJ RIse

545

1.h::;md~f!eJ-l "IIln

bYl~1ul~~

VLSI ,xuVi'GlJUI~u~,n1~mn

~-l,xUbbYlU~"II::;Vll-l~-l~ufi'dU bb~Umdll-leJ1.Jmru: , bb~::;

SSI VI~eJ MSI

uneJeJnbb'lJ'lJ"II::;~eJ-l'Y1lmdeJeJnbb1J'lJbb~-ll-l"lld

f!T1-lbb'lJ'lJIilI~eJ-l~'\.UJ11V1&J ~IVl~'lJf!mi:1Gl~mdd~ Glldl-l

RIse

mdeJeJnbb'lJ'lJm~ldb1'Y111~JI~nll~ln

13.7 bbf!C?i-l1Vi'b~umdbm~'lJbf1~'lJmdeJeJnbb'lJ'lJ:S'\AJbb'lJ'lJGlI-l'l

VI~-l"llln~b~~eJ-l1uGld::;n~

'IJ

RIse

1~b~~b1n~~GleJeJn~l1-i!-llU
'IJ

1~ijmd~eJ~~'lJnU~ln~ull

(1) rrneanuuu RIse

"II::;1~~'lJ1.Jd::;1~'lfU"lllnmd\,b~ruf!~UG1'lJl-lfilU'lJeJ-l "II::;1~~1.Jd::;1~'lfU"lllnmdUl~ruf!~UG1'lJeJ-l 1U'lh-lVl~-l b'lfU

else
~11-i!

~11-i! bb~::; ~~~bnC?i~U

(2)

mdeJeJnbb'lJ'lJ

else
'IJ

RIse

$\eJ mdeJeJnbb'lJ'lJ;~~

RIse

Powerf'C

n1&J1~-i!bYl~1u1~~'lJeJ-l

RIse

GleJ'l sn

n1~'vb~ru~njjru::;'lJeJ-l

RIse

11.J1-i! 13.8 ~-l1.Jd::;neJ'lJ~l~;~~Vlm~bb'lJ'lJ


'IJ

mdbm~'lJbf1~'lJ~Ulf!U

1"111~bbf!C?i-l1Vi'b~U 1UGlldl-l~

1. 2. 3.

~1i'i-lb~~eJ-lf1ijb~~-l'lJUlC?ib~mbVlijeJunUVI~C?i 'lJUlC?i~I~-lb~~eJ-l~111.J,xu1.Jd::;~lru ijlTImdnIVlUC?iGllbbVlU-l~mJb~~-l1&J~lTI


'IJ

4 1'lJ<~1 1C?i~1.JnG1ij1&Jri-l 5 bb'lJ'lJ 1UGlldW1 1&J1~u'lJ

dl~lTImd€lI-l~-l

uuu] ~~f!

bGleJ~bb~::;iilV1U-l~eJ

ua::;lTImd€ll-l

bb'lJ'lJ~Ub1n
'IJ

uun11GlI-lViln

4.

1&JmTImd€lI-l~-l1C?i~€leJ~~~eJ-lmdmd€lI-l~-lVlUl~ml~IilIVld-l~~-l ~mJ'lJeJ-liilb1nm::;'Y111uVlUl~ml~1il1
'IJ 'IJ

b~eJ 1vtt~GllbbVlU-l

'-'

6. 7.

ijmd€lI-l~-lVlUl~ml~lillb~~-l ~l~-l

1 ~~-lcilVl~'lJbbGl~::;~li'i-l bbVlU-l

load

bb~::; store 1&Jf!u'lJf!UUmd'Yll-llUn'lJ'iieJ~~~~C?ib1~-lGllbbVlU-l1&JGld-lGll , 'IJ

'lJeJ-li, word

8.

IillU1U~~-lf!-lf!C?i~ijmdb1~n 'IJ ,
'IJ

1-i!Vlul~m'lJ~~md'Y1l-llU'lJeJ-lVlUl~ml~lill , U~I~-lb~~eJ-l

(MMU)

ciIVl~'lJGll bbVlU-l'lJeJ-l.iJeJ~~~€lI-l~-lri-l1

9.

~lU1UlJGl'lJeJ-lmd€ll-l~-lVl~lm~'lJ1~mGleJ~~IVl~'lJb~'lJ~IU1UbG1~ ijmh-libeJ~ 5 lJGl 'Y1l1Vi'm~ldb1€ll-l~-l1~mGleJ{1~ibeJ~nll ~ bm~mGleJ~~IVl~bmlillU1U"II1-l

(integer register)
32 iil

10.

~IU1UlJGl'lJeJ-lmd€lI-l~-lVl~1 ijmJI-libeJ~

(floating-point register)
16 iil

lJGl 'Y1l1Vi'm~ldb1€ll-l~-l1~mGleJ{1~&JUeJ~nll

.c

Z
.c
QI

::I

::I

.. ~ =- .. .. :s '" e .... ~ ""' oS .. ='" .. .. .. .. .-= '" e .... - .:a .. .. =,., .. ~~


Ql Ql

..:
'1:j
QI

;;

'51!
QI

<"1

,"

<'l

Ql Ql

.c
Q

,S ole
QI

QI ...

..:
fC

QI

CIlQl
QI

'T

(f')

'T

'T

;l

~ ~

.c

=
"C
Ql

::I

~ ::I .... '"


Q CIl

'"
QI

'T

'T

'T

OC

'T
<"l

~ ~
QI

.. .. ~ '"= ~ e
.c
QI

;l "C e'II

~ :i '" Q

= .S '"
QI

"C
QI

on

= oS =
e'II

c-,

"

'"

<.n lJ

'" >.
aJ

'" c-,
Q

'"

"

on

-= :se - ....= -.. .~ :a


Q

.. =
0 "C
QI

eee = = ... =QI QI

0 "C

<"l

".,

<C

.:
QI

E 'i .c
e'II

.c

0
<.I

;:

c-,

'"

'" OJ

....

r;:;

c-,

'" .... c-,


en lJ OJ

<.I QI

-'V;;i

"7

~
;;i
C"

.c

;;i

0(0'

r-

.. .... ... '" = '" e '" = .. e


CIl
QI

... 1 =
"C
QI

'" ~

-0

~O
<=i

on '" "' "' '" .... ....


\/}

lJ

'1: "C

"C 0

QI

.c N

r:"1

c-

loll'> COl

01

lI'> -;;::I fr-" COl


"7

~ ~ ~
iF!

= '" ~ .~ 4!! ... .... ~ = 'iii .c


01

~ ~ c;:
~(IO

.c

..
QI

.S

-'"..

QI

00

s:l

(",1

.S

.g
N N
V")

'"'

"5
'-'

'l\

E s: .c '" " ~.,)

UU

:: "
E
<= c
c

:~

= 0 .~
'" .5

'" ." :s :s

:::

.9
<=

<.I

'" ... 'iii


QI

'T

0'1

<C

sr:

..2 .£

§
0 u
,:r.

(;;::~

ao M

~ 01" ~
eo:

..,.

...

.. =QI

'" '" <.I

..

~ 0
::8

00

<C

r'l

:9 .E z

«. ~ -o Euv
r/l

8 co

0 r-

,..,
>D

.",

'5
X

::8

<r:

>

'" 52 C
~,

., ~
t)

ag
'" c

" -o
0

o:

546

13.5

/1t.JOlau1uamuvlBnssll

RIse

547

f1ru~d-Jti&i-iifl 1 n~ 3 dJ'Ucjj'l~bb~<Jl~LVib~'Umld-Joifu-iie:J'U'lIfl~~l~~bfl~fl~ , n~ 8 bb~<Jl~ Vib~'Umld-Jmn-~lme:J~mdr1l1tJtllml L

f1ru~d-Jti&i-iifl 4 ,

l<Jl~b%Y>Jl::;~flilmdr1l~lW~ld-Jn1J'V\,I.b~ L'Unld L-ii-iie:J lJ1btJ1~u

mld-J-oJlb~~fl'U

f1ru~d-Ji:i&i~e:J~-iie:J~<Jl.yhm~m-iie:J~nUmld-J~ld-Jldbi , ,

'lIfl~ltJdbbndd-Jcjj'lbbtJ'flm'jjl Lwmdw11tJdb6J!m6J!e:J1
8 cjj'lbbdnmjLwm~n'fl 'iJ 'iI

else

(;'{1'U 2 cjj'1~b'VI~mb~'hOJ~~<Jl1le:J~Lwm::;n'fl 'IJ 'IJ

RISe (;'{l'U~n 5 cjj'lGie:Jd-Jle:J~Lwm::;n'fl RIse bbGin5:jflru~d-Jti&i'lle:J~ else


'iJ 'iJ ,

~~~lJ1n~lln~

L'Uvh-iifl 12.4 mdr1l1tJtllml~l~~

(instruction pipeline) irn'OJ::;t;]mbd-JlL-ii


bfl~fl~

L'Umd'll sn ~tJd::;~'Y1TImY>J'lIe:J~f1e:Jd-J"~hb<ilfl1 L'UVh-iifld'OJ::;J1n~lln~mdr1l1tJtllmlnu l f1e:Jd-JY11b<ilfl~'U<ild::;n'fl 'IJ Jll~n'U

RISe ~~~l~~(;'{l'U

L'VIru'OJ~btJ'Umdbb'flmtJ~~'U-iifld-J'fld::;'VI1l~1~~b<ilfl1 ~ 'IJ
,

l<JlllbbGi'fl::;l~dflumdr1l~l'U

(instruction cycle) tJd::;nflUJll~~e:J~~'U<ile:J'U ~e:J

• I: Instruction fetch

~~'VI1::;md8l'U~l~~
'IJ 'IJ

• E: Execute ~~'VI1::;mdtJd~d-J1'fle-.J'fl1<Jl~ ALU ~~-iie:Jd-J'flUlb-iilbb'fl::;e-.J'fl~Y>JTIbnUe:J~L'U

• I: Instruction fetch
""= ({ d"il~b<ile:Jd • D: Memory dtJ
'IJ

~~'VI1::;md8l'U~l~~
'IJ
'IJ

• E: Execute ~~'VI1::;nldtJd::;d-J1'fle-.J'fl1<Jl~ALU ~~-iie:Jd-J'flUlb-iilbb'fl::;e-.J'fl~Y>JTIbnUe:J~L'U

btJ'Umdbb'flmtJ~~'U-iie:Jd;J'fld::;'VI1l~1~~b<ile:J1nU'VIl-b~mld-J-oJl

13.6a bb~<Jl~ LVib~'Ue::r~bb~<Jl~~l~Unldr1l~l'U'lIfl~~l~~<illd-J~l~Ub1m~dl<Jl~'U b~'UlJ1'if<Jlb'OJ'U1lbtJ'Und::;1J1'Um~'GJiltJd::;~'Y1TImY>Jbi:'1 mm lltJtllmlbbuu ~ bb~<Jl~nld L-iiltJljhu~

1<Jl~ 'GJLoitttJtllml ~l~'l

d-JlL-iin"il::;'lhmY1d-JtJd::;~'Y1TImY>J1J1dJ'Ue:J~l~d-Jln ~tJ 13.6b I bb'fl::; E

tJd::;ne:JuJll~~e:J~~'U<ilfl'U~~r1lLVi~'U<ile:J'U rien b&1 n'U lJ1 m

'lIe:J~~l~~~e:J~&i<Jln'Umd-Jldblr1l~l'U L'U 'IJ

bb'Ul'Y1l~dm'OJ'lh ~bY1d-JtJd::;~'Y1TImY>J lJ1d-Jlnn~~e:J~bvil'lle:J~mdt.Jd::;d-Jl'fle-.J'fluuu

548 unfi

13 I flOlJUblm.OSm.S:::Q8 RIse

'i1l~~l~'IJ'i1l~'lJn&i

m.h-J hn'i1l~

~i:1ru'vni;'1'8-J'lJd::;md~'Vll1vr'lJddh'1TIml"li;'1'-Ji;'1'<?liiu HlbJn-J
~ 'lJ q

i;'1'8-Jb'Yh'lJd::;mdbbdn 'li8-J~8mdn'!J'\-'1Ul~ml~~l'V'l~niiu~bV1~.mi8-J'Y1l-Jb~m ml~~l8~&i<?lnU f1li{-J.y;i;'1'8-Jn~::;C;;8-Jd8mh-JU8~'VI'U-Jl-Jd8'IJf1li{-J (b~~nll


(branch instruction)
I I I I

nl~f1li{-J.y;eJl-J~-J'VIU1~
wait state)

~-Jiiumd

b~81vrf1l~-Jbbdn 1oii'li8-J~8mdil'IJ'VIU1~ml~~l'VI~n 1vrbi;'1'1~~Uri8U 'lJd::;m~i;'1'8-J f1l~-J~l'VI'ill b'lJ~~u~l~'IJmd'lJd::;~lG1~G1 'i1l~~l~'IJ U-Jfl'IJ1vrmd'Vll-JlUbtJUbb'IJ'lJb~~-J b~81vrm~ldf1'lJd::;~1G1~G11ul'lJtilG1u'1rJ18~l-J~md8-J ~-Jm~C;;8-J1G'lf1l~-J"NOOP" bb'Yldm'ihl'lJ1u~<?l~b'VI~l::;i;'1'~ 1<?l~ hhbbm~
q

('VI~l~n-Jf1l~-J~'IJ8nllhJ~md'lJd::;~1G1v,m) C;;-lbb'lJG1m'l1l

l'lJtil,G1um~ldf1'lJ~'IJ'lJd-J 1vr~'lJd::;~'Y1TIml"li;'1'-J~u rJ11~mdb~~'li8-J~8mdn'IJ'VIU1~ml~~l


q 'lJ

d~IUi;'1'8-J'li8-J'Vll1vrm~ldf1eJl-J~-J'VIul~ml~~li;'1'8-Jbb1.A-J1rJ1l"118~nu~-Jbbi;'1'<?l-J 1Ud'lJ 13.6c


'lJ

1u~n'l1rn::;it"1'lJtil~um~ldmiluf1l~-J
'lJ

b-nll'lJ'Vllmd'lJd::;~lG1 ~G11rJ1m~f1l ~-Joii8uYi'IJnU lrJ1b~~'lJd::;~'Y1TIml"l

~-Jm~'Vll1vr~'lJd::;~'Y1TIml"li;'1'-J~u lrJ1~lnn-Jm~b'Yil'lJ8-Jmd'l.Jd::;~1G1~G1'i1l~'lJn&i mh-J hn'i1l~ f1l~-Jb'lJ~~U~l ~'IJmd'l.Jd::;~lG1 ~G1niJ-J~ ~G1'Vll1 Il'lJul~u'1~m~ldf1'Vll-Jlu V U8mlndf1l~-J~C;;8-Jm~~~G1~l"ITI~lnf1l~-J5u l'lJtilG1uG1<?lG1-Jiu~81umru~f1l~-J'VId-JC;;8-Jmd , f1l~-Jri8U'VIUl ~::;~~m1l1vrbn<?lmdd8f18~~G1~l"ITI b~81V1l'lJtilG1u'Vll-Jlu~81'lJlrJ18 ~l-J~md8-J l'lJtil,G1u~::;m~ldf1'Vll-Jlu lrJ18 ~l-J b~~'lJd::;~'Y1TIml"l nl mdbbu-J~U'i18Umd'lJd::;~1G1 ~G1 btJum~~u'i18uiiu
~U'i18U d88n

(dependency)

iJ-J~~~ 1vr'lJd::;~'Y1TIml"l'lJ8-J

1oii~G1~l"ITI~1rJ1~lnmdf1lU1rn~bn<?l~u

1u

~-Jm~~::;C;;8-Jbb'Y1dnf1l~-J "NOOP"

1oiinm'Vll-Jlu 1Ubb~G1::;~U'i18Ub'Yil1 u bb~l<?l~'lJn&imdr1l-Jlu n

1U~U'i18UE

~-Jb~m-n8-Jn'IJ'VIU1~ ALU iiuiJn~::; 10iinm 1umdr1l-Jluulunll~u'i18u5u btJUi;'1'8-J~U'i18U~8~~-Jd

~-Jiiu~-Jmdbbu-J

• E1: Register file read

• E2: ALU operation and register write btJumd'Vll-JlU'lJ8-J ALU bbG1::;uu-v;n-n8dqjG1 G1-J1u~\\im'i18~ bd8-J~lnml~b~~'IJ~lmbG1::;~bb'lJ'lJbb~Ub~mnU'lJ8-J'l!<?lf1l~-J1um::;nG1 RIse md88nbb'lJ'IJ
q 'lJ

1'lJtilG1u1 vr~m~'VI~8~~u'i18uiium~ldf1'Vlll~~

mnun

d'lJ 13.6d bbi;'1'<?l-J 1vrbi1Ul'lJtilG1U


'lJ

~'lJd::;n8'IJrJ11~~~U'i18U ~-Jm~ldf1~lUf1l~-J lrJ1~lnn-J~f1l~-J b-nll'lJl1'l Ul'lJtihu'1unmb~mnu bbG1::;m~'Vll1vr~'lJd::;~'Y1TIml"li;'1'-Ji;'1'<?ln-J~b'Yil "NOOP" f1l~-J


'lJ q

iJ-JfI-Jf1mb~l1oii1umru~btJu
'lJ

f1l~-Jb'lJ~~u~l~'IJ~U'i18umd'l.Jd::;~1G1~G1 'VI~8mdd8f18~~G1~l"ITI~lnf1l~-Jri8U'VIUl

13.5 /

1t101au1uEf01UJilSDSSlJ RIse 549

J_

<:t:

o:l

J_

J_

J_

<:t:

<:t:
"0
(';!

o:l
"0

U
"0 "0

~
0

u
0 0
Z
0.. 0..

J_

J_

~ .9
,_
<I)

-l

-l

:d:

..r:: o
o:l

<:t:

V5

i:: ~ ,_

o o

..r:: u ,_ co
i:: <::l

0..

"0 "0

<:t:

V)

0 0

0 0
Z

0..

E .:;;

.s

OJ)

o:l

co
0..
"0
o:l

<:t:

u
0 0
Z
"0 "0

J,

t
<I)

><
.c
c::;

-l

<:t:

V)

.... .9

u
O"d ,_

co

0 0

0..

550

unfi

13 / flO1JW1Wl.OSfilS:::QaRIse

bd€l~·.,llmrdld-Jb~~1JJl~"lI€l~·MI~l~~

~t!d:::~'Yl firnY-! ~~md-Jljflt!wt!j~

" , It!1l1~t-t1Vi~1'l1ld-Jb'Vld-Jl:::~d-J~€l<ilI'll\'€l~1~ €ltJl~ 1dn<illd-J ~l~~bt!~~t-tbbt!~~


bb~:::md~<if€l~ loii-ii€ld-J~":illn~l~~ri€lt-t'VlUl,it-t '"

d:::~:::b1m~l oii1 t-tmdt!d:::d-J1~ V.mbb<?i~:::~l~~":il:::~1'l1ld-Jbb<iln<?il~t-t€l tJU€l usrm n

It-t<ilj:::n~

"

RISe ~~~ld-JljflUlb'YlI'lii,1'l1t!1l1mt:J..Jll:tt~mjl~

G'il~1Jmdt!j:::d-J1~v.J~ It!1l1m.!~<iI~~

YlllVit!j:::~'YlfirnY-!"lI€l~

b~mbn1"l1ilb!!'Vlld ~~1~ulb'YlI'lii,l'lmj~<iI~l~1Jmwd:::d-J1~v.J~ d-Jlloii

1~<ill'Vl&J (re-organization)

iherrrsusn

lVi~":illjrnl~l~~~l'Vlwmjbt!~~t-tbbt!~~G'il~1Jmjt!j:::d-J1~v.J~

(branch

instructions)
It!1l1m'!

b'YlI'lii,I'l~b~~nll

"Delayed branch" \]nuld-Jlloii1t-tmdbv:\d-Jt!j:::~'YlfirnY-!"lI€l~ branch ~ir~ 1&J~v.Jmn<il~t-t":ilt-tnll":il:::t!d:::d-J1~ v.J~~l~~ branch b~~nll "delay slot" mj'fll~lt-t branch"
bb~<iI~ Vib~t-t ~l~~

1<i1~md loiit!j::: 1~'n't!":illm1l~~

<?i€llt!b~;":ilri€lt-t

G1lbb'VIt4~"lI€l~~l~~~€l~~<iln1J~l~~

~~€lt-t-iil~ bbt!~ndbb~<iI~ Vib~t-t t-t<illjl~

13.9

1t-tI'l€lGld-Jt! "normal
'VlGl~":illn~~l~~~

~l~~~b~~~<illd-JG'il~1Jmjt!d:::d-J1~v.J~<illd-Jt!n~ <?i€llt!~":il:::<if€l~flnt!j:::d-J1~v.J~~€l~l~~~ ~~~lb1Jt-t<if€l~l~~l~~


101 n1J 102
~ a-

'"

105

'" b~€lYlllVilt!llht!~ld-JldflYll~lt-t

102 flnt!j:::d-J1~v.J~

Hl<i1ld-Jt!n~

1V>1 0 10"1'1 .... 0 = = X bbm":il:::'Yll 'Ill uru b~t-td-JlJj:::~'Yl1i-rnY-!~~"lIt-t


0
I

"NOOP"

b-iillt!~~l~~<?i€l":illn

branch

€ltJl~ ljn<illd-J f1l~Gl1J~l~~~

1<i1~1&J~mjt!wt!1~l<i1'l flmilt-tb-iild-Jl~b1m ~l~~~

jt! "

'"

13.7

bb~<iI~ lVib~t-tv.J~~bn<il~t-t

dt!

~~~l~€lfi1Jl~lt-t1J'Yl~

'"

13.7a

bb~<iI~mjYll~lt-t<illd-Jt!n~"lI€l~ It!1l1~t! ~li'f~ JUMP

12 (1!1~t! 12.11 bb~t 12.12)

"

t=3 ~b1m

t=4 ~l~~

JUMP

flnt!j:::d-J1~v.J~ It-tb1mb~mn1J~rilt-t

103 b-iild-Jl

bd€l~":illm1Jt-t~l~~

JUMP ~~":il:::bt!~~t-tbbt!~~~l"ll€l~ program counter


YlllVi<if€l~~1J~l~~~
103

"

~~m<il€l~~bn1JG1lbb'Vlt4~"lI€l~~l~~<?i€llt!~":il:::rilt-tb-iild-Jlt!j:::d-J1~v.J~)

1lI111~ 13.9

~h~{j ranch b

mJ1J:un~n1JLL1J1J delayed branch

Address 100
101

Normal Branch LOAD ADD JUMP ADD SUB STORE


X.A

Delayed Branch LOAD ADD JUMP NOOP ADD SUB STORE X.A I.A 106 A.B
C,B A,Z

Optimized Delayed Branch LOAD JUMP ADD ADD SUB STORE X.A l05 I,A A.S C,B A,Z

102

103 104 105


106

lA 105 A.S C,B A,Z

1.3.5 / Time 2 100 LOAf) X, A 101 ADD I,A 102 JUMP 105 103ADDA,B 105 STORE A, Z ~ 3

ltJiJlau1uCI'muvlBnSSlJ

RIse

551

(a) Traditional

pipeline

100 LOADX,A 101 ADD I,A 102 JUMP 106 ]03 NOOP 106 STORE A, Z
I

(b) RISe pipeline with inserted

NOOP

100 LOAD X,A 101 JUMP 105 102 ADD I,A 105 STORE A, Z ~ (c) Reversed instructions

'nJ ..

13.7

m";'~''U.~8~liliilil4~ijdelayed

branch

luLtltJ1flu~"Ltl ~bdm t=5 iil~"~ 105 ~"btJUbihVId-Jl~'lIEl"q;11~"JUMP 'OJ~tmeilUb-nl~ LtluLflu dtl 13.7b bb~<.il"md'V11"lU'lIEl" LtluLflu"Ubfl~El" RISe 1<.il~vi'd d~~~bdm~l-if Ltl tf"fl"b'Yllb&id-J .ll" Ldn~ld-J biifl"'OJlnL~bb'Vldniil~" I\lOOP b-nlLtl ~"'V111Vi1tl{ILflu"tJ~El" m
'IJ 'IJ 'IJ

552

un

ft

1.3 / flEnJ11i'JWlOSUlS::;Ua RIse ~1J 13.7c bbfl'(9)._j lVibi4umJ l~b'Ylfl'Ci,fI

'Y11mJG'11J~1~._j1(9)'l ~._jbVI~m,.j,1TIbbJn ~l~._j ~nm

delayed branch
~._j"il::;bmellUboiilJ.Jl ~

JUMP
t=3

rmellUb.j'hJ.Jl~nm ~ bti8._j"illn~1~._j

t=2 ri8U'VIU1~1~._j
rm~lUb;lJ.Jl~eJU~~l~._j ~

ADD

(~ 102) t=4

ADD

JUMP

"iI::;blJ~~UbblJ~._jfil'lJeJ._j ~l~._j

program counter
lJd::;J.Jl~~~

~._j ~'Y111Vibn(9)mJ~(9)y.ml(9) 1(9)'l bn(9)~U 1unm 1 105 blnell'l.l,boiil'G'i11Jti1m!

ADD

tJn

lunmbb~mn1J~~l~._j

"

"iI::;bi4U 1~1111JdbbmJ.J~._jmJ.Jd

1 VI'\.b~ mdblJ~~ubblJ~._j~1\9l1J~1~._jd"il::;'Y11._jlU blJ~ ~U~1~'lJmdlJd::;J.J1G'1 ~~

uin, 1~il

d8U I'll

JUMP ~._jdJunld ~ (unconditional branch) ~l~._j b1~n 1 ~V1._jn-iiu


1~mh._jbln.;r8._jn'lJ~1~._j

(call)

Lb~::;~1~._jii8Un~'lJJ.Jl'Y11._jlU~b&1J.J

(return)

~l'VI~'lJmdLlJ~~ubblJG'1._j~l~'lJmd LaJmJ.Jldm .. 11Jl~~Lfl'J.JeJ 11J b

lJd::;J.Jl~~G'18~1._jilb~8U

I'll

(conditional branch) branch

m:::1J1Um~"iI::;

nlb~eJu 1'llfln'Yl(9)fl'eJ1J~l'VI~1JmJ ~ ri8U'VIUlbb~1 boiil11Jb'Yh,xu Jll~VI~._j"illn~l~._j

m"il$J~mlJ~~ubblJG'1._j 1~ bci8._j"illn~1~._j~8~lU~1\9l1J ~

11JdbbmJ.JriflbblJ~Jll'jj1"il::;.;reJ._j 1~ blJ~~U~l~'lJ~l~._jbb<Ji"il::; lG'iLYl~._j~l~._j il%::;,xUbb~111JdbmdJ.JriflbblJ~m'jjlm"il~UVll~1~._j~"iI::;.;r8._jblnlJd::;mG'1~~ ~

NOOP

branch

J.Jll~bb'Ylu

1TImJ~fI~1~fI~._jnUb1!:Jnl1 1(9)~lJn~~1~._j

"delayed load"

fl'1J.J1JblU1J.Jll~n'lJ~1~._j

LOAD
b8111'

LOAD

;Yl!:J"iI::;~eJn1~fl'bGleJ{~dJUbihVlJ.Jl~'lJ8._jmd ~ <Ji811J"iIum::;.yj-._jt1._j~1~._j~.;reJ._jmd 1tl"ilunl1md

LOAD

"iIln,xu;Yl~"iI::;lJd::;m~~G'1~l~._j~U'l ~._jn"il::;.;r8._j1J~8~ lVid€l

1~1~mGleJ{rifl,xu

(idle)

LOAD

"iI::;bfl'1"i1~U

n111JdbbmJ.Jrif"mlJ~Jll'jj1

fl'1J.J1Jbl~(9)~1~'lJ~1~._jb~!:J lV1~bYl81Vi;Yl~mJ.JldbllJd::;J.J1~~~~1~._j~dJulJd:::1m'u~u'l1~<Ji811J lud::;Vll1._j~d8md

LOAD

,xun"il::;'Y111Vid::;'lJ'lJillJdd~'YlTIJll'lAlfl'._jri._j~u ~

;Yl!:J luGld::;nG'1
~ 'l.I

RISe

'iubbdn'l
9

~il-051'Vl'I,b~ luYl8._jGlm(9)

1~bbri;Yl!:J~~~Gl1(9)!:J'lJ~~'Yl 'l.I h'lJ€l._j;~~

MIPS Technology MIPS R4000 rnu lubb~::;Jll!:Ju8n

Inc.

luVi'doii8d"il::;1~n~11t1._jfl'miJGl!:JnddJ.J~ulfl'U 64

~._jdJum;niJGl~mdJ.J~l~ufl''lJul(9) dlJ.J~._jmdnlVlU(9)Gllbb'VIU._j~eJ~

UGl ~l'VI~'lJb'G1U'Yll._jmdG'i._joiieJJ.J~~._j ~ bm::;md'Y11._jlU'lJ8._j'VIU1~

~1~mGl8{

ALU

rm l~fl'miJGl~mdJ.J

64 UGl ilmlJ.JbVlU€lnl1fl'miJGl!:JmdJ.J

32 UGl8~1._jJ.Jln b'lAldl::;'lh~

'11 tn mu 1(9)'lJ8._j~U ~VlUl !:JmlJ.J-0511 Vin1'l._j~U ~._jJ.Jln'lAl8~1'VI~'lJd::;'lJ'lJlJDu~md~"iI::::mJ.Jldbl'Y11

13.6 / i3Uj~ MIPS R4000

553

bbe-Ju~ml~ff~Vi'uTI'lI8~ 1y.jA'lIul~ terabyte (~lU~lU 11J'1;) n1JVI'i-bJ~ml~..JlbG1t18u 1~ lui:l~~iiue1l{~&1G1n'llUl~ 1 gigabyte (Vi'U~lU 11J'1l) G1l~l"mVll~81~~J 1u 'f1l1Vi~u~ VI'i-bJ~ml~..Jl~~G!~'lIUl~ 4 gigabyte 'lI8~G1mi:l'11~m1~'lIUl~32 U'11,iUb~~~~::;~8~b~U 'lI81Jb'll'11m11~~lu~~8u~l~..Jln~ U8n~lnd G1mU'11~m1~ 64 iJ'11i:i~'liJ~lVi;Vl~c;hd m~l1b1U1::;~JG:w~-iim;jmb1J1J double-precision floating-point numbers bbG'~::; character string 'lIUl~~lnti~ 8 11J'11'1cK[~~m11.jff1l~~b~m
'lJ

1.jf1Jd1~c;h'liJ~u1::;~J~e-J~ (coprocessor) ~lVl~1J1J~Vll1~~m1V1'i-bJ ~fm~..Jl ciiJ;Vl ~,iu bln88nbb1J1J~l1~~il1'11b1U1::;G1~fl1VibtJUG1mi:l'11~m1~bb1J1J~l~~G1~ 1~~b1u1l~bd8~11~lVlw ~Ju~~::;m~l1b1'liJt.ll Vim1U1::;~J~~~'f1l1~b~J~~~U
'lJ' ,

;Vl ~ R4000 blf1bbU~88f1btJUG18~G:hu i..,I ~JUVI"d~1Jd1~;Vl~ bbG'dln~JuVI"d~ lwi"t1


'lJ 'lJ

C!

'lJ

;Vl~U1::;n81J~J~~~m'118{'lIUl~ 64 U'11..JlUJU32 ciiJ bb~::;ilVl'i-bJ~flJl~..Jl ache c 1~~lnti~ 125 Kbytes ~~bbU~l.jf~lu~lVl~1Jbn1J-iim;lmb~::;bn1Jf1l~~mh~~::;fI~~VI-d~


'lJ

'lIul~~fi8U-iil~ lV1b1!d 'liJ~ lVi;Vl~il-iim;l~~~::; .jf~lu1~8~bG1~81~~1~<K8~1u 1 8l~8~VI'i-bJ~ml~..Jl~b~mJm lum1'f1l~lu~ln


~J~

cache

'11l1l~ 13.10 bbG1~~'l5~f1l~~~lm~lU~lVl~1J;Vl~ lu'111::;n~d '11l1l~ 13.11 bbG1~~'l5~f1l~~ bvi~b&1~~lVl~1J;Vl~ R4000 1~~b%'V,n::;1l~~~~VI~~~::;blf1b-iil1VimtJu1m~G11l~'lIUl~U'11 f 32 ~~VI~~ m1'f1l~lUn1J-ii8~~~~VI~~~f1b1Uf1l~~ load bb~::; tore btJum1'f1l~lu1::;Vl1l~-ii8~~ s ~bn1JmJ1u~~m'118{~J~nu~~~u
C! cd!
'lJ

'lJ

'I

'lJ

'lJ

'lJ

'lJ

'lJ

;Vl~ R4000 1~ilm11.j([fI~bbG1~~~8U1'l1 (conditional code) tllm~l~lU'lI8~ f1l~~1~n'11l~'f1l1Vibn~b~8u1'l1(condition) ~U~l d8u1'l1,iu~::;\lf1bbU~~btJu flag bb~::; ~~ bn1.M1u~~m'118{bb'YlU ~~btJum1V1~m~~~m1G11l~~8~n~U~l~lVl'~1J~~m11f1~d8U 1'l1 ~tJ~mn bb~::;il~~'1i8u1::;~'YlTI[)l'\AI'lI8~1utih~bb~::;m1~~G'il~1Jf1l~~ lV1~'lI8~ 1u1bbm~ , ciiJbbu~m~l 1~~m~~ll.jfn~ 1n~G1-n~~~l~lVlwm1bbni:lbIJVllm18lufil~ln~~m'118{bb'YlU ~~n1l'd d8U 1'l1~bln 1~b-iil1ulu~~m'118~ui:i~nm~btJub~8u 1'l1un&1~1u1bbm~ciiJbbu~m~l m~l1b1UWm~l~lu lViilu1::;~'YlTIm'V'lG1~G1~ 1~
'lJ 'lJ ,

;Vl~ lu'111::;n~dn1~bb'11n'1il~~ln;Vl~u'111::;n~ RISe ~U'"I ~8 l.jff1l~~~ilml~mJ l 'lIUl~ 32 U'11bVlt18unuVI~~ b-d8~~lnf1l~~'Ylnf1l~~ilml~~-m'(hnu ~~'f1l1Vim::;1JJum1 , 8l'Ubb~::;bbu~ml~VI~l~ 1f1~1ViG1~'U'f1l~l'U 1~~l~~u bb~::;i:i~'liJ~ l'Um1'f1l1Vim11<K<i181J1::;VI'"ll~
'lJ

'lJ

'lJ

'lJ

554

unf

13 / VlDllW'JW1DSVlS:::lJa RIse m~iJd'Um'J€h'Uf1l~"]LLfI~'VI~d~ml~·.\hLG'1~m,lSlml~~l~~"]~'U l'U 'JLJ 13.8 'lJ ~ 'Uil1m"]G'1~l"]"lIEI"] (91'JVlG'1 1~ LLfI~lnm'J5l"] WLLiJiJf1lfhYi..] 3 LLiJiJ~LLG'1(91..]
'lJ

~..]~~mG1€1{~ L'VI~EI'Un'U ~..]'lh ~

1 VI

m'JLLLJflml~'VI~l~~l~~'U m'JLLLJfl1LJ'JLLm~

V-Jflm~'\'llJ"lIEI,,]f1l~..]~ilml~~iJ'iiEl'U~'UG'1l~l'JflLL1l1"l11J;'l'U'lid..]nm

Vll11~ 13.10 'lIGl~'hi.:lihW;iJ MIPS R·Series

OP
LB LBU LH

Description
I,oad/Store Instructions Load Byte Load Byte Unsigned Load Halfword D Load Halfword Unsigned Load Word Load Word Left Load Word Right Store Byte Store Halfword Store Word Store Word Left Store Word Right Arithmetic Instructions (AI,U Immediate) Add Immediate Add Immediate Unsigned Set on Less Than Immediate Set on Less Than Immediate Unsigned AND Immediate OR Immediate Exclusive-Ole Immediate Load Upper Immediate

OP
MULT MULTU IV

Description

tnu
LW
LWL

LWR SB SH SW SWL SWR ADDI ADDIU SLTI SLTIU ANDI ORI XORI LUI

ADD ADDU SUB SUBU SLT SLTU AND OR XOR NOR SLL SRL SRA SLLV SRLV SRAV

Multiply/Divide Instructions Multiply Multiply Unsigned Divide Divide Unsigned DIVU Move from HI MFHI Move to HI MTHT Move from LO MFLO Movc to LO MTLO Jump and Branch Instructlons Jump JAL Jump and Link JR Jump to Register J ALR Jump and Link Register BEQ Branch on Equal BNE Branch on Not Equal BLEZ Branch on Less Than or Equal to Zero BGTZ Branch on Greater than Zero Branch on Less than Zero BLTZ BGEZ Branch Oil Greater Than or Equal to Zero Branch Oil Less than Zero and Link BLTZAL BGEZAL Branch on Greater Than or Equal to Zero and Link Arithmetic Instructions (3·operllnd, R-type) Coprocessor instructions Add LWCz Load Word to Coprocessor Add Unsigned SWCz Store Word to Coprocessor Subtract MTCz Move to Coprocessor Subtract Unsigned MFCz Move from Coprocessor Set on Less Than L'TCz Move Control to Coprocessor Set on Less Than Unsigned CFCz Move Control from Coprocessor AND COPz Coprocessor Operation OR BCir Branch on Coprocessor z True Exclusive-OR BCLF Branch on Coprocessor r. false NOR Special instrudions Shift In.~tructions SYSCALL System Call Shift Left Logical BREAK Break Shift Right Logical Shift Right Arithmetic Shift Left Logical Variable Shift Right Logical Variable Shift Right Arithmetic Variable

13.6 /

i3illy

MIPS R4000

555

OP
LL SC SYNC BEQL BNEL BLEZL BGTZL BLTZL BGEZL BLTZAL L BGEZAL
L

Description
Load/Store Instructions Load Linked Store Conditional Sync .Jump and Branch Instructions Branch on Equal Likely Branch on Not Equal Likely Branch on Less Than or Equal to Zero Likely Branch on Greater Than Zero Likely Branch on Less Than Zero Likely Branch on Greater Than or Equal to Zero Likely Branch on Less Than Zero and Link Likely Branch on Greater Than or Equal to Zero and Link Likely Branch OIl Coprocessor z True Likely Branch on Coprocessor z False Likely

OP
TGE TGEU TLT TLTU TEQ TNE TGEI TGEIU TLTI TLTIU TEQI TNEI

Description
Exception Instructions Trap if Greater Than or Equal Trap if Greater Than or Equal Unsigned Trap if Less Than Trap if Less Than Unsigned Trap if Equal Trap if Not Equal Trap if Greater Than or Equal Immediate Trap if Greater Than or Equal Unsigned Immediate Trap if Less Than Immediate Trap if Less Than Unsigned Immediate Trap if Equal Immediate Trap if Not Equal Immediate Coprocessor im.1mctions Load Double Coprocessor Store Double Coprocessor

BCzTL CD7FL

LDCz SDez

e:n1~llT~1;m~'h~~'\A,d,nV\lmTIm1nl'V\'\A,~~lll'V\~~~mjmJ1J~l~~~~ ll~~bm l'ihJem~~~ l l~~~bl1J1Jb~m m1Ell~8~'V\~'mmld,ro.1l~~'V\d-J~lh~nfl1J~'m f1l offset 'lJ'\A,l~16 U<?1 dl1Jll ~ 1'\A,~~~l<?1fl1'lJ'\A,l~ U<?1 32 b'li'\A,
\.I 'iI q 'iI q

lw r2, 128(r3)

load word

at address

128 offset

from register

3 into register

'V\d-Jl~i1~md8l'\A,-iJm;J~'lJ'\A,l~word (load word) mo;nnGllll'V\~~~nl'V\'\A,~'\A,~~~b<?1fl1 1 1 rs irmfiu 128 l~m,bd-Jlbn1Jln'\A,~~~l<?1fl{ r2 .;nn~~m<?1fl1~~ 32 G1d~'\A,md-Jldm,bG1d 1~ nl~d-Jll.jfdJ'\A,base register

:S~~ ~

~~5'1~miJ<?1~mdd-Jlm~~~l~f1l~~bl'l~fl~lb1J1J~l~ (.j)~bl~~~ludtJ is.s) ~ 'lid~lVfmd'fllltJulm1dJ'\A, ltJl~mh~5'1tJd~~'VlTIm~ l'\A,vh-iJfldo;)~ l~mhdi1~mdl'h ltJulm1 n1Jbfl~€l~MIPS ~~dJ'\A,~wn'\A,~~l~f1IGlflmd'fllltJulm1n1J:S~~ l'\A,m~n~ RISe bfl~8~5u'l GlflltJ
MIPS
otII at;! 'iI 'iI

556 unfl

13 I flOllubWlOSVlS:::lJa

RIse

'lIeHI~Yl~

MIPS Actual Instruction


lw r2, <16-bit offset> (rO) lui r 1. <high 16 bits of offset> lw r2, <low 16 bits of offset> (r l ) lui rl, <high 16 bits of offset> addu r l, r l., r4 lw r2, <low 16 bits of offset> (rl )

Apparent Instruction
Iw r2, <In-bit offset>

lw r2, <32-bit offset>

lw r2, <32-bit offset> (r4)

nl"i'Yl\9lG'18"jrhJ bf1~8"jf18d-J~d b<1le:Jflu<m::;nG'1 ~ ~lVl-Ul ~,xu th::;d-JdG'1~G'1 iJlh::;~'Ylfimy.J lUnl"ilh::;d-JdG'1

RISe

1\9l~ b%y'n::;bf1~8"j1u ~iJnl"i~~<1I88n ,

~G'11~\9l ~b%~~ bn8'lJVI'ct"jf1l~"jo/ie:JVI'ct"jd"j"imml"i

(system clock cycle)

nl"i~IIJ::;b~d-Jlh::;~'Ylfimy.J1Vi~"j~u,xuy]ll~\9l~nl"i ~"jiJ8~6'1e:J"jbbUd'Yll"j~8 6'1mU<1I~m"id-Jbb'lJ'lJ ~

th::;d-JdG'1~G'1V1m~f1l~"jo/i8V1d"jd"jd8'lJmTIh::;d-JdG'1~G'1 1'UbU816'1nl~l1

(superscalar)

bbG'1::;1'ubue:J{1.utilm.t

(superpipeline)

6'1mu<1I ~m"id-J

I-type (immediate)

26
f-type (jump) 6 R-type (register]

Operation
rs

rt Immediate Target rd
Shift

Function

Operation code Source register specifier Source/destination register specifier Immediate. branch, or address displacement Jump target address Destination register specifier Shift amount ALU/shift function specifier

13.6 / 'nLJ bLJEl~'f!mm~b~ 9 tJ'Ubb'lJ'lJmd'vhJl'Ubb~~~~'j,.I,cJlel'U


9

15Wy

MIPS R4000

557

1'U1LJti1mt

b~El1 Viq;il~-Jm.h-JUeltJ'f!El-Jq;il~-J bu'Umd'l'1l-Jl'U 1 'Ubb'Ud'Vll-Jb~:J.J 1'U1LJti1ml

~'U 1LJm:J.Jldb1'l'1l-Jl'U l~'V1~m.,l1l'U bb~l~bb1j-J~'U<1lEl'Umwl-Jl'U

rid'U'lfLJbLJEl41,LJti1mt~'U~-J~-J

1Vi~~b~tJC?i~-J~'U ~El bU'Umdb~:J.J..:Jl'Ud'U~'U<1lEl'UmWl-Jl'U 1 Vi:J.Jln ~-J~'U 'V11Elbu'Umdb~:J.J..:Jl'Ud'Uq;il~-J

b~El b~:J.Jmd'l'1l-Jl'Ubb'lJ'lJ'lJ'Ul'U :J.Jln'lJ'U'U'UbEl-J

x .:,

boih1LJ1 'U1LJti1ml1Vi

bb'Ud'VlH$i-J'f!El-JEl~Hd~l-Jn5'l<iiEl..:JlnC?i bdEl-J'O,)lnml:J.J~:J.J~'UTI 1LJti1ml

1LJti1mlbb'lJ'lJ'lfLJbLJEl~'f!m~l~'O,)~'l'1l-Jlwih~-J
9

(dependencies)
~

d~wil-Jq;il~-Jbb~~<iim;j~~El~1'U~'UGlEl'UGil-J'l
9

1'U

bb~~fill?ilbu'Umd

1'Umdbbnuru'V1l'dn'O,)~b~:J.J~'U

rid'U 1'U'nLJbLJEl41,LJti1mln'O,)~5'lfil

I?ilbu'Umdb~:J.J~'Ub'liun'U <1lldl-J , b~1El-J 13.12

1'Umdri-JV-l~md1.J~:J.Jd~

V-J~'O,)ln~'U<1lEl'U'V1iL 1LJ~-J~n~'U<1lEl'U'V1d-J 'U1LJti1mt 1 1 'V1d-i'l ~'U:J.Jl'O,)lnlTImd~'UJl'U 1'U

bb'f!C?i-Jmd'f!~l-J1TIril'V1'UC?i~lbb'V1u-J~El~bb'lJ'lJ

MIPS
dLJ 13.9a bb'f!C?i-Jmd'l'1l1LJti1mtq;il~-J ~ 1'U~V1tJ R3000 q;il~-J 1'U1LJti1ml'O,)~'lJ~'lJ 1LJ~-J~'U<1lEl'U ~ 1'U<1ld~fJ~

~El1LJ1'U'Vln'l

d-JdEl'lJ'UlV1m

lLJdbbm:J.J~dbbLJ~Jll~lG1l'V1:ru~V1~ 1'V1d-ib~Elb&i:J.J 1'Urid'U~bu'Uid-Jll-J 5 ~'U<1lEl'U ( stages) ~El 1LJti1ml

MIPS

'O,)~m:J.Jldb1 l~LJd~:J.Jlrn

~C?i~lw;'lJmdLJd~:J.Jd~V-J~q;il~-Jb~tJ 70% - 90% 1LJil1ml~n

(delay slot)

mj-JElElmu'U

• Instruction fetch : €h'Uq;il~-Jb<iil:J.Jl1'U

• Source operand fetch from register file :


, 'V11Elq;il'Udrn~l bb'V1U-JYiEl El-J~db1nm~'l'1l ~'lJ ~ ~

~l'Ufil~d~nm~'l'1l'O,)ln'~l\1mGlEl~~~ LJd~:J.Jd~V-J~

• ALU operation or data operand address generation:

ALU

• Data memory reference :

ill-J~-J<iiEld;j~ 1'U'V1UdtJml:J.J..:Jl'V1i1n lJ'U~n<iiEld;j~~-J 1'U~l\1m<1lEl~~~ 1'U 1LJil1ml bb~~ 1 'Ud~'V11l-Jmd

• Write back into register file :


w;-J~bb'f!C?i-J 'UdLJ 1~ 13.9a

5'lmd'l'1l-Jl'Ubb'lJ'lJ'lJ'Ul'UbnC?i~'U

LJd~:J.Jd~V-J~'lJEl-JbbGi~~q;il~-J d-JdEl'lJ'UlYlmn'Ud~tJ~nm'Ul'U b~~ 1 rid'U~'U~l'Ul'UlYi) b1nmj-JElElmu'U ~ (~El~1'U'V1UdtJml:J.J~l ~

60 'Ull'Ul'UlYi

(1

'Ull'Ul'UlYib'viln'lJ mdill-J~-J

2 ~'U<1lEl'U ~'U<1lEl'U~~ 30 'Ull'Ul'UlYi

q;il~-Jbb~~<iiEl:J.J~mtJ'UEln ~ bb~~

cache)

dd:J.J~-Jmd'l'1l-Jl'U

1'U~'U<1lEl'U OP,DA,

IA

n'Ubdm'Ul'U

60

'Ull'Ul'UlYi

mdb1ElC?inVi'f!q;il~-J

(instruction

decode)

5'lm~m'Umd'l'1l-Jl'U~JltJnll~-J

1-iibdmbV1tJ-J 30 'Ull'Ul'UlYi

bdmrid'U~b'V1~El~-J~El'UYI'lJn'lJmd

~l'UoiiEl:J.J~'O,)ln~I\1'f!b<1lEl41,~~'lJEl-Jq;il~-Jb&1mn'U ~ bn C?i-iiEl'UY1'lJn'lJ rrrsn

mdq;il'Udrn~lbb'V1u-JG1l'V11'lJmd

branch

n'O,)~

ElC?id~Vi'f! q;il ~-J bb~ ~md~l'UoiiEl:J.J

branch

'lJEl-Jq;il~-J~

m:J.Jldb1ril'V1'UC?i~lbb'V1u-Jmdill-J~-J

~~ 'O,)ln~1\1 mGl El11 ~ ~ 'l'1l1 Viq;il~-J 1'U cache 'lJEl-Jq;il~-J~ i+: 1~ 1'U

~
.e.'"

...
C/o

.9

<:

.:= .':l

-e-

= '.g
0
1Jj

.::

:::l b "0 d
0)

~ :::; ~
II II

'-'

'-' 0) .... ~ d '" '0 0 u OJ) '-' U '-' .:: c;l -g "0 VI d '" u c;l '-' 0) '" .:.: .:: <: c:: .S -0 ~ ?a u 0 '-' .:= ~ ,S' 0 o ~ c;l 0. .... .D .~ 0 u U '';:;; E ~ -0 ~ u '::::l d "0 u 0 d '-' :::l :::l 0. "a :::l ,.t;;
rL;

ir:

en
0)

E '-' o .:= <t:


U d

srs '-' u
U .~

'J:.

'6h

~ -;;;
v:

sc
C/o

C/o C/o

l::
u:

~ '0

'0 '0
c;l

"0

...

u ,.5 E IS .:= '-' .:: '" '-' '-' ';: g s .=

c;l

<: C;

.:.t.

s
d

.~

-b
-'J:,

0) ~ .:: u, Q

'"

~
II

-~

.5 U

a -a 3 ca UQQ
d

II
IX)

0)

e::

Q UJ IX)

IX

:::; :::; ~

,.t;;

,.t;;

'-'

::i

d IX) U u, U ....l UJ IX Q !::

es~

....l f- U Q fo:
Q

o:

rJ:i I!) ()

o
<'0

"0 ;>-.

'-'

.c
v:

I!)

~
()

Q Q Q

"0
Qj

~ ~
~;j:
Oil·

'-' u >~

'u s::
]
C1)

I!)

s::
d

"0

U ;.>-.

o::l ....l

~~

E-<

C1) ()

~ u >. u
s::
C1)

"0

::l
I!)

.....

-5
'~

"0 c-,

0)

] ~ .... <'0
'~

t;!
(lD

;;!

0..

:r" 10-;;:1 -;;:I :r"

-5 ~
s::
I!)

a>

"0 ;>-.

'-'

'0..

0..

.5 ~
0 0 0

C1)

..2:l

.....

...
M

tl"01

0.. os.

'>,

os.
0

0..

8
M

8
C""';

"0

0)

"0

>, U

"0

'-'

"0

~ d

:€ ~ u u
"0 0
;>,

C1)

"0
C1)

0 ~ ~

t;


"0 ;>,
'-'

s:

0. 0 ~ ~

558

13.6 /

i5w~ MIPS R4000 559

'Yll'UeJ-Jb&1mnUf1l~-J load 'lJeJ-J~l~-J~ OP 'lJeJ-J~l~-J i+ 1 1<J1l'Un!;m&1mn'UVl'UdtJ dltJ(;1:;b~tJ~l11'U~lldl-J

md-Jldb1'ell'UojJeJd-Jmoihd-Jl~lVl1umd l-ii-Jl'Ul~tJ~l~-J
'lJ

ALU 6ild-Jldb1~-J~(;1i1V1TI1~tJG1d-J 1ui:i-J~l~-J~ ~-Jbb~~-J

i+ 1 l.;;L'UVl'U<}1 mld-J6ild-Jldb1d''lidtJ lV!luti1mtmd-Jldb1'Yll-Jl'U l<J1mjl-Jilud:;~'YlTIrnV1


13.13

R4000 l-iib'Yl1'11'U 1(;1~~nldVli(ln1l cycle time) (;1-J 1<J11'14-JVld-JmVl~mV1tJ-J ~ l'U~m\9leJfl:v~An(;1~(;1-J1'14-JVld-Jb'lhtb~mn'U


'lJ

R3000 %-J-ridtJ(;1~d:;tJ:;nmd-JdeJumYl'm
30

(clock

'U-Il'U1m<}1 bb(;1:;d:;tJ:;nm~l-ii1 'Umd€ll-J~-JojJm;J(;1

'UeJn<lnnd' mld-JVl'UlbbU'U'lJeJ-JmdUTI'iI'Yldl'U~m~m{ ,
'lJ

(;1-J l'U~V1n~-J~'U 'YlllV16ild-Jldb11~VludtJmld-J'«il cache ~lVlw~l~-Jbm:;ojJeJd-J(;1(;1-J1ul'UG'h'RV11<J1 dU


'lJ 'lJ

13.9b

bb~Wl-J~'UG1eJ'Ubbdn'lleJ-Jmd'Yll1utilj;1'U1'U;V1tJ R3000 d:;tJ:;nmd-JdeJu'UlYl'm


'lJ

l'U dud'Sh:;tJ:;nm

bV1tJ-J1'14-J &1 eJ-Jd:;tJ:;bdm~l-iil b tJd'lJ

'UdU
'lJ 'lJ

13.9a

bdeJ-J~ln1l
'lJ

dJ'U md'Yll-Jl'U %-J~:;

~ bn~~'UJlltJ 1'U'RV1~hb&1 n'U m

~'U~m'Umd€ll-J ~-JojJeJd-J(;11 'U1:;SmG1eJ1'1:v-M~eJ 'UVlUd tJmld-J'«il ~1

cache 'lJeJ-JojJe:J:l;Jmb(;1:;~l~-JI-Cache bb(;1:::D-Cache) ~'U~-J l-iinmbV1tJ-JI'1~-Jb&1m ( l-iinmddd-JVld-Jd-JdeJu'U 1:;Sm~m{ (RF) 'lJeJ-Jd-JdeJumYl'm lYl'm 1'U'Yll'UeJ-Jb&1 n'U m bdeJ-J~lnmdbYld-Jmld-J

b~d 1'Umd€ll-J~-J

~~-J~'U 'YlllV1nld'ell'Ubb(;1:;u'UVinojJeJ:I;J(;11'U1~mG1eJ{1-iid:;tJ:;nmbV1tJ-J1'14-JVld-J

1l11'31~13.13

Pipeline Stage
IF IF RD RD

Phase
~I

Function
Using the TLB, translate an instruction virtual address to a physical address (after a branching decision). Send the physical address to the instruction address. Return instruction from instruction cache. Compare tags and validity of fetched instruction. Decode instruction. Read register file. H branch, calculate branch target address.

~2
~l

~2

ALU
ALl)

~1

+ <j.2

If register-to-register

operation, the arithmetic or logical opera tion is

performed.
<j.l

If a branch, decide whether the branch is to be taken or not. If a memory reference (load or store), calculate data virtual address.
If a memory reference. translate data virtual address to physical using TLB. If a memory reference, send physical address to data cache. If a memory reference, return data from data cache, and check tags,

ALU MEM MEM


WB

;jJ2

;jJ1 <j.2 <j.l

Write to register file.

560 unfl

13 / fl8lJublJil8SJilS::::Qa bd~,j"llmIjU1~m1d-J"il1

RIse cache
1'U~V1~ R4000 'lJ ~'U~,m~l'U&b:n~ OJ mdbb'!Ji;1'l~lbb'VIU'l 1Vim1'U1'U~~n ltJl~

~~~bG'l~~'U ltJdJ'U~~~"il~'l OJ 'lJ

m"il'VIU1'lb1m 1'Umd-51'l8'loii~d-Jfl1'U 'lJ

cache

md'VIu1'lb1mdG'l1d-Jldmbn1'l11~~1~mdG'l~1'ld:;1J1J bil(91md-51'l8'lbbfl:;mdbtJ~~'UbbtJfI'l~~~1J'U ltJill,fI'U''U~V1~ oii~d-Jfl1'U OJ R3000


'lJ

virtually indexed caches cache


bb1J1J'lI'U1'U dtJ 'lJ

~'l"il:;'lh~ LVi
,

13.9c bbG'l(91'lmdtJ~1JtJd'l tag


'lI~'l

bd~'l"il1nmdiJ1J5(91b'VI~mdru~1'l'l

1Vi~'Uboii1 mdG1d1"ilG'l~1J

cache

"il:;b1mb~n~~n 'lJ

ltJ'Yl11'U~'UG1~'U 1'U1'ld~1J'UlYlmt1(911tJ

m~'VI~'l"il1nYi'Yl1md

1'Ud:;1J1J~tJbtJ~{\,tJillm! ~~'VId'l1'ld~1J'U1Ylm

(superpipelined

system)

m~(91bb1~\]nU1d-J11oii'VIm~fI~'l 1'UltJulm! 'U1Vl"m bb~fI:; ~'l b~~nl1 R4000

~1~mdbb'Vldn~~G'lbG1~~boii1ltJ1'Ud:;w:i1'lbb~fI:;~'UG1~'U 1~ btJ'U'VIm ~ b'Yi1'll~'lm1d-J~~ruru1ru~ ~

~'UG1~'U1 WlftJ btJ~{\,tJulm1"il:;'Yl1'l1'U , btJ'U~n~'lI~'l~tJbtJ~~tJillm1

(degree of superpipelining)
2 dtJ OJ

b'Vlfll'Ulf1~l'U

~m1d-Jb11'l1~'l~n~'lI~'l'lftJbtJ~{\,tJillm!b'Yi1n1J , R3000 1(91~1oii'lftJbtJ~{\,tJil1f111 , 1'U~V1~OJ &11bb~(91(91~~ b tJd:;mm·.JfI'VIU1

13.10a bbG'l(91'lmdtJ~1JtJd'lltJil1f1'U''U ,
OJ

~'l~lm'lG'l~l'lfl~l~n1J~bbG'l(91'll'UdtJ

13.9c
~'U~~md~~mb1J1J 'Yl11ViG'l1d-J1db1'Yl1md md'Yl11 Vimde:l1'Ubbfl:;

R4000 l~~mdtJ~1JtJd'ltJd:;~'VlTIm~ ,

1V1~ri'l~'U ltJ~n

(adder)
u

1 V1~'lI'U1(911 'VIb1!~'U bbfl:;G'lld-J1db1'Yl1'l1'U 1~~ ~'l~'U 1~ b11~'UG'l~'l b'vh mdtJ~1JtJd'll , 'UGi1'U~'U1~

AL U

uri

iJ'UYinoii~d-Jflb11~'UbtJ'UG'l~'lb'vh OJ ~V1~ R4000


'lJ

~'lbbG'l(91'll'UdtJ 13.10b 'lJ

tJd:;n~1J~lultJul,m!"il1'U1'U 8 fi1~'l~~~d-J'l n'U

8 ~'UG1~'U ~'l'VId-J1~m1d-J11 G'l1d-J1db1e:l1'Ufi1~'l


ltJil1f111"il:;'Yl1'l1'U~lUm1d-Jb11 2 ~'UG1~'U

boii1ltJlll'U ltJul,fI'U'1~d-Jlnil'l ~~'VId'l1'ld~1J'U1Ylm

~'UG1~'U~'l 8 ~'UG1~'UtJd:;n~1J~lU ~lbb'VIU'l~~~bG'l~~'U'lI~'lfi1~'l~~~'lmd"il:;b1nGi'lltJ~''l 'lJ 'lJ

• Instruction fetch first half:


'VIU1~m1d-J"il1

cache

~1'VI~1Jfi1~'l

(instruction cache)

~~~d-Jn1J~G11d1'lbm~1JbYiU1J

~1 bb'VIU'loii~d;JfI (translation

look aside buffer)


'VIU1~m1d-J"il1

• Instruction fetch second half:


~ btJ'Ufi1~'l~~~'lmd
, ,

cache

~1'VI~1Jfi1~'lGi'l~fli'i'~TI

1'Ub1m b~ mn1J~G11d1'l

btJ~U1J bYi 1J~1 bb'VIu'loii~d-Jfl1Vi~fli'i'~TIdJ'U ~ 'lJ

~lbb'VIU'lfi1~'lYibbYf"il~'l~~nd-J1

• Register file:
OJ

bil(91b'VI~mdru

3 ~~l'l~'U~~~d-Jn'U~~ l'l1oiJ(91bbli'l (b'li'U fi1~'ld~~'lmd~fli'i'~TI"il1n

"

o fi1~'l"il:;b1nb1~\91d:;Vimbfl:;m1"ilG'l~1J~~'U

fi1~'lrl~'U'VI~ld)
o 'Yl1mdG'l~1'l
'lJ

tag

~1'VI~1JmdG1d1"ilG'l~1J'VIU1~m1d-J"il1

cache

o e:l1'U&11b1nm:;'Yl1d-Jl"il1n~~mG1~{\,vJ~

'"-'

"3 B IJ':,.'
.J::

...
"-' "-"

..r: <= 0 VJ .... u E !.,Q u» 0 ~ ..r: ..r: J: ::l u


0;)

"3

'0

'SO

"3
.~

~~

BB

"0

'Ji


0
::l


o
::l

<=

'" u e c '" c
<=
1) Q

<.)

..r: o

<.)

..r: .s: "0 ~ <=

"3

~
Q

...

!) 00 <.)

~ ~

bbB iJ; <)

..c

c,

,g
0
''J;.

.s
II

u,

u '" '" ~ 2 E t:; '" S C;S u t;; '" .s .s Ci Ci c ~


(j

U ,':2 ..c ..c:: ..c ~ uuu

U d

'-Il

I.l.J s::: ~ ~ >< u,

11

U u,

Ci Ci t-<

1/)

c= c= ..,

c=

1I~

Oil'"

~ ~ ~
u

«0

-;;:I

~(OJ
-;;:I -&

::::

u C'5.

~ ~~ ~
c= c= c= to)

~~

8 c
r.

0:::

"0

.~

~
1I~ 1I~

~g
g.
u
'+0

Oil"

of

5
::::

~ «0 ~

"'-;;:I
-;;:I

,S ..... ~
u

~II"~
-;;:I ;;::I ~II" -;;:I II"

0.

= E
E

r:

"0
Q
<.)

(]

~ u

,.., u
0

=
CC::I

,=
<.)

u
C-

"i)
0

... M ...
0

'5.. .... Q)
r.I:l
.~

(] ;.-.

o:l

~ u

'5.
0 "1'

II";J

0:::

_-.,

'-'

.0
'-'

561

562 unrl

13 I fl()lJubllilosmS:::lJa

RIse

o fhdJu~l~-.:J1.h~IJl'YI o thUU~l~-.:J o tll bUU~l~-.:J

register-to-register
VI~eJ

VlU':W

ALU

o;)~'Yllmd1.h~a-Jll:l~fI

load

store

o;)~'Yllmdf1lUlrnG1lbbVlu-.:J~eJ~bG'{~eJu~o/IeJ-.:Jmd '!J bbVlU-.:J~eJ~ bG'{~eJWlJeJ-.:J~eJ'!J bUlVla-Jl tJ bbl:l~ ~ '!J

branch

O;)~'Yllmdf1lUlrnG1l

Gldlo;)G'{eJ1JdeJu 1'lJ 'lumd

branch

• Data cache first:


fldla-JoJl

G1lbbVlu-.:J~eJ~bG'{~eJU'lJeJ-.:J.neJa-Jl:l~o/IeJ-.:JnldO;)~bimi-.:JltJiJ'-.:JVlultJ '!J '!J '!J

cache

~lVl~1J.neJ~1:l

(data cache)

'V1-¥eJa-Jn1J~Glldl-.:JbmtJ1JbVitJ1JG1lbbVlU-.:J.neJ~1:l

(translation

lookaside buffer)
VlUltJfldla-JoJl

• Data cache second:

cache

~lVl~1J.neJa-JI:lG'i-.:J~I:lij''V1IT~bUU.neJa-JfI '!J '!J


'!J

~o/IeJ-.:Jmd 'lublmb&imfi1J~Glldl-.:JbmtJ1JbVitJ1JG1lbbVlU-.:J.neJa-J1:l , ... OJ = 'YIbb'YIO;)d-.:JeJeJna-Jl

'lVi'NI:lij''V1ITbUUG1lbbVlU-.:J.neJa-J1:l '!J

• Tag check: • Write back:

'YllmdGldlo;)G'{eJ1J

cache tag

bbl:l~'Yllmd

load

VI~eJ

store

~1:lij''V1IT~lJ)~mlnmdtJd~ml:l~I:lO;)~bin1:iuVinl:l-.:J '!J

'lu~~mGleJflyj~

SPARC (Scalable Processor


1J~~

Architecture)

Vla-JltJi'i-.:J G'{mi:lGltJmda-J~nlVlw?11<?ltJ

Sun Microsystems.

~Yl~'lUGld::;1JI:lU~J)~1JmdWC?JJm<?ieJa-JlO;)ln

Berkeley RISC-I

machine

bb<?iiJ'-.:JfI-.:J , 'l-if'J5<?lf1l~-.:Jbm::;md~<?lll-.:J~~mGleJ.fln~b~tJ-.:Jn1J'lJeJ-.:Jb~a-J

SPAR C

'l-ifb'YIflil,flVlib<?il-.:J~~mGl 24

eJ~

(register wind ows)

bb<?iI:l::;VlU <?il-.:JtJdm eJ1JJ)l tJ l 2 i'i-.:J 32 VlUl<?il-.:J 136 G11

~~mGleJ~oJlU1U

G11 1<?ltJ5'JoJl'UdUVlul<?il-.:J~~mGleJ~bbGln<?il-.:Jnu~-.:Jbb<?i

dtJ
'!J

13.11

bbG'{<?l-.:J~YltJ~tJd::;neJ1JJ)ltJVlUl<?il-.:JoJl'UdU '!J 13.2

8 Vlul<?il-.:J~m~mGleJ~~-.:JVla-J<?l

<?l-.:J~lJ)mhl11luvh.neJ

oJl'UdUVlUlG1l-.:Jbbl:l~~~mGleJ~'lJUl<?ld5'JfldlMVla-Jl~G'{a-J 0 i'i-.:J7 bUU

'lUnld

'l-if-.:JlUO;)~-.:J ~~G'{bGleJ~a-Jlml:l'lJ e)l-.:JEl-.:Ji'i-.:J U 'YIn1 'V1d~btJeJ~ lJi1 , 'luoJl'Udud ~~mGleJ~a-JltJbl:l'lJ

global register

bum~G'{bGleJ~G'ilunm-.:J~ma-Jldbi ml:l'lJ 0 i'i-.:J 31 l'V1d~btJeJ~U

'l Ubb<?il:l~ltJdb'lfG'{O;)~a-JeJ-.:J b~U~~mGleJ~bG'{~eJUVla-Jl 24 i'i-.:J 31 bUU~~mGleJ~~'l-if-.:JlU~la-JnUd::;wll-.:J

bbl:l::; l'V1d~WEl{~b~tJn

'l-ii1'V1d~W~U

(parent procedure)

tJm~tJnll l'V1d~btJEl~U

"ins" bbl:l::;~~mGlEl{
bm::; l'V1d~btJEl~~bin '!J

Vla-JltJbl:l'lJ 8 i'i-.:J 15 bUm~mGlEl{~'l-if-.:JlU~la-JnUd::;Vlll-.:J

13.7 I SPARe

563

oiff:l'Ut11Jn1J~~mGlf:l1'lJf:l-l'Vlib(~hJ5'U1\\)mGlf:l1'Vl&-llf'Jb(;1'lJ n-l 32 b~f'Jn1l "locals" 16 ~~~bGlf:l1n~&-I~~loifb%'V1l:;mf'J l'Ul'V11;bf'Jf:l~WllaJl~-ll'U+mn1J ri'dlu (\9IGll1l-l U1:;nf:l1J)

dJ'U

1'V11;bf'Jf:l15'U ~-l~l~mhd

l'UVI'doirf:l12.1 ~~mGlf:l1~l'U'd'U 8 cjh~loif-ll'U1'd&-ln1J'V11;bf'Jf:l15'U-tt 1 Ul'il:;b~tJ-l'V1f:lGif:lm1 loif-ll'U

"

13.4

Physical registers

Logical registers
Procedure A Procedure B Procedure C

• •


• •

• • •

• • •

564 unrl

13 / flvlJubwwSVlS:::n8

RIse

~1l 13.12 b1Ju5nm'V1vn1-.J~m'!~-.Jmd


procedure)

1m~mG1eJ1-1ieJuYi1Jnu

1'V1d~bt.JeJ1~b1t.m (calling
"ins"

1Gioiim.;!~~b1JU'V1ldl$"JbG1eJ1~-.J "outs" 1~G'!bG1eJ1 1U'llru,~~1'V1d~bt.JeJ1~\ln 1u OJ~:J..JeJ-.Jbi4u1~mG1eJ1n~:J..Jb&1mnud1u 1~G'!bG1eJ1


current window pointer (CWP)

b1t.m1~

(called procedure)

11ldb<zrm<zreJ1OJ~~mi'loiim;;lm'l.-'I'~hd:111u~d;b1t.mll

~-.Jbn1JeJ~1u1~G'!bG1eJ1bbG'!~-.JG'!mu::;~eJ processor status register (PSR) 'lIeJ-.J'VIiblGil-.J1~G'!bG1eJ1'l1eJ-.J 1'V1d~btJeJ~nl~-.Jblnlld::;:J..Jd~e-.m


'"

~-.JOJ::;;~<illbb'VIt-b-.J

WIM

13.7 / SPARe ~mi1~tJmdd


q

565

.. ~~m~1)1'lJ1)..:J~Y1tJ ~ SPARC l:J.J~ml:J.JoJlbtJ'U~'II::;~1)..:Jril'Ubb~::;i:i'U-Yinoii1):J.J~ ~ F 1.j{['V'Jd~btJ1)1 'YlllVi'nld'Yll..:Jl'U'lJ1)..:J TiJdbbm:J.JGllbbJJ~m'jj-l loii

l'U1~m~1)11'U'Ymf1~..:J~~nldb1tJn ~ml:J.J.Jiu.ji1)'UU1)tJ~..:J 1 Vi'~JJd::;R'YIITm'V'J

b;i1)..:J'IIln 1JJdbbm:J.JGl"dbbJJ~m'jj-l~1)..:Jn..:J1mY1tJ..:Jnld 1(91u1:J.J~ 1)..:Jn..:J1~1 'Ub41)..:Jb~ tJdnUnld

local

1~m~1)1

1<Jl1unldrllVl'U(911~m~1)11

VI1oii..:Jl'U1 'U

d::;WJl..:Jnld'Yll..:Jl'U'lJ1)..:J 1'V'Jd;btJ1)+Yi11JJ
ov

if~illd~
q

.
q

~ldl..:J

13.14 bb~(91..:J'lf(91~l'~..:JG1lVlW~Y1tJ 'lJ ~lif..:JJJd::;lJI'YI

SPARC

~l~..:Jr;:l1'U lVlru-5l..:J~..:Jfi..:JGllbmm::;'Yll~btJ'U 'lJ


cv

1~m~1)1b<Yh~'U dJJ uuu ~ ~..:Jd'

register-to-register

-5l..:J~..:Jfi..:JGl1bJnm::;'Yll

3 Gl1 ~1)~1'U

Rd

bb~::;

RSI

btJ'Unld-5l..:J~..:Jfi..:J~~~b~1)~

1(91tJ~

S2

m'llbtJ'Unld-5l..:J~..:Jfi..:J~~~b~1)~

8nGllVlii..:JVl11)-5l..:J~..:Jfi..:J~l ~rllVl'U(91~ll'5'l

immediate operand hardwired

'lJ'Ul(91 13 iJ~nl<Jl

Ro btJ'U~~~b~1)1V1b!f1'jjnm)
d'iJ bbUUd'

Vi'btJ'U "0" (<Jl1tJ1ITnld

'Ylll Vi'~~l btJ'U "0" ~~1)(91

~ml:J.JbVl:J.Jl::;~:J.JG1lVl1u 1JJdbbm:J.J~11JJ nld'Yll..:Jl'U l'UVlu1tJ

~~oii1):J.J~r;:l1'U lVlrubtJ'UbmoJl'U1'U ~ ~
q

bb~::;~lf1..:J~

ALU

~l:J.Jldbl'~(91btJ'Umi:J.Jl<Jl~..:Jd'

• Integer addition (with or without carry) • Integer subtraction (with or without carry) • Bitwise Boolean AND, OR, XOR and their negations • Shift left logical, right logical, or right arithmetic
~l~..:J'YImil~..:J
q

tJml'U~l~..:Jb~mnumd

shift

m:J.JldblrllVl'U(91d1)'U

l'lJnld'Yll..:Jl'U.$i..:J

4 bbuul<Jl

(ZERO, NEGATIVE,
'lJ

OVERFLOW, CARRY)

Gl1b~'lJ"'ill'U1'Ub~:J.JbbUU

~bf1~1)..:JVl:J.Jlmmbb~(91...J1)~l'Ud'iJ'YIf11):J.J'V'J1i\b:J.J'Ur1'lJ'Ul\9l 32 iJ~ 'lJ 'lJ 'lJ ~l~..:J

load

bb~::;

store
bb~::;
I I

b<Yh~'U~~nld-5l...J~..:Jfi...Joii1):J.J~ l'UVl'l--b1tJml:J.J"'ill ~ oii1):J.J~'lJ'Ul(91word (32 iJ~), ~

~q;ilif..:JbbtJn

Gll..:JVllnG1lVlWnld bb~::;

load
L

store

double word, halfword,


I

byte

G1lVl1U~lif...J.yhnmnu

halfword,

bb~::;

byte

~l:J.Jldbl'Yll..:Jl'Unuoiim;J~Yi~

bf141)..:JVl:J.JltJVl11) :J.J~bf141)..:JVl:J.JltJnl<Jl 1 'II::;b~:J.Jr;:l1'U~bVl~1)l'U~~~b~1)1'lJ'Ul(91

oii1)d;J~~~bf141)...JVl:J.JltJ'II::;btJ'UbbUU

sign extended
32 iJ~

$11)

32 iJ~ ~'U<JlltJiJ~bf141)..:JVl:J.JltJ'II'Umu.$i..:J

bbGlnlbtJ'U

566

unf

13 / InElUUi'JWl.ElSVlS::;lJa RIse

OP

Description Load/Store Instructions

OP

Description Arithmetic Instructions

LDSB LDSH LDUB LDUH LD LDD STB STH STD STDD

Load signed byte Load signed halfword Load unsigned byte Load unsigned halfword Load word Load doubleword Store byte Store halfword Store word Store doubleword

ADD ADDCC ADDX ADDXCC SUB SUBCC SUBX SUBXCC MULSCC

Add Add. set icc Add with carry Add with carry. set icc Subtract Subtract. set icc Subtract with carry Subtract with carry, set icc MUltiply step, set icc

J ump/Branch Instructions
BCC FBCC CBCC CALL JMPL TCC SAVE RESTORE RETT Branch on condition Branch on floating-point condition Branch on coprocessor condition Call procedure Jump and link Trap on condition Advance register window Move windows backward Return from trap

Shift Instructions
SLL SRL SRA Shift left logical Shift right logical Shift right arithmetic

Boolean Instructions
AND ANDCC ANDN ANDNCC OR ORCC ORN ORNCC XOR XORCC XNOR XNORCC AND AND, set icc NAND NAND, set icc OR OR, set icc NOR NOR, set icc XOR XOR, set icc Exclusive NOR Exclusive NOR, set icc R S

Miscellaneous Instructions
ETHI UNIMP D WR IFLUSH Set high 22 hits Unimplemented instruction (trap) Read a special register Write a special register Instruction cache flush

13.7

SPARe

567

Mode
Immediate Direct Register Register indirect Displacement

Algorithm
operand = A
EA=A EA=R EA EA

SP ARC Equivalent
S2 R,,+S2 RS1' RS2 RSI + 0 Rs, + 52

Instruction Type
Register to register Load. store Register to register Load, store Load. store

= (R)

= (R)

+A

1TImdTllV1'U(9J~l ,i'U~eJ

bbV1U-.:J~eJ~'UeJ

n bV1iteJ~lnnl'~

1.ji1~ rlb<ileJ1~::;dJ'UbbUU l<?l~lmil

displacement
~ln~lbbwu-.:J~

~lbbV1u-.:J~mj~1-.:J'lIeJ-.:J~lbbV1u-.:J~1f1nm::;'Yh ~ ~ mh1~eJ

displacement

e)l-.:J~-.:Jn-.:J l'U1~m<ileJ1,x'U

EA :::: (Rs1) +

S2

(S2 (S2

dJ'U dJ'U

immediate reference) register reference)


U1-.:Jd"eJumd"'Y1l-.:Jl'U'lIeJ-.:J l'UV1u111

EA ::::(Rs1) + (Rs2)
1 urmmrm ~l~-.:Jbfl~eJ-.:J ml:I-JoJl

load load

V11eJ

store

~::;~eJ-.:J bv1:I-J~'U<ileJ'UVl b~lj-b'ih lul V1U111

l'Ud"::;w:h-.:J~'U<ileJ'U~r!eJ-.:J V11eJ

ALU

~::;'Y1lmd"~l'U1ru~lbbV1U-.:Je)l-.:JEl-.:J

rm

store

~-.:J~::;bil(9J~'U l'U~'U<ileJ'U~r!l:I-J

1TImd"e)l-.:J~-.:Jbbuub~md' 1<?l ~-.:Jbbrl(9J-.:J

fieJ'U'iil-.:Js:lml:I-JfI~eJ-.:J~1:I-Jln l'U<illd"l-.:J 13.15

bbG'1::;r!l:I-Jld"m.b:I-Jlloiil'Umd"rl1l-.:J1TImd"e)l-.:J~-.:Jbbuu~'U

~Ylll ~

SPARC

ns:li\'mjrutY\f1~lllfl~-.:Jn1J~Ylli 13.13

~ MIPS R4000

,i'U~'i)

rm l.jidUbbU1J~l~-J ~ ~lV11U~l~-.:J ~lWTIJ~lif-.:J

'lI'Ul(9J 32 U<iI~-.:Jbbrl(9J-.:J ~ l'UdU

'Y1n~l~-.:Jb~:I-J~'U<?l111 M(9Jd"::;Virl'll'Ul(9J 2 U<iI q ~bbe.J-.:JeJ~l'U~l~-.:J,x'U'l

rf1'U lV1b!!M(9Jd"tVirld'~ttJm.blth1:I-Jnuu<ill~(9Jd"tVirl~'U'l

CALL instruction
~m.jbbUU ~

oiJeJ:l-JG'1 U<iI~bV1ReJ"il::;f1mGi:I-J<?l111U<iI "0" ~nrleJ-.:JU<ild"1:I-Jn'UdJ'U~-lbbV1U-.:J ~ 30 ~ 'll'Ul(9J 32 U<iI l'Ud"UbbUU'Y1f1'i):l-Jv{~b:I-J'Uvl ~ ~ ~l~-.:J~-.:JV1:I-J(9J"ilt

PC-relative address (alignment)

tJn~(9J~lbbV1U-.:J ~l~-.:J

lVi<ild"-.:Jnu~lbbV1u-.:J

word

l'UV1u111ml:I-JoJl 4

Branch

Ud"tneJU<?l111b'll<iloiJeJ:l-JG'1'l1'Ul(9J 4 U<iI~lV11Umd"UeJnrlm'Ut~-.:J ~

uuu

(ZERO, NEGATIVE,
"0"

OVERFLOW,

bbG'1t

CARRY)

oiJeJd;JG'1~n 22 U<ild"1:I-JnUU<iI 'll'Ul(9J 24 U<iI

~n 2

U<iI ('Y1l-.:J<?ll'U'llTI) '\.l,l:I-Jll.jibtl'U~lbbwl-i,-.:J~m.j

~ PC-relative address

568 unfi

13

flClUUi::HVlClSVlS:::Q8

Rise

Call format

21 Branch format

22

SETHI format

Floatingpoint format

General formats

.."
~filbUU "0"

'311 13.12

'3'l.lbt'l.J'l.J~hli.:l'1lel.:l

<li~lI

"

SPARe

lUdJJbb1J1J'YlflEl:J..J'V'l~h:J..JUr1'~ dJJbb1J1J~Ylbf'i'jji;hv'j~mil~~ ~ ~ ~l~~~El~~l:J..JV1~~~l~~ ~

branch

~El

"annul

U~l"

b~Elu~l'd

branch

"il::;b1m.l,lb'ihJJd::;:J..J'd'~v.J~LulJJul,G'n1bi:'1':J..JEl ~

'hJ1lv.J~'lJ8~~l~-J RISe ~dlJJ

branch
(n~ldl;luvb~8

~U"il::;buu8~l-Jld 13.5)

~-JV1:J..JltJ~-Jnldt1l El~l-Jldn~l:J..J b~8

delay branch
U~~filbUU

1Ubfl~8-J "1" ~l~-J

annul

~El~~l:J..JV1~-J"il::;b1nUl:J..JlJJd::;:J..Jd~v.J~ ulJJulm1n~m~8 1 ~ ~

rm branch

~u

dll?l~U"il~-Jb'Yh~u

~Yl tJ"il::;t1lnldbbnl'lJ ~
annul
G'1~U 1 U~

v.J~'lJEl-J~l~-J~U

bbir1l ~l~-J"il::;b1n~luboiill,JJl11 ~

UlJJulm.1:bb~dn~l:J..J l~~ltJ~u 1Unldb~:J..J~l~-J

~JJd::; ltJ'lfubiiEl-J"illn ~8~~l:J..JV1~~~l~-J

t1llv(lJJdbmd:J..J~dbbJJG'1m'jjlt1l-Jlu

delay slot

branch

~l~-J~bUUbi1lV1:J..Jlt.J'lJEl-Jnld

branch

G'1'l:J..Jldb1

13.8 / I,.bd--Jll~lnu
'iI

UOWlUH\lS:::1'I:h\l branch
'iI

RIse

uae

else

569

delay slot

1~b'i;1d--J~ bd~-J'oJlnrhnld

ldJbilC?1~u

f1l~-Jblhv'ld--JltJ~u
'iI

"i)~~lmdnnnr1l~C?1eJeJn f1li1'-J

l1.Jl~

bVl\9l~Si~b'VJf)uq;)'dnm.l,ld--JllolibdeJ-J"i)ln<ii~d--JSi'VJl-J~D&l'I"J'lJ1l 9 d--Jlnn1l 50% b~d--JeJ

branch
f1l~-J

"i):;bnC?1nld

branch

SETHI

buufil~':l'~bq;J'jj~l~lumd

load store

Vl18

store
'iI

<ii~d--JSi'llUlC?132
'IJ 'iI

1J\9l
cv

f1bU~d--J1J&ldnm1,ld--Jllolilumd v
'1

load

Vl1eJ

G1lbbVlu-J~eJ~Vl~8<iieJd--JSi'llUlC?11VlnJ lu~~m\9leJ~~"mf1l

fil~-J
v

SETHI

"i):;r1lVlUC?1f1l22 1J\9lbbdn 22

(high-order bits)

immediate
~ltJ1J\9l "0"

'lIeJ-J~b\lnm:;'rll'llUlC?1 Yl-JVld--JC?1

1J\9l bbSi~b&ld--J~n 10 1J\9l~bVlf\eJ

(low-order bits)

btJunmVlmtJtJd--Jlbb~d

~bbUd lud--Jlumd~<uJUl~mLl\9ltJmdd--J

bbSi:;md~C?1dl-J lm-J~~l-J mTImd

'lIeJ-Jl1.Jdb'l1m'l1eJfl~S:jmld--J~'lJ~eJu~udJueJ~l-Jd--Jln r1lVlUC?1G1lbbVlU-J~eJ~b~d--J~U m~m\9leJ1VJbq;J'jjd--Jln~U lvhi1u~u~u'VJl-Jmld--J~C?1~~mbUd

~u$\eJ

S:j-oJlUdUf1l~-Jb~d--Jd--Jln~U ~mi:l\9ltJmdd--J

bbf1:;riW]

RISe l~bb~C?1-J

uuu else
~m'ilUmd'rll-JlU'lIeJ-J~mi:l\9ltJmdd--J

""

l1.J"i)lm~d--J ~mu'VJl-Jn'lJbbUd

lud--J~bnC?1~un'lJ~mi1\9ltJmdd--J

""

RIse

l~bb~C?1-JlVid4ubtJu~8-Jmid--J

$\8 bbSi:;mld--Jb~d

• Quantitative:

l~S:jf)dld--J'l"Jmmd--J~"i):;b1.J~tJ'lJbYitJ'lJ'lIUlC?1'l1eJ-J l1.Jdbbmd--J

Lumd1.Jd:;d--JdSiNm:;Vl1l-Jbf1~eJ-J

RISe
LuJflu~l-J~

bbSi~

else

~S:jmld--Jmd--Jldn

LUd:;~'lJb~mnU l1.Jdbbmd--J

• Qualitative:
m'jjld:;~'lJ~-J
'IJ

md\9ldd"i)~8'lJ bm:;md

b'lfU md~U'lJ~tfumd'rll-JlU'lIeJ-J

loli1.Jd::;1H'l)ub'VJf11ulSi~

VLSI LV\1~d--Jln~~C?1
,

-JlU~dU

LVlqj~b~mo1i8-Jn'lJmd1.Jd:;d:Jufil'VJl-J1.J~d--JlbU

(quantitative assessment)
eJ~l-J hn\9lld--J5:ii1b!!Vll~bnC?1~U

~m::;Yiln'lJbf1~eJ-J

RISe

S:jbbUdlud--J~"i)::;~U'lJ~UUbbUd'VJl-J-d: ,

b~mn'lJmdb1.J~tJ'lJbYitJ'lJ •

$\eJ

ldJ~ld--Jldn"i)::;Vllbf1~8-Jf1eJd--JV1db\9leJ~u\9ld~QSi d::;~'lJ b~mnu ~md--Jldn bWtJ'lJbYl tJ'lJnu 1~

RIse

bbf1~

else

~S:jmld--Jmmdn

LU

ldJ5:il1.Jdbbmd--Jd--Jl\9ld~lU~'OJ::;Uld--Jlb1.J~tJ'lJbYitJ'lJnul~8~l-JbtJUDddd--J bWtJ'lJbYltJm~~ueJ~n'lJ~n'jjbU::;'lIeJ-J
'lJ

""

uu$\eJ

NSimd

l1.Jdbbmd--J~uld--JlLoli

570

unif

1.3 I V}DlJW::J1vIClSiilS:::U8 RIse • ldJG1'ld-ll'Jblbb~f1~1.'1m~'YI1J'lIf)'lm~(9lbn~ hhbbmd-l<iilbb1J1.'1.f1l'jjl • m'Jbm~1Jb'YIHlJf11Jbmf)'l


.=t
IV

f)f)f1'illf1~1.'1m~'YI1J~bil(9l'illf1'Yfmr~

lum'Jb~~u

.d

6]

bWm~n1.'1

byje:Jf1l'J'YI(9l'i1e:J'lb'Yh~u'kJl'liG1'1l'l~umbyje:J

"

RISe d-.lmf1(9l'llUf1'lJbme:J'lrle:Jd-.l'Vfdb~m'YIG1''Jl'l'llUd-ll
IV

P>.

cv

"""

6'd

2/

J'

loii'llU'il1'l

GilUf1l'Jbm~'lJbYi~'lJ'YIl'lrlru,.nl'V'l

(qualitative assessment)

~U ~Ue:Jthl'lJ'l~bl1J'J~G1''l~

"

Yicile:J'lf1l'J

~'i1m'J~f1'jjlGilu

lvmj~'lbb~f1~l'lnue:Jf)f111J~ld-l1~bllh~G1''l~'lIf)'l~1%~

n~ld-.l ~f) ldJUlUd-lld

~e:J~bbrn'J~Vlll'l l

RISe n'lJ else lJib~d-.l~'il~'ill'lVll~ l1Jbdm'illf1b'YIrllul'i1~


~U~f) ~f)mld-lVlUlbbUU'lIf),j-oJlmU'YI'JlU~G1'b~f)~ lunmb~mnu ~'V'llum~f1'i1

'"

mh'll'J

~,jfm,jd5'lbbm'YIl'l~'il~'Jld-1nudjuVld,jb~m lu~'V'lb~d-IG1',j~u

else

n5'lmld-.lcilf),jm'J~'il~b~d-I1J'J~~'YITIm'V'llVi~'l~U

"

'J~1J'lJ

RIse

n'il~5'lmld-.l1'lJsife:Jumf1~,j~u

bbnUl1)Vll b'li'\.-l, f1l1b~d-.l-oJl'\.-l,1'\.-1,~~G1'b~e:J4 bb'i1~f1l'JlVimld-.l~lfll1)n'lJ

"

~'l lJi~lb'Ylrllul'i1~'lIe:J'l l1Jlilm.t

RIse

l1Jloii

"

You might also like