Pesquisa · Mapa mental

Peripheral Component Interconnect

Peripheral Component Interconnect (PCI) é um barramento de computador local para conectar dispositivos de hardware em um computador e faz parte do padrão PCI Local Bus. O barramento PCI suporta as funções encontradas em um barramento de processador, mas em um formato padronizado que é independente de qualquer barramento nativo do processador. Os dispositivos conectados ao barramento PCI parecem a um barramento mestre estar conectados diretamente ao seu próprio barramento e recebem endereços no espaço de endereço do processador. É um barramento paralelo, síncrono a um único clock de barramento. Os dispositivos conectados podem assumir a forma de um circuito integrado instalado na placa-mãe ou uma placa de expansão que se encaixa em um slot. O PCI Local Bus foi implementado pela primeira vez em compatíveis com IBM PC, onde substituiu a combinação de vários slots lentos Industry Standard Architecture (ISA) e um slot rápido VESA Local Bus (VLB) como a configuração do barramento. Posteriormente, foi adotado para outros tipos de computadores. As placas PCI típicas usadas em PCs incluem: placas de rede, placas de som, modems, portas extras como Universal Serial Bus (USB) ou serial, placas sintonizadoras de TV e adaptadores host de unidade de disco rígido. As placas de vídeo PCI substituíram as placas ISA e VLB até que as crescentes necessidades de largura de banda superaram as capacidades do PCI. A interface preferida para placas de vídeo tornou-se então a Accelerated Graphics Port (AGP), um superconjunto do PCI, antes de dar lugar ao PCI Express.

Fonte: Wikipédia (pt)Atualizado em 09/07/2026
01

História

O trabalho no PCI começou no Intel Architecture Labs (IAL, também Architecture Development Lab) por volta de 1990. Uma equipe composta principalmente por engenheiros do IAL definiu a arquitetura e desenvolveu um chipset e uma plataforma de prova de conceito (Saturn) em parceria com equipes nos sistemas de PC de mesa da empresa e nas principais organizações de produtos lógicos. O PCI foi imediatamente colocado em uso em servidores, substituindo a Micro Channel architecture (MCA) e a Extended Industry Standard Architecture (EISA) como o barramento de expansão de servidor de escolha. Em PCs convencionais, o PCI foi mais lento para substituir o VLB e não ganhou penetração significativa no mercado até o final de 1994 em PCs Pentium de segunda geração. Em 1996, o VLB estava quase extinto e os fabricantes adotaram o PCI até mesmo para computadores Intel 80486 (486). O EISA continuou a ser usado junto com o PCI até 2000. A Apple Computer adotou o PCI para computadores Power Macintosh profissionais (substituindo o NuBus) em meados de 1995 e a linha de produtos Performa para o consumidor (substituindo o LC Processor Direct Slot (PDS)) em meados de 1996.

02

Configuração automática

PCI fornece memória separada e espaços de endereço de porta de I/O mapeados em memória para a família de processadores x86, 64 e 32 bits, respectivamente. Endereços nesses espaços de endereço são atribuídos por software. Um terceiro espaço de endereço, chamado PCI Configuration Space, que usa um esquema de endereçamento fixo, permite que o software determine a quantidade de memória e espaço de endereço de I/O necessários para cada dispositivo. Cada dispositivo pode solicitar até seis áreas de espaço de memória ou espaço de porta de entrada/saída (I/O) por meio de seus registradores de espaço de configuração. Em um sistema típico, o firmware (ou sistema operacional) consulta todos os barramentos PCI no momento da inicialização (por meio do PCI Configuration Space) para descobrir quais dispositivos estão presentes e quais recursos do sistema (espaço de memória, espaço de I/O, linhas de interrupção, etc.) cada um precisa. Ele então aloca os recursos e informa a cada dispositivo qual é sua alocação.

03

Interrupções

