Como funciona o barramento PCI Express

Autor: 
Tracy V. Wilson

Os slots de Interconexão de Componentes Periféricos (PCI, do inglês Peripheral Component Interconnect) estão tão integrados ao computador que muitas pessoas nem notam a sua presença. Há anos, o PCI tem sido um jeito versátil e funcional de conectar placas de som, vídeo e rede à placa-mãe.

Mas o PCI tem algumas limitações. Enquanto processadores e placas de vídeo, som e rede ficaram mais rápidos e mais potentes, o PCI não evoluiu. Continua com largura fixa de 32 bits e suporta somente 5 dispositivos por vez. O barramento mais novo, de 64 bits (PCI-X), tem mais largura de banda, mas a largura maior intensifica alguns dos outros problemas do PCI.

Um novo protocolo, chamado PCI Express (PCIe) elimina muitas destas deficiências, tem mais largura de banda e é compatível com os sistemas operacionais existentes. Neste artigo, falaremos das diferenças entre o PCIe e o PCI. Também veremos como o PCI Express deixa o computador mais rápido, melhora o desempenho gráfico e substitui o slot AGP.

Conexão serial de alta velocidade
Quando a informática surgiu, uma enorme quantidade de dados era transferida via conexões seriais. Os computadores separavam os dados em pacotes e então moviam os pacotes, um de cada vez, de um lugar para outro. As conexões seriais eram confiáveis, mas eram lentas, então os fabricantes começaram a usar conexões paralelas para enviar múltiplos pacotes de dados simultaneamente.

Acontece que as conexões paralelas também têm problemas conforme as velocidades aumentam: por exemplo, os fios podem causar interferências eletromagnéticas entre si  e aí a balança volta a favorecer as conexões seriais otimizadas. Melhorias no hardware e no processo de dividir, classificar e remontar pacotes levou a conexões seriais muito mais rápidas, como a USB 2.0 e a FireWire.

Ajustando o tamanho
Placas PCIe menores vão caber em slots PCIe maiores. O computador simplesmente ignora as conexões extras. Por exemplo, uma placa x4 pode ser inserida em um slot x16. Mas uma placa x16 seria muito grande para um slot x4.

O PCI Express é uma conexão serial mais parecida com uma rede do que com um barramento. Ao invés de um barramento que gerencia dados de múltiplas fontes, o PCIe tem um switch que controla várias conexões seriais ponto-a-ponto. Veja Como funcionam os Switches de LAN (rede de comunicação local) para mais detalhes. Estas conexões saem do switch e vão direto aos dispositivos para onde os dados precisam ir. Cada dispositivo tem sua própria conexão dedicada, então eles já não compartilham mais a largura de banda, como acontecia no barramento convencional.

Quando o computador inicia o PCIe determina quais dispositivos estão conectados à placa-mãe. Ele então identifica as ligações entre os dispositivos, criando um mapa de tráfego e negociando a largura de banda para cada ligação. Esta identificação de dispositivos e conexões é o mesmo protocolo que o PCI usa. Sendo assim, o PCIe não requer nenhuma mudança no software ou no sistema operacional.

Cada caminho ("lane") de uma conexão PCI Express contém dois pares de fios: um para envio e outro para recepção. Pacotes de dados movem-se pela "lane" na razão de um bit por ciclo. Uma conexão x1, a menor conexão PCIe, tem uma "lane" composta por quatro fios. Ela carrega um bit por ciclo em cada direção. Uma ligação x2 tem oito fios e transmite dois bits por vez, uma x4, quatro bits, e assim por diante. As outras configurações são x12, x16 e x32.

O PCI Express está disponível para PCs de mesa e laptops. Seu uso pode levar a uma redução de custo na produção de placas-mãe, uma vez que suas conexões têm menos pinos que conexões PCI. Também pode suportar muitos dispositivos, inclusive placas Ethernet, USB 2 e placas de vídeo.

Dois x dois
O "x" em "x16" significa "por". As conexões PCIe são escalonáveis por um, por dois, por quatro e assim por diante.

Mas como uma conexão serial pode ser mais rápida do que os 32 fios do PCI ou dos 64 fios do PCIx? Na próxima seção, veremos como o PCIe é capaz de ter uma grande largura de banda em um formato serial.

PCI Express: velocidades de conexão
O barramento PCI de 32 bits tem velocidade máxima de 33 MHz, o que permite que um máximo de 133MB de dados passe pelo barramento por segundo. O barramento PCI-X de 64 bits tem duas vezes a largura de barramento do PCI. Diferentes especificações de PCI-X possibilitam diferentes taxas de transferência de dados, de 512MB a 1GB de dados por segundo.

Dispositivos PCI compartilham um barramento comum, mas cada dispositivo PCI Express tem sua própria conexão dedicada ao switch

Cada "lane" do PCI Express, no entanto, suporta 200MB de tráfego em cada direção por segundo. Um conector PCIe x16 consegue transportar incríveis 6.4GB de dados por segundo em cada direção. Com tais velocidades, uma conexão x1 pode facilmente gerenciar uma conexão Ethernet gigabit, e mais aplicativos de áudio e armazenamento. Uma conexão x16 consegue facilmente gerenciar adaptadores de vídeo poderosos.

Como isto é possível? Alguns avanços simples contribuíram para este grande salto na velocidade de conexão serial:

  • priorização de dados, que permite que o sistema transfira primeiro os dados mais importantes e ajuda a evitar gargalos
  • transferências de dados em tempo real
  • melhorias nos materiais usados na fabricação das conexões
  • melhor handshake e detecção de erros
  • melhores métodos para quebrar os dados em pacotes e montá-los de volta. Além disso, como cada dispositivo tem sua própria conexão ponto-a-ponto dedicada com o switch, sinais de múltiplas fontes não precisam mais utilizar o mesmo barramento

    Barramento mais lento
    Interferência e degradação de sinal são comuns em conexões paralelas. Materiais de qualidade inferior e sinal cruzado vindo de fios próximos resultam em ruído, que deixa a conexão mais lenta. A largura de banda adicional do barramento PCI-X significa que ele pode carregar mais dados, o que pode gerar ainda mais ruído. O protocolo PCI também não prioriza dados, então dados mais importantes podem ficar presos em gargalos. O uso do slot Accelerated Graphics Port (AGP, Porta de Aceleração Gráfica) para placas de vídeo diminui bastante o tráfego, mas não o suficiente para acompanhar processadores mais rápidos e dispositivos de entrada/saída.