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

I

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

4

4

--

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

Jbl~m~~'lIe)-J 1JJ~bbm~ (b~t. ~~~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 .} Memory-Reference Weighted Pascal C 14'7:) 33c/.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 .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. Pascal C ASSIGN LOOP CALL IF GOTO OTHER 4"01 )/0 3HfX) 3(~(j Machine-Instruction Weighted Pascal C 13(X) 1}(}.jf~~tJ~nm 1'Um~JJ~~~d~~~'Ul'U~ff<J1. 26~ltt 5 (x) IS')'.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 o n 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. 1VfYll-Jl'U l~e)~l-J~JJd~~'YITIm'V'J 1Vfb~'Ull~l~-J 1<J11.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'\/'. 32 (YO 33(~1t:. 2Y"j(. 6% 42(~{J 31 'X. 21% /0 lOJ 12'~~) 43% 3t~f.0 1 1 (x) 3f}'iJ 45% 13'?h IQ' 10 20/0 .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. Dvnamic Occurrence . lOl ..() 44(}b 71}~} 15'X.

. v bb~ll'l1il...:J 'l 'UJll'fj-ld~~'U~.:J bbG'1~~m:l-J:l-Jlf1rucJ1'd tJ -.:J oii8:l-JG'1 'l'Uf18~:l-JU~.1~l.:Jbnq] 'IJ 'IJ 'l'U'lIru~~nl~.lG'1~bbq]nqll.. Pascal ~~nldeJl...1'U h 'l'Umd~n'fj-ll~tJu8tJ:l-Jln &hblnm~'Yll~blneJl.:J&h~nm~'Yll (operand types) OJ~~ml:l-J~lci1b1! btl'Umil.1(91..3 v-.........~lVl~'U~V1 tJ Motorola 68000 b~8 'l <ii'l'UmdVll 'IJ q.:J~lVl~'Ubf1~8...~m:l-J 'l'U q]ldl.........:Jl'UnldeJl.Jl'U'd'U bbG'1::...J&l'dbbJJd'l1il..1(i1.)l~...)l~.(91'l18...:JJll'fj-l bf1~8..:JcJ1~md..:J'l 'IJ oii8:l-JG'1 'IJ 1:lnd'd'lJd'd:l-J:l-JlOJlnmdil.:J &l'dblnm~'YllJJd~bJl'Ylm~bdtJVl~81m.JJiJ...:J b f18:l-JV1'dbq]8~'l1il.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 l 1JJdbbm:l-J~l'vj~'unld'Yl(91.........Jl'U'd'Uq....1.....(91~'UmOJ 'lViv-..:J8.:J hnq]l:l-J bf1~8..:J bvh....:JJll'fj-ld~~'U..x'U 'IJ 'IJ variable) ~'lI8'Ub'llq]md mdeJl...........(i1'U8n-..mdeJl...)l~......:Jn..:J 'IJ 'IJ v-....:Jdbb..:J8....:J) ~....:Jn'U88n ~ btl'U&h'U8n md~n'fj-litlcJ1'lViv-..:J 'lVib~'Uml:l-J.:J8.:J) bn(91OJlnnldt·boii8:l-JG'1 'l 'Uf18~:l-JU~.{) Average 20(}~) 55 'X.:Jb&imn'U (normalized) 'IJ b~8 'lVioii8d.:J8..Jl'll8...:JVlU'dtJml:l-J-..:Jq..:J 13...(91'l18.....:J~bn(91~'U ~dl(91~'U 'l'U'Yll'U8.1(91....:J lcJ1bb....:JbbG'1::...Jl ' ~8l'Umdboiil 'IJ hlq]blJJd::.:J bbG'1::.lG'1~'VIJTI 'l Vi'Yldl'Un.:J..21cJ1bb..:J ml:l-J<ii'U<ii8'U'lI8..:J(i1dd'l1U Vl~8 Pascal Integer constant Scalar variable Array/structure 16(}....:J~mdeJl......:J8..(91dOJ~btl'U&l'dbbJJdYl8. 58~) 26uAJ C 23 (X) 53(}b 24°.1.:JbbqlG'1~q.:J'lI8..:J&hblnm~'Yll'l1il.:J 'lVib~'U 'l'Uq]ldl......:J~'U (local 'l<ii.....2 q]ldl.:Jbf1~8.)l~.:Jnoii'UVl~81'VIJd~btJ8~Vl~...:J~~mlOJ~..:Jbf1~8.:Joii8:l-JG'1 .:JJlltJ 'l'UY1..jG'1 'l'Uf18~:l-JU~~bbG'1~~Vilbb..1(91.:J 13.18(i1f1i18...18.:Jun~'U lcJ1~'Uml:l-J.:J-.lG'1~'VIJttcJ1bb..)l~..:J Patterson b~mn'U'l1il.:Jf18:l-JV1'd bq]8~ fll b%~ tJ'lI8.:Jq.:J~(91q.:J JJdbbm:l-J~b~tJ'UcJ1'dtJJll'fj-l 1 C bbG'1::....hln[)mdrud I V!rua)Juffiiib1t1uEhJmst1s::.l3.:J8.....1G'11JJdbbm:l-J 'IJ oii8:l-JG'1 'l'Uf18~:l-JU~~bbG'1~Vil 'IJ 'IJ (1:lnr1'd..)l~.)J:JaCJavhctHVl~EhJ ~...:JJ'lVlun 1(91tJq.1~l..:J 'IJ 'lI8.. 25 yo t ..lG'1md~n'fj-l'll8..)l~.:JVlU'dtJml:l-J-...:J f1~8.. 'IJ 'l'Uq]ldl..:J:l-Jln bbqlb~8.Jl'U'd'U (scalar variable) ~8 'IJ :l-Jln~~(91 bbG'1~80% 'lI8.....:Jl'U8~bV1tJ.:J I.:Jml:l-J~ bn(91OJlnmdf1ruml:l-J~~bn(i1~'UcJ1'dtJ 'IJ oii8:l-JG'1 'l'Uf18~:l-Ju~VilbbG'1~~Vln -.:J~~'l'U1JJdbbm:l-Jqll.:JJJd~:l-J'dG'1v-....:J 'lVib~'Uml:l-J~~bn(91~'U'lI8..:J bf1~8..18.:Joii8:l-JG'1bb'U'U~'U'l OJ~cX8.l b~8 'lViboiil hl.......:Jl ' Vi b~'U ml:l-J~lci1b1!'lI8...:J (b~mJmbJJG'1 'l Vibtl'U 1JJdbbm:l-JJll'fj-l lJJ mh..1(91.:J 13....:J'l 'Uq]d~1JG'1 ClSC (Complex instruction set computer) Ylltlnn1~'t11 'lJ v 0 .Jl'Ud'Uf1~..

oJl'U1'Ud::.~e:J-. bfl tJ I 1&Jl'libb'U1'Yll-Jnlde:Je:Jn 9 bb1J1J~ilJJd::.JVld-.f{'YlTIJll'jI\J'lIe:J-Jri1'U~n'Ubdm l'UmdYIl-.Jln -J~'U ~ bbfl::.~1J6'1-J~'U -u 9 nld6'1~l-J6'1m1:1(9) tJmd&..JJll'jjld::.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&. Tanenbaum 'jI\J1Jll 98% 'lIe:J-J 'jI\Jd'6btJe:J~~bn(9)mdb~tJn 1 6 ~1 l'Ud::.J$'lmde)l-.J~"Jldru.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.J1Vl1.J >.Jfilii'-JblnJJd::.~1J6'1-J 'lJ (return) ~-J V-Jfl"Jlnmdf1m~l b1J'U e:J-J~JJd::.fl&Jbn'U 92% 1 olrbVlfhdl olr~1 bbJJd1Je:Jn~l'U1'Ubb1J1JYie:J-J~'U 13.J~1b1nm::.Jldbl6'1~l-J1TImdb~tJn 1 Vi$'lJJd::.Jln'jI\J1Jll 1 'UJ1l'jjld::.mdtJe:J'UnihJ&.JlYil-Jl'Ub~&.J&.~hbbJJ~1'jI\Jd'6btJe:J~illolr-Jl'U "JlnV-Jflmdf1n'jjl'lle:J-.4 l~bb6'1(9)-.6'1l&.J'lle:J-J'li(9)f1l~-J 9 1 Viililn'jjru.Jln~6'1(9) 1 9 ~-J~ 'U~-J b1J'Umd~tll"J::.::.bJ1'V1 scalar scalar variable e:J~l-.J6'1u1J6'1'U'Umd'!J.2 1~~1 Vibt1'U II b1J'Uri1'U ~l olrb m 1'UmdbbJJfl b1J'UJll'jjl b~~e:J-J'Ul'U&.~1J~'U~1'jI\Jd'6btJe:J~b~tJnsife:J'Un'U (depth of nesting) lolr-Jl'U bbfl::.mdtJ e:J'Un ii'1J&.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.J~'U 'Uif(9)ri1'U~6'1-.J ~.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::.Jln~6'1(9) 1 -u m~b~tJn lohl'jI\Jd~'btJe:J~ ~ (procedure call) bbfl::.f{'YlTIJ1l'jI\J md'jllJmm&.:ni'U~-.yil ~ 9 ~ b1J'U~1 bbJJdYie:J-.J lJJ~-.JVibt1'UV-Jflmdf1n'jjl1(9)tJ l V-Jflmdf1n'jjll~ bb6'1(9)-. bbfl::.f{'YlTIJ1l'jI\J&.J~ 13.f) 0-6IY.Jn~(9dlb1J'U JJd::.12 words of arguments local scalars ~1~~lbbVlU-.Jl'U'Ul'U61 'lIe:J-J 1JJdbbm&. Interpreter. and Typesetter 0--3 (~{) Small Nonnumeric Programs >5 arguments >8 words of arguments local scala rs and and o (.'fuJJd-JJJd::.JlYil-.~1J6'1-J -u .Jl'Ub~&.&.J~-.J b~ tJ'U~1 tJJ1l'tm::.J 1 olr1 'jI\Jd'6btJe:J~ bbfl::.528 unfi 13 I flOl1W:HLilosLils:::l}a Rise Percentage of Executed Procedure Calls With >3 arguments Compiler.nmJ~~l<f1rue:J ~ bb6'1(9)-J 1wmdl-J ~l-JVld-J'lIe:J-J 1JJdbbm&.J8-.V11l-J~1JJdbbm&.

'Y1l~fln€il-.x'U5'1€l~bU'U 1~md-JldmbniJQJ'VIl'U~~ bb~dnmtJbU'U~l~-.ll'Uciidflnm::..l<il€l-.ltJd::.l~md-JldflmtIM~lnnld~mnb'!J'U~l'Ud'Ud-Jlnmd-J'l.lbn(91~'U'VImtJf1~-.md-JldfltJ~1JtJd-.bi1'U 1~-ii(91b~'U1 'WIl tJ'VI~-.'Y1l 'lJ q mh-.l~€l~'lI€l-.lmd l'Umd l-ii-.ir(91d::.l~bn(91~'U l'U1J~nrub~ ltJl~ mn'U bb1.l~~m<il€l~~5'1'l1'Ul(91 'lJ q b~nd-Jln md-Jldmn1J1111ltJ 'lJ l'Uciid'li.l.l~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.lm::.x'U5'1if(91G'td'Ud-Jln~G'1(911'U 'iJ 'lJ.mdG'1(91Y1ltJ md~mn q 1~bbG'1(91-.l1i4bi1'U1lmd l-ii~l~-.'VI1l-.l'<innmd8l-.$f-.C..I 1tJdbbmd-J 'iJ 11l1.'1(91~l'Ud'Umd8l-.'1::.J~G'1dtJ~1~nG'ild!i-.l5'11TImdbYim.lG'1mlJ<iltJmdd-J q RIse ~€l l.ldd(91 b~d Wi-.l 'iJ 111'U~~m<il€l~ ~-.l~ln~(91G'td'U'lI€l-.1tJ'll'uG'1-.l8-.rl'Umdbn1J~mnciidflnm::. 'lJ i41m~m<il€l~ ~~m<il€l..'Y1l~fln8l-.lbu'Uciidflnm::.ld-Jll.~'YITIm'V'J li45'1tJd::.€l-.'VIUdtJmld-J~l .2 / ~-.'11tJdbbmd-J li45'1md lrnm<il€l~€l~l-.l bb~1ltJd::.J~ 'lJ 'Umdbn1J-n€ld-J~n 'lJ 'lJ q bct€l-.$f-.md~G'1€l-.ltJd::.l.mdb~tJn l-ii1'V'Jd'libtJ€l~.l<illbb'VIU-.lciidbbtJdG'td'Ul'V1qJ~bu'U 'll'U(91 scalar bb~d 'Y1l1i4bi1'U1l~::.'VIUdtJmld-J~l b~d'll€l-.'V'J1J1l 'lJ ~lm'Ud-Jln q l'Umdbn1J-n€ld-J~ b'VI r.'Y1l1i4 l-ii-.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-.J~~ bG'1'U€l 1 <iI bb'U::.l~bn(91~'U ~-.lmd ~-.lG'1(91 ~-..y:)tJ1~b'VI5"j€l'Un1J'VIudtJbmb€l~tJbb~::.l~l'VI~1Jmd'Y1l1tJtl1mt~ ::. ~-ii(91b~'Ub'Yhn1JG'1€l-.l b~dn1lmld-J bb~::.b~'Ud~::.~m::.lGhflnn~l q md~mnl~bbG'1(91-.'futJd-.l!i-.l~~m<il€l~ 'lJ bb~::.md q msltiS~aw1C)s1uJauU1~11'1rY 529 ~-.'Y1l~ md lm~m<il€l~ b~€lddd-J-nmYl~~~-.x'U 'iI bn1J€l~l'U~'U~b~mn'U 'lJ G'td'Ul'V11J.l8-.'1::.x'U~::.Wi1JG'1-.l r.l 'U€ln~lndli-.llwxd-n€l q 13.ll'U rm l-iib'YIf1uf11tJl~1mX~dtJ1TImdtJn~.lmdnl'VI'U(91~l.ll'UG'1-.l n~d-J'lI€l-.ldb'ii€l-.l8-..l'V'J1J1lciidflnm::.'1::..l~bU'U tJd::.l~'U bb1.l-.l<illbb'VIU-.l5'1'l1'Ul(91 'lI€l-.l~1~C.'Y1l~d tJmld-J 'lJ bct€l-.l8-.~'YITIm'V'J1~(91tJmd1.l~G'1(91 ~-.l~l~-.€l-.G'td'U l'V1qJbu'Umd md8l-.bYi€lli4md lm~m<il€l~ 'lJ 5'1tJd::.l<il€l'VI-d-.b~'Ubbdn~nG'ild!i-.l 'VIUdtJmld-J~l~d urm1m~m<il€l~~l'Ud'Ud-Jln .l5'1tJd::.lbU'UmdtJ.md8l-.m~b-nl~dtJn'U~::.l bf1~€l-.l d::.'lfdtJ~(91mld-J~1'Umdbb~nbtJ~tJ'U-n€ld-J~d::.ll~nmtJb'lJ'Unldnl'VI'U(91 f1ruG'1d-JiJ~'lI€l-.lG'1€l-.l8-.l ~l'Ud'Ud-Jln md€l€ln bb1J1J~l~-.lmd8l-.x'U 1~~1i4bi1'Umld-J<ile:J-.l8-.fty.l'VIUd tJmld-J~l'VI~n cache (register file) 'VId-JltJ!i-.ltJ€ltJf1~-.1 .mdbbdn md lm~m<il€l~~l'Ud'Ud-Jln 'VI~€ll-iib'YIf1uf1 'lJ mdbbtJ1.h::.'1::.l~::.l~-. Q.l~1~sii1Jsii€l'U bb<iln~::.l l-ii~l~-.h::.'\IIudtJm1Jf1d-J 'lJ bb~::.lbU'U~lm'Ud-Jlnb-ih~1tJtl1mt tJd::. bn(91iJQJ'VIlmd€h'U~l~-.l~::.l8-.l branch bb1.13.li-.l~mj~'Un1l'll'Ul(91'l1€l-.ltJd::.l1i4bi1'U1l5'1md8l-.l~1~'YIdl1J bb~d1l ~l~-.l'VIudtJmld-J~l'VI~n 'I 'iJ bb~::.mdb~d-J~lm'U~~m<il€l~'Ubu'U~-.~'YITIm'V'J~-.

J1'U1'U3-.l111~ b~3-.'1~ ~~it'U~1'Umd88nbblJlJ'OJ:::b~m-ii8~nlJmd~CJ11m~~~1~~~m<il8{ 1VilJddi.I ~1'U 1udbbm3-.h:m~lTI~ 'l!8y. 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.1 lTImdbblJlJm{CJ1bb1{it'UbY1~~bb~byj3-.l1dn 1oii~~m<il8{bVlG'i1it'Ul~ 8~1~i(8~~~CJ1 'lJ .l-.1.l~~lJ~8'U 1'Umdlbfldl:::~ 'lJ '" '" 8 bblJlJ~loii'l!8y. (rnu 1'U'lh~b1mVld~) nmnlJ 11l'U~~m<il81 ~~dj'Ul~<ii8~ 1oiieJi.'1CJ1m13-.1i. 'lJ m13-. 1'U'Ylnfl~~~ijmdb~~n 1oii1'V'1d~b~8{ 8mdli8'Un~lJ3-. nm'OJ'OJ:::u oii~1V1~lJmd~~~1'U1'i1<if1'V'11dlil 13-.1-.l<if1bbui.l~ b~~n1oii1 ~·~b~8~:::<ii8~nne:i1'U1'i1n~lJ3-.$i~j.l81'U'Ylnfl~~~ijmdb~~n 1oii1'V'1d~b~8{ if1bbud.'1m~l'OJ:::'V'I~mJ13-.l<if1bbUi.'1mu~~'U-ii83-.I~~iJn'OJ:::bilCJ1~'U m 8~b~3-.'1:::bblJlJ~1 bb111TIm~ oiim1CJ1 'V'Ibl~md3-.Ull'l~1j'U<if1~'l'i1V1i(1~U~~lJ1Viijmd 1oii~1'U~~~b<il81m.l1n~'U b~8~'OJ::: 1~m3-.a:t1l'U~~~b<il8{ b 1CJ1~m'OJ'OJ:::bnlJ~~m<il8{~1'UVld~11~lV1TIJ <if1bbUd~bnlJ8 ~1 'UlJ~b1ill~'U "~JutlJYidllJEJt.l1n 'OJ:::'li1~i.l1'1'i1~1'U~ <if1bbUd'll8~ b~3-.J1V1~nb~81Vi1'V'1d~b~8{~nm~~nit'Um3-..'m3-..l8 'lJ '1n~b$iI:JJnU (local variable)" 1CJ1~b~'V'I1:::.:.J1i.'1n81Yi3-.1-.l'll8~1Udbbm3-.h~ ~~m<il8{nlJmb~m13-.i'1u~u~lJ~rnu '" (global variables) i:1b11V11~bnCJ1~'Un~8..J1'U1'U~~m<il8{lViij3-.111 b<il8{ 1'Umdli8'Un~lJ3-.$i~Vl3-.h~ij d Ud:::~'YlTIm'V'l 1Udbbm3-.530 unfi 13 / flOlJUJJUilOS{iJ.'1d:::VI'.l1'1'i1~1'U~b~3-.l1dmnlJ<if1bbud 111 'UVI'vb~m13-.1-.j~bb11bbi.l8nfl~~Vld~b~8'OJ::: W bnlJ 1~m3-.1U~~lJ 1Vi<if1bbud~'OJ:::nn 1oii~1'UumJfI~~~~CJ1 '" .l'll8~~h:h it'Uijmd\'u~~'UUUi.'1~ < lu~VI'u1~ 'lJ .j~bb11'OJ::: 1oii1'Lldbbm3-.S::lJ8 RIse lTIrm~~m:h':d:)lTI~'U~l'Um.lCJ1'OJ:::<ii8~nnu'UYinn~lJi.'11<ilnud:::~~~d' .'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 .Ji.1~1'Umdbbi.l1dbl 'l'i1~1'U~81LJ1~ d13-.J11~bU'Ud:::~:::b1m'U1'U~'U1'Ul11-ii8d''OJ::: 1~ 1CJ1~Un~bb~1 rm 1~~m<il8{-.'1~8~b~3-.

2 bbr!I?1~Gi'n~rn~u~b~8~51md 1. window) Vlm~'lf1?11l?1wllVl'Ul?1md1oii~l'UbbfiiG'1~'lf1?1 1Vinu 1'V'ld~b~8~fiil~'l 'lfl?1fiil~'l .JlnI?18tJ-.~ ~~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.nnmd~n~l ~ 'lJ lh~mdbbdn tJd~md~r!8~ 1'V'ld~b~8fYidltJiJmd1'V'llJl~b<ll8~bbG'1~c.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~ .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.2 I ms ltiS~E1wws1uJauU1w lnrU 531 ~~~mild 1n 'UVldoii813.1 Vl'UYIl~ bbni:lruvnd~'UmHhJ l>JG'1Jl ~~l'Ur!8~m..7 dtJ 13.Jl'Ud'UVl.hblA1~~ laJ~c. B G1d~ U~b~8~f1n 1oii~l'Ub.Jl'Ud'U 6 VlUlfiil~ 'lJ .j5~l'U'OJ~1~n~ld~~1'Uvhoii8 13.ct.Jl'Uf1l'V'lldl~b<ll8~ i1. '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 ..16 1 'lJ b~81Vibnl?1tJd~ 1~'lfur!~r!l?1fii8r!m'Umdrnb'lf'Ud 'lJ .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.j5~l'Ubb1J1JVld-J'Ubl~'Ubu'Ud~nG'1d-J-. Vl'1~bfiil~ Vl~8 88mU'U'lfl?1b~n'l (b~~nll .h:rYi~~'o.md-Jnld'Yll~l'U 1'UGi'n~rn~dbbr!l?1~ 1Vib~'U1'UdtJ 13.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.hbbl. 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.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~-. (WO ~~ W5) B.b~mld-J-.h ~~bbr!l?1~ 1'U<lllJl':! 13. 1oii1'V'l~b~8~bbG'1~mdli8'UnGi'ud-Jl'Yll~l'U~b~d-J (calls and returns) -.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.Jlnl?1) ~51-. 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 " .Jl'Ud'U-.Jl'Ud'U laJ-.ct.Jl'Ud'UVli(lfiil~~~r!b<ll8~Uld-Jl1oiimd'OJ~rii8~51-.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.

]nb'h.1~lbbVlU-.11'jAjd~b~€J~D <jJm')ltll1'jAjd~b~€i~ D bd~n 106-.3 / Yl()UUbWl()SDls:::l}a RIse Restore Save Currentwindow pointer \ ~ ~ pointer bb~<ll-.532 unfi 1.11'jAjd~b~m~ A .1t.1lu1'jAjd~b~€J~ E r.:ilU~<ii€JUYi'lJd~VI'Jl-.1djUVlii:l<jJl-.11'jAjd~b~€J~ A n~~'I'1l1Vifilb~d-J'lJ€J-.:ilu~dju'jAjldl~b(j]€i~'lJ€J-.:ilu~<ii€JuYi'lJn'lJ b'jAjdl~tll1'jAjd~b~€J~ F 'jAjmmd-Jrilufil'jAjldl~b(j]€J~b-i:ild-Jl wO ~-.11'jAjd~b~€J~ E ~~bmnlVlu<lllVi<ii€JuYi'lJn'lJ (r.1'IJ€J-.1V1ii:l<jJl-.1'lJ€i-.1d~~hi~ld-JldblnlVlu<lllo6~u~ 1Vibbfi1'jAjd~b~€J~ F 1~ bii€J-.l<lld-Jl w5 tll1'jAjd~b~€J~ E bd~n1061'jAjd~b~€J~ F mdbd~nf1~-.Jn 106 r.1V1ii:wh-.1~lnijr.1 CWP ~~b~€Ju~lbbVlu-.1bbdn1ll~ 1ui:ivJbvJ€J~~t.:ilU~b1jU temporary register 'lJ€J-.1w3 " bbG'l~w4) G'l~fil'IJ€J-.11u~~Vlii:l~l-.

1Jl1'lJmd ~ b~~e:J~~~Vld-J(9]~-5l~~~ii~c...j'1 bbud.:i1'Unm~b'Yh~'U c..:!bGle:J1~lVl1'lJ bn'lJc.'1::..'l!e:JyjGi'bb11 .'I'1l'll'U b'lf'U b~e:J1Y1d*b~Je:J1 B b.j'1 ~ uilsrmn ~l~~[llMl bVlG'ild'OJ::.~'Ylfi[llY1~l b~Gl'lle:J~~~.'1'l1 7 'OJ::.j'1bbUi.Vld-Jl~ii~md-5l~~~ 1TIm"l"d'OJ::..j'(9]~'U h1l b'Yh1(9] Gl1 bbud..:ll'U1'U.r'U b~~e:J~~e:Jd-J~1bGle:J1 Pyramid 5'1 16 VliblGil~ bbGli.'I'1l1 Vimde:Je:Jnbb'lJ'lJm1(9] u115'1mld-J'i!'lJ.'1::.j'1bbUdYfe:J~~'U bbi.loc l~1'U'vju1~ml:!-l.VliblGil~5'1161~mGle:J1 bU'Uc.ld-Jlloii1'Umdbn'lJc.nd::.:i1'Unm~ nlVl'U(9]~l bbVlU~~e:J ~1(9]~ 1Udbbndd-Jc.2 I (l-U'6'i1'U mslJ5S~alb1os1uJauu1V11l'ifli 533 A.:!~'OJ~'Umd"Yll'll'Ubbi.:i1'Unm~c.'1::.:!bGle:J1nG'id-J-d'OJ::.re:J~c.Vl'UlGil~5'132 1~mGle:J1 mWl~l'U 1~~ loiiVliblCJil~~~.'lJ1'Umdb1~n 9 QJ::.:i1'Unm~ -5l~8~ii~ 1Jl1(9]~ 1Y1d*b~e:J1Gil~"l (global variable) 1Jl ~~Vld-Jl~ii~c. 1~.:lln(9] bi.:i1'Unm~ Vl'U'Yll~ b~e:Jn bb'lJ'lJ~.j'1 bbUd .:!e:J~1fi~e:J 1TIbbdn Gl1bbu~11Jd::.oiimd-5l~~~ 1u~Vlu1~mld-J.'1::..'1::..'lf1~ Gl1e:J~l~b'lf'U md-5l~~~lu~~1~mGle:J1Vl:!-llmi.m:!-lldbi-5l~~~ 1Jl'OJln 1Y1d*b~e:J15'U b 9 ~~Vld-J(9] d'!Jbb'lJ'lJ~Jl~ ~ md'\.~'Ylfi[llY1~lVl1'lJ mh~ 1dnGlld-J1TImdd md~(9]bn'lJc..b{4'U 1~1lVliblGil~1~mGle:J1~l'U1'U VliblGil~b'Yh~'U 'OJlnmd~mjlY1'lJ1lfil'lle:J~ N VliblGil'l'OJ::. ~ 1Udbbnd:!-l c..j'1bbuJYie:J~~'U (local variable) ~lVl1'lJ 1Y1d*b~e:J1~W-1 'hJmd-Jldrl'\.\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~.'1'l1 8 ii~ 31 ~~'OJ::.in 1u bbi..l.l.rln bn'lJ 111 'U~~mGle:J1Vl:!-ll ~bi.jfmibYid-J~'Ubbi.l.l.'1::.d-Jlru.'lJ'lJmdnlVl'U(9]Gl1bi.bu'Umd -5l~~~ 1u~~c..ld-Jlloii'll'U'OJ1~ l~bYl~~ N 1aJoJlbu'Uc.'1'l1 .j'1bbud.'1::.j'11(9]~'OJ::.ld::.:ll l-if[Y1d*b~€l1 swr QJ::.md-Jldbi'\.j'1bbUd[llMln'OJ::.l:!-ll1oii1Jlm..1~mGle:J1Vld-Jl~bi.'1::.c..j'1bbud.'1'l1 lVid'!Jbb'lJ'lJ~l~~b~~e:J~bU'U ~ 0 ii~Vld-Jl~bi.:ll1(9]~Gld~ 1 ~~m1(9]bb11bbi. 8 VliblGil~ b'lf'U l'Ub~~e:J~ Berkeley RISe ~~'lI'Ul~ 8 VliblGil~bbGii.c.'1~ A.: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..in) bini.~'lJ.5'1.:!~'OJ::.:!bGle:J1Glld-J~1~e:JfilJl~ 1ubb~1~'U bU'Ulfimd~5'1ud::.'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.Je:J1n'OJ::.:i1'Umdiie:J'Un~'lJ bbi.5'1filb'Yhn'lJ ~ SWP ~~QJ~"YlllVibn~ 'OJ::....bu'U1TI~5'1u"l"::.mf1bU'UGl1bbud.j'1bbU~md-Jldbi 1Jll'Ub1mb&1~1n'U 5'11TImd~md-Jldbi'\.re:J~5'1fillVlqj:!-lln~e:J N-1 5'1filUd::.13.h~ibe:J~ 1'U1Udbbndd-J[llMld::.'1[llMl) 1fim~'OJ::.'1'l1bb'lJ'lJd::.'1~:!-ll ~~ l'U~-d'OJ::.rlmYid-Jfil1u~~~-'bbVlu'lVliblGll'lil~ ~ .'lJ'lJb&1~1:!-ll1oii'OJ::.re:J'lmdiie:J'Un~'lJ 1u"Yll'll'UGle:J fil'lle:J~ cwr QJ~binG'1~fili.:!e:J~ ~e:J md'l'1l~lWhd-Jn'lJ 111'U*Yl~ ~ 1(9]~b%Y1l::.

.lrllVlUl~~~lWlUbtJ'UVlI..ln1ld-Jln) 1~ml1l€l.&l1bbtJl~-.l&l1bbtJ~-.1I::.lbm::.ln~d-Jb'Yh.x'U 1'U'Vll-.jf-.l-ii€ld-J'fl ~-.-i111mld-J'<ill q q 1'UVlI.lVlun.jf-.-i111~1ld-J'<ill ~-.l I".x'U~'<iI::.lml1. 1.fl 1'U q '\"J~'<iI:.xW'J::.VliJ\i1bdm 1'U rll'U€l-. l.jfGl\i1 b-iild-JlJi1 1I 1 'U'lJruv .lJa Rise 1~ml1le:)'fl'\"J~ (register file) ~~\i1lm-.jf.jf~'U~lVibn\i1'l.5 Cache ~ ~lmd-J cache bb'fl::.lVlI.l'<illn-ii€ld-J'flblnBl'U ~~ cache m'<il~tJl::.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 .l 1~mG'l€l.lVld-J\i1b1nbnU1mn ~ q cache '<iI::.lmfilinn~G'1'\i1 . 1.bbuufl1'Unm-.Jl~bll€l{ T 1 1Wl~bll€l{~l~\i1 VlI.-i111mld-J'<ill bbGl~bln".-i111mld-J'<ill 'lJ ld-Jl1.ln~un'UVlI.-i111mld-J'<illbVl~€l'Un'UVld-J\i1 cache iJ-.ll'U~'U~1 ~ x ~-.btJ'U1TInll~Jlll btJ111UbVillu~ru~ml'ru::.lbbUU q nll1.lGl€lnl18l-.lfl1'U bd€l-.blmbd-Jl1.l'fl::.'ld-Jl1.l".jf1~G'1'bG'l€l.534 unf 13 I ~OlJlli::HJilOSJilS::.' ~ ~ 'li111'fl\i11::.lG'h bbtJl~bln".lm'<il~B~btJ'U'<ill'U1'Ud-Jln VlI.jf-.-i111mld-J'<ill bb'fl::.ll'UJJmJ~~-.~€l-.jf~'U~1'UVlulGll-.ll'U&l1bbtJlbVl~lu~JI1'U'lJruv. ~ -iiEld-J'fl&l1bbtJ~'<iI::.Gl€lUG'1''U€l-.jf-.lb~~€l-.l~'U bn'U ltJ ~-.ll'U'<iI~-.ll'U 1'U'Vll-.lEJ-.l 13.llaJ~tJld~'VlTIrnw bd€l-.l 'Il &l1bbtJlfl1'Unm-.~'VlTIrnW~l b-iild-Jl~~-.G'1'ld-Jllbl : 1111l'fl€l\i1bdm 1Vi~'U'fl-.lbn\i1~'U1lnll".ll'U€l~l-.jf-.l'lJ'U l\i1 b~n ~ ~1.fl '\"J~m'<il1.fl '\"J~'<iI::.'ld-Jl1.llJi bWll::.ll'UbWlI-..x'UnlltJl::.jf-.lUl-.-ii€ld-J'fl'Vln'JfU\i1 ~ q cache byilu'U ~ 'Unllbnu-ii€ld-J'fl€l ~ ~l-.-i11Imld-J '<ill cache '<iI::.ln1l'd:VlI.1~G'1'bl1l€l.ll'U~-.lnll1.bnub%Wl::.lbtJ'UbbuuVliblGhJ bbth~~ rllVlUl~btJ'UbVl~€l'Ui:i'\"Jb'\"J€l{ mld-Jb~1G'1'-.lm'<ilbn\i1'lJ'U lJinuVlI.jf-.l.y\1.fl'\"J~~-.fl'\"J~d-Jl1.ll'Ub'Yll.jf-.-i111mld-J'<ill fl1'U 1V1q}'<iI::.ll::.-i111~1ld-J'<ill cache ~ md-Jllmnu-ii€ld-J'fl'lJ€l-.lI1l€lUG'1''U€l-.l1~mGl€l.bd'fll1'Unllrll-.'lJ€l-.ffi~mGl€l.lVld-J\i1 q b'Yll.lU~-.ll'U~l G'1'\i1'<ill'U Vlti-.~n1lVl1€llaJ I1ll1l-.l ~ (bbGl~mld-Jb~1G'1'-.l~-ii€ld-J'flVi'tJ~€l-.V!d-.ln~un'UVlI.l'<illn Wl~bll€l{ 1 Ul-.-i111mld-J'<ill 1~ mGl€l.l1~ml1l€l{m'<il~'lJ'Ul\i1b~n N- 'lJ€l-.jf~lVl1u~\i1bnu&h bb'U1luwh<il::.b~€ln bnu-ii €ld-J'fl'lJ€l-.l cache md-JllblI1l11'<i1G'1'BUml1.flJi~-.lG'1'~l-.x'U~€l~btJ'U'<ill'U1'UU€lll filVlUlGll-.lu~€ln ~-.x'U ~ VlI.jf-.'l~-.lbbUUr1€l-.l~l~-.l~'U ~ ~ bm::..lbn\i1~'UU€llld-Jln) (lInb1'U 1'Uul-. bWll::.l 'lJ GlmVll1lmlruU'<il'<ili:i'U€l~bG'1'd-J€l ~-.lG'1'€l-.1l'<il::.lmru~VlulGll-.fl'\"J~ 'lJ'Ul\i11V1qj~lVlwbnlJ'li€l~'fl&l1bbtJl'I1€l-.

):::m~ldn<il€l'lJ~U€l'lmdl-if'llu l~mh'l m !l'l.)::: l-if1TImdnlVlul11ml~~~YruTIdJu n~~~€lEJ (set associative) ~'l~U~'lSj8umlEJbtJU€l~l'l~ln~-iim.:llUdU d ~l~bb~u€lUbb~:::!l~l€l~mEJ 1WIJ€l'lJ 'll<il~.J~Vl1m1l~'l5u mo..3 .):::m~ldn'Vldl'lJ~1l 1 cjl1bbud1:'i1unm'lcjl1l11V11€lmi~111~nn l .h:::~'VlTIm'l"j mh'lldn<ill~ dJumdmn~ln~ludbbm~cjl1 bbU~mi'l'l-o.)o.2 / ms ltiS~aUn()S1uJauU1V11nrli 535 1~m<il€l1Sj~u~Y1bq.J1lU bd€l'lO.bEJ€l1b1EJn-if€lU E YI'l.h1:'i1un 'l n-o..:ll cache 1:'i1u lV1q!o.)::: uuVinYl'lJ-ii€l~~'lI€l'lcjl1bbu~nn8l'lEl'li1'lU€lEJ'l '" '" Instruction (a) Windows-based register file Instruction (b) Cache ill .:llUdU~~'l~-if€lU YI'l.fi'l'~lVl1'l. 1 '" l-if'llu€l~l'l~ln bb~:::~~md-O.)ln. 3.JbfhJcjl1 bb'l.:llnl11i1'lVld'l rrrs l-ifVl~1EJml~.13.):::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.J1lU'Sj.:llVl~n~'lirn-o.:llUdu~~'l~l 'l"jd.)::: b '" l~dll11~uu€lEJitn VI~1EJml~.

JG'1Jlljjlli)::.-if~ 1.o/lEl'l'U''U cache rrrunn 1i)::.JG'1Jlljjl l-if'll'U~~~b(i1E1~lV1bn~l.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::.b~'U 1.Jdd~'lf.jJEI~G'1<ii1bbl.JdYiEl'l~'UblJ'UEi '" mdl.JG'1Jlljjl~E1 mdbnu<ii1\]nm~'f'll lV1t.bdm~l-ifl'Umde). ~'U~'U.jJm.Jbb~1 bb'U1~'f'll~'Ubn~~'U~'ld 'iJ 'fi1'U"lIEI'ltl..)1 bbGid::. 9 'iJ .m~ldmhiiEl~G'1J.'Vrhmld ml~"')l cache ~'UiJ'l1~m~ldbl<ii~~'U 1 VI-if~bli)'UG'1'l1l.Jdbbm~~t.l-if'll'Ur.'VI~l~bG'1"l1'V1ibIGiI'l ~'l l'Umdb~E1n~~m(i1E1~ li)::.'lh~ lV1m~ldble)l'U.~YlTIJll~ . 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)::.Jd::.Jdbbm~ (compiler) 1tldbbm~~ b.536 unfl 13 / flCllJW::Hl1IElS(.1.jJElJ.JdbbmJ.l-if1'UmdbnlJ.Jl'U<ii1bbl. 15n ti'U~E1l.n~~~b'yh~Ii)~'f'l.J~~'U.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.)1Wlljjld::.)~..tag 1i)::.h~ iJ'l~. l-ifl'Umdbl.i~ ~ EIu 'fi1'U'VItt'l"llEl'len bb'VIt-b'l~E1 ~Ii)::. '" li)::..o/lEl'l~mm~G'1~md bbG'1nbl.jJEI~G'1~o/lEl'lmde)l'U 'lJ bbG'1::.. l'Umd'f'll'll'Ubb~1 ~l'l~ln ~~m(i1E1{1~G'i'~'U~ml~b'VI~l::.)EI~l'l hn(i1l~ ..~::.'U.) . 1~m~ldbl5l'l~'ln'l ~~m(i1E1{1<Kt~~(i1d'l ~'lli)::.~UGJ'lIi)::.Gil'l'l bbYl'U~Ii)~bnU111 'U'VIt-b1~ml~"')l'VIii'n bbG'1~Ii)::.ml~-liu-iiEl'U l'Umd5l'l~'lGll iJ'l~'UEI~nU1~mdnl'VI'U~Gllbb'VIt-b'l~E1~5n.il1~lbb~1 RIse l~~m(i1e:rft~G'i'"lI'Ul~ 1'V1~ bbG'1::.'f'll) 'iJ ~mli)li)::..blJ'U'VIibl~"lIEI'l '" ..Jd::..) t~~md l-if'VIt-b1~fm~"')l cache ~l'VI~Ubnufil~'lbf1~E1'lbbGibY1~'lEl~l'lb~m ~~~~1l ..Jdbbm~ 111'U~~~b(i1E1~ Gi'1bbl.md l-if'VIt.b 1l.JG'1 (~E1<ii1blnm::.jJEI~G'1d~'VI1l'l'VIt-b1~ml~"..blm.bJ..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.) li)::. tl.)lnu~~m(i1E1~Vlbn~~'UibEl~f1~'l~~~ '" .J~ul.)1~ '" '" l'U'VIt-b1~fm~"')l~lm~mdnl'VI'U~ml~~~Yr'UTI 'iJ blJ'Unr.)nr.lS:::Qa Ii)ln~1.~YlTIJll~mli)bn~~'U .~"lI'Ul~b'yhnu"ll'Ul~"lI€l'ln~~~E1~ ~'lli)::.jJEI~li)ldru. bf1~E1'lf1E1~~1b(i1E1~biJl'VI~l~blJ'UbbUURISe ~'lm~m(i1E1~~l'VI7u l-if'l.!G'11'U 5n'fi1'U'VItt'lli)::.J1..~~'f'll .Jd (variables) bbYl'U 1(i1bll.Jd~~'l~"lIEI'l tl.jJEI'VItt'l~Ii)::.Jd'll.Jl-ifl 'Umdnl'VI'U~m~lru.J~~ubYi~u tag word o/lEl'lmd 1.)-if~bli)'U11bbiJ11'VIt-b1~ml~".32 <i(1) l'Umrudmd <ii1bbl.J.J~~lru.ll'U1l.l-if'VI~I~bG'1"l1b~~E1'U(virtual ~o/lEl'lmd Yio/lEl'lmd 'iJ number) ~1'VI1u~~m(i1E1~bbG'1::.~~ 1 'Umdib~.blnnl'VI'U~~ruii'njjru 'iJ IV t~~~1 1l.1-ifbnu.~ml~b~1 l'Umd'f'lI'lI'Ub'yhnu~~m(i1E1~ '" ~'l~'U l'U~~~E1'l"ll€l'll.JEI~~~lnibn '" (16 .'ll'U~ 'VI'UY1l'lb~E1m::. (operator) ~l'VI~Umdfil'U1ru.u~'l~~Ii)::.J<ii1bbl.jJEI~G'1Ii)::.'Uvh 1l.