Os dispositivos precisam seguir um protocolo para que as linhas de solicitação de interrupção (IRQ) possam ser compartilhadas. O barramento PCI inclui quatro linhas de interrupção, INTA# a INTD#, todas disponíveis para cada dispositivo. Até oito dispositivos PCI compartilham a mesma linha de IRQ (LNKA a LNKH) em sistemas x86 habilitados para APIC. As linhas de interrupção não são conectadas em paralelo, assim como as outras linhas de barramento PCI. As posições das linhas de interrupção giram entre os slots, então o que parece para um dispositivo como a linha INTA# é INTB# para o próximo e INTC# para o seguinte. Dispositivos de função única geralmente usam seu INTA# para sinalização de interrupção, então a carga do dispositivo é distribuída de forma bastante uniforme entre as quatro linhas de interrupção disponíveis. Isso alivia um problema comum com o compartilhamento de interrupções. O mapeamento de linhas de interrupção PCI em linhas de interrupção do sistema, por meio da ponte de host PCI, depende da implementação. O firmware específico da plataforma ou o código do sistema operacional devem saber disso e definir o campo "linha de interrupção" no espaço de configuração de cada dispositivo, indicando a qual IRQ ele está conectado.

04

Especificações de hardware convencionais

Essas especificações representam a versão mais comum de PCI usada em PCs normais: A especificação PCI também fornece opções para sinalização de 3,3 V, largura de barramento de 64 bits e clock de 66 MHz, mas elas não são comumente encontradas fora do suporte PCI-X em placas-mãe de servidor. O árbitro de barramento PCI realiza arbitragem de barramento entre vários mestres no barramento PCI. Qualquer número de mestres de barramento pode residir no barramento PCI, bem como solicitações para o barramento. Um par de sinais de solicitação e concessão é dedicado a cada mestre de barramento.

Voltagem e codificação da placa

Placas PCI típicas têm um ou dois entalhes de chave, dependendo da voltagem de sinalização. Placas que requerem 3,3 volts têm um entalhe a 56,21 mm da placa traseira da placa; aquelas que requerem 5 volts têm um entalhe a 104,41 mm da placa traseira. Isso permite que as placas sejam encaixadas somente em slots com uma voltagem que elas suportam. "Placas universais" que aceitam qualquer voltagem têm ambos os entalhes de chave.

Pinagem do conector

O conector PCI é definido como tendo 62 contatos em cada lado do conector de borda, mas dois ou quatro deles são substituídos por entalhes de chave, então uma placa tem 60 ou 58 contatos em cada lado. O lado A se refere ao 'lado da solda' e o lado B se refere ao 'lado do componente': se a placa for segurada com o conector apontando para baixo, uma vista do lado A terá a placa traseira à direita, enquanto uma vista do lado B terá a placa traseira à esquerda. A pinagem dos lados B e A são os seguintes, olhando para baixo no conector da placa-mãe (os pinos A1 e B1 são os mais próximos da placa traseira). O PCI de 64 bits estende isso com 32 contatos adicionais em cada lado, que fornecem AD[63:32], C/BE[7:4]#, o sinal de paridade PAR64 e vários pinos de alimentação e aterramento.

Mistura de placas PCI de 32 e 64 bits em slots de larguras diferentes

A maioria das placas PCI de 32 bits funcionará corretamente em slots PCI-X de 64 bits, mas a taxa de clock do barramento será limitada à frequência de clock da placa mais lenta, uma limitação inerente da topologia de barramento compartilhado do PCI. Por exemplo, quando um periférico PCI 2.3 de 66 MHz é instalado em um barramento PCI-X com capacidade de 133 MHz, todo o backplane do barramento será limitado a 66 MHz. Para contornar essa limitação, muitas placas-mãe têm dois ou mais barramentos PCI/PCI-X, com um barramento destinado ao uso com periféricos PCI-X de alta velocidade e o outro barramento destinado a periféricos de uso geral. Muitas placas PCI-X de 64 bits são projetadas para funcionar no modo de 32 bits se inseridas em conectores mais curtos de 32 bits, com alguma perda de desempenho. Um exemplo disso é a placa de interface SCSI Adaptec 29160 de 64 bits. No entanto, algumas placas PCI-X de 64 bits não funcionam em slots PCI padrão de 32 bits.

05

Dimensões físicas

Comprimentos da placa PCI (suporte padrão e 3,3 V): Comprimentos da placa PCI (suporte de baixo perfil e 3,3 V):

