Buscar

UFPI 3.Microarquitetura

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 91 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 91 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 91 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal do Piauí
Centro de Tecnologia
Departamento de Engenharia Elétrica
CIRCUITOS DIGITAIS II
Prof. Marcos Zurita
zurita@ufpi.edu.br
www.ufpi.br/zurita
Teresina - 2011
 Microarquitetura
2
Circuitos Digitais II – Prof. Marcos Zurita
Sumário
● 1. Microarquitetura
● 2. MIC-1 - Caminho de Dados
● 3. MIC-1 – Unidade de Controle
● 4. Temporização
● Bibliografia
3
Circuitos Digitais II – Prof. Marcos Zurita
 
1. Microarquitetura
4
Circuitos Digitais II – Prof. Marcos Zurita
Microarquitetura
Microarquitetura
● Pode ser dividida em duas partes:
● Caminho de Dados (parte operativa): composta pelos 
componentes responsáveis pela execução de operações 
elementares sobre os dados.
● Unidade de Controle: formada pelo circuito responsável 
pelo controle e coordenação da parte operativa, de modo 
a fazê-la executar as operações desejadas.
Unidade de
Controle
Caminho de Dados
(parte operativa)
5
Circuitos Digitais II – Prof. Marcos Zurita
Microarquitetura
MIC
● Microarquitetura didática proposta por Tanenbaum.
● Implementada em 4 versões: MIC-1, MIC-2, MIC-3 e 
MIC-4.
● Dedicada a executar um subconjunto das instruções da 
Máquina Virtual Java chamado IJVM.
● IJVM: Integer Java Virtual Machine – apenas instruções 
que operam com números inteiros.
● Modelo de memória Von Neumann.
● Capaz de acessar 32 bits de dados na memória 
simultaneamente (barramento de dados de 32 bits).
● Capaz de endereçar 4 GB de Memória Principal 
(barramento de endereços de 32 bits).
6
Circuitos Digitais II – Prof. Marcos Zurita
 