:l'lle:J.:I1ud"bbma-J b'YlflUfl~U~a-J"ba-Jll.:1G1!?1 b'Ylln'lJ-oJl'Ul'U~~ m<Jle:J~~a:l 'IJ .:I-iil~ bb~:::md"md"~!?1bli'U'Ylbb~....:11V1'U!?1~btJ'U~~m<Jle:J~ ~~m<Jle:J~\jn l.if...:IVla-J!?1bb~l ~'U~e:J lu n dj'Umd"nlVl'U!?1f!l VImi1 VI'U!?1~l.jdj'U~.:I ~~m<Jle:J~bG1~e:J'U1 'Un~a-J~ " ..:1c.:1 ...:InlVl'U!?1~~m<Jle:J~ bG1fle:J'UG'll'U~dl'U....:lbtJ'U~Umly.:11lbtJ'U..j~a:lmd"eJl..:ll'U-ife:J'UYf'lJn'U'OJ:::ma-Jld"blnl'vlw?11V11...:l1aJ1J1d":::'lJl~f!'OJ:::blnnlVl'U!?11V1bij'U.:11 Vlbt4'Ufllla-J b~m.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..l1'OJ::::blnbbU~.l1b1nm:::'YllVl~e:J.:ll~ bbG1!?1.if~~m<Jle:J~ ('OJ~.:I~~m<Jle:J~bG1fle:J'Un'lJ~~~JG1b<Jle:J~~a:ll.jJe:Ja-J~~'OJ::::Gle:J.if.if..j (Graph coloring) nlVl'U!?11V1ndly..:Im::::'lJ1'Umd"~.:In~ll G1a-Ja-J&ill1ud"bbma-J~m~m<Jle:J~bG1~e:J'U 'IJ ...:l8.:Ibn'lJlll'UVI~1~mla-J-oJlbb~:::l-ii~l~.:I1Vi1ul~~m<Jle:J~'OJ~.4a bbG1!?1.x'U'OJ:::Gle:J.oO " 'I l.:I~e:Jmd"l..:In'U btlm1l'OJ'Ufldtl~..=..jJe:J. -oJl'Ul'U 6 c.:ll'U1Wlil....if~..4 bbG1!?1.llV1d.:Ibn!?1'l1'U d"U 13.la-Jll-iin'lJ..lle:J~l.x'U lVi1ul. lJ1 rhm:::'lJ1'Umd"d'taJud":::G1'lJ l-ii.l1b1nm:::'Yllb...jJe:Ja-J~ 'IJ 'IJ ~bn'lJlll'UVI~l~mla-J-oJl e:Jl...lb..:I load-and-store 'OJ:::bln\1.:Id .:1f11la-Ji=fa-J~'UTI'lIe:J.:I n'OJ:::Gle:J.:I1ud"bbma-Jc.:Im:::'lJ1'Umd"'YlllV1bn!?1md" Q.:l~ i...la-Jll-ii) dj'U lulJ1bb'lJ'lJVld.ifn'lJmd'Yll.:le:J...l1 d"U 13.:ll md"~!?1bli'U'Ylbb~.:I) c.if~'U~1'UVI'ul~f11la-J-oJlbb'Yl'U " 'IJ ~l~.jJllum~m<Jle:J~dj'Umd"~lmll1'Ud":::Vlll.bb~'Umd" l...:I~~m<Jle:J~bVl~ld (l'U~d VI'U'Yll.I=.l!?1~'U hll'OJ:::nlVl'U!?11V1c.:I~~l~ru~G1!?1'l1e:J.:Ia:lf!~l..jJlJ11~n'UJ11 ~bli'Ub~e:Ja-J b~mbG1!?1....:Ia:l-oJl'Ul'Ui(e:J~~G1!?1 ~ .:I'lIllbb'Yl'Uf! 3 f!~\1..llbbU~m'jjl~lVl~lbfl4e:J...:l &l!?1n'U..x'U'OJ:::Gle:J.:l8.: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..Jlnnll-oJl'Ul'U~~m<Jle:J~'OJ~.:l'l 1!?1~a:l-oJl'Ul'Uf!G1.:1r.:1G1!?1(optimization) 'iJ 'I ~e:J md"c.:I3 c.:l~a:lmd"~l'Ulrubn!?1~'U ~.if..:ln'U bb~:::-oJl'Ul'Uf!~l.....: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-d: bb~:::bli'Ub~e:Ja-J (edge) -oJl'Ul'UVld.if.: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.:l "F" laJa:lmd"d"::::'lJl ~f! bbG1!?1...llbbu~m'jjllJ1~.if l'Umd"eil'U~lc.X bb~:::~l~. \1..: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.:I b'YlflUflmd"d":::'lJl~f!~Umly.:ll'U) 1V1'U!?1~tr.. laJa:l'lle:J'lJb'll<Jlmd" l.j~iJVI'd.:ll'Ue:J ~'OJ~.ifud"::: 1~'l!uG1.:I~a:lbVl~. ilruVild ma-Jld"bI"ba-Jlud":::~n<Jl1.:IVla-J!?1.ntI11Jd"bbma-Jc..:I1ud"bbma-J~a:l-oJl'Ul'U~~m<Jle:J~bG1~e:J'Ua.:I 'IJ load-and-store l'Umd"eJl....jJl Ud":::md"bbd"n1Ud"bbma-J (input) 'OJ:::\jni bml:::~ b~e:JG1~l.:I load-and-store 'OJ:::bln"ba-Jll.:ll'U'lIe:J.:11V1bt4'U 'IJ l'Ud"U ~~G1b<Jle:J~bG1fle:J'Uc.llb~mn'U 1~ G'l1'U'lIe:J.:ll'U'lIe:J...jJe:Ja-JmVl~ldb~e:Ja:lmd" 'IJ 'IJ l-iimd"bbd"b..

bb~:::bbd"'1m:::o/1'U~1'VI11J'fImuCiltJmd"~ .. 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 .538 unn A . I B In t t .. 1~mCile:J{~lnnl1 32 ~1 Ud":::nld"'fII?1YlltJ ~~nld"1~mb'flI?1'11Vib~'Ul1 . b'li'U unl~ tJn~~'Vl'd'l1Jl'Yhnld"'YlI?1~e:J'I bU~ tJ'UbbU~'1 .3 / V1CJuubWlCJSlllS:::1J8 RIse B C D E F t t . l'U~l-iJe:Jd"il::: 1Jln~11~'1f1ru~mjru:::rfl1u .J 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 ". RISe 1:'Il'U~1e:JtJl'l bfl~e:J'Ifle:J~V11bCile:JWd":::t. 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 ".. 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 ".r1'Y1d"il::: 111 'UCile:J'UYlltJ1J'Yl 1JltJn .

xuri'lilml:J.e.JJll'jj'ld"::.bnCll l page ~€J md"e)lu-iim.'YllVi1Ud"bbnd:J.JG'1'€JCIlf1!i'€J'InlJf1l~'Ibf1~€J'I~ilml:J.J~dbbu'flJll'jj'lil'llulCllb~n'fl'l.Jcil€J'Imd"~'OJ::.air-oJludub'\Al'OJu€JtJ'fl'l'YlllVfill€JmG'1'~'OJ::.h::.lJlJ~lJ~Vlld"nld lairVludtJml:J.JlYl'OJld"rull$1~n<ii€Jlu l ~€J ilm:J.J.12 1. ltJ'lfu bti€J'I'OJlnlud"bbnd:J.J'fll~d"dCllb~dri'l~U ihermum q lUd"bbnd:J.1304 / amilaanssu RIse 539 4 .~lJG'1''I ml:J.Jln) [PATT82a] 11 C Programs RISe! VAX-JI/780 M680(]O Z8002 PDp·l1!70 [KATE83) 12 C Programs 1.J~dbbU~Jll'jj'l 'OJ::.Jcjj'dbbUd"Jll'jj'lil'llulCllb~n~'I l ~'I~ €I ~ ~ q ml:J. lair bti€J'I'OJlnlui:I'OJ'OJuu~'\Al~lairdjuVludtJml:J.Juuu else 'OJ::.~lJG'1''I ~ilml:J.-iie:J$1bu1tJlJ-iie:J.Jf1€J:J.xu 'YlllV.J~s:l'llulCllb~mXuil-ii€Jl~bu~tJlJ~~lfiqJG'1'€J'Iud"::.'1 b5tJnm 'Yll'llu:J.J~-0'1G'1'€J'I-ii €Jd~€J q q ~dtJmd"G'1'itlJG'1'uumd" loif1ud"bbm:J.~lJG'1''I1Ji1C1ltJm'l ~ ml:J.Ji1ud"bbm:J.m:J.Jld"n'l-il:J.Jcil€J'Imd" bb~::.0 0.JYldbCil€J~bblJlJ q RISe m~ iiU~€Jf1l~'I bf1~€J'I~ilml:J.~'YlITJll'\Al ml:J. 'Yl1fl~YlflD'W'J'~fl1U'lJ'lJ CISC bVlCilv.xu i:'1'l:J.y'h lVi1ud"bbm:J.&iri'l~u 1u~Y1tJU€JtJ'fl'l ~ use lud"::.~ ~ q 'OJ::.J ~ b~€J'IVlG1'1'l1 'I bVlCil €I v.J-oJl uuu b'\Al'OJ~'I fault u€JtJ'fl'l lumd" l~CIl~s:l'llulCllb~n'OJ::.J.9 .'lidtJb~:J.Jcil€J'Imd"~'OJ::.J'OJ::.J~il'llulCllb~n~'I'OJ::.~'YlITJll'\Allv.Jcil€J'Imd"it'1~nn ~ lcilbbiJ'I1C1ltJitn1~ tJ~G'1'itlJG'1'UUG'1'mi:lCil tJndd":J.f1l~'IlWll'jj'ld::.J~VlG1n~G'1'itlJG'1'UUbbUd liU-Jmd" lair'lfCllf1l~'I~ilf1l~'I:J.Jcjj'dbbU'flJll'jj'lG'1'~'IG'il~lJ'lI€J'If1l~'IJll'jj'lbf1~€J'I ~lVl-llibb<ii'fl::.G'1'1l'll~CIl biJlVl:J.J-oJlu€JtJ'fl'l s:ld"lmnn'fl'ln1lbb~ri€JU:J."b:J.Jld"1:wohl~CIltJmd"lv.[bJi:'1'l:J.md"~G'1'€J'Ilue)u~'OJ::.JJll'jj'-'bf1~€J'I~s:l'llUlCllb~n'fl'l bb'fl::.J-oJl.7l [HEAT84} 5 C Programs 1.Jld"n'll€J'I tn luln~u.9 .]5lJ<i1€Ju.0 0.~'YlITJll'\Al.ml:J. .Jll airUd"::.Jmnri'l~uL1ju'Yl1mu q ~ q ~lVl~1 bVlCilv.JltJ1V.xu~€J~lG'1'mi:lCil b tJmd":J.u-:flJUd"'IUd"::.'YlllV\1.il'llu lCllb~n~G'1'CIlmd"~CIl-oJludUf1l~'I bf1~€J'I bb'fl::.J lUd"bbnd:J.]5lJ<i1€JudlV\1.Jcil€J'Imd"~'OJ::.0 .cil€J'Inne)lub-iil:J.lm llUd"bbnd:J.J'flud"::.cil€J'IVll~l~'I1Wll'jj'ld"::.·lh tJ bVI~€Jitn~CJ.'11 tJml:J.xumn~'OJ::..Jld"nUd"::.Jlrnf1l~'I ud"::.J-oJlVlG1n .md"~€J bd€J~luVludtJml:J.u-lliUd"'IUd"::.JltJilG'1'€J'Il.Jd~v.Jl ~ (paging).JUd"::.:J.xu (page fault €I ~l'lld"nCill:J.Jln:J.Jln ~ ~'OJ::.8 009 1.Ji:'1'l:J.J'fl'OJlmn~CIl~G'1'rib-iilluluVludtJml:J. lud"bbm:J.m~G'1'€J'I lud"bbnd:J.2 0.md"~€J q q q ~'OJ::.67 0 O.

'1 elSe 'iI~i1'lJ'Ul<?1 b~nnll1tJdbbm~~1oiff1l~-:I'ild~nr.'1-:1 <?1bVl~El'Ull ~ f1l~-:l1Wll~ld~~1J~-:I ~b1nbb1Jr.1'U'illdl-:l 13.'1~b~mm~lJb.]fEl'UbVlmf1l~-:lb&1mt.1'Umd~f1l<?1V11-:11l1tJdbbm~~mi1'il~md~ else 'iI~i1'lJ'Ul<?1'lJEl-:l1tJdbbm~~'Unll 'illnf1'.yh~ ~mi1'il~md~ .1'Ui1tJd~mru 1 ~.'1-:1 ~-:lt.'1~'UnllmdbbtJr. 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 .]miJml~-1flJ.'1else 1 1 ~ ~ ~El~~ln VI~Ell~i1tJdd~'lfubr.'1 RIse ~l~mJbVl~N 1<?11'UVlm~mru1tJdbbm~ 1'U'ild~nr.]fEl'Ut.'1'Y1l1V1d~~~nm 1'UmdtJd~~dr.'1md1%~dVlm~tJd~mdherrrarm i .]fEl'U~ln 'Y1l1vrc. 'Y1l-:ll'U'lJEl-:l~Vl~'iI~c.1'U~El mdr.'1~/VI~El1m 1tJdbbm~~mlJf1~md'Yil-:ll'U'iI~i1 ~ ~ .ll~ 1<J1 bm~lJ~mhd~lbb~dt.1'U1tJ'mm~~1oiff1l~-:I'ild~1Jr.]fEl~lnun tJd~m~~m 1 ml~md~lnnll<J1d~ tJd~md~<?1.yj~lJnlJ1tJdbbm~1'U'ild~nr.'1!'oJr.]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'U~-:ll~bil<?1~'UEl-:l~tJd~nEllJtJd~md~~El-:l~m~c.'1md~m~n1%~m~mru~. LVI Vi'@J'Ulf1l~-:I~i1ml~-1flJ.'1f1l~-:lb~El-:l (bblJlJJl~'l) t.yhmdbm~lJb.'1!'oJr.]fEl'U~ln~'U bbr.yj~lJ"lIUl<?1"l1El-:l1tJdbbf)d~~b'll~u~b~ 1tJdbbm~m~l~ bb~d bbtJr. bdEl-:l'ill n1tJdbbm~ bdEl-:l'illn~mi1'il~md~ t.'1 ~ RIse 1<J111Jmd~uiJ'U'illnmd~n~l"llEl-:lun1%~"lIEl-:llJm lmJb5~bbr.mmd~n~ld ifn'il~b~Eln 1oiff1l~-:I bblJlJJl~~lnllf1l~-:I~i1ml~-1flJ.'1<?1d~~~nm 1'UmdtJd~~dr.'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. n'il~i1!'oJr.540 unfi 13 I flCllJubwws(ils:':Qa RIse i1b1:!Vll~Ul~'Uh~El 1'U'Y1l-:ltJ5u~t.'11V1~'Ur.1'U'Ul'U~'Unllb&1~ bb~ll'il~i1b'b'Ud'Y1l-:lmdVi'@J'Ul~mi1'il~md~ RIse (Reduced Instruction Set Computer) .1'U Ul'il~ ~~ 1oifnm 1'UmJtld~~dr.]fEl'U~El~~lnnllmdb~Eln 'loif " 'UEln'illnitVlud~mlJf1~md .'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. c.'11V1b1J'Uf1l~-:lm~lbf1~El-:l~iJml~-1f1J.'1~m~ldb1~'UiJ'U!'oJr.]d bbtJarn~l'lJEl-:l bf1~El-:lelse else iJ~l'Ud'Uf1l~-:I~lnnll 'Y1l1VitJl<J11JJ~.'1~~'U'l i1bVl'il!'oJr.'1!'oJr.mtJd~ 1~'lfu'lJEl-:lmdoiff1l~-:I-1f1J.'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.1'Um'il'il~i1 "lIU1<?1UeUJnJl bVl~-:lb~n~Elm'Yht.6 bb~<?1-:11V1b'i~'Ull !'oJr.]'U bn<?1md .

