You are on page 1of 91

Universidade Federal do Piauí

Centro de Tecnologia
Curso de Engenharia Elétrica
MICROCONTROLADORES
Prof. Marcos Zurita
zurita@ufpi.edu.r
!!!.ufpi.r"zurita
Teresina - 2012
Microarquitetura
#
Microcontroladores $ Prof. Marcos Zurita
Sumário

%. Microar&uitetura

#. M'C(% ( Ca)inho de *ados

+. M'C(% $ Unidade de Controle

,. Te)poriza-.o

/iliografia
+
Microcontroladores $ Prof. Marcos Zurita

%. Microar&uitetura
,
Microcontroladores $ Prof. Marcos Zurita
Microarquitetura
Microarquitetura

Pode ser dividida e) duas partes0

Caminho de Dados 1parte operativa20 co)posta pelos
co)ponentes respons3veis pela e4ecu-.o de opera-5es
ele)entares sore os dados.

Unidade de Controle0 for)ada pelo circuito respons3vel
pelo controle e coordena-.o da parte operativa6 de )odo
a faz7(la e4ecutar as opera-5es dese8adas.
Unidade de
Controle
Ca)inho de *ados
1parte operativa2
9
Microcontroladores $ Prof. Marcos Zurita
Microarquitetura
MIC

Microar&uitetura did3tica proposta por Tanenau).

')ple)entada e) , vers5es0 M'C(%6 M'C(#6 M'C(+ e
M'C(,.

*edicada a e4ecutar u) sucon8unto das instru-5es da
M3&uina :irtual ;ava cha)ado ';:M.

IJVM0 Integer Java Virtual Machine $ apenas instru-5es
&ue opera) co) n<)eros inteiros.

Modelo de )e)=ria :on >eu)ann.

Capaz de acessar +# its de dados na )e)=ria
si)ultanea)ente 1arra)ento de dados de +# its2.

Capaz de endere-ar , ?/ de Me)=ria Principal
1arra)ento de endere-os de +# its2.
@
Microcontroladores $ Prof. Marcos Zurita

#. M'C(% ( Ca)inho de *ados
A
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados
O Caminho de Dados do MIC-1

Co)posto por + arra)entos de +# its e , co)ponentes0

U) con8unto de
registradoresB

U)a UCD capaz de
operar sore os
registradoresB

U) deslocador ligado E
saída da UCD de )odo a
estender a ga)a de
opera-5es possíveisB

Portas de co)unica-.o
co) a )e)=ria principal.
UCD
!
Fegistradores
Me)=ria
Principal
C
*eslocador
G
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados
U"

Pura)ente co)inacional 1n.o h3 flip(flops2.

# portas de entrada para operandos de +# its 1D e /2B

% porta de saída da opera-.o de +# its 1C2B

@ vias de controle 1UCDc2B

% saída 1% it2 para indicar se a opera-.o resultou e) zero
1Z2 e outra para indicar se resultou e) valor negativo 1>2.
Z
>
!
C
@
UCDc
UCD
H
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

D UCD de +# its pode ser i)ple)entada a partir de +# UCDs
de % it 1bit slices2 conectadas de )odo &ue o Ivai u)J 1carry
out2 de u)a é ligado ao Ive) u)J 1carry in2 da UCD de peso
i)ediata)ente )aior.

K ter)inal de Ive) u)J da UCD de peso zero é e4ternado
co)o u)a linha de controle 1'>C2 capaz de so)ar u) ao
valor final da opera-.o selecionada.

D hailita-.o das portas D e / é feita através de duas linhas
de controle cha)ada E>D e E>/ 1n.o )ostradas2.
%L
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados
Bit Slice da U"
%%
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados
Cone#$es da U"

% !0 Portas de entrada de operandos 1+# its2.

C0 Porta de saída da opera-.o 1+# its2.

&0 IZeroJ ( 'ndica &ue a opera-.o resultou e) C M L.

'0 I>egativoJ ( indica &ue a opera-.o resultou e) C N L.

U"c0 Cinhas de controle da UCD 1@ its20

(
0
6 (
1
0 *eter)ina) a opera-.o a ser feita entre D e /.

)'6 )'!0 Oailita) as entradas D e /6 respectiva)ente.

I'V0 'nverte os its da entrada D.

I'C0 INCrement ( for-a u) Ive) u)J no it )enos
significativo do so)ador6 incre)entando e) % o resultado
da UCD.
%#
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados
Com*ina+$es ,teis dos sinais de controle da U"
(0 (1 )' )'! I'V I'C (U'-.O
L % % L L L D
L % L % L L /
L % % L % L D
% L % % L L /
% % % % L L D P /
% % % % L % D P / P %
% % % L L % D P %
% % L % L % / P %
% % % % % % / ( D
% % L % % L / ( %
% % % L % % (D
L L % % L L D D>* /
L % % % L L D KF /
L % L L L L L
L % L L L % %
L % L L % L (%
-A0 co)ple)ento de # de D.
%+
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados
Deslocador

Circuito pura)ente co)inacionalB

% porta de entrada de +# its 1E2B

% porta de saída de +# its 1Q2B

# vias de controle 1QCCG e QFD%2B

Capaz de deslocar a entrada G its E es&uerda6 % it E
direita ou si)ples)ente copiar a entrada na saída.
*eslocador
#
E
Q
SS"/ S01 (U'-.O
L L Q M E
L % Q M E RR %
% L Q M E NN G
% % >.o per)itido
%,
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados
Deslocador Sim1les de / *its

Capaz de deslocar a entrada % it E es&uerda ou E
direita6 confor)e o valor de C.
%9
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados
0e2istradores e 3ortas

D co)posi-.o do ca)inho de
dados da )icroar&uitetura do
M'C(% até este )o)ento6 pode
ser representada pela figura
ao lado.

+ arra)entos internos0

e !0 /arra)entos de leitura
dos registradoresB

C0 arra)ento de escrita nos
registradoresB

# arra)entos e4ternos para
co)unica-.o co) a )e)=ria
1endere-os e dados2.
Z
>
#
@
UCD
! C
*eslocador
Fegistradores
%@
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

Para &ue a )icroar&uitetura
possa acessar a )e)=ria s.o
necess3rios registradores de
endere-o e dados 1e portas20

M00 Memory Address Register.
Fegistrador de Endere-os de
Me)=ria. ?uarda +# its do
endere-o de u)a palavra de
+# its da )e)=ria de dados.

