Barramentos - WordPress.com

Propaganda
Fonte: http://www.bpiropo.com.br/Clocked.Htm
B. Piropo
Anteriores:
< PC@Word >
10/1997
< Lógica Temporizada >
Escritos
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
Download