2. MIC-1 - Caminho de Dados
7
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
O Caminho de Dados do MIC-1
● Composto por 3 barramentos de 32 bits e 4 componentes:
● Um conjunto de 
registradores;
● Uma ULA capaz de 
operar sobre os 
registradores;
● Um deslocador ligado à 
saída da ULA de modo a 
estender a gama de 
operações possíveis;
● Portas de comunicação 
com a memória principal.
ULA
A B
RegistradoresMemóriaPrincipal
C
Deslocador
8
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
ULA
● Puramente combinacional (não há flip-flops).
● 2 portas de entrada para operandos de 32 bits (A e B);
● 1 porta de saída da operação de 32 bits (C);
● 6 vias de controle (ULAc);
● 1 saída (1 bit) para indicar se a operação resultou em zero 
(Z) e outra para indicar se resultou em valor negativo (N).
Z
N
A B
C
6
ULAc
ULA
9
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● A ULA de 32 bits pode ser implementada a partir de 32 ULAs 
de 1 bit (bit slices) conectadas de modo que o “vai um” (carry 
out) de uma é ligado ao “vem um” (carry in) da ULA de peso 
imediatamente maior.
● O terminal de “vem um” da ULA de peso zero é externado 
como uma linha de controle (INC) capaz de somar um ao 
valor final da operação selecionada.
● A habilitação das portas A e B é feita através de duas linhas 
de controle chamada ENA e ENB (não mostradas). 
10
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
Bit Slice da ULA
11
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
Conexões da ULA
● A, B: Portas de entrada de operandos (32 bits).
● C: Porta de saída da operação (32 bits).
● Z: “Zero” - Indica que a operação resultou em C = 0.
● N: “Negativo” - indica que a operação resultou em C < 0.
● ULAc: Linhas de controle da ULA (6 bits):
● F0, F1: Determinam a operação a ser feita entre A e B.
● ENA, ENB: Habilitam as entradas A e B, respectivamente.
● INVA: Inverte os bits da entrada A.
● INC: INCrement - força um “vem um” no bit menos 
significativo do somador, incrementando em 1 o resultado 
da ULA.
12
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
Combinações úteis dos sinais de controle da ULA
F0 F1 ENA ENB INVA INC FUNÇÃO
0 1 1 0 0 0 A
0 1 0 1 0 0 B
0 1 1 0 1 0 A
1 0 1 1 0 0 B
1 1 1 1 0 0 A + B
1 1 1 1 0 1 A + B + 1
1 1 1 0 0 1 A + 1
1 1 0 1 0 1 B + 1
1 1 1 1 1 1 B - A
1 1 0 1 1 0 B - 1
1 1 1 0 1 1 -A
0 0 1 1 0 0 A AND B
0 1 1 1 0 0 A OR B
0 1 0 0 0 0 0
0 1 0 0 0 1 1
0 1 0 0 1 0 -1
-A: complemento de 2 de A.
13
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
Deslocador
● Circuito puramente combinacional;
● 1 porta de entrada de 32 bits (E);
● 1 porta de saída de 32 bits (S);
● 2 vias de controle (SLL8 e SRA1);
● Capaz de deslocar a entrada 8 bits à esquerda, 1 bit à 
direita ou simplesmente copiar a entrada na saída.
Deslocador
2
E
S
SSL8 SRA1 FUNÇÃO
0 0 S = E
0 1 S = E >> 1
1 0 S = E << 8
1 1 Não permitido
14
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
Deslocador Simples de 8 bits
● Capaz de deslocar a entrada 1 bit à esquerda ou à 
direita, conforme o valor de C.
15
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
Registradores e Portas
● A composição do caminho de 
dados da microarquitetura do 
MIC-1 até este momento, pode 
ser representada pela figura 
ao lado.
● 3 barramentos internos:
● A e B: Barramentos de leitura 
dos registradores;
● C: barramento de escrita nos 
registradores;
● 2 barramentos externos para 
comunicação com a memória 
(endereços e dados).
Z
N
2
6 ULA
A BC
Deslocador
Registradores
16
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● Para que a microarquitetura 
possa acessar a memória são 
necessários registradores de 
endereço e dados (e portas):
● MAR: Memory Address Register. 
Registrador de Endereços de 
Memória. Guarda 32 bits do 
endereço de uma palavra de 
32 bits da memória de dados.
● MDR: Memory Data Register. 
Registrador de Dados de 
Memória. Guarda uma palavra 
de 32 bits lidos da memória ou 
a serem escritos nela.
Z
N
MAR
MDR
2
6 ULA
A BC
Deslocador
17
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● Instruções de um programas são 
executados segundo uma ordem 
precisa;
● Uma microarquitetura necessita 
saber, sempre, qual a próxima 
instrução a ser executada;
●  Deve haver um registrador 
apontador de programa (PC);
● PC: Program Counter.
● É desejável que esse registrador 
possa endereçar diretamente a 
memória de programa:
● Porta de endereço de programa.
Z
N
MAR
MDR
2
6 ULA
A BC
PC
Deslocador
18
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● A Instrução lida da memória deve 
ser armazenada para 
decodificação e uso futuro.
● Deve haver um registrador de 
instrução:
● MBR: Memory Buffer Register.
● É desejável que esse registrador 
possa receber a instrução 
diretamente da memória de 
programa:
● Porta de instrução.
Z
N
2
6 ULA
A BC
MBR
MAR
MDR
PC
Deslocador
19
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● O MBR é o único registrador de 8 
bits do MIC-1.
● Por outro lado, o barramento B é 
de 32 bits.
● O MBR pode ser carregado no 
barramento B de 2 formas:
● Como um dado sem sinal: os 
24 bits à esquerda são zerados.
● Ex.: 0xA4 → 0x000000A4.
Z
N
2
6 ULA
A BC
MBRMBR
MAR
MDR
PC
Deslocador
20
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● O MBR é o único registrador de 8 
bits do MIC-1.
● Por outro lado, o barramento B é 
de 32 bits.
● O MBR pode ser carregado no 
barramento B de 2 formas:
● Como um dado sem sinal: os 
24 bits à esquerda são zerados.
● Ex.: 0xA4 → 0x000000A4.
● Como um dado com sinal 
(entre -128 e 127): os 24 bits à 
esquerda são copiados do bit 
mais significativode MBR.
● Ex.: 0xA4 → 0xFFFFFFA4.
Z
N
2
6 ULA
A BC
MBR
MAR
MDR
PC
Deslocador
21
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● A capacidade de empilhar e 
desempilhar dados numa região 
reservada da memória é impor-
tante em muitas arquiteturas.
● É necessário um registrador 
apontador de pilha:
● SP: Stack Pointer – Apontador 
de Pilha.
Z
N
MAR
MDR
2
6 ULA
A BC
PC
MBR
SP
Deslocador
22
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● A capacidade de empilhar e 
desempilhar dados numa região 
reservada da memória é impor-
tante em muitas arquiteturas.
● É necessário um registrador 
apontador de pilha:
● SP: Stack Pointer – Apontador 
de Pilha.
● É necessário um registrador para 
armazenar o conteúdo do topo da 
pilha de operandos:
● TOS: Top Of Stack – Topo da 
Pilha. Armazena uma cópia do 
valor contido no topo da pilha.
Z
N
MAR
MDR
2
6 ULA
A BC
PC
MBR
SP
TOS
Deslocador
23
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● As variáveis locais de um 
procedimento precisam ser 
armazenadas em um local 
próprio da da pilha de operandos.
● É necessário um registrador 
apontador de variáveis:
● LV: Local Variables – Variáveis 
Locais. Aponta para o endereço 
inicial do conjunto de variáveis 
na memória principal.
Z
N
MAR
MDR
2
6 ULA
A BC
PC
MBR
SP
LV
TOS
Deslocador
24
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● O uso de constantes é um 
recurso de grande utilidade em 
programação.
● Elas devem ser alocadas em uma 
região da memória inacessível à 
escrita pelos programas IJVM.
● É necessário um registrador 
apontador de constantes:
● CPP: Constant Pool Pointer – 
Apontador do Conjunto de 
Constantes. Aponta para o 
endereço inicial do conjunto de 
constantes na memória principal.
Z
N
MAR
MDR
2
6 ULA
A BC
PC
MBR
SP
LV
TOS
CPP
Deslocador
25
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● Antes de se chamar uma sub-
rotina é necessário copiar o valor 
do PC em um registro temporário 
para que se possa retornar à 
execução após seu término.
● É necessário um registrador 
temporário para armazenar o 
valor anterior do PC:
● OPC: Old Program Counter – 
Contador de Programa Anterior. 
Registrador temporário utilizado 
para armazenar o valor do 
registrador PC antes de um 
desvio.
Z
N
MAR
MDR
2
6 ULA
A BC
PC
MBR
SP
LV
TOS
CPP
OPC
Deslocador
26
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● Ao menos um registrador deve 
ser capaz de fornecer o operando 
esquerdo para a ULA 
(barramento A):
● H: Holding register – Registrador 
temporário utilizado para 
armazenar o segundo operando 
para a ULA.
● Permanentemente habilitado, 
seu conteúdo está constante-
mente visível no barramento A.
Z
N
2
6 ULA
A BC
MBR
H
MAR
MDR
PC
SP
LV
TOS
CPP
OPC
Deslocador
27
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
Registradores do Caminho de Dados
● MAR: Memory Address Register – Registrador de 
endereços de memória.
● Guarda os 32 bits do endereço de uma palavra de 32 bits 
na memória de dados.
● Mapeado indiretamente no barramento de endereços já 
que os dados na memória são de 8 e não 32 bits.
28
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● MDR: Memory Data Register – Registrador de Dados de 
Memória
● Guarda uma palavra de 32 bits lidos da memória ou a 
serem escritos nela.
● PC: Program Counter – Apontador de Programa.
● Aponta para o endereço (32 bits) do byte que contém a 
próxima instrução a ser executada pela microarquitetura.
● MBR: Memory Buffer Register – Guarda 8 bits da 
instrução lida da memória de programa.
● É o único registrador de 8 bits do MIC-1.
29
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● SP: Stack Pointer – Apontador de Pilha.
● Aponta para o endereço do topo da pilha de operandos na 
memória principal.
● LV: Local Variables – Variáveis Locais.
● Aponta para o endereço inicial do conjunto de variáveis 
locais na memória principal.
● CPP: Constant Pool Pointer – Apontador do Conjunto de 
Constantes. 
● Aponta para o endereço inicial do conjunto de constantes 
na memória principal.
● TOS: Top Of Stack – Topo da Pilha.
● Registrador destinado a armazenar uma cópia do valor 
contido no topo da pilha de operandos.
30
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 - Caminho de Dados
● OPC: Old Program Counter – Contador de Programa 
Anterior.
● Registrador temporário, utilizado para armazenar o valor 
anterior do registrador PC.
● Permite que a execução da principal possa ser retomada 
rapidamente após a execução de uma sub-rotina.
● H: Holding register – Registrador temporário utilizado 
para armazenar o segundo operando para a ULA.
● Permanentemente habilitado, seu conteúdo está 
constantemente visível no barramento A.
31
Circuitos Digitais II – Prof. Marcos Zurita
 