MD00 Memory Data Register.
Fegistrador de *ados de
Me)=ria. ?uarda u)a palavra
de +# its lidos da )e)=ria ou
a sere) escritos nela.
Z
>
MDF
M*F
#
@
UCD
! C
*eslocador
%A
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

'nstru-5es de u) progra)as s.o
e4ecutados segundo u)a orde)
precisaB

U)a )icroar&uitetura necessita
saer6 se)pre6 &ual a pr=4i)a
instru-.o a ser e4ecutadaB

 *eve haver u) registrador
apontador de progra)a 1PC2B

3C0 Program Counter.

S dese83vel &ue esse registrador
possa endere-ar direta)ente a
)e)=ria de progra)a0

Porta de endere-o de progra)a.
Z
>
MDF
M*F
#
@
UCD
! C
PC
*eslocador
%G
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

D 'nstru-.o lida da )e)=ria deve
ser ar)azenada para
decodifica-.o e uso futuro.

*eve haver u) registrador de
instru-.o0

M!00 Memory u!!er Register.

S dese83vel &ue esse registrador
possa receer a instru-.o
direta)ente da )e)=ria de
progra)a0

Porta de instru-.o.
Z
>
#
@
UCD
! C
M/F
MDF
M*F
PC
*eslocador
%H
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

K M/F é o <nico registrador de G
its do M'C(%.

Por outro lado6 o arra)ento / é
de +# its.

K M/F pode ser carregado no
arra)ento / de # for)as0

Como um dado sem sinal0 os
#, its E es&uerda s.o zerados.

E4.0 L4D, T L4LLLLLLD,.
Z
>
#
@
UCD
! C
M/F M/F
MDF
M*F
PC
*eslocador
#L
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

K M/F é o <nico registrador de G
its do M'C(%.

Por outro lado6 o arra)ento / é
de +# its.

K M/F pode ser carregado no
arra)ento / de # for)as0

Como um dado sem sinal0 os
#, its E es&uerda s.o zerados.

E4.0 L4D, T L4LLLLLLD,.

Como um dado com sinal
1entre (%#G e %#A20 os #, its E
es&uerda s.o copiados do it
)ais significativo de M/F.

E4.0 L4D, T L4FFFFFFD,.
Z
>
#
@
UCD
! C
M/F
MDF
M*F
PC
*eslocador
#%
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

D capacidade de e)pilhar e
dese)pilhar dados nu)a regi.o
reservada da )e)=ria é i)por(
tante e) )uitas ar&uiteturas.

S necess3rio u) registrador
apontador de pilha0

S30 "tac# Pointer $ Dpontador
de Pilha.
Z
>
MDF
M*F
#
@
UCD
! C
PC
M/F
QP
*eslocador
##
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

D capacidade de e)pilhar e
dese)pilhar dados nu)a regi.o
reservada da )e)=ria é i)por(
tante e) )uitas ar&uiteturas.

S necess3rio u) registrador
apontador de pilha0

S30 "tac# Pointer $ Dpontador
de Pilha.

S necess3rio u) registrador para
ar)azenar o conte<do do topo da
pilha de operandos0

TOS0 $o% &! "tac# $ Topo da
Pilha. Dr)azena u)a c=pia do
valor contido no topo da pilha.
Z
>
MDF
M*F
#
@
UCD
! C
PC
M/F
QP
TKQ
*eslocador
#+
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

Ds vari3veis locais de u)
procedi)ento precisa) ser
ar)azenadas e) u) local
pr=prio da da pilha de operandos.

S necess3rio u) registrador
apontador de vari3veis0

"V0 'ocal Variables $ :ari3veis
Cocais. Dponta para o endere-o
inicial do con8unto de vari3veis
na )e)=ria principal.
Z
>
MDF
M*F
#
@
UCD
! C
PC
M/F
QP
C:
TKQ
*eslocador
#,
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

K uso de constantes é u)
recurso de grande utilidade e)
progra)a-.o.

Elas deve) ser alocadas e) u)a
regi.o da )e)=ria inacessível E
escrita pelos progra)as ';:M.

S necess3rio u) registrador
apontador de constantes0

C330 Constant Pool Pointer $
Dpontador do Con8unto de
Constantes. Dponta para o
endere-o inicial do con8unto de
constantes na )e)=ria principal.
Z
>
MDF
M*F
#
@
UCD
! C
PC
M/F
QP
C:
TKQ
CPP
*eslocador
#9
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

Dntes de se cha)ar u)a su(
rotina é necess3rio copiar o valor
do PC e) u) registro te)por3rio
para &ue se possa retornar E
e4ecu-.o ap=s seu tér)ino.

S necess3rio u) registrador
te)por3rio para ar)azenar o
valor anterior do PC0

O3C0 &ld Program Counter $
Contador de Progra)a Dnterior.
Fegistrador te)por3rio utilizado
para ar)azenar o valor do
registrador PC antes de u)
desvio.
Z
>
MDF
M*F
#
@
UCD
! C
PC
M/F
QP
C:
TKQ
CPP
KPC
*eslocador
#@
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

Do )enos u) registrador deve
ser capaz de fornecer o operando
es&uerdo para a UCD
1arra)ento D20

40 (olding register $ Fegistrador
te)por3rio utilizado para
ar)azenar o segundo operando
para a UCD.

Per)anente)ente hailitado6
seu conte<do est3 constante(
)ente visível no arra)ento D.
Z
>
#
@
UCD
! C
M/F
O
MDF
M*F
PC
QP
C:
TKQ
CPP
KPC
*eslocador
#A
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados
0e2istradores do Caminho de Dados

M00 Memory Address Register $ Fegistrador de
endere-os de )e)=ria.

?uarda os +# its do endere-o de u)a palavra de +# its
na )e)=ria de dados.

Mapeado indireta)ente no arra)ento de endere-os 83
&ue os dados na )e)=ria s.o de G e n.o +# its.
#G
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

MD00 Memory Data Register $ Fegistrador de *ados de
Me)=ria

?uarda u)a palavra de +# its lidos da )e)=ria ou a
sere) escritos nela.

3C0 Program Counter $ Dpontador de Progra)a.

Dponta para o endere-o 1+# its2 do Ute &ue conté) a
pr=4i)a instru-.o a ser e4ecutada pela )icroar&uitetura.

M!05 Memory u!!er Register $ ?uarda G its da
instru-.o lida da )e)=ria de progra)a.

S o <nico registrador de G its do M'C(%.
#H
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

S30 QtacV Pointer $ Dpontador de Pilha.

