• Leonardo Ritter

Hardware - O barramento PCI

Atualizado: há uma hora

Este artigo detalha o funcionamento da interface PCI. É recomendável a leitura dos artigos sobre clock, bits e Bytes e pares diferenciais para que fique mais fácil de entender este texto.

Slots PCI (em branco) numa placa-mãe Abit SG-80

Imagem 1 - Slots PCI (na cor branco) e o chip Ponte Sul (SiS 964) numa placa-mãe Abit SG-80

Lançado em 22 de junho de 1992 pela Intel Corporation, durante o desenvolvimento do Pentium 3, o barramento PCI (Peripheral Component Interconnect - Interconexão de Componentes Periféricos) foi o padrão definitivo para o mercado. Devido ao sucesso do padrão, em poucos anos outras empresas se uniram a Intel e criaram o PCI-SIG (PCI Special Interest Group ou Grupo de Interesse Especial PCI). Com tempo foi criado uma variação chamada de PCI-X (Peripheral Component Interconnect eXtended - Interconexão de Componentes Periféricos Estendida), AGP (Accelerated Graphics Port - Porta Gráfica Acelerada) e por fim, o PCI Express que é completamente diferente e utilizado até os dias atuais.

O barramento PCI foi considerado um padrão da indústria pois todos os outros eram projetados para uma plataforma específica, e quando esta plataforma ficava obsoleta outro padrão tinha que ser criado. O controlador PCI foi adicionado ao chip Ponte Sul da placa-mãe e mesmo após o lançamento de outro processador, com socket diferente, clocks mais altos e novas tecnologias, bastava a fabricante redesenhar ou fazer algumas adaptações no chipset, porém mantendo o mesmo circuito do controlador PCI.

O controlador PCI 1.0 foi concebido inicialmente para trabalhar com clock de no máximo 33 MHz e 32 trilhas de comunicação para transferência de dados no modo half-duplex, ou seja, enviar e receber dados pelo mesmo caminho. Alguns anos depois foi lançada uma nova versão de 66 MHz. Outra peculiaridade deste padrão é que vários dispositivos podem ser conectados no mesmo barramento, portanto, independente da quantidade de slots PCI, só haverá 1 controlador PCI no chipset Ponte Sul. É válido lembrar que todos os dispositivos conectados no barramento PCI também possuem controlador PCI para poder se comunicarem.

O barramento PCI também é Plug And Play, assim como a interface USB, por exemplo. A configuração de endereços IRQ, DMA e I/O é automática, a única coisa que o usuário deve fazer é instalar o driver do dispositivo conectado para que ele seja reconhecido pelo sistema operacional.

Outra tecnologia introduzida no barramento PCI é o Bus Mastering: esta tecnologia permite que um dispositivo PCI acesse a memória RAM para gravar e ler informações sem a intervenção do processador. Isso faz com que o processador seja poupado de sobrecargas. Mas como assim? Enquanto a CPU está ocupado com outros processos, o controlador PCI pode gravar e ler dados na memória RAM sem que a CPU execute um processo exclusivamente para o barramento PCI. O Bus Mastering é uma melhora feita no DMA (Direct Memory Access - Acesso Direto a Memória).

Placa-mãe ASUS A7V8X-X com 6 slots PCI

Imagem 2 - Os 6 slot's PCI da Asus A7V8X-X

Placa-mãe GigaByte GA-8i945G MF com apenas 2 slots PCI

Imagem 3 - Slot's PCI em uma placa-mãe Gigabyte de socket LGA775


