Você está na página 1de 4

Um Computador Extremamente Simples ( CES )

Nelson Quilula Vasconcelos


O CES uma mquina esotrica, ou seja, seu uso no prtico: Esse computador foi concebido apenas para facilitar a compreenso de alguns aspectos bsicos dos computadores em geral. Apesar de no ser prtico, o CES uma mquina de Turing completa e portanto pode ser usada para implementar qualquer algoritmo que possa ser implementado em qualquer outro computador. Porm, de um modo geral, o CES difcil de programar, os seus programas so difceis de depurar e precisam executar um nmero grande de instrues para efetuar operaes que em computadores reais podem ser implementadas executando um nmero de instrues muito menor. O barramento do CES formado por uma via de dados de 16 bits, uma via de endereos de 14 bits e um nico sinal de controle denominado EscM que controla a escrita na memria. O espao de endereamento da memria do CES formada por 16K palavras de 16 bits, ou seja, tem uma capacidade total de 32K bytes. Os endereos com valores hexadecimais de 0000 a 02FF ( 768 palavras ) correspondem a ROM, os endereos com valores hexadecimais de 0300 a 03FF ( 256 palavras ) so reservados para interfaces com dispositivos de entrada e sada e os endereos com valores hexadecimais de 0400 a 3FFF ( 15K palavras ) correspondem a RAM. O processador do CES formado pelos seguintes componentes: 1.Seis registradores:

1.1.Registrador de dados lidos da memria ( RD ): um registrador invisvel de 16 bits cuja entrada ligada diretamente via de dados do barramento da memria; 1.2.Registrador de endereamento ( RE ) da memria: um registrador invisvel de 14 bits cuja sada ligada diretamente via de endereos do barramento da memria 1.3.Registrador de instruo ( RI ): um registrador invisvel de 2 bits que armazena o cdigo da instruo que est sendo executada. A entrada deste registrador recebe diretamente o valor presente nos dois bits mais significativos da via de dados do barramento da memria e a sada deste registrador ligada diretamente unidade de controle do processador; 1.4.Registrador apontador de programa ( RP ): um registrador visvel de 14 bits que armazena o endereo da prxima instruo a ser executada; 1.5.Registrador de trabalho ( RT ): um registrador visvel de 16 bits que armazena um dado que est sendo operado; 1.6.Registrador de condio ( RC ): um registrador visvel de apenas um bit que armazena um vai um ( ou o complemento do pede emprestado ) produzido pelo somador. A sada deste registrador ligada diretamente unidade de controle do processador;

2.Dois multiplexadores de duas entradas : 2.1.Multiplexador de dados ( MD ): um multiplexador de 16 bits que seleciona o valor que ser fornecido a uma das entradas do somador. Uma das entradas desse multiplexador ligada sada do RD e a outra entrada ligada sada do RP; 2.2.Multiplexador de endereos ( ME ): um multiplexador de 14 bits que seleciona o valor que ser colocado na entrada do RE. Uma das entradas deste multiplexador recebe o valor produzido pelo somador e a outra entrada recebe o valor presente nos 14 bits menos significativos da via de dados do barramento da memria;