Dponta para o endere-o do topo da pilha de operandos na
)e)=ria principal.

"V0 Cocal :ariales $ :ari3veis Cocais.

Dponta para o endere-o inicial do con8unto de vari3veis
locais na )e)=ria principal.

C330 Constant Pool Pointer $ Dpontador do Con8unto de
Constantes.

Dponta para o endere-o inicial do con8unto de constantes
na )e)=ria principal.

TOS0 $o% &! "tac# $ Topo da Pilha.

Fegistrador destinado a ar)azenar u)a c=pia do valor
contido no topo da pilha de operandos.
+L
Microcontroladores $ Prof. Marcos Zurita
MIC-1 - Caminho de Dados

O3C0 &ld Program Counter $ Contador de Progra)a
Dnterior.

Fegistrador te)por3rio6 utilizado para ar)azenar o valor
anterior do registrador PC.

Per)ite &ue a e4ecu-.o da principal possa ser reto)ada
rapida)ente ap=s a e4ecu-.o de u)a su(rotina.

40 (olding register $ Fegistrador te)por3rio utilizado
para ar)azenar o segundo operando para a UCD.

Per)anente)ente hailitado6 seu conte<do est3
constante)ente visível no arra)ento D.
+%
Microcontroladores $ Prof. Marcos Zurita

+. M'C(% $ Unidade de Controle
+#
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Unidade de Controle

D unidade de controle destina(se a decodificar as instru(
-5es receidas e coordenar a opera-.o dos co)ponen(
tes do ca)inho de dados de for)a a e4ecut3(las.

Qua concep-.o parte da an3lise de co)o estes co)po(
nentes deve) interagir para a correta e4ecu-.o das
instru-5es.

>a )icroar&uitetura pro8etada6 estes co)ponentes s.o0

UCDB

*eslocadorB

FegistradoresB

Dcesso E )e)=ria.
++
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Controle dos 0e2istradores

Do todo6 G registradores
co)unica)(se co) o arra)ento
/ e H co) o arra)ento C.

*eve haver u) controle para
deter)inar &uais registradores
deve) ser escritos e &ual deve
ser lido a cada ciclo.

 /arra)ento de sinais de controle
de escrita nos registradores0 H viasB
Z
>
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
@
UCD
! C
*eslocador
M/F
QP
+,
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Controle dos 0e2istradores

Do todo6 G registradores
co)unica)(se co) o arra)ento
/ e H co) o arra)ento C.

*eve haver u) controle para
deter)inar &uais registradores
deve) ser escritos e &ual deve
ser lido a cada ciclo.

 /arra)ento de sinais de controle
de escrita nos registradores0 H viasB

 /arra)ento de sinais de controle
de leitura dos registradores0 H vias6
sendo # dedicadas E leitura de M/F
1co) e se) sinal2.
Z
>
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
@
UCD
! C
*eslocador
M/F
QP
+9
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Controle do cesso 7 Mem8ria

K acesso E )e)=ria principal é
feito através de dois pares de
registradores0

MDF"M*F0 dados de +# itsB

PC"M/F0 instru-5es de G itsB

*eve haver u) controle para
deter)inar &uais registradores
ter.o acesso aos arra)entos de
dados e endere-os da )e)=ria.

 Qinais de controle de acesso E
)e)=ria principal0 Read) *rite)
+etch 1+ vias2.
Z
>
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
@
UCD
! C
*eslocador
M/F
QP
+
90ead% :rite% (etch;
+@
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle

Read M %0 D )e)=ria é lida no
endere-o da palavra de +# its
apontado por MDF e o valor
guardado e) M*FB

*rite M %0 K valor e) M*F é
escrito na )e)=ria no endere-o
da palavra de +# its apontado
por MDF.

+etch M %0 D )e)=ria é lida no
endere-o do Ute apontado por
PC e a instru-.o 1valor de G its2
guardado e) M/F.
Z
>
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
@
UCD
! C
*eslocador
M/F
QP
+
90ead% :rite% (etch;
+A
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Tem1ori<a+=o

D an3lise da te)poriza-.o de u)
ciclo de e4ecu-.o do Cd* é u)a
etapa i)portante na elaora-.o
da UC. E) especial6 nota(se &ue0

E4ceto os registradores6 todo o
Cd* é pura)ente co)inacional.

Pode(se ler e escrever no )es)o
registrador nu) <nico ciclo.

)#>5 Te)poriza-.o para H=TOS+1.
W4 W! WU Wz
Z
>
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
@
UCD
! C
*eslocador
M/F
QP
+
90ead% :rite% (etch;
+G
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Su*ciclos 1ara H=TOS+1

% ( sinais de controle a8ustadosB
W4 W! WU Wz
Z
>
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
UCD
! C
*eslocador
M/F
QP
#
@
#
@
+
90ead% :rite% (etch;
+H
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Su*ciclos 1ara H=TOS+1

% ( sinais de controle a8ustadosB

# ( o registrador selecionado é
carregado no arra)ento /B
W4 W! WU Wz
Z
>
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
@
UCD
! C
*eslocador
M/F
QP
+
90ead% :rite% (etch;
,L
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Su*ciclos 1ara H=TOS+1

% ( sinais de controle a8ustadosB

# ( o registrador selecionado é
carregado no arra)ento /B

+ ( opera-.o da UCD e do deslocadorB
W4 W! WU Wz
Z
>
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
@
UCD
! C
*eslocador
M/F
QP
+
90ead% :rite% (etch;
,%
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Su*ciclos 1ara H=TOS+1

% ( sinais de controle a8ustadosB

# ( o registrador selecionado é
carregado no arra)ento /B

+ ( opera-.o da UCD e do deslocadorB

, ( o resultado se propaga através do
arra)ento C para os registradores.
W4 W! WU Wz
Z
>
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
@
UCD
! C
*eslocador
M/F
QP
+
90ead% :rite% (etch;
,#
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Su*ciclos 1ara H=TOS+1

% ( sinais de controle a8ustadosB

# ( o registrador selecionado é
carregado no arra)ento /B

+ ( opera-.o da UCD e do deslocadorB

, ( o resultado se propaga através do
arra)ento C para os registradores.

1suida do clocV2 ( o resultado no
arra)ento C é ar)azenado no1s2
registrador1es2 selecionado1s2 para
escrita.
W4 W! WU Wz
Z
>
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
@
UCD
! C
*eslocador
M/F
QP
+
90ead% :rite% (etch;
,+
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
?era+=o dos Sinais de Controle

Confor)e foi visto6 para controlar o Cd* a UC dever3
gerar #H sinais6 &ue pode) ser divididos e) 9 grupos0

Escrita nos Fegistradores0 H viasB

Ceitura dos Fegistradores0 H viasB

Controle da UCD e do *eslocador0 G viasB

Ceitura"escrita da Me)=ria Principal via MDF"M*F0 # viasB

/usca na Me)=ria Principal via PC"/MF0 % via.

D gera-.o dos sinais de controle deve ser feita co)
ase e) # infor)a-5es fornecidas pelo Cd*0

D instru-.o contida e) M/F0 G viasB

K estado da UCD 1saídas > e Z20 # vias.
,,
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Cone#$es )ntre o Caminho de Dados e a UC
Unidade de
Controle
Z
>
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
@
UCD
! C
*eslocador
M/F
QP
+
90ead% :rite% (etch;
H
G
,9
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Im1lementa+=o da Unidade de Controle

D natureza cíclica de opera-.o da unidade de controle
1usca6 decodifica-.o e e4ecu-.o2 sugere &ue6 de
algu)a for)a6 sua i)ple)enta-.o deve ser feita por u)
circuito de natureza se&uencial.

