Sítio do Piropo

B. Piropo

< PC@World >
Volte
11/1997

Lógica Temporizada

 

Como sabemos, um computador é constituído por uma CPU que se vale da memória e dos dispositivos de armazenamento, de entrada e de saída, para processar dados. Sabemos ainda que estes cinco elementos, ou conjuntos de elementos, são interligados por um barramento. Mas afinal, o que é e para que serve um barramento?

Barramento é o elemento de ligação entre as partes básicas de um computador através do qual eles se comunicam, trocando dados e sinais de controle. Essencialmente, um barramento não passa de um conjunto de condutores elétricos (geralmente sob a forma de riscos metálicos paralelos nas placas de circuito impresso) destinados a transportar dados e sinais, além de alguns componentes eletrônicos e circuitos integrados para controlar o fluxo destes dados. A questão crucial, então, ser resume a compreender como dados e sinais podem transitar em um simples conjunto de condutores elétricos.

Bem, para entendermos isto precisamos antes saber de que forma os dados trafegam entre os elementos básicos que constituem um computador. O que não é difícil para quem vem acompanhando estas colunas e sabe que os dados são sempre digitalizados sob a forma de bytes e bits. Portanto qualquer dado ou conjunto de dados pode ser decomposto de modo a ser representado por um conjunto de dígitos binários (bits), ou seja, de algarismos que somente podem assumir o valor "um" ou "zero". E nada mais fácil do que transportar um dado como este em um circuito elétrico: se o circuito estiver energizado, ou seja, se sobre ele for aplicada uma certa tensão (ou "voltagem"), o valor é "um". Do contrário, ou seja, se não houver tensão, o valor é "zero". E temos conversado.

Se você parou para analisar o que foi dito acima, já deve ter percebido que a coisa não é tão simples assim. Porquê a explicação é perfeita para representar dados estáticos, que não se alteram com o tempo. Mas nós sabemos que nada é mais dinâmico do que o que ocorre nas entranhas de nosso micro, onde os dados estão fluindo com uma rapidez alucinante. Então como representar através de simples tensões fixas um ambiente tão mutável? A primeira vista parece impossível. Mas basta incluir mais um elemento em nossa equação para que ela possa ser facilmente resolvida. E, evidentemente, como estamos discutindo coisas que se alteram a cada instante, é claro que este elemento só pode ser o tempo.

Para marcar o tempo, os circuitos eletrônicos usam cristais capazes de vibrar (ou "oscilar") em uma freqüência absolutamente constante. Ou seja: todo computador contém um relógio interno que controla o ritmo com que os dados fluem e são processados em seu interior.

Agora já podemos entender como os dados trafegam no barramento. Para isto, vamos analisar uma situação real: a forma pela qual a memória e a CPU trocam dados. E vamos começar pelo caso mais elementar, o primeiro computador pessoal da linha PC, o velho IBM PC de 1981. Que era uma máquina extraordinariamente poderosa para os padrões da época, mas que hoje não passaria de um brinquedo de criança.

O IBM PC usava a CPU Intel 8088, que operava com uma freqüência de operação de cerca de 5 MHz (na verdade, um pouco menos: a freqüência de operação do velho 8088 era de exatos 4,77 MHz, mas vamos utilizar cinco para simplificar). Isto quer dizer que era controlada por um cristal que oscilava cinco milhões de vezes a cada segundo.

Uma outra característica do 8088 era que, embora usasse registradores internos de 16 bits, trocava dados com a memória de oito em oito bits, ou seja, transferia um byte de cada vez. Portanto, para que os dados transitassem entre memória e CPU, somente eram necessárias oito "linhas", ou condutores elétricos interligando-as.

Imagine, então, que a CPU quisesse transferir para a memória dois dados sucessivos, expressos pelos bytes "10011010" e "11100010". Para transferir o primeiro, aplicaria uma tensão nos condutores correspondentes aos segundo, quarto, quinto e oitavo bits (atenção: por convenção, estabeleceu-se que em um byte os bits são ordenados da direita para a esquerda). Isto "punha no barramento" o byte "10011010". Mas note que ele deveria ser sucedido imediatamente pelo próximo byte. Então, bastava à CPU esperar o próximo "ciclo de operação", ou seja, a próxima oscilação do cristal, e rapidamente alterar a distribuição de tensões, aplicando tensões positivas apenas no segundo, sexto, sétimo e oitavo bits, "pondo" assim o byte "11100010" no barramento. Ora, como no caso do 8088 tanto a CPU quanto a memória e o barramento operam na mesma freqüência, a memória "sabe" exatamente quando ler o dado, ou seja, em qual exato instante as tensões nos condutores elétricos que formam o barramento devem ser investigadas para detectar quais deles apresentam tensões positivas e quais os que apresentam tensões nulas. E este momento é o instante exato em que o cristal emite uma vibração, determinando assim um "ciclo de operação". Ou seja: para trocarem dados, basta que a memória "leia" as tensões dentro do mesmo ciclo em que a CPU colocou o dado no barramento.

Para um observador externo, que examine o que ocorre nas linhas do barramento utilizadas para transportar dados, parece que a tensão em cada condutor passa todo o tempo pulsando, ou seja, oscilando entre um valor positivo e zero em uma sucessão aparentemente sem sentido. Na verdade, em cada instante correspondente a um ciclo de operação, aquela pulsação representa um bit. Por outro lado, se examinarmos um instantâneo da situação das oito linhas de dados do barramento exatamente no momento em que o cristal emite uma vibração, como se ele estivesse "congelado" no tempo, poderíamos averiguar o valor do byte que está sendo transferido naquele momento observando as tensões em cada linha. E é exatamente assim, como uma infindável série destes instantâneos que se sucedem ao longo do tempo, ciclo após ciclo, que a memória "enxerga" o barramento e consegue ler os dados que lhe são enviados.

Este tipo de lógica que depende do tempo denomina-se "lógica temporizada", ou "clocked logic", em inglês. Ela regula todo o funcionamento de nossos micros, não apenas movimentando dados, como também endereços e sinais de controle. Que também transitam pelo barramento e serão nosso próximo assunto.

B. Piropo