Professional Documents
Culture Documents
7-1993
Edmund M. Clarke
Carnegie Mellon University, emc@cs.cmu.edu
David E. Long
Carnegie Mellon University
Kenneth L. McMillan
Carnegie Mellon University
David L. Dill
Carnegie Mellon University
This Technical Report is brought to you for free and open access by the School of Computer Science at Research Showcase @ CMU. It has been
accepted for inclusion in Computer Science Department by an authorized administrator of Research Showcase @ CMU. For more information, please
contact research-showcase@andrew.cmu.edu.
!
"$#%'&(
)*+,
-.%
/&10234
6578)*&9
:
;4<4=><@? A@BDCFE
G<@HI<4J*KMLNBPORQ
ST<G<U.VNWYX
ZT<4U$<4H2C[H]\^K_K`LNW
Sa<U*<4S\_K^K
;bAcKed2fNg9h-fjibibk
l3mTn$oplqjosrjt[o6uwvxv
~F}[~Fj"!#!$!#!%!&!%!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
( p
})+*~F-,.!#!$!#!%!&!%!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
/ 0&
123547689:
;4<18=12>?9
A B<6DC6D968
E
F=HG%IJK9
8 y{jzs|[}~D[~Fj.(szp{H!&!%!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
8 Mjz}|}~F~Fj(zpsN!%!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
8 P}M~D[)QbP sPj`~D ( p
M~DjR!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
ST
F
F=HB<6D1EU12VJW6YX186D9
' [ }~DM/y/.yF!]w\ zP~F !%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
' ^ }
M*yD_ jP[?!#!%!&!%!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
' ^ DP
[`!&!%!#!$!#!%!&!%!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
a G#>?CF
F=bB<6cW1D
18Wed%F9
8 f Fz F~D}| !$!#!%!&!%!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
8 h j}i jzp{
~F{ !&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
8 ~F}i [jzpM{
~D[k!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
8 ' ( Pzp~F [ P}MM~Fjl!%!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
m X3>QVnEWKRopF6cWeG#U6Dq
F=
s ~F [[
M~DtP }/%Nu ~FPz.!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
s ~2) p(|Pzv, [b!$!#!%!&!%!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
s [ }P}~Djss !&!%!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
@ w#68Kxy3F
F=zX3
U
9<G%IJK9
gI bp) bu !$!#!%!&!%!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
gI { }|[/.yz|[~F[~Dje|~}
P !&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
L w#68Kxy3F
F=<9:3
U
r9+G%IFK9
~2) ]j\ ) f P{) }| [ sM.yP
z|!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
Mjz}|}~F~FjysFz, !&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
h [[) [j~|} zj`~F !&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
4<9I99:
M P
jM~F ( p
~Dj !&!%!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
M h D}3~P [~F'
~D !%!&!%!%!&!%!&!%!#!$!#!%!&!%!%!&!%!&!%!&!%!#!$!#!%!$!#!%!&!
'
@
L
M
O
Z/
'
Z@
g
M
M
/r/
F
F
'
/Em
s
F
Aa
F
cg
'O
rA
''
'
J
-
f [^~F[)
}"7|[ )PDT[|F~
Y)Ps zsz6 P} i}~F zPj"~
[[:}jPzp})
)p }P
p["|[ zszp{8|
)?-
. .!}[[}/}PM ^~F (/]\wzP~F}Pz}|8
_[P ^~D|jP) ?
7) PDj|jDN/ D}~?4[ [*j3~P ) N/}[3 }|~D)[|j j
[~FN~w) x[.[PPYzPN$zF`]j\
) }/}' ~P4|[
}s ) ~F jH?Y}|[ <<4
2<4<$*P) }|A!"& 469&<:: <)/!#%!'4# Q) Pszzps P4| ~ zzpP`^R }|~D)[ ~7)[P}
^~F FM^[ [)
j
|~D
z*}}
.~D^[jzpM~DjcN|j6 ~F/ ?4|[~Fz6~FjK{) [_ [/
j|j~D 4P |[PM }|~D[) !P}"^}_ [MjD
) ~F |["j~
P[}~D Pz}|[/~F}/ [}~DF
~F [}~{~
z}|[PzF, 3
) '}_ }'zp~Dj` )
F`
jz6!^}~D1|[!.zp~Dj}jzpM[
zp~D}}zp}[}-[}~{~
^ zp~FsDw}|[ !~.wPz6F }Pz}|[{K_ [P-^~F8}PD~F{
j~D[3_ [/
j|j~D.jMj}_ } z6~F }3:} ~F
~D ~P4|[
} MjFz6~
c}|[$zszp s { Fy
4P |[3MsP}3:} ~FsP~F}Pz}| _ [-
}
}sDzp.wPz
.|['
} |F|
[~F'
Mz@|[.jM
` [~
) PY&) Pzp[M~F~PR}|[ zszp {s
M~F
*) -wPz]w\ zP~F[|[ }/
) ~{P-}|[ }PM ^ }|[$zFM~
`[P'zp~D}~
/N}|[$
[}~Dzp|~P^}t_ } [sDzpzejzp
}|.j4~PMsP}P}) 4[~FY}~*j.:} zpP`F 4P |3
[}~Dzp| |jD4[~FYN/!*j6^ ?4}|
[) Ps
}|p|~ ?YF/{`jzp }|[8N/@~PRMs
PcY!~8 ?8(}~{~ P}F3~w}*:[} {z
[
~D ^ *~D) ~PFM~F"PN~D[}|[8zp~D!{ *} {}/sFz6~F j ?'zp~D}~
4
Z) [) Ps
jP}|j ?4 [
) }Pz}| _ [ |j
$
P }~|j
) 'N~F| M{jP.~
zsz6s 7h Fp~D[jzs|
}z}|[ _ P|jD[}~P}~ j !D} ) :zp.[~F ~*?YF/j}|[*FP}"~
[) Ps!
}|
) PFj[}~PK{) P~F 8}PD~F'}~3Np-|j
}|p-
Ds
|jp?-|8P}D ?4w~
^}/!|jPF8
}6Pp ` 3}jz6}[ ~Dj_ [{F N-N~}{ }~ j\ ) 3zp~FjzsM[P{sP~F
}|
*:} ~
s*}| [^~F ~
}|[:sP}Fzp
Z) {) j[) a`
" ~F}"~D7|[![|[/}{
zp~D!:{} M ~
9}|[#[) Ps!
}| ~FPz}|jP` "}|[3{[w-~
c
} ) }/}*P
^ |
N/ ?Y |[~? |[~? 4H%, 2& <: :;&%)'! ,1&*#: !8"!*<)
' s g
Z>) 9"<!
': '4( <: $%$ F~D}|['zP ~E) \ ) }~[}
F
[|j"j`[ %#"!#$%'&
'*) ,-$. f h h 0 *g ytf Pz/
jM }|*}}PMsP~F z
[[}*~F ~P3}|['}D
7|[
jDzpl) /}[") _ [MYzzps6 ?4$
} P*}~ D^_ [MYzsz6s ?4}|
:} }!6 P}D [*j.~P-MsP}P 4P |[ D~F|[
*jFM) ~D z6~F [[[<\E}
) j~
[
~
-^jzp~DjpYz) [) z
"}sPj`^~D} s6(}|jP'
a/s~P
}}~/s~P
} 4P |[
[) z
*}
j^~F} P}*jM
) }~7) }zpMw*[}~DNP~PzszpP)
} {) ) ^~F |[
}
j~F p
~Dj!~
}|zszps ?f ~D}|a
}Ms*P7
) [) zP}"}
j^~F} *
}"[}5
/3
) ?4}| f h h 4P |j6 ?Y"
"
{"~~P ) [} zazp~Dj}jzpM[}|[:sP}"F
[|a~
}|zszp * "|jDP) |["x/^~F Pjzp"~
}|F~FM}|['!~Fj~F| Mjz}|}~F~Fj
)
FMz|[~F[~Djzszps ?4}|[) Ps"j
| ~F
z
* 1?4
~F/^ bp) bu ?4}|
~PF O D EHG
P4P!) P"FMz|[~F[~Dj4MsDzv-, ?4}|'~
D O G
} ~F N~D}sPMF^~D@|[
zFP.~P-zszps8}|jP ?4 ]j\ w) N}|[ ! }_ }) zp}PD
) D. M cN~
{[~F*
}| j~P zp~F j~F[/~
8|['zszp 4P |[ P[}~PK{) M}}~D[ ) jzp ~
8|[
}z/
p'~
9~F[8!/}|[~D[)
G#
VF
9
4P |[3'}i ~F zp~F[[M~Fj.~
9}|{-jPN8P} F4^~
~<?8
) F~D}|[I^~F3P u ~D) p9z}|[Pz-, [1?4|"!7$%$ !%&=$4 46$$#
8pf h h ^jD
'
/ B<6IW186D
q
-
a
1
0
b
0
1
1
c
0
0
d
0
0
1
1
!
~F:z3F~FM}|['3
}*j~}`b|[~?YF/^~D.}|*zD*~
_ jPM]\wz
M~F ~PF/
D
MPPp~F M{"j
*[ +^ |[*P}*zDR:zjzpt
)/x/ )[.~F}|!~D)M[~
D
MPP |[ f h h -jp[!|[ }P!3~Fj~F}|` )P-~
c}|[ jM[~D
[~D}|[ ?-*}~35? f h h D4 ^~D}2~
J)}*Tz \j}
}~F'
e
F[ {
j~~PP
^jzp~DzP j ){]\j)(?4}| }|[M"~
M}M:
O&$ }|jP/PjP} ~
yFjzp*| 3 \j}P[FjPF"P)n\jP[F
F
*}D
/N}|[/}.!* \j}
}~F'
~Fa}|jP*Fz/zp[}|{*M P4|*
[~F'
}~DT[~P )P z
~Fz8}[P/s
M~F7^~D
}|~D
jN~{~
PP^[zp~F uN~D
zc~FN/s
M~Fj~D"N~{~
P
"^[jzpM~Fj.z/
"j!{/! )
{*~DjsP~Fj ~F}|[
FjPFP Dzzp} ) { |[< \j}
[~F'
s z[ ~F : }jP!{ h
zp~D}}j~F)}~.{}PzpM~F ysP )[
)zp~FjM}jzp~Dj ^~F p sP}>
[~F'
}|~F
zPN3jM)~"zp~D![}3}|[~DN
M~Dj~DP[F
F P4|*
)
) f h h ~FjsP~Fz/
j3 *?Y )"F8
j~D.~
9}|P zp~Dj}jzpM~Fj
, 8 "A (
9;8 .!8A 0 ,
E
k
*8 G $
8 G
8 D $
.!8 G 8 D 0 8
E!
P4|[
w~P._j
M~Dj.zP"N3j):~<){:\j[3}|p
M~Dj
G .
$
0 . 8 G *8 G 0 $
.0
D .
$
0 . 8 D 8 G 8 D 0 $
E .
$
0 . 8 E . 8 G 8 D 0 8 E 0 $
?-|zs|t)P}z6N }|[ zp~DjssPDz}| 8 j }
M`^Y}sPj`M~D P4|[ zp~Djs[
zPw zp~F [){ ,!|[p.z6~Fi}[zp~F}~^~D}I}|[3s
`~Fp
M~D
.
$
0 G .
$
0 D .
$
0 E .
$
0 !
^ T}|F/[s3z/F~
>{jz}|[}~D[~F zszp{ ?4| MsP}|[~PK )7E~ )p@?Y
8 G $ $ 8 D P)
8G $ $ 8 D D j~DF~Dj~ }|[ !2~ )~ zp~D[{}/^~D.PFz}|MsP}
D
MP'8 |[}8 ^[jzpM~D/
, Mjz} ||j
8 , .
0 !
8 E
E
8
D
8
}|sPj`~D}p M~F
. $ 0
G .
$
0
D .
$
0!
^ |.zFM|[ f h h ^~D [~DDj
[)~ j~D zp~Dj
{eFz6}~F-
F.|j
|[
f h h ^~F , .zp~D )jeFz6}~F8~
P}D?-|[ |[3N/-~
csP} FP
{~
|[
M zszp ~*?4/F/}|}--
" )E) ~F9}Pz}|[{K_[.^~FY:z }[P/[*}6P~F
~
c}|4^~F} Nu
.
$
0 8 , .
0!
v v
-
"!
. P4| }~_ jPM]\j-[~Ds
M~FPN~P) zP}P-}|.:}{M}{~_ jPM]\wz
M~F~PRFP
{ 8
0*yD*
[}|[~*MsP}P4PFzs|j
{3
- ~M ?4~'}/j-
}/[}PM}):
E .
0 G .
0
D .
0 .
$
0 !
$#&%
('*)
D . 0
G . 0 5
"!
. . 0"0 .
0 G .
0
.
0 .
$
0!
5
~D}.|j
. . 0"0 .
0 ) D .
0 P4|pj
[ }}PMs4~D[ }/:"}|PFz}|
s
zp~D![s
M~F P4|[> _ [/jzp~
'MsP}>
[ G . 0s D E
. 0 .
. 0"0z
zp~DD}DP4}~ }|[.PD \E}[ ):j~P-~
[ )-|[ 8z6~F{s[ {~D )/[ P4|4F \E} )
j~
[*: }jDzp |[*~P.PFz}|
MsP}P F"!*4 '4 <46'& }| |[D~ )7~P3zp~D![[
}| f h h .
0R[}{[ }| \E} )*x~P[4 }jPP} )'zp~D![[ ) D .
0^~F .
0
P4|[ [} )z/
} }
j^~F} 2~"|jD.*F}
} \E}[ )j~
[8[ )/.M jzs`~F P4| \E} )
j~
[-'"~'x3~D[s ) ) }Pz64sP~F:sP}M!^}~D,}|[ M~PMs
P
~F [[M \2}[ )j~
[s*~
[ ) zP}sPj`^~D} s `*P}
~ '^[Z )[
{s
{j~
zFM \xz
M~Db8~ !-?4~D}}|?-| ~ }jP[}|[zp~F [[
~Dj z6~F : }M~
}|{.[~F P4|[ )PzpsP~F |[D~ ){~
PjP
) zp~D![[
. . 0"0 .
08
)
z}|[P-z ,[ }|[. _ Dzp.~
.
0c
) ) D .
0"~F ){-}~ )}/}* ?-|[|[-$ \2}[ ) x~P[
|jDN/PFzs|[ ) P4|*!$zp~F : }{"~PYz|P-z , [' _ {D/jzpp}|.z6~FjMs
~DP
"}|[ `
P~
9}|[ f h h }}PM[*|[^~FDp )w ) [ ~F"}| f h h {s
M~F
~M~
R}|.zp~D![sP~Fjb w~D}4D~9{}~$zp~F [[M
. . 0"0 .
0 P4|[8 ~: }jj
~
c}|48zp~D![[
.
0 .
$
"0 ! !
5
P4|P }jP!*~P8I9#:;<4'&<: 2"&5 =!*43z6~F [[sP~F * }|[~D[F|>}p
M~Fj-[D~ )jzpz/
j zp~F [[ )j}|*[~F f h h D~F|[ ^~D.}}Mzp~F>
Z ) w~~
P
zp~F[PzpDPpx
jzs| ~F3 "zs/-}~ j NzR[[j~$F~D}| * ?4 ) }z6j}|F~FM}|[I
zp~F 8
FS r
68<XF6I<X>?CJWK~I18
^ ~D) /}~NM^~F }PDz}|j
szp~F [[
M~Dj ~F}'"zs/("}Pz}| _ [:z) !% &4
$5#4 $%, 27: !%<46'&b{) [!~~F) /} f }|[/R
) {) }> 3~
^ ) 4P |[pPz}|[ _[
/ 6818Z6YXF1E
J=
{ [ j~F{$[}~D ?4}|}Fz}|jPs zp~F [[
M~Dj}|jP}|[{[*j~P*sP~F
[))}~7\j) \E})w~
[3 6N*:}j~F[{4 |[ [ N ~
zp~D!j~F.~
8}| F
}/ * |j M})) }|~D) ^~F zp~D![[R\E})x~P[s z) '4 %<4 + $ 8# ) |j
zPH) FMz }){jzp |[{[j ~
sP~F![){) ' y P4|[Q) Pzp}
M~D
D~F|[Izp~D![}P(}|4Fn\E} ) j~P@~P zp~D![[ . 0s E .
0s *.
0sz F[M
\E} ) N~P{--}Fzs|[) n^ }
-_ jP[7) /x/[) -~F~F['}|jP|[[) zP}sPj`^~D}
E =?-|z| -
/{
E . 0 G 9
.". $ 0 /9 . $ 0
'
. $ 0 I 0 $
'
'
}Fz}|jP^}~D G ^
Y(}| zP
M}P \j_ { s
) 8?{ jzp
zp~D![} )NbPFM ~Q)/}[1?-|[|[|[ }|) _ { .*
My\j) ^ 8|[ }|)
} _ !/ 3[~F$}
M \j)w(}|[>}|['zszp{3 jzp~D}}zp*P) }|} )~P3[~F :}M ~
P }|jP8}P \j.9}|[3} _} Ds
T~D~Fj }: \j!/!~ z}|[-z , ?-|}|[/ Pa
P
}Fz}|jP?-|
jp[ zp~D![} )NP} ) ~
?-M![Mb}|.zp~D![sP~F 4zp~D!{G /} 9 ~[@@j~`~
}/[}PM
G F8
!{z ) j i}[zp~F~
c/s f h h 6j
j~DF~Dj}~*
}M~F[ )}sPj`M~D
}6P~F P4|3zP`F] \wz/
j )jz6}|*[*j.~
f h h E~ )[ ){ )~ }}PM
G
Z )Y)~{P~F3zp~D!{zP}'z}|[P-z ,["} _} D P4|.}}PMsP~F~
G .F|[6{^
?-|[z|P-z , [ ^~F8|j PP )[-D{jzs|[}~D[~Fj zszp P4|*/ G z/
~"N3}/[}PM} ){
zs ) j i}[jz6~F ~P f h h p[[*}|{*} _ P*zp~F [[M[ Q
) w[ M~P3}PDz}|j
{
P^~D-PFzs|"~
|[ f h h 4jM )NjP ):-[~F8|[p^b^~D-Mz9 ~PMY
P
^ ~D!zFMPpY|[~?4D-z6~F [[[>}|[
P!}Fz}|jP^}~F |[
}!}~~
[ :z{ [ ~D: }
9zp~Fj )*F/^ [zszp{*|j
$zp~F{sj* $zp~F[{}/}|
jzp!/} )D}zpz ^ 4|[ zp~D[3 }~"}|[
*D[*>~P-|[ sP}P6
}|"zp~D![[ ?4R} _}
@PD . 0c}/j *% )Pzpj.H?Y~*!/}|[D~ )[6 ?-|zs7| )~ [~F
~P sP - _j
M[x^~D8N/ ) [ [" }|[ zp~D![s
M~F~
c
"D
M
[
P4|[ \sR }|[D~ ).~Pzp~D![[3P{FP
^~F
sP}|[R}|
^~F ~F [[
{F/s }PDz}|j
{s
j[6b}|[$
~P-Y
} ^}~D G ?-|{zs|M~F
}3G
G z
j
}Fz}|[ ) P4|{jp
|[8/~Pbw
}}|jPzP*}PDz}| pj ) .Ms
^ }|8zp~F
~
(}|[ }P \j} _} P ) 8 P4|["zzpzp~D}}zp
Z ) ~D M~
}P \P|[R
\jsM } _ !/ ?-|zp|T _ {D/"}~ G
P4|p|[t
) w}/jzp
j ?4/!^~F ?-
)P )F.PFzs|jP"
j[4}|
8}|[3}
j~Fp
~D-}/F )N
Z )7}|}~PP~P G
)
G
}F?
[w ) b( DsM"}PDz}|j
sa
j`!|F!jaM} ) )
{ [ ,~F ' (P ) z/
N *?4 ) F*D[
P
M~D ~
PP !|[D~ )[^~D& \j ) [
_D{.Ms
P@+ \j{*Ms
3 Dz|[ s Dy
^ ~F 8zDP6PD
M
[YzP*x8z6~F [[} )jz}| !~D} _ z , ?4|!F/s-PFz}|
s
[|j
^~D"?
)w(F.j~D}| }|D~ )[zp~D![} |['}
!{FP
3
: }}}/!
: }
{zp~F` )Yj`[*PFz}|jPs Pj`-}~D^*|j
YF?Y~.K ){Mz {8z6~F[s|jF
}|
[[ /~F[[[ N|~F P4|[
G *}|"*~P3MsP}P-?-|[|[ ?4~z6~F[{}
|j% ) w-~D[}[s ^ G -*[
~F/|[ M}@?4Rw.} _} ):~ zp~F [[
G |zD
~?/
z
jz6~F [[} ):D} _ z , "jzp
[ ~F8}|[ zp~F ) }|D~ ):^~F8MN ) [!|[*z6~F [[sP~F~
({D
P[s6[[~FMz6}|
[~
'
z zp~F [[
M~D ~P4{FP
s3
)jM3zp~Dj}jzpM~F ~P@[DP
[.
i}. ?4~' )[.~
zp~DM{[[ * ?4~DQ
)Pzpw}|^~F ?-P )}Fz}|jPszD|}j[[ }|[3K ){P zPM~
j P[ ) }DsM*j`[}|[ )}t
)Pzpj )PN~P P4|[!.*3zs|[~{~ "M G ~
P3jz}|}|jP G G b}|}|[ M ~
} PFzs|jP^~F
G 3zp~D![} ) $^ G
z}|[~K?46e[|[
e
- F
zp~D![s M~Fj
a l0 1E9: WK=rKU>
~F` ) 8}|[3^~
~?4[ }pP~Fj[~E)zp
.
0
5
.
-0 .
$
0 !
"!
.
0 .
$
0 $
?-|zs|R~
^}/e
F P4|[-F`z@ )P.j|)|[8D~F|[ c~.j^~D}}|-[~F jzp~D=
i}[jz6~Fb:}zpb}|jP(F/}3 ?@ ?Y~F )[{ ) [2~ )@Pbp ) ?4}|'
*6/!R~
?4-j
^~F,#) ji}[zp~F P4|[ f h h .
0b-zp~F [[ ) ?4||[3z #: %&5 . .
0 $ .
$
0 $
0
ux ,"'
f h h F~D}| 6 #: 9&*TjMP*}PM zDz}|[ ?^ }| zFMPT|[
zDz}|[
}3~P}|[8^~F}
., $ 0 $
$
0s?-|[
8*-~P(
MPP8
),&0:
)
f h h ^
z|'
"}@ }|[ zFz}|[Y!PPj@|j
[~Dj-z}~ : %&* . , $ 0 $
0}}[ ) F
s-}PM
P4|[ D~F|[ F8[}PM{} ) )w ) ~
8D}M[!~Fj
w~F[.|[ f h h D
M
~D"
)M[ &^ ~D[. {s
M~Fbb |jF.N/~F[M
)^~F }|[ zD1?-|[*}|[*[P/MsP}
Z)![: }
.D
PP-
{}M )N?4}|zp~D}}j~F )*[}PMY
) [: }4MsP}8FP
{
)isFzp{-}~ PDz}|~D}|[/
P4|['F~D}|[ ?-|{A?Y~F , [K?469>[sDzpzpA.`F}M[* .
$
0-.}PD~F
>`
) 0
|jD : }j~F[/Mz6~F : }M!|[ ?4~Ds zD ~8~
|[ `}jP~F ?-|}3}|{8zp~D!: }{M
!~F )TP}z/F(?-|z|a}|[~F[[[ .
03!: }x~D[{T
F |j
|[[[s
.
08
) .
$
0 &^ jz}|>`}
~DjpP!|[D~ )~
zp~F [[M[ .
0-jM3|jF*: }j~
[{9zp~F : }{M
P4|[3jFz}p
M~Fj([E~ ){jzp8D~F|[ } _}4|j [ .
$
0N ~F[~P|z}
j
~D }pP~Fbjz6~FjM[*~P9[
f h h& *. ?T'Pz6~F |[~?T~*zp~Dj}jzp| f h h ^~D
{jz}|[~F[~Dj
)FMz|[~F[~Dj zszp ^~D}}j
p^~D'
{ sFz6z8 }jP!P6(}|
f h h -F/}!
F
~F )}
jM~F}p
M~Fj.z/
}~P )$ jzs| ~F zp~FjzsM[}5
/
~Db[[[-|['z
[~F-j.jM )A?4|"}|[3jD`z.}p
M~Fj([E~ ){jzp-F~FM}|[ T^ }|.[: }
?~ [jMPzpM~Djp=?Y3|~ ? |~ ? }~ : }} ) }|[8jFzF~FM}|[I}~ z6~F [[}8}6P~F9[}2~ )jzp
^~F8jP}M~D[ )s
`~Fp
M~Dj
g
$
0(}|[3} zFz}|[
. , $ 0 $
w|[3}~DDP
*~P1 ,
"N3|[3}~F"D
M
*~
- 0
!j3}|[3}~D[ ~8~
P )
G #: %&5 . ,4 6 G $ 0-4 6 G $
0
D #: %&5 . ,4 6 D $ 0-4 6 D $
0
. G $
D 0
f h h ^~D G D
"! !# 8 $@: $5J.% $
D $
G 0
f h h ^~D .% D 0. *& G 0'
(
j . , $ 0 $
$
0(|[3}PM.z/Fz}|[
(
[ F} ( p M~Fj[}~D){jzp8D~F|[
"!
"!
"!
' !
' 6 )
D
P4|{jp
}|*/~PD
PP3zp~F{s ): |j
3P} [~F zp~F{s[) ' ^~D.P #
F*|j
v P4|[
}'j"?4MR
) i}~
j
) }|p[~D _j4~
P4|['}p
M~Fj
[~E)zp4_j
M~F zPj zp~D![} )"F
D .
$
0 5
.
-0 G .
$
0 !
E .
$
0 D .
$
0 D
.
$
"0 !
5
D .
$
0 D .
$
0 !
P4|[.~D)/[ |jD-`D]\wz
j jDzp4~D|~ ?
*|[ zp~F [[
~D
.D
PPz/
j<_jPM \) ~F P4|{ wPzp|[
!~P8}|[ f h h 3zp~Dj}jz6})
)}|[ :zjzp~
-|[
F/]\wzP~Fa[}~{zp)[} P4|{jp3 N~D}sP }~z|[~~ zP}p^i}jM*D ?4}|}| f h h
D
MP~D)M[ n^ [sDzpzp ?4 |j
D^~F[Z )'4eMF }~ z6~F .[A?4}|~F )[L?-|{zs|
3F~{~2):P{
.
0
5
$ +
m G#>?CF18r
6D6TE=
m / op6cWeG#U6Dq
F=
~D)pczs|[Pz-,! |[}~F{/ ~
)/}[A?-|}|[/3!
P u ^~D}* , .}[
sP} sPj`~DTF
[| P4|}**[}~DFsP z/)|@ . |}[))>~D)p.|Pz-,F0
}|
8FM \ P |[3}[}|"~
@^~F}*{*!~D){pR j :z-F
[|=^}
}R}Pz}|[{K_[P
^ Y}|[ !~D{) p.[}) D"
!s
`~FDs
|b|[ z6~F :}M~P8}|[ F~FM}|[1
[P
8}|[ /~
c}|[3F
[|P:) }|[.[D}|~
9}|^~F P4|[*F~FM}|[I _ eD
"[sDzpzp1 g ~?YF/{
":} ~`~D }|3`
.~P(|[8!~2) pw' ~{zzp@?-|['}|[3MsP}
}
j~F DsP[| [} sFz6}.) ^}~F .zsz6FjP}Mz6
*N|[8zsz6zp~F{sj( P3}/
s
~F8~F|[- ~F} p s
^ |.zp~F ?}PM.* ~D) p9z}|[Pz-, ["D~FM|[^~DP u ?-|zp|"jP f h h 8F4s
}w}}PMsP~Fb ~D) /@~*F~P :) [} z [ sP[ }|[
}@~
R|[8!~D) 6
*
z}| $%+, "&<: '!L,1&#:8!8"!*<) 4P |[8F~D}| ) j\ [3) [~[z6) [.l }|jP(s, P
}|P u ^~D} }~j"z}|[Pz-, ) F.*
F[ { R^ 3}[} f h h .
0.|j
*[P
:} FzpM!|[~M3
}@~
9}|.M[M} }|jP-
^ }|[8^~F} { 9zp~F[{}|[8~F}[[-~PYl
) jZ[) ~F}|M[M} jp[>z}|[Pz-, ) }|{
sP!/}!{z!}|7) }zp}`~D Np~?
4P |[' ~
4M
} [}
) f h h .
-0R
) |[ }sPj`M~D}p
M~F
.}[P/G }
) {|[ f h h .
$
0 F%) }zp}) PPG * F[ *}|jP -4'&<4 <:b|j
p(D}MsP}"|jF ~D!"Mjzzp}~D*Ms
4P |}[ ^~FsPj`~DT}6P~F~P8}|[!^~D}'
) Pzpw!) Pz6~F 8
* ) j\ [l ) jzpMp ~PD*}|[M}}zp}["~
*P u ^~D}*D z^ ,7
~F*z
[~FN~`~D 8w|[l ., 0Y`!{ }| f h h 8 4P |[-) jz6 j(^~F@^~D} F4~
R|[
^~F
,(
-<,0 j
Z
)
,
}3P{ }'@~P(} )
3[}~zp) }P
.
, 0
.
-<,0
.
, 0
l
~F jP}*}|l):\~F ~P l
~ }|*}p
M~Fj4}~2)jzp- |[l) \j~F~
(' ) D
yPz6~Fb' P4|[/TP} _}
":}zp[ }|jP \s'zDz6~F [[}|[ ~
MsP}P^}~D
?-|zs| sP}- zP!j8}PDz}|[)N<?-|3}|[8MPzp~FZ) zp~F [[P|[.MsP}P}|jP4z/
N8}PDz}|[)
^}~D Ms
(' ^ '~F}| ?4~F )[pwl
jM^~F ~F[ ~
93jFz-,?-P)!PFz}|
s
szs|} ) ~
^~F"?
) }PDz|
sPPszs| P4|[ Pz}|[ _[P&){P}zpMN)Pz6~F ^~D
zp~D![["}pP~FjY[}2~ )jzp.zPN*jM )|[ . ~5?4DbD ) }z6j}M )>[PzpM~F 8
?43' ?4M|}~ j ) N/}{
}M~F~F )[ ^~F8}|^~F ?-P )
Z )jDvz ,?-P )PFz}|
s
zp~D![s
M~Fj ?-|"j`["z6~F i}[zp3j
~D[ 0
( z }|jP }|["^~F
-< ,0 P
|j
|[: >zp~F [[
~D jP[ |[
zp[}Ms
?-|{zs
| 0T}[M~F ^[[}>
.P ) , }[$}|[MsP}P
[Pzp ) [ P4|4!PPj@|j
Yp}|[/? 0*4}["}|[ zp[}sP}{~F , 4}[-"}|[3z6[}
P ) }|}*: }{jz/zpP}M~F
?-|zp|
< ,0 3}} l^ ~D}|[/ ?Y~F )[pb.|[
PFM \2}[ ) j~
[-~P}|} ) zP}3}
j^~F! ): \[ )
. . 0"0 .
0
.
0 .
0 l
. .
-0"0 $
?-|[
) P}-|[8~
}(}P`^[' 0$
) ,FPwPzpMDpK s y P4|[8F~FM}|[ ^~D
l
n ?4~D- ,< \jZ ) [ }|PFM \E} )j~P~P4|[*PN~PF [} ) z
}
j^~F! P4|
\E} )j~
[3z/
j zp~F [[ )I?4}|p|[.|[ ) }Pz6}
~D ~D sP - _j
M["!|[2~ )[
)Pzpw ) P
M
P4|[^~D}*
, sP}P*}|
}|[: }{!zp~F [[
M~D NP[[?4}| |[z6[}
1?-|zp| ,!
~FI._[D
M
[M0R}[ P4|{( P
c|j
1 ,!@}[4 |[8zp[}Y
Z )
, .}}>~D! Mjzzp}~D3
P4|3zp~FZ ) ~F .}|*F}
} \E} )w~
3~P4|[
[ ) z
3}sPj`^~D}
. . 0"0".
0
.
0 l
. .
0"0 $
?-|[ .}| 3~
Ms
P3}P`^[@
, l
zp~D![}P| \E}[ )N~
[/Np}|.{
) }zp4}
~D~F-sP - _j
M[
^}/& ){}[|[' ~P
}}|
}P`^}|!^~F* ,(|["D~FM|[ zs|[P-z ,
?-|[|[ G - [-~P .e}|jP4p ?-|}|[/ * G .
0 .
0R4|[ f h h }[P/[K4 0
^ -p[}|"}|[ I
y \jP ,
?
v
$
w
M}
8 ^ zpzP4}|[.|[}~D[F| % [|[3}PM -jF)"jH?4/"N3}P}/s
' ^ "}|[.FM.z6[z{}|[3P-L?-M}jFz, ~*}|[3}/
\
*|j4jz ){ ) : }[s.N8}/
s( }|{4Ds~F ~PRNp[.~P|[~+?T|[jM^~F Pjzp
~
Y|[3!2~ )p9zs|[P-z ,D ){j )[~D|[{[w8~
w}/
s ^ *}Pzszpw~FN/s
M~Fj
?4~D )ez*w4jM^~F} )3NH?Y$~F 4~Pw}|[-js(~
wNY}P}/spD[[*~F@ }jP!
}s8
i}j8[}~Dj
)[z|jP[F )
|Fzs|j}jz6~FMxz] \jP4}|*~D[sz6P )R){PM
~D}PM}P )|[~DjsP~F~!j
^~F ^ ' )E)M~Fb[|[.N6[ |jFY $4'<::x[[[-|j
( ) zP}P4|j
Y}|[-j}jzpM~F({D )
Z ) |[~D ) x*F[~D} ) ~D}'Nz] \wz{b}|[!jM}jzp~D # )PMj
M~DT
*M|[~F{K )[~F
j3 wPz6} )R}|[ $4'<::x[[4}[ P4| $4 <::`FjRD|[F^~FY: }
N8j ) }~ )z/
}
jM}jzp~D zDz}|[*} N}|[$`F ?Y~F )N$F} )"[MP}jzpM~D ^/sz}|[ ) ^}~D
' ~F} ^ ~F )-~ ~+? P ~*N.jM ) Np^~D}.|["P} Fz6}jK?-}"{}~*|[
}/
T \[ )[Ps z
"N8^ )!^}~F }|[ ub ~D[}[-~F-^}~D,~F[3~P(|[3N.
s-jDvz , ~
}| ubT~DN
)*}/
s *-: }x/!/} )-?4}|".{[w~
bDs~Fj~
R}|-Np[ ?4}|
D
[ js4~P(
M}
[
M} ?4 )|j A${[ N@~
9N sPFP [P ) [*j4~
~FwsP~F
P4|[ jPz] \wz/
~D~
9}|.Np[.4
P u [ ~F8 zs!~P( }[[~`~Db ?4e \E} |[
{[w~PYF[/sc}PM}
P
Z )}|[*{[w8~
YN*
s P b
Z )I?4 F[
}|
-}|.Np[# )~{P4~F{': }jzs`*^~F-~Fj
M~Dj ^ '}|[3Dzp}RF/] \wzP~Fb?3j ) !~D}
zp~D!: }'zszps@?4| !~D}8~FwsP~Fj P4|.MNPz] \wz/
~D|j
?48j )!zp~Dj`Ms4~
R ?Y~jP}s
P4|[% \jsM3wPz] \jP-}|jP|[l ){PM
~D }P}/[ )[
)zp~D}}zp P4| )}zpMw )
/-~
(^~D}{D~
9}| ^~P~<?4[*^~F
* $4'<:: .". $%
!  $%"! < 0 9$ 8:;4 0 !
s
Read ports
Write port
Instruction inputs
Register file
Op2
Control
Op1
ALU
Pipe registers
Bypass circuitry
[ F}&' N6[$zszp{-{~z-,7)
Ds
$% !
 P) $% ! <
}$
[}
~Dj ^~F-^~FD}|jP[P-|[3D[~P}| }|
*~
}| ?4 ~M~F[zp"~FwsP)[*
Z) 9$ 8:;4 *^~F}*{|j
*[P}|[ }| {*~P.|[
} ?-M}[~ }|}/
\[ P4|[~DF(^~D}{"Ms
P s}|[*{wp[[~F3jp[
)Nb}||[ |.~P}|*}PM~P4|[*z6[}~DN
M~D M|[~F{K)w|[:}zj5_~D.~
}| }|"s-~
|[3H?4~'~D[sz6~DN
)
^ ~D ) }~": }[}P $%"!  $% ! <
)$ 8:;4 ?4 [) ?~
:}[}P`[}|[*D[
~F )!-~
c}P}/.M~F .*x /-~
czp[zs #!|[.^[}} yFjz6|[.~D~F)/}
*{M,|[ zszp{- [[[8[~D )}*b
)`jzp }|[.[[s.zP[[~D. Nzp|[*MsP}
~
R|[.
\3[M zpzP(}|[8^[}[ .MD}M[[ _j 0s{}|4z/
"j% )~F.j`[*|[
P u ~FwsP}~F P4|
4
9 ) $
'
'
'
'
D
D
A '
D
D
'
P4|[ M]\wz
M~F !&)~DjP} ) { |[!M! _}) ~zp~D![} |['sP}/s ^~D
}|*^~F*F ) E 6) P4|[}$
A jzs|^~FD |@Dz|z6~F [[sP~F~PY}|^~F
~PP4~F[$z9}~ #: %&*"^~F8PFz}|Pzp3~
|[3}
jM~F}p
M~F P4|[3M \xz
M~D P
zPw Fzzp~D[{})!^~F8D^~P~<?8
Seconds
1024
512
256
128
64
32
16
1
Register width
Pipe stages
Number of registers
Number of operations
0.5
0.25
16
32
64
@ /
1E>?CFW6D9
Tenths of seconds
4096
2048
1024
512
256
128
64
32
16
3w TR partitions
3 TR partitions
4
16
32
64
128
Width
'
?
v
&
%
Z
G
P4|{jp-{}/P [ '
Mz!}}~D){jzpP PP}M \xz z6~F}p
M~DN/H?4/ }|[~z MsP}P
~
) ( }|[ .
-0 H^ TsFz6zp-}| .
0
F/[sa*jz}|T
F |j
|[
| ) ji}[zp
.
0 <f PzPj*~P8}|3wPzpsP)[P ) [} )| \j3}Fzs|j
sPj` ?4
jP}M~D[ P :z-|j
/?4|zp~D i}[jz63j
~F{
* zP ,F ) ji}[zp"j
~D[!~D}" :z* j !D~ ) \ ) [}P )}
| \jsM
szs|I.` f [ y=0b^~F-PFz}|jPs'
[ Pb~ PPsz}|"}|.}PDz}|j
{ Ms
P4~
2I \jsM-zp~D![}
P@PFz}|jP3*s
`~F ~P ?4Pc P4| z6~F [[} }|[
}@}Fz}|jP ^~F2|j
/{}
j~F[~F ?4P P4| _j4~"}|[
~F8}Fz}|jP"
}'/(jzp
Z)
.[jzp~D[ ) y
sP}p"z6~F [[[~jz/ \2}[ ) x~P[s@^~D-}|[. ?4~*jP}s4~P(|[
|L? } ~DP |[
] \wzczp~D}}6P~Ft
){P}zpMN )"
j~P
^ F[/seb^~F "zszp ) ) ){}~ ~[~pzp~D[ )[zszp ?4 z6~F [[}*|[
}Fz}|jP Ms
P~P {"}jPP} )zp~F [[M[!~jz \E} )"x~P[s ^~D.PDz}| [MY!
~Dj
\E} ) j~
[4}Fz}|[ ) P4| )P z
"N3: }}/ ) )!~ *|
szs|K?4}|P'[ N-~P6
[ ~F8: }
Nz6~FjK ){.'z~ ) ?4}R| ':[zszp G |[}~D[F| .MM$ \F[ g 0 uN
j8}|[ ~PR
D
M
P4~P {
)
j8}|[8[~F'~
R}|
y[zszp
)
zp~D ! [z
"}|[~F[D|T}|"
}"D
M
P
uN N |[ ~
FP
{
}|
3P} )M/{ P4|[
*j"?4M< ) i}~
j.P )}|[6 [~F _ j(~
* z/
zp~Dj}jzp|
z|{ ?-|}.|[8}~F DpRM4}|[ zszp}~ j
s }~FD}|@?4}|
^~F ~F[*
}/ E
Z ) ^~F} }|[ ~F|[ P4|['Pzp~D )/Fp~P-|[!|{/s
Gz|^}}|3{D
}|zszp~ |[ ) ) ?^ }|{ zD"!2~ ) ] \j ) [P ){}?
| \jsM MP
z}|[}~zp ){
}jP}pR
\jZ ) [Y|[
} PFz}|
}
jM~Fj G D P ) E [{
& \E}[ ):w~
[4PFz}|[ ) - -PDz|"sP~Fr \j ) ['}|[
P PFzs|jP G D )~D[
{}jP}pR
\jZ ) [Y}|[ Ms
P.}PDz}|j
{ s
`~F
G
Z ) D [ \E} )
j~
[ )!-}Fzs|[ )
'
'
'
C0
C1
C3
C2
control
part
control
part
data
part
1
...
data
part
w
data
part
1
...
data
part
w
completion tree
cell d
completion tree
cell 2
completion tree
cell 1
data
part
1
...
data
part
w
4096
4096
2048
2048
1024
1024
512
512
256
256
128
128
64
64
32
32
16
16
Conjunctive
Disj.+MBFS
Conj.+combined
4
1
4
1
16
Abs.+conj.+comb.
Abs.+disj.+MBFS
Conj.+combined
32
16
32
Nodes
Nodes
32768
32768
16384
16384
8192
8192
4096
4096
2048
2048
1024
1024
Conjunctive
Disj.+MBFS
512
256
1
512
16
32
Width
256
1
Conj.+combined
Abs.+conj.+comb.
Abs.+disj.+MBFS
2
16
32
Depth
Seconds
16384
Disj.+MBFS
Conjunctive
Abs.+disj.+MBFS
Abs.+conj.
8192
4096
2048
1024
512
256
128
64
32
16
16
32
Cells
'
Nodes
65536
32768
16384
8192
4096
2048
1024
512
256
128
Conjunctive
Abs.+conj.
Disj.+MBFS
Abs.+Disj.+MBFS
64
32
16
32
Cells
''
's
'g
'
'M