*e )aneira geral6 pode(se dizer &ue a i)ple)enta-.o
desse circuito pode ser feita de duas )aneiras distintas0

Hardwired

Micro1ro2ramada
,@
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Unidade de Controle Hardwired

Qinais de controle gerados a partir de circuitos l=gicos
se&uenciais 1flip(flops P portas logicas26 co) ase no
conte<do do registrador de instru-5es e nos sinais de estado
gerados pelo ca)inho de dados.

 Elevada velocidade de opera-.oB

 /ai4a fle4iilidade &uanto a altera-5es nas instru-5esB

 Qua co)ple4idade au)enta dra)atica)ente co) o
au)ento do n<)ero de instru-5es do processador.
Unidade de Controle Ca)inho de *ados
F'
Z
>
UCD
Circuito
Qe&uencial
,A
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Unidade de Controle Micro1ro2ramada

Qinais de controle gerados a partir da e4ecu-.o de
)icroinstru-5es ar)azenadas e) u)a )e)=ria dedicada
deno)inada IMe)=ria de ControleJ.

 Qi)ples de i)ple)entar e de realizar altera-5esB

 Facilidade na inclus.o de novas instru-5esB

 /ai4a velocidade de opera-.o se co)parada E
i)ple)enta-.o hard,ired.

For)a de i)ple)enta-.o adotada para o M'C(%.
Unidade de Controle Ca)inho de *ados
F'
Z
>
UCD
Me)=ria de
Controle
,G
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Unidade de Controle Micro1ro2ramada do MIC-1
Z
>
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
@
UCD
! C
*eslocador
M/F
QP
+
90ead% :rite% (etch;
H
G
Unidade de Controle
> Z M!0
G
Qinais de controle
> > >
Fegistrador de Microinstru-5es
Me)=ria de
Controle
Qe&uenciador
endere-o
dado 1)icroinstru-.o2
,H
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle

D princípio6 todos os #H sinais de controle poderia) ser
)apeados direta)ente co)o its de dados da )e)=ria
de controle.

>este caso6 o conte<do ar)azenado pelo Fegistrador de
Microinstru-5es 1M'F2 poderia ser representado por0

Knde0

U"0 its de controle da UCD e do *eslocador

C0 its de sele-.o dos registradores &ue dever.o ser escritos
pelo arra)ento C.

Mem0 its de controle do acesso E )e)=ria 1read) ,rite) !etch2.

!0 sele-.o do registrador &ue ser3 lido pelo arra)ento /.
UCD C Me) /
G its H its + its H its
0e2istrador de Microinstru+$es 9MI0;
9L
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle

K )apea)ento it(a(it dos sinais de controle do
arra)ento C na )e)=ria de controle é dese83vel pois
per)ite &ue u)a )icroinstru-.o escreva u) dado valor
e) )ais de u) registrador ao )es)o te)poB

Por outro lado6 o )es)o n.o é verdadeiro para os sinais
de controle do arra)ento /B

D sele-.o da leitura de )ais de u) registrador ao
)es)o te)po geraria conflito e possivel)ente dano
físico aos co)ponentes.
TKQ XL499Y
KPC XL4aaY
!
!
9%
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle

U)a oa solu-.o para isto é fazer co) &ue o controle
dos sinais de escrita no arra)ento / se8a inter)ediada
por u) decodificador capaz de endere-a(los
individual)ente.

>este caso6 poderia(se e)pregar u) decodificador
co)ercial do tipo , para %@.

D sele-.o do registrador a ser lido pelo arra)ento /
passa a precisar apenas de , its no M'F.
UCD C Me) /
G its H its + its
0e2istrador de Microinstru+$es 9MI0;
,
H vias
*ecodificador
, T %@
A vias 1n.o utilizadas2
> > > > > >
9#
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Sele+=o do 0e2istrador a Ser "ido 3elo !arramento !

Confor)e o valor do ca)po / do M'F te)os0

L0 M*F

%0 PC

#0 M/F 1M/F co) sinal2

+0 M/FU 1M/F se) sinal2

,0 CPP

90 C:

@0 QP

A0 TKQ

G0 KPC

H a %90 nenhum registrador
9+
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle

Dlé) de gerar os sinais de controle do Cd* para cada
ciclo6 a UC deve ta)é) deter)inar o &ue deve ser feito
no ciclo seguinte.

'sso pode ser i)ple)entado incluindo(se its adicionais
e) cada )icroinstru-.o.

Para isto6 ser.o adicionados dois ca)pos ao c=digo das
)icroinstru-5es0

')@TADD0)SS0 Pr=4i)o Endere-o $ conté) o
endere-o da potencial )icroinstru-.o seguinte na
)e)=ria de controleB

JM0 *eter)ina co)o a pr=4i)a )icroinstru-.o ser3
selecionada. Este ca)po consu)ir3 + its6 a sere)
detalhados adiante.
9,
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle

Dd)itindo &ue a )e)=ria de controle adotada possua
9%# endere-os6 o ca)po >EZT[D**FEQQ dever3
conter H its para poder endere-a(la.
O ConBunto Mem8ria de Controle C MI0
0e2istrador de Microinstru+$es 9MI0;
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT[D**FEQQ
Dddr
1H its2
;DM
1+ its2
Me)
1+ its2
UCD
1G its2
C
1H its2
/
1, its2
Me)=ria de Controle para
ar)azenar o )icroprogra)a
19%# 4 +@2
99
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
!its de Controle do MI0 1resu)o2

JM3C0 Jum% to PC $ *efine se o endere-o da pr=4i)a
)icroinstru-.o ser3 dado direta)ente por
>EZT[D**FEQQ ou se através de opera-.o co) M/F.

JM'0 Jum% i! Negative $ Qe hailitado6 desvia a
e4ecu-.o da pr=4i)a )icroinstru-.o para
>EZT[D**FEQQ P L4%LL6 caso >M%B

JM&0 Jum% i! -ero ( Qe hailitado6 desvia a e4ecu-.o
da pr=4i)a )icroinstru-.o para >EZT[D**FEQQ P
L4%LL6 caso ZM%B
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT[D**FEQQ
9@
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle

S""/5 "hi!t 'e!t 'ogical . $ Oailita o desloca)ento de G
its E es&uerda no resultado da opera-.o da UCD.

S010 "hi!t Right Arithmetic ( Oailita o desloca)ento
de % it E direita no resultado da opera-.o da UCD.

(0% (1% )'% )'!% I'V% I'C5 Dtiva) as linhas de
controle da UCD de )es)o no)e.

46 O3C6 TOS6 C336 "V6 S36 3C6 MD0 e M00 ativa) a
escrita nos respectivos registradores através do arra(
)ento C 1)<ltiplos registradores pode) ser escritos
si)ultanea)ente2.
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT[D**FEQQ
9A
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle

:0IT)0 Krdena a escrita na Me)=ria Principal através
de MDF e M*FB

0)D0 Krdena a leitura da Me)=ria Principal através de
MDF e M*FB

()TC40 Krdena a usca de instru-.o na Me)=ria
Principal através de PC e M/F.
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT[D**FEQQ
9G
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
O Sequenciador

S o co)ponente da UC respons3vel por deter)inar a
se&u7ncia de opera-5es necess3rias para a e4ecu-.o
de u)a <nica instru-.o 'QD.

*eve produzir dois tipos de infor)a-.o a cada ciclo0

K estado de cada sinal de controle no siste)a

feito por inter)édio do con8unto Me)=ria de Controle P M'FB

K endere-o da pr=4i)a )icroinstru-.o a ser e4ecutada

deter)inado por u) circuito dedicado6 tendo co)o ase os
sinais fornecidos pelo Cd* 1M/F6 > e Z2 e os ca)pos
>EZT[D**FEQQ e ;DM do Fegistrador de Microinstru-5es.
9H
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
O 1ontador de Micro1ro2rama

Dssi) co)o no endere-a)ento da )e)=ria de progra(
)a6 o endere-a)ento da )e)=ria de )icroprogra)a
ta)é) re&uer u) registrador para conter o endere-o
da pr=4i)a )icroinstru-.o a ser uscada0

M3C0 MicroProgram Counter 1H its2.

K MPC é u) registrador sensível a nível alto6 isto é6 os
valores colocados e) suas entradas s.o copiados
&uando o cloc# da )3&uina est3 e) I%J6 ao contr3rio dos
de)ais registradores do siste)a cu8a carga é feita na
transi-.o de suida do cloc#.

D saída do MPC ali)enta direta)ente a porta de
endere-os da Me)=ria de Controle.
@L
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
Modo de O1era+=o do Sequenciador

Consiste asica)ente e) deter)inar o pr=4i)o valor de
MPC. Pode ser representada pelo algorit)o0
Qe 1;DM> M %2
MPCXGY M >EZT[D**FEQQXGY KF >
Qe 1;DMZ M %2
MPCXGY M >EZT[D**FEQQXGY KF Z
Qe 1;DM> M % ou ;DMZ M %2
MPCXGY M >EZT[D**FEQQXGY KF > KF Z
Qe 1;MPC M %2
MPCXL..AY M >EZT[D**FEQQXL..AY KF M/FXL..AY
Qen.o
MPCXL..AY M >EZT[D**FEQQXL..AY
/it de
)ais
alta
orde)
/its
inferi(
ores
@%
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle

D fun-.o I/it de )ais alta orde)J
F M 1;DMZ D>* Z2 KF 1;DM> D>* >2 KF >EZT[D**FEQQXGY

D fun-.o I/its inferioresJ
MPCXL..AY M 1M/FXL..AY D>* ;MPC2 KF >EZT[D**FEQQXL..AY
/it de
)ais alta
orde)
' &
9JM'%
JM';
DD0D/E
( 9M3CD/E;

DD0D0>>FE
M3CD0>>FE
M!0D0>>FE JM3C
@#
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
0e2istradores da Unidade de Controle

Do contr3rio do Cd* &ue possui v3rios registradores6 a
UC do M'C(% possuí apenas +6 confor)e foi visto0

MI00 MicroInstruction Register $ Fegistrador de )icro(
instru-5es.

Co)posto de +@ its divididos e) @ ca)pos0

>EZT[D**FEQQ6 ;DM6 UCD6 C6 Me) e /.

M3C0 Micro Program Counter $ Contador de Micro
Progra)a. Co)posto de H its.

Flip-flops N e Z0 Q.o registros de % it destinados a
ar)azenar o estado da <lti)a opera-.o da UCD.

Tendo definido todos os co)ponentes do nosso proces(
sador pode)os visualizar seu diagra)a co)pleto.
@+
Microcontroladores $ Prof. Marcos Zurita
MIC-1
/it de
)ais alta
orde)

Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
L L L L L L L L L L L L L L L L L L L L L L L LLLL LLLLLLLLL
UCD
Me)=ria de controle para
ar)azenar o )icroprogra)a
19%# 4 +@2
LLLLLLLLL
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
#
@
G
H
H
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F
QP
Flip(flops
1% it cada2
@,
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
0e1resenta+=o ModiGicada do MIC-1

K diagra)a de locos da )icroar&uitetura do M'C(%
apresentado anterior)ente corresponde e4ata)ente E
apresentada pela literatura )ais recente 1Tanenau)6
“Organização Estruturada de Coputadores!6 9]Ed.2.

Entretanto6 para )elhor refletir a estrutura detalhada até
o )o)ento6 u)a nova representa-.o ser3 adotada6
contendo # pe&uenas altera-5es e) rela-.o E original0

