terça-feira, 5 de abril de 2011

Como funciona o barramento PCI

Introdução


A potência e a velocidade dos componentes de computador têm crescido a um passo constante desde que os computadores foram criados décadas atrás. Os desenvolvedores de software criam novos aplicativos capazes de utilizar os avanços mais recentes em matéria de velocidade de processador e capacidade de disco, enquanto os fabricantes de hardware agilizam a melhoria dos componentes e criam novas tecnologias para acompanhar a demanda dos programas de ponta. Porém, um elemento sempre passa despercebido: o barramento. Em sua essência, um barramento é um canal ou caminho entre os componentes de um computador. Ter barramento de última geração é tão importante quanto ter uma boa transmissão em um carro. Se você tiver um motor de 700 cavalos de potência, mas com uma transmissão barata, o carro não vai render tanto. Existem muitos tipos diferentes de barramentos. Neste artigo, você vai aprender sobre alguns deles. Vamos nos concentrar no barramento conhecido como Interconexão de Componentes Periféricos (PCI, do inglês Peripheral Component Interconnect). Falaremos sobre o que é PCI, como funciona e como é usado, e então daremos uma olhada no que o futuro reserva para esta tecnologia.

Uma placa PCI típica


O barramento
A idéia de um barramento é simples, ele conecta os componentes do computador ao processador. Alguns dos componentes são HDs, pentes de memória, sistemas de som, sistemas de vídeo, e etc. Por exemplo, para ver o que seu computador está fazendo, você usa um monitor CRT ou LCD. Você precisa de um hardware especial para controlar o monitor, neste caso, uma placa de vídeo (ou placa gráfica). A placa de vídeo é um pequeno circuito impresso em uma placa, que é desenhada para ser conectada no barramento. A placa de vídeo conversa com o processador, usando o barramento como via de comunicação.

A vantagem do barramento é que ele torna as partes do computador mais intercambiáveis. Se você quiser uma placa de vídeo melhor, basta tirar a antiga do slot e colocar a nova em seu lugar. Se você quiser usar dois monitores no seu computador, pode usar duas placas de vídeo no barramento. E por aí vai.
Vinte ou 30 anos atrás, os processadores eram tão lentos que o processador e o barramento eram sincronizados - o barramento funcionava na mesma velocidade do processador, e havia somente um barramento no computador. Hoje, os processadores estão tão rápidos que a maioria dos computadores tem dois ou mais barramentos. Cada barramento é especializado em um tipo de tráfego.
Hoje, um computador comum tem dois barramentos principais:
  • o primeiro, conhecido como o barramento do sistema ou local, conecta o microprocessador (CPU) ao sistema de memória. Este é o barramento mais rápido do sistema;
  • o segundo é um barramento mais lento para a comunicação de componentes como discos rígidos e placas de som. Um barramento muito comum nesta categoria é chamado de PCI. Estes barramentos mais lentos se conectam ao barramento do sistema através de uma ponte, que é parte do chipset do computador e funciona como um guarda de trânsito, integrando os dados de outros barramentos ao barramento do sistema.
Tecnicamente, existem outros tipos de barramentos. Por exemplo, o Barramento Serial Universal (USB - Universal Serial Bus) é uma maneira de conectar câmeras, scanners e impressoras ao computador. O USB usa um cabo fino para conectar os dispositivos, e muitos dispositivos podem compartilhar este cabo simultaneamente. O FireWire é outro barramento, usado hoje  principalmente para câmeras de vídeo e HDs externos.


A ilustração acima mostra como os vários barramentos se conectam ao processador
Breve histórico
O primeiro barramento para computadores no primeiro PC da IBM (cerca de 1982) tinha 16 bits de largura e operava a 4,77 MHz. Ficou conhecido oficialmente como barramento ISA. Este tipo de barramento é capaz de transferir dados a uma taxa de 9 MBp/s (megabytes por segundo) mais ou menos, rápido o bastante até mesmo para muitos dos aplicativos atuais.

