GDH Press: Blog » ISA, EISA, VLB e PCI: A corrida dos barramentos
 
RSS

ISA, EISA, VLB e PCI: A corrida dos barramentos

Publicado em 22/11/2009 – 04:43
por Carlos Morimoto

Junto com os processadores, memória RAM e memória cache, outra classe importante de tecnologias são os barramentos, já que são eles os responsáveis por interligar os diferentes componentes da placa-mãe e permitir o uso de periféricos.

Acompanhando a evolução dos processadores, os primeiros anos da plataforma PC foram marcados por uma corrida em torno de barramentos mais rápidos, capazes de atender à evolução das placas de vídeo e outros periféricos. Não é tão diferente do que temos nos dias de hoje (onde as placas 3D continuam liderando a demanda por novas tecnologias), mas na época essa era uma questão realmente urgente.

O primeiro barramento de expansão usado em micros PC foi o ISA, que por incluível que pareça, foi usado do PC original (o de 1981) até a época do Pentium III. Existiram duas versões: os slots de 8 bits, que foram utilizados pelos primeiros PCs e os slots de 16 bits, introduzidos a partir dos micros 286.

Embora fossem processadores de 16 bits, os 8088 comunicavam-se com os periféricos externos utilizando um barramento de 8 bits, daí o padrão ISA original também ser um barramento de 8 bits. Inicialmente, o barramento ISA operava a apenas 4.77 MHz, a frequência de clock do PC original, mas logo foi introduzido o PC XT, onde tanto o processador quanto o barramento ISA operavam a 8.33 MHz.

Com a introdução dos micros 286, o barramento ISA foi atualizado, tornando-se o barramento de 16 bits que conhecemos. Na época, uma das prioridades foi preservar a compatibilidade com as placas antigas, de 8 bits, justamente por isso os pinos adicionais foram incluídos na forma de uma extensão para os já existentes.
Como você pode ver na foto, o slot ISA é dividido em duas partes. A primeira, maior, contém os pinos usados pelas placas de 8 bits, enquanto a segunda contém a extensão que adiciona os pinos extras:

barramentos_html_47b98ad2

Uma coisa que chama a atenção nos slots ISA é o grande número de contatos, totalizando nada menos que 98. Por serem slots de 16 bits, temos apenas 16 trilhas de dados, as demais são usadas para endereçamento, alimentação elétrica, sinal de clock, refresh e assim por diante.

Este esquema mostra a função de cada um dos pinos em um slot ISA. Como você pode ver, não é exatamente uma implementação "simples e elegante", mas enfim, funcionava e era o que estava disponível na época:

barramentos_html_4a20eb9d

Cada um destes pinos podia ser controlado individualmente via software e muitas placas não utilizavam todos os pinos do conector, por isso era comum que periféricos mais simples, como placas de som e modems viessem com alguns dos contatos "faltando". Outra curiosidade é que, justamente por serem fáceis de programar, as controladoras ISA foram as preferidas por programadores que trabalham com automatização e robótica durante muito tempo. Quando as placas-mãe com slots ISA começaram a desaparecer do mercado, alguns chegaram estocá-las. :)

Apesar de toda a complexidade, o barramento ISA é incrivelmente lento. Além de operar a apenas 8.33 MHz, são necessários tempos de espera entre uma transferência e outra, de forma que, na prática, o barramento funciona a apenas metade da frequência nominal. Dessa forma, chegamos a uma taxa de transmissão teórica de 8.33 MB/s (no ISA de 16 bits). Como existe um grande overhead causado pelo protocolo usado, na prática acaba sendo possível obter pouco mais de 5 MB/s de taxa de transferência real.

Periféricos "rápidos", como placas de vídeo, placas de rede e interfaces IDE migraram rapidamente para barramentos mais rápidos conforme eles foram sendo introduzidos. Mas, o ISA continuou sendo suficiente para periféricos lentos, como modems, placas de som e alguns outros dispositivos. Isso acabou fazendo com que o ISA tivesse uma sobrevida assustadora. Por volta do final de 2003 ainda era possível encontrar placas-mãe novas, destinadas a processadores Pentium III e K6-2, que ainda ostentavam um ou dois slots ISA e algumas delas continuam em uso até os dias de hoje.

Com relação à parte prática, uma das principais características das placas ISA era a presença de jumpers, que permitiam definir os endereços de IRQ, DMA e I/O usados pela placa. Em um PC com vários periféricos, os valores precisam ser ajustados com cuidado, já que duas placas configuradas para utilizar o mesmo endereço entravam em conflito, fazendo com que ambas não funcionassem corretamente.