3. MIC-1 – Unidade de Controle
32
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Unidade de Controle
● A unidade de controle destina-se a decodificar as instru-
ções recebidas e coordenar a operação dos componen-
tes do caminho de dados de forma a executá-las.
● Sua concepção parte da análise de como estes compo-
nentes devem interagir para a correta execução das 
instruções.
● Na microarquitetura projetada, estes componentes são:
● ULA;
● Deslocador;
● Registradores;
● Acesso à memória.
33
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Controle dos Registradores 
● Ao todo, 8 registradores 
comunicam-se com o barramento 
B e 9 com o barramento C.
● Deve haver um controle para 
determinar quais registradores 
devem ser escritos e qual deve 
ser lido a cada ciclo.
●  Barramento de sinais de controle 
de escrita nos registradores: 9 vias;
Z
N
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
6 ULA
A BC
Deslocador
MBR
SP
34
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Controle dos Registradores 
● Ao todo, 8 registradores 
comunicam-se com o barramento 
B e 9 com o barramento C.
● Deve haver um controle para 
determinar quais registradores 
devem ser escritos e qual deve 
ser lido a cada ciclo.
●  Barramento de sinais de controle 
de escrita nos registradores: 9 vias;
●  Barramento de sinais de controle 
de leitura dos registradores: 9 vias, 
sendo 2 dedicadas à leitura de MBR 
(com e sem sinal).
Z
N
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
6 ULA
A BC
Deslocador
MBR
SP
35
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Controle do Acesso à Memória
● O acesso à memória principal é 
feito através de dois pares de 
registradores:
● MAR/MDR: dados de 32 bits;
● PC/MBR: instruções de 8 bits;
● Deve haver um controle para 
determinar quais registradores 
terão acesso aos barramentos de 
dados e endereços da memória.
●  Sinais de controle de acesso à 
memória principal: Read, Write, 
Fetch (3 vias).
Z
N
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
6 ULA
A BC
Deslocador
MBR
SP
3 (Read, Write, Fetch)
36
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
● Read = 1: A memória é lida no 
endereço da palavra de 32 bits 
apontado por MAR e o valor 
guardado em MDR;
● Write = 1: O valor em MDR é 
escritona memória no endereço 
da palavra de 32 bits apontado 
por MAR.
● Fetch = 1: A memória é lida no 
endereço do byte apontado por 
PC e a instrução (valor de 8 bits) 
guardado em MBR.
Z
N
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
6 ULA
A BC
Deslocador
MBR
SP
3 (Read, Write, Fetch)
37
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Temporização
● A análise da temporização de um 
ciclo de execução do CdD é uma 
etapa importante na elaboração 
da UC. Em especial, nota-se que:
● Exceto os registradores, todo o 
CdD é puramente combinacional.
● Pode-se ler e escrever no mesmo 
registrador num único ciclo.
● Ex.: Temporização para H=TOS+1.
ΔxΔw Δy ΔzZ
N
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
6 ULA
A BC
Deslocador
MBR
SP
3 (Read, Write, Fetch)
38
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Subciclos para H=TOS+1
● 1 - sinais de controle ajustados;
ΔxΔw Δy ΔzZ
N
MAR
MDR
PC
LV
CPP
TOS
OPC
H
ULA
A BC
Deslocador
MBR
SP
2
6
2
6
3 (Read, Write, Fetch)
39
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Subciclos para H=TOS+1
● 1 - sinais de controle ajustados;
● 2 - o registrador selecionado é 
carregado no barramento B;
ΔxΔw Δy ΔzZ
N
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
6 ULA
A BC
Deslocador
MBR
SP
3 (Read, Write, Fetch)
40
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Subciclos para H=TOS+1
● 1 - sinais de controle ajustados;
● 2 - o registrador selecionado é 
carregado no barramento B;
● 3 - operação da ULA e do deslocador;
ΔxΔw Δy ΔzZ
N
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
6 ULA
A BC
Deslocador
MBR
SP
3 (Read, Write, Fetch)
41
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Subciclos para H=TOS+1
● 1 - sinais de controle ajustados;
● 2 - o registrador selecionado é 
carregado no barramento B;
● 3 - operação da ULA e do deslocador;
● 4 - o resultado se propaga através do 
barramento C para os registradores.
ΔxΔw Δy ΔzZ
N
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
6 ULA
A BC
Deslocador
MBR
SP
3 (Read, Write, Fetch)
42
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Subciclos para H=TOS+1
● 1 - sinais de controle ajustados;
● 2 - o registrador selecionado é 
carregado no barramento B;
● 3 - operação da ULA e do deslocador;
● 4 - o resultado se propaga através do 
barramento C para os registradores.
● (subida do clock) - o resultado no 
barramento C é armazenado no(s) 
registrador(es) selecionado(s) para 
escrita.
ΔxΔw Δy ΔzZ
N
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
6 ULA
A BC
Deslocador
MBR
SP
3 (Read, Write, Fetch)
43
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Geração dos Sinais de Controle
● Conforme foi visto, para controlar o CdD a UC deverá 
gerar 29 sinais, que podem ser divididos em 5 grupos:
● Escrita nos Registradores: 9 vias;
● Leitura dos Registradores: 9 vias;
● Controle da ULA e do Deslocador: 8 vias;
● Leitura/escrita da Memória Principal via MAR/MDR: 2 vias;
● Busca na Memória Principal via PC/BMR: 1 via.
● A geração dos sinais de controle deve ser feita com 
base em 2 informações fornecidas pelo CdD:
● A instrução contida em MBR: 8 vias;
● O estado da ULA (saídas N e Z): 2 vias.
44
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Conexões Entre o Caminho de Dados e a UC
Unidade de
Controle
Z
N
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
6
ULA
A BC
Deslocador
MBR
SP
3
(Read, Write, Fetch)
9
8
45
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Implementação da Unidade de Controle
● A natureza cíclica de operação da unidade de controle 
(busca, decodificação e execução) sugere que, de 
alguma forma, sua implementação deve ser feita por um 
circuito de natureza sequencial.
● De maneira geral, pode-se dizer que a implementação 
desse circuito pode ser feita de duas maneiras distintas:
● Hardwired
● Microprogramada
46
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Unidade de Controle Hardwired
● Sinais de controle gerados a partir de circuitos lógicos 
sequenciais (flip-flops + portas logicas), com base no 
conteúdo do registrador de instruções e nos sinais de estado 
gerados pelo caminho de dados.
●  Elevada velocidade de operação;
●  Baixa flexibilidade quanto a alterações nas instruções;
●  Sua complexidade aumenta dramaticamente com o 
aumento do número de instruções do processador. 
Unidade de Controle Caminho de Dados
RI
Z
N ULA
Circuito
Sequencial
47
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Unidade de Controle Microprogramada
● Sinais de controle gerados a partir da execução de 
microinstruções armazenadas em uma memória dedicada 
denominada “Memória de Controle”.
●  Simples de implementar e de realizar alterações;
●  Facilidade na inclusão de novas instruções;
●  Baixa velocidade de operação se comparada à 
implementação hardwired.
● Forma de implementação adotada para o MIC-1.
Unidade de Controle Caminho de Dados
RI
Z
N ULA
Memória de
Controle
48
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Unidade de Controle Microprogramada do MIC-1
Z
N
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
6
ULA
A BC
Deslocador
MBR
SP
3
(Read, Write, Fetch)
9
8
Unidade de Controle
N ZMBR
8
Sinais de controle
. . .
Registrador de Microinstruções
 Memória de