3.Um "buffer" com sada de trs estados de 16 bits ( BT ) que permite enviar um dado para a via de dados do barramento da memria. A entrada do BT recebe o valor presente na sada de RT e a sada do BT ligada diretamente via de dados do barramento da memria; 4.Um complementador de dados de 16 bits ( CD ) que pode ser implementado empregando 16 portas do tipo "NOR" de duas entradas. A entrada do CD ligada sada do RT e a sada do CD ligada a uma das entradas do somador, permitindo que essa entrada do somador receba o complemento do valor armazenado em RT ou o valor zero; 5.Um somador de 16 bits ( SM ) que recebe em uma de suas entradas o valor produzido pelo MD e recebe na outra entrada o valor produzido pelo CD. O SM tem tambm uma entrada de "vem um" que recebe um sinal de controle produzido pela unidade de controle do processador e produz um "vai um" que pode ser armazenado no nico bit do RC; 6.Uma unidade de controle ( UC ) que recebe os valores presentes nas sadas de RI e RC e gera os sete sinais de controle usados no CES. Como as instrues que podem ser executadas no processador do CES so geralmente executadas em dois ciclos de relgio, a UC precisa usar um "flip-flop" de estado. Este processador pode ser implementado empregando menos que dois mil e quinhentos transistores. A figura 1 apresenta um diagrama da interligao desses componentes. As vias de dados do processador aparecem em amarelo nessa figura. O conjunto de instrues reconhecido pelo processador do CES formado por apenas quatro instrues e todas essas instrues empregam um mesmo formato: Cada instruo armazenada em uma palavra de 16 bits da memria, sendo que os dois bits mais significativos correspondem ao cdigo da instruo e os outros 14 bits correspondem ao operando da instruo, que sempre um endereo. A tabela apresentada a seguir mostra as quatro instrues reconhecidas pelo processador do CES: Cdigo Binrio 00 Nome L da memria Escreve na Endereo memria da palavra da memria Subtrai Operando Ao Copia para o RT o contedo da palavra memria cujo endereo igual ao valor do operando. Armazena o contedo do RT na palavra da memria cujo endereo igual ao valor do operando. Coloca no RT o resultado da subtrao do contedo da palavra da memria cujo endereo igual ao valor do operando menos o valor anteriormente armazenado no RT. O RC recebe o complemento do valor do pede emprestado gerado na subtrao Examina o contedo do nico bit de RC e se esse bit estiver armazenando o valor zero, copia o operando para o RP

01

10

11

Testa

Alvo do desvio

Figura 1. Diagrama geral do processador do CES Neste processador em cada ciclo de relgio realizada uma operao de acesso memria e uma operao no somador. As instrues L, E e S so sempre executadas em dois ciclos de relgio. No primeiro ciclo so efetuadas trs seguintes aes: - o contedo do RP enviado para o SM onde incrementado e enviado de volta para o RP e tambm para o RE; - um dado lido ( no caso das instrues L e S ) ou escrito ( no caso da instruo E ) da palavra da memria cujo endereo igual ao valor do operando da instruo, que foi copiado para o RE no ltimo ciclo de execuo da instruo anterior; - no final desse ciclo o dado lido ou escrito na memria armazenado no RD. No segundo ciclo da execuo dessas instrues so realizadas as seguintes aes: - a prxima instruo a ser executada lida da palavra da memria cujo endereo est armazenado no RE; - no final desse ciclo, a instruo lida copiada para o RD, seu operando copiado para o RE e o cdigo da instruo colocado no RI; - nas instrues L e S, o valor produzido pelo somador armazenado no RT no final desse ciclo; - na instruo S, o vai um produzido pelo somador tambm armazenado no RC no final desse ciclo.

No caso da instruo T, se o valor armazenando no RC for um, essa instruo tambm ser executada em dois ciclos de relgio: No primeiro ciclo de relgio o contedo do RP incrementado e enviado para o RE. No segundo ciclo lida a prxima instruo a ser executada, da mesma forma que ocorre durante o segundo ciclo de execuo das demais instrues. Se o valor armazenado no RC for zero, a instruo T ser executada em apenas um ciclo de relgio. Isto possvel porque nesse caso o endereo da prxima instruo a ser executada igual ao operando da instruo que est sendo executada e esse operando j foi copiado para o RE no ltimo ciclo da execuo da instruo anterior. Como o endereo da prxima instruo j est no RE, ele pode ser empregado imediatamente para ler essa prxima instruo. No final desse nico ciclo de execuo, o RP recebe atravs do somador o valor que est armazenado nos 14 bits menos significativos do RD. Esses 14 bits armazenam tambm o operando da instruo que est sendo executada. Consequentemente, essa ltima ao faz o RP receber o valor do operando da instruo que est sendo executada o que permite que as instrues subsequentes possam ser buscadas nos endereos corretos.

Você também pode gostar