Mais tarde, surgiu o padrão ISA plug-and-play, onde a configuração de endereços é feita pelo BIOS durante o boot. Ele verifica quais endereços estão ocupados por outros dispositivos e tenta atribuir os endereços livres aos novos periféricos instalados, evitando conflitos.

Com a introdução das placas ISA plug-and-play, as placas antigas, configuradas via jumper passaram a ser chamadas de placas "legacy ISA". É relativamente incomum encontrar alguma em uso hoje em dia, mesmo ao trabalhar com micros antigos. Os mais comuns são modems, já que os antigos modems ISA trabalham via hardware e por isso oferecem vantagens sobre os softmodems atuais. Como costumo dizer, os modems discados são a única classe de periféricos que regrediu da época do 486 para cá.

Com o surgimento dos processadores 386, que trabalhavam usando palavras binárias de 32 bits, tornou-se necessária a criação de um barramento mais rápido que o ISA para o uso de periféricos como placas de vídeo e HDs, que logo passaram a ter seu desempenho severamente limitado por ele.

A primeira resposta veio por parte da IBM, que desenvolveu o barramento MCA. Ele era bastante avançado para a época: além de ser um barramento de 32 bits, ele operava a 10 MHz, o que resultava em uma taxa de transferência teórica de 32 MB/s (existiu também uma versão de 16 bits do MCA, mas ela foi pouco usada). Ele também foi o primeiro barramento a suportar plug-and-play (oito anos antes do lançamento do Windows 95) e a suportar bus mastering, o que permitia que o HD e outros periféricos transferissem dados diretamente para a memória RAM (ao carregar um programa, por exemplo), reduzindo a carga sobre o processador. Isso tornava o sistema bem mais responsível em relação às máquinas equipadas com placas ISA.

O sistema de plug-and-play do MCA funcionava com o uso de dois disquetes. O "reference disk" continha um programa de configuração, que alterava a distribuição dos endereços e outras configurações do BIOS e era fornecido junto com o micro. Ao comprar qualquer periférico MCA, você recebia um "option disk", que era carregado com a ajuda do primeiro disquete, configurando a placa. Uma vez feita, a configuração se tornava permanente e você não precisava mais se preocupar. Embora rudimentar, este sistema já seguia a mesma lógica da instalação de drivers, que temos nos dias de hoje.

O grande problema é que o MCA era um padrão proprietário, de forma que tanto outros fabricantes de PCs quanto fabricantes de periféricos precisariam licenciar a tecnologia e pagar royalties para produzir produtos compatíveis.

A IBM tentou usar o barramento como uma arma estratégica para recuperar o terreno perdido para outros fabricantes, usando-o na linha PS/2, que além do MCA incorporava várias outras inovações importantes (eles foram os primeiros a usarem disquetes de 1.44 MB, módulos de memória de 72 vias e assim por diante) e usava o OS/2 da IBM como sistema operacional.

Como era de se esperar, os demais fabricantes não gostaram da ideia e a IBM acabou isolada, tendo que arcar sozinha com o desenvolvimento e a produção das placas de expansão. Embora possuíssem diversas vantagens, o fato dos IBM PS/2 possuírem apenas slots MCA acabou se tornando mais um problema do que uma vantagem, já que isso os tornava incompatíveis com as placas ISA, que eram mais baratas e populares. No final, o MCA acabou sendo abandonado, compartilhando do fracasso da linha PS/2.

Inicialmente, os demais fabricantes continuaram produzindo micros 386 e 486 utilizando apenas periféricos ISA, o que resultava em limitações óbvias, sobretudo com relação ao desempenho do HD e vídeo, o que os tornava praticamente inutilizáveis para edição de imagens e vídeo, por exemplo, onde os Macs dominavam. Por utilizarem o mesmo barramento dos micros 286 (também chamados de PC-AT), eles eram chamados de "AT 386" ou "AT 486". Como pode imaginar, o "AT" nesse caso indica uma limitação e não um recurso extra.

Não demorou para que a Compaq desenvolvesse o EISA e abrisse as especificações para os demais fabricantes, criando uma entidade sem fins lucrativos para impulsionar seu desenvolvimento.

O EISA é um barramento peculiar. As dimensões são as mesmas de um slot ISA de 16 bits, porém o slot é mais alto e possui duas linhas de contatos. A linha superior mantém a mesma pinagem de um slot ISA de 16 bits, de forma a manter a compatibilidade com todos os periféricos, enquanto a linha inferior inclui 90 novos contatos, utilizados pelas placas de 32 bits.