Controle
Sequenciador
endereço
dado (microinstrução)
49
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
● A princípio, todos os 29 sinais de controle poderiam ser 
mapeados diretamente como bits de dados da memória 
de controle.
● Neste caso, o conteúdo armazenado pelo Registrador de 
Microinstruções (MIR) poderia ser representado por:
● Onde:
● ULA: bits de controle da ULA e do Deslocador
● C: bits de seleção dos registradores que deverão ser escritos 
pelo barramento C.
● Mem: bits de controle do acesso à memória (read, write, fetch).
● B: seleção do registrador que será lido pelo barramento B.
ULA C Mem B
8 bits 9 bits 3 bits 9 bits
Registrador de Microinstruções (MIR)
50
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
● O mapeamento bit-a-bit dos sinais de controle do 
barramento C na memória de controle é desejável pois 
permite que uma microinstrução escreva um dado valor 
em mais de um registrador ao mesmo tempo;
● Por outro lado, o mesmo não é verdadeiro para os sinais 
de controle do barramento B;
● A seleção da leitura de mais de um registrador ao 
mesmo tempo geraria conflito e possivelmente dano 
físico aos componentes.
TOS [0x55]
OPC [0xaa]
B
!
51
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
● Uma boa solução para isto é fazer com que o controle 
dos sinais de escrita no barramento B seja intermediada 
por um decodificador capaz de endereça-los 
individualmente.
● Neste caso, poderia-se empregar um decodificador 
comercial do tipo 4 para 16.
● A seleção do registrador a ser lido pelo barramento B 
passa a precisar apenas de 4 bits no MIR.
ULA C Mem B
8 bits 9 bits 3 bits
Registrador de Microinstruções (MIR)
4
9 vias
Decodificador
4 → 16
7 vias (não utilizadas)
. . . . . .
52
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidadede Controle
Seleção do Registrador a Ser Lido Pelo Barramento B
● Conforme o valor do campo B do MIR temos:
● 0: MDR
● 1: PC
● 2: MBR (MBR com sinal)
● 3: MBRU (MBR sem sinal)
● 4: CPP
● 5: LV
● 6: SP
● 7: TOS
● 8: OPC
● 9 a 15: nenhum registrador
53
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
● Além de gerar os sinais de controle do CdD para cada 
ciclo, a UC deve também determinar o que deve ser feito 
no ciclo seguinte.
● Isso pode ser implementado incluindo-se bits adicionais 
em cada microinstrução.
● Para isto, serão adicionados dois campos ao código das 
microinstruções:
● NEXT_ADDRESS: Próximo Endereço – contém o 
endereço da potencial microinstrução seguinte na 
memória de controle;
● JAM: Determina como a próxima microinstrução será 
selecionada. Este campo consumirá 3 bits, a serem 
detalhados adiante. 
54
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
● Admitindo que a memória de controle adotada possua 
512 endereços, o campo NEXT_ADDRESS deverá 
conter 9 bits para poder endereça-la.
O Conjunto Memória de Controle + MIR
Registrador de Microinstruções (MIR)
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT_ADDRESS
Addr
(9 bits)
JAM
(3 bits)
Mem
(3 bits)
ULA
(8 bits)
C
(9 bits)
B
(2 bits)
 Memória de Controle para
