PCI Express

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa
Foto de um slot PCI Express x16.
1 x PCI; 2 x PCIe 2.0 x1; 1 x PCIe 2.0 x16.

PCI-Express (também conhecido como PCIe ou PCI-Ex) é o padrão de slots (soquetes) criada para placas de expansão utilizadas em computadores pessoais para transmissão de dados. Introduzido pela empresa Intel em 2004, o PCI-Express foi concebido para substituir os padrões AGP e PCI.

Sua velocidade vai de 1x até 32x, mesmo a versão 1x consegue ser seis vezes mais rápido que o PCI tradicional. No caso das placas de vídeo, um slot PCI Express de 16x (transfere até 4GB por segundo) é duas vezes mais rápido que um AGP 8x. Isto é, possível graças a sua tecnologia, que conta com um recurso que permite o uso de uma ou mais conexões seriais para transmissão de dados.

A tecnologia utilizada no PCI-Ex conta com um recurso que permite o uso de várias conexões seriais ("caminhos" também chamados de lanes) para transferência de dados. Se um determinado dispositivo usa apenas um caminho (conexão) a demais que o PCI comum, então diz-se que este utiliza o barramento PCI Express 1x, se utiliza 4 conexões, sua denominação é PCI Express 4x e assim sucessivamente. Cada lane pode ser bidirecional, isto é, recebe e envia dados (250 MB/s) em ambas direções simultaneamente.

O PCI Express usa uma arquitetura de baixa tensão elétrica nas suas conexões, chamadas de linhas LVDS (Low Voltage Differential Signalling). Devido isso, permite grande imunidade ao ruído e também permite aumentar a largura de banda. Isso foi possível graças à redução de atrasos nas linhas de transmissão (timing skew).

Resumo[editar | editar código-fonte]

O PCI Express é um barramento ponto a ponto, onde cada periférico possui um canal exclusivo e bidirecional de comunicação com o chipset. Isto contrasta fortemente com o padrão PCI, que é um barramento em que todos os dispositivos compartilham a mesma comunicação, de 32 bits (ou 64 bits), num caminho paralelo.

Há contradições quanto a forma de se referir ao PCI Express como sendo um barramento, já que, no sentido estrito da palavra, o termo "barramento" surgiu para descrever um canal de comunicação compartilhado por vários dispositivos ou periféricos, no entanto, em toda a sua documentação é usado o termo "PCI Express bus" para mencioná-lo.

Foto de uma placa de vídeo PCI Express x16.

Cada slot PCIe roda a um, dois, quatro, oito, dezesseis ou trinta e dois caminhos de dados entre a placa mãe e a placa ligada ao slot. A contagem dos caminhos é escrita com um sufixo "x", por exemplo, 1x para um único caminho e 16x para uma placa de dezesseis caminhos.

Trinta e dois caminhos de 250 MB/s (PCIe 1.1) apresenta uma taxa máxima de transferência de 8 GB/s (250 MB/s multiplicado por 32x, ou seja, 8 bilhões de bytes por segundo) em cada sentido. No entanto, o maior tamanho de uso comum é de 16x, resultando numa taxa de transferência de 4 GB/s (250 MB/s multiplicado por 16x) em cada sentido. Por isso em perspectiva, um único caminho do PCIe 1.1 tem quase o dobro da taxa de dados do barramento PCI tradicional. Um slot de 4x tem uma taxa de transferência comparável ao da versão mais rápida do antigo barramento paralelo PCI-X 1.0, e um slot de 8x tem uma taxa de transferência comparável ao da versão mais rápida do AGP.

Slots PCIe suportam uma variedade de tamanhos diferentes referenciados a seu número máximo de caminhos, ou seja, 1x, 2x, 4x, 8x, 16x e 32x. Uma placa PCIe caberá em um slot de seu tamanho ou de tamanhos maiores, mas não caberá em um slot PCIe menor.

O número de caminhos realmente conectados a um slot, pode ser menor que o número suportado pelo tamanho físico do slot. Como exemplo: um slot 8x que na verdade só é executado em 1x (esse slot permitirá o uso a qualquer placa 1x, 2x, 4x ou 8x), embora apenas funcionará à velocidade de 1x. Este tipo de soquete é descrito como um slot “8x (Modo 1x)”, o que significa que esse slot aceita fisicamente conexões de até 8x, mas que neste exemplo só funcionará com 1x de velocidade. A vantagem é que uma gama de placas PCIe podem ser utilizadas sem que haja necessidade de que o hardware da placa mãe dê suporte a taxa de transferência total.

