GDH Press: Blog » PCI Express: compatibilidade, linhas de dados e o PCIe 2.0
 
RSS

PCI Express: compatibilidade, linhas de dados e o PCIe 2.0

Publicado em 05/02/2010 – 16:06
por Carlos Morimoto

A característica fundamental do PCI Express é que ele é um barramento ponto a ponto, onde cada periférico possui um canal exclusivo de comunicação com o chipset. No PCI tradicional, o barramento é compartilhado por todos os periféricos ligados a ele, o que pode criar gargalos, como no caso das placas soquete 7.

Alguns puristas argumentam que o PCI Express não é um barramento no sentido estrito da palavra, já que o termo "barramento" surgiu para descrever um canal de comunicação compartilhado por vários dispositivos ou periféricos. Mas, sou da opinião de que esse tipo de preciosismo deve ser evitado. Os termos técnicos evoluem e são adaptados, assim como a tecnologia. Em toda a documentação é usado o termo "PCI Express bus", referindo-se ao PCI Express (e também ao USB, Firewire e outros) como "bus", ou seja, "barramento". A designação já foi adotada oficialmente.

O PCI Express é também um barramento serial e não um barramento paralelo, como o PCI. Antigamente, os circuitos eletrônicos eram muito lentos, por isso a solução para criar barramentos mais rápidos era adicionar mais trilhas e transmitir vários bits de cada vez. Exemplos de barramentos paralelos são as portas paralelas, usadas pelas impressoras antigas, as portas IDE e também o próprio barramento PCI.

Com o avanço da tecnologia, os projetistas começaram a encontrar dificuldades em criar barramentos paralelos mais rápidos, pois o grande número de trilhas operando a altas frequências criava ruído eletromagnético e problemas de sincronismo. A solução foi passar a investir em barramentos seriais, onde são usados apenas um ou dois pares de trilhas e controladores mais sofisticados, capazes de transmitir a frequências mais altas.

Com menos trilhas, o problema do ruído e interferência é eliminado e os dados podem ser transmitidos na frequência permitida pelos circuitos, sem problemas de sincronismo. Atualmente, acaba fazendo mais sentido usar um circuito controlador muito rápido, transmitindo um bit por vez, do que tentar criar um barramento complicado, que transmite 16 ou 32 bits por ciclo.

Enquanto os fabricantes enfrentaram dificuldades para manter o sincronismo dos sinais do PCI-X a apenas 133 MHz, os transmissores do barramento PCI Express podem operar a 2.5 GHz sem maiores problemas.

Exemplos de barramentos seriais, são o USB, o Serial ATA e o PCI Express. A diferença de desempenho entre estes barramentos atuais em relação aos barramentos antigos é brutal: uma porta paralela operando em modo EPP transmite a apenas 8 megabits por segundo, enquanto uma porta USB 2.0 atinge 480 megabits. Uma porta IDE ATA-133 transmite a 133 MB/s, enquanto o SATA 600 atinge 600 MB/s. O PCI oferece apenas 133 MB/s, compartilhados por todos os dispositivos, enquanto um slot PCI Express 2.0 x16 atinge incríveis 8 GB/s.

Começando do básico, existem 4 tipos de slots PCI Express, que vão do x1 ao x16. O número indica quantas linhas de dados são utilizadas pelo slot e, consequentemente, a banda disponível.

Existem duas versões do PCI Express em uso, o PCI Express 1.x e o PCI Express 2.0. O PCI Express 1.x é o padrão inicial (finalizado em 2002), enquanto o PCI Express 2.0 é a versão mais recente (finalizada em janeiro de 2007), que transmite ao dobro da velocidade. Apesar da diferença, os dois padrões são intercompatíveis: salvo raros casos de incompatibilidade, não existem problemas em instalar uma placa PCI Express 2.0 em um slot PCI Express 1.1, ou vice-versa, mas em ambos os casos a velocidade é limitada pelo mais lento.