armazenar o microprograma
(512 x 36)
55
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Bits de Controle do MIR (resumo)
● JMPC: Jump to PC – Define se o endereço da próxima 
microinstrução será dado diretamente por 
NEXT_ADDRESS ou se através de operação com MBR.
● JAMN: Jump if Negative – Se habilitado, desvia a 
execução da próxima microinstrução para 
NEXT_ADDRESS + 0x100, caso N=1; 
● JAMZ: Jump if Zero - Se habilitado, desvia a execução 
da próxima microinstrução para NEXT_ADDRESS + 
0x100, caso Z=1;
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT_ADDRESS
56
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
● SLL8: Shift Left Logical 8 – Habilita o deslocamento de 8 
bits à esquerda no resultado da operação da ULA.
● SAR1: Shift Right Arithmetic - Habilita o deslocamento 
de 1 bit à direita no resultado da operação da ULA.
● F0, F1, ENA, ENB, INVA, INC: Ativam as linhas de 
controle da ULA de mesmo nome.
● H, OPC, TOS, CPP, LV, SP, PC, MDR e MAR: ativam a 
escrita nos respectivos registradores através do barra-
mento C (múltiplos registradores podem ser escritos 
simultaneamente).
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT_ADDRESS
57
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
● WRITE: Ordena a escrita na Memória Principal através 
de MAR e MDR;
● READ: Ordena a leitura da Memória Principal através de 
MAR e MDR;
● FETCH: Ordena a busca de instrução na Memória 
Principal através de PC e MBR.
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT_ADDRESS
58
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
O Sequenciador
● É o componente da UC responsável por determinar a 
sequência de operações necessárias para a execução 
de uma única instrução ISA.
● Deve produzir dois tipos de informação a cada ciclo:
● O estado de cada sinal de controle no sistema
● feito por intermédio do conjunto Memória de Controle + MIR;
● O endereço da próxima microinstrução a ser executada
● determinado por um circuito dedicado, tendo como base os 
sinais fornecidos pelo CdD (MBR, N e Z) e os campos 
NEXT_ADDRESS e JAM do Registrador de Microinstruções.
59
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
O Apontador de Microprograma
● Assim como no endereçamento da memória de progra-
ma, o endereçamento da memória de microprograma 
também requer um registrador para conter o endereço 
da próxima microinstrução a ser buscada:
● MPC: MicroProgram Counter (9 bits).
● O MPC é um registrador sensível a nível alto, isto é, os 
valores colocados em suas entradas são copiados 
quando o clock da máquina está em “1”, ao contrário dos 
demais registradores do sistema cuja carga é feita na 
transição de subida do clock.
● A saída do MPC alimenta diretamente a porta de 
endereços da Memória de Controle.
60
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Modo de Operação do Sequenciador
● Consiste basicamente em determinar o próximo valor de 
MPC. Pode ser representada pelo algoritmo:
Se (JAMN = 1)
 MPC[8] = NEXT_ADDRESS[8] OR N
Se (JAMZ = 1)
 MPC[8] = NEXT_ADDRESS[8] OR Z
Se (JAMN = 1 ou JAMZ = 1)
 MPC[8] = NEXT_ADDRESS[8] OR N OR Z
Se (JMPC = 1)
 MPC[0..7] = NEXT_ADDRESS[0..7] OR MBR[0..7]
Senão
 MPC[0..7] = NEXT_ADDRESS[0..7]
Bit de 
mais 
alta 
ordem
Bits 
inferi-
ores
61
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
● A função “Bit de mais alta ordem”
F = (JAMZ AND Z) OR (JAMN AND N) OR NEXT_ADDRESS[8]
● A função “Bits inferiores”
MPC[0..7] = (MBR[0..7] AND JMPC) OR NEXT_ADDRESS[0..7]
Bit de
mais alta
ordem
N Z
(JAMN, 
JAMN)
ADDR[8]
F (MPC[8])
 
ADDR[0..7]
MPC[0..7]
MBR[0..7] JMPC
62
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Registradores da Unidade de Controle
● Ao contrário do CdD que possui vários registradores, a 
UC do MIC-1 possuí apenas 3, conforme foi visto:
● MIR: MicroInstruction Register – Registrador de micro-
instruções.
● Composto de 36 bits divididos em 6 campos:
● NEXT_ADDRESS, JAM, ULA, C, Mem e B.
● MPC: Micro Program Counter – Contador de Micro 
Programa. Composto de 9 bits.
● Flip-flops N e Z: São registros de 1 bit destinados a 
armazenar o estado da última operação da ULA.
● Tendo definido todos os componentes do nosso proces-
sador podemos visualizar seu diagrama completo.
63
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1
Bit de
mais alta
ordem
 
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000
ULA
 Memória de controle para
armazenar o microprograma
(512 x 36)
 000000000
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
2
6
8
9
9
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR
SP
Flip-flops
 (1 bit cada)