A taxa de transferência máxima teórica do barramento PCI de 33 Mhz é de 133 MB/s, e será dividida entre todos os dispositivos que estiverem conectados ao barramento. Na última versão utilizada, o clock é de 66 Mhz e a taxa de transferência é de 264 MB/s. É aí que estão os gargalos. Não adiantaria, por exemplo, conectar uma placa Gigabit LAN num barramento PCI que está sendo usado também para uma placa de áudio. A placa Gigabit LAN consegue receber e enviar dados para a rede mundial de computadores numa taxa de transferência máxima teórica de 125 MB/s. Ao conectar uma outra placa neste barramento, a taxa de transferência máxima teórica do barramento PCI será dividido entre as duas, ou seja, se o clock for de 33 MHz, no máximo 66 MB/s para cada uma. Isso se agrava caso mais placas estejam utilizando o barramento.

Para que os dispositivos PCI se comuniquem com o controlador da placa-mãe sem conflitos, há um parâmetro no BIOS chamado "PCI Latency Timer" (nem todas as placas-mãe possuem este parâmetro acessível ao usuário). Para entender isso você deve ter em mente que, por exemplo, um clock de 66 MHz significa 66 milhões de ciclos de clock. Este parâmetro é padronizado em 32 ou 64 ciclos de clock (isso depende da placa-mãe) e serve para definir o tempo (quantos ciclos de clock) que cada dispositivo PCI terá para se comunicar com o controlador da placa-mãe pelo barramento. Algumas placas oferecem valores que vão até 248 ciclos de clock, mas ao utilizar valores tão altos e vários dispositivos estiverem utilizando o barramento, podem haver lentidões no sistema, pois cada dispositivo terá mais tempo para se comunicar com a placa-mãe.

Para mais de talhes, leia o artigo sobre clock CLICANDO AQUI!

Leia também sobre os bits e Bytes, basta CLICAR AQUI!

Imagem 4 - Placa de rede Ethernet com interface PCI


Outros exemplos de placas PCI são:

-> Placas de vídeo das extintas 3Dfx e S3 Graphics;

-> Placas de vídeo da ThiNetWorks com o chip ATi Rage XL para multiterminais (era muito utilizado nos computadores de escolas públicas do Paraná);

-> Placas áudio antigas da marca Creative Labs

-> As famosas placas de conexão discada de 56 Kbps

-> Chips de rede com interface PCI, como por exemplo o RealTek RTL8139D.


Existem dezenas de outras marcas que fabricavam placas de áudio, rede, vídeo, USB, Receptor de TV e etc, com interface PCI.

Estes gargalos são atuais, já que na época em que a Intel lançou o barramento PCI não existiam placas Gigabit LAN, Wi-Fi, placas de vídeo de alto desempenho, arquivos de vídeo em alta resolução ocupando vários GigaBytes, o que fez as placas expansíveis PCI se tornarem muito utilizadas, tanto que placas-mãe do padrão AT (Advanced Technology) não tinham saída de vídeo, portas USB, Ethernet, áudio e outros conectores, apenas um monte de slots ISA / eISA, VLB e até mesmo PCI para conectar todos os controladores.

Placa-mãe padrão AT

Imagem 5 - Placa-mãe antiga no formato AT

Com o passar dos anos surgiu uma variação do slot PCI: o PCI-X. Sua principal diferença é uma extensão no slot que permitia uma conexão de 64 bits, o dobro do PCI original. Dentro do padrão PCI-X havia diferentes revisões com clock mais alto e transferências de dois (DDR) ou quatro (QDR) bits por ciclo de clock. O PCI-X vingou em algumas placas do padrão AT, como você pode ver na imagem acima, e também em placas de servidor. Sua aplicação em placas-mãe de computadores pessoais era mais cara e não fazia muito sentido, já que o PCI original dava conta do recado na época.

É válido lembrar que todas as versões do barramento PCI são compatíveis entre si. Por exemplo, ao conectar um dispositivo PCI com o clock de 33 MHz num barramento de 66 MHz, o controlador da placa-mãe irá reconhecer o dispositivo conectado e limitar todo o barramento a 33 MHz. No caso de conectar um dispositivo com barramento de 32 bits num slot de 64 bits, o controlador da placa-mãe vai trabalhar tanto com os dispositivos de 64 bits quanto com os de 32 bits. Ao conectar um dispositivo de 64 bits num slot de 32 bits, o controlador da placa-mãe só vai poder utilizar 32 bits. Veja a imagem abaixo:

