Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
30/09/1996

< Memórias VIII: >
< Fazendo os Dados Fluir >


A CPU do primeiro PC lançado pela IBM há quinze anos era o chip 8088 da Intel, um microprocessador com freqüência de operação de 4,77MHz. Naqueles dias, algo capaz de operar em uma freqüência de quase cinco milhões de ciclos por segundo era, de fato, assombroso. Especialmente se levarmos em conta que, enquanto a máquina estivesse ligada, a CPU estava incessantemente trocando dados com a memória e recebendo ou despachando informações para os dispositivos conectados às placas controladoras espetadas nos slots. Tudo isto na fantástica rapidez de 4,77MHz. Uma piada nos tempos dos Pentium de 200MHz, mas admirável para a época.

Mas como essas informações fluíam entre os componentes? Ora, um problema de fácil solução para quem, como nós, conhece o mecanismo da lógica temporizada. Basta lembrar que aqueles traços dourados nas placas de circuito impresso - inclusive nas placas-mãe de nossas máquinas - são na verdade pequenos filetes de cobre que funcionam como condutores elétricos unindo os diversos componentes. O conjunto destes condutores chama-se "barramento" (em inglês, "bus"). No primeiro PC havia apenas dois barramentos, um para endereços e outro para dados. Este último era um único conjunto de oito filetes paralelos que percorria toda a placa-mãe e conectava a CPU tanto com a memória quanto com os slots. Cada um destes filetes era responsável pelo transporte de um bit. E tanto estes barramentos quanto a CPU eram regidos pelo ritmo inexorável de um cristal que oscilava na freqüência de 4,77MHz.

Era preciso transferir um byte de informação de um local para outro? Pois muito bem: em um determinado momento, correspondendo exatamente a um ciclo de máquina, o circuito responsável pelo controle do dispositivo que originava o dado emitia um pulso de corrente (ou uma tensão positiva) em cada filete onde deveria fluir um bit de valor "um". Exatamente neste mesmo momento, ou seja, durante o mesmo ciclo de máquina, o circuito responsável pelo controle do dispositivo que recebia o dado "lia" o estado de cada filete. Se encontrasse uma tensão positiva, sabia que se tratava de um bit "um". Se não encontrasse tensão alguma, sabia que se tratava de um bit "zero". E assim, combinando os bits "um" e "zero", o byte emitido na origem era reconstituído no destino. Tudo muito simples graças à lógica temporizada.

Se você prestou atenção nesta singela explicação aí de cima, deve ter se dado conta de um pequeno problema. Veja lá: quando um dado era gerado por um dispositivo qualquer, todo o barramento era energizado, ou seja, aquele byte era transmitido para todos os dispositivos ligados ao barramento. Como fazer com que o dado fosse lido pelo dispositivo ao qual era destinado e somente por ele?

Ora, usando o barramento de endereços. Que no primeiro PC era um conjunto de vinte filetes paralelos (que transportavam, portanto, vinte bits simultaneamente, o que explica porque o primeiro PC somente 'enxergava" um campo de memória de 1Mb, a maior quantidade que pode ser expressa usando vinte bits). Na verdade o processo se desenrolava em dois estágios: no primeiro os circuitos de controle energizavam os filetes do barramento de endereços que correspondiam aos bits "um" do endereço para onde o dado se destinava, ou seja, "escreviam" o endereço de destino no barramento de endereços. No segundo, que somente ocorria no ciclo seguinte, energizavam os filetes do barramento de dados com os valores correspondentes ao dado a ser transferido.

O sistema todo foi concebido de modo que a cada dispositivo (inclusive a memória) corresponde um distinto conjunto de endereços (os famosos endereços de I/O, que tanto trabalho dão quando dois dispositivos disputam os mesmos trechos de memória para trocar dados com a CPU). Então não havia problema: em um dado ciclo os circuitos de controle de todos os dispositivos "liam" o conteúdo do barramento de endereços. Com base no endereço lido, era selecionado o dispositivo ao qual o dado era endereçado. Somente este dispositivo ficava alerta para ler o barramento de dados no ciclo seguinte. Assim, embora todos os dispositivos estivessem conectados ao barramento, apenas aquele ao qual o byte era destinado o receberia.

Evidentemente esta explicação foi bastante simplificada. Mas dá uma boa idéia de como os dados fluíam no interior do primeiro PC, o tetravô de nossas máquinas. Que resumidamente consistia em um processo em dois estágios: primeiro, o endereço do local ao qual o dado se destina era colocado no barramento de endereços. Imediatamente depois, o dispositivo correspondente àquele endereço lia o estado do barramento de dados, reconstituindo o byte transmitido. Era simples assim.

Bons tempos, aqueles...

 

B. Piropo