|
Barramentos da placa de CPU - parte 1/2 Autor: Laércio Vasconcelos |
|
Copyright (C) |

Barramentos são conjuntos de sinais digitais através dos quais o processador transmite e recebe dados de circuitos externos. Alguns barramentos são usados para transmissões feitas entre placas, ou dentro de uma mesma placa. Existem vários barramentos nesta categoria:
Barramento local
Barramento da memória
Barramento PCI
Barramento ISA
Barramento AGP
Barramento AMR/CNR
Esses serão os barramentos estudados neste capítulo. Outros barramentos são usados para que o processador e a memória possam receber e transmitir dados para periféricos e dispositivos externos. Entre eles podemos citar os seguintes:
Barramento SCSI
Barramento USB
Barramento Firewire
Barramento IDE
|
|
Figura 12.1 Principais barramentos de uma placa de CPU. |
A figura 1 mostra o diagrama em blocos de uma placa de CPU. Nele podemos ver o processador, as memórias, os dois principais integrantes do chipset (North Bridge e South Bridge – ponte norte e ponte sul), a memória, os slots PCI e AGP, o barramento ISA, as interfaces IDE e USB, o chip Super I/O e suas interfaces. Neste capítulo estudarmos detalhadamente os seguintes barramentos indicados nesta figura:
1) Barramento do processador, barramento local ou barramento de sistema. É aquele através do qual o processador faz contato direto com o chipset, e a partir daí, com os demais barramentos. Especificamente este barramento é ligado ao chip chamado ponte norte, north bridge ou system controller.
2) Barramento da memória. Ligado diretamente na ponte norte, dá acesso aos soquetes nos quais são instalados os módulos de memória.
3) Barramento AGP. É usado para a instalação de uma placa de vídeo AGP.
4) Barramento PCI. Através deles podemos usar placas de expansão PCI. A maioria das placas de expansão atuais usam este barramento.
5) Barramento ISA. Usado na ligação com placas de expansão antigas que seguiam este padrão. Já existem placas de CPU que não apresentam mais o barramento ISA, mas no seu lugar utilizam um barramento interno chamado LPC, usado na comunicação com o BIOS e com o chip Super I/O.
Através deste barramento o processador faz a comunicação com o seu exterior. Nele trafegam os dados lidos da memória, escritos na memória, enviados para interfaces e recebidos de interfaces. Pode ser dividido em três grupos:
Barramento de dados
Barramento de endereços
Barramento de controle
|
|
Figura 12.2 Barramento do processador. |
Através do barramento de endereços o processador pode especificar qual a placa ou interface através da qual quer transmitir ou receber dados, e também especificar o endereço de memória no qual deseja ler ou armazenar dados. A maioria dos processadores modernos têm barramento de endereços com 36 bits, podendo assim endereçar até 64 GB de memória física. O barramento de dados tem 64 bits na maioria dos processadores modernos. O barramento de endereços é sempre unidirecional, ou seja, os bits são gerados pelo processador. O barramento de dados é bidirecional, ou seja, os dados são ora transmitidos, ora recebidos pelo processador.
O barramento de controle contém vários sinais que são necessários ao funcionamento do processador, bem como controlar o tráfego do barramento de dados. Alguns dos seus sinais são de saída, outros são de entrada, outros são bidirecionais. Existem sinais para indicação do tipo de operação (leitura ou escrita), sinais se especificação de destino/origem de dados (memória ou E/S), sinais de sincronismo, sinais de interrupção, sinais que permitem a outro dispositivo tomar o controle do barramento, sinais de clock, sinais de programação e diversos outros.
Na maioria dos casos, o barramento do processador é o mais veloz existente em uma placa de CPU, mas isto nem sempre ocorre. Por exemplo, uma placa de CPU pode ter o processador operando com barramento de 100 MHz e as memórias operando a 133 MHz. Ter a memória mais rápida é vantajoso no caso de placas com vídeo onboard, já que estaria sendo acessada, ora pelo processador, ora pelos circuitos de vídeo. Neste caso o barramento da memória seria o de tráfego mais intenso do computador.
Os barramentos de todos os processadores modernos operam de forma síncrona, ou seja, os eventos são sincronizados com um sinal de clock. Nos processadores antigos, cada operação era feita em dois, três ou mais períodos de clock. Nos processadores modernos, cada operação pode ser feita em um só período de clock. Infelizmente nem sempre as memórias e outros dispositivos são tão velozes a ponto de acompanhar esta velocidade, e assim são feitas prorrogações chamadas de wait states. Por exemplo, um Pentium III operando com 64 bits (8 bytes) e clock de 100 MHz externos, oferece uma taxa de transferência máxima de 800 MB/s (100 MHz x 8). Na prática este valor não é alcançado, pois nem todas as transferências podem ser feitas em um único ciclo. Por exemplo, todas as memórias modernas podem transferir dados a cada período de clock, porém o primeiro dado demora mais estar pronto, é o que chamamos de latência. Devido às latências das memórias e de outros dispositivos mais lentos, a taxa de transferência máxima nunca é obtida na prática.
A velocidade máxima teórica de um barramento é um ponto bastante importante, por isso vamos discutir o assunto com mais detalhes. Tanto é assim que ao lançar novos processadores (como o caso do Athlon/Duron e do Pentium 4 e Itanium), a Intel e AMD se preocuparam em oferecer taxas de transferência bem elevadas. Para calcular a taxa de transferência, basta multiplicar o clock externo do processador pelo número de bytes do seu barramento de dados. No caso de processadores que operam com DDR (Athlon e Duron) o clock deve ainda ser multiplicado por 2, e para processadores que operam com QDR (Quad Data Rate, como é o caso do Pentium 4 e do Xeon), o clock deve ser multiplicado por 4. A tabela a seguir mostra a taxa de transferência máxima teórica dos principais processadores produzidos nos últimos anos.
|
Processador |
Clock
externo |
Transferências
por ciclo |
Taxa
de transferência máxima teórica |
|
Pentium / Pentium MMX |
66
MHz |
1 |
533
MB/s |
|
K6-2
/ K6-III |
100
MHz |
1 |
800
MB/s |
|
Pentium II / Celeron |
66
MHz |
1 |
533
MB/s |
|
Pentium II 350+ |
100 MHz |
1 |
800 MB/s |
|
Pentium III, Celeron-800+ |
100
MHz |
1 |
800
MB/s |
|
Pentium IIIB |
133 MHz |
1 |
1066
MB/s |
|
Atlhlon
/ Duron |
100
MHz |
2 |
1600
MB/s |
|
thlon
/ Duron |
133
MHz |
2 |
2133
MB/s |
|
Pentium
4, Xeon |
100
MHz |
4 |
3200
MB/s |
As latências das memórais impedem que essas taxas sejam obtidas na prática. Um outro fator pode ainda fazer com que a taxa real seja ainda menor. Por exemplo, se um processador Athlon ou Duron operando com barramento de 100 MHz (200 MHz efetivos usando DDR) for ligado a memórias PC133, o desempenho do seu barramento será menor que o de um processador que use barramento de 133 MHz, e não de 200 MHz.
Sempre encontramos nos manuais dos processadores, disponíveis no sites dos seus fabricantes, especificações detalhadas sobre seus barramentos. Apenas como ilustração, mostraremos a seguir algumas informações sobre o barramento do processador Pentium MMX, compatível com os utilizados por outros processadores para o Socket 7. A figura 3 mostra a numeração dos pinos do processador, bem como os nomes recebidos por cada um desses pinos.
|
|
Figura 12.3 Pinagem do Pentium MMX. |
Observe que vários pinos têm as indicações VSS, VCC2 e VCC3. Os 53 pinos VSS são ligados ao terra da placa de CPU (tensão de 0 volts). Os 28 pinos de VCC3 são para a tensão externa do processador, com 3,3 volts. Os 25 pinos de VCC2 recebem no caso do Pentium MMX, uma alimentação de 2,8 volts, porém em outros processadores esta alimentação tem valores diferentes, e normalmente menores. Esta tensão alimenta o núcleo do processador. O uso de vários pinos de alimentação serve para garantir uma melhor distribuição de correntes dentro do chip e ao longo da placa de CPU.
A figura 4 mostra os barramentos de dados e de endereços. São ao todo 29 pinos de endereços (A3 a A31), com os quais podem ser endereçadas 512 M células de 64 bits, totalizando 4 MB. Como cada célula de 64 bits pode ter seus bytes endereçados individualmente, este processador tem mais 8 sinais de controle (BE0-BE7) que fazem este endereçamento adicional. Por exemplo, o processador pode especificifar uma célula de 64 bits qualquer e através dos sinais BE0-BE7, acessar apenas o valor de 8 bits armazenado no 3o byte desta célula, ou o valor de 16 bits armazenado no 5o e no 6o, bytes, ou ainda acessar o valor de 32 bits encontrado no 2o, 3o, 4o e 5o byte. Pode ainda usar a célula inteira como um valor de 64 bits, ou então obter esses 64 bits, parte da célula atual e parte da célula seguinte. A figura 4 mostra anda os 64 pinos que formam o barramento de dados (D0 a D63).
|
|
Figura 12.4 Barramentos de dados e de endereços do Pentium MMX. |
O mais complexo barramento do processador é o do controle, onde encontramos uma grande miscelânea de sinais (figura 5). Alguns são de fácil entendimento, bastando ter conhecimentos básicos sobre o funcionamento externo de um processador. Vamos apresentar alguns desses sinais, apenas para fins ilustrativos. Para obter mais detalhes específicos sobre o funcionamento de cada um desses sinais, é preciso fazer o download do manual do processador de interesse. Esses manuais são encontrados nos sites dos fabricantes, como Intel, AMD e VIA.
|
|
Figura 12.5 Sinais de controle do Pentium MMX. |
Aqui vão portanto as descrições de alguns desses sinais:
|
Sinal
|
Descrição |
|
A20M |
Usado
para dar acesso à chamada memória HMA, que consiste nos primeiros 64 kB
localizados após o endereço 1M. É usado quando o processador opera no
Modo Real, ou seja, o mesmo utilizado pelo MS-DOS. |
|
ADS |
Address
Strobe. Indica que o processador está iniciando um novo ciclo. Os ciclos
podem ser de leitura da memória, escrita na memória, leitura de I/O,
escrita em I/O, etc. |
|
AP
e EADS |
Usados
para geração e checagem de paridade no barramento de endereços. |
|
BF0
e BF1 |
Indica
o multiplicador usado para definir o clock interno, em função do clock
extenro (2x, 2,5x, 3x e 3,5x, no caso do Pentium MMX). Processadores como
o K6-2 possuem ainda um pino adicional BF2 para a definição de
multiplicadores maiores. Esses pinos são ligados aos jumpers da placa de
CPU que fazem a programção dos multiplicadores. |
|
BRDY |
Indica
ao processador se a atual transferência em modo burst já está
finalizada ou se devem ser usados wait states. |
|
CLK |
Através
desta entrada o processador recebe o seu clock externo. |
|
CPUTYP |
Usado
para distinguir entre processador primário e secundário, em placas
equipadas com mais de um processador. |
|
D/C |
Data/Code.
Através deste sinal o processador indica se está fazendo um acesso a
dados ou a instruções de programas. |
|
DP0-DP7 |
Usados
para geração e controle de paridade no barramento de dados. Cada um
desses 8 sinais representa a paridade de 8 bits do barramento de dados. |
|
FERR |
Floating
Point Erros. Usado para indicar a ocorrência de um erro de ponto
flutuante, resultante de uma operação matemática inválida feita pela
unidade de ponto flutuante, como uma divisão por zero ou raiz quadrada de
um número negativo. |
|
HOLD |
Por
esta entrada o processador recebe uma requisição para que entre em alta
impedância (tristate), possibilitando que outro chip tome o controle do
barramento. É usado em transferências de DMA e Bus Mastering. |
|
HLDA |
HOLD
Acknowledge. O processador informa que está entrando em modo de
tristante. A partir daí o barramento pode ser usado por outros chips. |
|
M/IO |
O
processador indica se está acessando uma posição de memória ou uma
interface de I/O (entrada e saída). |
|
R/W |
O
processador indica se está realizando uma operação de leitura ou
escrita. |
|
RESET |
Ao
receber um comando nesta entrada, o processador realiza seu processo de
RESET interno. Este sinal deve ser ativado mediante o botão RESET do
gabinete, e também quando o computador é ligado (Power-on RESET). |
Esses são apenas alguns dos sinais de controle deste processador, que são encontrados também nos processadores mais modernos. Nossa intenção aqui não foi descrever detalhadamente todos os sinais, mas apenas dar ao leitor uma idéia do tipo de função realizada por esses sinais.
Nas placas de CPU antigas, as memórias eram ligadas diretamente ao barramento do processador, através de chips chamados buffers bidirecionais. Esses chips tinham como único objetivo amplificar a corrente vinda do processador, permitindo que o barramento de dados fosse ligado a um número grande de chips de memória. Portanto a velocidade do barramento do processador era igual à velocidade do barramento das memórias.
Atualmente as memórias são ligadas ao processador através do chipset. A função do chipset nesta conexão não é de apenas aplificar corrente. A maioria dos chipsets possui registradores que permitem que a memória opere de forma assíncrona ao processador, ou seja, com um clock diferente. Alguns chipsets podem ter o processador operando a 100 MHz e as memórias a 66, ou 133 MHz. Outros podem ter o processador operando a 200 MHz e as memórias a 133. Existem vários outros exemplos de clocks diferentes. Nesses casos dizemos que a memória está operando de forma assíncrona ao processador.
Podemos encontrar barramentos de memória operando com diversas velocidades:
|
Tipo
de memória |
Clock
|
Transferências
por ciclo |
Taxa
de transferência máxima teórica |
|
FPM, EDO |
66 MHz |
1/3 |
176 MB/s (*) |
|
SDRAM PC66 |
66 MHz |
1 |
533 MB/s |
|
SDRAM PC100 |
100 MHz |
1 |
800 MB/s |
|
SDRAM PC133 |
133
MHz |
1 |
1067
MB/s |
|
DDR200 |
100
MHz |
2 |
1600
MB/s |
|
DDR266 |
133
MHz |
2 |
2133
MB/s |
|
DDR300 |
150
MHz |
2 |
2400
MB/s |
|
DDR333 |
166
MHz |
2 |
2666
MB/s |
|
DDR400 |
200
MHz |
2 |
3200
MB/s |
|
RDRAM |
100 MHz |
4 |
3200 MB/s (**) |
(*)
Memórias FPM e EDO gastam de 2 a 4 ciclos em Page Mode para fazer cada transferência,
por isso consideramos uma média de 3 ciclos para cada transferência, ou 1/3 de
transferência a cada ciclo.
(**)
Um módulo RDRAM opera com 1600 MB/s, porém são usados aos pares, resultando
em 3200 MB/s. Note ainda que a DDR SDRAM mais veloz indicada na tabela é a
DDR400, porém na época em que a RDRAM oferecia 3200 MB/s, a DDR mais veloz era
a DDR266. Juntamente com a chegada de chips DDR mais velozes, chegarão tambem
ao mercado chips RDRAM também com maior velocidade.
As taxas de transferência mostradas na tabela acima são meros limites teóricos, e nunca são obtidos na prática. São taxas momentâneas que vigoram apenas quando a transferência se dá em modo burst. Essas taxas não são sustentadas por períodos significativos, já que a cada 3 transferências em que usam um só ciclo, é exigida uma transferência inicial que dura 2 ou 3 ciclos (latência 2 ou 3), resultando em temporizações como 2-1-1-1 ou 3-1-1-1, o que resulta em 0,8 e 0,75 transferências por ciclo, em média. Mais tempo é perdido antes de cada transferência, ao serem usados os comandos de leitura e gravação, onde mostramos como são as formas de onda dos acessos aos vários tipos de memória). Finalmente um outro fator contribui para reduzir ainda mais o desempenho, que é a atuação da cache. A maioria dos acessos à memória passam pelas caches do processador, mas certos ciclos podem ser feitos no modo uncached. O processador estaria neste caso fazendo leituras e escritas diretamente na memória, e sem usar o modo burst (transferências da cache são feitas em grupos de 4 acessos consecutivos).
Existem algumas diferenças, principalmente no número de bits do barramento de dados e de endereços dos chips de memória. Já o barramento de memória não admite variações. Existe um padrão que deve ser seguido por todos os fabricantes. Por exemplo, os barramentos dos módulos SDRAM DIMM/168 devem ter sempre 64 ou 72 bits. Diferenças podem existir nos barramentos de endereços, já que módulos de maior capacidade exigem mais bits para seu endereçamento. Entretanto, no mesmo soquete onde instalamos um módulo de 512 MB, também precisam ser suportados módulos de menores capacidades, o que resulta em variações no número de bits de endereços. Essas diferenças não são uma despadronização. O que ocorre é que o barramento deve ser compatível com módulos de diferentes capacidades. Outros sinais são padronizados em módulos de qualquer capacidade. Por exemplo, os sinais RAS e CAS dos módulos SDRAM DIMM/168 devem sempre ocupar os pinos 115 e 111, respecticamente. A figura 6 mostra a utilização de todos os pinos do barramento utilizado pelas memórias SDRAM DIMM/168.
|
|
Figura 12.6 Pinagem de um barramento de memória SDRAM DIMM/168. |
A seguir apresentamos uma breve descrição dos mais importantes sinais de um barramento de SDRAM DIMM/168.
|
Sinal
|
Descrição |
|
RAS |
Row
Address Strobe. Ligado diretamente aos pinos de RAS dos chips de memória
encontrados nos módulos DIMM/168. |
|
CAS |
Column
Address Strobe. Ligado diretamente aos pinos de CAS dos chips de memória.
|
|
WE |
Write
Enable. Também ligado nos pinos de mesmo nome nas memórias, é usado
para indicar se a atual operação é de leitura (bit 1) ou escrita (bit
0). |
|
CK0-CK3 |
São
sinais idênticos e transmitem aos chips do módulo, os sinais de clock
necessários aos seu funcionamento. Em módulos PC133, este clock é de
133 MHz. |
|
DQ0-DQ63 |
São
os 64 bits do barramento de dados do módulo. |
|
CB0-CB7 |
São
8 bits adicionais usados para checagem de erros (Paridade ou ECC) |
|
A0-A12 |
Barramento
de endereços, especifica a célula de memória a ser acessada. |
|
BA0,
BA1 |
Selecionamento
de banco. Cada chip de SRAM possui 4 bancos internos. Esses dois bits são
usados para o selecionamento do banco desejado. O mesmo selecionamento é
enviado a todos os chips do módulo. |
|
S0,
S1, S2, S3 |
Selecionamento
de banco dentro do módulo. Existem módulos de 1 e de dois bancos.
Normalmente os de 1 banco usam chips de um só lado, enquanto os de 2
bancos possuem chips em ambos os lados. O primeiro banco é sempre ativado
pelos sinais S0 e S2, enquanto o segundo banco, quando existe, é ativado
pelos sinais S1 e S3. |
|
DQMB0-DQMB7 |
Cada
um desses 8 bits de controle ativa o bits consecutivos do barramento de
dados do módulo. DQMB0 habilita os bits DQ0-DQ7; DQMB1 habilita os bits
DQ8-DQ15, e assim por diante, até DQMB7 que habilita os bits DQ56-DQ63.
Através desses controles, o chipset, mediante comando apropriado do
processador, pode acessar grupos de 8, 16, 32 ou 64 bits na célula endereçada.
Isso é útil, por exemplo, quando é preciso gravar um dado em um único
byte, ou em outras porções menores que os 64 bits do barramento de dados
do módulo. |
|
VCC |
Alimentação
de +3,3 volts. |
|
VSS |
Ligados
ao terra |
Células de memória em um módulo DIMM têm 64 bits, ou seja, 8 bytes. É interessante observar como essas células são endereçadas. São usados 3 grupos de sinais:
|
Sinais
|
Funcionamento |
|
S0,
S1, S2 e S3 |
Esses
sinais fazem a distinção entre módulos de face simples e de face dupla.
Nos módulos de face simples, devem ser ativados simultaneamente os sinais
S0 e S2. Nos módulos de face dupla, os sinais S0 e S2 ativam os chips de
uma face, e os sinais S1 e S3 ativam os chips da outra face. Mais
especificamente: S0
ativa os bits DQ0-DQ31 da primeira face Portanto
esses sinais podem representar até 2 combinações: S0
e S2 ativos |
|
BA0,
BA1 |
Esses
sinais são enviados a todos os chips do módulo. Servem para selecionar
um dos 4 bancos internos que um chip de SDRAM pode ter. Portanto esses
sinais podem representar 4 combinações: Banco
0: BA1=0 e BA0=0 |
|
A0-A11
ou A0-A12 |
Dependendo
da capacidade do módulo, podem existir 12 bits (A0-A11) ou 13 bits
(A0-A12) de endereçamento. Este grupo de bits é usado duas vezes para
indicar a linha e a coluna desejada, juntamente com os sinais RAS e CAS.
Podem portanto fornecer nas duas etapas, 24 ou 26 bits de endereços.
Desta forma é possível endereçar 16M (224) ou 64M (226)
células. |
Sendo assim, a capacidade de um módulo de memória depende obviamente do número e da capacidade dos chips, mas também deve estar de acordo com o número de faces e do número de bits de endereço. Por exemplo, para módulos com 12 bits de endereços e face dupla, a capacidade máxima permitida é de:
16M x 2 bancos por módulo x
4 bancos internos x 8 bytes por célula =
= 1024 MB
A tabela abaixo mostra as capacidades máximas dos módulos em função do número de bits de endereços e do número de faces:
|
Endereços
|