Unidade de Controle
A função da UC é interpretar as microinstruções do microprograma.
Ela é esponsável por gerar todos os sinais que controlam as operações no exterior do CPU, e ainda por dar todas as instruções para o correcto funcionamento interno do CPU; a apoiá-la/o terá a colaboração de uma outra estrutura/actor (o decodificador de instruções).
Segundo vimos o modelo de Von Neumann:
busca, decodifica executa microinstruções.
Além disso na unidade de controle está o gerador de subciclos do relógio: circuito que gera quatro
subciclos do relógio utilizados para temporizar a microinstrução.
Também temos a Memória de Controle (ROM) que armazena
microinstruções do microprograma, endereçada a partir de Registrador Contador de
Microprograma (MPC).
Outros componentes:
· Saída para Registrador de Microinstrução (MIR).
· Contador de Microprograma (MPC) - Registrador de 8 bits:
endereça memória de controle. Armazena ponteiro que aponta
para a próxima microinstrução a ser executada.
· Saída sempre habilitada para entrada de endereços da memória
de controle.
· Entrada a partir de Incrementador ou de campo ADDR de
Registrador de Microinstrução, de acordo com lógica de
microsseqüenciamento.
· Registrador de Microinstrução (MIR) - Registrador de 32 bits:
armazena microinstrução corrente a partir da memória de
controle. Saída para as diversas linhas de controle da CPU.
· Lógica de Microsseqüenciamento: de acordo com as entradas N e
Z (da ALU) e COND (campo COND do MIR) controla
atualização do MPC. Permite implementar desvios no
microprograma.
· Mmux - Micro Multiplexador: recebe como entradas a saída do
Incrementador e o campo ADDR do MIR. De acordo com a
lógica de microsseqüenciamento, seleciona uma delas para
escrever no PC.
· Incrementador: recebe como entrada o conteúdo do MPC e
fornece como saída o seu valor incrementado, o qual alimenta
uma das entradas do multiplexador Mmux.
· Decodificadores A, B e C: recebem como entrada os campos A, B
ou C do MIR e geram sinais de seleção para leitura ou escrita de
registradores da memória de rascunho por barramento A, B ou C.
Vejamos então como fica o desenho da Unidade de Controle interligada a Via de Dados:
Funcionamento:
As microinstruções do microprograma são interpretadas pelo
hardware da Unidade de Controle.
· A interpretação de uma microinstrução corresponde à execução
de um ciclo de máquina no caminho de dados da CPU.
· O ciclo de busca-decodificação-execução de microinstruções é
temporizado por subciclos do relógio.
· No exemplo de microarquitetura, quatro subciclos são utilizados:
1. A próxima microinstrução a ser executada, apontada pelo
MPC, é carregada no MIR.
2. Os dados endereçados na memória de rascunho, disponíveis
nos barramentos A e B, são armazenados nos Latches A e B.
3. Com dados estáveis nas suas entradas, a ULA e o deslocador
utilizam este subciclo para produzir um resultado e
disponibilizá-lo na sua saída. Se requisitado, neste mesmo
subciclo, o MAR é carregado a partir do Latch B.
4. Com dados estáveis na saída do deslocador, estes podem ser
carregados na memória de rascunho (através do barramento C)
e/ou no MBR (através da via de saída de dados), se
requisitado. Em ciclos de leitura ou escrita, os sinais RD ou
WR são aplicados durante este subciclo.
· Busca da microinstrução: no primeiro subciclo, o valor apontado
por MPC é carregado no MIR.
· Decodificação da microinstrução: os campos da microinstrução
que possuem alguma codificação são decodificados pelo
hardware correspondente. (Exemplo: os campos A, B e C, de
endereço de memória de rascunho, são decodificados por
decodificadores 4 para 16).
· Execução da microinstrução: Os sinais de controle resultantes da
decodificação são aplicados na seqüência adequada e no instante
apropriado, de acordo com os subciclos do relógio,
implementando um ciclo de máquina no caminho de dados.
Bem, sabemos que um programa não é escrito (pelo programador) em microarquitetura. Vamos conhecer um pouco da macroinstruções e como se dá a "transformação" para a micro.
Continua >>