.1 d .J~ml:J..J'«)l ltJ<J11~ (b'li'U rmaen 1<?l~i1~1~~ cu=.Jlnil~ 25 bb1J1J t:-. Load bb~::: Store 111oj(l'Umd'bb~mtJ~~'UojjEl:J.x1J~'U'U 'lVibn<?l .Jlb1J'Uen~<?lbbdn<?l~<ild'~) <foi'~n~11~ l'OJ:::m:J.J'«)ln1J~~m<ilEl~ h .:...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.:lb~~eJ.J~n1JVI".J'l-'JtJltJl:J.Ji:i~ojjmbd'n .Jln~~<?l 1 ..J 1m " bb~:::i:i'UY1nt:-.J~ 1m flru~:J.bfl~El~~'U 1 biieJ~'OJln 1dJi1ml:J.:l'J....Jl~il~~l~~ ~~ ldJi1ml:J.J'«)1 h (register/memory) ~1tJn'U bb~:::md' bb~mtJ~tJ'UojjEl~m:::V1' (memory-to-memory) l~i1ml:J. 'J.. " tJd':::biJ'Uf11 'l 'Ub~El~'lJ'Ul<?l'lJEl~ ihu m:J. ~VI"...J'«)lb1J'U'OJ:::c$lEl~i11:J.d.J~1 'l .J~n1JVI"...(1~ ~~'U ~~'OJ:::'I'l1 Viff1'Um1Jm-Ji1ml:J.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.Jld'bltJd'::::J.:1 ~ I Q AI ..:I"iieJ1J~1i..(1 tJml:J.."iitm1..:I ~El n1"iiU"iit3J'JsUoJ5I 1 ~1i... I ml:J.J~ ~ b~1n~1~1~~ 1 bfl~El~ 'l 'Ufl El: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.5a bb~<?l~'lVib~'Umd'bmtJ1JbYitJ1J~bn<?l~'U ~mi1<iltJmd':J.:I"iieJ1. RISe m'OJtJd':::nEl1J<J11~~1~~ ADD bY1~~Vlii~VI~El~El~~l~~b'Yil.J'«)l t " .J. ml:J.J11h::::J.... ft 'lmTImd'nlVl'U<?lGllbbVl".x'U'OJ:::blmn1J l11'UEltJmrubn1JoiiEl:J..4 / Ei01UvU:InSSlJ RIse 541 • • mdY11~1'Ud':::Vl11~d''OJm<ilEld' o l.Jl'loif~l'U W RISe " 13..J ~'OJ:::'I'llmd'btJ~tJ1JbYitJ1JtJd'd~'YITIm'I-'J'lJEl~md''I'll~l'UdriEl'U~'OJ:::i1md'~l~mi1<iltJmd':J.1\i'6tb~eJ~@btJf1'U...J'«)lb1J'U'OJ:::c$lEl~b~~n 'loitt:J.Jd~t:-.J M<?l 'l'Ud':::Wil~~'I'llmWd'::::J. 'l d X .J~'OJ:::'loiftJd'::: tJ'lfil'OJln~~m<ilEl~V1t<J1:J.J bb~:::'«)l'U1'UiJ<il'lJEl~md'bb~mtJ 1 ~ tJ'UojjEl:J.J~l " ~ b'li'U 'If<?l~l~~ .(1tJml:J.J~l~bln .J1J<il'lJEl'YI~El~ flEl mWd'::::J.J1m 1#1<?l 'loif~l'U ~l~~ (microcode) bfl~El~~'Jn~~l~~'U:J. bb1J1Jb'li'Ud'l'll 'l Vi~l~~ bfl~El~i1ml:J.(1Jml:J. 2.J~:J.J~1 ~'lJEl~1~d'El1J~1~~ (VI:J.Jd~t:-.. ~VI".d.Jn1"iiU"iit3J'J5I~51 \fI..J1~ t:-..Jv:i b<ilEl..J ~'U:J..J:J.J'l-'JtJltJl:J... btJ~ tJ'Uojjm.eJ (one machine instruction per machine cycle) 'Jnnl'VI'U<?l~'U 1<?lm:::~:::bd m~'l rXIJEJ'l.Jdb'li'Un'UbbGintr~i1~l~~ ..(~~mjbb1J1J~l~ " flru~:J..x'U b'li'Ubfl~El~ integer add bb~::: add with carry) 'l'U'lJru:::~bfl~El~ else VAX i1~1~~ ADD :J..J1~t:-...Jmh'U .J~~'l-'JTIn~1J~~ltJ~~m<ilEl~ (microinstruction) else <J11~ml:J...jf1J'i5El'U 'l'Ud':::<foi'1Jb~mn'Un1J~l~~ 1:J..J 9 RIse 'lI ~.J 1J'Ubfl~El~ RISe ~~i1ml:J. VIlli 1il::bn~n1"iibb5lmtl5ltJ'U.J~ 1<?l~VI".:l~eJ\fIit...13...Jm:::V1' .'lJeJ3J5I'lJ'U.(1~bmbeJ~~ 'lJEl~~mi1<ilmTI:J.J~tJd':::1~'lfil5ntJd':::md'Vlii~~El~mi1<iltJmd':J..