64
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Representação Modificada do MIC-1
● O diagrama de blocos da microarquitetura do MIC-1 
apresentadoanteriormente corresponde exatamente à 
apresentada pela literatura mais recente (Tanenbaum, 
“Organização Estruturada de Computadores”, 5ªEd.).
● Entretanto, para melhor refletir a estrutura detalhada até 
o momento, uma nova representação será adotada, 
contendo 2 pequenas alterações em relação à original:
● No bloco “Bits inferiores”, a largura do barramento de 
entrada NEXT_ADDRESS e de saída para o MPC será 
de 8 bits e não 9 (correspondendo a b0..b7);
● A conexão entre o bit NEXT_ADDRESS[8] do MIR e o 
bloco “Bit de mais alta ordem” será evidenciada.
65
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 (representação modificada)
Bit de
mais alta
ordem
 
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000
ULA
 Memória de controle para
armazenar o microprograma
(512 x 36)
 000000000
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR
SP
Flip-flops
 (1 bit cada)
ADDR[8]
66
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Desvio Condicional em Microinstruções
● Porquê tantos artifícios são usados simplesmente para 
determinar o endereço da próxima microinstrução?
●  Eficiência!
● Em instruções de salto condicional comuns normalmente 
é necessário especificar 2 endereços como parâmetro:
 if (u == 10) { // dois endereços de desvio são especificados aqui
 d++; // um endereço implícito associado a esta linha
 u = 0;
 }
 else {
 u++; // e outro a esta linha
 }
67
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
● Para tornar o tamanho das microinstruções uniforme 
temos então duas soluções:
● ter dois endereços de desvio por microinstrução 
(desperdício de espaço), ou;
● ter apenas um endereço e determinar o outro com 
base no primeiro.
● No caso do MIC-1 a segunda solução é adotada e o 
endereço de desvio determinado somando-se 0x100 ao 
endereço base. Ex.:
● NEXT_ADDRESS=0x092, JMPC=0, JAMN=0, JAMZ=1;
● MPC poderá assumir dois valores:
● 0x092, se Z=0;
● 0x192, se Z=1.
68
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
● A possibilidade de poder efetuar OR entre MBR e 
NEXT_ADDRESS dá a microinstrução a capacidade de 
executar a próxima instrução ISA armazenada em MBR.
● Normalmente quando JMPC=1, NEXT_ADDRESS é igual 
a 0x000 ou 0x100;
● Consequentemente, o próximo valor de MPC será igual a 
MBR ou MBR + 0x100;
● Em uma utilização típica, MBR contém o opcode de uma 
instrução ISA;
● De fato, a primeira microinstrução do microcódigo 
correspondente a cada instrução ISA é armazenada no 
endereço inicial apontado pelo próprio opcode da 
instrução ISA.
69
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 – Unidade de Controle
Exemplo:
● Execução passo-a-passo da instrução ISA de 
OPCODE=0x03 a partir da microinstrução armazenada 
no endereço 0x001 da memória de controle.
● Obs.: o controle e operação do caminho de dados não 
serão mostrados neste exemplo, apenas os passos 
necessários para executar o desvio.
70
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 (1 - MPC → Memória de Controle)
Bit de
mais alta
ordem
 
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000
ULA
 000000001
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x03] 
SP
Flip-flops
 (1 bit cada)
ADDR[8]
...
000000000
000000001 000
100
000000100 000
. . .
. . .
. . .
. . .
000000011 001
0011
71
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 (2 - Memória de Controle → MIR)
Bit de
mais alta
ordem
 
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0011000000000
ULA
 000000001
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x03] 
SP
Flip-flops
 (1 bit cada)
ADDR[8]
...
000000000
000000001 000
100
000000100 000
. . .
. . .
. . .
. . .
000000011 001
0011
72
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 (3 - MIR → “Sequenciador”)
Bit de
mais alta
ordem
 
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0011000000000
ULA
 000000001
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x03] 
SP
Flip-flops
 (1 bit cada)
ADDR[8]
...
000000000
000000001 000
100
000000100 000
. . .
. . .
. . .
. . .
000000011 001
0011
73
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 (4 - “Sequenciador” → MPC)
Bit de
mais alta
ordem
 
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0011000000000
ULA
 000000011
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x03] 
SP
Flip-flops
 (1 bit cada)
ADDR[8]
...
000000000
000000001 000
100
000000100 000
. . .
. . .
. . .
. . .
000000011 001
0011
74
Circuitos Digitais II – Prof. Marcos Zurita
MIC-1 (5 - Novo MPC → Memória de Controle)
Bit de
mais alta
ordem
 
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0011000000000
ULA
 000000011
MPC
 
 
MIR - MicroInstructionRegister
Decodificador
4 → 16
MAR
MDR
PC
LV
CPP
TOS
OPC
H
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x03] 
SP
Flip-flops
 (1 bit cada)
ADDR[8]
...
000000000
000000001 000
100
000000100 000
. . .
. . .
. . .
. . .
000000011 001
0011
75
Circuitos Digitais II – Prof. Marcos Zurita
 