Slots PCI e PCI-X

Imagem 6 - Slot's PCI de 64 bits


Surgiu também uma versão chamada de miniPCI feita especialmente para notebooks e dispositivos menores, compactos. Esta versão foi abandonada em poucos anos e substituída pelo ExpressCard, miniPCIe e outros padrões que apresentavam desempenho superior.

O CompactPCI foi uma versão muito incomum, pois durou poucos anos no mercado e era destinado a indústria, que necessitava de um conector mais robusto e que ocupasse menos espaço nos circuitos.

Abaixo você vê as principais variações e versões do slot PCI:

Tabela 1 - Versões e variações do padrão PCI


Abaixo, a quantidade de pinos de cada modelo de slot:

Tabela 2 - A quantidade de pinos de cada variação do PCI


Sobre o Slol MiniPCI


O slot MiniPCI de 100 e 124 pinos também terá a pinagem detalhada no tópico "Pinagem", mais abaixo. Veja como é um conector MiniPCI de 124 pinos:

Imagem 7 - Slot MiniPCI de 124 pinos


Veja esta outra imagem, de uma placa de rede para slot MiniPCI:

Imagem 8 - Placa de rede para slot MiniPCI de 124 pinos


Pra fechar a sessão de imagem do slot MiniPCI, veja a placa de rede montada no slot:

Imagem 9 - Placa de rede montada num slot MiniPCI de 124 pinos


SOBRE O SLOT CompactPCI


O slot CompactPCI não terá a pinagem detalhada aqui, pois como foi dito, ele é muito incomum e foi pouco utilizado. O princípio de funcionamento dele é o mesmo: são 2 tipos de slots, que fisicamente são idênticos, mas um tem apenas 32 pinos ativos e o outro possui todos os 64 pinos com o clock de 66 MHz. Na maioria da placas-mãe, dependia do fabricante utilizar todos os pinos do slot ou não. Veja abaixo uma imagem do slot CompactPCI:

Imagem 10 - Slot CompactPCI


Anteriormente, havíamos exposto algumas informações sobre o barramento ISA. Para conhecer profundamente o barramento ISA e eISA, CLIQUE AQUI!

Abaixo, você vê a pinagem do slot PCI e PCI-X:

Tabela 3 - Pinagem dos Slot PCI e PCI-X


Agora, note a pinagem do slot na placa-mãe:

Parte traseira de uma placa-mãe

Imagem 11 - O pino marcado como "Pino 1" se refere ao pino "A1" do diagrama mostrado acima.

Parte da frente de uma placa-mãe

Imagem 12 - Slot PCI


Selecionei três esquemas elétricos de placa-mãe com o circuito do slot PCI e as saídas e entradas do controlador PCI no chipset Ponte Sul. As placas selecionadas são da marca Gigabyte. Observe a imagem abaixo:

Esquema elétrico da placa-mãe GBT GA-M55S S3 Rev.: 2.02

Diagrama 1 - Esquema elétrico dos slots PCI da placa-mãe GBT GA-M55S S3 Rev.: 2.02

Abaixo, as saídas do controlador PCI de três modelos de chipset:

Esquema elétrico da placa-mãe GBT GA-M59SLI S4 Rev.: 1.00

Diagrama 2 - Esquema elétrico da placa-mãe GBT GA-M59SLI S4 Rev.: 1.00 (Controlador PCI do chipset nVidia MCP55).

Esquema elétrico da placa-mãe GBT GA-M55S S3 Rev.: 2.02

Diagrama 3 - Esquema elétrico da placa-mãe GBT GA-M55S S3 Rev.: 2.02 (Controlador PCI do chipset nVidia MCP55).

