Vous êtes sur la page 1sur 31

PONTIFCIA UNIVERSIDADE CATLICA DO RIO GRANDE DO SUL

FACULDADE DE ENGENHARIA
Vanessa Borba de Souza
!r"#a Feder#zz#
Arquitetura Intel x8086 Simuladores
Trabalho desenvolvido para a disciplina de
Arquitetura de Computadores - EC



Pro$%& Eduardo Bezerra
Por'o A(e)re* +, de Abr#( de +--.
/
Sum!rio
In'rodu01o &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&2
Ar3u#'e'ura do 4#"ro5ro"essador ,-,6&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7
Re)#s'radores de Uso Gera(&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&8
Re)#s'radores de Se)4en'o&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&6
A5on'ador de Ins'ru01o9 IP &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&:
Re)#s'rador de FLAGS&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&:
e4;r#a&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&.
odos de Endere0a4en'o&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/-
L#n)ua)e4 Asse4b(<&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//
In'rodu01o ao Pro=e'o dos S#4u(adores&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/+
De"od#$#"a01o das Ins'ru0>es&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/2
E?e45(o de F(u?o de Ins'ru0>es no D#a)ra4a de B(o"os&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/:
Sobre o ar3u#@o 'es'e&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/,
S#4u(adores&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/.
S#4u(ador da ar3u#'e'ura ,-,6 A Se4 P#5e(#ne&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/.
E?e"u'ando o 5ro)ra4a&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/.
Fun"#ona4en'o&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+-
C!("u(o do CPI&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&++
S#4u(ador da ar3u#'e'ura ,-,6 A Co4 P#5e(#ne&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+2
O P#5e(#ne&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+2
Con$(#'os do P#5e(#ne&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+2
Hazards Es'ru'ura#s&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+2
Hazards de Con'ro(e&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+2
Hazards de Dados &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+7
E?e"u'ando o 5ro)ra4a&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+8
Fun"#ona4en'o&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+8
C!("u(o do CPI&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+:
S#na#s de Con'ro(e&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&+,
Con"(us1o&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&2-
+
Introduo
O ,-,6 B u4 dos 4a#s an'#)os e "onCe"#dos 4#"ro5ro"essadores de /6 b#'s& Sua
5o5u(ar#dade se de@e a 'er s#do es"o(C#do "o4o 5ro"essador 5ara a (#nCa de
"o45u'adores 5essoa#s da IB& Na @erdade* o IBDPC 'rad#"#ona( usa u4a @ers1o
s#45(#$#"ada do ,-,6* o ,-,,& No@os 4e4bros da $a4E(#a IBDPC F"o4o o PC AT e o
PSG+H usa4 e?'ens>es F@ers>es 4e(Coradas e 5ar"#a(4en'e "o45a'E@e#sH do ,-,6&
2
Arquitetura do microprocessador 8086
O 4#"ro5ro"essador ,-,6 da In'e( B u4 4#"ro5ro"essador de /6 b#'s* de $or4a 3ue
sua un#dade (;)#"a e ar#'4B'#"a* os seus re)#s'radores #n'ernos* e a 4a#or 5ar'e das suas
#ns'ru0>es $ora4 5ro=e'ados 5ara 'raba(Car "o4 5a(a@ras de /6 b#'s&
A(B4 d#sso* o ,-,6 'e4 u4 barra4en'o de dados de /6 b#'s* ou se=a* 5ode (er e
es"re@er na 4e4;r#a ou nos 5or'os de EGS u'#(#zando /6 b#'s de u4a s; @ez& O
barra4en'o de endere0os B de +- b#'s* de $or4a 3ue o ,-,6 5ode endere0ar / B F++-H
5os#0>es de 4e4;r#a& Cada u4a des'as 5os#0>es de 4e4;r#a B o"u5ada 5or u4 B<'e&
O 5ro"essador es'! d#@#d#do e4 duas un#dades $un"#ona#s 3ue "oo5era4 en're s#9
I A "nidade de Execu#$o %&Execution Unit& - E"'( Es'a un#dade B
res5ons!@e( e?"(us#@a4en'e 5e(a e?e"u01o das #ns'ru0>es& E(a n1o se o"u5a da
'rans$erJn"#a de #n$or4a0>es en're o 4#"ro5ro"essador e os de4a#s "o45onen'es
do s#s'e4a& Kuando a e?e"u01o de u4a #ns'ru01o e?#)e o a"esso a a()u4
o5erando e?'erno ao 4#"ro5ro"essador* a EU )era u4a so(#"#'a01o L BIU&
I A "nidade de Inter)ace com o *arramento %&Bus Interface Unit& - *I"'(
Es'a un#dade se o"u5a e?"(us#@a4en'e "o4 a 'rans$erJn"#a de #n$or4a0>es en're
o 4#"ro5ro"essador e o res'an'e do s#s'e4a* ou se=a* B res5ons!@e( 5e(o
endere0a4en'o do barra4en'o de endere0os* (J #ns'ru0>es da 4e4;r#a* (J e
es"re@e dados nas 5or'as e na 4e4;r#a&
+i,ura -0: D#a)ra4a de b(o"os da ar3u#'e'ura #n'erna de u4 5ro"essador ,-,6G,,
7
A F#)ura /&- 4os'ra a ar3u#'e'ura #n'erna dos 4#"ro5ro"essadores ,-,6 e ,-,,&
E?#s'e4 bas#"a4en'e duas d#$eren0as en're e(es9 a (ar)ura do barra4en'o e?'erno de
dados F, b#'s no ,-,,* e /6 b#'s no ,-,6H* e o 'a4anCo do b(o"o M$#(a de #ns'ru0>esM F7
b<'es no ,-,, e 6 b<'es no ,-,6H&Nes'a 4es4a $#)ura 5ode4 ser @#sua(#zados os
5r#n"#5a#s b(o"os s1o da ar3u#'e'ura* sendo e(es aba#?o des"r#'os9
I "nidade Aritm.tica e /0,ica %A/" '( un#dade "a5az de e?e"u'ar o5era0>es sobre ,
ou /6 b#'s& E?e"u'a o5era0>es (;)#"as e ar#'4B'#"as* rea(#za a 4anu'en01o do es'ado
do 4#"ro5ro"essador e das $(a)s de "on'ro(e* a(B4 de 4an#5u(ar os re)#s'ros de uso
)era( e dos o5erandos das #ns'ru0>es&
II *anco de 1e,istradores* "ons'#'uEdo de9
Re)#s'radores de Uso Gera(9 AN* BN* CN* DN* SP* BP* SI e DIO
Re)#s'radores de Se)4en'o9 CS* DS* SS e ESO
A5on'ador de Ins'ru01o9 IPO
Re)#s'rador de FLAGS&
Registradores de Uso Geral

S1o re)#s'radores de /6 b#'s* u'#(#zados 5ara ar4azenar 3ua(3uer #n$or4a01o duran'e
a e?e"u01o do 5ro)ra4a&
Os re)#s'radores de uso )era( s1o subd#@#d#dos e4 do#s "on=un'os de 7 re)#s'radores9
1e,istradores de 2ados( AN* BN* CN e DN& Seus b<'es su5er#ores FAH* BH*
CH e DHH e #n$er#ores FAL* BL* CL e DLH 5ode4 ser a"essados de 4odo
#nde5enden'es* ou se=a* "ada re)#s'rador 5ode ser usado "o4o u4 re)#s'rador de
, ou /6 b#'s& E@#'ando ass#4 o uso de re)#s'radores de /6 b#'s 3uando se
rea(#za4 o5era0>es de , b#'s& E(es 5ode4 ser u'#(#zados se4 res'r#0>es na
4a#or#a das o5era0>es (;)#"as e ar#'4B'#"as* 4as a()u4as #ns'ru0>es u'#(#za4
"er'os re)#s'radores de $or4a #45(E"#'a* 5er4#'#ndo u4a 5oderosa $or4a de
"od#$#"a01o&
1e,istradores Apontadores e de Indexa#$o( SP* BP* SI e DI& O a"esso a esses
re)#s'radores B se45re $e#'o e4 /6 b#'s&
Pode4 'a4bB4 5ar'#"#5ar da 4a#or#a das o5era0>es (;)#"as e ar#'4B'#"as&
1e,istrador A3 %A4 e A/'(
P 'a4bB4 deno4#nado A"u4u(ador Pr#4!r#o& Todas as o5era0>es de IGO s1o
rea(#zadas a'ra@Bs des'e re)#s'rador& As o5era0>es 3ue u'#(#za4 dados #4ed#a'os
ne"ess#'a4 de 4enos 4e4;r#a 3uando s1o $e#'as a'ra@Bs de AN&
Gera(4en'e B u'#(#zado "o4o Cos5ede#ro 5ara @a(ores re'ornados de subDro'#nas&
1e,istrador *3 %*4 e */'(
P 'a4bB4 deno4#nado Re)#s'rador Base& Usado 5re$eren"#a(4en'e "o4o a5on'ador
da base de u4a 'abe(a de dados& Todas as re$erJn"#as L 4e4;r#a 3ue usa4 esse
re)#s'rador no "!("u(o do endere0o usa4 o re)#s'rador DS "o4o se)4en'o 5adr1o&
8
1e,istrador C3 %C4 e C/'(
P 'a4bB4 deno4#nado Con'ador* sendo usado 5r#or#'ar#a4en'e 5ara "on'ar o nQ4ero
de #n'era0>es no #n'er#or de u4 (oo5 e 'a4bB4 na 4an#5u(a01o de s'r#n)s& E(e B
de"re4en'ado duran'e as o5era0>es en@o(@endo (oo5s e s'r#n)s& Ta4bB4 u'#(#zado na
ro'a01o e des(o"a4en'o de @!r#os b#'s&
1e,istrador 23 %24 e 2/'(
P 'a4bB4 "Ca4ado de re)#s'rador de dados ou endere0ador de IGO& P usado 5ara
)uardar dados de /6 b#'s nas o5era0>es "o4 a ULA e "on'ro(e #nd#re'o de IGO& Pode ser
usado 5or "o45#(adores 5ara re'ornar @a(ores de subro'#nas&
1e,istrador S5(
P deno4#nado S'a"R Po#n'er FPon'e#ro de P#(CaH& U'#(#zado =un'a4en'e "o4 BP 5ara
a"essar dados no se)4en'o da 5#(Ca& Ar4azena o So$$se'T do endere0o do 'o5o da 5#(Ca&
Todas as re$erJn"#as ao SP* 5or de$#n#01o* u'#(#za4 =un'a4en'e o re)#s'rador de
se)4en'o SS& Ta4bB4 5ode ser usado "o4o o5erando e4 o5era0>es (;)#"as e
ar#'4B'#"as de /6 b#'s&
1e,istrador *5(
P deno4#nado Base Po#n'er FPon'e#ro da BaseH& Per4#'e a"essar dados no se)4en'o
da 5#(Ca& T#5#"a4en'e B usado 5ara a"essar 5arU4e'ros 3ue $ora4 5assados 5e(a 5#(Ca&
Ta4bB4 5ode ser usado "o4o o5erando e4 o5era0>es (;)#"as e ar#'4B'#"as de /6 b#'s&
1e,istradores de Indexa#$o %SI e 2I'(
S1o deno4#nados Sour"e Inde? Fnd#"e de Or#)e4H e Des'#na'#on Inde? Fnd#"e de
Des'#noH& S1o usados 5ara a"essar dados na 4e4;r#a de dados& S1o e?'ens#@a4en'e
usados nas o5era0>es "o4 s'r#n)s& Ta4bB4 5ode4 ser usados "o4o o5erando e4
o5era0>es (;)#"as e ar#'4B'#"as de /6 b#'s&
Registradores de Segmento
A 4e4;r#a do ,-,6G,, B d#@#d#da e4 se)4en'os (;)#"os de a'B 67 Vb& A CPU 'e4
a"esso s#4u('Uneo a a'B 7 se)4en'os* u'#(#zando os re)#s'radores CS* DS* SS e ES "o4o
se(e'ores de endere0o& Es'es re)#s'radores es'1o (o"a(#zados na BIU* sendo a"essE@e#s
5ara 5ro)ra4as* 5odendo ser 4an#5u(ados 5or @!r#as #ns'ru0>es& As 5r#n"#5a#s $un0>es
de "ada u4 des'es re)#s'radores9
1e,istrador CS(
P deno4#nado Code Se)4en' FSe)4en'o de C;d#)oH& P u'#(#zado 5ara 4on'ar o
endere0o de u4a #ns'ru01 F"odeH a ser bus"ada F$e'"CH na 4e4;r#a& Es'e de$#ne o
endere0o base Fse)4en'oH e de@e ser so4ado ao re)#s'rador IP F'a4bB4 (o"a(#zado na
BIUH 5ara $or4ar o endere0o de +- b#'s da #ns'ru01o& E4 ou'ras 5a(a@ras* a5on'a 5ara o
se)4en'o de ";d#)o de #ns'ru01o e4 uso&
6
1e,istrador 2S(
P deno4#nado Da'a Se)4en' FSe)4en'o de DadosH& A5on'a 5ara os se)4en'os de
dados onde )era(4en'e s1o ar4azenadas as @ar#!@e#s de 5ro)ra4a& E4 "on=un'o "o4 IP
de$#ne o endere0o e$e'#@o do dado a ser (#do ou es"r#'o na 4e4;r#a&
1e,istrador SS(
P deno4#nado S'a"R Se)4en' FSe)4en'o de P#(CaH& A5on'a 5ara o se)4en'o da 5#(Ca
e4 uso& Todos os a"essos L 5#(Ca u'#(#za4 os re)#s'radores SP e BP e u'#(#za4 "o4o
re$erJn"#a o re)#s'rador de se)4en'o de 5#(Ca FSSH&
1e,istrador ES(
P deno4#nado E?'ra Se)4en' FSe)4en'o E?'raH& P u4a o501o e?'ra 5ara a5on'ar a
base de u4 se)4en'o de dados Fs'r#n)sH& Por e?e45(o* e(e B u'#(#zado =un'a4en'e "o4 o
DI 5ara $or4ar o endere0o da base de s'r#n)s de dados&
Apontador de Instruo: IP
P deno4#nado Ins'ru"'#on Po#n'er FPon'e#ro de Ins'ru0>esH& Es'e re)#s'rador B
a'ua(#zado 5e(a BIU e "on'B4 a d#s'Un"#a e4 b<'es Fo$$se'H da 5r;?#4a #ns'ru01o e4
re(a01o ao #nE"#o do ";d#)o 3ue es'! sendo e?e"u'ado* #s'o B* e(e a5on'a 5ara a 5r;?#4a
#ns'ru01o& Os 5ro)ra4adores n1o 'J4 a"esso d#re'o a esse re)#s'rador&
Registrador de FAGS
O 4#"ro5ro"essador ,-,6 "on'B4 e4 seu #n'er#or u4 'o'a( de . s#na(#zadores*
'a4bB4 "onCe"#dos "o4o $(a)s& E(es e?#s'e4 5ara #nd#"ar resu('ados ob'#dos se45re na
Q('#4a o5era01o (;)#"a ou ar#'4B'#"a e?e"u'ada* ou 5ara de$#n#r o "o45or'a4en'o do
4#"ro5ro"essador na e?e"u01o de "er'as #ns'ru0>es& Es'es . $(a)s es'1o a)ru5ados* 5ara
$a"#(#dade de a"esso* e4 u4 re)#s'rador de /6 b#'s* "Ca4ado de Re)#s'rador de F(a)s*
Re)#s'rador de Es'ado ou Pa(a@ra de Es'ado do Pro)ra4a* sendo (o"a(#zado na un#dade
EU&
Co4o 4os'ra a $#)ura +&-* e(e u'#(#za b#'s 5ara ar4azenar #n$or4a0>es de es'ado
Fs'a'usH e de "on'ro(e&
/
8
/
7
/
2
/
+
// /- . , : 6 8 7 2 + / -
D D D D
OF DF IF TF S
F
WF D AF D P
F
D CF
+i,ura 60 ARe)#s'rador dos F(a)s&
:
+la,s de Estado(
Os b#'s de es'ado re$(e'e4 "er'as 5ro5r#edades de resu('ados de o5era0>es (;)#"as e
ar#'4B'#"as rea(#zadas na EU* a 3ua( B res5ons!@e( 5or Sse'arT es'es b#'s no re)#s'rador&
AF D F(a) de Carr< Au?#(#ar9 #nd#"a o 'rans5or'e 5ara $ora do n#bb(e 4enos
s#)n#$#"a'#@o D do b#' 2 5ara o b#' 7 D do resu('ado 5roduz#do 5e(a ULA& P
u'#(#zado 3uando se 4an#5u(a o5erandos re5resen'ados e4 ";d#)o BCD ou
ASCII* ou se=a* AF X / DY "aso e?#s'a o M@a# u4M do b#' 2 5ara o b#' 7 de u4a
ad#01o "aso n1o e?#s'a Me45rBs'#4oM do b#' 7 5ara o b#' 2 nu4a sub'ra01oO
AF X - DY "aso "on'r!r#o&
CF D F(a) de Carr<9 CF X / DY a5;s #ns'ru0>es de so4a 3ue )era4 M@a# u4M
a5;s #ns'ru0>es de sub'ra01o 3ue n1o )era4 Me45rBs'#4oM FMe45res'a u4MHO
CF X - DY "aso "on'r!r#o&
OF D F(a) de O@er$(oZ( OF X / DY 3ua(3uer o5era01o 3ue 5roduza overflowO
OF X - DY "aso "on'r!r#o&
SF D F(a) de S#na(9 u'#(#zado 5ara #nd#"ar se o nQ4ero resu('ado B 5os#'#@o ou
ne)a'#@o e4 'er4os da ar#'4B'#"a e4 Co45(e4en'o de + Fse n1o o"orrer erro
de 'ransborda4en'o D overflowH& SF X / DY nQ4ero ne)a'#@o SF X - DY
nQ4ero 5os#'#@o&
WF D F(a) de Wero9 WF X / DY "aso o resu('ado da Q('#4a o5era01o ar#'4B'#"a
ou (;)#"a se=a #)ua( a zeroO WF X - DY "aso "on'r!r#o&
PF D F(a) de 5ar#dade9 Es'e s#na(#zador B a'#@ado* 3uando o nQ4ero de /s nos
, b#'s 4enos s#)n#$#"a'#@os do resu('ado 5roduz#do 5e(a ULA B 5ar* e
desa'#@ado "aso "on'r!r#o* ou se=a PF X / DY "aso o b<'e #n$er#or do resu('ado
de a()u4a o5era01o ar#'4B'#"a ou (;)#"a a5resen'ar u4 nQ4ero 5ar de M/[sMO
PF X - DY "aso "on'r!r#o FnQ4ero #45arH&
+la,s de Controle
S1o os $(a)s 3ue 5ode4 ser se'ados 5e(os 5ro)ra4as* a('erando as o5era0>es do
5ro"essador9
DF D F(a) de D#re01o9 H! #ns'ru0>es 3ue en@o(@e4 os re)#s'radores de End#"e
na $or4a01o do endere0o e$e'#@o dos o5erandos& A()u4as des'as #ns'ru0>es
#45(#"a4 na a('era01o do "on'eQdo do re)#s'rador de End#"e& De5endendo do
"on'eQdo des'e s#na(#zador* os re)#s'radores de End#"e ser1o #n"re4en'ados
ou de"re4en'ados au'o4a'#"a4en'e* 3uando 'a#s #ns'ru0>es s1o e?e"u'adas&
DF X / DY de"re4en'o do endere0o de 4e4;r#a FDO\NHO DF X - DY
#n"re4en'o do endere0o de 4e4;r#a FUPH&
IFD F(a) de In'erru501o9 es'e s#na(#zador de'er4#na* se o 5ro"essador es'!
Cab#(#'ado ou desab#(#'ado a a'ender #n'erru50>es& IF X / DY Cab#(#'a a
o"orrJn"#a de #n'erru50>esO]IF X - DY #n#be #n'erru50>es '#5o INT e?'ernas&
TF D F(a) de Tra5 Far4ad#(CaH9 TF X / DY a5;s a e?e"u01o da 5r;?#4a
#ns'ru01o* o"orrer! u4a #n'erru501oO a 5r;5r#a #n'erru501o $az TF X -O TF X -
DY "aso "on'r!r#o&
,
!em"ria
Do 5on'o de @#s'a do 5ro)ra4ador* a 4e4;r#a se "o45or'a "o4o u4 "on=un'o de
endere0os onde B 5ossE@e( Ses"re@erT e S(erT #n$or4a0>es& Cada (o"a01o* ou endere0o B
#den'#$#"ado 5or u4 nQ4ero&
A 4e4;r#a 5ode ser @#s'a "o4o u4a (on)a (#s'a de endere0os* ou "o4o u4
a)ru5a4en'o de endere0os e4 b(o"os deno4#nados 5!)#nas& Os dE)#'os 4a#s
s#)n#$#"a'#@os do endere0o re5resen'a4 a 5!)#na* e os dE)#'os 4enos s#)n#$#"a'#@os
#den'#$#"a4 a 5os#01o den'ro da 5!)#na* "o4o 5or e?e45(o* a 5!)#na /- "o45reender!
os endere0os de /--- a /-FF&
Co4 /6 b#'s 5ara endere0a4en'o B 5ossE@e( endere0ar +/6 X 67V (o"a0>es& Para
au4en'ar essa $a#?a de endere0os 5odeDse es'ender o 'a4anCo de 5a(a@ra de endere0o*
ou u'#(#zar 'B"n#"as de )eren"#a4en'o de 4e4;r#a& Os 4#"ro5ro"essadores ,-,6G,,
u'#(#za4 o )eren"#a4en'o de 4e4;r#a 5or se)4en'os&
Duran'e a e?e"u01o de u4 5ro)ra4a no ,-,6* C! 7 se)4en'os a'#@os9
se)4en'o de ";d#)o9 endere0ado 5or CS
se)4en'o de dados9endere0ado 5or DS
se)4en'o de 5#(Ca9 endere0ado 5or SS Fs'a"R se)4en'H
se)4en'o e?'ra9 endere0ado 5or ES&
7erenciamento de mem0ria por se,menta#$o(
O ,-,6 5ossu# +- b#'s 5ara a"essar 5os#0>es de 4e4;r#a $Es#"a o 3ue "orres5onde a
++- X /&-7,&8:6 b<'es F/ b<'eH de 5os#0>es endere0!@e#s& ]E?e45(os de endere0os9
---- ---- ---- ---- ----b DY -----C
---- ---- ---- ---- ---/b DY ----/C
//// //// //// //// ////b DY FFFFFC
O ,-,6 o5era #n'erna4en'e "o4 /6 b#'s 5ara )erar endere0os "o4 +- b#'s e(e u'#(#za a
#dB#a de se)4en'a01o de 4e4;r#a&
Cada se)4en'o de 4e4;r#a "orres5onde a u4 b(o"o de 67 Vb<'es de 5os#0>es de
4e4;r#a "onse"u'#@as* #den'#$#"ado 5or u4 nQ4ero de se)4en'o&
Para a"essar u4 b<'e ou 5a(a@ra 5ar'#"u(ar na 4e4;r#a* B ne"ess!r#o u4 o$$se'* ou
se=a* u4a d#s'Un"#a e4 b<'es do #nE"#o do se)4en'o& O endere0o rea( de 4e4;r#a de +-
b#'s B o resu('ado da so4a de u4 re)#s'rador de se)4en'o Fdes(o"ado de 7 b#'s 5ara a
es3uerdaH e u4 o$$se' de /6 b#'s & O re)#s'rador de se)4en'o e a $on'e do o$$se'
de5ende4 do '#5o de re$erJn"#a L 4e4;r#a dese=ado9
.
Tipo de 1e)er8ncia a
9em0ria
Se,mento
2e)ault
Se,mento
Alternativo
:))set
Bus"a de #ns'ru01o CS nenCu4 IP
P#(Ca SS NenCu4 SP
Var#!@e( DS CS*ES*SS Endere0o
e$e'#@o
S'r#n) $on'e DS CS*ES*SS SI
S'r#n) des'#no ES NenCu4 DI
BP "o4o re)#s'rador base SS CS*ES*SS Endere0o
e$e'#@o
F#)ura 2&-D T#5os de Re$erJn"#a a 4e4;r#a&
O endere0o e$e'#@o 4en"#onado na 'abe(ada $#)ura 2&- "orres5onde ao resu('ado da
a@a(#a01o de u4 4odo de endere0a4en'o& Nos "asos e4 3ue u4 se)4en'o a('erna'#@o
a5are"e na 'abe(a* o se)4en'o de$au(' 5ode ser subs'#'uEdo usandoDse u4 5re$#?o de
se)4en'o&
A re$erJn"#a a u4a 5os#01o de 4e4;r#a B dada 5or9
re)^se)4en'o 9 re)^o$$se'
Por e?e45(o9 CS9IP* SS9SP* DS9SI* DS9DI
!odos de #ndereamento
Os 5ro"essadores ,-?,6 5er4#'e4 a"essar a 4e4;r#a de @!r#os 4odos d#$eren'es& Os
4odos de endere0a4en'o de 4e4;r#a do ,-?,6 o$ere"e4 $(e?#b#(#dade no a"esso L
4e4;r#a* 5er4#'#ndo a"essar $a"#(4en'e @ar#!@e#s* arra<s* re)#s'ros* 5on'e#ros e ou'ros
'#5os de dados 4a#s "o45(e?os&
9odo 1e,istrador e Imediato
1e,istrador( os o5erandos $on'e* des'#no ou a4bos es'1o "on'#dos e4 re)#s'radores&
E?e45(o9 OV CN* BN
Imediato( os dados e4 , ou /6 b#'s 5ode4 ser es5e"#$#"ados "o4o 5ar'e da
#ns'ru01o& E?e45(o9 OV CN* +7C
9odo de Endere#amento de 9em0ria
2ireto( O endere0o e$e'#@o do o5erando Fo$$se'H no "orres5onden'e se)4en'o B
ob'#do d#re'a4en'e a 5ar'#r de u4 de'er4#nado dado* se4 en@o(@er 3ua#s3uer
re)#s'radores& E?e45(o9
&DATA
START D\ 2.FAH
&&&
OV BN* START
/-
Indireto re,istrador( O endere0o e$e'#@o de u4 o5erando na 4e4;r#a 5ode ser
ob'#do a 5ar'#r de u4 dos re)#s'radores de base ou End#"e& FBN* BP* SI*DIH
*aseado( O endere0o e$e'#@o B "a("u(ado a 5ar'#r de u4a "ons'an'e e dos
re)#s'radores de base BN ou BP& Kuando n1o se e?"ede L 5#(Ca o endere0o de +- b#'s B
"a("u(ado a 5ar'#r de DS9BN& Kuando se e?"ede L 5#(Ca esse endere0o B "a("u(ado a
5ar'#r de SS9BP&
Indexado9 O endere0o e$e'#@o B ob'#do a 5ar'#r de u4a "ons'an'e e dos re)#s'radores
de End#"e SI u DI&
Indexado baseado( O endere0o e$e'#@o B "a("u(ado a 5ar'#r de u4a "ons'an'e* dos
re)#s'radores de base FBN* BPH e dos re)#s'radores de #nd#"e FSI* DIH&
2e strin,s9 u'#(#zaDse o re)#s'rador SI 5ara a5on'ar 5ara o 5r#4e#ro b<'e ou Zord de
u4a s'r#n) or#)e4 e o re)#s'rador DI 5ara a5on'ar 5ara o 5r#4e#ro b<'e ou Zord do
des'#no* 3uando B u'#(#zada u4a #ns'ru01o 5ara s'r#n)s&
inguagem Assem$l%
O 5ro"essador ?,-,6 5ossu# u4 )rande "on=un'o de #ns'ru0>es* 3ue 5ode4 ser
d#@#d#das e49 #ns'ru0>es de 4o@#4en'a01o de dados* #ns'ru0>es ar#'4B'#"as* #ns'ru0>es
(;)#"as* #ns'ru0>es de 4an#5u(a01o de s'r#n)s* #ns'ru0>es de des@#o e "on'ro(e de $(u?o&
A3u# so4en'e ser1o des"r#'as as #ns'ru0>es do sub"on=un'o $or4ado 5ara
#45(e4en'a01o nos s#4u(adores&
//
Introduo ao Pro&eto dos Simuladores
O 5ro=e'o @#sa a5rend#za)e4 da ar3u#'e'ura ?,-,6& A #45(e4en'a01o dos
s#4u(adores "ons#s'e e4 u4a #45(e4en'a01o s#45(#$#"ada da ar3u#'e'ura do
4#"ro5ro"essador ,-,6 "o4 u4 sub"on=un'o res'r#'o de #ns'ru0>es ass#4 "o4o a()u4as
$un"#ona(#dades b!s#"as des'a ar3u#'e'ura&
A5;s o es'udo da ar3u#'e'ura ?,-,6 $o# rea(#zado u4 es'udo do "on=un'o de
#ns'ru0>es do 5ro"essador e a 4ane#ra "o4o es'e as de"od#$#"a& Para 'an'o* de$#n#4os
a5enas o sub"on=un'o de #ns'ru0>es $or4ado 5e(as #ns'ru0>es9 OVE FI4GRe)*
Re)GRe)* e4GRe)* e4GA"u4H* ADD e LOOP& Na de"od#$#"a01o do"u4en'ada =!
es'! a5resen'ada 'a4bB4 a()u4a re(a01o "o4 a 5ro)ra4a01o dos s#4u(adores&
O desen@o(@#4en'o do 5ro=e'o $o# d#@#do e4 'rJs e'a5as de #45(e4en'a01o* @#sando
$a"#(#'ar a "o45reens1o e or)an#za01o da es'ru'ura do s#4u(ador& Na 5r#4e#ra e'a5a*
desen@o(@euDse o s#4u(ador se4 re"urso de 5#5e(#ne& Co4 base no $un"#ona4en'o
des"r#'o no da'asCee' do ?,-,6* "r#ouDse o 5ro=e'o 5ara s#4u(ar as un#dades b!s#"as de
$un"#ona4en'o do 4#"ro5ro"essador es'udado* sendo es'ru'uradas ro'#nas 5ara s#4u(ar a
un#dade de 4e4;r#a Fd#@#d#da e4 se)4en'os de dados* de ";d#)o e de re)#s'radores*
4as $#s#"a4en'e u4a un#dadeH* a un#dade de 5ro"essa4en'o (;)#"o e ar#'4B'#"o Fu(aH* a
un#dade de "!("u(o de endere0os Fso4adorH* o ban"o de #ns'ru0>es e un#dade de
e?e"u01o Fre"onCe"#4en'o da #ns'ru01o e bus"a de re)#s'radores ou #n$or4a01o da
4e4;r#aH& Ro'#nas au?#(#ares $ora4 #45(e4en'adas de@#do L (#4#'a01o da (#n)ua)e4
es"o(C#da 5ara 4on'a)e4 do s#4u(ador* 'a#s "o4o ro'#na 5ara "on@ers1o de nQ4eros
Ce?ade"#4a#s 5ara b#n!r#os e de nQ4eros b#n!r#os 5ara de"#4a#s&
A $#)ura 7&- 4os'ra o d#a)ra4a de b(o"os da ar3u#'e'ura #45(e4en'ada nos
s#4u(adores&
+i,ura ;0 AD#a)ra4a de B(o"os da Ar3u#'e'ura In'erna I45(e4en'ada na S#4u(a01o da Ar3u#'e'ura
,-,6&
/+
A se)unda e'a5a do 5ro=e'o "ons#s'e e4* dado 3ue a #45(e4en'a01o da se3_Jn"#a
de ro'#nas 5ara s#4u(ar as e'a5as de 5ro"essa4en'o do ?,-,6 5ara o "on=un'o de
#ns'ru0>es 4o@ re)Gre)* 4o@ re)a"u4G4e4;r#a* 4o@ re)G#4ed#a'o* 4o@ re)G4e4;r#a*
add e (oo5 es'a@a "orre'a* #45(e4en'ar as ro'#nas e "on'ro(es 3ue 'orne4 5ossE@e#s as
a5(#"a0>es do re"urso de 5#5e(#ne 5ara o s#4u(ador&
'ecodi(icao das Instru)es
As #ns'ru0>es do 5ro"essador ?,-,6 n1o a5resen'a4 'a4anCo $#?o F3uan'#dade de
b#'s de "ada u4a das #ns'ru0>esH* @ar#ando de a"ordo "o4 "ada u4a de(as* ass#4 "o4o o
nQ4ero de b#'s 3ue 5ode4os "ons#derar "o4o o5"ode da #ns'ru01o&
Na de"od#$#"a01o das #ns'ru0>es B ne"ess!r#o "onCe"er o s#)n#$#"ado de a()uns b#'s
u'#(#zados no $or4a'o da #ns'ru01o& Se)ue aba#?o a $or4a de de"od#$#"a01o9
MOVE
I4GRe)* Re)GRe)* e4GRe) * e4GA"u4
I4GRe)9 4o@e u4 #4ed#a'o 5ara u4 re)#s'rador&
For4a'o da #ns'ru01o9
:
-
: - : -
/ - / / Z re) da'a F5ar'e
ba#?aH
da'a se ZX/ Far'e a('aH
Re) B o ";d#)o do re)#s'rador des'#no da o5era01o&
Se ZX/ s#)n#$#"a 3ue o @a(or do #4ed#a'o es'a o"u5ando /6 b#'s* se ZX- o #4ed#a'o
es'a a5enas o"u5ando a 5ar'e ba#?a do dados* #s'o B* so4en'e , b#'s F#ns'ru01o o5erando
"o4 Zord ou "o4 b<'eH&
O o5"ode da #ns'ru01o 4o@e de #4ed#a'o 5ara re)#s'rador B de$#n#do 5e(os b#'s de :D7
X B e4 Ce?a&
Para de"od#$#"a01o des'a #ns'ru01o nos s#4u(adores u'#(#za4os a "on'a)e4 dos b#'s
se3_en"#a(4en'e #n#"#ando e4 /* $or4ando a se)u#n'e 'abe(a9
/
7
8
,
.
/6
/: +7
:
7
2
-
: - : -
/ - / / Z re) Da'a Da'a se ZX/
B D D D
As 5os#0>es dos b#'s9 /D7 X o5"ode * 8 X Z* 6D,X Re)* de5endendo de Z o #4ed#a'o
5ode es'ar de .D/6 ou .D+7*
Ins'ru01o de (e#'ura da 4e4;r#a e es"r#'a no ban"o de re)#s'radores&
/2
Re)GRe)9 4o@e o "on'eQdo de u4 re)#s'rador 5ara ou'ro re)#s'rador&
For4a'o da #ns'ru01o9
:
-
: -
/ - - - / - d Z 4od re) rG4
\ #den'#$#"a #ns'ru01o o5erando "o4 \ord se ZX/ ou "o4 b<'e ZX -&
D de$#n# a d#re01o dos dados* no "aso "o4o a d#re01o B de re)#s'rador 5ara
re)#s'rador es'e ser! se45re #)ua( a zero&
Co4o o5era4os "o4 do#s re)s* 4od 'er! o @a(or // #45(#"ando no "a45o rG4 ser u4
re)#s'rador&
Os b#'s de rG4 s#4bo(#za4 o re)#s'rador des'#no da o5era01o sendo os b#'s de re) o
re)#s'rador $on'e&
Lo)o a #den'#$#"a01o da #ns'ru01o 5oder! ser $e#'a 5or9 ,, ou ,.&
Para de"od#$#"a01o des'a #ns'ru01o nos s#4u(adores u'#(#za4os a "on'a)e4 dos b#'s
se3_en"#a(4en'e #n#"#ando e4 /* $or4ando a se)u#n'e 'abe(a9
/
7
8 , .
/+
/2 /6
: 6 8 7 2 + / - : 6 8 7 2 + / -
/ - - - / - d Z 4od re) re) rG4
, ,* se ZX- // ? ? ? ? ? ?
. se Z X/
As 5os#0>es dos b#'s9 /D, X o5"ode* , X Z* //D/2 X Re)* /7D/6 X RG4&
Ins'ru01o de (e#'ura e es"r#'a no do ban"o de re)#s'radores&
e4GRe) 9 4o@e u4 @a(or da 4e4;r#a 5ara u4 re)#s'rador&
For4a'o da #ns'ru01o9
:
-
: -
/ - - - / - d Z 4od re) rG4
\ #den'#$#"a #ns'ru01o o5erando "o4 Zord se ZX/ ou "o4 b<'e ZX -&
D de$#n# a d#re01o dos dados* no "aso "o4o a d#re01o B de 4e4or#a 5ara re)#s'rador
es'e ser! se45re #)ua( a u4&
Re) B o re)#s'rador des'#no&
Lo)o a #den'#$#"a01o da #ns'ru01o 5oder! ser $e#'a 5or9 ,A ou ,B F"ons#derando os
b#'s :D,H&
Para de"od#$#"a01o des'a #ns'ru01o nos s#4u(adores u'#(#za4os a "on'a)e4 dos b#'s
se3_en"#a(4en'e #n#"#ando e4 /* $or4ando a se)u#n'e 'abe(a9
/
7
8 , .
/+
/2 /6
: 6 8 7 2 + / - : 6 8 7 2 + / -
/ - - - / - d Z od Re) Re) r4G4
, B* se ZX/
/7
A* se ZX-
As 5os#0>es dos b#'s9 /D, X o5"ode* , X Z*//D/2 X Re)
Ins'ru01o de Le#'ura da 4e4;r#a e es"r#'a no ban"o de re)#s'radores&
e4GA"u49 4o@e u4 @a(or "on'#do na 4e4;r#a 5ara o re)#s'rador a"u4u(ador de
/6n#'s A?* ou a"u4u(ador , b#'s AH&
For4a'o da Ins'ru01o9
:
-
:
-
: -
/ - / - - - - Z AddrD(oZ AddrDC#)C
\ #den'#$#"a #ns'ru01o o5erando "o4 \ord se ZX/ ou "o4 b<'e ZX -&
o@e da 4e4;r#a 5ara o re)#s'rador A? "u4u(ador /6b#'s* ou AH a"u4u(ador ,b#'s&
A #den'#$#"a01o da #ns'ru01o 5oder! ser $e#'a 5or9 A&
Para de"od#$#"a01o des'a #ns'ru01o nos s#4u(adores u'#(#za4os a "on'a)e4 dos b#'s
se3_en"#a(4en'e #n#"#ando e4 /* $or4ando a se)u#n'e 'abe(a9
/
7
8
,
.
/6
/: +7
: 6 8 7 2 + / - : 6 8 7 2 + / - : 6 8 7 2 + / -
/ - / - - - - Z Addr^(oZ Addr^C#)C
A - - -
As 5os#0>es dos b#'s9 /D7 X o5"ode* ,X Z* endere0o da 4e4;r#a X
A? ou AL X --- X Re)
Ins'ru01o de (e#'ura da 4e4;r#a e es"r#'a no ban"o de re)#s'radores
A22
Re)GRe)9 so4a do "on'eQdo de do#s re)#s'radores&
For4a'o da Ins'ru01o9
:
-
: -
- - - - - - d Z 4od re) rG4
\ #den'#$#"a #ns'ru01o o5erando "o4 \ord se ZX/ ou "o4 b<'e ZX -&
D de$#n# a d#re01o dos dados* no "aso "o4o a d#re01o B de re)#s'rador 5ara
re)#s'rador es'e ser! se45re #)ua( a zero&
Co4o o5era4os "o4 do#s re)s* 4od 'er! o @a(or // #45(#"ando no "a45o rG4 ser u4
re)#s'rador&
Os b#'s de rG4 s#4bo(#za4 o re)#s'rador des'#no da o5era01o sendo os b#'s de re) o
re)#s'rador $on'e&
Lo)o a #den'#$#"a01o da #ns'ru01o 5oder! ser $e#'a 5or 9 -/ ou --&
Para de"od#$#"a01o des'a #ns'ru01o nos s#4u(adores u'#(#za4os a "on'a)e4 dos b#'s
se3_en"#a(4en'e #n#"#ando e4 /* $or4ando a se)u#n'e 'abe(a9
/ 8 , . // /7 /6
/8
7 /- /2
: 6 8 7 2 + / - : 6 8 7 2 + / -
- - - - - - d Z 4od Re) RG4
- /* se ZX/*
-* se ZX-
/6
As 5os#0>es dos b#'s9 /D, X o5"ode* , X Z* //D/2 X Re)* /7D/6 X RG4&
Ins'ru01o de (e#'ura e es"r#'a no do ban"o de re)#s'radores&
/::5
A #ns'ru01o B u4 sa('o "ond#"#ona(* 3ue 'es'a o @a(or do re)#s'rador C?* @er#$#"ando
se es'e B d#$eren'e de -* se $or e?e"u'a o sa('o* "aso "on'r!r#o* n1o rea(#za o sa('o&
For4a'o da #ns'ru01o9
:
-
: -
/ / / - - - / - d#s5
D#s5 B o des(o"a4en'o 3ue de@e ser sub'raEdo do endere0o do IP 5ara a"Car o
endere0o a 5ar'#r do 3ua( re"o4e0a o (a0o& Es'e @a(or es'! re5resen'ado e4
"o45(e4en'o de do#s&
Lo)o a #den'#$#"a01o da #ns'ru01o 5oder! ser $e#'a 5or9E+&
Para de"od#$#"a01o des'a #ns'ru01o nos s#4u(adores u'#(#za4os a "on'a)e4 dos b#'s
se3_en"#a(4en'e #n#"#ando e4 /* $or4ando a se)u#n'e 'abe(a9
As 5os#0>es dos b#'s9 /D, X o5"ode* .D/6 X des(o"a4en'o&
#*emplo de Flu*o de Instru)es no 'iagrama de +locos
Para 4e(Cor "o45reens1o do $un"#ona4en'o da ar3u#'e'ura* e$e'ua4os o $(u?o da
#ns'ru01o ADD no d#a)ra4a de b(o"os* "on$or4e 4os'ra a $#)ura 8&-&
/
7
8
,
. /6
: 6 8
7
2 + / - : 6 8 7 2 + / -
/ / /
-
- - / - d#s5
E +
/:
+i,ura <0 A E?e"u01o da Ins'ru01o ADD
In#"#a(4en'e* a #ns'ru01o ADD B (#da da 4e4;r#a 5e(a Un#dade de In'er$a"e de
Barra4en'o FBIUH& E4 se)u#da* a Un#dade de E?e"u01o FEUH de"od#$#"a a #ns'ru01o e
so(#"#'a a BIU os @a(ores dos o5erandos& Por sua @ez* a BIU re'orna 5ara a EU os
@a(ores (#dos nos re)#s'radores& De5o#s a EU B no@a4en'e a"#onada 5ara 3ue a un#dade
ULA 5ro"esse a o5era01o de so4a& E4 se)u#da* a BIU 'rans$ere o @a(or da saEda da
ULA 5ara o re)#s'rador des'#no& Duran'e esse 5ro"esso a un#dade s#na#s de "on'ro(e es'!
sendo a'ua(#zada& Toda a e?e"u01o B s#n"ron#zada 5e(o Con'ro(e de Te45o F"(o"RH&
So$re o arqui,o teste
Para 'es'ar o $un"#ona4en'o dos s#4u(adores $o# #45(e4en'ado o 5ro)ra4a Far3u#@o
5ro)ra4a$un"#ona&as4H* e4 (#n)ua)e4 de 4on'a)e4 5ara o 5ro"essador ?,-,6* 3ue
e?e"u'a a sBr#e de F#bona""# 5ara os dez 5r#4e#ros nQ4eros da sBr#e* a5resen'ando o
@a(or do dB"#4o nQ4ero da sBr#e& No desen@o(@#4en'o do 5ro)ra4a 'es'e* $ora4
a@a(#adas as #ns'ru0>es 3ue 5oder#a4 ser u'#(#zadas 5ara esse e?e"u01o* se)undo o
"r#'Br#o de o5"ode d#$eren"#ado o 3ue $a"#(#'ou a #45(e4en'a01o das #ns'ru0>es 4o@
re)Gre)* 4o@ re)G#44* 4o@ 4e4Gre)* 4o@ 4e4Ga"u4u(ador* add e (oo5& O ";d#)o
ob=e'o do ar3u#@o asse4b(er $o# )erado no 4on'ador NAS e4 s#s'e4a o5era"#ona(
L#nu?* "on$or4e "ons'a no "abe0a(Co dos $on'es dos s#4u(adores&
/,
Simuladores
Simulador da arquitetura 8086 - Sem Pipeline
#*ecutando o programa
A5;s #n#"#ar a e?e"u01o do 5ro)ra4a Fdu5(o "(#3ue sobre o ar3u#@o
SimuladorS5ipelineexeH* abr#r! a 'e(a do s#4u(ador "on$or4e 4os'ra a $#)ura 6&-& No
"a45o SIn$or4e o "a4#nCo do ar3u#@o F&(s'H* "(#3ue no bo'1o de abr#r* 5ara 3ue a =ane(a
de bus"a de ar3u#@os se=a aber'a& Se(e"#one e abra ar3u#@o "o4 e?'ens1o &(s' )erado a
5ar'#r de ";d#)o 5ro)ra4ado e4 asse4b(< no 4on'ador NAS&
Para abr#r o ar3u#@o 'es'e bus3ue 5or9
D#re';r#o9`T/ar"#aFeder#zz#^VanessaBorba`S#4u(adorSP#5e(#ne
5ro)ra4a$un"#ona&(s'
+i,ura 60 A S#4u(ador Se4 P#5e(#ne& E4 des'a3ue os bo'>es de se(e01o de ar3u#@o e e?e"u01o do
5ro)ra4a&
/.
:bserva#=es(
/ D An'es de abr#r o ar3u#@o &(s' B ne"ess!r#o ed#'!D(o (#nCa a (#nCa& A ed#01o B
re$eren'e ao "ara"'er de 3uebra de (#nCa* 3ue no ar3u#@o or#)#na( n1o B o "ara"'er 5adr1o
5ara en'er& Nesse "aso* ao $#na( de "ada (#nCa 'e"(e en'er 5ara 4ar"ar o $#na( de (#nCa no
ar3u#@o& A5;s abr#r o ar3u#@o* "(#3ue e4 Executar 5ro,rama 5ara #n#"#ar a s#4u(a01o
de 5ro"essa4en'o do ?,-,6&
+ D O ar3u#@o &(s' de@er! ser )erado no nas4* no s#s'e4a o5era"#ona( L#nu?* a'ra@Bs
do "o4ando9 d#re'or#oGnas4 A$ e($ A( ar3u#@o&(s' ar3u#@o&as4
Funcionamento
In#"#a(4en'e o s#s'e4a #r! a"essar o ar3u#@o #n$or4ado e "arre)!D(o* (#nCa a (#nCa*
5ara a (#s'a Seq>8ncia e instru#=es do pro,rama& Ao )ra@ar as (#nCas nessa (#s'a* o
5ro)ra4a =! es'! 'ra'ando e des"ons#derando (#nCas e4 bran"o e 5ossE@e#s "o4en'!r#os
"on'#dos no ar3u#@o* 5or 4e#o da ro'#na ArmazenaLinha& A ro'#na LeArquivoLST B
res5ons!@e( 5or )eren"#ar a (e#'ura das (#nCas do ar3u#@o e e$e'uar a "Ca4ada da ro'#na
Ar4azenaL#nCa& Essa (#s'a B "o45os'a de duas "o(unas9 End#"e e #ns'ru01o& Sua
4on'a)e4 e e?#b#01o $ora4 5ro=e'adas 5ara $a"#(#'ar o a"o45anCa4en'o das #ns'ru0>es
3ue ser1o 5ro"essadas 5e(o s#4u(ador& Para 'an'o* a "o(una End#"e 3ue $az re$erJn"#a a
"ada (#nCa de 5ro)ra4a do ar3u#@o* 'a4bB4 ser! e?#b#da nas (#s'as es5e"#$#"adas aba#?o9
5osi#$o de 9em0ria?Instru#$o( "on'B4 o 5ro)ra4a no $or4a'o de ";d#)o ob=e'o
5er4#'#ndo a"o45anCar "o4o "ada (#nCa do ";d#)o e4 asse4b(< $o# 4on'ada 5ara
e?e"u01o& O 5reen"C#4en'o dessa (#s'a B #45(e4en'ado 5e(a ro'#na CarregaMemoria
3ue 5er"orre o ob=e'o Seq>8ncia e instru#=es do pro,rama e 4on'a o 3ue s#4u(ar#a o
4odo "o4o o ,-,6 'ra'a a 4e4;r#a* #s'o B* se)4en'o de dados e se)4en'o de ";d#)o
re5resen'ados 5e(a (#s'a Pos#01o de e4;r#aGIns'ru01o e a !rea de re)#s'radores de uso
)era(* re5resen'ada 5e(a (#s'a Conte@do dos re,istradoresA 4as 3ue s#4bo(#za4 sere4
$#s#"a4en'e u4a Qn#"a 4e4;r#a& Des5reza a "o(una de #ns'ru0>es es"r#'as e4 asse4b(<*
4on'ando a5enas a "o(una de End#"es Fre$erJn"#a "ons'an'e no s#4u(ador 5ara a (#nCa de
5ro"essa4en'oH&
5rocessamento das Instru#=es( e?#be a se3uJn"#a de dados e4 "ada re)#s'rador
duran'e a e?e"u01o do 5ro)ra4a&
Conte@do dos re,istradores( s#4u(a a !rea de re)#s'radores de uso )era(* 'endo os
@a(ores "ons'an'e4en'e a'ua(#zados "on$or4e se3_Jn"#a do 5ro)ra4a& os'ra o
"on'eQdo dos re)#s'radores a5;s o 'Br4#no do 5ro)ra4a&

As ro'#nas de s#4u(a01o da ar3u#'e'ura ,-,6 "o4e0a4 a sere4 e?e"u'adas no
#ns'an'e e4 3ue o 5ro)ra4a =! $o# "arre)ado na 4e4;r#a Fno s#4u(ador* a5;s "arre)ar a
(#s'a Pos#01o de e4;r#a Ins'ru01oH&
As (#nCas de 5ro)ra4a s1o 5ro"essadas e4 sBr#e e so4en'e a5;s o 'Br4#no dos
es'!)#os de e?e"u01o de u4a #ns'ru01o* o s#4u(ador re#n#"#a a ro'#na bus"ando no@a
#ns'ru01o& A bus"a B rea(#zada a'B 3ue a !rea de 5ro)ra4a 'enCa s#do e?e"u'ada 5or
"o45(e'o&
+-
A ro'#na ProcessaInstrucoes 5er"orre a (#s'a 4e4;r#a e )eren"#a o re"onCe"#4en'o
de "ada #ns'ru01o& A5;s #den'#$#"ar a #ns'ru01o* 5or 4e#o do o5"ode* o "on'ro(e de
5ro"essa4en'o B 5assado 5ara as ro'#nas de 'ra'a4en'o das #ns'ru0>es& Os 4B'odos
MovMeme* Movegeg* MovIme!eg* MovMemAcum* Loo" e A!! #45(e4en'a4
as #ns'ru0>es 4o@ 4e4or#aGre)#s'rador* 4o@ re)#s'radorGre)#s'rador* 4o@
#4ed#adoGre)#s'rador* 4o@ 4e4or#aGre)#s'rador a"u4u(ador* (oo5 e add& Na
#45(e4en'a01o de "ada u4 dos 4B'odos "#'ados* C! a "Ca4ada 5ara 5ro"ed#4en'os 3ue
s#4u(a4 a un#dade de "on'ro(e 3ue e?e"u'a a #ns'ru01o e de'er4#na* "on$or4e
5os#"#ona4en'o das #n$or4a0>es na #ns'ru01o* o 5r;?#4o 5asso de e?e"u01o* #s'o B*
bus"a de dado no re)#s'rador* na 4e4;r#a ou "!("u(o de endere0os& Para essas 'rJs
'are$as* a un#dade (;)#"a ar#'4B'#"a B a"#onada& Ta( un#dade es'! sendo re5resen'ada no
s#s'e4a 5e(as ro'#nas9
I!entegistra!or9 $un01o 3ue re"ebe 5or 5arU4e'ro o ";d#)o des'#nado 5ara os
re)#s'radores "on"a'enado "o4 o @a(or de Z e re'orna o re)#s'rador u'#(#zado na
#ns'ru01o&
Ca#cu#aEn!ereco9 res5ons!@e( 5or e$e'uar "!("u(o do endere0o de sa('o* a 5ar'#r do
endere0o a'ua( e do endere0o e$e'#@o 5assados na de"od#$#"a01o da #ns'ru01o&
etornaIP9 $un01o 3ue re'orna o IP "a("u(ado e #n$or4ado na "o(una de endere0o da
(#s'a 5osi#$o de 9em0ria?Instru#$o&
Leegistra!or9 $un01o 3ue re"ebe o endere0o do re)#s'rador e re'orna o "on'eQdo
re$eren"#ado 5e(o 4es4o&
Loca#iza$a!o9 $un01o 3ue re"ebe u4 endere0o da !rea de dados e re'orna o "on'eQdo
re$eren"#ado 5or esse endere0o de 4e4;r#a&
ULA9 $un01o 3ue re5resen'a a un#dade ar#'4B'#"a* #45(e4en'ando as o5era0>es de
so4a e sub'ra01o& A un#dade (;)#"a* 5ara "o45ara01o de @a(ores* B #45(e4en'ada en're
as ro'#nas (#s'adas a"#4a* "o4o a de re"onCe"#4en'o do re)#s'rador na #ns'ru01o
FIdentRegistradorH&
Ao 'Br4#no da e?e"u01o da #ns'ru01o* a#nda no 5ro"ed#4en'o ProcessaInstrucoes% a
se3_Jn"#a de 5ro"essa4en'o da #ns'ru01o B #n"(usa na (#s'a 5rocessamento de
Instru#=es
Co45(e4en'ando as ro'#nas 3ue re5resen'a4 as $un"#ona(#dades do 5ro"essador* a
$un01o Escreveegistra!or* B u'#(#zada 5e(as #ns'ru0>es 3ue bus"a4 dados na 4e4;r#a
e ar4azena4 e4 re)#s'radores& Seu $un"#ona4en'o "ons#s'e e4 re"eber 5or 5arU4e'ro o
endere0o do re)#s'rador e o "on'eQdo FdadoH e ar4azen!D(o na 5os#01o de 4e4;r#a
re$eren"#ada 5e(o re)#s'rador&
As (#nCas de 5ro)ra4a s1o 5ro"essadas e4 sBr#e e so4en'e a5;s o 'Br4#no dos
es'!)#os de e?e"u01o de u4a #ns'ru01o* o s#4u(ador re#n#"#a a ro'#na bus"ando no@a
#ns'ru01o& A bus"a B rea(#zada a'B 3ue a !rea de 5ro)ra4a 'enCa s#do e?e"u'ada 5or
"o45(e'o&
De@#do a es"o(Ca 5or u4a (#n)ua)e4 de 5ro)ra4a01o 3ue 5er4#'#sse 4a#ores
re"ursos )r!$#"os 5ara a 4on'a)e4 do s#4u(ador* 4as 3ue n1o B 5ro=e'ada 5ara
4an#5u(ar #n$or4a0>es e4 b#n!r#o e Ce?ade"#4a(* $o# ne"ess!r#o #45(e4en'ar a()u4as
ro'#nas 5ara s#4u(ar un#dades =! e?#s'en'es e4 (#n)ua)ens 5r;5r#a 5ara 5ro)ra4a01o de
5ro"essadores& Aba#?o ser1o (#s'adas essas ro'#nas "o4 des"r#01o de sua $un"#ona(#dade&
&exaBin9 $un01o 3ue re"ebe u4 "ara"'er e4 Ce?ade"#4a( e re'orna seu @a(or e4
b#n!r#o&
+/
Binario$ecima#9 $un01o 3ue re"ebe "o4o 5arU4e'ro u4 @a(or b#n!r#o e re'orna o
@a(or "orre5onden'e e4 de"#4a(&
Ex"oente9 $un01o 5ara e(e@ar u4 nQ4ero a 3ua(3uer e?5oen'e&
Ro'#nas #45(e4en'adas a5enas 5ara a 5ar'e @#sua( do s#4u(ador9
Lim"aCam"os9 (#45a os ob=e'os na 'e(a do s#4u(ador an'es de #n#"#ar no@a e?e"u01o
do 5ro)ra4a&
egistraProcesso9 #n"(us1o das #n$or4a0>es 5ro"essadas na (#s'a de Pro"essa4en'o
das #ns'ru0>es&
./lculo do .PI
Para au?#(#ar a @#sua(#za01o das @an'a)ens do 5#5e(#ne sobre a ar3u#'e'ura* $o# #n"(usa
a ro'#na de "!("u(o de CPI FC#"(os 5or Ins'ru01oH& Nesse s#4u(ador* e4 "ada es'!)#o da
#ns'ru01o $o# #n"(uso u4 "on'ador 5ara s#4bo(#zar a 3uan'#dade de "#"(os )as'os 5or
#ns'ru01o* =! 3ue na (#n)ua)e4 De(5C#* n1o B 5ossE@e( a'#@ar a ro'#na se)undo u4 "(o"R
de$#n#do& Ao 'Br4#no da e?e"u01o do s#4u(ador* B "on'ab#(#zado o nQ4ero 'o'a( de
#ns'ru0>es "on'#das no 5ro)ra4a& O 'o'a( de "#"(os )as'os B d#@#d#do 5e(o 'o'a( de
#ns'ru0>es e?e"u'adas e resu('ado B #n$or4ado no "a45o CPI&
++
Simulador da arquitetura 8086 - .om Pipeline
0 Pipeline
P u4a 'B"n#"a de #45(e4en'a01o de 5ro"essadores 3ue 5er4#'e a sobre5os#01o
'e45ora( de d#@ersas $ases da e?e"u01o de #ns'ru0>es* sendo a base 5ara #45(e4en'a01o
de 'B"n#"as 3ue 5er4#'e4 aos 5ro"essadores a'ua#s* rodare4 os 5ro)ra4as 4a#s
ra5#da4en'e&
P @a(#do ressa('ar 3ue o 5#5e(#ne o'#4#za a 5er$or4an"e do 5ro"essador 5or 4e#o do
au4en'o do 'Crou)C5u' das #ns'ru0>es* ou se=a* au4en'ando o nQ4ero de #ns'ru0>es
e?e"u'adas 5or un#dade de 'e45o* e n1o 5or 4e#o da d#4#nu#01o do 'e45o de e?e"u01o
de "ada #ns'ru01o&
.on(litos do Pipeline
A d#$#"u(dade de #45(e4en'ar o 5#5e(#ne es'! na 5oss#b#(#dade de 'er4os
#n"ons#s'Jn"#as ao 5ro"essar #ns'ru0>es duran'e a e?e"u01o de u4 5ro)ra4a*
de5endendo da se3_Jn"#a de #ns'ru0>es do ";d#)o& Ta#s "on$(#'os* 'a4bB4 "Ca4ados de
Cazards* 5ode4 ser 'ra'ados "o4 a #n"(us1o de un#dades 3ue 5er4#'a4 de'e"'ar
an'e"#5ada4en'e o "on$(#'o e 3ue #ns#ra4 u4 'ra'a4en'o duran'e o 5ro"esso de 5#5e(#ne*
e4 4e#o L e?e"u01o das #ns'ru0>es&
Os Cazards s1o d#@#d#dos e49 es'ru'ura#s* de "on'ro(e e de dados&
1a2ards #struturais
O"orre4 3uando o CardZare n1o 5ode su5or'ar a "o4b#na01o de #ns'ru0>es 3ue o
5#5e(#ne dese=a e?e"u'ar no 4es4o "#"(o de "(o"R& E?e45(o9 e4 u4a ar3u#'e'ura 3ue
5ossu# u4a 4e4;r#a 5ara #ns'ru0>es e dados* n1o ser#a 5ossE@e( ad#an'ar a (e#'ura de
u4a #ns'ru01o se u4a #ns'ru01o de (e#'ura de dados es'#@esse sendo e?e"u'ada no 4es4o
"#"(o de "(o"R& No s#4u(ador ?,-,6* a un#dade de "on'ro(e de@er! 'es'ar o '#5o de
#ns'ru01o an'es de (#berar sua e?e"u01o 5ara o 5r;?#4o es'!)#o& Caso a #ns'ru01o n1o
5ossa ser e?e"u'ada* a 5r#4e#ra 'en'a'#@a de so(u01o ser#a o ad#an'a4en'o do resu('ado*
"aso esse 'a4bB4 n1o $osse 5ossE@e(* a so(u01o dada B a #n"(us1o da #ns'ru01o de N1o
O5eran'e FNOPH 5ara os es'!)#os do 5#5e(#ne* a$#4 de 3ue a #ns'ru01o "o45(e'e a 5ar'e
do "#"(o "on$(#'an'e* 5ara dar se)4en'o ao es'!)#o&
1a2ards de .ontrole
Or#)#naDse da ne"ess#dade de se 'o4ar u4a de"#s1o "o4 base nos resu('ados de u4a
#ns'ru01o* en3uan'o ou'ras es'1o sendo e?e"u'adas& E?e45(o9 #ns'ru0>es "o4 sa('o
"ond#"#ona(* (oo5s& Para esses "asos as so(u0>es 5ro5os'as d#@#de4Dse9
+2
5arada ou *olha9 #nser01o de u4a #ns'ru01o NOP 5ara 3ue n1o Ca=a S5ro)ressoT no
5ro"essa4en'o da #n$or4a01o en3uan'o o resu('ado da #ns'ru01o an'er#or n1o es'#@er
e?e"u'ado& Prob(e4a9 essa so(u01o e4bora se=a 4a#s $!"#( de #45(e4en'ar #45(#"a e4
5erda da 5er$or4an"e do 5ro"essa4en'o* 5o#s o 5#5e(#ne B e$#"#en'e a5;s seu
5reen"C#4en'o 'o'a(& Co4 a 5arada* C! 5erda de "#"(os e 5erdeDse 4a#s 'e45o 5ara
Sen"CerT no@a4en'e o 5#5e(#ne de5o#s de #n'erro45er o 5ro)resso das #ns'ru0>es 5or
#n'er4Bd#o do 5#5e(#ne& Esse re"urso B a5(#"!@e( no s#4u(ador 5ro5os'o nesse 'raba(Co*
5o#s e4bora n1o #45(e4en'e #ns'ru0>es de des@#o "ond#"#ona(* C! se3_Jn"#as de
#ns'ru0>es e4 3ue n1o ser! 5ossE@e( e$e'uar o ad#an'a4en'o do resu('ado e 5ara esses
"asos* o uso da bo(Ca #45ede o "on$(#'o de dados&
5redi#$o( CardZare 5ara Sad#@#nCarT 3ua( a 5r;?#4a #ns'ru01o a ser e?e"u'ada e4 "aso
de des@#os "ond#"#ona#s Fse sa('a 5ara u4 dado endere0o ou e?e"u'a a #ns'ru01o
se)u#n'eH& E4 )era( os 5ro"essadores ado'a4 a 5red#01o 5ara 'ra'ar os des@#os
"ond#"#ona#s e?e"u'ados e4 5#5e(#ne& U4 es3ue4a s#45(es B se45re 5red#zer 3ue os
des@#os "ond#"#ona#s @1o $a(Car& Es'ando "er'o* o 5#5e(#ne 5rosse)ue na @e(o"#dade
4!?#4a& Se errado* C! a ne"ess#dade de a'rasar o a@an0o nor4a( das #ns'ru0>es 5or 4e#o
do 5#5e(#ne e )aran'#r 3ue as #ns'ru0>es =! e?e"u'adas n1o #r1o #n'er$er#r no resu('ado
"orre'o& Esse re"urso sa'#s$az o "on$(#'o 3ue 5ode o"orrer "o4 o uso da #ns'ru01o (oo5&
Pre'endeDse #45(e4en'ar u4a (#s'a de 5red#01o d#nU4#"a e4 3ue os resu('ados das
3ua'ro 5r#4e#ras o"orrJn"#as s1o ar4azenados e a 4Bd#a de o"orrJn"#a de'er4#nar! a
a01o 3ue de@er! ser assu4#da 5ara a 5r;?#4a e?e"u01o& E4 "aso de erro da 5red#01o*
#n"(us1o de bo(Cas 5ara (#45ar o 5#5e(#ne* "aso o resu('ado 5ro"essado a$e'e a se3_Jn"#a
do 5ro)ra4a&
1a2ards de 'ados
O"orre4 3uando a e?e"u01o de u4a #ns'ru01o de5ende do resu('ado de ou'ra* 3ue
a#nda es'! no 5#5e(#ne& E?e45(o9 5ro"essar u4a so4a e4 3ue u4 dos o5eradores a#nda
n1o 'e@e seu @a(or a('erado 5e(a #ns'ru01o an'er#or* sa(@o no re)#s'rador&
Para so(u"#onar esse "on$(#'o B ne"ess!r#a a #n"(us1o de u4a un#dade 3ue
"ons'an'e4en'e @er#$#"a os "on'eQdos dos re)#s'radores e os "o45ara* 5ara @er#$#"ar se
Ca@er! a()u4 "on$(#'o de dado e4 a()u4 es'!)#o& Para 3ue essa un#dade 5ossa e$e'uar os
'es'es* 'ornaDse #nd#s5ens!@e( u4 "on=un'o de s#na#s de "on'ro(e 3ue de@er! ser
"ons'an'e4en'e a'ua(#zado duran'e 5ro"essa4en'o das #ns'ru0>es de "ada es'!)#o& Ao
e$e'uar "o45ara0>es en're a a01o #nd#"ada 5e(os s#na#s de "on'ro(e Fe?e45(o
es"r#'aG(e#'ura da 4e4;r#a ou es"r#'aG(e#'ura de u4 re)#s'radorH e os endere0os de
4e4;r#a e os dados a5on'ados 5or "ada #ns'ru0>es* e4 "ada es'!)#o do 5#5e(#ne* B
5ossE@e( de'e"'ar 3ue o"orrer! u4 "on$(#'o& Nesse #ns'an'e* rea(#zaDse u4 'es'e 5ara
@er#$#"ar se B 5ossE@e( ad#an'ar o resu('ado de a()u4 es'!)#o an'es de o"orrer o
5ro"essa4en'o da #ns'ru01o e4 3ue o"orrer#a o "on$(#'o& E4 "aso 5os#'#@o* a un#dade de
ad#an'a4en'o FForZard#n)H #r! bus"ar o resu('ado "on'#do e4 u4 dos re)#s'radores Fou
o "a4#nCo 5ara en"on'rar o re)#s'rador e o dadoH 5ara #n"(us1o "o4o u4a en'rada 5ara o
5ro"essa4en'o da #ns'ru01o se)u#n'e& Dessa $or4a* no e?e45(o da so4a* os o5erandos
ser#a4 5ro"essados "o4 os @a(ores "orre'os an'es 4es4o do resu('ado da #ns'ru01o
an'er#or 'er s#do )ra@ado no re)#s'rador des'#no&
O s#4u(ador #45(e4en'a esse "on"e#'o e o resu('ado ad#an'ado B sa(@o nos
re)#s'radores de es'!)#o do 5#5e(#ne 5ara sere4 5assados aos re)#s'radores 4an#5u(ados
nas #ns'ru0>es&
+7
#*ecutando o programa
A5;s #n#"#ar a e?e"u01o do 5ro)ra4a Fdu5(o "(#3ue sobre o ar3u#@o
S#4u(adorSPe5#(#ne&e?eH* abr#r! a 'e(a do s#4u(ador "on$or4e 4os'ra a $#)ura /&-& No
"a45o SIn$or4e o "a4#nCo do ar3u#@o F&(s'H* "(#3ue no bo'1o de abr#r* 5ara 3ue a =ane(a
de bus"a de ar3u#@os se=a aber'a& Se(e"#one e abra ar3u#@o "o4 e?'ens1o &(s' )erado a
5ar'#r de ";d#)o 5ro)ra4ado e4 asse4b(< no 4on'ador NAS&
Para abr#r o ar3u#@o 'es'e bus3ue 5or9
D#re';r#o`T/ar"#aFeder#zz#^VanessaBorba`S#4u(adorSP#5e(#ne`5ro)ra4a$un"#ona&
(s'
:bserva#=es(
/ D An'es de abr#r o ar3u#@o &(s' B ne"ess!r#o ed#'!D(o (#nCa a (#nCa& A ed#01o B
re$eren'e ao "ara"'er de 3uebra de (#nCa* 3ue no ar3u#@o or#)#na( n1o B o "ara"'er 5adr1o
5ara en'er& Nesse "aso* ao $#na( de "ada (#nCa 'e"(e en'er 5ara 4ar"ar o $#na( de (#nCa no
ar3u#@o& A5;s abr#r o ar3u#@o* "(#3ue e4 E?e"u'ar Pro)ra4a 5ara #n#"#ar a s#4u(a01o de
5ro"essa4en'o do ?,-,6&
+ D O ar3u#@o &(s' de@er! ser )erado no nas4* no s#s'e4a o5era"#ona( L#nu?* a'ra@Bs
do "o4ando9 d#re'or#oGnas4 A$ e($ A( ar3u#@o&(s' ar3u#@o&as4
Funcionamento
O s#4u(ador da ar3u#'e'ura "o4 5#5e(#ne 5ossu# u4a #n'er$a"e 5are"#da "o4 a
#n'er$a"e do s#4u(ador se4 5#5e(#ne* "o4o 5ode4os @er na $#)ura 8&-& Fora4
a"res"en'adas as (#s'as 1e,istradores do 5ipeline e Est!,ios do 5ipeline& As de4a#s
(#s'a)ens e?#s'en'es na #45(e4en'a01o an'er#or 5er4ane"e4 "o4 as 4es4as
$un"#ona(#dades* 5er4#'#ndo @#sua(#zar* ao $#na( do 5ro)ra4a* a se3_Jn"#a de e?e"u01o e
os @a(ores dos re)#s'radores nas (#s'as 5rocessamento das Instru#=es e Conte@do dos
re,istradores* res5e"'#@a4en'e* 5ara @er#$#"a01o da e?e"u01o do 5ro)ra4a $orne"#do
5ara a ar3u#'e'ura do s#4u(ador& Ta4bB4 as ro'#nas e?5os'as e4 S#4u(ador Se4
P#5e(#ne $ora4 4an'#das nesse 5ro=e'o "o4 P#5e(#ne&
Para #45(e4en'a01o do 5#5e(#ne $o# ne"ess!r#o 4od#$#"ar a es'ru'ura dos
5ro"ed#4en'os9 MovMemRe* MovRegReg* MovImedReg* MovMemAcum* Loop e Add& A
a('era01o "ons#s'e e4* 5ara "ada "#"(o 3ue a #ns'ru01o e4 e?e"u01o $or 5ro"essada*
a()uns dados de "on'ro(e* 'a#s "o4o endere0os de re)#s'radores* dado (#do* endere0o de
4e4;r#a* e'"* de@e4 ser ar4azenadas e4 re)#s'radores de "on'ro(e do 5#5e(#ne
"orres5onden'e ao es'!)#o de e?e"u01o da #ns'ru01o& Co4o a (#n)ua)e4 es"o(C#da 5ara
desen@o(@er o s#4u(ador* n1o 5er4#'e e?e"u01o s#4u('Unea de ro'#nas* n1o B 5ossE@e(
#n"(u#r* e$e'#@a4en'e* 4a#s de u4a #ns'ru01o no 4es4o "#"(o de 5ro"essa4en'o& No
en'an'o* 4on'a4os a es'ru'ura ana(#sando "o4o ser#a #45(e4en'ado e4 u4a (#n)ua)e4
se4 essa res'r#01o* "on$or4e ser! e$e'uado na se)unda e'a5a do 5ro=e'o* 3uando o
5ro"essador ser! #45(e4en'ado e4 (#n)ua)e4 VHDL* 3ue 5er4#'e 5ara(e(#s4o na
e?e"u01o de ro'#nas& Dessa $or4a* o 5#5e(#ne $o# 5ro=e'ado 5ara ser #45(e4en'ado e4
"#n"o es'!)#os* "on'ro(ados 5or 3ua'ro re)#s'radores de 5#5e(#ne IFID* IDEN* ENE*
E\B& A se)u#r ser1o es5e"#$#"ados "ada es'!)#o e #n$or4a0>es 5assadas 5ara "ada
re)#s'rador de "on'ro(e&
+8
*usca da Instru#$o %I+'9 es'!)#o 3ue e$e'ua a (e#'ura da #ns'ru01o na 4e4;r#a
usando 5ara 'an'o o endere0o ar4azenado e4 IP& A #ns'ru01o e o IP #n"re4en'ado s1o
ar4azenados no re)#s'rador de "on'ro(e IFID&
2ecodi)ica#$o da Instru#$o e leitura dos re,istradores de uso ,eral %I2'9 B
res5ons!@e( 5e(a de"od#$#"a01o e (e#'ura dos o5erandos* se=a na 4e4;r#a ou no ban"o de
re)#s'radores& Da 5ar'e #n#"#a( desse es'!)#o* a #n$or4a01o de 3ua(F#sH oFsH endere0oFsH
doFsH re)#s'radorFesH u'#(#zadoFsH na #ns'ru01o* =! de"od#$#"adoFsH* B ar4azenada a#nda
no re)#s'rador IFID&
Execu#$o ou c!lculo de endere#o %E3'9 5ro"essa a #ns'ru01o Fe?e"u'aH& S1o
)uardados no re)#s'rador IDEN o endere0o dos re)#s'radores or#)e4 e des'#no* se
Cou@er* os s#na#s 3ue #nd#"a4 se B es"r#'aG(e#'ura no ban"o de re)#s'rador* se B
es"r#'aG(e#'ura na 4e4;r#a* o endere0o do dado #4ed#a'o n1o "a("u(ado e o IP
#n"re4en'ado&
Acesso B mem0ria %9E'9 es'!)#o reser@ado 5ara es"r#'a na 4e4;r#a& Ar4azena no
re)#s'rador de "on'ro(e ENE o re)#s'rador des'#no* os s#na#s de9 es"r#'aG(e#'ura no
ban"o de re)#s'rador* "on'ro(e do des@#o "ond#"#ona(* es"r#'aG(e#'ura da 4e4;r#a e o
endere0o "a("u(ado na ULA&
Escrita no banco de re,istradores %C*'9 5ro"esso de es"r#'a no ban"o de
re)#s'radores& Ar4azena no re)#s'rador E\B o re)#s'rador des'#no* os s#na#s de9
es"r#'aG(e#'ura no ban"o de re)#s'rador* es"r#'aG(e#'ura da 4e4;r#a e o dado (o"a(#zado
3ue ser! ar4azenado&
Co4 base nas #n$or4a0>es ar4azenadas nos re)#s'radores de es'!)#os do 5#5e(#ne*
duran'e "ada "#"(o de e?e"u01o das #ns'ru0>es* B 5ossE@e( 'es'ar esses @a(ores e
#den'#$#"ar se Ca@er! "on$(#'os de "on'ro(e ou dados&
O 5ro"ed#4en'o Atua#izaEstagios B "Ca4ado a $#na( da e?e"u01o de "ada "#"(o da
#ns'ru01o 5ara ar4azenar os dados "on$or4e o es'!)#o 3ue a #ns'ru01o es'! sendo
5ro"essada& As #n$or4a0>es ar4azenadas s1o @#sE@e#s no s#4u(ador* sendo os
re)#s'radores de es'!)#os re5resen'ados 5e(as "o(unas da (#s'a 1e,istradores de
Est!,ios&
Duran'e a 5assa)e4 do "#"(o a'ua( 5ara o no@o "#"(o* a(B4 da a'ua(#za01o dos dados
nos re)#s'radores B e?e"u'ada a "Ca4ada da ro'#na "nidade2ect4aDard& Essa $un01o
#45(e4en'a o $un"#ona4en'o da un#dade 5ara de'e"'a01o de Cazards de dados e de
"on'ro(e* 5or 4e#o de 'es'es "o4 os @a(ores dos s#na#s de "on'ro(e e endere0os de
re)#s'radores u'#(#zados e4 "ada #ns'ru01o* #n$or4a0>es essas "on'#das nos re)#s'radores
de es'!)#o do 5#5e(#ne& Kuando B 5ossE@e( 'ra'ar o Cazard* a "nidade2ect4aDard
e$e'ua a "Ca4ada da ro'#na de ad#an'a4en'o F$orZard#n)H&
'or(ar!ing9 $un01o 3ue* "on$or4e so(#"#'a01o 5assada 5or 5arU4e'ro 5e(a un#dade
de de'e"01o de Cazard* re'orna o @a(or a ser ad#an'ado 5ara u4 re)#s'rador 3ue #r!
u'#(#zar essa #n$or4a01o* n1o d#s5onE@e( a#nda 5e(a #ns'ru01o an'er#or* no es'!)#o
se)u#n'e&
Con$or4e 4en"#onado an'er#or4en'e* n1o B 5ossE@e( e?e"u'ar essas $un"#ona(#dades
e4 5ara(e(o& No en'an'o* 5ara s#4u(ar a 5ro)ress1o dos es'!)#os "on$or4e a en'rada e
saEda de #ns'ru0>es no 5#5e(#ne* $o# #45(e4en'ada a ro'#na ExecutaInstrucoesPi"e& Esse
5ro"ed#4en'o B d#s5arado ass#4 3ue o ar3u#@o "on'endo as #ns'ru0>es do 5ro)ra4a B
#n'e#ra4en'e 5ro"essado& Nesse #ns'an'e* a (#s'a 1e,istradores do 5ipeline 3ue "on'B4
a se3_Jn"#a de ar4azena4en'os dos re)#s'radores do 5#5e(#ne es'! "o45(e'a& A 5ar'#r
dessa (#s'a* a ro'#na ExecutaInstrucoesPi"e s#4u(a a e?e"u01o da en'rada das #ns'ru0>es
5or "#"(o* o 3ue resu('a* a5;s o 5#5e(#ne es'ar S"Ce#oT* e4 "#n"o #ns'ru0>es sendo
e?e"u'adas e4 5ara(e(o& Co4o resu('ado* o s#4u(ador a5resen'a a 5ro)ress1o de es'!)#os
+6
na (#s'a Est!,ios do 5ipeline Os es'!)#os s1o s#4bo(#zados "on$or4e s#)(a #n$or4ada
a"#4a* en're 5arJn'eses* 5ara des"r#01o dos es'!)#os do 5#5e(#ne& Kuando a un#dade de
de'e"01o de Cazard @er#$#"ar 3ue n1o B 5ossE@e( e$e'uar ad#an'a4en'os* a #ns'ru01o NO
FN1o O5eran'eH ser! #n$or4ada 5ara oFsH es'!)#oFsH a'B 3ue a #n$or4a01o do es'!)#o
an'er#or es'e=a d#s5onE@e( 5ara o es'!)#o 3ue n1o es'! o5eran'e&
A #n'er$a"e a('erada "o4 a #n"(us1o das no@as (#s'as 5ara o s#4u(ador "o4 5#5e(#ne
5ode ser @#sua(#zada na $#)ura :&-&
+i,ura E0 A S#4u(ador Co4 P#5e(#ne&
./lculo do .PI
P 5ossE@e( "o45arar o CPI do s#4u(ador se4 5#5e(#ne "o4 esse s#4u(ador e4 3ue o
re"urso es'! #45(e4en'ado& Ao e?e"u'ar o 5ro)ra4a e?e45(o no s#4u(ador se4 5#5e(#ne
o 'e45o o CPI resu('ou e4 2*.:,+6-,6.868++&
E?e"u'ando o 5ro)ra4a e?e45(o no s#4u(ador "o4 5#5e(#ne esse @a(or $o# reduz#do
5ara /*/:,8:/7+,8:/72&
Para "on'ab#(#zar o nQ4ero de "#"(os )as'os no 5ro)ra4a e?e"u'ado* a "on'a)e4
5assou a ser rea(#zada ao $#na( da ro'#na ExecutaInstrucoesPi"e& Para 'an'o* o nQ4ero
+:
de es'!)#os na Q('#4a (#nCa da (#s'a de Est!,ios do 5ipeline B "on'ado* e esse @a(or B
d#@#d#do 5e(o 'o'a( de #ns'ru0>es e?e"u'adas& O resu('ado B #n$or4ado no "a45o CPI&
Ana(#sando os @a(ores ob'#dos B 5ossE@e( no'ar 3ue a d#$eren0a en're os CPIas es'!
e(e@ada* se "ons#derar4os o nQ4ero de #ns'ru0>es e?e"u'adas no 5ro)ra4a e?e45(o&
as B @!(#do (e4brar 3ue 5ara u4a re5resen'a01o 5re"#sa dos CPIas ser#a ne"ess!r#o u4
"(o"R no s#s'e4a* o 3ue n1o B 5ossE@e( #45(e4en'ar F(#4#'a01o da (#n)ua)e4 u'#(#zada
5ara o s#4u(adorH& Essa ro'#na $o# #45(e4en'ada* "o4 base nas ro'#nas 3ue s#4u(ar#a4
os "#"(os* a5enas 5ara dar no01o da d#$eren0a en're 5ro"essadores "o4 'B"n#"as
d#$eren'es 5ara e?e"u01o de #ns'ru0>es&
Sinais de .ontrole
Para )eren"#ar as #n$or4a0>es sobre as un#dades u'#(#zadas duran'e a e?e"u01o de
u4a #ns'ru01o* be4 "o4o a a01o e?e"u'ada* se Ca@er! (e#'ura ou es"r#'a no ban"o de
dados ou re)#s'radores* 5or e?e45(o* $o# #45(e4en'ada a un#dade de "on'ro(e
re5resen'ada 5e(a ro'#na Atua#izaSinaisContro#e& O 5r#n"E5#o de $un"#ona4en'o dessa
ro'#na "ons#s'e e4 #n#"#a(#zar os s#na#s de "on'ro(e 5ara )eren"#a4en'o de Cazard* (e#'ura
e es"r#'a de dados e4 re)#s'radores ou endere0os de 4e4;r#a& A 'abe(a /&- 4os'ra a
"on$#)ura01o de s#na#s 5assada 5ara a un#dade de "on'ro(e "on$or4e o es'!)#o do
5#5e(#ne e #ns'ru01o e?e"u'ada&
Tabe(a /&- D Con'eQdo dos re)#s'radores do 5#5e(#ne&
Re)#s'rador
do P#5e(#ne
Ins'ru01o Con'eQdo FS#na#s nos re)#s'radoresH
IDEX
Gera(
mov memreg
mov regreg
mov imedreg
mov memacum
mov add
loop
RegDest1+RegDest2
reg1vazio+reg2+rw=1(escreve)+rm='0'
reg1+reg2+rw=1(escreve)+rm=' '(ioperate)
reg1vazio+reg2+rw=1(escreve)+rm=' '(ioperate)
reg1vazio+reg2+rw=1(escreve)+rm='0'
reg1+reg2+rw=1(escreve)+rm=' '(ioperate)
reg1vazio+reg2+rw=1+rm=' '(ioperate)
EX!E!
Gera(
mov memreg
mov regreg
mov imedreg
mov memacum
mov add
loop
RegDestE!+R"mem+R"Reg+ Dv#$
reg2+rw=1(escreve)+rm='0'+'0'(sem desvio)
reg2+rw=1(escreve)+rm=' '(ioperate)+ '0'(sem desvio)
reg2+rw=1(escreve)+rm=' '(ioperate)+'0'(sem desvio)
reg2+rw=1(escreve)+rm='0'+'0'(sem desvio)
reg2+rw=1(escreve)+rm=' '(ioperate)+ '0'(sem desvio)
reg2+rw=1+rm=' '(ioperate)+ '1'(com desvio)
!E!"%
Gera(
mov memreg
mov regreg
mov imedreg
mov memacum
mov add
loop
RegDest!"+R"+ !em&'aReg$
reg2+rw = 1(escreve)+rm='0'
reg2+rw = 1(escreve)+rm=' '(ioperate)
reg2+rw = 1(escreve)+rm=' '(ioperate)
reg2+rw = 1(escreve)+rm='0'
reg2+rw = 1(escreve)+rm=' '(ioperate)
reg2+rw = 1+rm=' '(ioperate)
+,
Aba#?o ser1o es5e"#$#"ados os s#na#s u'#(#zados 5e(a un#dade de "on'ro(e* "o4
res5e"'#@a ordena01o de 5reen"C#4en'o e nQ4ero de 5os#0>es o"u5adas F"ara"'eresH 5or
"ada s#na(9
SinaisI'I$( B u4 @e'or "on'endo o "on=un'o de 5os#0>es 3ue re5resen'a4 os
re)#s'radores or#)e4 FRe)Des'/ A 2 5os#0>esH e des'#no FRe)Des'+ A 2 5os#0>esH da
#ns'ru01o* ar4azenados e4 orde4 da es3uerda 5ara a d#re#'a&
S#na#sIFIDbRe)Des'/cRe)Des'+d

SinaisI$E)( do es'!)#o ID e4 d#an'e $az ne"ess!r#o "on'ro(ar as a0>es 3ue a
#ns'ru01o* =! #den'#$#"ada #r! e?e"u'ar na se3_Jn"#a do 5#5e(#ne& Para 'an'o* esse @e'or
"on'B4 os s#na#s e4 se3_Jn"#a* da es3uerda 5ara a d#re#'a* 3ue #den'#$#"a4 o re)#s'rador
or#)e4 FRe)Des'IE A 2 5os#0>esH* re)#s'rador des'#n'o FRe)Des'IE+ A 2 5os#0>esH* s#na(
de 3ue "o4anda a (e#'uraGes"r#'a no ban"o de re)#s'radores D R\Re) F- D LerG/ A
Es"re@erO / 5os#01oH e 5or $#4* o re)#s'rador 3ue "o4anda (e#'uraGes"r#'a na 4e4;r#a D
RZe4F- D LerG/ A Es"re@eO / 5os#01oH&
S#na#sIDENbRe)Des'IEcRe)Des'IE+cR\Re)cRZe4d
SinaisE)MEM9 @e'or "o45os'o 5e(os s#na#s de re)#s'rador des'#n'o FRe)Des'E A 2
5os#0>esH* "on'ro(e se e?e"u'a des@#o "ond#"#ona( F- A se4 des@#oG / A "o4 des@#o* /
5os#01oH* s#na( de 3ue "o4anda a (e#'uraGes"r#'a no ban"o de re)#s'radores D R\Re) F- D
LerG/ A Es"re@erO / 5os#01oH e o re)#s'rador 3ue "o4anda (e#'uraGes"r#'a na 4e4;r#a D
RZe4F- D LerG/ A Es"re@eO / 5os#01oH&
S#na#sENEbRe)Des'EcD@CcR\4e4cR\Re)d
SinaisMEM*B( @e'or "o45os'o dos s#na#s de re)#s'rador des'#n'o FRe)Des'\ A 2
5os#0>esH* de "on'ro(e 5ara @er#$#"ar se o dado B $orne"#do a 5ar'#r da saEda da ULA ou
da 4e4;r#a de dados D e4ULaRe) F- A Dado da 4e4;r#aG/ A Dado da ULA A /
5os#01oH e o s#na( de 3ue "o4anda se B es"r#'a no ban"o de re)#s'radores ou na 4e4;r#a
D R\F- A Es"re@e na 4e4;r#aG / D Es"re@e no ban"o de re)#s'radoresH&
S#na#sE\B9X Re)Des'\ce4ULaRe)cR\O
+.
.oncluso
Co4 o 5ro=e'o dos s#4u(adores da ar3u#'e'ura do 5ro"essador ?,-,6 5ode4os
ad3u#r#r u4 "onCe"#4en'o 4a#s a45(o sobre seu $un"#ona4en'o o 3ue #45(#"a nu4a
4a#or $a"#(#dade de desen@o(@JD(o e4 u4a (#n)ua)e4 3ue a'enda as ne"ess#dades de
s#4u('ane#dade 5ara #45(e4en'a01o da ar3u#'e'ura* 5r#n"#5a(4en'e "o4 o uso da 'B"n#"a
de #45(e4en'a01o P#5e(#ne& No 5ro=e'o dos s#4u(adores n1o $o# #45(e4en'ada u4a
ar3u#'e'ura "o45(e'a* 4as a5enas as suas un#dades b!s#"as e ne"ess!r#as 5ara a e?e"u01o
do sub"on=un'o de #ns'ru0>es de$#n#do& No en'an'o* $o# o su$#"#en'e 5ara 3ue
"onse)uEsse4os #den'#$#"ar as 5r#n"#5a#s d#$eren0as* @an'a)ens e des@an'a)ens* en're
ar3u#'e'uras 3ue #45(e4en'a4 e 3ue n1o #45(e4en'a4 a 'B"n#"a de 5#5e(#ne&
Para a se)unda 5ar'e do 'raba(Co* "o4 #45(e4en'a01o e4 (#n)ua)e4 VHDL* ser1o
ne"ess!r#as 4od#$#"a0>es* 5o#s o ";d#)o ser! ada5'ado de u4a e?e"u01o n1o 5ara(e(a
5ara u4a e?e"u01o 5ara(e(a& Isso #45(#"a* en're ou'ras 4od#$#"a0>es* e4 a('erar a $or4a
de re5resen'a01o das un#dades da ar3u#'e'ura* 5o#s no s#4u(ador* $ora4 u'#(#zados
re"ursos 5r;5r#os da (#n)ua)e4 De(5C# 5ara re5resen'ar as es'ru'uras $Es#"as da
ar3u#'e'ura de $or4a s#45(#$#"ada& Para a no@a #45(e4en'a01o do 5ro=e'o* 3ue @#sa o
desen@o(@#4en'o e4 u4a (#n)ua)e4 5r;5r#a 5ara des"r#01o de CardZare* VHDL* 'e4D
se a @#s1o de 3ue* os resu('ados ser1o 4a#s sa'#s$a';r#os do 3ue a rea(#zada e4 u4a
(#n)ua)e4 4a#s (#4#'ada re$eren'e L s#4u(a01o de $un"#ona4en'o de u4 CardZare&
2-
Re(er3ncias +i$liogr/(icas
C''59GGZZZ&ee&5u"rs&brGedbarrosGd+--8^/G#"ro5ro"GGru5o^8G'/D
4#"ro5ro"essadores&5d$
C''59GGZZZ&dee&u$")&edu&brGes"a#"oG$a"#saGoa"G,-,6D,-,,^Fs(#desH&5d$
C''59GG5essoa(&u'$5r&edu&brG)us'a@oGas4,-,6&5d$
C'''59GG5essoa(&u'$5r&edu&brG)us'a@oG4odosf+-def+-endere"a4en'o&do"
C''59GGZZZ&dee&u$")&edu&brGes"a#"oG$a"#saG
C''59GG#n$obase&+#'&"o4&brGu5(oadG<.<du+4bC8^ob"(4^ee^"a52&5d$
C''59GGZZZ&55)#a&5u"5r&brGesan'#nG""G+--:G/Gar3u#'e'ura&C'4(
C''59GGZZZ&55)#a&5u"5r&brGesan'#nG""G
Or)an#za01o e Pro=e'os de Co45u'adores9 A In'er$a"e HardZareGSo$'Zare A goCn L&
Heness<* Da@#d A& Pa''erson* ga4es R& Larus +h Ed#'ora LTC* R#o de gane#ro* "a5&6 A
P#5e(#ne&
2/

Vous aimerez peut-être aussi