Muitos anos atrás, o barramento ISA ainda era usado em muitos computadores. Este barramento aceitava placas desenvolvidas para o PC da IBM no início da década de 1980. O barramento ISA continuou sendo usado mesmo depois que tecnologias mais avançadas surgiram para substituí-lo.
Algumas razões para sua longevidade foram:
  • compatibilidade de longo-prazo com muitos fabricantes;
  • antes do surgimento dos sistemas multimídia, poucos periféricos utilizavam a velocidade total do barramento.
Como a tecnologia avançou e o ISA não conseguiu acompanhar, outros barramentos foram desenvolvidos. Os principais foram o EISA (Extended Industry Standard Architecture) - que tinha 32 bits a 8 MHz - e o VL-Bus (Vesa Local Bus). O interessante do VL-Bus (cujo nome vem de VESA, Associação dos Padrões Eletrônicos para Vídeo, que criou o padrão) é que tinha 32 bits de largura e operava na velocidade do barramento local, que geralmente era a velocidade do próprio processador. O VL-Bus era ligado diretamente ao processador. Funcionava bem para um único dispositivo, ou talvez dois. Mas conectar mais do que dois dispositivos ao VL-Bus podia interferir no desempenho do processador. Por causa disso, ele era usado somente para conectar a placa de vídeo, um componente que realmente tem desempenho melhor quando tem acesso direto de alta velocidade ao processador. Em seguida veio o PCI
No início da década de 1990, a Intel lançou um novo padrão de barramento, o barramento PCI
(Interconexão de Componentes Periféricos). O PCI é uma mistura do ISA e do VL-Bus. Fornece acesso direto à memória do sistema para dispositivos conectados, mas usa uma ponte para se conectar ao barramento frontal (frontside bus) e, portanto, ao processador. Basicamente, significa que tem um desempenho ainda melhor do que o VL-Bus, além de eliminar uma possível interferência com o processador.
O barramento frontal é uma conexão física que liga o processador à maioria dos outros componentes do computador, inclusive à memória RAM, aos HDs e aos slots PCI. Hoje, o barramento frontal opera a 400 MHz, sendo que os sistemas mais novos operam a 800 MHz.


Placas PCI têm 47 pinos
O barramento traseiro (backside bus) é uma conexão separada entre o processador e o cache de Nível 2. Este barramento opera a uma velocidade mais alta do que o barramento frontal, geralmente a mesma velocidade do processador, para que o cache trabalhe da maneira mais eficiente possível. Os barramentos traseiros têm evoluído com o passar dos anos. Na década de 90, o barramento traseiro era um conjunto de fios que conectava o processador principal a um cache externo. Este cache era na verdade um chip separado que requeria memória cara. Desde então, o cache de Nível 2 tem sido integrado ao processador principal, fazendo os processadores ficarem menores e mais baratos. Como o cache agora fica dentro do próprio processador, de certo modo o barramento traseiro não é mais um barramento.


Tipo de barramento
Largura do barramento
Velocidade do barramento
MB/s
ISA
16 bits
8 MHz
16 MBps
EISA
32 bits
8 MHz
32 MBps
VL-bus
32 bits
25 MHz
100 MBps
VL-bus
32 bits
33 MHz
132 MBps
PCI
32 bits
33 MHz
132 MBps
PCI
64 bits
33 MHz
264 MBps
PCI
64 bits
66 MHz
512 MBps
PCI
64 bits
133 MHz
1 GBps
O PCI conecta mais dispositivos do que o VL-Bus, até cinco componentes externos. Cada um dos cinco conectores para um componente externo pode ser substituído por dois dispositivos fixos na placa-mãe. Além disso, você pode ter mais do que um barramento PCI no mesmo computador, apesar de ser raro. O chip da ponte do PCI regula a velocidade do barramento, independentemente da velocidade do processador. Isto torna o sistema mais seguro, e faz com que os fabricantes de hardware PCI saibam exatamente o que fazer.
O PCI no início operava a 33MHz, usando um caminho de 32 bits de largura. O padrão foi atualizado, e sua velocidade subiu de 33MHz para 66MHz, e sua largura dobrou para 64 bits. Atualmente, o PCI-X transfere em 64 bits a uma velocidade de 133MHz a uma incrível taxa de transferência de 1GBps (gigabyte por segundo).