........ = I ~ ~ t ........ .. 542 .

l~'W~€l:hln'U.jJ€ldrlll bbG'l:::m'U._Jf11~._JdilN~~'V\~ltJ'lJd:::md 1~~~~ " " (opcode) mdnl'V\'U. f1ru~:hI{jGl._JmdbmtJ'lJbYitJ'lJ~ilml:hlbU'U._J~€l~ bb'lJ'lJ~l u 1~ tJ1'lJdbmd:hlGi'1bb'lJ~m'jjl " f1ru~:hI{jGl.~ " .f ~.~b~m.h._J1~~di4~ b~:hI€l md€l€lnbb'lJ'lJ l'U.jJ€l:hlG'l-11'U.jJ€l:hlG'lGi'1b1nm:::rll'OJln~~m'11€l~m:hlldbi " " 'ill bb'lJ'lJf11i~._J~'lIl~'V\ltJ l'lJ'OJlnmd~l~tJ b.f11~.Jfh~~~~1J1J~1!Jsimple instruction format) ( " " word l'U.m:hlldbl€lfi'lJltJ l~$i€l 'lJd:::mdbbdn rlllVi'm:hlldblYi''WJ'U. G11bb'V\U.:hIll'U.1~f1._J'lI€l._J G11bb'V\U.:J " b'lJ~tJ'U._Jm~m'11€l~mjbG'ltJ l 543 f1.1'U._JG11 bb'V\U.r..'l:::~1'U.5b ~._JG11bb'V\U.il-11Wm " bbGl'V\G'lltJf1'U.mm'YiL~m ~._J~tJ lwii€l~'illd 1~m'11€l._Jn~'lJn'U._J~~bb~1 'tI q lw._J~.jJ€l:hl(._Jb~:hI lVi'b'll'11.u'OJ:::b1n 'U ~.jJ€l~n'lJ'lJd:::~'Y1fim'W~'U.1'U._Jb'll'11.m€l~1'U.:J€ltJl'U.jJ€lYi~l:hl$i€l bb'lJ'lJ~ltJ ~€l~1~tJ bf1~€l.bb'U.m'W~~l:hlldblUl:hlleJl~8~ " l'U. ~ru~:hI{jGl._J~€l~bb'lJ'lJ~:hIYi''Y1TI (relative addressing) oift~ I ~1'U.G1-lbb'V\u.bb'lJ'lJ~'U.G1€l.. " 528 Gi'r.jJm. 0 I "'~ " ._J~1-iilTImdnl'vl'U.~€l~'lJd:::b. b'Wdl:::f11~.b~€l.ft&Ju€ltJnr.jJl h l'U.nG'l1~'U.4 / amUvJ._Jil'll'U.._Jbb~~._J~~1tJni:i.8nSS1J RIse NG'lrml~ tJ-u~~~l Vi'b~'U._J'OJln~m1:l'11tJmd:hl RIse ~b1n~-n.jJ€l:hlG'lbbGl(. .:J'OJ:::rlllVi'bn(9mldbbG'lnb'lJ~tJ'U.G1lbb'V\U._J€l~bV1tJ.._J~mjbb'lJ'lJ~ltJ$i€l (register addressing) " mdnl'VI'U._J'OJ:::G1€l.d:::tJ:::n"n'U. 'tI rrrs l-ii1'lJdbbm:hl&hu'lJG'lmjjl~rlllVi'bn~md bn'lJmJ1'U.'lI€l'lJb'll'11 tJ1 " " word " ~€lUlf1ru~:hI{jGl~.h~rll'u'11tJmd:hll 'U.~1'U.jJ€l~~r11tJ$i€l ._J~~ ~.~b~m..'V\-d.:Jd:::w.l1'lJdbbnd:hl .'l'V\mtJf1~.jJl:hll'OJln'V\u1tJml:hl-11n'OJ:::ii'lJdd'l'Y1fim'W~..~ (displacement) 1 bbG'l:::bb'lJ'lJ l-iiG11u'V\u._JrlllVi''V\u1 tJm'lJf1:h1ilml:hl~l " " " .rl'Yl$i€l bb(.€l'U.._Jn'U. UG'l:::md81'U._J~ bm:::~tJ..~ 'OJ:::€l~'11d.:J~'lJd:::rn~ld1:h1n'U.'1~ VLSI ~Ul:hll~-n~~V1tJ 1~'OJln~m'U.h ._J._J~'U._J " " " ~._Jf11m~~b'11€l~-11m'U.:JbbU~€l€ln l~bU'U.1(.iil~ (addressing mode) lTImdbb'lJ'lJ~W-l b'lf'U.._JltJ"lm ._J RISe 'OJ:::S'hj_JU'lJ'lJf11~.1m._Jb'r'hnlJ'lI'U. u 1'lJ~1 tJ md81'U._J'W€l Gi'1b1nm:::rll~1'U.iidd:hl .l~'lI€l._Jm 'U.l ~.1~b'r'hn'lJ word 'W€l~ 'lI€l.:J._Jl'U.'l::: word nbu'U.m~ieJl.~G11bb'V\U._J'lI€l..'lJd:::1tJ'lf'Il~'OJ::: l~m_mn~miJ'11 ~1'U. rm l-iilTI fl1'jfh\1l~@l(p'hmn... md11.'ill l3.u~._J8.jJ€l~n'lJ'lJd:::~'Y1fim'W tJmd:hl RISe ~.13._J RISe l~~m'11€l~ l-ii'lJd:::1tJ'lf.jJ€l:hlG'l~ bn~mdbl._J~'W€l~n'lJ'lI'U._J'V\d.md~'lJ'lJd:::nw:il'OJ:::l&Jilf11~. .1~m'11€l~bU'U.i~.m'lJ f1:h1md'Yll.G11bb'VIu.:J~11. rm l-ii~m'WG'l~b:hlWr1 nm'OJul:hll bil€l'lJ'~. 'OJ:::rlll Vi'b~'U.~b~m._J~ rlllVi'mdbb'lJ~ml:hl'V\:hIltJ rll._Jmdml:hl~1'U.'V\u1tJml:hl-11~._J'lI€l._J'V\:hI~'OJ::: l-iilTImdnl'V\'U._J~'U. 'OJ:::b1n bb'lJ~ml:hl'V\:hIl u bUWlf~f11~.il._Jl'U.~bV1tJ. ml:hltJl1'l1€l._J f11~. rrrs l-ii 'jtlmn. ._J b._Jbb'lJ'lJ'V\~€ll&J~bb'lJ'lJb'yh~'U.G'ln ".:J l'U.jJm~~ 1~tJb%Wl::: l'U.d:::w-.f1'111&J-11bU'U._J ~f1._J .. lTIm~ilml:hlojf'lJi~€l'U. b~l€l._J'OJ:::il'll'U.jJ€l~ n'lJb'Y1f11'U.'V\u1tJml:hl-11 1~tJYh l'lJbf1~€l._J~~1._J~h€l~l'U. Vi'md€l€ln bb'lJ'lJ'lf~f11~.d$i€l md'lll~ml:hl 'V\~€l Q.1'Y11._JrlllVi'NG'l~'WTI€l€ln:hlllWr11.

b~8~l?Ib~mG'1l~1Jm~l.G'fT1.}::.J&ld61.J'}::.Jd.J~l~mild~lbbli'd iim::.}.}1il8~lu~~bY1~.J.G'f'YlDm~ fl •I c.fl'Yldt1.J bb1J1J~l~1~~ rrn ~l~.blnmdlilG'f81J 1~ U~l~. MSI LSI I bb61::.JG'fdU88nlilln urm 1 ~b.Ji'l1.J61 t1. 1.J~y]lm.Jl1.J.J'}::. ~ 1 t~I?I1. I .<ifu nmd~8 .~::.J '" bMmn1Jm'} lud1.}::.~d61~m~hn':h 1.JV\"b~m1J~~ . " RIse ~.}bbm~&ldbb1.J'}::. ~. b~~€l.~.J~l~. ~.J.}b1.J~. Berkeley RISe-I l~~~u~1. 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 .~n<il1 .Jlu~d~b'Yl~ bMmn1Jm.t1..m'}~G'f8.J." .J.J&ldb~m 'lIUG'f8.JlU 1~8 ~l.J'}d~'l5ulilln~~m<il8{ 11.b~l1.J.J1i161um~l'}m.}88nbb1J1Jbb61::.}::.iu~.bI?lUbnmn1JlJ'}::.J'}::.ium~l.}::.Y1~ ~.I.J'lI8.J61.J~u~ll~.m1bb'}n blJUlJ.~U"l iJ.}~€l ){ •I "".J~rlnbb1.Ju~1.Jbb1J1J~l~ bb~::.J~~ubb1.~b'Yl~ tut61~ ~~bY1~.J'}::.}::.J~88Ub'Yl8{~'Yl1~~nll " .J~bnl?l~u.bdm'VIUd.:hU~1Jd.J~~ btJu!.J1.J~u 1~ t1.J'}::.J~ln ~. lu .fl'Ylb~mnU lUb~~€l.JlU'll8.I.J61m~l lum~Iil::."" lJ'}::.}::.J.~'YlIT[ll'v'mlnri.J.y]llV1m'}1.}~~<il~u tut61~ VLSI .J~btJUbb1J1J~l~6'1 I ~l~.J~u~ilu .}bb1.}bl1J.}::.Jlu .m'}~m~ rnulu.Jb~nU€lHVI~€l ~l~b61~ crsc RIse i'lml~~~nll unl~~bMmn1J b'Yl~-U~ 11.iu == ~l'VI~1Jtlhb'l5m'l58{~1Jd.~d61~61~l~.~l~. .Jl1m~ b~m. ~lUdUV\61lmbc.~lru 6% btJU~dU'lI€l.~~Iil::.}bbm~ (compile time) 1.Ji'lml~b'VIm::..bd61l'VIud.J l~b'Yl~-U~ l1.J.J~1J1.JIil::.J bb~~l~.}::.J'VIUd~m1J~~ .V\':ll.Jdbct€l.ul~~1.J61m~l~i'l~dl~~1J~€lU~.J (delay) RISe ~dU ~bnl?l~um~lu~~..Jm'} 1~1.btJu~l~.J1il61U " t~'}Ml?lbb~bY1~.J'VIct.iuy]llV1bnl?lm.J.J.544 unfl 13 / flomlbwwslils:::lJa RIse ri.}1il .J ~.Jlu~bnl?l~u~ ~€l€lmb1J1J lV1~~.nn til~m~l.Y1~~G'fU1JG'fUUb%~l::.Jm::.Jl~.J bb1J1J~~1J~€lU " lu~lum.J~~btJu8~l.m.JG'fdu~i'lml~'liu~8u l~u'}::.J~€l~ybb<il€l{tI?l~~d l1.n€l1J~dmb~mn<ilm<il'}3lU SSI bb61::.Jlilln 8Ub 'Yl€lTI~r1Iil::.m'}G'fI?lYll~ . ~.iui'l~l~lnll.JlU1Jl.y]lmd1.J&ld .}b'l5m'l58{~.}lill~ .J bb61::.~::.G'f~~Iil::.Jm~lb~~€l.JIil'}V\fi'n (circuit board) lU'lJru::.J61 mjbbli'd ~..y.J~u~iluY]ll ..b~ul~lilln~~ tm t~l?I~l'VIWm1md1J~~m~l.}::.'VIll.m.J1.}.}bl<il€l1JG'fU€l.Ji'lbv\<il~61~G'f~~d'} \J 9 " tl?l~ t1.Ji'l b~~ lV\~lV1i'l1.}G'f~l.}::.~'YlITm~ m~l.n€l1J~d~bb~.J~u ml~btJu 1.Jdbbm~duJl ~d &ldbb1.d l~Y]ll Vlbnl?lbb. (loop) Vli'lt8mG'f~Iil::.}::.iU~.JIil::.J.JlJ'}::. VLSI .