As placas ISA atingiam apenas os contatos superficiais do conector, enquanto as placas EISA utilizavam todos os contatos. Embora o uso de tantos contatos esteja longe de ser uma solução elegante, é preciso admitir que o EISA foi uma solução engenhosa para o problema da compatibilidade. Aqui temos os contatos de uma placa de vídeo EISA, que mostra a organização na prática:

barramentos_html_58b71923

Os slots EISA eram tipicamente marrons, por isso lembram um pouco um slot AGP, embora bem maiores:

barramentos_html_m2ad325f4

Assim como o ISA, o barramento EISA operava a 8.33 MHz. Entretanto, a transferência de 32 bits por ciclo e a eliminação dos tempos de espera entre um ciclo e outro faziam com que ele fosse até 4 vezes mais rápido.
Apesar disso, o EISA acabou tendo uma vida curta, pois em 1993 surgiu o VLB (VESA Local Bus), outro padrão aberto de barramento de 32 bits, que conseguia ser muito mais rápido, trabalhando a uma frequência nominal de 33 MHz e oferecendo taxas de transferência teóricas de até 133 MB/s.

Inicialmente o VLB (ou VESA, como é chamado por muitos) surgiu como barramento próprio para a conexão da placa de vídeo. Nesta época, o Windows 3.11 e os aplicativos gráficos já eram populares, de forma que existia uma grande demanda por placas de vídeo mais rápidas.

O "rápido" que menciono aqui é a simples capacidade de atualizar a tela em tempo real enquanto edita uma imagem no Photoshop, não tem nada a ver com aceleração 3D ou exibição de vídeo em alta resolução, como temos hoje em dia. Além de serem muito lentas, as placas de vídeo ISA eram limitadas à exibição de apenas 256 cores, o que fez com que elas fossem rapidamente substituídas pelas VLB.

Graças à boa velocidade, o VLB acabou tornando-se o padrão também para outros periféricos, como controladoras IDE e SCSI. Novamente, existiu a preocupação de manter compatibilidade com as placas ISA, de forma que os slots VLB são na verdade uma expansão, onde temos um slot ISA tradicional, seguido por um segundo conector, que inclui os pinos adicionais:

barramentos_html_m6f8c7830

Isso rendeu o apelido de "Very Long Bus" (barramento muito comprido :) e trouxe uma série de problemas de mal contato, já que se a placa-mãe não estivesse muito bem presa ao gabinete, a pressão necessária para encaixar as placas faziam com que a placa envergasse, comprometendo o encaixe. A grande pressão necessária acabava danificando os contatos com o tempo, o que, combinada com a oxidação natural, acabava fazendo com que muitas placas realmente deixassem de funcionar depois de removidas e reinstaladas algumas vezes.

Como o nome sugere, o VLB é um barramento local, onde os contatos são ligados diretamente aos pinos do processador. Esse design simples barateava a produção das placas-mãe, mas fazia com que a utilização do processador fosse relativamente alta e não fosse possível utilizar mais do que 3 placas VLB no mesmo micro.

O VLB se tornou rapidamente o padrão de barramento para placas para micros 486, mas acabou desaparecendo com a introdução do barramento PCI. Uma curiosidade é que as placas soquete 4 (a primeira geração de placas-mãe para micros Pentium 1, que suportavam apenas as versões de 60 e 66 MHz) chegaram a incluir slots VLB, utilizando uma versão adaptada do barramento.

Chegamos então ao PCI, que embora tenha sido introduzido em 1992, continua em uso até os dias de hoje, resistindo aos avanços do PCI Express.

O PCI opera nativamente a 33 MHz, o que resulta em uma taxa de transmissão teórica de 133 MB/s. Entretanto, assim como em outros barramentos, a frequência do PCI está vinculada à frequência de operação da placa-mãe, de forma que, ao fazer overclock (ou underclock) a frequência do PCI acaba também sendo alterada.

Em uma placa-mãe soquete 7 antiga, que opera a 66 MHz, o PCI opera à metade da frequência da placa-mãe. Ao fazer overclock para 75 ou 83 MHz, o PCI e todas as placas conectadas a ele passam a operar a respectivamente 37.5 MHz e 41.5 MHz. Isto acabava resultando em um ganho adicional de desempenho, já que, além do processador, temos ganhos de desempenho também em outros componentes.