As placas PCI têm 47 pinos (49 para uma placa com "bus mastering", que controla o barramento PCI sem intervenção do processador). O barramento PCI consegue trabalhar com poucos pinos por causa da multiplexação de hardware, que significa que o dispositivo envia mais do que um sinal por pino. Além disso, o PCI é compatível com dispositivos que usam tanto 5 volts como 3,3 volts.
Apesar de a Intel ter proposto o padrão PCI em 1991, ele não se tornou popular até a chegada do Windows 95, em 1995. O súbito interesse no PCI deveu-se ao fato de o Windows 95 ser compatível com uma característica chamada Plug and Play (PnP), sobre a qual falaremos no capítulo seguinte


Plug and Play

PCI x AGP
O barramento PCI foi adequado durante muitos anos, com largura de banda suficiente para todos os periféricos que a maioria dos usuários geralmente usa. Todos, exceto um: placas de vídeo. Na década de 90, as placas de vídeo começaram a ficar cada vez mais potentes, e os jogos 3D começara a pedir desempenho mais alto. O barramento PCI não conseguia manipular toda a informação que trafegava entre o processador principal e o processador gráfico da placa de vídeo. Como resultado, a Intel desenvolveu a Porta de Aceleração Gráfica (AGP - Accelerated Graphics Port). Ele é um barramento dedicado somente à placa de vídeo. A largura de banda do AGP não é compartilhada com nenhum outro componente. Apesar de o PCI continuar a ser o barramento da maioria dos periféricos, o AGP assumiu a tarefa especializada de processamento de vídeo. No entanto, uma nova tecnologia de barramento chegou ao mercado e pode marcar o fim do AGP. Falaremos mais a respeito neste artigo, não deixe de ler.
Plug and Play (PnP) significa que você pode conectar um dispositivo ou uma placa no seu computador e eles são automaticamente reconhecidos e configurados para funcionar no seu sistema. O PnP é um conceito simples, mas foi necessário um esforço conjunto da indústria de computadores para que fosse criado. A Intel criou o padrão PnP e o incorporou ao design do PCI. Mas, somente muitos anos depois, um sistema operacional, o Windows 95, trouxe suporte ao PnP. O lançamento do PnP acelerou a demanda por computadores com PCI, rapidamente substituindo o ISA como o barramento mais usado. Para ser completamente implementado, o PnP precisa de três coisas
  • BIOS PnP - o utilitário central que habilita o PnP e detecta dispositivos PnP. A BIOS também lê o ESCD em busca de informações de configuração dos dispositivos existentes.
  • Extended System Configuration Data (ESCD) - dados de configuração de sistema estendidos, um arquivo que contém informação sobre os dispositivos PnP instalados.
  • Sistema operacional PnP - qualquer sistema operacional, como o Windows XP, que seja compatível ao PnP. Gerenciadores de PnP no sistema operacional completam o processo de configuração iniciado pela BIOS para cada dispositivo PnP. O PnP automatiza várias tarefas importantes que eram feitas ou manualmente ou com a instalação de um utilitário fornecido pelo fabricante do hardware. Estas tarefas incluem a definição de:
    • pedidos de interrupção (IRQ, do inglês Interrupt Requests) - um IRQ, também conhecido como interrupção de hardware, é usado pelas várias partes do computador para chamar a atenção do processador. Por exemplo, o mouse envia um IRQ toda vez que é movido para avisar o processador que está fazendo alguma coisa. Antes do PCI, todos os componentes de hardware precisavam de uma configuração IRQ à parte. Mas o PCI gerencia as interrupções de hardware na ponte do barramento, permitindo o uso de um único sistema IRQ para vários dispositivos PCI;
    • acesso direto à memória (DMA, do inglês Direct Memory Access) - o dispositivo é configurado para acessar a memória do sistema sem consultar o processador antes;
    • endereços de memória - muitos dispositivos recebem uma seção da memória do sistema para uso exclusivo. Isto garante que o hardware terá os recursos necessários para operar de maneira adequada;
    • configuração de Entrada/Saída (I/O) - aqui são definidas as portas usadas pelo dispositivo para receber e enviar informações.