13.1~~1. word 8. ~~~bnC?i~U (2) mdeJeJnbb'lJ'lJ else 'IJ RIse $\eJ mdeJeJnbb'lJ'lJ. .JnG1ij1&Jri-l 5 bb'lJ'lJ 1UGlldW1 1&J1~u'lJ dl~lTImd€lI-l~-l uuu] ~~f! bGleJ~bb~::.xu1.md~f!eJ-l "IIln bYl~1ul~~ VLSI . ~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. U~I~-lb~~eJ-l (MMU) ciIVl~'lJGll bbVlU-l'lJeJ-l.Vll-l~-l~ufi'dU bb~Umdll-leJ1.1~~'lJ1.~~ RIse Powerf'C n1&J1~-i!bYl~1u1~~'lJeJ-l RIse GleJ'l sn n1~'vb~ru~njjru::. bb~::.8 ~-l1.lTImd€ll-l bb'lJ'lJ~Ub1n 'IJ uun11GlI-lViln 4.Jd::.h::. 3. 2.Jd::. store 1&Jf!u'lJf!UUmd'Yll-llUn'lJ'iieJ~~~~C?ib1~-lGllbbVlU-l1&JGld-lGll .n~ 'IJ RIse 1~b~~b1n~~GleJeJn~l1-i!-llU 'IJ 1~ijmd~eJ~~'lJnU~ln~ull (1) rrneanuuu RIse "II::.1~'lfU"lllnmd\.n1~mn ~-l.Jd::.~eJ-l'Y1lmdeJeJnbb1J'lJbb~-ll-l"lld f!T1-lbb'lJ'lJIilI~eJ-l~'\.b~ruf!~UG1'lJl-lfilU'lJeJ-l "II::.'lJeJ-l RIse 11.7 bbf!C?i-l1Vi'b~umdbm~'lJbf1~'lJmdeJeJnbb'lJ'lJ:S'\AJbb'lJ'lJGlI-l'l VI~-l"llln~b~~eJ-l1uGld::.~lru ijlTImdnIVlUC?iGllbbVlU-l~mJb~~-l1&J~lTI 'IJ 4 1'lJ<~1 1C?i~1.4 I amUvlEIDSSlJ RIse 545 1. .UJ11V1&J ~IVl~'lJf!mi:1Gl~mdd~ Glldl-l RIse mdeJeJnbb'lJ'lJm~ldb1'Y111~JI~nll~ln 13. ijmd€lI-l~-lVlUl~ml~lillb~~-l ~l~-l 1 ~~-lcilVl~'lJbbGl~::.'Y111uVlUl~ml~1il1 'IJ 'IJ b~eJ 1vtt~GllbbVlU-l '-' 6.Jmru: . . ~IU1UlJGl'lJeJ-lmd€lI-l~-lVl~1 ijmJI-libeJ~ (floating-point register) 16 iil 4 lJGl 'Y1l1Vi'm~ldb1€ll-l~-l1~mGleJ{1~&JUeJ~nll .J1-i! 13.J.Jd::.iilV1U-l~eJ ua::.~~Vlm~bb'lJ'lJ 'IJ mdbm~'lJbf1~'lJ~Ulf!U 1"111~bbf!C?i-l1Vi'b~U 1UGlldl-l~ .iJeJ~~~€lI-l~-lri-l1 9. ~1i'i-lb~~eJ-lf1ijb~~-l'lJUlC?ib~mbVlijeJunUVI~C?i 'lJUlC?i~I~-lb~~eJ-l~111. 1&JmTImd€lI-l~-l1C?i~€leJ~~~eJ-lmdmd€lI-l~-lVlUl~ml~IilIVld-l~~-l ~mJ'lJeJ-liilb1nm::.1~'lfU"lllnmdUl~ruf!~UG1'lJeJ-l 1U'lh-lVl~-l b'lfU else ~11-i! ~11-i! bb~::. SSI VI~eJ MSI uneJeJnbb'lJ'lJ"II::.xUbbYlU~"II::.xuVi'GlJUI~u~.neJ'lJ~l~. 'IJ 'lJeJ-li. 1. 7. IillU1U~~-lf!-lf!C?i~ijmdb1~n 'IJ .~li'i-l bbVlU-l load bb~::. 'IJ 1-i!Vlul~m'lJ~~md'Y1l-llU'lJeJ-lVlUl~ml~lill .

