:: Organização de Computadores II ::






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 >>