Conforme a frequência das placas foi subindo, passaram a ser utilizados divisores cada vez maiores para manter o PCI operando à sua frequência original. Em uma placa-mãe operando a 133 MHz, a frequência é dividida por 4 e em uma de 200 MHz é dividida por 6.

Como você pode notar, o barramento PCI tem se tornado cada vez mais lento com relação ao processador e outros componentes, de forma que com o passar do tempo os periféricos mais rápidos migraram para outros barramentos, como o AGP e o PCI-Express. Ou seja, a história se repete, com o PCI lentamente se tornando obsoleto, assim como aconteceu com o ISA há mais de uma década atrás.

barramentos_html_m6816d442

De volta à história, uma das principais vantagens do PCI sobre os barramentos anteriores foi o suporte a Bus Mastering. Tanto o EISA quanto o VLB ofereciam um sistema de Bus Mastering rudimentar, mas o recurso acabou não sendo muito utilizado por um conjunto de fatores, incluindo as dificuldades no desenvolvimento dos drivers. Apenas com o PCI foi criado um padrão realmente confiável, que foi adotado em massa pelos fabricantes.

O Bus Mastering é um sistema avançado de acesso direto à memória, que permite que HDs, placas de vídeo e outros periféricos leiam e gravem dados diretamente na memória RAM, mantendo o processador livre para executar outras tarefas durante a transferência.

Um dos melhores exemplos é quando o sistema está ocupado inicializando vários programas simultaneamente. O HD precisa transferir vários de arquivos e bibliotecas para a memória, a placa de vídeo precisa exibir as telas de progresso e atualizar a tela, enquanto o processador fica ocupado processando as configurações e outras informações necessárias ao carregamento dos programas. Graças ao Bus Mastering, um micro atual ainda continua respondendo aos movimentos do mouse e às teclas digitadas no teclado, os downloads e transferências de arquivos através da rede não são interrompidos e assim por diante, muito diferente do que tínhamos na época do 486, quando os micros antigos que literalmente "paravam" durante transferências de arquivos e carregamento dos programas.

Complementando, temos a questão do plug-and-play. Atualmente, estamos acostumados a instalar o dispositivo, instalar os drivers e ver tudo funcionar, mas antigamente as coisas não eram assim tão simples, de forma que o plug-and-play foi tema de grande destaque.

Tudo começa durante a inicialização do micro. O BIOS envia um sinal de requisição para todos os periféricos instalados no micro. Um periférico PnP é capaz de responder ao chamado, permitindo ao BIOS reconhecer os periféricos instalados. O passo seguinte é criar uma tabela com todas as interrupções disponíveis e atribuir cada uma a um dispositivo. O sistema operacional entra em cena logo em seguida, lendo as informações disponibilizadas pelo BIOS e inicializando os periféricos de acordo.

As informações sobre a configuração atual da distribuição dos recursos entre os periféricos são gravadas em uma área do CMOS chamada de ESCD. Tanto o BIOS (durante o POST) quanto o sistema operacional (durante a inicialização) leem essa lista e, caso não haja nenhuma mudança no hardware instalado, mantêm suas configurações. Isso permite que o sistema operacional possa alterar as configurações caso necessário. Embora hoje isso não seja muito usado, é possível alterar as configurações dos endereços no Windows, através do gerenciador de dispositivos, encontrando no Painel de Controle > Sistema.

Na maioria das placas-mãe, você encontra a opção "Reset ESCD" ou "Reset Configuration Data" que, quando ativada, força o BIOS a atualizar os dados da tabela, descartando as informações anteriores. Em muitos casos, isso soluciona problemas relacionados à detecção de periféricos, como, por exemplo, ao substituir a placa de som e perceber que a nova não foi detectada pelo sistema.