4. Temporização
76
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
● Temporização do Caminho de Dados
Saída do 
deslocador 
estabilizada
Início do 
Ciclo 1
Registradores carregados 
instantaneamente do barramento 
C e da memória na transição de 
subida do clock
5
MPC 
disponível 
para escrita
6
Carga de valores 
em H e no 
barramento B
2
Δx
Estabelecimento dos 
valores dos sinais 
que vão alimentar o 
caminho de dados
1
Δw
Operação 
da ULA e do 
deslocador 
3
Δy
Propagação da saída 
do deslocador para 
os registradores
4
Δz
Ciclo 1 Ciclo 2
Nesse momento o novo valor 
armazenado no MPC é 
usado para carregar o MIR 
com a nova microinstrução
7
77
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
● Exemplo: Microinstrução para fazer H=TOS+1;
● Assumindo que todos os registradores estão zerados e 
que o MPC aponta inicialmente para o endereço 0x000 da 
memória de controle.
● A microinstrução deve ativar o registrador TOS para 
leitura:
● MIR.B = 0x07 (0b0111);
● Da mesma forma, H deve ser habilitado para escrita:
● MIR.C.H = 1;
● Todos os demais bits de MIR.C devem ser iguais a zero:
● MIR.C = 0x100 (0b100000000);
● Para incrementar o conteúdo do barramento B em 1, o 
deslocador e a ULA devem receber:
● MIR.ULA = 0x35 (0b00110101);
78
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
● Admitindo que a próxima microinstrução a ser executada 
seja incondicionalmente a que está contida no endereço 
0x001 da memória de controle, temos:
● MIR.NEXT_ADDRESS = 0x001 (0b000000001);
● MIR.JAM = 0x0 (0b000);
● Como nenhuma operação é realizada com a memória:
● MIR.Mem = 0x0 (0b000);
● O conteúdo completo da microinstrução é então:
● MIR = 0b000000001.000.00110101.100000000.000.0111
● obs.: os pontos separam os campos NEXT_ADDRESS, 
 JAM, ULA, C, Mem e B.
79
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
Bit de
mais alta
ordem
 0 0
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
ULA
 000000000
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR [0x00]
MDR [0x00]
PC [0x00]
LV [0x00]
CPP [0x00]
TOS [0x00]
OPC [0x00]
H [0x00]
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x00] 
SP [0x00]
Flip-flops
 (1 bit cada)
ADDR[8]
...
000000000
000000001 000
100
000000100 000
. . .
. . .
. . .
000000011 001
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000
ΔxΔw Δy Δz
00110101 100000000 000 0111
t < 0:
● Máquina inicializada;
● Registradores zerados;
● MPC aponta para 0x000.
80
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
Bit de
mais alta
ordem
 0 0
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
ULA
 000000000
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR [0x00]
MDR [0x00]
PC [0x00]
LV [0x00]
CPP [0x00]
TOS [0x00]
OPC [0x00]
H [0x00]
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x00] 
SP [0x00]
Flip-flops
 (1 bit cada)
ADDR[8]
...
000
100
000
. . .
. . .
. . .
001
 
X X X X X X X X X X X X X X X X X X X X X XX XXXXXXXXXXXXX
00110101 100000000 000 0111
ΔxΔw Δy Δz
000000000
000000001
000000100
000000011
t = 0:
● Início do ciclo 1.
● MPC é usado para carregar 
MIR com a 1ª microinstrução.
81
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
Bit de
mais alta
ordem
 0 0
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
ULA
 000000000
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR [0x00]
MDR [0x00]
PC [0x00]
LV [0x00]
CPP [0x00]
TOS [0x00]
OPC [0x00]
H [0x00]
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x00] 
SP [0x00]
Flip-flops
 (1 bit cada)
ADDR[8]
...
000
100
000
. . .
. . .
. . .
001
 
X X X X X X X X X X X X X X X X X X X X X XX XXXXXXXXXXXXX
00110101 100000000 000 0111
000000000
000000001
000000100
000000011
ΔxΔw Δy Δz
0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 00 0111000000001
t = Δw:
● Final do carregamento do MIR
● Os bits na saída do MIR 
tornam-se estáveis.
82
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
Bit de
mais alta
ordem
 0 0
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
ULA
 000000000
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR [0x00]
MDR [0x00]
PC [0x00]
LV [0x00]
CPP [0x00]
TOS [0x00]
OPC [0x00]
H [0x00]
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x00] 
SP [0x00]
Flip-flops
 (1 bit cada)
ADDR[8]
...
000
100
000
. . .
. . .
. . .
001
 
0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 00 0111000000001
00110101 100000000 000 0111
000000000
000000001
000000100
000000011
ΔxΔw Δy Δz
t = Δw + Δx:
● Os sinais de controle do 
caminho de dados propagam-
se e tornam-se estáveis.
83
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
Bit de
mais alta
ordem
 0 0
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
ULA
 000000000
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR [0x00]
MDR [0x00]
PC [0x00]
LV [0x00]
CPP [0x00]
TOS [0x00]
OPC [0x00]
H [0x00]
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x00] 
SP [0x00]
Flip-flops
 (1 bit cada)
ADDR[8]
...
000
100
000
. . .
. . .
. . .
001
 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000001
00110101 100000000 000 0111
000000000
000000001
000000100
000000011
t = Δw + Δx + Δy:
● ULA eDeslocador operam;
● As saídas N, Z e do Deslocador 
ficam disponíveis.
ΔxΔw Δy Δz
0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 00 0111000000001
84
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
Bit de
mais alta
ordem
 0 0
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
ULA
 000000000
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR [0x00]
MDR [0x00]
PC [0x00]
LV [0x00]
CPP [0x00]
TOS [0x00]
OPC [0x00]
H [0x00]
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x00] 
SP [0x00]
Flip-flops
 (1 bit cada)
ADDR[8]
...
000
100
000
. . .
. . .
. . .
001
 
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000
00110101 100000000 000 0111
000000000
000000001
000000100
000000011
t = Δw + Δx + Δy + Δz:
● A saída do deslocador chega 
até os registradores através do 
barramento C.
ΔxΔw Δy Δz
0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 00 0111000000001
85
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
Bit de
mais alta
ordem
 0 0
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
ULA
 000000000
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR [0x00]
MDR [0x00]
PC [0x00]
LV [0x00]
CPP [0x00]
TOS [0x00]
OPC [0x00]
H [0x01]
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x00] 
SP [0x00]
Flip-flops
 (1 bit cada)