O número de caminhos é "negociado" durante a inicialização ou explicitamente durante a operação. Esta flexibilidade na contagem de caminhos pode proporcionar um padrão único para as necessidades de placas de banda larga (por exemplo, placas gráficas, placas 10 Gigabit Ethernet e placas Multiport Gigabit Ethernet), enquanto também pode ser rentável para as placas menos exigentes. Esse recurso permite que uma placa de 1x possa ser inserida em um slot 4x. O sistema irá desabilitar a ligação para o slot 4x e passará a fornecer dados para a placa utilizando apenas 1 caminho. O que não impossibilita que a placa-mãe realize operação a 4x neste slot em particular, se estiver conectado a uma placa de 4x.

Assim como nas placas de expansão para desktops e servidores, a interface elétrica PCIe é usada em uma variedade de outros formatos de interface, incluindo o ExpressCard, interface de expansão para laptops. PCIe é também muitas vezes usado para conectar-se periféricos integrados na placa-mãe.

As especificações do formato estão sendo mantidas e desenvolvidas por um grupo de mais de 900 líderes industriais da empresa denominada PCI-SIG (PCI Special Interest Group).

Visão Geral[editar | editar código-fonte]

A camada física do PCIe é constituída por uma rede de interconexões seriais. Na placa-mãe, um switch age como um gerenciador de conexões seriais que permite uma interconexão de dispositivos ponto-a-ponto para ser rapidamente roteada. Este comportamento de conexão dinâmica ponto-a-ponto leva mais uma vez a um paralelismo no qual um par de dispositivos podem comunicar uns com os outros, ao mesmo tempo. (Em contrapartida, as interfaces dos PCs mais antigos tinham todos os dispositivos permanentemente conectados ao mesmo barramento, portanto, apenas um dispositivo poderia falar de uma só vez.) É semelhante à diferença entre conversar durante um telefonema onde você só pode ligar para uma pessoa de cada vez, e conversar, em uma reunião, onde você pode conversar com uma pessoa diretamente ao seu lado. O modelo também permite agrupamento de canal, em que vários caminhos são colados a um único par de dispositivos, a fim de proporcionar maior largura de banda.

O formato serial "colado" foi escolhido, devido a um fenômeno (timing skew) que é uma consequência direta das limitações impostas pela velocidade de um sinal elétrico, o que é feito em uma velocidade finita. Porque diferentes sinais em uma interface tem diferentes comprimentos, paralelamente sinais transmitidos ao mesmo tempo a partir de uma fonte chegam ao destino em momentos diferentes. Quando a taxa do clock aumenta ao ponto em que o comprimento de onda de um único bit for inferior a esta diferença de caminho de comprimento, os bits de uma só palavra não chegam ao destino ao mesmo tempo. Assim, a velocidade do sinal elétrico, combinado com a diferença de comprimento entre o maior e o menor sinal numa interconexão paralela, naturalmente requer a máximo largura de banda. O canal serial “colado” evita esse problema por não exigir que os bits cheguem simultaneamente. PCIe é apenas um exemplo de uma tendência que distancia-se do barramento paralelo ao utilizar interconexões seriais. Para outros exemplos, veja HyperTransport, Serial ATA, USB, SAS, FireWire ou RapidIO.

PCIe é mantido principalmente pela Intel, que começou a trabalhar no padrão com o projeto Arapahoe depois de remover o sistema InfiniBand. PCIe destina-se a ser utilizado apenas como uma interligação local. Ele foi projetado para ser compatível com o software padrão PCI preexistente, fazendo a conversão de placas PCI e de sistemas para PCI Express, tão simples como a substituição da camada física sem exigir uma mudança de software. O aumento da largura de banda no PCI Express levou a unificação, como é rápido o suficiente para substituir quase todos os barramento internos existentes, incluindo AGP e PCI. A Intel prevê um único controlador PCI Express “falando” com todos os dispositivos externos no futuro, ao invés da solução northbridge/southbridge usada em máquinas atuais.