Esquema elétrico da placa-mãe GBT GA-M61PM S2 Rev.: 1.00

Diagrama 4 - Esquema elétrico da placa-mãe GBT GA-M55S S3 Rev.: 2.02 (Controlador PCI do chipset nVidia MCP61).

Perceba que, junto do controlador PCI há o controlador LPC, responsável por fazer a comunicação da Ponte Sul com o Super I/O e em algumas placas-mãe se comunicar também com o chip de memória ROM Flash e placa TPM. Todos os esquemas adicionados a este artigo são válidos para outros circuitos PCI de outras placas-mãe, pois como foi dito o barramento PCI é um padrão.

Agora, vamos focar nas características de variações do slot PCI que não foram muito populares no mercado. Abaixo, o diagrama do slot MiniPCI de 100 Pinos:

Tabela 4 - Pinagem do slot MiniPCI de 100 pinos


Abaixo, o conector MiniPCI de 124 Pinos:

Tabela 5 - Pinagem do slot MiniPCI de 124 pinos


DESCRIÇÃO DOS PINOS


Agora, a descrição dos pinos de todos os slots detalhados neste artigo.


OBSERVAÇÃO: O termo "Iniciador" se refere ao dispositivo PCI que quer transmitir dados. O termo "Alvo" se refere ao dispositivo que vai receber os dados, isto é, o receptor.


Alimentação Elétrica


-> -12 Volts / + 12 Volts: Alimentação elétrica com tensão negativa e positiva de 12 Volts;

-> + 5 Volts / 5V: Alimentação elétrica com tensão positiva de 5 Volts;

-> + 3,3 Volts / 3,3V / 3,3 VAUX: Alimentação elétrica com tensão positiva de 3,3 Volts;

-> + 5 Volts ou + 3,3 Volts: Alimentação elétrica com tensão selecionável de + 5 Volts ou +3,3 Volts;

-> Polo negativo / TERRA: Linhas onde circulam corrente elétrica em direção ao polo positivo. Podem ser utilizadas como proteção contra interferência eletromagnética;


-> #PRSNT[1:2]: Estes dois sinais estão presentes nos slots PCI com a finalidade de indicar a tensão de operação da placa conectada no slot (5V ou 3,3V). Estes sinais estarão com resistores pull up. Caso nenhuma placa esteja conectada na placa-mãe, o sistema interpreta a não presença da mesma;


-> Reservado / RESERVADO: Pinos não utilizados.


Sinais Gerais


-> Clock / CLK: Sinal de sincronismo. PCI, MiniPCI, CompactPCI (33MHz), PCI-X e CompactPCI (66 MHz) e PCI-X (133 MHz). Este sinal sincroniza todas as transações na borda de subida do clock. O clock pode mudar em qualquer momento dependendo do dispositivo ou até parar se o dispositivo PCI não estiver sendo utilizado. É uma estratégia de economia de energia;


-> Reset / RST #: Força todos os sinais e registradores dos dispositivos no barramento a irem a seus estados iniciais;


-> Clock de teste / CLKRUN #: Clock do sistema de teste de dispositivo PCI.


Linhas de Arbitragem


-> Requisição / REQ #: Requisição de uso do barramento PCI;

-> Reconhecimento de uso / GNT#: Concessão de uso do barramento feita pela placa-mãe.


Sinais de Erro de Paridade


-> Erro do sistema / SERR #: Erro de Sistema - Sinal de saída em coletor aberto. Sinal usado para acusar erro de paridade dos sinais AD[X] e C/BE[X]# na fase de endereço, ou na fase de dados de uma transação especial ou em qualquer transação de sistema. Se existir um erro o mesmo é acionado dois clock após o AD[X] e C/BE[X]# válidos;

-> Erro de paridade / PERR #: Erro no cálculo de paridade, sinal especial de três estados. O dispositivo ou o controlador PCI, ao receber este sinal, deve reenviar os dados com o cálculo de paridade refeito. Sinal usado para acusar erro de paridade nos sinais AD[X] e C/BE[X]# nas fases de dados, com exceção da transação especial. Este sinal funciona como entrada e saída em dispositivo que está transmitindo e somente de saída num dispositivo PCI que receberá a informação. Quando existir algum erro de paridade na fase de dados, o mesmo será acionado dois clocks após a fase completa de dados.


Sinais de Interrupções


-> Interrupção A / Interrupção B / Interrupção C / Interrupção D / INTA # / INTB # : Interrupções do sistema. Sinais de saídas em coletor aberto – Os dispositivos acionam estas linhas quando os mesmos requerem atenção dos drivers via iniciador. Estes sinais não são sincronizados com o clock do barramento. Quando os mesmos são acionados, eles permanecem até que os drivers atendam aos pedidos de interrupções.


Sinais de Controle de Transferência de Dados


-> Ciclo de quadro de dados / QUADRO, ARMAÇÃO #: Habilita o envio de um quadro de dados para um dispositivo PCI pelas linhas AD[X]. Na ativação deste sinal o iniciador indica o inicio de uma transação e permanece acionado na medida que o mesmo requer mais transferências de dados. A sua desativação ocorrerá quando o iniciador estiver pronto a realizar a última fase de dados ou quando a transação for finalizada por algum motivo. É como se fosse uma linha "#FRAME" ou "STROBE";


-> Pare / RARE # / Stop #: Ao acionar este sinal o alvo solicita o término precoce da transação;


-> Seleção de dispositivo / DEVSEL #: Ao acionar este sinal, o dispositivo informa o alvo da transação. Após 4 clock’s, se nenhum alvo responder, a transação será abortada pelo iniciador;


-> Inicialização do dispositivo selecionado / IDSEL #: Sinal de entrada. Pela ativação desse sinal, o iniciador solicita uma transação de escrita ou leitura sobre os registradores de configuração do dispositivo;

-> Alvo pronto / TRDY: Significa "Target Ready". Receptor de dados pronto – Sinal especial de três estados. O alvo aciona este sinal indicando que está pronto para fase de dados, ou seja, na transação de escrita o alvo está pronto para ler os dados do transmissor e para transação de leitura o dados estão prontos no barramento para o iniciador;


-> Iniciação pronta / IRDY: Sinal de entrada. O iniciador aciona este sinal indicando que está pronto para fase de dados, isto é, na transação de escrita o barramento contém dados válidos para o alvo e para transação de leitura o iniciador está pronto para ler os dados do alvo. Este sinal trabalha em conjunto com o sinal #TRDY, e quando um dos dois estiverem desativados, indicará que existe um estado de espera na transação, e quando ambos forem ativados juntos, indicará que a fase atual foi completa e houve transferência de dados entre iniciador e alvo.


Linhas de Dados e Endereços


-> Endereço / Dados (X) ou AD[X]: Linhas para transferência de endereço e dados. São 32 linhas para os slots PCI e MiniPCI e 64 para os slots PCI-X e CompactPCI;


-> Paridade / PAR: Sinais de paridade. Método para evitar erros nas transmissões de dados. Carrega o valor do cálculo de paridade dos sinais AD[X] e C/BE[X]#. Este é transmitido no sentido da transação. No cálculo não se leva em consideração o tipo de transação, nem quais bytes válidos em AD[31:0] por C/BE[X]#, ou seja, todos entram no cálculo em quaisquer circunstâncias. O sinal PAR é válido nos seguintes casos: 1 clock após a fase de endereço, 1 clock após a ativação do sinal #IRDY na transação de escrita (durante a fase de dados), 1 clock após a ativação do sinal #TRDY na transação de leitura (durante a fase de dados). E permanece válido por 1 clock após da fase completa;


-> Comando/Byte Ativado (X) ou C/BE[X]#: Linhas de transferências de comandos relacionados à leituras e escritas de I/O e memória pelas linhas AD[X], além de, outros comandos de controle. Abaixo você confere a tabela de códigos que podem ser enviados pelas linhas "C/BE[X]#":

Códigos das linhas C/BEx

Tabela 6 - Comandos


Agora, a explicação de cada comando:


----> Interromper reconhecimento (0000): O Controlador de Interrupção reconhece e reage automaticamente ao comando "INTA #" (interrupção de reconhecimento). Na fase de dados, ele transfere o vetor de interrupção para as linhas do AD[X];

----> Ciclo especial (0001): São 4 códigos enviados pelas linhas AD[X] quando o 'Ciclo especial' é enviado pelas linhas "C/BEx". Veja-os abaixo:

Código dos Ciclos especiais

Tabela 7 - Códigos


----> I / O Leitura (0010) e I / O Escrita (0011): Operação de leitura ou gravação do dispositivo de Entrada / Saída. As linhas AD[X] contêm um endereço de bytes (sendo que "AD [0]" e "AD [1]" devem ser decodificados). As portas 'PCI I / O' podem ter 8 ou 16 bits, mas o barramento PCI permite 32 bits de espaço de endereço. O espaço de configuração PCI também pode ser acessado pelas portas de I / O 0x0CF8 (Address) e 0x0CFC (Data). A porta de endereço deve ser acessada primeiro;


OBSERVAÇÃO: Em máquinas compatíveis com IBM, a CPU Intel é limitada a 16 bits de espaço de I / O, e, em alguns casos, é ainda mais limitada por placas ISA que também podem ser instaladas na máquina (muitas placas ISA decodificam apenas os 10 bits inferiores de espaço de endereço, desta forma, observar todo o espaço de I / O de 16 bits). Esse limite pressupõe que a máquina suporta slots ISA ou eISA além dos slots PCI.


----> Leitura de memória (0110) e Escrita de memória (0111): Significa uma leitura ou gravação no espaço de memória do sistema. Neste caso, as linhas "AD [0]" e "AD [1]" não precisam ser decodificados. Todas as linhas AD[X] contêm um endereço de palavra dupla. As linhas de ativação de bytes (C/BEx) indicam quais bytes são válidos;


----> Leitura de Configuração (1010) e Escrita de Configuração (1011): Estes códigos são para leitura ou escrita no espaço de configuração do dispositivo PCI, que tem 256 bytes de comprimento. É acessado em unidades de palavra dupla.

->> "AD [0]" e "AD [1]" contêm o valor 0;

->> "AD [2]" ao "AD [7]" contêm o endereço de palavra dupla;

->> "AD [8]" ao "AD [10]" são usados ​​para selecionar a unidade endereçada a unidade de falha;

As demais linhas "AD [X]"não são usadas.


Veja a imagem abaixo com parte do sistema de configuração:

Imagem 13


----> Leitura de Memória Múltipla (1100): Esta é uma extensão do ciclo de barramento de leitura de memória. Ele é usado para ler grandes blocos de memória sem armazenamento em cache, o que é excelente para longos acessos de memória sequencial;


----> Ciclo de Endereços Duplos (1101): Dois ciclos de endereço são necessários quando um endereço de 64 bits é usado, mas existe apenas um endereço físico de 32 bits. A parte menos significativa do endereço é colocada primeiro nas linhas AD, seguidas pelos 32 bits mais significativos. O segundo ciclo de endereço também contém o comando para o tipo de transferência (I / O, Read / Write, etc).

OBS.: O barramento PCI suporta um espaço de endereço de I / O de 64 bits, embora isso não esteja disponível em muitos PCs baseados em Intel devido a limitações da CPU;


----> Linha de leitura de memória (1110): Este ciclo é usado para ler mais de dois blocos de dados de 32 bits, normalmente até o final de uma linha de cache. É mais eficiente que as rajadas de leitura de memória normal para uma longa série de acessos de memória sequencial;


----> Gravação de Memória e Invalidação (1111): Isso indica que um mínimo de uma linha de cache deve ser transferido. Isso permite que a memória principal seja atualizada, economizando um ciclo de write-back do cache.


OBSERVAÇÃO: O restante dos pinos não explicados dos slots MiniPCI são para aplicações específicas de áudio com codecs AC'97, além de outros fins que fogem do escopo deste artigo.

PRINCIPAIS LINHAS E DIAGRAMA DE TIMING'S


Abaixo, o diagrama com as principais linhas do barramento PCI:

Barramento PCI - Diagrama

Diagrama 5


O barramento AGP utiliza todos estes sinais obrigatórios, além de algumas linhas extras para funcionar.

CLIQUE AQUI e conheça também a evolução do barramento PCI: O AGP. É notável que o barramento AGP é muito semelhante.

Veja abaixo o gráfico de timing simulando uma transferência de dados no barramento PCI (também válido para o barramento AGP):

Simulação de transmissão de dados no barramento PCI

Gráfico 1 - Timing's


Quando se incluem 'Wait States' (Estados de Espera) na transmissão de dados, eles são inseridos nas linhas "IRDY" e "TRDY". Os 'Wait States' tem o objetivo de, digamos, atrasar a transferência dos dados durante um determinado período de tempo para não sobrecarregar o sistema em alguns momentos. Veja um diagrama de transmissão de dados utilizando 'Wait States' abaixo:

Simulação de transmissão de dados com "wait states" no barramento PCI

Gráfico 2 - Timing's


Como você pode ver nos dois diagramas acima, há uma representação simbólica de apenas uma linha "C/BE[X]" com 1 bit do comando, sendo que no barramento PCI de 32 bits há 4 linhas "C/BE[X]" para transferir os 4 bits do comando.

CURIOSIDADE: A placa-mãe PC Chips A31G foi projetada com um "armengue" no barramento PCI para suportar também um slot AGP. A ideia não foi muito boa, apesar dos dois barramentos serem muito parecidos. Você pode conferir detalhes CLICANDO AQUI!

Diagrama de blocos do controlador PCI

Diagrama 5 - O controladro PCI


Na figura 1 você vê o diagrama de blocos do controlador PCI e na figura 2, os sinais PCI com tabela de descrição de pinos juntamente com a direção que os dados vão em cada linha (a letra "Z" significa que a linha possui alta impedância). Abaixo você vê a descrição dos circuitos internos do controlador PCI:

-> Address Decode: Este bloco recebe os dados de controle de transações do barramento PCI e decodifica esses dados para determinar se a transação foi direcionada ao este dispositivo PCI ou não. Este bloco instrui a máquina do Estado Escravo a aceitar ou ignorar as transações de dados conforme elas são apresentadas no barramento PCI;

-> Slave State Machine: Este bloco gera e monitora todos os sinais PCI necessários para aceitar transações no barramento PCI. Todas as funções de gerenciamento de protocolos PCI escravos são divididas entre o decodificador de endereço e os blocos de Slave State Machine;

-> Slave Back End Interface: Este bloco aceita transações da Slave State Machine e transmite essas transações para o domínio do outro circuito. Este bloco executa a dissociação assíncrona entre o domínio do PCI e o domínio de outro circuito que se comunica pelo barramento PCI como um escravo. Também implementa o controle de tradução de endereços, registra e executa a tradução de endereços para transações escravas;

-> Master Back End Interface: Este bloco aceita transações do barramento PCI a partir da interface de back-end e passa essas transações para o Master State Machine. Este bloco também executa a dissociação assíncrona entre o domínio do outro circuito e o domínio do circuito PCI para transações principais. Este bloco implementa os registros de controle de tradução de endereço mestre e também executa a tradução de endereços para transações principais;