Mini PCI

O Mini PCI foi adicionado à versão 2.2 do PCI para uso em laptops e alguns roteadores;[carece de fontes?] ele usa um barramento de 32 bits, 33 MHz com conexões energizadas (apenas 3,3 V; 5 V é limitado a 100 mA) e suporte para masterização de barramento e DMA. O tamanho padrão para placas Mini PCI é aproximadamente um quarto de suas contrapartes de tamanho normal. Não há acesso à placa de fora do gabinete, ao contrário das placas PCI de desktop com suportes carregando conectores. Isso limita os tipos de funções que uma placa Mini PCI pode executar. Muitos dispositivos Mini PCI foram desenvolvidos, como Wi-Fi, Fast Ethernet, Bluetooth, modems (frequentemente Winmodems), placas de som, aceleradores criptográficos, SCSI, IDE – ATA, controladores SATA e placas de combinação. As placas Mini PCI podem ser usadas com hardware equipado com PCI regular, usando conversores Mini PCI para PCI. O Mini PCI foi substituído pelo muito mais estreito PCI Express Mini Card.

06

Transações de barramento PCI

O tráfego de barramento PCI consiste em uma série de transações de barramento PCI. Cada transação consiste em uma fase de endereço seguida por uma ou mais fases de dados. A direção das fases de dados pode ser do iniciador para o destino (transação de gravação) ou vice-versa (transação de leitura), mas todas as fases de dados devem estar na mesma direção. Qualquer uma das partes pode pausar ou interromper as fases de dados a qualquer momento. (Um exemplo comum é um dispositivo PCI de baixo desempenho que não suporta transações de burst e sempre interrompe uma transação após a primeira fase de dados.) Qualquer dispositivo PCI pode iniciar uma transação. Primeiro, ele deve solicitar permissão de um árbitro de barramento PCI na placa-mãe. O árbitro concede permissão a um dos dispositivos solicitantes. O iniciador inicia a fase de endereço transmitindo um endereço de 32 bits mais um código de comando de 4 bits e, em seguida, aguarda a resposta de um alvo. Todos os outros dispositivos examinam esse endereço e um deles responde alguns ciclos depois.

Espaços de endereço PCI

O PCI tem três espaços de endereço: memória, endereço de I/O e configuração. Os endereços de memória têm 32 bits (opcionalmente 64 bits) de tamanho, suportam cache e podem ser transações em burst. Endereços de I/O são para compatibilidade com o espaço de endereço de porta de I/O da arquitetura Intel x86. Embora a especificação de barramento PCI permita transações de burst em qualquer espaço de endereço, a maioria dos dispositivos só oferece suporte para endereços de memória e não para I/O. Finalmente, o espaço de configuração PCI fornece acesso a 256 bytes de registradores de configuração especial por dispositivo PCI. Cada slot PCI obtém seu próprio intervalo de endereço de espaço de configuração. Os registradores são usados ​​para configurar a memória dos dispositivos e intervalos de endereço de I/O aos quais eles devem responder dos iniciadores de transação. Quando um computador é ligado pela primeira vez, todos os dispositivos PCI respondem apenas aos seus acessos de espaço de configuração. O BIOS do computador verifica os dispositivos e atribui intervalos de endereço de Memória e I/O a eles.

Códigos de comando PCI

Há 16 códigos de comando de 4 bits possíveis, e 12 deles são atribuídos. Com exceção do ciclo de endereço duplo exclusivo, o bit menos significativo do código de comando indica se as fases de dados a seguir são uma leitura (dados enviados do alvo para o iniciador) ou uma gravação (dados enviados de um iniciador para o alvo). Os alvos PCI devem examinar o código de comando, bem como o endereço, e não responder às fases de endereço que especificam um código de comando não suportado. Os comandos que se referem às linhas de cache dependem da configuração correta do registro de tamanho da linha de cache do espaço de configuração PCI; eles não podem ser usados ​​até que isso seja feito.

07

Latência do barramento PCI