Embora facilite muito na hora de adicionar dispositivos ao computador, o PnP não é infalível.
Variações nas rotinas de software usadas pelos desenvolvedores de BIOS PnP, pelos fabricantes de dispositivos PCI e pela Microsoft levaram o PnP a ser chamado de "Plug and Pray" (plugue e reze). No geral, o benefício do PnP tem sido simplificar bastante o processo de fazer upgrade no computador para adicionar novos dispositivos ou substituir os existentes.
Digamos que você tenha acabado de instalar uma nova placa de som PCI no seu computador que usa Windows XP. Veja a seguir um exemplo de como funcionaria:
  • você abre o gabinete e espeta a placa de som em um slot PCI vazio na placa-mãe;
  • você fecha o gabinete do computador e liga o computador;
  • a BIOS do sistema inicializa a BIOS PnP;

    Esta placa-mãe tem quatro slots PCI
  • a BIOS PnP varre o barramento PCI em busca de hardware, enviando um sinal para qualquer dispositivo conectado ao barramento, perguntando para o dispositivo quem ele é;
  • a placa de som responde e se identifica. A identificação do dispositivo é enviada de volta pelo barramento até a BIOS;
  • a BIOS PnP confere o ESCD para ver se os dados de configuração da placa de som já estão presentes. Como a placa de som acabou de ser instalada, não há entrada no ESCD para ela.
  • a BIOS PnP designa IRQ, DMA, endereço de memória e configuração de I/O para a placa de som e salva os dados no ESCD;
  • o Windows XP inicializa. Ele verifica o ESCD e o barramento PCI. O sistema operacional detecta que a placa de som é um dispositivo e exibe uma pequena tela dizendo que o Windows encontrou um novo hardware e está verificando qual é;
  • em muitos casos, o Windows XP vai identificar o dispositivo, encontrar e carregar os drivers necessários e ele estará pronto para ser usado. Se não, o "Assistente para Novo Hardware" vai abrir. Ele vai te mostrar como instalar drivers a partir de um disco que veio com a placa de som;
  • assim que o driver é instalado, o dispositivo já deve estar pronto para uso. Alguns dispositivos pedem que você reinicie o computado antes de usá-los. No nosso exemplo, a placa de som está pronta para usar imediatamente;
  • digamos que você queira capturar som de um toca-fitas externo que você conectou na placa de som. Você vai configurar o programa de gravação que veio com a placa de som e começar a gravar;
  • o áudio entra na placa de som através de um conector de áudio externo. A placa de som converte o sinal analógico para digital;
  • os dados do áudio digital da placa de som são transportados do barramento PCI para o controlador do barramento. O controlador determina qual dispositivo PCI tem prioridade para enviar dados à CPU. Também confere se os dados vão diretamente para a CPU ou para a memória do sistema;
  • como a placa de som está em modo de gravação, o controlador do barramento determina prioridade máxima para os dados que vêm da placa e envia os dados através da ponte do barramento para o barramento do sistema;
  • o barramento salva os dados na memória do sistema. Quando a gravação estiver completa, você pode escolher salvar os dados da placa de som no HD ou deixá-los na memória para processamento adicional.