Contrariamente ao que precede os padrões de interfaces de expansão, PCIexpress é um "barramento" ponto-a-ponto. Isto significa que, embora a norma PCI-X (133 MHz 64 bits) e PCIe 4x têm aproximadamente a mesma taxa de transferência dos dados, PCIe 4x terá melhor desempenho se pares de dispositivo múltiplos estiverem se comunicando simultaneamente ou se a comunicação é entre um único par de dispositivos (bidirecional).

Histórico[editar | editar código-fonte]

Embora em desenvolvimento, PCI Express (PCIe) foi submetido a níveis internos como a Intel Arapahoe ou 3GIO para 3 ª geração E/S (dispositívos de entrada e saída).

PCIe é uma tecnologia em constante desenvolvimento e aperfeiçoamento. A antiga versão do PCIe era descrita com a versão 1.1; A partir de 15 de janeiro de 2007, o PCI-SIG disponibilizou o PCI Express versão 2.0, no qual a taxa de transferência de dados de cada faixa era o dobro da versão 1.1. Este é compatível com a versão 1.1 permitindo que placas mais velhas ainda sejam capazes de trabalhar em máquinas equipadas com esta nova versão.

  • Cada "caminho" do PCIe 1.1 envia informações a uma taxa de 250 MB/s (250 milhões de bytes/seg) em cada sentido.
  • O PCIe 2.0 dobra essa taxa de transferência de dados. O barramento PCI Express é encontrado nos mais novos sistemas como os baseados na Intel X38 ou na AMD 780G chipsets.
  • As últimas propostas para o lançamento do padrão PCIe 3.0, que está previsto para 2009-2010, é que a velocidade das ligações aumente ainda mais.

PCI Express 2.0[editar | editar código-fonte]

Em janeiro de 2007 foi concluído o desenvolvimento do padrão PCI Express 2.0 (PCIe 2.0), que oferece o dobro de velocidade do padrão antigo (v.1.1), ou seja, 500 MB/seg (também bidirecional). Um slot PCIe modelo x16 no padrão 2.0, poderá transferir até 8 GB/seg contra 4 GB/seg do padrão anterior.

Quanto a compatibilidade entre os padrões 1.0, 1.1 e 2.0, no FAQ do PCI-SIG, consta que as placas de vídeo PCIe padrão 2.0 se adaptam as placas-mãe com barramentos PCIe 1.x. E o inverso também é verdadeiro, as placas-mãe PCIe 2.0 aceitam placas de vídeo 1.X.[1]

Vale lembrar que muitas pessoas estão tendo dúvidas quanto ao desempenho de placas de video com suporte à PCIe 2.0 utilizadas em PCIe 1.1, não se encontra em lugar nenhum testes e comparativos mostrando o desempenho de uma mesma placa de video nesta situação (voltagem e taxa de transferencia).

Em junho de 2007 a Intel liberada a especificação do chipset P35, que não só o apoio PCIe 2.0 PCIe 1.1. Algumas pessoas podem ser confundidas com a P35 diagrama de bloco que afirma a Intel, P35 tem um link gráficos PCIe x16 (8 GB/seg) e 6 links x1 PCIe (500 MB/seg cada) com mesmo número de vias e largura de banda do padrão PCIe 2.0, mas foi libertado antes que o mesmo fosse finalizado. AMD começou a colaborar com PCIe 2.0 com o seu chipset RD700 série e a NVIDIA revelou que o MCP72 será a sua primeira PCIe 2.0.[2]

PCI Express 3.0[editar | editar código-fonte]

Segundo o site Baboo o PCI-Special Interest Group (PCI-SIG) decidiu adiar a nova geração do padrão PCI Express (3.0) até o segundo trimestre de 2010, pois o plano anterior era lançar o PCI Express 3.0 em 2009 e os primeiros produtos baseados nele chegariam ao mercado em 2010.[3] Aparentemente o SIG tomou esta decisão para conseguir mais tempo para verificar e garantir a retrocompatibilidade e outros detalhes. Quando for lançado, o padrão 3.0 deve oferecer taxas de transferência de até 32 GB/seg e menor consumo de energia do que o padrão anterior.