>o loco I/its inferioresJ6 a largura do arra)ento de
entrada >EZT[D**FEQQ e de saída para o MPC ser3
de G its e n.o H 1correspondendo a L..A2B

D cone4.o entre o it >EZT[D**FEQQXGY do M'F e o
loco I/it de )ais alta orde)J ser3 evidenciada.
@9
Microcontroladores $ Prof. Marcos Zurita
MIC-1 1representa-.o )odificada2
/it de
)ais alta
orde)

Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
L L L L L L L L L L L L L L L L L L L L L L L LLLL LLLLLLLLL
UCD
Me)=ria de controle para
ar)azenar o )icroprogra)a
19%# 4 +@2
LLLLLLLLL
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F
QP
Flip(flops
1% it cada2
D**FXGY
@@
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
DesHio Condicional em Microinstru+$es

Por&u7 tantos artifícios s.o usados si)ples)ente para
deter)inar o endere-o da pr=4i)a )icroinstru-.o^

 Efici7ncia_

E) instru-5es de salto condicional co)uns nor)al)ente
é necess3rio especificar # endere-os co)o par`)etro0
if 1u MM %L2 a // dois endere0os de desvio s1o es%eci!icados a2ui
dPPB // um endere0o im%l3cito associado a esta linha
u M LB
b
else a
uPPB // e outro a esta linha
b
@A
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle

Para tornar o ta)anho das )icroinstru-5es unifor)e
te)os ent.o duas solu-5es0

ter dois endere-os de desvio por )icroinstru-.o
1desperdício de espa-o26 ouB

ter apenas u) endere-o e deter)inar o outro co)
ase no pri)eiro.

>o caso do M'C(% a segunda solu-.o é adotada e o
endere-o de desvio deter)inado so)ando(se L4%LL ao
endere-o ase. E4.0

>EZT[D**FEQQML4LH#6 ;MPCML6 ;DM>ML6 ;DMZM%B

MPC poder3 assu)ir dois valores0

L4LH#6 se ZMLB

L4%H#6 se ZM%.
@G
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle

D possiilidade de poder efetuar KF entre M/F e
>EZT[D**FEQQ d3 a )icroinstru-.o a capacidade de
e4ecutar a pr=4i)a instru-.o 'QD ar)azenada e) M/F.

>or)al)ente &uando ;MPCM%6 >EZT[D**FEQQ é igual
a L4LLL ou L4%LLB

Conse&uente)ente6 o pr=4i)o valor de MPC ser3 igual a
M/F ou M/F P L4%LLB

E) u)a utiliza-.o típica6 M/F conté) o opcode de u)a
instru-.o 'QDB

*e fato6 a pri)eira )icroinstru-.o do )icroc=digo
correspondente a cada instru-.o 'QD é ar)azenada no
endere-o inicial apontado pelo pr=prio opcode da
instru-.o 'QD.
@H
Microcontroladores $ Prof. Marcos Zurita
MIC-1 6 Unidade de Controle
)#em1lo5

E4ecu-.o passo(a(passo da instru-.o 'QD de
KPCK*EML4L+ a partir da )icroinstru-.o ar)azenada
no endere-o L4LL% da )e)=ria de controle.

Ks.0 o controle e opera-.o do ca)inho de dados n.o
ser.o )ostrados neste e4e)plo6 apenas os passos
necess3rios para e4ecutar o desvio.
AL
Microcontroladores $ Prof. Marcos Zurita
MIC-1 91 - M3C I Mem8ria de Controle;
/it de
)ais alta
orde)

Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
L L L L L L L L L L L L L L L L L L L L L L L LLLL LLLLLLLLL
UCD
LLLLLLLL%
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#0JY
QP
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLLLLLLLL
LLLLLLLL% LLL
%LL
LLLLLL%LL LLL
> > >
> > >
> > >
> > >
LLLLLLL%% LL%
LL%%
A%
Microcontroladores $ Prof. Marcos Zurita
MIC-1 92 - Mem8ria de Controle I MI0;
/it de
)ais alta
orde)

Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
% L L L L L L L L L L L L L L L L L L L L L L LL%% LLLLLLLLL
UCD
LLLLLLLL%
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#0JY
QP
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLLLLLLLL
LLLLLLLL% LLL
%LL
LLLLLL%LL LLL
> > >
> > >
> > >
> > >
LLLLLLL%% LL%
LL%%
A#
Microcontroladores $ Prof. Marcos Zurita
MIC-1 9J - MI0 I KSequenciadorL;
/it de
)ais alta
orde)

Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
% L L L L L L L L L L L L L L L L L L L L L L LL%% LLLLLLLLL
UCD
LLLLLLLL%
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#0JY
QP
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLLLLLLLL
LLLLLLLL% LLL
%LL
LLLLLL%LL LLL
> > >
> > >
> > >
> > >
LLLLLLL%% LL%
LL%%
A+
Microcontroladores $ Prof. Marcos Zurita
MIC-1 9M - KSequenciadorL I M3C;
/it de
)ais alta
orde)

Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
% L L L L L L L L L L L L L L L L L L L L L L LL%% LLLLLLLLL
UCD
LLLLLLL%%
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#0JY
QP
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLLLLLLLL
LLLLLLLL% LLL
%LL
LLLLLL%LL LLL
> > >
> > >
> > >
> > >
LLLLLLL%% LL%
LL%%
A,
Microcontroladores $ Prof. Marcos Zurita
MIC-1 9N - 'oHo M3C I Mem8ria de Controle;
/it de
)ais alta
orde)

Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
% L L L L L L L L L L L L L L L L L L L L L L LL%% LLLLLLLLL
UCD
LLLLLLL%%
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF
M*F
PC
C:
CPP
TKQ
KPC
O
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#0JY
QP
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLLLLLLLL
LLLLLLLL% LLL
%LL
LLLLLL%LL LLL
> > >
> > >
> > >
> > >
LLLLLLL%% LL%
LL%%
A9
Microcontroladores $ Prof. Marcos Zurita

,. Te)poriza-.o
A@
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o

Te)poriza-.o do Ca)inho de *ados
Qaída do
deslocador
estailizada
'nício do
Ciclo %
Fegistradores carregados
instantanea)ente do arra)ento
C e da )e)=ria na transi-.o de
suida do clocV
N
MPC
disponível
para escrita
O
Carga de valores
e) O e no
arra)ento /
2
W4
Estaeleci)ento dos
valores dos sinais
&ue v.o ali)entar o
ca)inho de dados
1
W!
Kpera-.o
da UCD e do
deslocador
J
WU
Propaga-.o da saída
do deslocador para
os registradores
M
Wz
Ciclo % Ciclo #
>esse )o)ento o novo valor
ar)azenado no MPC é
usado para carregar o M'F
co) a nova )icroinstru-.o
F
AA
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o

)#em1lo5 Microinstru-.o para fazer H=TOS+1B