. c-..) UU :: " E <= c c :~ = 0 .:. aJ '" c-.S '" QI "C QI on = oS = e'II c-.."..c QI ::I Z ::I ... Q '51! QI <"1 M . (.i C" .£ § 0 u ......~ 4!! . .... 1 = "C QI '" ~ -0 e ~O <=i on '" "' "' '" . en lJ OJ e£ <.c 01 ~ ~ c.. . ..I 0 .c = "C Ql ::I e ~ ::I . .. .: QI E 'i ...-= '" e .. ~ =... \/} lJ 0 '1: "C "C 0 QI ...: c-. = 0 "C QI eee = = ....S ole QI QI ....5 '" ..~ '" .. '" = '" e '" = .::~ ao M ~ 01" ~ eo: ..g N N V") '"' "5 '-' 'l\ E s: .:a .c .c N ~ r:"1 N ~ N c- loll'> COl 01 lI'> -. . c-.I . 0 QI 00 s:l (".1 ..: fC QI CIlQl QI 'T (f') M 'T 'T .S -'"....c Z .. ~ -o Euv r/l 8 co 0 r- .... ~ '"= ~ e . 'iii QI 'T 0'1 <C sr: .= -. ='" . ~ 0 ::8 00 <C r'l :9 .. U . .n lJ '" >. Q '" " on ~ ~ -= :se ... ..I '" .::I fr-" COl "7 ~ ~ ~ iF! = '" ~ ...c .: ~(IO u . . .. e CIl QI .c '" " ~.. ....l "C e'II ~ :i '" Q = ... U '" ..S N ....~ :a Q .. <C Q .2 . " '" <. r. =QI QI 0 "C N <"l N ".. '" Q CIl '" QI 'T 'T 'T OC 'T <"l ~ ~ QI .. '5 X ::8 <r: > '" 52 C ~. . QI ~ ~ 0 . >D .i "7 ~ .9 <= S <..c QI ... ... .. ~ ""' oS .. ~ = 'iii . ~~ Ql Ql . ~ t) ag '" c " -o 0 o: o 546 ....:r. ..: '1:j QI .c Q .... ... u '" '" OJ ..l ~ ~ ....E z «.... :s '" e ." :s :s ::: .I QI -'V." <'l 0 Ql Ql e£ ... .c e'II ....i 0(0' r- Z . =QI 0 '" '" <. =.c Q 0 <.

n'fl 'IJ Jll~n'U RISe ~~~l~~(. .'{l'U~n 5 cjj'lGie:Jd-Jle:J~Lwm::.t.~'Y1TImY>J'lIe:J~f1e:Jd-J"~hb<ilfl1 L'UVh-iifld'OJ::.d-J1'fle-.d-Jl'fle-. ~~~lJ1n~lln~ L'Uvh-iifl 12.nflUJll~~e:J~~'U<ile:J'U ~e:J • I: Instruction fetch ~~'VI1::. l<JlllbbGi'fl::. • I: Instruction fetch ""= ({ d"il~b<ile:Jd • D: Memory dtJ 'IJ ~~'VI1::.b~ L'Unld L-ii-iie:J lJ1btJ1~u mld-J-oJlb~~fl'U f1ru~d-Ji:i&i~e:J~-iie:J~<Jl.]mbd-JlL-ii bfl~fl~ L'Umd'll sn ~tJd::.J'fld::.1J1'Um~'GJiltJd::.'lhmY1d-JtJd::.n'fl 'IJ 'IJ RISe (.e-.nldtJd::.Jd::.~'Y1TImY>Jbi:'1 mm lltJtllmlbbuu ~ bb~<Jl~nld L-iiltJljhu~ 1<Jl~ 'GJLoitttJtllml ~l~'l d-JlL-iin"il::.mdtJd~d-J1'fle-.~flilmdr1l~lW~ld-Jn1J'V\. 'lIfl~ltJdbbndd-Jcjj'lbbtJ'flm'jjl Lwmdw11tJdb6J!m6J!e:J1 8 cjj'lbbdnmjLwm~n'fl 'iJ 'iI else (.md8l'U~l~~ 'IJ 'IJ • E: Execute ~~'VI1::.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::.e-.yhm~m-iie:J~nUmld-J~ld-Jldbi .n'fl RIse bbGin5:jflru~d-Jti&i'lle:J~ else 'iJ 'iJ .J'fluuu . l<Jl~b%Y>Jl::.~'Y1TImY>J lJ1d-Jlnn~~e:J~bvil'lle:J~mdt.6b I bb'fl::.'{l'U L'VIru'OJ~btJ'Umdbb'flmtJ~~'U-iifld-J'fld::.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~ .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::.J1n~lln~mdr1l1tJtllmlnu l f1e:Jd-JY11b<ilfl~'U<ild::.I.md8l'U~l~~ 'IJ 'IJ • E: Execute ~~'VI1::.J'fl1<Jl~ ALU ~~-iie:Jd-J'flUlb-iilbb'fl::. n~ 8 bb~<Jl~ Vib~'Umld-Jmn-~lme:J~mdr1l1tJtllml L f1ru~d-Jti&i-iifl 4 .J'fl1<Jl~ALU ~~-iie:Jd-J'flUlb-iilbb'fl::.'VI1l~1~~b<ilfl1 ~ 'IJ .J'fl~Y>JTIbnUe:J~L'U btJ'Umdbb'flmtJ~~'U-iie:Jd.l~dflumdr1l~l'U (instruction cycle) tJd::. E tJd::.J'fl~Y>JTIbnUe:J~L'U .'{1'U 2 cjj'1~b'VI~mb~'hOJ~~<Jl1le:J~Lwm::.'VI1l~1~~b<ile:J1nU'VIl-b~mld-J-oJl 13.~'Y1TImY>J1J1dJ'Ue:J~l~d-Jln ~tJ 13.4 mdr1l1tJtllml~l~~ (instruction pipeline) irn'OJ::.

~bb'lJ'lJbb~Ub~mnU'lJ8-J'l!<?lf1l~-J1um::.~U'i18Ub'Yil1 u bb~l<?l~'lJn&imdr1l-Jlu n 1U~U'i18UE ~-Jb~m-n8-Jn'IJ'VIU1~ ALU iiuiJn~::.eJl-J~-J'VIU1~ wait state) .~'Y1TIml"li.6d bbi.md~'Vll1vr'lJddh'1TIml"li.~lG1 ~G11rJ1m~f1l ~-Joii8uYi'IJnU lrJ1b~~'lJd::. 10iinm 1umdr1l-Jluulunll~u'i18u5u btJUi.A-J1rJ1l"118~nu~-Jbbi..OSm.'1'-J~u lrJ1~lnn-Jm~b'Yil'lJ8-Jmd'l.8-Jmd .y.uu-v. f1l~-Jri8U'VIUl ~::.8-Jbb'Y1dnf1l~-J "NOOP" 1oiinm'Vll-Jlu 1Ubb~G1::.'1'<?l-J 1Ud'lJ 13.~1G1~G11ul'lJtilG1u'1rJ18~l-J~md8-J ~-Jm~C.'1'8-Jbb1.G1um~ldf1'lJ~'IJ'lJd-J 1vr~'lJd::.'1'8-Jn~::.'1'-Ji.'1'8-J'li8-J'Vll1vrm~ldf1eJl-J~-J'VIul~ml~~li. ~-Jiiumd b~81vrf1l~-Jbbdn 1oii'li8-J~8mdil'IJ'VIU1~ml~~l'VI~n 1vrbi.~1G1~G1'i1l~'lJn&i mh-J hn'i1l~ f1l~-Jb'lJ~~U~l ~'IJmd'l.nG1 RIse md88nbb'lJ'IJ q 'lJ 1'lJtilG1u1 vr~m~'VI~8~~u'i18uiium~ldf1'Vlll~~ mnun d'lJ 13.'1'-Ji.-lbb'lJG1m'l1l l'lJtil.~lG1 ~G1niJ-J~ ~G1'Vll1 Il'lJul~u'1~m~ldf1'Vll-Jlu V U8mlndf1l~-J~C.~'Y1TIml"l ~-Jm~'Vll1vr~'lJd::.~~m1l1vrbn<?lmdd8f18~~G1~l"ITI b~81V1l'lJtilG1u'Vll-Jlu~81'lJlrJ18 ~l-J~md8-J l'lJtil.h-J hn'i1l~ ~i:1ru'vni.~'Y1TIml"l nl mdbbu-J~U'i18Umd'lJd::.~'Y1TIml"li.G1u~::.i.n8'IJrJ11~~~U'i18U ~-Jm~ldf1~lUf1l~-J lrJ1~lnn-J~f1l~-J b-nll'lJl1'l Ul'lJtihu'1unmb~mnu bbG1::.it"1'lJtil~um~ldmiluf1l~-J 'lJ b-nll'lJ'Vllmd'lJd::.'1'8-J'lJd::.~'Y1TIml"l'lJ8-J 1oii~G1~l"ITI~1rJ1~lnmdf1lU1rn~bn<?l~u 1u ~-Jm~~::.m~ldf1'Vll-Jlu lrJ18 ~l-J b~~'lJd::.'1'8-Jb'Yh'lJd::.8-J1G'lf1l~-J"NOOP" bb'Yldm'ihl'lJ1u~<?l~b'VI~l::.n-n8dqjG1 G1-J1u~\\im'i18~ bd8-J~lnml~b~~'IJ~lmbG1::.Jd::.'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::..'1'~ 1<?l~ hhbbm~ q ('VI~l~n-Jf1l~-J~'IJ8nllhJ~md'lJd::.~1G1 ~G1 btJum~~u'i18uiiu ~U'i18U d88n (dependency) iJ-J~~~ 1vr'lJd::.'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::.mi8-J'Y1l-Jb~m ml~~l8~&i<?lnU f1li{-J.8-Jd8mh-JU8~'VI'U-Jl-Jd8'IJf1li{-J (b~~nll (branch instruction) I I I I nl~f1li{-J.~1G1v..'1'1~~Uri8U 'lJd::.~'Y1TIml"li.~lG1~G1 'i1l~~l~'IJ U-Jfl'IJ1vrmd'Vll-JlUbtJUbb'IJ'lJb~~-J b~81vrm~ldf1'lJd::.m) C.'1'-J~u rJ11~mdb~~'li8-J~8mdn'IJ'VIU1~ml~~l q 'lJ d~IUi.C.Jd::...m~i.'1'<?l-J 1vrbi1Ul'lJtilG1U 'lJ ~'lJd::.y.'1'8-J f1l~-J~l'VI'ill b'lJ~~u~l~'IJmd'lJd::.i.548 unfi 13 I flOlJUblm.6c 'lJ 1u~n'l1rn::.C.S:::Q8 RIse 'i1l~~l~'IJ'i1l~'lJn&i m.m~'Vll1vr~'lJd::.'1'<?liiu HlbJn-J ~ 'lJ q i. .~1G1~G1 'VI~8mdd8f18~~G1~l"ITI~lnf1l~-Jri8U'VIUl .mdbbdn 'li8-J~8mdn'!J'\-'1Ul~ml~~l'V'l~niiu~bV1~.8-Jm~~~G1~l"ITI~lnf1l~-J5u l'lJtilG1uG1<?lG1-Jiu~81umru~f1l~-J'VId-JC.

"0 o:l t <:t: + U u 0 0 Z "0 "0 J.s OJ) o:l ~ co 0..:. .c c::. -l 0 <:t: V) ._ co i:: <::l 0...! o:l "0 U "0 "0 ~ 0 X u 0 0 Z 0. E .r:: u ..9 u O"d ...r:: o o:l <:t: V5 i:: ~ . ~ t <I) >< ._ co 0 0 0. J_ J_ ~ .5 / 1t101au1uEf01UJilSDSSlJ RIse 549 ~ J_ ~ <:t: + o:l U J_ J_ J_ <:t: + U <:t: "0 ('. "0 "0 <:t: V) Z 0 0 0 0 Z 0.. 0. z ....9 .13..._ z o o ._ <I) X -l 0 -l 0 :d: ~ . .

.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.11 bb~t 12.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 .l'lmj~<iI~l~1Jmwd:::d-J1~v.I'l~b~~nll "Delayed branch" \]nuld-Jlloii1t-tmdbv:\d-Jt!j:::~'YlfirnY-!"lI€l~ branch ~ir~ 1&J~v.J~ It!1l1m.7 bb~<iI~ lVib~t-tv.12) " t=3 ~b1m t=4 ~l~~ JUMP flnt!j:::d-J1~v.!~<iI~~ YlllVit!j:::~'YlfirnY-!"lI€l~ b~mbn1"l1ilb!!'Vlld ~~1~ulb'YlI'lii.B A.Z .7a bb~<iI~mjYll~lt-t<illd-Jt!n~"lI€l~ It!1l1~t! ~li'f~ JUMP 12 (1!1~t! 12.S C.S C.Jll:tt~mjl~ G'il~1Jmdt!j:::d-J1~v.B A..B A. It-t<ilj:::n~ " RISe ~~~ld-JljflUlb'YlI'lii.A Delayed Branch LOAD ADD JUMP NOOP ADD SUB STORE X.A I..J~ (branch instructions) It!1l1m'! b'YlI'lii.J~<illd-Jt!n~ <?i€llt!~":il:::<if€l~flnt!j:::d-J1~v.A A.OSfilS:::QaRIse bd€l~·..9 ~h~{j ranch b mJ1J:un~n1JLL1J1J delayed branch Address 100 101 Normal Branch LOAD ADD JUMP ADD SUB STORE X.Jmn<il~t-t":ilt-tnll":il:::t!d:::d-J1~ v.A l05 I.1'l1t!1l1mt:J.llmrdld-Jb~~1JJl~"lI€l~·MI~l~~ ~t!d:::~'Yl firnY-! ~~md-Jljflt!wt!j~ " .J~~bn<il~t-t dt! ~~~l~€lfi1Jl~lt-t1J'Yl~ '" 13.550 unfi 13 / flO1JW1Wl.A 106 A. 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.":ilri€lt-t G1lbb'VIt4~"lI€l~~l~~~€l~~<iln1J~l~~ ~~€lt-t-iil~ bbt!~ndbb~<iI~ Vib~t-t t-t<illjl~ 1 1 13. 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.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~.B C.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 ..Z 102 103 104 105 106 lA 105 A.J~ d-Jlloii 1~<ill'Vl&J (re-organization) iherrrsusn lVi~":illjrnl~l~~~l'Vlwmjbt!~~t-tbbt!~~G'il~1Jmjt!j:::d-J1~v.Z Optimized Delayed Branch LOAD JUMP ADD ADD SUB STORE X.J~) 1lI111~ 13.9 1t-tI'l€lGld-Jt! "normal 'VlGl~":illn~~l~~~ 1 ~l~~~b~~~<illd-JG'il~1Jmjt!d:::d-J1~v.

B 105 STORE A..A 101 ADD I.1.A 105 STORE A. Z ~ 3 ltJiJlau1uCI'muvlBnSSlJ RIse 551 4 5 6 7 (a) Traditional pipeline 100 LOADX.ll" Ldn~ld-J biifl"'OJlnL~bb'Vldniil~" I\lOOP b-nlLtl ~"'V111Vi1tl{ILflu"tJ~El" m 'IJ 'IJ 'IJ . Z ~ (c) Reversed instructions 'nJ .5 / Time 2 100 LOAf) X.7 m".~8~liliilil4~ijdelayed branch luLtltJ1flu~"Ltl ~bdm t=5 iil~"~ 105 ~"btJUbihVId-Jl~'lIEl"q. Z I (b) RISe pipeline with inserted NOOP 100 LOAD X.'~''U.7b bb~<.A 102 JUMP 106 ]03 NOOP 106 STORE A.A 101 JUMP 105 102 ADD I. A 101 ADD I.A 102 JUMP 105 103ADDA.il"md'V11"lU'lIEl" LtluLflu"Ubfl~El" RISe 1<. 13.11~"JUMP 'OJ~tmeilUb-nl~ LtluLflu dtl 13.il~vi'd d~~~bdm~l-if Ltl tf"fl"b'Yllb&id-J .3.

JldbllJd::.J.reJ.J 32 UGl8~1.Yl!:J luGld::._j~eJ~ UGl ~l'VI~'lJb'G1U'Yll._j ~ ADD (~ 102) t=4 ADD JUMP "iI::._jii8Un~'lJJ.nG'1 ~ 'l._j ~ bm::.~~ MIPS Technology MIPS R4000 rnu lubb~::.J~ulfl'U 64 ~._jnUb1!:Jnl1 1(9)~lJn~~1~.._j~U ~.._j~U ~VlUl !:JmlJ.Jl'Y11.xUbb~111JdbmdJ._j~"iI::.j'hJ.fI 'Y11mJG'11J~1~._jlU blJ~ ~U~1~'lJmdlJd::.ml(9) 1(9)'l bn(9)~U 1unm 1 105 blnell'l._j ~nm delayed branch ~.blJ~~UbblJ~._j~1\9l1J~1~.J-0511 Vin1'l._j.1TIbbJn ~l~.bfl'1"i1~U n111JdbbmJ._jbVI~m.Jln b'lAldl::._jGlm(9) 1~bbri.J~.J. 1~il d8U I'll JUMP ~.boiil'G'i11Jti1m! ADD tJn lunmbb~mn1J~~l~.'Y111Vid::._jlU'lJ8._j ~l~._j~8~lU~1\9l1J ~ 11JdbbmJ.1~n~11t1.j..m~~G'1~l~.l.Jl~~~ ~._j (call) Lb~::.7c bbfl'(9)._j rm~lUb.'lh~ '11 tn mu 1(9)'lJ8._jdJum.r8._jmdnlVlU(9)Gllbb'VIU._jt1.~eJn1~fl'bGleJ{~dJUbihVlJ.I h'lJ€l.Jd 1 VI'\._j t=2 ri8U'VIU1~1~._jd"il::._jfil'lJeJ._j~U'l ~.bi4U 1~1111JdbbmJ.._jmd 1tl"ilunl1md LOAD "iIln.Jl~'lJ8.Vll1.Jrif"mlJ~Jll'jj1 fl'1J.'Y11.Yl~"iI::.Jln'lAl8~1'VI~'lJd::.Jldbl'Y11 ._j lVibi4umJ l~b'Ylfl'Ci._j " ~ "iI::._j1J~8~ lVid€l 1~1~mGleJ{rifl._j"illn~1~._j "delayed load" fl'1J._joiieJJ._jJ.._jblnlJd::._j b1~n 1 ~V1._jJ.xu (idle) LOAD "iI::._j"il::._jlU~b&1J. lG'iLYl~.md'Y11._j ~'Y111Vibn(9)mJ~(9)y..niJGl~mdJ.JriflbblJ~m'jjlm"il~UVll~1~.._j LOAD b8111' LOAD .xu Jll~VI~.J (return) ~l'VI~'lJmdLlJ~~ubblJG'1._jn-iiu 1~mh.lJd::.Jl~~G'18~1._j~.Jll~bb'Ylu 1TImJ~fI~1~fI~._jmdG'i.J.I RISe 'iubbdn'l 9 ~il-051'Vl'I.Yl!:J"iI::._j"illn~l~.J 64 UGl ilmlJ._j"illn~1~.J~l~ufl''lJul(9) dlJ._jmd ~ <Ji811J"iIum::.J._j 1~ bci8.J1Jbl~(9)~1~'lJ~1~. 11Jl~~Lfl'J.Yl!:J~~~Gl1(9)!:J'lJ~~'Yl 'l.Jll~n'lJ~1~._jdJunld ~ (unconditional branch) ~l~.JbVlU€lnl1fl'miJGl!:JmdJ.xu.b~ mdblJ~~ubblJ~.Jl~nm ~ bti8.J1G'1 ~~ uin._jfl'miJGl!:JnddJ.bmellUboiilJ._j~l~. nlb~eJu 1'llfln'Yl(9)fl'eJ1J~l'VI~1JmJ ~ ri8U'VIUlbb~1 boiil11Jb'Yh.J~~._j~1~.J1JblU1J.Jl~eJU~~l~._j program counter lJd::..reJ._jbln.lJ._jn'lJ~1~.'lJ'lJillJdd~'YlTIJll'lAlfl'.yj-._jilb~8U I'll (conditional branch) branch m:::1J1Um~"iI::.~1~.xun"il::.J1~~~~1~.._jn"il::.JriflbblJ~Jll'jj1"il::._j il%::.J~._j'VIU1~ ~1~mGl8{ ALU rm l~fl'miJGl~mdJ._jbb<Ji"il::._j~l~'lJmd LaJmJ.r8.mG'1~~ ~ NOOP branch J.r8._j~d8md LOAD ._j~dJulJd:::1m'u~u'l1~<Ji811J lud::._j~u ~ . luVi'doii8d"il::._jb~!:J lV1~bYl81Vi.Yl~mJ.Ua RIse ~1J 13..3 / flEnJ11i'JWlOSUlS::._j m"il$J~mlJ~~ubblJG'1..Jldm ..Jll!:Ju8n Inc._jri.Jl ~ JUMP t=3 rmellUb.b~ luYl8.'lJ'lJlJDu~md~"iI::::mJ.552 un ft 1._j1(9)'l ~._jmJ._j 1~ blJ~~U~l~'lJ~l~.JeJ 11J b lJd::.

jf~lu~lVl~1Jbn1J-iim.n~ RISe ~U'"I ~8 l.Jl~~G!~'lIUl~ 4 gigabyte 'lI8~G1mi:l'11~m1~'lIUl~32 U'11.iu bln88nbb1J1J~l1~~il1'11b1U1::. 8l'Ubb~::.jf~lu1~8~bG1~81~~1~<K8~1u 1 8l~8~VI'i-bJ~ml~.~JG:w~-iim..Jl ache c 1~~lnti~ 125 Kbytes ~~bbU~l.Vl~ bbG'dln~JuVI"d~ lwi"t1 'lJ 'lJ C! 'lJ ..Vl~c. .n::.h'liJ~u1::.n81J~J~~~m'118{'lIUl~ 64 U'11.Vl~ R4000 1~ilm11.m~l1b1'liJt.iu~::. character string 'lIUl~~lnti~ 8 11J'11'1cK[~~m11. tore btJum1'f1l~lu1::.1JJum1 . .jf1Jd1~c.13.JlUJU32 ciiJ bb~::..11 bbG1~~'l5~f1l~~ bvi~b&1~~lVl~1J.lmb~::.ll Vim1U1::.Vl~il-iim.Vl~ lu'111::.Jl~b~mJm lum1'f1l~lu~ln ~J~ cache '11l1l~ 13..~J~~~'f1l1~b~J~~~U 'lJ' .G1~fl1VibtJUG1mi:l'11~m1~bb1J1J~l~~G1~ 1~~b1u1l~bd8~11~lVlw ~Ju~~::..Vl~U1::.blf1b-iil1VimtJu1m~G11l~'lIUl~U'11 f 32 ~~VI~~ m1'f1l~lUn1J-ii8~~~~VI~~~f1b1Uf1l~~ load bb~::.il~~'1i8u1::.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::.bbu~ml~VI~l~ 1f1~1ViG1~'U'f1l~l'U 1~~l~~u bb~::.~'YlTI[)l'\AI'lI8~1utih~bb~::.~J~e-J~ (coprocessor) ~lVl~1J1J~Vll1~~m1V1'i-bJ ~fm~.l~~~::.bn1Jf1l~~mh~~::.n~dn1~bb'11n'1il~~ln..jmb1J1J double-precision floating-point numbers bbG'~::.ilVl'i-bJ~flJl~.10 bbG1~~'l5~f1l~~~lm~lU~lVl~1J.jA'lIul~ terabyte (~lU~lU 11J'1.Vl~ R4000 1~~b%'V.~8~b~U 'lI81Jb'll'11m11~~lu~~8u~l~.Jln~ U8n~lnd G1mU'11~m1~ 64 iJ'11i:i~'liJ~lVi.\lf1bbU~~btJu flag bb~::.1l~~~~VI~~~::.~'YlTIm'V'lG1~G1~ 1~ 'lJ 'lJ .I ~JUVI"d~1Jd1~.M1u~~m'118{bb'YlU ~~btJum1V1~m~~~m1G11l~~8~n~U~l~lVl'~1J~~m11f1~d8U 1'l1 ~tJ~mn bb~::.j([fI~bbG1~~~8U1'l1 (conditional code) tllm~l~lU'lI8~ f1l~~1~n'11l~'f1l1Vibn~b~8u1'l1(condition) ~U~l d8u1'l1.fI~~VI-d~ 'lJ 'lIul~~fi8U-iil~ lV1b1!d 'liJ~ lVi.i:i~'liJ~ l'Um1'f1l1Vim11<K<i181J1::.jff1l~~b~m 'lJ 1..6 / i3Uj~ MIPS R4000 553 bbe-Ju~ml~ff~Vi'uTI'lI8~ 1y.Vl~ lu'111::..VI'"ll~ 'lJ 'lJ 'lJ 'lJ . ciiJbbu~m~l 1~~m~~ll.hd m~l1b1U1::.jff1l~~~ilml~mJ l 'lIUl~ 32 U'11bVlt18unuVI~~ b-d8~~lnf1l~~'Ylnf1l~~ilml~~-m'(hnu ~~'f1l1Vim::.Vl ~ R4000 blf1bbU~88f1btJUG18~G:hu i.n~d '11l1l~ 13.) 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 ciiJ.m1~~G'il~1Jf1l~~ lV1~'lI8~ 1u1bbm~ .Vl1l~-ii8~~ s ~bn1JmJ1u~~m'118{~J~nu~~~u C! cd! 'lJ 'lJ 'I 'lJ 'lJ 'lJ 'lJ 'lJ .Vl~u'111::. ~~ bn1.Vl ~.iUb~~~~::. .

.lSlml~~l~~"]~'U l'U 'JLJ 13...\hLG'1~m..554 unf 13 / VlDllW'JW1DSVlS:::lJa RIse m~iJd'Um'J€h'Uf1l~"]LLfI~'VI~d~ml~·.] 3 LLiJiJ~LLG'1(91.]~~mG1€1{~ L'VI~EI'Un'U ~.]f1l~.]'lh ~ 1 VI m'JLLLJflml~'VI~l~~l~~'U m'JLLLJfl1LJ'JLLm~ V-Jflm~'\'llJ"lIEI.iJ MIPS R·Series • OP LB LBU LH Description I.] 'lJ ~..8 'lJ ~ 'Uil1m"]G'1~l"]"lIEI"] (91'JVlG'1 1~ LLfI~lnm'J5l"] WLLiJiJf1lfhYi... 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.'l'U'lid.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.~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 .]nm Vll11~ 13. false NOR Special instrudions Shift In.:lihW.]~ilml~~iJ'iiEl'U~'UG'1l~l'JflLL1l1"l11J.10 'lIGl~'hi.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.

nnGllll'V\~~~nl'V\'\A.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 .~~~l<?1fl1'lJ'\A.nV\lmTIm1nl'V\'\A.vh-iJfldo.)~ l~mhdi1~mdl'h ltJulm1 n1Jbfl~€l~MIPS ~~dJ'\A.l~ U<?1 32 b'li'\A.~~~b<?1fl1 1 1 rs irmfiu 128 l~m.l~16 U<?1 dl1Jll ~ 1'\A.~~~l<?1fl{ r2 .~~lll'V\~~~mjmJ1J~l~~~~ ll~~bm l'ihJem~~~ l l~~~bl1J1Jb~m m1Ell~8~'V\~'mmld.-iJm.l~word (load word) mo.13.d.! 'iI 'iI . ltJl~mh~5'1tJd~~'VlTIm~ l'\A.m~'h~~'\A.m~n~ RISe bfl~8~5u'l GlflltJ MIPS otII at.j)~bl~~~ludtJ is. 128(r3) load word at address 128 offset from register 3 into register 2 'V\d-Jl~i1~md8l'\A..1mctions Load Double Coprocessor Store Double Coprocessor BCzTL CD7FL LDCz SDez e:n1~llT~1.~~l~f1IGlflmd'fllltJulm1n1J:S~~ l'\A.base register :S~~ ~ ~~5'1~miJ<?1~mdd-Jlm~~~l~f1l~~bl'l~fl~lb1J1J~l~ (. \.nn~~m<?1fl1~~ 32 G1d~'\A.md-Jldm.1l~~'V\d-J~lh~nfl1J~'m f1l offset 'lJ'\A.J~'lJ'\A.~wn'\A.s) ~ 'lid~lVfmd'fllltJulm1dJ'\A.bd-Jlbn1Jln'\A.I 'iI q 'iI q lw r2.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.bG1d 1~ nl~d-Jll.~'\A.ro.jfdJ'\A.

nG'1 ~ ~lVl-Ul ~. r4 lw r2.d-JdG'1~G'1 iJlh::. <16-bit offset> (rO) lui r 1.d-JdG'1~G'1 1'UbU816'1nl~l1 (superscalar) bbG'1::. <In-bit offset> lw r2. <32-bit offset> lw r2.J lUnl"ilh::.J1Vi~"j~u. r l.. <low 16 bits of offset> (r l ) lui rl.1'ubue:J{1.utilm.d-JdG'1~G'1V1m~f1l~"jo/i8V1d"jd"jd8'lJmTIh::. <high 16 bits of offset> addu r l. <low 16 bits of offset> (rl ) Apparent Instruction Iw r2.t (superpipeline) 6'1mu<1I ~m"id-J I-type (immediate) 26 f-type (jump) 6 R-type (register] 5 5 5 5 6 Operation rs rt Immediate Target rd Shift Function Operation code Source register specifier Source/destination register specifier Immediate.~'Ylfimy.b~d-Jlh::.xuy]ll~\9l~nl"i ~"jiJ8~6'1e:J"jbbUd'Yll"j~8 6'1mU<1I~m"id-Jbb'lJ'lJ ~ th::.xu th::. <32-bit offset> (r4) nl"i'Yl\9lG'18"jrhJ bf1~8"jf18d-J~d b<1le:Jflu<m::. or address displacement Jump target address Destination register specifier Shift amount ALU/shift function specifier .556 unfl 13 I flOllubWlOSVlS:::lJa RIse 'lIeHI~Yl~ MIPS Actual Instruction lw r2. ~G'11~\9l ~b%~~ bn8'lJVI'ct"jf1l~"jo/ie:JVI'ct"jd"j"imml"i (system clock cycle) nl"i~IIJ::.bf1~8"j1u ~iJnl"i~~<1I88n . <high 16 bits of offset> lw r2.~'Ylfimy.d-JdG'1 RISe 1\9l~ b%y'n::. branch.

J.il~-Jb&1mn'U ~ bn C?i-iiEl'UY1'lJn'lJ rrrsn mdq.LJti1mln'O.I.:.J~:J.)~ ElC?id~Vi'f! q.12 1'Umdri-JV-l~md1. 'V11Elq.)~'lJ~'lJ 1LJ~-J~'U<1lEl'U ~ 1'U<1ld~fJ~ ~El1LJ1'U'Vln'l d-JdEl'lJ'UlV1m lLJdbbm:J.)ln~I\1'f!b<1lEl41.Jldb1 l~LJd~:J.h-JUeltJ'f!El-Jq.Jln ~-J~'U 'V11Elbu'Umdb~:J.Jmd'l'1l-Jl'Ubb'lJ'lJ'lJ'Ul'U :J.9a bb'f!C?i-Jmd'l'1l1LJti1mtq.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.Jl'O.il~-J~ i m:J.il~-J ~ 1'U~V1tJ R3000 q.il'Udrn~lbb'V1u-JG1l'V11'lJmd branch n'O.9a 5'lmd'l'1l-Jl'Ubb'lJ'lJ'lJ'Ul'UbnC?i~'U LJd~:J.J~dbbLJ~Jll~lG1l'V1:ru~V1~ 1'V1d-ib~Elb&i:J.:JlnC?i bdEl-J'O. b~1El-J 13.J~mtJ'UEln ~ bb~~ cache) dd:J.J~'UTI 1LJti1ml 1LJti1mlbb'lJ'lJ'lfLJbLJEl~'f!m~l~'O.DA.J~:J.j~~-J 1'U~l\1m<1lEl~~~ 1'U 1LJil1ml bb~~ 1 'Ud~'V11l-Jmd • Write back into register file : w.Jldb1ril'V1'UC?i~lbb'V1u-Jmdill-J~-J ~~ 'O.6 / 'nLJ bLJEl~'f!mm~b~ 9 tJ'Ubb'lJ'lJmd'vhJl'Ubb~~~~'j.-J~bb'f!C?i-J 'UdLJ 1~ 13.)lnml:J.J.)~b~:J.)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..il~-Jb<iil:J.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~'O.J branch 'lJEl-Jq.Jl1'U • Source operand fetch from register file : .il~-J b~El b~:J.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.il~-Jbb~~<iim. boih1LJ1 'U1LJti1ml1Vi bb'Ud'VlH$i-J'f!El-JEl~Hd~l-Jn5'l<iiEl.Jlrn ~C?i~lw.J~'Ub'liun'U <1lldl-J ..il~-Jb~tJ 70% .)ln~'U<1lEl'U'V1iL 1LJ~-J~n~'U<1lEl'U'V1d-J 'U1LJti1mt 1 1 'V1d-i'l ~'U:J.90% 1LJil1ml~n (delay slot) mj-JElElmu'U • Instruction fetch : €h'Uq.il~-J bu'Umd'l'1l-Jl'U 1 'Ubb'Ud'Vll-Jb~:J.J 1'U1LJti1ml ~'U 1LJm:J.l1l'U bb~l~bb1j-J~'U<1lEl'Umwl-Jl'U rid'U'lfLJbLJEl41.13.il'Udrn~l bb'V1U-JYiEl El-J~db1nm~'l'1l ~'lJ ~ ~ ~l'Ufil~d~nm~'l'1l'O.j~~El~1'U~'UGlEl'UGil-J'l 9 1'U bb~~fill?ilbu'Umd 1'Umdbbnuru'V1l'dn'O..LJti1mt~'U~-J~-J 1Vi~~b~tJC?i~-J~'U ~El bU'Umdb~:J.il~-J 1'U cache 'lJEl-Jq.)~'l'1l-Jlwih~-J 9 (dependencies) ~ d~wil-Jq.il~-Jm.J.cJlel'U 9 15Wy MIPS R4000 557 1'U1LJti1mt b~El1 Viq.Jd~ V-J~'O..:Jl'Ud'Uq.J~'U rid'U 1'U'nLJbLJEl41.Jd~V-J~'lJEl-JbbGi~~q.)ln~1\1 mGl El11 ~ ~ 'l'1l1 Viq.il~-J 1'U1LJti1ml'O.J 1'Urid'U~bu'Uid-Jll-J 5 ~'U<1lEl'U ( stages) ~El 1LJti1ml MIPS 'O.il~-J~ i+: 1~ 1'U ..)ln'~l\1mGlEl~~~ LJd~:J.~~'lJEl-Jq.)~m:J.:Jl'V1i1n lJ'U~n<iiEld.Jldb1'l'1l-Jl'U l~'V1~m.J~-Jmd'l'1l-Jl'U 1'U~'U<1lEl'U OP. IA n'Ubdm'Ul'U 60 'Ull'Ul'UlYi mdb1ElC?inVi'f!q.Jln'lJ'U'U'UbEl-J x .Jd~V-J~q.il ~-J bb~ ~md~l'UoiiEl:J.:Jl'Ud'U~'U<1lEl'UmWl-Jl'U 1 Vi:J.'lJmdLJd~:J.Jd~V-J~ • ALU operation or data operand address generation: ALU • Data memory reference : ill-J~-J<iiEld..j~ 1'U'V1UdtJml:J.il~-Jbb~~<iiEl:J.)~5'lfil I?ilbu'Umdb~:J.

