6. A Unidade de controle do processador do CES

Como já foi visto, UC recebe como entrada os dois bits da saída do RI e o único bit da saída do RC. A UC gera os sete sinais de controle ( EscM, UltC, EscP, EscT, EscC, ZComp e Mais1 ) e emprega um "flip-flop" de estado ( do tipo D ) que recebe como entrada o complemento do sinal UltC. A saída desse "flip-flop" de estado gera um sinal de estado denominado Est1.

O sinal de controle UltC fica ativo no último ciclo de execução de cada instrução. Esse sinal controla os dois multiplexadores e o RI. Desta forma, no último ciclo de execução de cada instrução esquerda do somador sempre recebe o valor armazenado no RD, o RE sempre recebe os quatorze bits menos significativos do valor lido da memória e o RI sempre recebe os dois bits mais significativos do valor lido da memória.

A tabela apresentada a seguir mostra os sinais de controle que devem estar ativos para cada uma das possíveis combinações dos 3 sinais de entrada da UC e do sinal Est1.

Instrução Entradas da UC Operação Sinais de Controle
RI RC Est1 da memória do somador EscM UltC EscP EscT EscC ZComp Mais1
L00X 0Lê só para RDIncrementa RP 0010011
1Lê instruçãoRT = RD 0101010
E01X 0Escrita de RTIncrementa RP 1010011
1Lê instrução--- 01000XX
S10X 0Lê só para RDIncrementa RP 0010X11
1Lê instruçãoRT = RD-RT, RC = vai 0101101
T 110 0Lê instruçãoRP = RD 0110010
1------ XXXXXXX
1 0---Incrementa RP 0010011
1Lê instrução--- 01000XX

A partir dessa tabela é possível construir as expressões lógicas que devem ser implementadas pela UC para gerar cada um desses sete sinais de controle:

Sinal de controle Expressão lógica Implementação
1.EscM I1\ . I0 . Est1\ Nor3a ( I1, I0\, Est1 )
2.UltC ( I1 . I0 . RC\ ) | Est1 Nand2a ( Nand3a ( I1, I0, RC\ ), Est1\ ) )
3.EscP Est1\
4.EscT I0\ . Est1 Nor2a ( I0, Est1\ )
5.EscC I1 . I0\ Nor2b ( I1\, I0 )
6.Zcomp I1\ | I0 | Est1\ Nand3b ( I1, I0\, Est1 );
7.Mais1 ( I1 | Est1\ ) .
( I1\ | I0\ | RC )
Nor2d (  Nor2c ( I1, Est1\ ),
Nor3b ( I1\, I0\, RC ) )

A rede lógica descrita acima produz a seguinte tabela verdade:

Inst. Entradas da UC Sinais de Controle gerados pela UC Ações realizadas
I1 I0 RC Est1 EscM UltC EscP EscT EscC Zcomp Mais1 no somador na memória
L 00X 00010011 RE=RP=RP+1RD=*RE
10101010 RT=RDRE:RI=RD=*RE
E 01X 01010011 RE=RP=RP+1*RE=RT
10100010 RDRE:RI=RD=*RE
S 10X 00010111 RE=RP+1, RC=vaiRD=*RE
10101101 RT=RD-RT, RC=vaiRE:RI=RD=*RE
T 11 0 00110010 RP=RDRE:RI=RD=*RE
10100010 RDRE:RI=RD=*RE
1 00010011 RE=RP=RP+1RD=*RE
10100011 RD+1RE:RI=RD=*RE

 

Desta forma, a UC pode ser implementada empregando:
- um "Flip-flop" do tipo D;
- Duas portas "NAND" com três entradas;
- Duas portas "NOR" com três entradas;
- Uma porta "NAND" com duas entradas;
- Quatro portas "NOR" com duas entradas;

Se o "flip-flop" do tipo D for implementado usando 16 transistores e cada porta lógica do tipo "NAND" ou do tipo "NOR" for implementada usando dois transistores por entrada, o número total de transistores necessários para implementar essa Unidade de Controle será:
16 + 2 x ( 2 x 3 + 2 x 3 + 2 + 4 x 2 ) = 18 + 2 x 22 = 60.

A figura 9 mostra um possível diagrama lógico da UC do processador do CMS.


Figura 9. Diagrama Lógico da Unidade de Controle do processador do CES