» Mais posts

  1. 15 respostas para “ISA, EISA, VLB e PCI: A corrida dos barramentos”

  2. Aknaton em 22 nov, 2009

    Muito bom !
    Aprendi um pouco mais!
    Carlos quando vais fazer um artigo abordando,linhas de comando linux especificamente SO Maemo?
    Um abraço!

  3. Jeferson Armindo em 22 nov, 2009

    Morimoto me corrija se eu estiver errado…
    Comprei seu livro de Hardware e já o li há um bom tempo e inclusive preciso reler por que já nao me lembro de muita coisa do que li… Ao ler esses seus posts sobre hardware como memória cash do processador e esse de barramentos, silto-me nostálgicamente como se estivesse relendo seu livro.
    É só impressão minha ou vc está colocando "quase todo" seu livro de hardware no blog?
    Um abraço.

  4. Carlos Morimoto em 22 nov, 2009

    Alguns são tópicos do livro que estou atualizando. O livro em si ja está disponível online a algum tempo.

  5. Jeferson Armindo em 22 nov, 2009

    Opa então pelo jeito vem coisa nova por aí … será que é um novo lançamento de Hardware atualizado?
    Quero comprar o meu com desconto na pré-venda , igual fiz com o de Linux guia prático. =]
    Vida longa ao Geek.
    hehe

  6. Megaf em 22 nov, 2009

    Obrigado Morimoto, este site é uma de minhas principais referencias sobre o mundo dos PCs, quando tenho alguma questão sobre hardware, é certo que vou encontrar aqui.

    Sou mais um que sente como se estivesse relendo o livro, e acho isso bom, isso ajuda a nos lembrar de coisas e fixar outras.

    Reparei que você atualiza muita coisa antes de postar aqui.

    Continue com este excelente trabalho.

  7. Marco em 22 nov, 2009

    E sobre o PCI-X?

  8. Eden em 22 nov, 2009

    ótimo!

  9. Thiago em 22 nov, 2009

    Muito bom! =]

  10. Luzemário em 23 nov, 2009

    [OFF TOPIC]

    Morimoto, gostaria de ler o livro Hardware, Manual Completo em meu E71. Isso é contra sua política? caso seja possível, que aplicativo eu poderia utilizar para ler o texto ser precisar ficar o tempo todo na conexão? (battery issues)… há algum link tipo e-book para download?

    Se não for possível, não tem problema. Vou salvando aos poucos algumas páginas para ler depois. Um abração ;)

  11. Carlos Morimoto em 23 nov, 2009

    A idéia é que você acesse o site para ler, este é o "fee" :)

    Se não me engano o Opera Mini 5 (está em beta) tem uma opção para salvar as paginas para leitura offline. Como as paginas sao relativamente longas, vc pode ir salvando umas 3 ou 5 de cada vez para ir lendo ao longo do dia.

  12. alejandro Pinto em 25 nov, 2009

    uma curiosidade, para obter informações sobre o hardware instalado no pc, o sistema operativo lê o escd, mas se formatarmos o disco rígido e instalar novamente o windows por exemplo, e ao colocarmos uma pendrive ou webcam, ele considera como novo hardware encontrado .
    a minha pergunta é se as informações armazenadas no escd não são suficientes para ele deixar de considerar aqueles dispositivos que foram inseridos como novo hardware?

  13. luciano em 24 dez, 2009

    Cara q coisa boa essa prestação de trabalho que vc faz!! com certeza esclarece tudo sobre hardware e sem cobrar nada parabéns amigo carlos.sempre vou acessar seu site e comprar seu (LIVRO)Feliz natal pra ti e que seus planos e sonhos que vc ainda por acaso não tenha se realizado se concretizam no ANO NOVO!! PARABÉNS!

  14. staionof em 22 jan, 2010

    "O… boot… verifica quais endereços estão ocupados… e tenta atribuir os endereços livres aos novos periféricos instalados"

    Era padrão no Windows 95 e 98 o "som" ser atribuído a um IRQ alto (acima de 10, não me lembro) Acontecia que jogos como Doom, Duke Nuken e Quake eram desenvolvidos para DOS e só alcaçavam até o IRQ 8. De boa, o Sistema operacional não permitia que se alterasse os IRQs; era preciso alguns truques para enganar o Windows e descer o IRQ da placa de Som para fazê-la funcionar nos jogos para DOS.
    Era divertido.

  15. staionof em 22 jan, 2010

    Me lembro mais ou menos: era preciso liberar um IRQ abaixo de 8 desinstalando algum periférico ou componente da placa: dependendo da placa-mãe, era até necessário remover o harware para liberar um IRQ baixo.
    Depois acessar a Bios e desabilitar o IRQ ao qual o dispositivo de som estava direcionado. Reiniciar o micro e esperar que o Windows (ou a Bios, não estou certo) atribuísse o Som ao IRQ desejado.
    E às vezes o SO atribuía a um outro IRQ alto e era preciso desabilitar também aquele outro endereço na Bios, até o Som cair no IRQ 3 ou 5 (por padrão a esses era atribuído o Modem discado).

  16. Paulo Pacheco em 24 jan, 2010

    Rapaz! esse site tá show de bola carlos, novamente parabéns pelo empenho e boa vontade de sua parte em dedicar horas de seus dias para deixar aqui respostas para inúmeras perguntas. Forte abraço Paulo_TI


Comente: