3. A Unidade de controle ( UC ):

A Unidade de Controle gera diretamente 32 sinais de controle de primeiro nível ( sinais de controle primários ). Esses sinais de controle são obtidos na saída de uma trava de dados ( "latch" ) de 32 bits cuja entrada está diretamente ligada às vias de dados da memória de controle. A entrada dessa trava de dados fica habilitada durante a primeira metade do ciclo do relógio.

Essa trava de dados de 32 bits é necessária porque o RI, que fornece o endereço da memória de controle, é atualizado durante a segunda metade do ciclo de relógio para permitir que a memória de controle seja lida no final do ciclo de relógio anterior àquele em que os sinais de controle lidos serão efetivamente empregados. O emprego dessa trava de dados permite que os sinais de controle primários continuem disponíveis durante a segunda metade do ciclo de relógio, quando uma outra posição da memória de controle já estará sendo lida.

Alguns sinais de controle podem ser empregados para fornecer um valor que vai para uma das entradas do RI. Para permitir que isso ocorra, existe um multiplexador de dez bits com duas entradas cuja saída é encaminhada à primeira entrada do RI. A saída desse multiplexador pode ser destivada. Quando isso acontece, todos os bits com exceção do penúltimo ficam zerados e o penúltimo bit fica com valor um, ou seja, o valor binário 01.0000.0000 é encaminhado à primeira entrada do RI.

Os 32 sinais de controle são organizados em nove grupos ( denominados P, Q, R, S, T, U, X, Y e Z ) de acordo com a seguinte tabela:

Tabela 3.1. Sinais de controle primários gerados pela UC

# Grupo Nome do Sinal Função Destino dos Sinais Entradas
do mux
de RI
001. PP0 Só são empregados como entrada para
os sete bits menos significativos do RI
UC,
RI
e X

Bit 0

 

 

Primeira Entrada
( 10 bits )

 

 

Bit 9
01P1
02P2
03P3
04P4
05P5
06P6
072. QQ0 Bit menos significativo da constante imediata Constante
Imediata
08Q1 Valor do indicador que atende à condição
09Q2 Seleciona o vai um invisível para ser testado
0AQ3 Indica que uma condição será testada  
0B3. R R0Controle da geração de endereços

ENDER,
RD, RI e

BARRA-
MENTO EXTERNO

0CR1
0DR2
0E4. SS0 Seleciona o tipo de operação ( Leitura ou Escrita )
e a fonte ou destino dos dados nas operações de leitura
0FS1
105. TT0 Indica que a memória será usada na operação
116. U U0 Selecionam a operação da ULA

ULA

e

RI

12U1

Bit 0

 

 

Segunda Entrada
( 10 bits )

 

 

Bit 9
13U2
14U3
15U4
167. XX0 Controlam a entrada X da ULA
17X1
18X2
198. Y Y0 Controlam a entrada Y da ULA
1AY1
1BY2
1C 9.ZZ0 Geralmente seleciona um dos registradores
para receber o valor produzido pela ULA.
Porém, se o registrador selecionado for o RI,
os valores dos 10 bits mais significativos do resultado da concatenação dos valores dos sinais dos grupos Y, X e U serão enviados ao RI, através de sua terceira entrada.
TODOS OS REGIS-
TRADORES
 
1DZ1
1EZ2
1FZ3

Como pode ser visto nessa tabela, os sete sinais de controle do grupo P só são usados para fornecer os sete bits menos significativos da primeira entrada do multiplexador cuja saída está ligada à primeira entrada do RI. Os quatro sinais de controle do grupo Q podem ser usados para fornecer os outros três bits da primeira entrada desse multiplexador ( sinais Q0, Q1 e Q2 ), para especificar uma condição a ser testada ( sinais Q1, Q2 e Q3 ) ou para fornecer o valor de uma constante imediata de quatro bits.

Os seis sinais de controle dos grupos R, S e T controlam a geração de endereços e a operação do barramento externo ao processador e os 15 sinais dos grupos U, X, Y e Z controlam as atribuições de valores a registradores e as operações da ULA.

3.1. As entradas do multiplexador de duas entradas de dez bits cuja saída fornece o valor que é encaminhado à primeira entrada do RI: O valor de dez bits obtido através da concatenação dos sete sinais de controle dos grupos P com três dos sinais de controle do grupo Q ( Q0, Q1 e Q2 ) geralmente é encaminhado para a primeira entrada desse multiplexador e os dez bits mais significativos do valor obtido através da concatenação dos sinais de controle dos grupos Y, X e U são sempre encaminhados para a segunda entrada desse multiplexador. No caso de serem empregadas constantes imediatas ou operações condicionais, os sinais de controle do grupo Q são empregados para outras finalidades e os dois ou três bits mais significativos da primeira entrada desse multiplexador não podem ser obtidos a partir desses sinais de controle: No caso do uso de operações condicionais, os sinais de controle Q1 e Q2 especificam a condição que será testada e os dois bits mais significativos da primeira entrada desse multiplexador recebem o valor 01 ( zero no bit mais significaivo e um no outro bit ); Quando são empregadas contantes imediatas, os sinais de controle Q0, Q1 e Q2 são usados para especificar os três bits menos significativos da constante imediata e os três bits mais significativos da primeira entrada desse multiplexador recebem o valor 010.

