Como
vimos na última coluna, na medida que as CPUs foram se
tornando mais rápidas, mais óbvia se tornava a lentidão
do barramento que as comunicava com os periféricos. É
verdade que muitos destes eram ainda mais lentos, portanto, na
maior parte dos casos, não havia problema. Mas dois gargalos
eram evidentes: o vídeo, que com as altas resoluções
e o grande número de cores exigidos pelas interfaces gráficas
que começavam a surgir no início dos anos noventa
solicitava um fluxo de dados muito acima do suportado pelo velho
barramento ISA, e as controladoras de rede de alto desempenho
que então estavam se disseminando. Algo teria que ser feito
para acelerar o fluxo de dados no barramento de E/S. E para isso
ou se aumenta sua largura (número de condutores
elétricos paralelos, que corresponde ao número de
bits transportados simultaneamente), sua freqüência
de operação, ou ambos. Como os registradores (posições
de memória internas que, entre outras coisas, recebem os
dados que entram na CPU) usados pelas CPUs de então eram
de 32 bits, era natural que a largura do barramento fosse aumentada
para 32 linhas.
Tentativas não faltaram. A IBM lançou seu barramento
MCA (na verdade toda uma nova arquitetura, denominada Micro Channel
Architecture adotada na linha PS/2) mas fez a tolice de patenteá-lo.
A idéia não foi bem aceita pelo restante da indústria
e isso acabou por fazer a IBM perder a liderança tecnológica
na liça dos computadores pessoais. Os demais fabricantes
fizeram uma tentativa canhestra de aproveitar o formato dos conectores
ISA e desenvolveram o barramento EISA (Enhanced ISA), mas o resultado
foi pífio. O mais próximo que se chegou de um barramento
rápido e funcional foi fruto da iniciativa da associação
dos fabricantes de equipamentos de vídeo (Vídeo
Electronics Standard Association, ou VESA), que criou uma extensão
do barramento ISA com 16 linhas adicionais operando na mesma freqüência
do barramento frontal da CPU (e por isso era conhecido por barrramento
local, ou VESA Local Bus). Em um 486 rodando a 25 MHz isso
correspondia a um fluxo de 100 MB/s (quem não lembra como
calcular fluxo de dados, consulte a coluna passada,
ainda disponível na seção Escritos
de meu sítio em <www.bpiropo.com.br>), muitas vezes
mais rápido que o do barramento ISA e bastante razoável
para a época. O problema é que o barramento local,
como o próprio nome indica, estava amarrado
à CPU. Caso se pendurassem muitos periféricos
nele, a CPU acabava por sofrer uma sobrecarga inaceitável
(por isso as placas mãe vinham com no máximo dois
slots VESA, o resto era ISA). E, pior: cada nova CPU
exigiria adaptações no barramento.
No início da década de noventa a Intel se preparava
para lançar o Pentium e, portanto, tinha o maior interesse
em um barramento de E/S padrão que atendesse a qualquer
CPU (ou pelo menos às que fossem desenvolvidas daí
em diante). E como ninguém se mexia, resolveu ela mesma
meter a mão na massa e desenvolver um barramento rápido
que servisse não só ao novo Pentium quanto aos futuros
modelos. Assim nasceu o PCI.
PCI significa Peripheral Component Interconnect, ou
interconexão de componentes periféricos. Foi desenvolvido
pela Intel e oferecido gratuitamente a quem o quisesse adotar
em 1993. Não era um barramento local, ou seja, era independente
da CPU. Sua primeira implementação vinha com 32
linhas (mas podia ser estendida até 64) e operava a 33
MHz, o que corresponde a um fluxo de dados de 133 MB/s.
Tecnicamente o PCI não é um barramento, mas uma
ponte ou mezanino: não se conecta
diretamente à CPU, mas deriva do FSB (que liga CPU à
memória), cuja freqüência é sempre um
múltiplo da do PCI. O PCI pode receber até cinco
slots e foi o primeiro barramento a adotar o Plug
and Play, que permite simplesmente encaixar a placa controladora
no slot e deixar que o sistema operacional e o hardware
se entendam para atribuir os recursos necessários (endereços
de E/S, interrupções e coisas que tais). Além
disso o PCI admite o recurso de bus mastering, no
qual um periférico de alto desempenho pode solicitar e,
se autorizado, assumir o controle do barramento, comandando a
transferência de dados sem necessidade da interferência
da CPU, o que melhora consideravelmente o desempenho do sistema.
O PCI representou um progresso tão grande que se firmou
como barramento dominante por uma década. Aceitou todo
tipo de periférico, de controladores de discos até
placas de som e vídeo. Mas dispositivos mais exigentes
começaram a aparecer. Além das placas de vídeo
de altíssimo desempenho, as placas de rede tipo Gigabit
Ethernet e conjuntos de discos rígidos ligados em RAID
fizeram com que os 133 MB/s do PCI parecessem pouco. Na próxima
coluna, veremos como resolver isso.