Introdução
• Projeto baseado em HW para a Unidade deControle
– Difícil
• Lógica relativamente complexa para seqüenciamento eexecução de microoperações e interpretação doscódigos de condição
– Inflexível
• Necessário alterações no projeto para a inclusão deuma nova instrução de máquina
– Projeto alternativo: Unidade de Controlemicroprogramada
2
Microinstruções
Temporização Sinais de controle
ativosCiclo
t1: MAR ← PC C2
Busca t2: MBR ← Memória
PC ← PC + 1C5, CR
t3: IR ← MBR C4
t1: MAR ← IR(Endereço) C8
Indireto t2: MBR ← Memória C5, CR
t3: IR(Endereço) ← MBR(Endereço) C4
t1: MBR ← PC C1
Interrupção t2: MAR ← End. Salvamento
PC ← Endereço de Rotina
t3: Memória ← MBR C12, CW
µInstruções
3
Microinstruções
• µI horizontal
Endereço de µI
Condição de desvio• incondicional• zero• overflow• bit de indireção
Sinais de controle para o Barramento do sistema
Sinais de controle Internos ao µP
4
Microprograma
• Termo usado pela primeiravez por Maurice VincentWilkes na década de 50
• Conjunto de µIs
• Armazenado numa memóriade controle
• Constitui-se numa forma deimplementar a Unidade deControle
6
Memória de Controle
Desvie para ciclo de busca ou interrupção
Desvie para ciclo de indireção ou de execução
Desvie para ciclo de execução
Desvie para ciclo de busca
......
......
Desvie para a rotina do código de operação
Desvie para ciclo de busca ou de interrupção
Desvie para ciclo de busca ou de interrupção
......
...
...
Rotina do ciclo de busca
Rotina do ciclo de indireção
Rotina do ciclo de interrupção
Rotina da operação AND
Rotina da operação ADD
Rotina da operação IOF
Inicio da rotina do ciclode execução
7
Arquitetura da Unidade de Controle
Registrador de Endereço de Controle (CAR)
Registrador de µI (CBR)
Memória de Controle
Lógica de seqüenciamento
1
1
2
2
8
Unidade de Controle
Arquitetura da Unidade de Controle
Registrador de Endereço de Controle (CAR)
Registrador de µI (CBR)
Memória de Controle
Lógica de seqüenciamento
Decodificador
Decodificador
Registrador de Instrução (IR)
Sinais de controle Internos ao µP
Sinais de controle para o barramento do sistema
Leitura
relógio
Bits de condiçãoda ULA
9
Vantagens e Desvantagens
• Vantagem
– Relativa simplicidade
• Controle microprogramado é utilizado em máquinasCISC
• Desvantagem
– Relativa lentidão
• Implementação por HW é utilizada em máquinas RISC
10
Seqüenciamento de Microinstruções
• Na execução de um programa, o endereço dapróxima µI pode ser:
1. Determinado pelo IR
• Ocorre sempre que a instrução é buscada
2. O próximo endereço na seqüência
• Ocorrência mais comum
3. Um endereço de desvio
11
Seqüenciamento de Microinstruções
• Com base na µI atual, nos bits de condição e noconteúdo do IR, deve ser gerado o endereço dapróxima µI na Memória de Controle
• Técnicas utilizadas– Explícitas
• Dois campos de endereço
• Um único campo de endereço
• Formato variável
– Implícitas• Mapeamento
• Adição
• Controle residual12
Dois Campos de Endereço
Controle Endereço
1Endereço
2
Multiplexador Lógica
de Desvio
...
IR
Memória de Controle
Decodificador de endereço
CAR
Seleção de endereço
CAR: Registrador de Endereço de ControleCBR: Registrador de µIIR: Registrador de Instrução
Bits de condição
CBR
13
Único Campo de Endereço
Controle Endereço
Multiplexador Lógica
de Desvio
...
IR
Memória de Controle
Decodificador de endereço
CAR
Seleção deendereço
CAR: Registrador de Endereço de ControleCBR: Registrador de µIIR: Registrador de Instrução
CBR
Bits de condição
+1
14
Formato Variável
Multiplexador
Lógica de
DesvioIR
Memória de Controle
Decodificador de endereço
CAR
Seleção deendereço
CAR: Registrador de Endereço de Controle
CBR: Registrador de µIIR: Registrador de Instrução
CBR
Bits de condição
+1
Campo deendereçoCampo de
controle dedesvio Lógica de
geração desinais decontrole
Campo completo
Habilitação
15
Mapeamento
• Porção correspondente ao código de operaçãode uma instrução de máquina é mapeada emum endereço de µI
Op #02 ...
Decodificador de Endereço
IR
Busca
Indireção
Interrupção
Execução Op #01
Execução Op #02
Execução Op #03
Execução Op #04
...Execução Op #N
16
Registrador de Endereço de Controle (CAR)
Adição
• Combinação (ou soma) de duas porções deum endereço para formar o endereçocompleto
00 07 08 09 10 11 12
BB(4)
BC(4)
BD(4)
BE(4)
BF(7)BA(4)
17
Controle Residual
• Envolve o uso de um endereço de µI quetenha sido armazenado anteriormente
CAR
CBR
Memória de Controle
Registrador de Retorno
Bit indicadorde subrotina
18
Execução de MicroInstruções
• O ciclo de µI é o evento básico de umprocessador microprogramado
• Consiste de duas partes: busca & execução
• A porção de busca é determinada peloendereço de µI
• Ao fim da execução, são gerados sinais decontrole que:– Abrem/fecham circuitos internos ao processador
– Abrem/fecham externos ao processador
– Ajudam a definir o endereço da próxima µI19
Execução de Microinstruções
20
Unidade de Controle
Registrador de Endereço de Controle (CAR)
Registrador de µI (CBR)
Memória de Controle
Lógica de seqüenciamento
Lógica de controle
Registrador de Instrução (IR)
Sinais de controle Internos
Sinais de controle externos
relógio
Bits de condiçãoda ULA
Taxonomia de Microinstruções
• Classificações possíveis para as µI
– Verticais ou horizontais
– Empacotadas ou não-empacotadas
– Microprogramadas por HW ou por SW
– Codificadas diretamente ou indiretamente
• Sobre as classificações
– Dizem respeito ao formato das µI
– Dão uma idéia sobre as alternativas de projeto dasµI
21
Taxonomia de Microinstruções
• Proposta original de Wilkes– Cada bit da µI produzia um sinal de controle ou um bit
de endereço da próxima µI
– K bits destinados à geração de sinais de controleapresentariam 2K padrões de bits diferentes
– Nem todas as combinações possíveis podem serutilizadas• Duas origens não podem ser dirigidas para um mesmo
destino
• Um registrador não pode ser origem e destinosimultaneamente
• Apenas um padrão de bits pode ser apresentado à ULA ouao barramento de sistema em cada instante
22
Taxonomia de Microinstruções
23
MBR
MAR
PC IR
AC
ULA
Unidadede
Controle
relógio
Sinais decontrole
Códigos decondição
Sinais decontrole
C0 C2C13
C6
C7 C9
C12
C5
C8 C1 C3 C4
C10
C11
Taxonomia de Microinstruções
24
MBR
MAR
PC IR
AC
ULA
Unidadede
Controle
relógio
Sinais decontrole
Códigos decondição
C0 C2C13
C6
C7 C9
C12
C5
C8 C1 C3 C4
C10
C11
Sinais decontrole
Taxonomia de Microinstruções
• Codificação mais compacta
– Todas as Q combinações permitidas. Q < 2K
– Combinações codificadas usando log2Q bits, ondelog2Q < K
• Na prática, as Unidades de Controle não sãoprojetadas usando um formato de µIhorizontal ou vertical puro
– Algum grau de codificação é usado para reduzir aMemória de Controle e simplificar amicroprogramação
25
Extremos do Espectro de Projeto de µI
CARACTERÍSTICAS
Não codificada Altamente codificada
Muitos bits Poucos bits
Visão detalhada do HW Visão agregada do HW
Difícil de programar Fácil de programar
Concorrência explorada completamenteConcorrência não explorada
completamente
Pouca ou nenhuma lógica de controle Lógica de controle complexa
Execução rápida Execução lenta
Otimiza o desempenho Otimiza a programação
26
Codificação Direta
27
Campo Campo Campo
Lógica de decodificação
Lógica de decodificação
Lógica de decodificação
Sinais de controle
... ... ...
......
Codificação Indireta
28
Campo Campo Campo
Lógica de decodificação
Lógica de decodificação
Lógica de decodificação
Sinais de controle
... ...
......
Lógica de decodificação
Codificação Funcional e Por Recursos
• Codificação Funcional
– Identifica as funções da máquina e designacampos para cada tipo de função
• Um campo pode identificar qual será a origem dosdados que serão transferidos para o acumulador
• Codificação Por Recursos
– Vê a máquina como consistindo de um conjuntode recursos independentes e designa um campopara cada um deles (E/S, memória, ULA, etc)
29
Repertório de µI Verticais
30
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 1 0
Seleção deregistrador
Transferências simples entre registradores
MDR ← Registrador
Registrador ← MDR
MAR ← Registrador
Operações de Memória
0 0 1 0 0 0 0 0 Leitura
0 0 1 0 0 1 0 0 Leitura
0 1 0 0 0 0 0 0
0 1 0 0 0 1 0 0
0 0 0 0 1 0 0 0
Transferências simples entre registradores
CSAR ← MDR decodificado
CSAR ← Constante (no próximo Byte)
Saltar µI
0 1 1 0 0 0
0 1 1 0 0 1
0 1 1 0 1 0
Operações da ULA
ACC ← ACC + Registrador
ACC ← ACC - Registrador
ACC ← Registrador
0 1 1 1 0 0
Seleção deregistrador
ACC ← Registrador + 1
0 1 1 0 1 1 Registrador ← ACC