3.2. Constantes imediatas: Os sinais de controle do grupo Q podem ser usados para fornecer uma constante imediata de quatro bits. Essa constante imediata será empregada quando pelo menos um dos quatro sinais de controle do grupo Z estiver zerado e os três sinais de controle do grupo X formarem um valor maior que cinco ( i.e., os sinais de controle X1 e X2 estiverem simultaneamente ativos ). Ou seja, uma constante imediata será usada se X1.X2.(Z0\|Z1\|Z2\|Z3\).

3.3. Operações condicionais: Os sinais de controle Q1 e Q2 podem ser usados para especificar uma condição a ser testada. Essa condição será empregada quando não estiver sendo usada uma constante imediata e o sinal de controle Q3 estiver ativo. Ou seja, uma operação será condicional se (Q3.X1\)|(Q3.X2\)|(Q3.Z0.Z1.Z2.Z3).

3.4. Seleção da entrada do multiplexador de duas entradas cuja saída é encaminhada à primeira entrada do RI que será empregada: Se pelo menos um dos sinais de controle do grupo Z estiver inativo ou for usada uma condição e a condição especificada não estiver atendida, a entrada selecionada será a primeira. Caso contrário, i.e, se todos os sinais de controle do grupo Z estiverem ativos e não for usada uma condição ou a condição especificada estiver atendida , a segunda entrada será selecionada.

3.5. Seleção da entrada da trava de dados que implementa o RI que será utilizada: Durante a segunda metade de cada ciclo de relógio a trava de dados usada para implementar o RI recebe o valor presente em uma de suas duas entradas. Se os sinais de controle dos grupos S e T especificaram a realização de uma leitura de valor da memória para ser colocado em RI e não for usada uma condição ou a condição especificada não estiver atendida, o indicador EX é examinado. Se esse indicador estiver ativo, a segunda entrada dessa trava de dados é empregada, permitindo que essa trava de dados receba um valor que está sendo lido da memória. Se o indicador EX estiver inativo, a primeira entrada da trava escrava do RI é empregada e o multiplexador cuja saída está ligada a essa entrada tem sua saída desativada, o que permitirá que o valor binário 01.0000.0000 seja encaminhado ao RI. Por outro lado, se os sinais de controle dos grupos S e T não especificaram a leitura de um valor da memória para ser colocado no RI ou for usada uma condição e a condição especificada for atendida, a primeira entrada da trava usada para implementar o RI é empregada.

3.6. Seleção da condição a ser testada: Quando uma condição for empregada, a geração dos sinais de controle dos grupos R, S, T, U e Z será condicionada pelo estado de um indicador. O indicador cujo estado será examinado é especificado pelo sinal de controle Q2. Quando esse sinal está ativo, o estado do indicador VI ( vai um invisível ) é examinado e quando esse sinal não está ativo, o estado do indicador ZI ( Zero invisível ) é examinado. A condição estará atendida se o estado do indicador selecionado pelo sinal de controle Q2 for igual ao valor do sinal de controle Q1.

3.7. Geração dos sinais de controle condicionadas pelo estado de um indicador: Quando a condição especificada estiver atendida ficarão desativados todos os sinais de controle dos grupos R, S e T, o que vai inibir qualquer incrementação ou decrementação de endereços e também a conclusão de operações de leitura no barramento da memória e das interfaces de periféricos ( mas não vai inibir eventuais operações de escrita através barramento! ). Por outro lado, se a condição não estiver atendida, ficarão desativados os sinais de controle dos grupos U e Z, o que vai inibir o funcionamento da ULA e a atribuição de valores a registradores. Desta forma, se a condição for atendida serão realizadas apenas a operação da ULA e a atribuição de valor a um registrador enquanto que se a condição não for atendida, apenas as operações de leitura do barramento externo ao processador poderão ser efetuadas. Eventuais operações de escrita sobre a memória ou sobre a interface do periférico serão sempre realizadas incondicionalmente.

3.8. Resumo dos formatos das palavras de controle: A tabela abaixo apresenta um resumo dos quatro formatos que as palavras de controle podem empregar:

Tabela 3.2. Formatos das palavras de controle
Grupos de sinais de controle
Formato Situações em que
é empregado
P
( 7 bits )
Q R, S e T
( 6 bits )
U, X e Y
( 11 bits )
Z ( 4 bits )
Q0Q1Q2Q3
1. NormalQ3\.(X1\|X2\).
(Z0\|Z1\|Z2\|Z3\)
vão para a o RI0 Selecionam um par de registradores para receber um endereço
e um registrador para receber um dado lido através do barramento externo
Controlam as entradas e a operação da ULA Selecionam o registrador que receberá a saída da ULA
2. Com constante
imediata
X1.X2.
(Z0\|Z1\|Z2\|Z3\)
vão para
o RI
Constante
Imediata
3. Operação CondicionalQ3.(X1\|X2\).
(Z0\|Z1\|Z2\Z3\)
vão para o RI C
O
N
D
I
Ç
Ã
O
1 Selecionam um par de registradores para receber um endereço
e um registrador para receber um dado lido através do barramento externo
se a condição não estiver atendida.
Selecionam o registrador que receberá a saída da ULA, se a condição estiver atendida
4. Desvio CondicionalQ3.Z0.Z1.Z2.Z3 vão para o RI
se a condição não estiver atendida
vão para o RI
se a condição estiver atendida
1 1 1 1
5. Desvio incondicional ( inútil )Q3\.Z0.Z1.Z2.Z3 não são usados0 não são usados vão para o RI