A história dos barramentos de expansão do PC (Parte 1 - Conceituação e barramento ISA)

Uma das premissas para a especificação do padrão PC proposto pela a IBM no final dos anos 1970 era oferecer a possibilidade de expansão das suas funcionalidades básicas através de placas adaptadoras, o que permitiu que os PCs tivessem uma grande flexibilidade se comparados a muitos outros computadores pessoais da época. E o que tornou e torna possível esta expansão são os barramentos, que juntamente com o próprio PC foram evoluindo com o passar dos anos. A presente postagem apresentará alguns conceitos que estão associados aos barramentos e abordará o ISA, barramento pioneiro dos PCs. Uma boa leitura!

Slots de expansão ISA e PCI

Mas o que é um barramento?

De um modo simples, um barramento de expansão é um canal de comunicação entre os dispositivos e um chip controlador, que por sua vez está conectado ao processador principal por um outro canal de comunicação. Para que as placas adaptadoras possam fazer contato elétrico e lógico com o barramento, existem na placa mãe encaixes que são chamados de slots (cuja tradução mais aproximada para o português seria fenda). É o conceito do barramento de expansão que permite que os PCs tenham capacidades quase ilimitadas de personalização para as mais diferentes necessidades.

Conforme o PC foi evoluindo ao longo das últimas décadas, diversos padrões de barramentos de expansão e slots surgiram com diferentes graus de utilização e aceitação pelo mercado. Sem dúvida é importante para todos os entusiastas e profissionais de manutenção do hardware do padrão PC conhecerem os vários tipos de barramentos. E para os apreciadores de computadores antigos (os chamados "retrowarers") é algo praticamente obrigatório! :-)

Recursos utilizados pelos dispositivos do padrão PC

Praticamente todos os dispositivos para o padrão PC fazem uso de algum dos seguintes recursos: endereços de I/O, chamadas IRQ e canais de DMA.

Endereços de I/O 

Os endereços de I/O (Input/Output, ou Entrada e Saída) são utilizados pelo processador da máquina para acessar os dispositivos e para os mesmos se comunicarem entre si, e são representados por números na base hexadecimal. No padrão PC existem 65.536 endereços de I/O disponíveis.

Chamadas IRQ

As chamadas IRQ (Interrupt Request ou Pedido de Interrupção) são meios utilizados pelos dispositivos para "pedirem atenção" ao processador principal, sendo também chamadas de interrupções de hardware. Por exemplo, quando uma tecla é pressionada no teclado, o processador recebe um "pedido de atenção" da controladora do teclado e para tudo o que está fazendo para imprimir na tela a tecla pressionada. Este chaveamento é muito rápido e não é perceptível pelo utilizador.

No PC original e no PC-XT, como utilizam um processador cujo barramento externo é de 8 bits, existiam oito canais para as chamadas IRQ, numeradas de 0 a 7 em ordem de prioridade:

Canais para chamadas IRQ do PC original e do PC-XT

Com o lançamento do PC-AT em 1984 que utilizava o processador 80286 cujo barramento externo é de 16 bits, o número de canais de IRQ foi ampliado para dezesseis, numerados de 0 a 15. O problema é que era necessário manter a compatibilidade com as placas de expansão antigas de 8 bits, e para não quebrar esta compatibilidade um segundo controlador com oito canais de IRQ foi conectado no canal 2 do controlador de IRQ original. Este esquema é chamado de cascateamento:

Canais de IRQ existentes a partir do PC-AT

O canal 2 foi o escolhido para esta interligação devido ao fato de que ele foi mantido livre no projeto original. Desta forma, os IRQs do segundo controlador numerados entre 8 e 15, por estarem conectados no canal 2 do primeiro controlador, possuem maior prioridade sobre os numerados entre 3 a 7. A ordem de prioridade é observada quando dois dispositivos fazem um chamado de IRQ ao mesmo tempo: o que tiver uma maior prioridade (o canal 0 é o de maior prioridade) será atendido pelo processador primeiro.

Canais DMA

Um canal DMA (Direct Memory Access, ou Acesso Direto à Memória) oferece aos dispositivos e placas de expansão a possibilidade de transferirem dados para a memória RAM sem passar pelo processador principal do PC, de forma direta, privilegiando o desempenho. No PC original e no XT existiam quatro canais DMA de 8 bits cada (numerados de 0 a 3). No PC-AT foram adicionados mais quatro canais (4 a 7) de 16 bits.

Os canais DMA são utilizados apenas pelo barramento ISA. A partir dos demais padrões de barramentos uma nova forma de acesso à memória mais eficiente (o Bus Mastering) foi implementado.


Conflito de recursos

Ocorre quando dois ou mais dispositivos estão configurados para acessarem o mesmo recurso de hardware, como os canais IRQ e DMA (conflitos de endereçamento de I/O são mais raros devido ao grande número de endereços I/O disponíveis). Quando isto acontece, todos os dispositivos em conflito deixam de funcionar.