Além das placas de vídeo, controladoras de rede de alta velocidade e muitas controladoras de discos tendem a ser baseadas no PCI Express. Com os discos e as redes oferecendo altas velocidades, o PCI-Ex precisa ficar mais rápido para poder suportar a alta largura de banda.

De acordo com Al Yanes, presidente e chairman do PCI-SIG, a retrocompatibilidade permitirá que uma placa baseada no padrão 3.0 seja usada em um slot de padrão anterior sem nenhum problema e vice-versa.

Protocolo de Hardware[editar | editar código-fonte]

A ligação do PCIe está construída em torno pares de seriais (1-bit) unidirecionalmente dedicados, conexões ponto-a-ponto conhecidas como "caminhos". Isto está em nítido contraste com a ligação PCI, que é um barramento onde todos os dispositivos compartilham a mesma bidirecional, de 32 bits (ou 64 bits), paralela ao barramento.

PCI Express é um protocolo de camadas, constituído por uma camada de Transações, uma camada de Ligação, e uma camada Física. A camada de Ligação é ainda dividida de modo a incluir uma subcamada denominada Controle de Acesso de Mídia. A camada Física é ainda dividida em duas subcamadas, a Lógica e a Elétrica. A subcamada Lógica, por sua vez contém uma Subcamada de Codificação Física (do inglês Physical Coding Sublayer - PCS). (Termos adotados do padrão IEEE 802 - modelo de protocolo de rede).

1 Transações
2 Ligação
2 -> Controle de Acesso de Mídia
3 Física
3 -> Lógica
3 -> Codificação Física
3 -> Elétrica

Camada Física[editar | editar código-fonte]

A especificação da camada Física do PCIe é dividida em duas subcamadas, o que corresponde as camadas Eléctrica e Lógica. A camada Lógica é dividida em uma Subcamada de Codificação, embora que esta divisão não é formalmente parte da especificação do PCIe. Uma especificação publicada pela Intel, sobre a interface física do PCI Express, define a funcionalidade do Controle de Acesso de Mídia e da Subcamada de Codificação Física e também a interface entre esses duas subcamadas. A especificação da interface física do PCIe identifica também a camada Atalho de Mídia Física, que inclui o Serializador/Deserializador e outros circuitos analógicos, no entanto, uma vez que as implementações do Serializador/Deserializador variam muito entre os vendedores, a interface física do PCIe não especifica uma interface entre a Subcamada de Codificação Física e o Atalho de Mídia Física.

A ligação entre quaisquer dois dispositivos PCIe é conhecido como uma "ligação", e se desenvolve a partir de uma colecção de uma ou mais faixas. Todos os dispositivos devem suportar no mínimo um caminho único (1x). Os dispositivos opcionalmente podem suportar ligações compostas de 2, 4, 8, 12, 16, ou 32 caminhos. Isto permite uma excelente compatibilidade de duas formas:

  • Uma placa PCIe irá fisicamente conectar (e funcionar corretamente) em qualquer slot que seja pelo menos tão grande como é (por exemplo, um cartão de tamanho x1 irá trabalhar em qualquer tamanho slot);
  • Num slot de uma grande dimensão física (por exemplo, 16x) pode conectar, eletricamente, uma placa com menos caminhos (por exemplo, 1x, 4x, ou 8x), contanto que o slot fornece a alimentação e as ligações-terra exigidas pela maior dimensão física do slot.

Em ambos os casos, o PCIe irá negociar o mais elevado número de caminhos suportados.

Não é possível colocar uma placa PCIe fisicamente maior (por exemplo, uma placa de 16x) em um slot de menor dimensão, apesar de ambos serem compatíveis quanto ao sinal. Algumas placas-mães têm os slots PCIe em aberto, o que permitiria que uma placa, fisicamente, maior pudesse ser inserido em um slot PCIe menor.

A largura de um conector PCIe é 8,8 mm, enquanto que a altura é 11,25 mm, e o comprimento é variável. A metade ‘secundária’ do conector é 11,65 mm de comprimento e contém 22 pinos, enquanto que o comprimento da metade ‘principal’ é variável. A espessura da placa que é encaixada no conector é 1,8 milímetros.

Caminhos Total de pinos Pinos da metade 'principal' Comprimento Total Comprimento da metade 'principal'
1x 36 14 25 milímetros 7,65 milímetros
4x 64 42 39 milímetros 21,65 milímetros
8x 98 76 56 milímetros 38,65 milímetros
16x 164 142 89 milímetros 71,65 milímetros

Transmissão de dados[editar | editar código-fonte]

O PCI envia todas as mensagens controle, incluindo interrupções, pela mesma ligação usada para os dados. O protocolo serial nunca pode ser bloqueado, de forma que a latência ainda é comparável ao PCI, que tem linhas de interrupção dedicadas.

A transmissão de dados em múltiplos caminhos é intercalada, o que significa que cada byte é enviado por caminhos sucessivos. A especificação do PCIe refere-se a esta intercalação como "data striping". Apesar de requisitar complexidade de hardware para sincronizar os dados, data striping pode aumentar significativamente o volume de processamento da ligação. Devido às exigências, striping pode não necessariamente reduzir a latência de pequenos pacotes de dados em uma ligação.

Tal como acontece com todos os dados que utilizam protocolos de transmissão serial, informações clocking devem ser incorporados no sinal. Ao nível físico, PCI Express utiliza o 8B/10B, esquema de codificação muito comum para assegurar aquela sequência de uns ou zeros consecutivos está limitando o comprimento. Isto é necessário para evitar que o receptor perca a trilha de onde os bits estão. Neste esquema de codificação, cada 8 bits (não codificados) de dados são substituídos por 10 bits (codificados) para transmitir os dados, consumindo um extra de 25% do total da largura de banda elétrica.

Muitos outros protocolos (tais como SONET) utilizam uma forma diferente de codificação conhecido como "scrambling" para inserir informações de clock nos fluxos de dados. A especificação do PCI Express também define um algoritmo de scrambling, mas ele é utilizado para reduzir a interferência eletromagnética, impedindo a repetição do padrão de dados no fluxo de dados transmitidos.

Taxa de sinalização[editar | editar código-fonte]

A primeira geração PCIe transfere dados a 2,5 GT/seg (gigatransfer por segundo) sinalizando taxa por caminho. O PCIe versão 2.0 dispõe de um aumento da taxa sinalizando a 5 GT/seg por caminho. Uma especificação da terceira geração PCIe, que está em desenvolvimento, prevê aumentar ainda mais a taxa.

Data Link Layer[editar | editar código-fonte]

A Camada de Ligação de Dados implementa a sequenciação do Transaction Layer Packets (TLPs) que são geradas pela Transaction Layer, a protecção dos dados de 32 bits através de um controlo de redundância cíclica de código (CRC, neste contexto conhecido como LCRC) e um aviso protocolo (sinalizadores ACK e NAK). TLPs passam um cheque LCRC e um número seqüencial que é verificado e dado um resultado como um aviso (ACK), enquanto aqueles que não cumprem essas verificações, um resultado negativo no aviso (NAK). TLPs que resultam em um NAK, ou timeouts que ocorrem enquanto se espera por um ACK, resultam no renvio das TLPs a partir de um buffer especial, na transmissão de dados via Camada de Ligação de Dados.

Sinais ACK/NAK são comunicados através de um maço de baixo nível conhecido como uma data link layer packet, ou DLLP. DLLPs também são usados para controlar fluxo, comunicar informações entre as duas camadas de transação entre dispositivos conectados, bem como de algumas funções de gestão.

Transaction Layer[editar | editar código-fonte]

PCIe implementa dividir transações (operações com pedido e resposta separados por tempo), permitindo a ligação para o transporte de outros veículos, enquanto o dispositivo alvo recolhe dados para a resposta.

PCI Express utiliza credit-based para controlo de fluxo. Neste esquema, um dispositivo publicita um montante inicial de crédito para cada um dos buffers receber no seu Transaction Layer. O dispositivo na extremidade oposta da ligação, quando as transações para enviar ao dispositivo, irá contar o número de créditos consumidos por cada TLP a partir da sua conta. O dispositivo só pode transmitir uma TLP quando isso não resulte em seu consumidos crédito, superior a conta limite de crédito. Quando o dispositivo receptor termina o tratamento do TLP a partir do seu tampão, é sinais de um regresso aos créditos do dispositivo de envio que, depois, aumenta o limite de crédito pela montante restaurada. Os balcões são modulares de crédito, bem como a comparação dos créditos consumidos para limite de crédito requer módulo. A vantagem deste sistema é a de que a latência de crédito que retornoa, não afeta o desempenho, desde que o limite de crédito não seja encontrado. Esta hipótese é geralmente cumprida se cada dispositivo é projetado com dimensões adequadas de buffer.

