Unidade de Controle Microprogramada

Propaganda
Unidade de Controle
Microprogramada
1
UC Microprogramada
UC Microprogramada
!   Sinais de controle são gerados por um programa (flexibilidade, mesmo hw)
em vez de diretamente a partir de portas lógicas com na UC Hardwired
!   Elementos básicos
Ø Palavra de controle: sequência de bits que representam os diversos
sinais de controle
Ø Microrotina: sequência de palavras de controle que constitui uma
instrução de máquina
Ø Microinstrução: uma determinada palavra de controle dentro de uma
microrotina
Ø Memória de controle: memória onde são armazenadas todas as
microinstruções de todas as microrotinas
2
UC Microprogramada
Microrotina
3
UC Microprogramada
Princípio de funcionamento
!   A UC pode gerar os sinais de controle, lendo sequencialmente as
palavras de controle da microrotina correspondente que ficam
armazenadas na memória de controle
Organização básica de uma
UC microprogramada
Usado para ler
sequencialmente as
Control Word (CW)
4
UC Microprogramada
Princípio de funcionamento
!   A partir do código da instrução, o gerador de endereço inicial carrega o
µPC com o endereço de início da microrotina na memória de controle
!   O relógio (Clock) incrementa o µPC para gerar os próximos sinais de
controle
Contador de
microprograma
Organização básica de uma
UC microprogramada
5
UC Microprogramada
Suporte à execução condicional
!   A organização básica da UC microprogramada deve ser alterada para
introduzir verificações a códigos de condição e flags de estado
!   Conj. de microinstruções expandido p/ incluir microinstruções de desvio
Novo PC
Teste de N códigos de condição
6
UC Microprogramada
Suporte à execução condicional
!   Além do endereço de desvio, as microinstruções devem indicar quais
códigos de condição e flags de estado devem ser testados
7
UC Microprogramada
Situações de modificação do µPC
!   A cada execução de uma microinstrução
Ø O µPC é incrementado pelo relógio (clock)
!   Quando a microinstrução “End” é encontrada
Ø O µPC é zerado (reset)
!   Quando uma nova instrução é carregada no RI
Ø O µPC é carregado com o endereço de início da microrotina
associada àquela instrução
!   Quando uma microinstrução de desvio é encontrada e a condição de
desvio é satisfeita
Ø O µPC é carregado com o endereço de desvio
8
UC Microprogramada
Agrupando as microinstruções
!   Microinstruções podem ser implementadas de forma direta associandose um bit da palavra de controle para cada sinal de controle
!   Esta abordagem resulta em microinstruções longas
Ø Em uma CPU de um barramento e quatro registradores de uso geral
pode-se chegar a palavras de controle com 42 bits de comprimento
Ø Poucos bits são ligados em cada microinstrução, resultando em uma
memória de controle esparsamente preenchida
!   O tamanho das microinstruções pode ser reduzido através do
agrupamento de sinais de controle
Ø Muitos sinais não são necessariamente simultâneos
9
UC Microprogramada
Agrupando as microinstruções
!   Os sinais de controle mutuamente exclusivos são agrupados e
codificados usando uma quantidade menor de bits
Ø Ex.: uma ALU com 16 funções (soma, subtr.,..., and, xor) requer 4
bits para codificar a operação desejada
Ø No máximo 1 elemento da CPU de um barramento pode colocar seu
conteúdo no barramento por vez
!   O agrupamento de bits reduz o tamanho da memória de controle mas
requer hardware decodificador adicional
Ø Custo é recompensado por reduzir o número de bits em cada
microinstrução, resultando no menor armazenamento de controle
10
Possível organização: 20 bits e 42 sinais
Exemplo parcial de uma microinstrução codificada em campos
11
UC Microprogramada
Uso eficiente da memória de controle
!   Desenvolver uma microrotina para cada instrução de máquina torna-se
simples a partir da estrutura de UC microprogramada vista, mas
apresenta duas desvantagens:
Ø Uma microrotina separada para cada instrução de máquina e seus
diversos modos de endereçamento requer muito espaço na
memória de controle e um grande número de microinstruções, além
de duplicação de partes comuns
Ø Tentar compartilhar as partes comuns do código implica em inserir
muitas instruções de desvio, o que deixa a execução lenta
12
UC Microprogramada
Considere a seguinte instrução de máquina: ADD Rsrc, Rdst
!   Soma o conteúdo do operando fonte (Rsrc) com o conteúdo do
operando destino (Rdst) e armazena o resultado no operando destino
Ø O operando fonte pode ser especificado nos seguintes modos de
endereçamento
§  Registrador (operando disponível no registrador: mov ax, bx)
§  Autoincremento (endereço do registrador e incrementa: [R4]+ )
§  Autodecremento (decrementa e endereço do registrador: -[R4] )
§  Indexado ( X[R] ou seja Aef = X + R )
Ø É possível ocorrer ainda a forma de acesso indireto em todos estes
modos (modo “ponteiro”): add [a], R ou add [R1], R2
13
Busca
Representação
octal de 3 bits
Fluxograma
Bit-ORing (p/ modo de endereçamento)
Programmable
Logic
Array
Bit-ORing (p/ tipo de endereçamento)
Indireto
Direto
Indireto
ou direto?
Bit-ORing
Usa porta OR p/ alterar o bit
menos significativo do endereço
14
ADD (Rsrc)+, Rdst
11:
10:
01:
00:
Indexado
Autodecremento
Autoincremento
Modo Registrador
0: Direto
1: Indireto
24 = 16 registradores gerais
Registrado indireto
Atribuído diretamente
Obs.: para melhor entendimento, estão sendo mostrados sinais efetivos ao invés de padrões de bits 15
11:
10:
01:
00:
ADD (Rsrc)+, Rdst
Indexado
Autodecremento
Autoincremento
Modo Registrador
0: Direto
1: Indireto
diretamente
Base 83 = 512
Base 10
Posição em µPC à
8
7
6
5
4
3
2
1
0
1
7
0
0
0
1
1
1
1
0
0
0
1
7
1
0
0
1
1
1
1
0
0
1
64
32
16
8
4
2
1
=
120
121
=
Valor do bit binário à
X
Base 29 = 512
256 128
1
0
1
65
0
0
1
0
0
0
0
0
1
1
1
1
73
0
0
1
0
0
1
0
0
1
1
2
1
0
0
1
0
1
0
0
0
1
1
4
1
97
0
0
1
1
0
0
0
0
1
1
6
1
113
0
0
1
1
1
0
0
0
1
=
81
Endereço 101 é obtido através de PLA
=
16
UC Microprogramada
Redução do número de desvios no microprograma
!   Conforme visto, o número de desvios internos ao microprograma pode
ser muito elevado causando perda de eficiência da arquitetura
!   Reavaliando o modelo de UC microprogramada visto percebe-se que o
tratamento de desvios é necessário em função da existência do µPC
!   Uma alternativa mais poderosa seria eliminar o µPC, incluindo um
campo de endereço como parte de toda microinstrução
!   O µPC é substituído por registrador de endereços de microinstruções
(µAR) que armazena endereço da próxima microinstrução a ser buscada
17
UC Microprogramada
Exemplo de UC
microprogramada com
campo de próximo endereço
18
UC Microprogramada
F0: Endereço da próxima instrução com 8 bits
O sinal END, que era usado para iniciar µPC, é
substituído pelo endereço 0008 em starting address (F0)
Bit-ORing
F10: ORmode
(modo de endereçamento)
F11: ORindsrc
(tipo de endereçamento)
Microrotinas
19
UC Microprogramada
Diagrama detalhado do circuito
que gera os sinais de controle
Os sinais de controle podem ser decodificados
a partir dos campos de microinstrução e usados
para controlar a sequência de passos
Rdst e Rsrc de entrada e saída são
decodificados para os 16 registradores
20
Download