Este era um problema bastante comum de ocorrer antes da introdução do padrão Plug and Play, e para solucioná-lo é necessário configurar um dos dispositivos em conflito para utilizar um outro canal de IRQ e/ou de DMA. No caso de dispositivos não Plug and Play isto era feito alterando-se jumpers (pequenos contatos) existentes na placa de expansão.

Plug and Play 

O Plug and Play (Plugue e Use, também conhecido pela sigla PnP) é um padrão para dispositivos e placas de expansão proposto inicialmente em 1993 que visa simplificar a configuração dos mesmos, e principalmente em mitigar os até então comuns problemas de conflitos de recursos. Placas de expansão compatíveis com o padrão PnP trazem informações sobre os recursos utilizados pelo dispositivo em uma pequena memória ROM. Um sistema operacional também com suporte ao PnP faz a leitura desta memória e configura automaticamente os recursos utilizados pelo dispositivo, sem a necessidade de qualquer ajuste por parte do utilizador. Dispositivos PnP também suportam o compartilhamento de recursos (tais como os endereços I/O e canais de IRQ), o que praticamente eliminou os conflitos. O primeiro sistema operacional largamente utilizado com suporte ao PnP foi o Windows 95.

Barramento ISA

Passadas as conceituações teóricas, começaremos os estudos sobre os barramentos de expansão propriamente ditos. O barramento ISA (Industry Standard Architecture ou Arquitetura Padrão da Indústria) foi o primeiro padrão de barramento local dos PCs, tendo sido desenvolvido juntamente com o primeiro PC lançado pela IBM em 1981, estando presente também no subsequente PC-XT. Como o PC original e o XT utilizavam o processador Intel 8088 (ou clones deste, tais como o NEC V20) cujo canal de comunicação com os dispositivos externos é de 8 bits, a primeira versão do barramento ISA também era de 8 bits e operava a 4,77 Mhz, a mesma frequência de operação do processador Intel 8088 original.

Slots ISA de 8 bits

Placa adaptadora ISA de 8 bits, no caso um fax-modem

Para o PC-AT lançado em 1984 que utilizava o processador de 16 bits 80286, o barramento ISA foi expandido também para 16 bits, tendo a sua frequência de operação fixada a até 8 Mhz (que era a frequência de operação máxima dos modelos iniciais do 80286) e que foi utilizada até o final da sua vida útil - mesmo quando processadores mais rápidos foram sendo lançados a frequência do ISA foi mantida sempre em 8 Mhz, de modo a manter compatibilidade com as placas adaptadoras mais antigas.

Em termos físicos o slot ISA de 16 bits acrescentou um novo conjunto de contatos ao slot de 8 bits, mantendo a retrocompatibilidade com as placas de expansão de 8 bits.

Slots ISA de 16 bits

Placa adaptadora ISA de 16 bits (Super I/O)

ISA Plug and Play

Com o surgimento do padrão Plug and Play em 1993, também houve uma tentativa de atualizar o antigo barramento ISA para o novo padrão. Placas de expansão ISA PnP não possuem jumpers para a configuração manual dos recursos de hardware (tais como os canais IRQ e endereços de I/O), sendo a configuração feita via software, seja pelo sistema operacional (caso este tenha suporte ao PnP) ou por algum software específico que geralmente acompanhava tais placas (os chamados ICU - ISA Configuration Utility ou Utilitário de Configuração ISA). 

Depois da introdução do PnP as placas ISA tradicionais (com jumpers) passaram a ser chamadas de ISA Legacy (ISA de Legado), porém mesmo placas ISA PnP continuam não suportando o compartilhamento de recursos de hardware, oferecendo desta forma um suporte apenas parcial ao padrão PnP.

Taxa de transferência

As taxas de transferência máximas teóricas do barramento ISA são de 4,77 MB/s para a revisão inicial de 8 bits e 4,77 Mhz, e de 16 MB/s para a revisão de 16 bits e 8 Mhz. Porém depois de certo tempo esta taxa máxima teórica de 16 MB/s começou a se tornar inadequada para dispositivos que demandavam um maior desempenho, tais como placas adaptadoras de vídeo e controladoras de disco rígido, o que impulsionou a criação de novos padrões de barramentos de expansão.

O barramento ISA teve uma sobrevida grande: muitas placas mãe fabricadas até o início dos anos 2000 ainda ofereciam slots deste barramento, para manter compatibilidade com as placas de expansão antigas e também para acomodar dispositivos que não demandam uma grande taxa de transferência, tais como placas de som e fax-modems.

Na próxima parte mostrarei os barramentos que surgiram após o ISA. Até lá e um grande abraço! :-)

Próximo:
A história dos barramentos de expansão do PC (Parte 2 - Barramentos MCA e EISA)

Comentários