Primeira - geração PCIe é freqüentemente citado para apoiar uma taxa de transferência de dados de 250 MB/seg em cada sentido, por (x1) lane. Este valor é o cálculo da taxa física sinalizadoras (2,5 Gbaud) dividida pela codificação overhead (10 bits por byte). Isto significa que em uma PCIe (x16) lane, teoricamente seria capaz de transferir dados a 250MB/seg * 16 = 4 GB/seg em cada sentido. Enquanto isto é correto em termos de bytes, cálculos mais significativos, será baseada em dados utilizáveis pela taxa de carga útil, o que depende do perfil do tráfego, que é uma função do alto nível (software) e a aplicação que protocola os níveis intermediários.

Competir protocolos[editar | editar código-fonte]

Surgiram normas para várias comunicações de banda larga baseados em arquitetura serial. Estes incluem, mas não estão limitados, a HyperTransport, InfiniBand, RapidIO, e StarFabric.

Essencialmente, as diferenças são baseadas em que as implicações entre a flexibilidade e a extensibilidade vs latência em gerais. Um exemplo deste tipo de troca é complexa, cabeçalho acrescentando informações transmitidas a um pacote para permitir um complexo roteamento. Esta sobrecarga adicional reduz a eficácia da largura de banda da interface e complica a descoberta e inicialização de software pelo bus. Também tornar o sistema hot plug-exige que o software pista topologia muda. Exemplos de bus adaptados para o efeito são InfiniBand e StarFabric.

Status[editar | editar código-fonte]

A partir de 2007, foi substituído o barramento AGP por PCI Express como a interface mais comum para placas gráficas em novos sistemas. Com poucas exceções, todas as placas gráficas sendo liberada hoje (2008) da ATI e NVIDIA usam PCIe. NVIDIA utiliza a transferência de dados de banda larga PCIe para a sua recém-desenvolvidos Scalable Link Interface (SLI) tecnologia, que permite que duas placas gráficas de chipset do mesmo modelo e número a ser executado como um par, permitindo maior desempenho. ATI também tem desenvolvido um sistema dual-GPU PCIe baseada no chamado CrossFire. Quase no final de 2007, AMD divulgou um chipset da placa mãe, a AMD 790FX, que suporta até quatro slots PCIe x16, permitindo tri-GPU e quad-GPU para placas ATI.

A aceitação de outras formas de expansão PC tem sido muito lento e PCI permanece dominante. PCI Express é comumente utilizado para onboard gigabit Ethernet e wi-fi mas add-in cards estão ainda geralmente PCI, em especial no segmento inferior do mercado.

Placas de som, modems, cartões de porta serial e de outros cartões com baixa velocidade ainda são quase todas as interfaces PCI. Por esta razão mais placas mães apoiando PCI slots PCI Express oferece legado tão bem.

External PCI Express[editar | editar código-fonte]

O nome utilizado pelo PCI-SIG (PCI Interesse Especial Group) é PCI Express externas cabeamento. O nome é mais comumente usado externas PCI Express (28400-Google hits, 2008-03) ou abreviado PCIe externas. Outro nome utilizado é Cabled PCI Express (2400 Google-hits, 2008-03) ou abreviado Cabled PCIe.

Externas PCIe Video Cards[editar | editar código-fonte]

PCIe externas poderia dar a um notebook o poder gráfico de uma área de trabalho, através da ligação com qualquer um notebook PCIe (fechada em sua própria habitação externo), no entanto, apenas um produto finalizado e dois conceito produtos existentes. Todos os três entregar o poder da placa de vídeo externa exibe apenas, e todos os ligar a um notebook através de uma ExpressCard interface que limita a largura de banda de x16 inserida uma placa de vídeo (4 GB/seg em cada sentido), para apenas x1 (250 MB/seg em cada sentido).

Referências

Ligações externas[editar | editar código-fonte]

Commons
O Commons possui imagens e outras mídias sobre PCI Express