Dssu)indo &ue todos os registradores est.o zerados e
&ue o MPC aponta inicial)ente para o endere-o L4LLL da
)e)=ria de controle.

D )icroinstru-.o deve ativar o registrador TKQ para
leitura0

M'F./ M L4LA 1LL%%%2B

*a )es)a for)a6 O deve ser hailitado para escrita0

M'F.C.O M %B

Todos os de)ais its de M'F.C deve) ser iguais a zero0

M'F.C M L4%LL 1L%LLLLLLLL2B

Para incre)entar o conte<do do arra)ento / e) %6 o
deslocador e a UCD deve) receer0

M'F.UCD M L4+9 1LLL%%L%L%2B
AG
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o

Dd)itindo &ue a pr=4i)a )icroinstru-.o a ser e4ecutada
se8a incondicional)ente a &ue est3 contida no endere-o
L4LL% da )e)=ria de controle6 te)os0

M'F.>EZT[D**FEQQ M L4LL% 1LLLLLLLLL%2B

M'F.;DM M L4L 1LLLL2B

Co)o nenhu)a opera-.o é realizada co) a )e)=ria0

M'F.Me) M L4L 1LLLL2B

K conte<do co)pleto da )icroinstru-.o é ent.o0

M'F M LLLLLLLLL%.LLL.LL%%L%L%.%LLLLLLLL.LLL.L%%%

os.0 os pontos separa) os ca)pos >EZT[D**FEQQ6
;DM6 UCD6 C6 Me) e /.
AH
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o
/it de
)ais alta
orde)
0 0
Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
UCD
LLLLLLLLL
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF X0#00Y
M*F X0#00Y
PC X0#00Y
C: X0#00Y
CPP X0#00Y
TKQ X0#00Y
KPC X0#00Y
O X0#00Y
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#00Y
QP X0#00Y
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLLLLLLLL
LLLLLLLL% LLL
%LL
LLLLLL%LL LLL
> > >
> > >
> > >
LLLLLLL%% LL%
L L L L L L L L L L L L L L L L L L L L L L L LLLL LLLLLLLLL
W4 W! WU Wz
LL%%L%L% %LLLLLLLL LLL L%%%
t P 05

M3&uina inicializadaB

Fegistradores zeradosB

MPC aponta para L4LLL.
GL
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o
/it de
)ais alta
orde)
0 0
Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
UCD
LLLLLLLLL
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF X0#00Y
M*F X0#00Y
PC X0#00Y
C: X0#00Y
CPP X0#00Y
TKQ X0#00Y
KPC X0#00Y
O X0#00Y
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#00Y
QP X0#00Y
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLL
%LL
LLL
> > >
> > >
> > >
LL%

Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ZZZZ ZZZZZZZZZ
LL%%L%L% %LLLLLLLL LLL L%%%
W4 W! WU Wz
LLLLLLLLL
LLLLLLLL%
LLLLLL%LL
LLLLLLL%%
t Q 05

'nício do ciclo %.

MPC é usado para carregar
M'F co) a %] )icroinstru-.o.
G%
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o
/it de
)ais alta
orde)
0 0
Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
UCD
LLLLLLLLL
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF X0#00Y
M*F X0#00Y
PC X0#00Y
C: X0#00Y
CPP X0#00Y
TKQ X0#00Y
KPC X0#00Y
O X0#00Y
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#00Y
QP X0#00Y
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLL
%LL
LLL
> > >
> > >
> > >
LL%

Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ZZZZ ZZZZZZZZZ
LL%%L%L% %LLLLLLLL LLL L%%%
LLLLLLLLL
LLLLLLLL%
LLLLLL%LL
LLLLLLL%%
W4 W! WU Wz
L L L L L % % L % L % % L L L L L L L L L L L L%%% LLLLLLLL%
t Q RS5

Final do carrega)ento do M'F

Ks its na saída do M'F
torna)(se est3veis.
G#
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o
/it de
)ais alta
orde)
0 0
Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
UCD
LLLLLLLLL
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF X0#00Y
M*F X0#00Y
PC X0#00Y
C: X0#00Y
CPP X0#00Y
TKQ X0#00Y
KPC X0#00Y
O X0#00Y
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#00Y
QP X0#00Y
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLL
%LL
LLL
> > >
> > >
> > >
LL%

L L L L L % % L % L % % L L L L L L L L L L L L%%% LLLLLLLL%
LL%%L%L% %LLLLLLLL LLL L%%%
LLLLLLLLL
LLLLLLLL%
LLLLLL%LL
LLLLLLL%%
W4 W! WU Wz
t Q RS C R#5

Ks sinais de controle do
ca)inho de dados propaga)(
se e torna)(se est3veis.
G+
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o
/it de
)ais alta
orde)
0 0
Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
UCD
LLLLLLLLL
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF X0#00Y
M*F X0#00Y
PC X0#00Y
C: X0#00Y
CPP X0#00Y
TKQ X0#00Y
KPC X0#00Y
O X0#00Y
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#00Y
QP X0#00Y
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLL
%LL
LLL
> > >
> > >
> > >
LL%

L L L L L L L L L L L L L L L L L L L L L L L LLLL LLLLLLLL%
LL%%L%L% %LLLLLLLL LLL L%%%
LLLLLLLLL
LLLLLLLL%
LLLLLL%LL
LLLLLLL%%
t Q RS C R# C RT5

UCD e *eslocador opera)B

Ds saídas >6 Z e do *eslocador
fica) disponíveis.
W4 W! WU Wz
L L L L L % % L % L % % L L L L L L L L L L L L%%% LLLLLLLL%
G,
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o
/it de
)ais alta
orde)
0 0
Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
UCD
LLLLLLLLL
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF X0#00Y
M*F X0#00Y
PC X0#00Y
C: X0#00Y
CPP X0#00Y
TKQ X0#00Y
KPC X0#00Y
O X0#00Y
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#00Y
QP X0#00Y
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLL
%LL
LLL
> > >
> > >
> > >
LL%

% L L L L L L L L L L L L L L L L L L L L L L LLLL LLLLLLLLL
LL%%L%L% %LLLLLLLL LLL L%%%
LLLLLLLLL
LLLLLLLL%
LLLLLL%LL
LLLLLLL%%
t Q RS C R# C RT C R<5