Cada linha PCI Express utiliza 4 pinos de dados (dois para enviar e dois para receber), que operam em modo full-duplex (ou seja, são capazes de transmitir e receber dados simultaneamente). No PCI Express 1.x temos 250 MB/s em cada direção por linha de dados, enquanto no PCI Express 2.0 temos 500 MB/s por linha.

Devido à essa característica, é comum que os fabricantes divulguem que o PCI Express transmite a 500 MB/s no padrão 1.x e 1000 MB/s no padrão 2.0, mas estes são valores irreais, já que só ocorreria em situações em que grandes quantidades de dados precisassem ser transmitidos simultaneamente em ambas as direções.

Junto com o uso do barramento serial, outra grande inovação do PCI Express foi a de permitir combinar várias linhas de dados em um único slot, multiplicando a banda disponível. Com isso, temos, 250 MB/s de banda nos slots PCIe 1.1 x1, 1 GB/s nos slots x4, 2 GB/s nos slots x8 e 4 GB/s nos slots x16. No caso das placas com o PCIe 2.0, as velocidades dobram, com 500 MB/s para os slots x1, 2 GB/s nos slots x4, 4 GB/s nos slots x8 e incríveis 8 GB/s nos slots x16.

O padrão original também previa o uso de slots x2 e x32, mas eles nunca chegaram a ser implementados. Na prática, os slots 8x também são muito raros, de forma que você verá apenas slots 1x, 4x e 16x nas placas atuais.

Em todos os formatos, o slot é dividido em duas secções. A primeira contém os contatos de alimentação elétrica e é igual em todos os slots, enquanto a segunda inclui os contatos de dados, que aumentam em número de acordo com o número de linhas de dados:

Essa organização foi desenvolvida para que exista compatibilidade retroativa com todos os formatos menores. Graças a isso, os slots x16 são compatíveis também com as placas x1, x4 e x8 e os slots x4 são compatíveis também com as placas x1 (e com as hipotéticas placas x2).

Ao conectar uma placa x1 em um slot x16, por exemplo, os contatos adicionais ficam sem uso. Como pode imaginar, o controlador é esperto o suficiente para desativar as linhas de dados inativas. Se você souber o que está fazendo, é possível até mesmo cobrir parte dos contatos com fita adesiva para desativar parte das linhas de dados e assim medir o desempenho da placa caso usada em slots com apenas 8 ou 4 linhas (como feito em alguns reviews).

Existem também os casos de placas-mãe com slots x4 ou x8 "abertos". Eles não têm a borda do conector, permitindo que você encaixe placas maiores, deixando os contatos extras de fora:

Esta solução é usada em casos em que o fabricante deseja oferecer a possibilidade de usar duas placas de vídeo em CrossFire ou SLI, mesmo que o chipset ofereça apenas 4 linhas de dados para o segundo slot. Como pode imaginar, o uso de apenas 4 linhas criam um gargalo que reduz o desempenho da segunda placa, mas ao menos a possibilidade existe.

Também existe a possibilidade de criar slots "capados", onde temos um slot x16 com apenas 8 linhas de dados, ou um slot x4, com apenas uma linha, por exemplo. Estes slots se comportam exatamente da mesma forma que um slot x1 ou um slot x4 aberto, mudando apenas o encaixe físico. Como nestes casos muda apenas o uso das linhas de dados (e não as conexões elétricas), os slots continuam sendo perfeitamente compatíveis com todo tipo de placas; apenas o canal de dados passa a ser mais lento.

Graças a toda essa flexibilidade, temos alguns casos interessantes, como o desta Intel D975BX da foto a seguir. Ela possui três slots PCI Express 16x (um deles com 16 linhas de dados e o outro com apenas 8 linhas), dois slots PCI legacy e nenhum slot PCIe x1 ou x4 (você usaria um dos slots x16 caso precisasse instalar uma placa de expansão qualquer):

Concluindo, o PCI Express utiliza um sistema de codificação chamado 8b/10b, onde são incluídos dois bits adicionais para cada byte de dados transmitidos. Estes bits adicionais permitiram eliminar a necessidade do uso de pinos adicionais para enviar o sinal de sincronismo, o que simplificou bastante o design e melhorou a confiabilidade, mas em compensação reduziu o volume real de dados transmitidos.

É por causa dessa característica que os 2.5 gigabits (PCIe 1.x) ou 5.0 gigabits (no PCIe 2.0) de banda oferecidos por cada linha de dados equivalem a apenas 250 e 500 MB/s de dados e não a 312.5 e 625, que seriam o resultado da tradicional divisão por 8.

» Mais posts

  1. 20 respostas para “PCI Express: compatibilidade, linhas de dados e o PCIe 2.0”

  2. Thiago em 5 fev, 2010

    Muito interessante. Mais um pouquinho de conhecimento adquirido. Só tenho a agradecer. =]

    Só uma coisa: há previsão do surgimento do PCI-Express 3.0?

  3. Italo em 6 fev, 2010

    Pergunta: como fica a questão de retrocompatibilidade no slot PCI Express X16 no socket LGA 1156, em o controlador PCI-E fica no processador??? Funciona normalmente ou só VGAs mesmo???

  4. Carlos Morimoto em 6 fev, 2010

    Ele funciona da mesma maneira. O fato de terem movido o controlador para dentro do processador, é apenas uma mudança arquitectural, não altera o funcionamento do controlador. Salvo problemas inesperados de compatibilidade (que são normalmente corrigidos através de atualizações de drivers e/ou BIOS) a compatibilidade é a mesma.

  5. antonio em 6 fev, 2010

    E quanto ao barramento entre a memória e a GPU em uma placa de vídeo (64,128,256… bits)? seria a excessão por não conseguirem transformá-la em serial?

  6. iendic em 6 fev, 2010

    Onde posso encontrar uma lista dos chipsets que suportam pci-e 1.0 e o 2.0 ate o momento.

  7. pacifico379 em 6 fev, 2010

    Como muitas VGAs são slot duplo, acabam matando um slot 1x. Com a retrocompatibilidade resolvemos esse problema.

  8. Rafael em 8 fev, 2010

    Você disse: "Graças a toda essa flexibilidade, temos alguns casos interessantes, como o desta Intel D975BX da foto a seguir. Ela possui três slots PCI Express 16x (um deles com 16 linhas de dados e o outro com apenas 8 linhas)"

    Pergunta: Um é de 16 linhas e o outro de 8 linhas, não são 3 PCI-E?

    Como saber qual é a de 8 linhas para que eu não encaixe a placa de vídeo no slot errado?

    Parabéns pelo artigo, muito informativo, nunca pensei que houvesse tal compatibilidade.

    Abraço

  9. Timbaland em 8 fev, 2010

    "Cada linha PCI Express utiliza 4 pinos de dados (dois para enviar e dois para receber", mais com isso seria, esses 4 pinos em cada linha?

  10. Marcelo em 8 fev, 2010

    Uma idéia meio louca:
    Minha placa mãe possui apenas um conector PCI-E x16 e dois conectores PCI-E x1 (Asus M4N78-PRO). Seria possível colocar uma segunda placa de vídeo PCI-E x16 abrindo o conector x1 “a força”?

  11. Richard Van Dehrer em 9 fev, 2010

    Se você tiver cuidado, sim. A outra opção é serrar os contatos, mas isso é difícil de fazer com precisão e, obviamente, é irreversível.

  12. Thiago em 12 fev, 2010

    Com um placa mar com 2 PCI, 1 PCI Express 16x, posso colocar a placa de video GEFORCE 9400 que é de 2.0X16? Vai funcionar? Ou devo colocar a placa Geforce 8400 que é somente PCI-eX16?

  13. João Lucas em 15 fev, 2010

    EXELENTE post !

    Cara, eu acabei de comprar o livro de Hardware. Se o Morimoto incluir todos estes posts na edição nova eu teri que comprá-la imediatamente !

    Estes posts sobre Hardware ultimamente tem sido muito ricos.

    A edição atual já é fantástica, essa que está por vir então, eu nem consigo imaginar.

    Parabens Morimoto ! (pela 5463487689263287ª vez…)

  14. adrielpvp em 20 fev, 2010

    ola, teria como eu utilizar uma placa para slot pci comum em um slot pci express 16x?

  15. Pedro em 2 mar, 2010

    Olá… Bem o barramento PCI Express podem operar a 2.5 GHz e o bus é de 8 bits certo?
    Como fazer a conta de taxa de transferencia e chegar no valor de 250MB/s? Já q a formula é T=fxb, = 2,5G x 1B = 2,5GB/s
    Não entendo o calculo do Bus.
    Obrigado

  16. fabiano em 13 abr, 2010

    Meu Amigo minha placa mãe é uma asus p5vdc-x ela suporta agp,pci,e pci-ex x16 (max.x4mode).
    Eu acabei de comprar uma xfx gts250 pci-ex 2.o
    Vai funcionar to perdido me ajuda???

  17. borges em 13 jun, 2010

    Meu amigo! depois de ler tua matéria comprei uma fonte de 500w reais e uma placa de vídeo Geforce 9800GT 512mb ddr3 Modelo: pv-t98g-yaf3 pci-ex 2.0.
    Minha placa mãe é uma ASUS p5vdc-x, tem slot agp e também pci-ex 16x (mode x4)só que não tem jeito do pc funcionar.
    o que pode estar acontecendo? por favor me ajuda !!!
    Chamei um técnico aqui e ele disse, que vou ter que trocar também a placa mãe mas, não acreditei muito nele pois lembrei da tua matéria.

  18. Couto em 29 jun, 2010

    Borges. Vai a dica!

    Acesse o site de sua placa veja que existe uma parte de testes, ou compatibilidade. Veja a lista de compatibilidade da placa, tbm aconselho atualizar a bios para a ultima versão disponivel e tbm entre no setup e procure a opçao de inicializaçao do video, geralmente em integrate devices e procure onde esta escrito algo como "FIRST Video [internal]","Video Inicialization", MUDE PARA PCI-E, Desligue o micro e reinstale sua placa.

    Se tudo isso nao fincionar, teste a placa de video em outra maquina para verificar se nao está com problemas, caso nao esteja é imcompatibilidade mesmo.

    Abraçao e espero ajudar!

  19. Maicon em 27 jul, 2010

    Galera ! estou com o mesmo problema do Borges, ja tinha pesquisado em varios lugares algo a respeito e finalmente encontrei aqui,comprei uma xfx 9800gt pv-t98g-yaf3 minha mb é a P5G41C-M novinha e não deu sinal nenhum de video e minha fonte 400real. ja testei numa mb inferior a minha P5KPL-AM com fonte de 300 real e funcionou, fiquei sem entender. O que devo fazer ?
    abraço a todos

  20. Maicon em 27 jul, 2010

    CONFIGURAÇÃO DO MEU PC

    Intel® Core™2 Quad Processor Q6600
    (8M Cache, 2.40 GHz, 1066 MHz FSB)
    2X RAM COSAIR 1GB 800 DDR2
    2 HDS 160GB E 250GB FONTE 400 REAL
    PLACA MÃE ASUS P5G41C-M

  21. Leo em 1 ago, 2010

    Galera tenho o mesmo problema. Peguei uma 9800GT, mas minha MB é antiga, com PCIE x4. Não ligou de jeito nenhum, não deu boot com a 9800GT. botei uma 3d antiga (meio com defeito que tenho) e o pc funcionou legal. Acho que o jeito é mudar a MB mesmo, já dei update na BIOS mas não teve jeito…


Comente: