2. Os multiplexadores do processador do CES

MD é um multiplexador de 16 bits com duas entradas que seleciona o valor que será usado na entrada esquerda do somador. A entrada direita do MD recebe a saída do RD e os quatorze bits menos significativos da entrada esquerda do MD recebem a saída do RP. Os dois bits mais significativos da entrada esquerda do MD recebem o valor zero. O MD é controlado pelo sinal de controle UltC. Quando este sinal de controle estiver ativo, a entrada esquerda do somador recebe o valor proveniente da saída do RD.

ME é um multiplexador de 14 bits com duas entradas que seleciona o valor que será armazenado no RE. A entrada esquerda do ME recebe os quatorze bits menos significativos produzidos pelo somador e a entrada direita do ME recebe os quatorze bits menos significativos da via de dados do barramento. O ME também é controlado pelo sinal de controle UltC. Quando este sinal estiver ativo, a entrada do RE recebe o valor proveniente dos quatorze bits menos significativos da via de dados do barramento.

Como os dois multiplexadores são controlados pelo sinal UltC e este sinal só fica ativo no último ciclo da execução das instruções, no primeiro ciclo da execução das intruções que usem mais de um ciclo de relógio a entrada esquerda do somador vai receber o valor presente na saída do RP e o RE vai receber o valor produzido pelo somador. Por esta mesma razão, no último ciclo da execução das instruções a entrada esquerda do somador vai receber o valor presente na saída do RD e o RE vai receber o valor proveniente dos quatorze bits menos significativos da via de dados do barramento.

A figura 4 mostra uma implementação empregando portas de transmissão de um multiplexador de duas entradas de um bit com saída complementada e sinais de entrada de seleção direto e complementado. Para implementar um multiplexador de duas entradas de n bits é necessário empregar n elementos deste tipo. Desta forma, MD pode ser implementado usando 16 elementos deste tipo e ME pode ser implementado usando 14 elementos deste tipo. Como cada multiplexador de um bit emprega 6 transistores, serão necessários ( 16 + 14 ) x 6 = 180 transistores para implementar esses dois multiplexadores.


Figura 4. Multiplexador de duas entradas de um bit

O fato das saída destes multiplexadores ser complementada pode ser contornado de duas diferentes formas: invertendo as duas entradas do multiplexador ou invertendo a saída do multiplexador. No caso do MD, as duas entradas do multiplexador são obtidas nas saídas de registradores ( RD e RP ). Como esses registradores são implementados usando "flip-flops" que tem saída "Q" e "Q\", as duas entradas de MD podem ser invertidas tomando as saídas desses registradores das saídas "Q\" dos respectivos "flip-flops". No caso do ME, a inversão causada pelo multiplexador pode ser compensada na saída do multiplexador, que é ligada à entrada de RE. Isto pode ser conseguido fazendo RE armazenar efetivamente o complemento do valor que ele deveria armazenar e tomando a saída de RE das saídas "Q\" dos "flip-flops" que formam esse registrador.

Para gerar os sinais de seleção diretos e invertidos necessários para controlar esses multiplexadores é necessário empregar um par de "buffers" inversores para cada conjunto de oito elementos multiplexadores. Desta forma, tanto MD como ME precisam usar dois pares de "buffers" inversores. Como cada "buffer" inversor pode ser implementado empregando dois transistores, para implementar os quatro pares de inversores serão necess´rios 4 x 2 x 2 = 16 transistores. Portanto, os dois multiplexadores podem ser implementados empregando 180 + 16 = 196 transistores.