.'" .. C1) U ~ ~ "0 C1) 0 ~ ~ t.>.. .. "a :::l ..l <: C..e.. U ~ M "0 '-' "0 ~ d :€ ~ u u "0 0 ..D .5 ~ 0 0 0 C1) ..>-. 8 M 0 8 C""'. <'0 '~ t. U .. ~ "0 0) "0 >..! (lD . ~ d '" '0 0 u OJ) '-' U '-' ..t.S -0 ~ ?a u 0 '-' .>-. '-' '0. u s:: C1) "0 ::l I!) ..~ 0 u U ''.l ~ "0 ......... U '>....:.:.l -g "0 VI d '" u c. 0) ] ~ .l 0... s d ..~ . .: .:I :r" -5 ~ s:: I!) a> ~ "0 . .:: '" '-' '-' '. u .5 E IS .>-. ..5 U 0 a -a 3 ca UQQ d II IX) 0) e:: Q UJ IX) IX :::...U Q fo: Q o: rJ:i I!) () o <'0 "0 . ~ . 0 ~ ~ 558 ..:= <t: U d srs '-' u U . :r" 10-.t. ~§ "0 .~ -b -'J:.:: <: c:: ..= c.! 0.:= ~ .t. M tl"01 u 0. C/o .l f. 0) ~ .l UJ IX Q !:: u es~ ..S' 0 o ~ c.~ 'J:... '-' .:= ...:: c.:: u.t. '6h ~ -..l ~~ E-< C1) () ~ u >. ..l '-' 0) '" .:: :::l b "0 d 0) ~ :::. ~ II II '-' a '-' 0) . :::.c v: I!) u ~ () Q Q Q "0 Qj ~ ~ ~. o::l . -5 '~ u "0 c-. E ~ -0 ~ u '::::l d "0 u 0 d '-' :::l :::l 0. rL... 0 0. ir: en 0) E '-' o ..:= '-' . Q u d '" ~ II = -~ .§ .':l -e- = '...: g s . '-' N ~ s: u 0. 0. os. '-' ::i d o d IX) U u....:.. v: sc C/o C/o C/o ~ l:: u: § ~ '0 '0 '0 c.j: Oil· u '-' u >~ 'u s:: ] C1) I!) s:: d "0 U U .:1 -.. U .. os.9 <: ..>.g 0 1Jj ~ ..2:l .

1:.2 <j. ~ bn~~'UJlltJ 1'U'RV1~hb&1 n'U m ~'U~m'Umd€ll-J ~-JojJeJd-J(.1~d:.1~~nldVli(ln1l cycle time) (. and check tags. H branch. Decode instruction. .1 'UeJn<lnnd' mld-JVl'UlbbU'U'lJeJ-JmdUTI'iI'Yldl'U~m~m{ .2 If register-to-register operation.11 'U1:.nm~l-ii1 'Umd€ll-J~-JojJm.L'UVl'U<}1 mld-J6ild-Jldb1d''lidtJ lV!luti1mtmd-Jldb1'Yll-Jl'U l<J1mjl-Jilud:. send physical address to data cache.bdm~l-iil b tJd'lJ 'UdU 'lJ 'lJ 13. Read register file. If a memory reference.1-J 1<J11'14-JVld-JmVl~mV1tJ-J ~ l'U~m\9leJfl:v~An(.V1tJ R3000 d:.1~(. decide whether the branch is to be taken or not. return data from data cache..tJ:.tJ:.9b bb~Wl-J~'UG1eJ'Ubbdn'lleJ-Jmd'Yll1utilj. translate an instruction virtual address to a physical address (after a branching decision).1i1V1TI1~tJG1d-J 1ui:i-J~l~-J~ ~-Jbb~~-J i+ 1 l. If a memory reference (load or store).13 Pipeline Stage IF IF RD RD Phase ~I Function Using the TLB.1'U1'U.1:::D-Cache) ~'U~-J l-iinmbV1tJ-JI'1~-Jb&1m ( l-iinmddd-JVld-Jd-JdeJu'U 1:. Return instruction from instruction cache.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(.m&1mn'UVl'UdtJ dltJ(. ~2 ~l ~2 ALU ALl) ~1 + <j.ojJeJd-J(. ALU MEM MEM WB .1:.13 R4000 l-iib'Yl1'11'U 1(. If a memory reference.11'U1~mG1eJ{1-iid:.d:.9a bdeJ-J~ln1l 'lJ dJ'U md'Yll-Jl'U %-J~:. 'lJ (.1:.tJ:.jJ2 . calculate data virtual address. If a memory reference.l If a branch.u'UVinojJeJ:I.J(.Jmb(. the arithmetic or logical opera tion is performed. <j.jJ1 <j.tJ:.nm bV1tJ-J1'14-J &1 eJ-Jd:.1-J1'14-JVld-Jb'lhtb~mn'U 'lJ R3000 %-J-ridtJ(.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~(.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!.nmd-JdeJumYl'm 30 (clock 'U-Il'U1m<}1 bb(.nmd-JdeJu'UlYl'm 'lJ l'U dud'Sh:.1(. Compare tags and validity of fetched instruction.1-J l'U~V1n~-J~'U 'YlllV16ild-Jldb11~VludtJmld-J'«il cache ~lVlw~l~-Jbm:. Send the physical address to the instruction address.~l~-JI-Cache bb(.nmbV1tJ-J1'14-JVld-J 1l11'31~13.SmG1eJ1'1:v-M~eJ 'UVlUd tJmld-J'«il ~1 cache 'lJeJ-JojJe:J:l.13.tJ:.tJ:.1:..l Write to register file.~'YlTIrnV1 13. calculate branch target address. translate data virtual address to physical using TLB.J(.1-J1ul'UG'h'RV11<J1 dU 'lJ 'lJ 13.

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~{\. 1'U~V1~OJ &11bb~(91(91~~ b tJd:.tJillm!b'Yi1n1J .Vimbfl:.JfI (translation look aside buffer) 'VIU1~m1d-J"il1 • Instruction fetch second half: ~ btJ'Ufi1~'l~~~'lmd .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.~'VlTIm~ .'Yl1d-Jl"il1n~~mG1~{\. OJ ~'l~lm'lG'l~l'lfl~l~n1J~bbG'l(91'll'UdtJ 13.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:.tJil1f111 .JfI'VIU1 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:.10b 'lJ tJd:.G'lld-J1db1'Yl1'l1'U 1~~ ~'l~'U 1~ b11~'UG'l~'l b'vh mdtJ~1JtJd'll .fI'U''U~V1~ oii~d-Jfl1'U OJ R3000 'lJ virtually indexed caches cache bb1J1J'lI'U1'U dtJ 'lJ ~'l"il:.10a bbG'l(91'lmdtJ~1JtJd'lltJil1f1'U''U .~'UG1~'U 1~ btJ'U'VIm ~ b'Yi1'll~'lm1d-J~~ruru1ru~ ~ ~'UG1~'U1 WlftJ btJ~{\.'Yl1'l1'U~lUm1d-Jb11 2 ~'UG1~'U boii1ltJlll'U ltJul.9c ~'U~~md~~mb1J1J 'Yl11ViG'l1d-J1db1'Yl1md md'Yl11 Vimde:l1'Ubbfl:.mdbtJ~~'UbbtJfI'l~~~1J'U ltJill.j"llmIjU1~m1d-J"il1 RIse cache 1'U~V1~ R4000 'lJ ~'U~.560 unfl 13 / fl8lJublJil8SJilS::::Qa bd~. R4000 l~~mdtJ~1JtJd'ltJd:.tJillm! ~~'VId'l1'ld~1J'U1Ylm (superpipelined system) m~(91bb1~\]nU1d-J11oii'VIm~fI~'l 1'UltJulm! 'U1Vl"m bb~fI:. . 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:.1J1J~tJbtJ~{\.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:.'lh~ LVi . R3000 1(91~1oii'lftJbtJ~{\.n~1J~lultJul.b1nb1~\91d:.1J1J bil(91md-51'l8'lbbfl:.vJ~ .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:.w:i1'lbb~fI:.b1mb~n~~n 'lJ ltJ'Yl11'U~'UG1~'U 1'U1'ld~1J'UlYlmt1(911tJ m~'VI~'l"il1nYi'Yl1md 1'Ud:. 13. ~'l b~~nl1 R4000 ~1~mdbb'Vldn~~G'lbG1~~boii1ltJ1'Ud:. '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.'Yl1'l1'U . 1V1~ri'l~'U ltJ~n (adder) u 1 V1~'lI'U1(911 'VIb1!~'U bbfl:.tJulm1"il:.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:.m~l'U&b:n~ OJ mdbb'!Ji.mm·.

.J 0 0 o c 0::: _-.:I . ~ u ~II"~ -.r: J: ::l u 0.s II u.S u t...... !) 00 <.) o 0 ~ ~ bbB iJ..l..c ~ uuu U U U d d '-Il I. u E !.':2 .I:l .c:: ..c 0 c.r: ..-.= <...~ ~~ BB "0 'Ji ..::I ~II" -. c Ci Ci t-< 1/) U c= c= ... '-' .) (] ~ u .S .s ... U - 11 U u. c= ~ 1I~ Oil'" ~ ~ ~ u «0 -...) "3 '0 'SO e "3 . u '" '" ~ 2 E t:... . u 0 Q = CC::I .:I -& :::: u C'5.) .c . o:l ~ u u '5..'"-' "3 B IJ':. u '+0 Oil" of 5 :::: ~ «0 ~ "'-.:I ~(OJ -. .J s::: ~ ~ >< u.) .:I -... '" . 0 '5.. 0::: "0 ..:I .J:: .r: ..0 '-' 561 .~ (] . M ... '" S C.r: <= 0 VJ ... <) ..s: "0 ~ <= "3 ~ Q .. 0 "1' II".s Ci Ci c ~ (j U ...' .Q u» 0 ~ . "-' "-" ..:I II" 0.§ o ::l <= '" u e c '" c <= 1) Q <.. Q) r.§ 0 ::l ...) u C- "i) 0 ...~ u ~ 1I~ 1I~ ~g g. .g 0 ''J.r: o <..... ~ ~~ ~ c= c= c= to) ~~ 8 c r.. = E E r: ~ "0 Q <.

:Ji'i-.:J~lJ)mhl11luvh.:J~~mGleJ.:J 32 VlUl<?il-.:J 15 bUm~mGlEl{~'l-if-.wll-.:J~eJ~ bG'{~eJWlJeJ-.:J 31 bUU~~mGleJ~~'l-if-.:J7 bUU 'lUnld 'l-if-.:J1.2 8 Vlul<?il-.)G'{eJ1J cache tag bbl:l~'Yllmd load VI~eJ store ~1:lij''V1IT~lJ)~mlnmdtJd~ml:l~I:lO.:J 31 l'V1d~btJeJ~U 'l Ubb<?il:l~ltJdb'lfG'{O.:J register-to-register VI~eJ VlU':W ALU o. 'l-if'J5<?lf1l~-.neJa-JfI '!J '!J '!J ~o/IeJ-.)ln Berkeley RISC-I machine bb<?iiJ'-.:J ~~G'{bGleJ~a-Jlml:l'lJ e)l-.)~'Yllmdf1lUlrnG1l Gldlo.:J 136 G11 ~~mGleJ~oJlU1U G11 1<?ltJ5'JoJl'UdUVlul<?il-.:J~eJ'!J bUlVla-Jl tJ bbl:l~ ~ '!J branch O.:J.:JVla-J<?l <?l-.)~a-JeJ-.:JnldO.:JlU~la-JnUd::.:J~m~mGleJ~~-.h~IJl'YI o thUU~l~-.:J G'{mi:lGltJmda-J~nlVlw?11<?ltJ Sun Microsystems.:J~I:lij''V1IT~bUU.:J o tll bUU~l~-.)~bimi-.:Jb~a-J SPAR C 'l-ifb'YIflil.neJ~1:l (data cache) 'V1-¥eJa-Jn1J~Glldl-.562 unrl 13 I fl()lJubllilosmS:::lJa RIse o fhdJu~l~-.:JltJiJ'-.)~'Yllmdf1lUlrnG1lbbVlu-.11 bbG'{<?l-. l'V1d~btJEl~~bin '!J Vla-JltJbl:l'lJ 8 i'i-. OJ = 'YIbb'YIO.:Jbm::.:JtJdm eJ1JJ)l tJ l 2 i'i-.~~mGlEl{ bm::.Vlll-.:J U 'YIn1 'V1d~btJeJ~ lJi1 .VlU <?il-. 'luoJl'Udud ~~mGleJ~a-JltJbl:l'lJ global register bum~G'{bGleJ~G'ilunm-.neJa-Jl:l~o/IeJ-.:Jmd '!J bbVlU-.:Jbbl:l~~~mGleJ~'lJUl<?ld5'JfldlMVla-Jl~G'{a-J 0 i'i-.:J~eJ~bG'{~eJu~o/IeJ-.:Jn1J'lJeJ-.:J. l'V1d~WEl{~b~tJn 'l-ii1'V1d~W~U (parent procedure) tJm~tJnll l'V1d~btJEl~U "ins" bbl:l::.h~a-Jll:l~fI load store o.:JbmtJ1JbVitJ1JG1lbbVlU-.:JoJl'UdU '!J 13.neJa-J1:l .:J.neJ~1:l (translation lookaside buffer) VlUltJfldla-JoJl • Data cache second: cache ~lVl~1J.neJa-JI:lG'i-.)~'Yllmd1.:J~~mGleJ~bbGln<?il-.:Jbb<?i dtJ '!J 13.1JI:lU~J)~1JmdWC?JJm<?ieJa-JlO.)d-.:J~eJ~bG'{~eJU'lJeJ-..neJ oJl'UdUVlUlG1l-.flVlib<?il-.fln~b~tJ-.:J '!J 'lu~~mGleJflyj~ SPARC (Scalable Processor 1J~~ Architecture) Vla-JltJi'i-.:JeJeJna-Jl 'lVi'NI:lij''V1ITbUUG1lbbVlU-.:JlUO.md~<?lll-.:JVlultJ '!J '!J '!J cache ~lVl~1J.:JfI-.:Jmd 'lublmb&imfi1J~Glldl-.:J~ma-Jldbi ml:l'lJ 0 i'i-.)~bin1:iuVinl:l-.:J b~U~~mGleJ~bG'{~eJUVla-Jl 24 i'i-.neJ1JJ)ltJVlUl<?il-.)G'{eJ1JdeJu 1'lJ 'lumd branch • Data cache first: fldla-JoJl G1lbbVlu-..:J~~mGl 24 eJ~ (register wind ows) bb<?iI:l::.:JbmtJ1JbVitJ1JG1lbbVlU-.:J .neJa-J1:l '!J • Tag check: • Write back: 'YllmdGldlo.:JlU~la-JnUd::. ~Yl~'lUGld::. .:J~YltJ~tJd::.:J.:Jnu~-.:J bbl:l::.:JEl-.)~-.:J .

nf:l1J) dJ'U 1'V11.13.bf'Jf:l~WllaJl~-ll'U+mn1J ri'dlu (\9IGll1l-l U1:.bf'Jf:l15'U ~-l~l~mhd l'UVI'doirf:l12.bf'Jf:l15'U-tt 1 Ul'il:.4 Physical registers Logical registers Procedure A Procedure B Procedure C • • • • • • • • • • • • .b~tJ-l'V1f:lGif:lm1 loif-ll'U " 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:.1 ~~mGlf:l1~l'U'd'U 8 cjh~loif-ll'U1'd&-ln1J'V11.mf'J l'Ul'V11.