ADDR[8]
...
000
100
000
. . .
. . .
. . .
001
 
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000
00110101 100000000 000 0111
000000000
000000001
000000100
000000011
t = “borda de subida”:
● Registradores carregados com 
o conteúdo do barramento C e 
da memória.
ΔxΔw Δy Δz
0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 00 0111000000001
86
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
Bit de
mais alta
ordem
 0 0
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
ULA
 000000001
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR [0x00]
MDR [0x00]
PC [0x00]
LV [0x00]
CPP [0x00]
TOS [0x00]
OPC [0x00]
H [0x01]
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x00] 
SP [0x00]
Flip-flops
 (1 bit cada)
ADDR[8]
...
000
100
000
. . .
. . .
. . .
001
 
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000
00110101 100000000 000 0111
000000000
000000001
000000100
000000011
t = “intervalo alto do ciclo”:
● MPC é carregado com o 
endereço da próxima 
microinstrução.
ΔxΔw Δy Δz
0 0 0 0 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 00 0111000000001
87
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
Bit de
mais alta
ordem
 0 0
Z
N
J
M
P
C
J
A
M
N
J
A
M
Z
S
L
L
8
S
R
A
1
F
0
F
1
E
N
A
E
N
B
I
N
V
A
I
N
C
H
O
P
C
T
O
S
C
P
P
L
V
S
P
P
C
M
D
R
M
A
R
R
E
A
D
F
E
T
C
H
W
R
I
T
E
Barra-
mento
B
NEXT
ADDRESS
ULA
 000000001
MPC
 
 
MIR - MicroInstruction Register
Decodificador
4 → 16
MAR [0x00]
MDR [0x00]
PC [0x00]
LV [0x00]
CPP [0x00]
TOS [0x00]
OPC [0x00]
H [0x01]
2
2
6
8
8
8
9
4
A BC
Deslocador
3 (Read, Write, Fetch)
3
(Read,
Write,
Fetch)
MBR [0x00] 
SP [0x00]
Flip-flops
 (1 bit cada)
ADDR[8]
...
000
100
000
. . .
. . .
. . .
001
 
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0000000000000
00110101 100000000 000 0111
000000000
000000001
000000100
000000011
t = “borda de descida”:
● Novo MPC é usado para carre-
gar a próxima microinstrução.
● Início do ciclo 2.
ΔxΔw Δy Δz
X X X X X X X X X X X X X X X X X X X X X XX XXXXXXXXXXXXX
88
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
Temporização de Operações com a Memória
● Por razões de simplificação, considera-se que a memó-
ria principal do MIC-1 é capaz de responder, a solicita-
ções de leitura ou escrita, após 1 ciclo de clock.
● Se um registrador de endereço (MAR ou PC) for carre-
gado com o endereço a ser lido no final do ciclo 1 (borda 
de subida), o dado correspondente só estará disponível 
(em MDR ou MBR) no final do ciclo 2.
● Se o dado lido for um opcode na memória de programa, 
ele já poderá ser usado para computar o desvio da próxi-
ma microinstrução (que é feito no intervalo alto do ciclo).
● Caso o dado lido seja um dado na memória de dados, 
ele só poderá ser utilizado no ciclo 3, quando as opera-
ções com os registradores voltam a ocorrer.
89
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
● Exemplo 1: Operação de leitura de um opcode 
na memória principal via PC/MBR:
Ciclo 1 Ciclo 2 Ciclo 3
O valor do endereço 
a ser lido é 
carregado no 
registrador PC
1
O opcode lido é 
carregado da porta 
para o registrador 
MBR
4
O opcode lido em MBR 
já pode ser utilizado 
aqui para determinar a 
próxima microinstrução
5
A memória recebe 
o novo endereço a 
ser lido.
2
A memória disponibiliza 
o dado lido na porta do 
registrador MBR.
3
Ciclo da Memória
90
Circuitos Digitais II – Prof. Marcos Zurita
Temporização
● Exemplo 2: Operação de leitura de um dado na 
memória principal via MAR/MDR:
Ciclo 1 Ciclo 2 Ciclo 3
O valor do endereço 
a ser lido é 
carregado no 
registrador MAR
1
O dado lido é 
carregado da porta 
para o registrador 
MDR
4
O dado lido em MDR 
pode ser utilizado a 
partir daqui
5
A memória recebe 
o novo endereço a 
ser lido.
2
A memória disponibiliza 
o dado lido na porta do 
registrador MDR.
3
Ciclo da Memória
91
Circuitos Digitais II – Prof. Marcos Zurita
Bibliografia
● Andrew S. Tanenbaum, “Organização 
Estruturada de Computadores”, 5a Ed., 
Pearson, 2006.
● J. L. Hennessy & D. A. Patterson, “Arquitetura 
de Computadores - Uma Abordagem 
Quantitativa”, Editora Campus, 2003.
● Willians Stallings, “Arquitetura e Organização 
de Computadores”, 5ª Edição, Pearson, 2003.
● Albert Paul Malvino, “Microcomputadores e 
Microprocessadores”, McGraw-Hill, 1985.
● Herbert Taub, “Circuitos Digitais e 
Microprocessadores”, Mcgranw-Hill, 1984.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37
	Slide 38
	Slide 39
	Slide 40
	Slide 41
	Slide 42
	Slide 43
	Slide 44
	Slide 45
	Slide 46
	Slide 47
	Slide 48
	Slide49
	Slide 50
	Slide 51
	Slide 52
	Slide 53
	Slide 54
	Slide 55
	Slide 56
	Slide 57
	Slide 58
	Slide 59
	Slide 60
	Slide 61
	Slide 62
	Slide 63
	Slide 64
	Slide 65
	Slide 66
	Slide 67
	Slide 68
	Slide 69
	Slide 70
	Slide 71
	Slide 72
	Slide 73
	Slide 74
	Slide 75
	Slide 76
	Slide 77
	Slide 78
	Slide 79
	Slide 80
	Slide 81
	Slide 82
	Slide 83
	Slide 84
	Slide 85
	Slide 86
	Slide 87
	Slide 88
	Slide 89
	Slide 90
	Slide 91

Outros materiais