Como as velocidades do processador têm chegado à faixa dos gigahertz, muitas empresas estão trabalhando pesado para desenvolver um padrão de barramento de próxima geração. Muitos acreditam que o PCI, assim como seu antecessor ISA, está rapidamente chegando ao seu limite.
Todos os padrões novos têm alguma coisa em comum. Eles propõem se afastar da tecnologia de barramento compartilhado usada no PCI para caminhar na direção da conexão de chaveamento ponto-a-ponto. Isto significa que uma conexão direta entre dois dispositivos (nós) no barramento é estabelecida enquanto eles se comunicam um com o outro. Basicamente, enquanto estes dois nós estiverem conversando, nenhum outro dispositivo consegue acessar aquele caminho. Com links diretos múltiplos, este barramento pode permitir que vários dispositivos se comuniquem sem que um reduza a velocidade do outro.
O padrão HyperTransport, proposto pela Advanced Micro Devices, Inc. (AMD), é aclamado pela companhia como a progressão natural do PCI. Para cada sessão de comunicação entre nós, ele fornece dois links ponto-a-ponto. Cada link pode ter largura de 2 bits a 32 bits, suportando uma taxa de transferência máxima de 6,4GB por segundo. O HyperTransport é desenhado especificamente para conectar componentes internos do computador uns aos outros, e não para conectar dispositivos externos, como drives removíveis. O desenvolvimento de chips de ponte vai permitir que dispositivos PCI acessem o barramento HyperTransport.


O PCI será substituído pelo HyperTransport?
O PCI-Express, desenvolvido pela Intel (antes chamado de 3GIO ou 3rd Generation I/O), parece ser a próxima grande novidade na tecnologia de barramento. No início, barramentos mais rápidos eram desenvolvidos para servidores de ponta. Eram chamados de PCI-X e PCI-X 2.0, mas não serviam para o mercado de computadores domésticos porque era muito caro fabricar placas-mãe com o PCI-X.
O PCI-Express é completamente diferente, é voltado para o mercado de computadores pessoais e poderia revolucionar não só o desempenho dos computadores, mas também o próprio formato dos computadores pessoais. Este novo barramento não é apenas mais rápido e capaz de manipular mais largura de banda do que o PCI. O PCI-Express é um sistema ponto-a-ponto, que permite melhor desempenho e pode até mesmo baratear a fabricação de placas-mãe. Os slots PCI-Express vão aceitar também as placas PCI antigas, fazendo com que se tornem populares mais rapidamente do que seriam se todos os componentes PCI se tornassem inúteis de uma hora para outra.
Ele também é escalonável. Um slot PCI-Express básico será uma conexão 1x. Terá largura de banda suficiente para conexões de alta velocidade à internet e outros periféricos. O 1x significa que há uma faixa para transportar dados. Se um componente precisar de mais largura de banda, slots PCI-Express 2x, 4x, 8x e 16x podem ser construídos nas placas-mãe, aumentando o número de faixas e permitindo que o sistema transporte mais dados através da conexão. Na verdade, os slots PCI-Express 16x já estão disponíveis para substituir o slot AGP para placas de vídeo em algumas placas-mãe. As placas de vídeo PCI-Express 16x estão em alta, custando mais de US$ 500. Conforme os preços forem caindo e as placas-mãe compatíveis com as placas mais recentes se tornarem comuns, o AGP pode virar história.

Um futuro distante
O PCI-Express pode significar mais do que computadores velozes. Conforme a tecnologia avança, os fabricantes de computadores podem criar uma placa-mãe com conectores PCI-Express que usem cabos especiais. Assim, o sistema de computador seria totalmente modular, muito parecido com sistemas estéreos de som. Você teria uma pequena caixa com a placa-mãe e o processador e uma série de conectores PCI-Express. Um HD externo poderia ser conectado via USB 2.0 ou PCI-Express. Pequenos módulos contendo placas de som, de vídeo e modens poderiam também ser ligados. Ao invés de uma caixa grande, seu computador poderia ser organizado da maneira que você quisesse, e seria do tamanho dos componentes que você precisasse.

Nenhum comentário:

Postar um comentário