JeJ1~\ln 1u OJ~:J.~eJ processor status register (PSR) 'lIeJ-.!~~b1JU'V1ldl$"JbG1eJ1~-.J~m'!~-.Jd~e-..Jmd procedure) 1m~mG1eJ1-1ieJuYi1Jnu 1'V1d~bt...b1t.Jblnlld::.J "outs" 1~G'!bG1eJ1 1U'llru.m (calling "ins" 1Gioiim..J1~G'!bG1eJ1'l1eJ-.12 b1Ju5nm'V1vn1-..:J.J'VIiblGil-.lm'l.Jb&1mnud1u 1~G'!bG1eJ1 current window pointer (CWP) b1t.JeJ-.~<illbb'VIt-b-.JG'!mu::.JOJ::.JeJ1~b1t.J WIM .~~1'V1d~bt.J 1'V1d~btJeJ~nl~-.Jbi4u1~mG1eJ1n~:J.-'I'~hd:111u~d.564 unrl 13 / flvlJubwwSVlS:::n8 RIse ~1l 13.Jbn1JeJ~1u1~G'!bG1eJ1bbG'!~-.m1~ (called procedure) 11ldb<zrm<zreJ1OJ~~mi'loiim.m '" ~-..mll ~-.

:Jl'U1 'U d::.:Jfi.:Jfi. byte ~l:J.:J load bb~::.:JGl1bJnm::.Jl::..:Jn...'Yll~btJ'U 'lJ cv 1~m~1)1b<Yh~'U dJJ uuu ~ ~.'Yll 3 Gl1 ~1)~1'U Rd bb~::.:J~.J~. load L store double word..:JVl:J.:Jl'U'lJ1).:J TiJdbbm:J..JGllbbJJ~m'jj-l loii l'U1~m~1)11'U'Ymf1~..:J1mY1tJ.:J q tJml'U~l~.Jr..~:J..J.:Jd' register-to-register -5l.. NEGATIVE.:JJJd::... RSI btJ'Unld-5l.... CARRY) Gl1b~'lJ"'ill'U1'Ub~:J.j{['V'Jd~btJ1)1 'YlllVi'nld'Yll.:J~~~b~1)~ 8nGllVlii. bb~::.:l1'U lVlrubtJ'UbmoJl'U1'U ~ ~ q bb~::.:l1'U lVlru-5l. store bb~::.J~ l'UVl'l--b1tJml:J. ~ ~q...Jl<Jl~.J~ml:J.:JGllbmm::...J~~~bf141)..:J~.JbVl:J.:Jl'Unuoiim.WJl..:Jfi.13..:J~.JltJnl<Jl 1 'II::.:JVl:J.J'V'J1i\b:J. or right arithmetic ~l~.$i..JVl:J..:J'lf(91~l'~. 'lJ OVERFLOW.:JVl:J.7 / SPARe ~mi1~tJmdd q 565 . halfword..:J 13. I I b<Yh~'U~~nld-5l. XOR and their negations • Shift left logical.JoJlbtJ'U~'II::..J~'lJ'Ul(91word (32 iJ~).J"'ill ~ oii1):J..:Jnld'Yll.JbbUU ~bf1~1)..R'YIITm'V'J b.:J~.:J~ ALU ~l:J. OR.J~Yi~ bf141).J~bf141).: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..J1)~l'Ud'iJ'YIf11):J.btJ'UbbUU sign extended 32 iJ~ $11) 32 iJ~ ~'U<JlltJiJ~bf141).J'Ur1'lJ'Ul\9l 32 iJ~ 'lJ 'lJ 'lJ ~l~.:Jl'U..J...:J~~~b~1)~ 1(91tJ~ S2 m'llbtJ'Unld-5l.JG1lVl1u 1JJdbbm:J.. right logical.ilif.b~:J.:Jril'Ubb~::.ji1)'UU1)tJ~.~1). q ~ldl...lJI'YI SPARC ~l~.i:i'U-Yinoii1):J. I byte G1lVl1U~lif..:Jb~ tJdnUnld local 1~m~1)1 1<Jl1unldrllVl'U(911~m~1)11 VI1oii.JGl"dbbJJ~m'jj-l~1).J~ 1).J~11JJ nld'Yll...:J~Y1tJ ~ SPARC l:J.:J 4 bbuul<Jl (ZERO..:Jd' • Integer addition (with or without carry) • Integer subtraction (with or without carry) • Bitwise Boolean AND.:J~~nldb1tJn ~ml:J.:J 1'V'Jd...btJ1)+Yi11JJ ov if~illd~ q .14 bb~(91.:Jn.i1).:JG1lVlW~Y1tJ 'lJ ~lif.:l1'U~bVl~1)l'U~~~b~1)1'lJ'Ul(91 oii1)d.:Jr.. ~~m~1)1'lJ1)....Joii1):J.:JVl:J.:Jl'U l'UVlu1tJ ~~oii1):J...:Jb~mnumd shift m:J.yhnmnu halfword..J~ ~ F 1...:JVl11)-5l.:Jfi..:J'YImil~..Jiu.:J'IIln 1JJdbbm:J.~lf1.Jldbl'~(91btJ'Umi:J.:J1~1 'Ub41)..:JVllnG1lVlWnld bb~::...:Jnld 1(91u1:J.J~r..Jlmmbb~(91......:JbbtJn Gll.....$i.JltJ'II::.JltJ'II'Umu..:J bbGlnlbtJ'U .:Jfi.Jldbl'Yll..:Jl'U'lJ1).JldblrllVl'U(91d1)'U l'lJnld'Yll..JltJVl11) :J.:J~..:J 1 Vi'~JJd::.

set icc Add with carry Add with carry.566 unf 13 / InElUUi'JWl. set icc Exclusive NOR Exclusive NOR. 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 Subtract with carry Subtract with carry. set icc NAND NAND. set icc MUltiply step.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 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 . set icc NOR NOR.ElSVlS::. set icc OR OR. set icc Subtract Subtract. set icc XOR XOR.

i'U~'i) rm l.jibtl'U~lbbwl-i.b:I-Jlloiil'Umd"rl1l-.'Yh ~ ~ mh1~eJ displacement e)l-.:J~ ~lbbV1u-..l.:J ~ l'UdU 'Y1n~l~-.:JV1:I-J(9J"ilt PC-relative address (alignment) tJn~(9J~lbbV1U-.blth1:I-Jnuu<ill~(9Jd"tVirl~'U'l CALL instruction ~m.:Jbbrl(9J-.:J'lIeJ-.:J V11eJ ALU ~::.:J~1:I-Jln l'U<illd"l-. store Load.j ~ PC-relative address .x'U EA :::: (Rs1) + S2 (S2 (S2 dJ'U dJ'U immediate reference) register reference) U1-.:J~1f1nm::.ji1~ rlb<ileJ1~::. "0" OVERFLOW.:J l'UV1u111 EA ::::(Rs1) + (Rs2) 1 urmmrm ~l~-.:J~-. bbG'1t CARRY) oiJeJd.:J rm store ~-.f1mGi:I-J<?l111U<iI "0" ~nrleJ-.:J~::.13.:Jn-.:JeJ~l'U~l~-.-.:J~mj~1-.J-.:J ml:I-JoJl load load V11eJ store ~::.15 bbG'1::.:J lVi<ild"-.:J.:JEl-.:J 'lI'Ul(9J 32 U<iI~-.:J1TImd"e)l-. + 52 Instruction Type Register to register Load.:Jbbuu~'U ~Ylll ~ SPARC ns:li\'mjrutY\f1~lllfl~-.:Je)l-.:J fieJ'U'iil-.:J 13. store Register to register Load.bil(9J~'U l'U~'U<ileJ'U~r!l:I-J 1TImd"e)l-.Virl'll'Ul(9J 2 U<iI q ~bbe.:J~eJ~'UeJ n bV1iteJ~lnnl'~ 1.:J~-.:Jbbuub~md' 1<?l ~-.7 I SPARe 567 Mode Immediate Direct Register Register indirect Displacement Algorithm operand = A EA=A EA=R EA EA SP ARC Equivalent S2 R.:Js:lml:I-JfI~eJ-.jbbUU ~ oiJeJ:l-JG'1 U<iI~bV1ReJ"il::.:Jb~:I-J~'U<?l111 M(9Jd"::.:Jnu~lbbV1u-.:J ~l~-.JG'1~n 22 U<ild"1:I-JnUU<iI 'll'Ul(9J 24 U<iI ~n 2 U<iI ('Y1l-.:Jn1J~Ylli 13.dJ'UbbUU l<?l~lmil displacement ~ln~lbbwu-.:J~-.w:h-.:JU<ild"1:I-Jn'UdJ'U~-lbbV1U-.:J~-.~eJ-.:J ~lWTIJ~lif-.: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.'Y1lmd"~l'U1ru~lbbV1U-. store = (R) = (R) +A 1TImdTllV1'U(9J~l .:J~lbbV1u-.:J<?ll'U'llTI) '\.r!l:I-Jld"m.:Jl'U'lIeJ-.x'U'l rf1'U lV1b!!M(9Jd"tVirld'~ttJm.+S2 RS1' RS2 RSI + 0 Rs. NEGATIVE.:J~m.i'U~eJ bbV1U-.:Jd"eJumd"'Y1l-.:J l'U1~m<ileJ1.:Jbbrl(9J-.13 ~ MIPS R4000 .:J ~ 30 ~ 'll'Ul(9J 32 U<iI l'Ud"UbbUU'Y1f1'i):l-Jv{~b:I-J'Uvl ~ ~ ~l~-.:J~'U<ileJ'U~r!eJ-.jidUbbU1J~l~-J ~ ~lV11U~l~-.:J bv1:I-J~'U<ileJ'UVl b~lj-b'ih lul V1U111 l'Ud"::.l:I-Jll.:Jbfl~eJ-.

.J'lJEl-Jnld branch G'1'l:J.Jldb1 .J'V'l~h:J..1:bb~dn~l:J.luvb~8 ~U"il::.J~'lJEl-J~l~-J~U bbir1l ~l~-J"il::..JEl ~ 'hJ1lv..JlJJd::.J~hli.JV1~-J"il::..hv'j~mil~~ ~ ~ ~l~~~El~~l:J.JltJ~-Jnldt1l El~l-Jldn~l:J..lbt'l.buu8~l-Jld 13.J~l~-J ~JJd::..Jd~v.12 '3'l.G'n1bi:'1':J.Jlt.J b~8 delay branch U~~filbUU 1Ubfl~8-J "1" ~l~-J annul ~El~~l:J..b1m.J~ ulJJulm1n~m~8 1 ~ ~ rm branch ~u dll?l~U"il~-Jb'Yh~u ~Yl tJ"il::.5) ~-JV1:J.JV1~~~l~~ ~ branch ~El "annul U~l" b~Elu~l'd branch "il::.J l~~ltJ~u 1Unldb~:J.. ltJ'lfubiiEl-J"illn ~8~~l:J.:J.b1n~luboiill.J'l.J~dbbJJG'1m'jjlt1l-Jlu delay slot branch ~l~-J~bUUbi1lV1:J.J~LulJJul.lb'ihJJd::.l...JJl11 ~ UlJJulm.t1lnldbbnl'lJ ~ annul G'1~U 1 U~ v..J'd'~v.:J.b1nUl:J.:l <li~lI " SPARe lUdJJbb1J1J'YlflEl:J...568 unfi 13 I flClUUi::HVlClSVlS:::Q8 Rise Call format 21 Branch format 4 22 SETHI format Floatingpoint format General formats .JV1~~~l~-J t1llv(lJJdbmd:J." ~filbUU "0" '311 13.J~'lJ8~~l~-J RISe ~dlJJ branch (n~ldl.:l'1lel..JUr1'~ dJJbb1J1J~Ylbf'i'jji...

d--JdSiNm:.d:Jufil'VJl-J1. $\8 bbSi:. b~mn'lJmdb1.J~tJ'lJbYitJ'lJnul~8~l-JbtJUDddd--J bWtJ'lJbYltJm~~ueJ~n'lJ~n'jjbU::.Vl1l-Jbf1~eJ-J RISe LuJflu~l-J~ bbSi~ else ~S:jmld--Jmd--Jldn LUd:.riW] RISe l~bb~C?1-J uuu else ~m'ilUmd'rll-JlU'lIeJ-J~mi:l\9ltJmdd--J "" l1.1H'l)ub'VJf11ulSi~ VLSI LV\1~d--Jln~~C?1 .~U'lJ~UUbbUd'VJl-J-d: .J~tJ'lJbYitJ'lJ'lIUlC?1'l1eJ-J l1.r1lVlUC?1f1l22 1J\9lbbdn 22 (high-order bits) immediate ~ltJ1J\9l "0" 'lIeJ-J~b\lnm:.b1.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 . -JlU~dU LVlqj~b~mo1i8-Jn'lJmd1.l.Jdb'l1m'l1eJfl~S:jmld--J~'lJ~eJu~udJueJ~l-Jd--Jln r1lVlUC?1G1lbbVlU-J~eJ~b~d--J~U m~m\9leJ1VJbq.Jdbbmd--J~uld--JlLoli .Jd::.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:.bd--Jll~lnu 'iI UOWlUH\lS:::1'I:h\l branch 'iI RIse uae else 569 delay slot 1~b'i.'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:.Jd:.md b'lfU md~U'lJ~tfumd'rll-JlU'lIeJ-J loli1.Jdbbmd--J Lumd1.13.)'dnm.8 / I.~'lJ~-J 'IJ md\9ldd"i)~8'lJ bm:.J~tJ'lJbYitJ'lJ • $\eJ ldJ~ld--Jldn"i)::.mld--Jb~d • Quantitative: l~S:jf)dld--J'l"Jmmd--J~"i):.ld--Jllolilumd v '1 load Vl1eJ G1lbbVlu-J~eJ~Vl~8<iieJd--JSi'llUlC?11VlnJ lu~~m\9leJ~~"mf1l fil~-J v SETHI "i):.Vllbf1~8-Jf1eJd--JV1db\9leJ~u\9ld~QSi d::.~'lJb~mnU l1.Jdbbmd--Jd--Jl\9ld~lU~'OJ::.J~d--JlbU (quantitative assessment) eJ~l-J hn\9lld--J5:ii1b!!Vll~bnC?1~U ~m::.'lIeJ-J 'lJ "" uu$\eJ NSimd l1..Yiln'lJbf1~eJ-J RISe S:jbbUdlud--J~"i)::.Jl~ bVl\9l~Si~b'VJf)uq.~'lJ b~mnu ~md--Jldn bWtJ'lJbYl tJ'lJnu 1~ RIse bbf1~ else ~S:jmld--Jmmdn LU • ldJ5:il1.Jdbbmd--J • Qualitative: m'jjld:.1d--J~ bd~-J'oJlnrhnld ldJbilC?1~u f1l~-Jblhv'ld--JltJ~u 'iI "i)~~lmdnnnr1l~C?1eJeJn f1li1'-J l1.J'jj~l~lumd load store Vl18 store 'iI <ii~d--JSi'llUlC?132 'IJ 'iI 1J\9l cv f1bU~d--J1J&ldnm1.md~C?1dl-J lm-J~~l-J mTImd 'lIeJ-Jl1.Uld--Jlb1.Jd:.bnC?1nld branch SETHI buufil~':l'~bq.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):.

jfm. (qualitative assessment) ~U ~Ue:Jthl'lJ'l~bl1J'J~G1''l~ " .'1.'1 byje:Jf1l'J'YI(9l'i1e:J'lb'Yh~u'kJl'liG1'1l'l~umbyje:J " RISe d-.'1m~'YI1J~bil(9l'illf1'Yfmr~ lum'Jb~~u .=t IV f)f)f1'illf1~1.jb~m lu~'V'lb~d-IG1'.nl'V'l . f1l1b~d-..-l.'1m~'YI1J'lIf)'lm~(9lbn~ hhbbmd-l<iilbb1J1.l ~f) ldJUlUd-lld ~e:J~bbrn'J~Vlll'l l RISe n'lJ else lJib~d-.~~G1'b~e:J4 bb'i1~f1l'JlVimld-. X cv d """ 6'd 2/ J' loii'llU'il1'l GilUf1l'Jbm~'lJbYi~'lJ'YIl'lrlru.jm'J~'il~b~d-I1J'J~~'YITIm'V'llVi~'l~U " 'J~1J'lJ RIse n'il~5'lmld-.lcilf).l~lfll1)n'lJ " ~'l lJi~lb'Ylrllul'i1~'lIe:J'l l1Jlilm. 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-.j~u bbnUl1)Vll b'li'\.j-oJlmU'YI'JlU~G1'b~f)~ lunmb~mnu ~'V'llum~f1'i1 '" mh'll'J ~.-l.570 unif 1.d 6] bWm~n1.l1'lJsife:Jumf1~.l~'il~'ill'lVll~ l1Jbdm'illf1b'YIrllul'i1~ ~U~f) ~f)mld-lVlUlbbUU'lIf).1'\.l-oJl'\.-1.lmf1(9l'llUf1'lJbme:J'lrle:Jd-.t RIse l1Jloii " .j~u else n5'lmld-.l'Vfdb~m'YIG1''Jl'l'llUd-ll IV P>.3 I V}DlJW::J1vIClSiilS:::U8 RIse • ldJG1'ld-ll'Jblbb~f1~1.jd5'lbbm'YIl'l~'il~'Jld-1nudjuVld.f1l'jjl • m'Jbm~1Jb'YIHlJf11Jbmf)'l .

Sign up to vote on this title
UsefulNot useful