Barramento PCI (Peripheral Component Interconnect)

Barramento PCI (Peripheral Component Interconnect)

A Intel resolveu criar o seu próprio padrão de barramento de periféricos, o PCI. Este simplesmente “matou” os barramentos EISA e VLB. O barramento ISA continua sendo utilizado para manter compatibilidade com periféricos antigos e que sejam lentos, como a placa de som e a placa de modem, como comentamos (embora grande parte das placas-mãe já estejam vindo sem o barramento ISA).

Ao contrario do VLB, o PCI não é conectado diretamente ao barramento local do micro. Dizer que o PCI é uma extensão do barramento local está tecnicamente errado, muito embora diversos fabricantes tenham divulgado (erroneamente, é claro) na mídia que isso acontece. O esquema básico de placas-mãe usando o barramento PCI é apresentado na Figura 10.21. Esse é um modelo apenas teórico, já que estamos desconsiderando pequenas modificações nesse esquema introduzido pelo chipset da placa-mãe (no Capítulo 12 veremos esquemas reais, onde estaremos levando em conta os diferentes chipsets disponíveis no mercado).

Ao contrário de todos os barramentos apresentados até agora, o PCI não se prende a nenhum tipo de processador específico. Isso dá segurança para que todos os futuros processadores utilizem, sem maiores problemas, o barramento PCI. Não só o PCI não é dependente de processador quanto de plataforma. Muitos micros não-PC, como o PowerMac, utilizam o barramento PCI. Esses micros podem utilizar qualquer tipo de placa PCI sem o menor problema de compatibilidade.

Para a interligação do barramento local com o PCI, é utilizada uma ponte (bridge) barramento local-PCI (em inglês, essa ponte é conhecida como host-PCI bridge). No caso da interligação do barramento PCI com o ISA, há uma ponte PCI-ISA. Uma ponte é um circuito capaz de converter sinais e protocolos de um tipo de barramento para outro. Em um PC típico, temos somente essas duas pontes, também chamadas de Ponte Norte e Ponte Sul, respectivamente. As pontes estão integradas ao chipset.

Esquema do barramento PCI

Depreendemos que, no caso de ser criada uma nova geração de processadores, em vez de haver a necessidade de se reformular o padrão do barramento de expansão, como ocorria no VLB, é necessário somente criar uma nova ponte norte, circuito que irá converter o padrão de comunicação usado no barramento local para o padrão usado no barramento PCI. É por esse motivo que junto com processadores de novas gerações são lançados novos chipsets no mercado pelos fabricantes de chipset.

Um dos problemas do slot PCI é que este é um slot “à parte”, sem nenhum contato com o slot ISA, como ocorria no EISA e no VLB. Em compensação, obtemos um desempenho muito maior.

No caso de ser criada uma nova geração de processadores, em vez de haver a necessidade de se reformular o padrão do barramento de expansão, como ocorria no VLB, é necessário somente criar uma nova ponte norte, circuito que irá converter o padrão de comunicação usado no barramento local para o padrão usado no barramento PCI. É por esse motivo que junto com processadores de novas gerações são lançados novos chipsets no mercado pelos fabricantes de chipset.

Existem vários modelos de barramento PCI. Podemos diferenciá-los; de acordo com o tamanho de seu barramento de dados (que pode ser de 32 ou 64 bits) e com a sua freqüência de operação máxima (33 ou 66 MHz).

No caso de micros com processadores 486 e com barramento PCI, não há dúvida de que o barramento PCI será de 32 bits e trabalhará a, no máximo, 33 MHz. 

Já no caso de micros com processadores Pentium e superiores, podemos encontrar diversos tipos de barramento PCI:

– Barramento PCI 32 bits a 33 MHz (taxa de transferência máxima teórica de 132 MB/s).

– Barramento PCI 64 bits a 33 MHz (taxa de transferência máxima teórica de 264 MB/s).

– Barramento PCI 32 bits a 66 MHz (taxa de transferência máxima teórica de 264 MB/s).

– Barramento PCI 64 bits a 66 MHz (taxa de transferência máxima teórica de 528 MB/s).

Assim, fica claro que o barramento PCI não é ligado diretamente ao barramento local do processador. Há um circuito chamado ponte fazendo a conversão entre o formato dos dados usado no barramento local no formato dos dados usado no barramento PCI.

Em um primeiro instante pode parecer que o barramento PCI é tecnicamente inferior ao barramento VLB, que trabalha na mesma freqüência de operação do processador. Entretanto, devemos lembrar que o barramento VLB utiliza os mesmos sinais do barramento local, portanto está “preso” ao processador. No caso de futuros processadores, o barramento VLB teria de ser redesenhado. Além disso, sendo “preso” ao processador, os periféricos conectados ao barramento VLB não têm autonomia e são controlados pelo processador da máquina. Há duas características que tornam o barramento PCI bem mais interessante: bus mastering e a tecnologia Plug and Play.

Bus Mastering