-> Master State Machine: Este bloco gera e monitora todos os sinais PCI necessários para iniciar transações no barramento. A maioria das funções de gerenciamento de protocolos mestre PCI são implementadas neste bloco. Este bloco responde às solicitações de transferência que são apresentadas a partir da interface Master Back End Interface;

-> Output Mux.: Este circuito multiplexa o endereço Mestre, os dados de gravação Mestre, os dados de leitura da configuração do escravo (que receberá os dados) que a memória escrava lê nos pinos AD em momentos específicos. Este bloco é controlado por vários dos outros blocos no controlador PCI;

-> Configuration Registers: Este bloco implementa os registros de configuração do barramento PCI necessários e alguns dos registros do Back-end Interface Master e Slave. Esses registros controlam os modos e opções (a configuração geral do barramento) PCI e fornecem informações vitais para o host PCI (dispositivo conectado ao barramento);

-> Error Handler: Este bloco monitora as condições de erro que podem ocorrer no barramento PCI, isto é, erros de paridade e erros do sistema;

-> Back End Registers Interface: Este bloco implementa a função de ponte assíncrona que permite que o circuito conectado ao controlador PCI acesse os registros de configuração de PCI, os registros de tradução de endereço Mestre e Escravo e outros controles e registros do controlador PCI. Este bloco também implementa alguns registradores de controle / status PCI que residem no domínio do circuito conectado ao Back-end Interface (circuito conectado ao controlador PCI).

OBSERVAÇÃO: Texto traduzido de uma documentação técnica da Texas Instruments sobre o barramento PCI. O URL do PDF estará disponível no final do artigo.

Uma explicação simples para resumir todos estes tópicos: O Master Back-end Interface pega os dados vindos do circuito conectado e manda eles para o receptor juntamente com o endereço dele e informações do emissor através do Output Multiplexer.

Para receber dados, o Address Decode verifica se o endereço dos dados corresponde ao que lhe foi dado e se sim, ele repassa a informação para o Slave Back-end Interface que transfere-os para o circuito conectado. As configurações de registro e interface de registro de back-end servem para manter as configurações do barramento PCI e comunica-las ao circuito conectado.

Master State Machine e Slave State Machine cuidam de endereços do barramento e comandos para gravação e leitura na memória principal (memória RAM) através do circuito Bus Mastering Engine.

Para encerrar a disussão:


CURIOSIDADE: Na Imagem 1, Imagem 2, Imagem 3, Imagem 5, Imagem 6, Imagem 9, Imagem 10 e Imagem 12 é possível perceber com mais clareza que a estrutura do Slot PCI é plástico, mais especificamente LCP, sigla para Liquid Crystal Polymer, um material muito utilizado em slots e conectores de placas de circuito devido a sua boa rigidez dielétrica e resistência a altas temperaturas. Para saber mais sobre polímeros, CLIQUE AQUI!


Este foi o um artigo sobre antigas tecnologias que fizeram sucesso e duraram anos no mercado! Até 2017, ainda eram vendidas placas-mãe com slots PCI! A ASUS M5A78L-M/USB3 possui dois slots ligados ao chipset Ponte Sul AMD SB700. A AsRock N68 GS4 FX R2.0 de 2015 também tem 2 slots PCI ligados ao Chipset nVidia nForce 630a.

Ficou com dúvidas? Achou que faltou algo? Mande suas palavras para hardwarecentrallr@gmail.com. Gostou do artigo? curta, compartilhe e comente!

CRÉDITOS e FONTES

Texto, imagens, tabelas e diagramas: Leonardo Ritter

Fontes: Banco de esquemas elétricos do HC; Clube do Hardware; InfoWester; Hardware.com; Texas Instruments; Universidade Ferderal de Santa Catarina; Engenharia reversa praticada pelo autor do artigo.


(O conteúdo visto na página da Texas Instruments pode ser aberto aqui: http://www.ti.com/lit/ug/sprue60b/sprue60b.pdf)


Última atualização: 31 de Março de 2021.

1,840 visualizações