Conceitos de Microprogramação

Microarquitetura

Estrutura logica e capacidades funcionais de hardware tal como é visto por um microprogramador.

Microprogramação

É uma estratefia para implementar a unidade de controle de um processador que consiste em programar ao nivel das operacoes de transferencia de registros. 

Unidade de Controle microprogramada

É um circuito lógico que permite realizar a execução em seqüência de um conjunto de instruções muito elementares chamadas de microinstruções.
a Unidade de Controle é formada por
- Memória de Controle (contem as microinstruções)
- Seqüenciador - É o encarregado de manter a ordem correta da execução das microinstruções. Informa o local da próxima microinstrução a ser executada e guarda no contador de microprograma.
- Contador de microprograma: É o registro que armazena a localização da próxima instrução a ser executada. Este loca se decodificara em DEC e selecionara uma posição da memória de controle

 

Formato de uma Micro-instrução

O micro-programa é uma representação simbólica do controle, que deverá ser traduzida por um programa para uma lógica de controle.

O formato da micro-instrução deve ser escolhido de modo a simplificar a representação, tornando o micro-programa mais fácil de entender e de se escrever.

Podemos distinguir que uma micro-instrução é inconsistente sempre que um certo sinal de controle tenha que receber dois valores diferentes.

Para evitar um formato que permita micro-instruções inconsistentes, podemos fazer com que cada campo da micro-instrução seja responsável por especificar um conjunto de sinais de controle que não se sobreponham.

Um exemplo seria: Os primeiros seis campos da micro-instrução controlam o caminho de dados, enquanto o campo de “sequenciamento” especifica como selecionar a próxima micro-instrução.

 

1º campo

Controle da UAL

Especifica a operação a ser realizada pela UAL neste ciclo de clok. O resultado é sempre escrito em UALSaida

2º campo

SRC1

 

Especifica a fonte do primeiro operando da UAL

3º campo

SRC2

Especifica a fonte do segundo operando da UAL

4º campo

Controle de registrador

Especifica um leitura ou escrita no banco de registradores, e a fonte do valor a ser escrito.

5º campo

Memória

Especifica uma leitura ou uma escrita na memória, e a fonte. No caso de uma leitura, especifica o registrador de destino.

6º campo

Controle de PCEsc

 

Especifica a escrita do PC

7º campo

Sequenciamento

 

Especifica como escolher a próxima micro-in-trução a ser executada.


As micro-instruções são geralmente colocadas em uma ROM ou em uma PLA e são utilizadas para implementar o controle.

Podemos atribuir os endereços às micro-instruções, os endereços costumam ser dados em seqüência.

Existem disponíveis três métodos para a escolha da próxima micro-instrução:
Incrementar o endereço da micro-instrução corrente, para assim obtermos o endereço da próxima.
Desviar para a micro-instrução que começa a execução da próxima instrução. Colocamos um indicador no campo de sequenciamento para indicar qual a próxima instrução
Escolher a próxima micro-instrução com base na entrada da unidade de controle. Esta escolha também é chamada de “despacho”. Na maioria das vezes as operações de despacho são implementadas a partir da criação de uma tabela que contenha os endereços das micro-instruções alvo. Podemos implementar estas tabela em uma Rom ou em uma PLA.

Microinstrução
É uma palavra da ROM que contém micro-operações de controle.

Micro-operação
É o sinal digital que atua no controle.

Memória de Controle:
Memória ROM que armazena o microprograma

Microprograma
É o conjunto de microinstruções que executa o controle

Microrotina
É o conjunto de microinstruções que executa uma função específica no microprograma.

Sequenciador

É um circuito responsável por informar a localização da próxima microinstrução que será executada a partir da microinstrução atual, o indicador de condição e o código da operação do registro de instruções.

Ele é encarregado de direcionar a memória do microprograma baseando-se no contador de microprograma. O Contador de microprograma é um registro que se incrementa com um relógio interno, mas que depende dos registros de estado e instrução  e de alguns bits do registro da micro palavra. Em algumas situações determinadas toma valores preestabelecidos (RESET, INTERRUPT, HOLD, etc.)

[Voltar]