Como quem controla tanto o barramento local quanto o barramento de expansão é geralmente o próprio processador, este comandará a comunicação entre dois periféricos, por exemplo, a transferência de dados do disco rígido para a memória RAM. É claro que, enquanto está comandando a “conversa” entre dois periféricos, o processador não pode fazer mais nada, desperdiçando tempo que poderia estar sendo usado para a execução de um programa, por exemplo. Exemplificamos esse problema na Figura abaixo. Para transferir arquivos do disco rígido para a memória RAM, normalmente são efetuadas dois passos. Primeiro, o processador carrega os dados. E depois, esses dados são armazenados na RAM.

Como as transferências de arquivos para a memória RAM são normalmente efetuadas

 

Há duas formas de aumentar o desempenho nesse processo: a utilização do controlador de DMA ou da técnica de bus mastering. Enquanto o DMA comanda a troca de dados entre um periférico e a memória RAM e necessita de uma ligação física do periférico com um dos canais do controlador de DMA, o bus mastering é bem mais flexível. O periférico pode tomar conta do barramento, fazendo o que bem entender.

Na Figura abaixo, vemos o exemplo da transferência de dados entre o disco rígido e a memória RAM usando a técnica de bus mastering: os dados são enviados diretamente à RAM, sem a necessidade de uso do processador.

Transferência de arquivos para a memória RAM usando a técnica de bus mastering

 

Entretanto, à exceção do barramento PCI, todos os barramentos de expansão utilizam os mesmos sinais do barramento local do processador. Isso significa que, embora teoricamente o bus mastering seja possível, não há independência entre o processador e os dispositivos conectados ao barramento de expansão para que essa técnica seja utilizada com freqüência. E também não há velocidade. Devemos lembrar que um bus mastering no barramento ISA seria ridículo, pois o periférico só poderia acessar um outro dispositivo a 8 MHz, o que dá uma taxa de transferência máxima de apenas 8,33 MB/s. Um dispositivo PCI 32 bits a 33 MHz consegue atingir a taxa de transferência máxima de 132 MB/s, o que torna o processo de bus mastering bem mais interessante.

 

Como, no barramento PCI, não há essa dependência (o barramento PCI é independente), os periféricos podem conversar diretamente entre si, aumentando o desempenho do micro. Na prática, o bus mastering acaba sendo um DMA mais rápido e mais flexível (o controlador de DMA, em geral, não é tão rápido quanto uma placa periférica).

Plug and Play

Vimos duas características do barramento PCI: não é “preso” ao processador e, ao mesmo tempo, suas interfaces são mais “inteligentes” do que as desenhadas para os outros tipos de barramento de expansão. No PCI, cada interface pode controlar o barramento, portanto cada uma tem autonomia.

Outro conceito importante é o Plug and Play. Cada dispositivo PCI tem uma pequena memória ROM contendo informações que são repassadas aos demais dispositivos, sempre que necessário. Essas informações são conhecidas como cabeçalho de configuração e contém informações como o fabricante, o tipo do dispositivo e a sua revisão. Quando ligamos o micro, o POST detecta todos os dispositivos PCI conectados ao micro lendo os seus cabeçalhos de configuração.

Portanto, toda placa PCI é plug-and-play. Para que você tenha um micro verdadeiramente plug-and-play, são necessários:

– BIOS plug-and-play.

 – Barramento ISA plug-and-play.

 – Placas plug-and-play.

 – Sistema operacional plug-and-play (como o Windows 9.x/ME, o Windows 2000, Windows XP, Vista e Sete).

Após a criação do barramento PCI, houve uma revisão no barramento ISA, denominada ISA plug-and-play, para permitir que periféricos ISA também possam se autoconfigurar. Se todas as exigências forem atendidas, o próprio sistema operacional será capaz de resolver automaticamente problemas de configuração e conflito, bem como reconhecer os periféricos instalados para que um driver específico seja instalado no sistema operacional. Por exemplo, basta que o micro tenha uma placa de vídeo PCI para que, automaticamente, o Windows 9.x a reconheça e instale o driver de vídeo necessário.

Uma das características das placas periféricas plug-and-play é a ausência de jumpers de configuração, já que toda a configuração é executada por software.

PCI Hotplug

Existe um barramento PCI chamado Hotplug que permite que a placa periférica seja trocada com o micro ligado. Essa troca, entretanto, tem de ser feita por uma placa absolutamente igual à placa removida. O PCI Hotplug não é destinado ao upgrade de placas periféricas, mas sim à substituição de placas PCI defeituosas sem a necessidade de se desligar o micro. Tanto o barramento PCI quanto a placa periférica deverá ser Hotplug para que esse recurso funcione.

Esse barramento é muito útil para servidores de rede local, que normalmente não podem ser desligados. Caso uma placa periférica PCI Hotplug se danifique, basta abrir o micro e substituí-la. Em servidores de alto desempenho, é muito comum que o micro tenha duas placas de rede. Usando uma placa-mãe com barramento PCI Hotplug e placas de rede PCI Hotplug, a rede só deixará de funcionar caso as duas placas de rede se queimem ao mesmo tempo! Caso uma das placas de rede se queime, os micros continuam tendo acesso ao servidor através da outra placa de rede (o desempenho será reduzido, é claro). A placa defeituosa pode ser substituída com o micro ligado, sem a necessidade de o tráfego ao servidor ser interrompido!