D saída do deslocador chega
até os registradores através do
arra)ento C.
W4 W! WU Wz
L L L L L % % L % L % % L L L L L L L L L L L L%%% LLLLLLLL%
G9
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o
/it de
)ais alta
orde)
0 0
Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
UCD
LLLLLLLLL
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF X0#00Y
M*F X0#00Y
PC X0#00Y
C: X0#00Y
CPP X0#00Y
TKQ X0#00Y
KPC X0#00Y
O X0#01Y
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#00Y
QP X0#00Y
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLL
%LL
LLL
> > >
> > >
> > >
LL%

% L L L L L L L L L L L L L L L L L L L L L L LLLL LLLLLLLLL
LL%%L%L% %LLLLLLLL LLL L%%%
LLLLLLLLL
LLLLLLLL%
LLLLLL%LL
LLLLLLL%%
t Q K*orda de su*idaL5

Fegistradores carregados co)
o conte<do do arra)ento C e
da )e)=ria.
W4 W! WU Wz
L L L L L % % L % L % % L L L L L L L L L L L L%%% LLLLLLLL%
G@
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o
/it de
)ais alta
orde)
0 0
Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
UCD
LLLLLLLL%
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF X0#00Y
M*F X0#00Y
PC X0#00Y
C: X0#00Y
CPP X0#00Y
TKQ X0#00Y
KPC X0#00Y
O X0#01Y
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#00Y
QP X0#00Y
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLL
%LL
LLL
> > >
> > >
> > >
LL%

% L L L L L L L L L L L L L L L L L L L L L L LLLL LLLLLLLLL
LL%%L%L% %LLLLLLLL LLL L%%%
LLLLLLLLL
LLLLLLLL%
LLLLLL%LL
LLLLLLL%%
t Q KinterHalo alto do cicloL5

MPC é carregado co) o
endere-o da pr=4i)a
)icroinstru-.o.
W4 W! WU Wz
L L L L L % % L % L % % L L L L L L L L L L L L%%% LLLLLLLL%
GA
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o
/it de
)ais alta
orde)
0 0
Z
>
;
M
P
C
;
D
M
>
;
D
M
Z
Q
C
C
G
Q
F
D
%
F
L
F
%
E
>
D
E
>
/
'
>
:
D
'
>
C
O
K
P
C
T
K
Q
C
P
P
C
:
Q
P
P
C
M
*
F
M
D
F
F
E
D
*
F
E
T
C
O
\
F
'
T
E
/arra(
)ento
/
>EZT
D**FEQQ
UCD
LLLLLLLL%
MPC


M'F ( Micro'nstruction Fegister
*ecodificador
, T %@
MDF X0#00Y
M*F X0#00Y
PC X0#00Y
C: X0#00Y
CPP X0#00Y
TKQ X0#00Y
KPC X0#00Y
O X0#01Y
#
#
@
G
G
G
H
,
! C
*eslocador
+
90ead% :rite% (etch;
+
90ead%
:rite%
(etch;
M/F X0#00Y
QP X0#00Y
Flip(flops
1% it cada2
D**FXGY
>
>
>
LLL
%LL
LLL
> > >
> > >
> > >
LL%
% L L L L L L L L L L L L L L L L L L L L L L LLLL LLLLLLLLL
LL%%L%L% %LLLLLLLL LLL L%%%
LLLLLLLLL
LLLLLLLL%
LLLLLL%LL
LLLLLLL%%
t Q K*orda de descidaL5

>ovo MPC é usado para carre(
gar a pr=4i)a )icroinstru-.o.

'nício do ciclo #.
W4 W! WU Wz
Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ZZZZ ZZZZZZZZZ
GG
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o
Tem1ori<a+=o de O1era+$es com a Mem8ria

Por raz5es de si)plifica-.o6 considera(se &ue a )e)=(
ria principal do M'C(% é capaz de responder6 a solicita(
-5es de leitura ou escrita6 ap=s % ciclo de cloc#.

Qe u) registrador de endere-o 1MDF ou PC2 for carre(
gado co) o endere-o a ser lido no final do ciclo % 1orda
de suida26 o dado correspondente s= estar3 disponível
1e) M*F ou M/F2 no final do ciclo #.

Qe o dado lido for u) o%code na )e)=ria de progra)a6
ele 83 poder3 ser usado para co)putar o desvio da pr=4i(
)a )icroinstru-.o 1&ue é feito no intervalo alto do ciclo2.

Caso o dado lido se8a u) dado na )e)=ria de dados6
ele s= poder3 ser utilizado no ciclo +6 &uando as opera(
-5es co) os registradores volta) a ocorrer.
GH
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o

)#em1lo 15 Kpera-.o de leitura de u) o%code
na )e)=ria principal via PC"M/F0
Ciclo % Ciclo # Ciclo +
K valor do endere-o
a ser lido é
carregado no
registrador PC
1
K opcode lido é
carregado da porta
para o registrador
M/F
M
K opcode lido e) M/F
83 pode ser utilizado
a&ui para deter)inar a
pr=4i)a )icroinstru-.o
N
D )e)=ria recee
o novo endere-o a
ser lido.
2
D )e)=ria disponiiliza
o dado lido na porta do
registrador M/F.
J
Ciclo da Me)=ria
HL
Microcontroladores $ Prof. Marcos Zurita
Tem1ori<a+=o

)#em1lo 25 Kpera-.o de leitura de u) dado na
)e)=ria principal via MDF"M*F0
Ciclo % Ciclo # Ciclo +
K valor do endere-o
a ser lido é
carregado no
registrador MDF
1
K dado lido é
carregado da porta
para o registrador
M*F
M
K dado lido e) M*F
pode ser utilizado a
partir da&ui
N
D )e)=ria recee
o novo endere-o a
ser lido.
2
D )e)=ria disponiiliza
o dado lido na porta do
registrador M*F.
J
Ciclo da Me)=ria
H%
Microcontroladores $ Prof. Marcos Zurita
!i*lio2raGia

Dndre! Q. Tanenau)6 “Organização
Estruturada de Coputadores!6 9a Ed.6
Pearson6 #LL@.

;. C. OennessU c *. D. Patterson6 “"r#uitetura
de Coputadores - $a "%ordage
&uantitati'a!6 Editora Ca)pus6 #LL+.

\illians Qtallings6 “"r#uitetura e Organização
de Coputadores!6 9] Edi-.o6 Pearson6 #LL+.

Dlert Paul Malvino6 “(icrocoputadores e
(icroprocessadores!6 Mc?ra!(Oill6 %HG9.

Oerert Tau6 “Circuitos )igitais e
(icroprocessadores!6 Mcgran!(Oill6 %HG,.