Logo após a promulgação da especificação PCI, foi descoberto que transações longas por alguns dispositivos, devido a confirmações lentas, rajadas longas de dados ou alguma combinação, poderiam causar estouro ou sub-explosão de buffer em outros dispositivos. Recomendações sobre o tempo de fases individuais na Revisão 2.0 foram tornadas obrigatórias na revisão 2.1::3 Além disso, a partir da revisão 2.1, todos os iniciadores capazes de estourar mais de duas fases de dados devem implementar um timer de latência programável. O timer começa a contar ciclos de clock quando uma transação começa (o iniciador afirma FRAME#). Se o timer tiver expirado e o árbitro tiver removido GNT#, então o iniciador deve encerrar a transação na próxima oportunidade legal. Esta é geralmente a próxima fase de dados, mas as transações Memory Write e Invalidate devem continuar até o fim da linha de cache.

Transações atrasadas

Dispositivos incapazes de atender a essas restrições de tempo devem usar uma combinação de gravações postadas (para gravações de memória) e transações atrasadas (para outras gravações e todas as leituras). Em uma transação atrasada, o alvo registra a transação (incluindo os dados de gravação) internamente e aborta (afirma STOP# em vez de TRDY#) a primeira fase de dados. O iniciador deve tentar novamente exatamente a mesma transação mais tarde. Nesse ínterim, o alvo executa a transação internamente e aguarda a transação tentada novamente. Quando a transação tentada novamente é vista, o resultado armazenado em buffer é entregue. Um dispositivo pode ser alvo de outras transações enquanto conclui uma transação atrasada; ele deve lembrar o tipo de transação, endereço, seleção de bytes e (se for uma gravação) valor de dados, e concluir apenas a transação correta.

08

Pontes de barramento PCI

O padrão PCI permite que múltiplos barramentos PCI independentes sejam conectados por pontes de barramento que encaminharão operações de um barramento para outro quando necessário. Embora o PCI tenda a não usar muitas pontes de barramento, os sistemas PCI Express usam muitas pontes PCI para PCI, geralmente chamadas de PCI Express Root Port; cada slot PCI Express parece ser um barramento separado, conectado por uma ponte aos outros. A ponte host PCI (geralmente northbridge em plataformas x86) interconecta entre CPU, memória principal e barramento PCI.

Escritos postados

Geralmente, quando uma ponte de barramento vê uma transação em um barramento que deve ser encaminhada para o outro, a transação original deve esperar até que a transação encaminhada seja concluída antes que um resultado esteja pronto. Uma exceção notável ocorre no caso de gravações de memória. Aqui, a ponte pode registrar os dados de gravação internamente (se houver espaço) e sinalizar a conclusão da gravação antes que a gravação encaminhada seja concluída. Ou, na verdade, antes que ela tenha começado. Essas gravações "enviadas, mas ainda não recebidas" são chamadas de "gravações postadas", por analogia com uma mensagem de correio postal. Embora ofereçam grande oportunidade para ganhos de desempenho, as regras que regem o que é permitido são um tanto intrincadas.

Combinando, fundindo e colapsando

O padrão PCI permite que pontes de barramento convertam múltiplas transações de barramento em uma transação maior sob certas situações. Isso pode melhorar a eficiência do barramento PCI. Transações de gravação para endereços consecutivos podem ser combinadas em uma gravação em rajada mais longa, desde que a ordem dos acessos na rajada seja a mesma que a ordem das gravações originais. É permitido inserir fases de dados extras com todas as habilitações de bytes desligadas se as gravações forem quase consecutivas. Várias gravações em porções disjuntas da mesma palavra podem ser mescladas em uma única gravação com habilitações de vários bytes afirmadas. Nesse caso, as gravações que foram apresentadas à ponte de barramento em uma ordem específica são mescladas para que ocorram ao mesmo tempo quando encaminhadas.

09

Ferramentas de desenvolvimento

Ao desenvolver e/ou solucionar problemas do barramento PCI, o exame de sinais de hardware pode ser muito importante. Analisadores lógicos e analisadores de barramento são ferramentas que coletam, analisam e decodificam sinais para que os usuários visualizem de maneiras úteis.

Vídeos recomendados

Fontes consultadas

Continue pesquisando