Escolar Documentos
Profissional Documentos
Cultura Documentos
BARRAMENTOS
As CPUs dos computadores possuem um conjunto de pinos por meio dos quais ocorre
toda a comunicação da CPU com o mundo externo. Alguns destes pinos produzem sinais
para o mundo externo, outros recebem sinais do mundo externo, outros fazem as duas
coisas. Estes pinos podem ser divididos basicamente em três categorias: endereço,
dados e controle.
Os pinos da CPU são conectados a pinos similares na memória ou nos dispositivos de
E/S por meio de um conjunto de fios paralelos denominados de barramento. Ou seja, são
estes três barramentos que conduzem todas as informações e sinais necessários à
operação do sistema. Estes barramentos conectam o microprocessador (CPU) a cada um
dos elementos de memória e de E/S, de modo que dados e informações possam ser
trocados entre a CPU e qualquer um destes elementos, em resumo:
• São vias ou canais por onde se transmitem sinais de um dispositivo para outro.
• É um conjunto de linhas condutoras elétricas que interligam os diversos elementos
dentro do computador. Geralmente têm a forma de filetes de cobre sobre a placa de
circuito impresso.
• Os barramentos são divididos em três grupos:
o Barramento de endereço (address bus);
o Barramento de dados (data bus);
o Barramento de controle (control bus).
• A figura 1 apresenta um esquema básico destes barramentos.
(address bus)
(data bus)
(control bus)
1
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
Conforme descrito por Tanenbaum (2007) pág. 101, a maioria dos pinos de controle do
barramento são saídas da CPU para o barramento e, portanto, entradas para a memória
e chips de E/S, que informam se a CPU quer ler ou escrever para a memória ou fazer
outra coisa qualquer. A CPU usa esses pinos para controlar o resto do sistema e lhe
informar o que ela quer fazer. Os pinos de interrupção são entradas que vêm de
dispositivos de E/S para a CPU. Em grande parte dos sistemas a CPU pode dizer a um
dispositivo de E/S que inicie uma operação e então continuar e fazer uma outra coisa
qualquer enquanto o dispositivo de E/S está realizando seu trabalho. Quando a E/S
estiver concluída, o chip controlador de E/S ativa um sinal em um desses pinos para
interromper a CPU e fazer com que ela preste algum serviço ao dispositivo de E/S, por
exemplo, verifique se ocorreram erros de E/S. Algumas CPUs têm um pino de saída para
reconhecer o sinal de interrupção. Os pinos de arbitragem de barramento são
necessários para disciplinar o tráfego no barramento de modo a impedir que dois
dispositivos tentem usá-lo ao mesmo tempo. Do ponto de vista da arbitragem, a CPU é
um dispositivo e tem de requisitar o barramento como qualquer outro. Alguns chips de
CPUs são projetados para funcionar com co-processadores, como chips de ponto
flutuante, mas às vezes também com chips gráficos ou outros chips. Para facilitar a
comunicação entre CPU e co-processador, há pinos especiais dedicados a fazer e aceitar
requisições. Além desses sinais, há outros pinos diversos presentes em algumas CPUs.
Alguns deles dão ou aceitam informações de estado, outros são úteis para reiniciar o
computador e outros mais estão presentes para garantir a compatibilidade com chips de
E/S mais antigos.
Para possibilitar a ligação de placas projetadas por terceiros ao sistema de barramento e
para manter a consistência na troca de informações regras de funcionamento do
barramento que devem ser seguidas por todos os dispositivos a ele conectados, estas
regras são denominadas protocolo de barramento. Além disto, especificações elétricas
e mecânicas devem ser respeitadas para que haja compatibilidade com os dispositivos
que serão introduzidos nos conectores e suportes do barramento.
Os computadores modernos em geral têm um barramento dedicado entre CPU e memória
e outro para os dispositivos de entrada e saída. Além disso, possuem um chip
controlador de barramento o qual é responsável pelas interrupções, arbitragem de
barramento e sinalizações, como representado na figura 4
3
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
Observe que internamente à CPU existem barramentos específicos para o fluxo de dados
e os controles necessários entre a ULA, os registradores e a controladora da CPU.
Chipsets
Os controladores de barramentos, atualmente, são implementados nos chipsets. Com isto
em vez de se usar uma dúzia de pequenos chips, uma placa-mãe pode ser construída
usando apenas alguns chips maiores. Estes chipsets incorporam não só as controladoras
dos barramentos, mas as controladoras dos diversos dispositivos existentes na placa
mãe.
Atualmente estas controladoras são divididas em dois grandes chips, um chamado ponte
norte e outro chamado ponte sul. Em alguns casos a ponte norte e a ponte sul podem
estar integradas em um único chip, só depende do fabricante. Na figura 5 vemos um
exemplo destes chips.
Nos chipsets Intel, a ponte norte é chamada de "MCH" (memory controller hub) e a ponte
sul de "ICH" (I/O controller hub). Ligando o MCH ao ICH, temos um barramento rápido,
chamado DMI (direct media interface), que oferece um barramento de 2 GB/s (nos
chipsets para processadores AMD, o DMI é substituído pelo barramento HyperTransport).
Nas placas mais antigas utiliza-se o barramento PIC para ligar a ponte norte com a ponte
sul o que pode se tornar um gargalo pelo uso deste barramento por outros dispositivos.
4
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
DMI
Nas placas para processadores AMD de 64 bits, tais como o Athlon 64, o Athlon 64 X2, o
Athlon 64 FX, o Opteron, o Sempron e o Phenom, a configuração é um pouco diferente, já
que o controlador de memória é incluído diretamente no processador. É usado um
barramento na comunicação entre o processador e a memória chamado simplesmente
“barramento da memória”. Para interligar o processador, à ponte norte e à ponte sul é
usado o barramento Hyper Transport. A disposição dos demais componentes é similar.
MORIMOTO (2007), TORRES e LIMA (2007).
5
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
pode-se ter um ou dois chips. Em uma solução com dois chips todos os periféricos (tais
como discos rígidos, placas de expansão, placas de som, etc) são conectados ao
segundo chip (este segundo chip é chamado ponte sul, não mostrado na Figura 6),
enquanto que na solução com apenas um chip tudo está conectado a este único chip.
TORRES e LIMA (2007).
Circuitos de interface:
Para adequar os sinais binários usados nos dispositivos aos sinais binários usados no
barramento e vice-versa (ou porque muitas vezes são fracos para energizar um
barramento, ou se o barramento for relativamente longo ou tiver muitos dispositivos
ligados a ele), utilizam-se circuitos de interface (chips) adequados, tais como:
alimentadores de barramento para os mestres (bus drivers) e receptores de barramento
para os escravos (bus receivers).
Quando dispositivos podem agir tanto como mestres como escravos, é usado um chip
que combina as duas funções denominado de transceptor de barramento, ou seja, um
bus driver + bus receiver = bus transceiver.
Os circuitos que fazem interface com o barramento muitas vezes são dispositivos de três
estados conhecidos como Tri-state, o que permite que se desconectem quando não são
necessários ou então se conectem quando são solicitados, veja exemplo na figura 7. De
modo um tanto diferente, outros dispositivos denominados coletor aberto (open-colletor)
conseguem um efeito similar. Neste caso, quando dois ou mais dispositivos em uma linha
de coletor aberto ativam a linha ao mesmo tempo, o resultado é o OU booleano de todos
os sinais (isto se o circuito está atuando com lógica invertida, ou seja, é ativado em zero
volt. Caso contrário o efeito será de uma lógica E). Esse arranjo com coletor aberto
costuma ser denomina do OU cabeado (wired or), figura 8.
Na maioria dos barramentos encontramos algumas linhas que são de três estados
(Tri-state), e outras, que precisam da propriedade OU cabeado e são de coletor aberto.
A figura 7, apresenta um barramento de 8 bits ligado a um dispositivo via 8 tri-states, os
quais são ativados pela linha OE. Quando OE = 0 implica em tri-states desativados,
fazendo que o dispositivo esteja desconectando do barramento. Quando OE = 1 o
dispositivo está conectado ao barramento através dos tri-states.
Dispositivo
Output Enable
6
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
VCC
Ativo em zero
R1 A B S
Barramento
S
1 1 1
Q1 Q2
1 0 0
A B
0 1 0
0 0 0
Largura do barramento
Quanto mais linhas de endereços um barramento tiver mais memória a CPU poderá
endereçar diretamente, logo o número de linhas determina o número de bits usados para
endereçar a memória principal e consequentemente o tamanho do espaço de memória
endereçável. Esta quantidade de endereços é dada pela relação 2n, sendo n o número de
linhas do barramento.
Para memórias de grande porte os barramentos precisam de muitas linhas de endereço,
contudo quanto mais “largo” o barramento, mais linhas em paralelo, maior será a banda
passante, mas também, maior o espaço físico ocupado na placa mãe e maiores os
conectores, de modo que as linhas precisam ser cada vez mais estreitas. Todos esses
fatores encarecem o barramento e por causa disso há um compromisso entre tamanho
máximo de memória e custo do sistema. Um sistema com barramento de endereço de 64
linhas e 232 bytes de memória custará mais do que um sistema com 32 linhas de
endereço e os mesmos 232 bytes de memória. A possibilidade de expansão futura torna o
barramento caro e deve ser levada em conta no projeto. Deve-se medir o custo benefício.
Vamos analisar a seguinte situação de crescimento de um barramento de endereço ao
longo do tempo descrita pela figura 9.
7
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
• Na figura 9(a) temos o IBM PC original com uma CPU 8088 e um barramento de
endereço de 20 bits. Estes 20 bits permitiam ao PC endereçar 1 MB de memória.
• Com o lançamento da CPU 80286, a Intel decidiu aumentar o espaço de endereço
para 16 MB, para isso precisou adicionar mais quatro linhas de barramento para não
perturbar as 20 linhas originais, visando manter a compatibilidade, figura 9(b). Com
isto, mais linhas de controle tiveram de ser acrescentadas.
• Para o 80386 mais oito linhas de endereço foram acrescentadas as já existentes,
resultando em 32 linhas, como mostra figura 9(c). Resultando no barramento EISA,
muito mais confuso do que seria se o barramento tivesse 32 linhas desde o início.
Este barramento mostrou-se complexo e caro o que resultou na sua morte.
Não é apenas o número de linhas de endereço que tende a crescer com o tempo, mas
também o número de linhas de dados visando um aumento na transferência e por
conseqüência um aumento da velocidade do barramento, ou seja, um aumento na largura
de banda de dados.
Uma alternativa para aumentar a banda passante sem aumentar a largura física é
aumentar a velocidade do barramento (reduzir o ciclo de tempo de barramento). O que
pode gerar problemas de “escorregamento” dos sinais (bus skew), este efeito consiste em
atrasos de propagação diferentes dos sinais que trafegam em linhas diferentes (atraso
diferencial do barramento). Este efeito pode tornar-se significativo com o aumento da
velocidade comprometendo o sistema.
O aumento da freqüência do barramento pode levar também ao aumento da interferência
entre as trilhas paralelas pelo aumento de indução dos sinais entre elas.
O aumento da velocidade também gera problemas de incompatibilidade com placas
antigas.
Uma alternativa para aumentar a largura sem aumentar o número de linhas é o
barramento multiplexado. Onde uma mesma via é utilizada para transmitir os endereços
e os dados. O endereço é enviado no inicio de uma transferência, após o endereçamento
ter sido consumado são transmitidos os dados. Resulta em custo menor à custa de um
tempo de transferência maior, ou seja, um sistema mais lento.
Relógio do barramento
Os barramento são divididos em duas categorias dependendo do sincronismo. Um é o
barramento síncrono o qual é comandado por um oscilador a cristal, ou um sinal de
relógio, onde todas as atividades do barramento são sincronizadas pelo relógio e usam
um número inteiro de ciclos deste relógio denominados ciclos de barramento. Um outro
tipo é o barramento assíncrono, o qual não tem um relógio mestre. Neste caso os ciclos
de barramento podem ter qualquer duração requerida e não são os mesmos entre todos
os dispositivos.
• Barramento síncrono
o A freqüência do barramento não é a mesma do processador, ela está relacionada
com a freqüência da placa mãe. Podemos ter um barramento de 100MHZ e um
processador de 1,2GHz.
o Vantagem são baratos e de fácil implementação.
8
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
Sinais de controle:
φ = relógio.
ENDEREÇO: sinais de endereçamento.
DADOS = dados a transferir.
MREQ : requisição de referência à memória. Ativo em baixo.
RD : ativo = leitura, inativo = escrita. Ativo em baixo.
WAIT : sinaliza estado de espera até que a memória consiga atender à
requisição. Ativo em baixo.
Operação:
A operação é disparada pela transição positiva do relógio em T1.
O processador coloca o endereço, que ele quer ler, na linha de endereço
durante o meio ciclo alto de T1. Para representar que o endereço não é um
valor único ele é representado por duas linhas que se cruzam no instante
que o endereço é enviado (área branca).
Após estabilização do endereço, disparado pela transição, o processador
ativa MREQ para indicar que é a memória que está sendo acessada e RD
para indicar que é uma leitura.
No início de T2, a memória ativa WAIT , sinalizando que não tem condições
de fornecer o dado neste ciclo, uma vez que a memória leva 15ηs, após o
endereço estar estável, para responder. Esta ação inserirá estados de
espera no barramento até que a memória conclua e desative WAIT .
Na transição positiva de T3, a memória desativa WAIT , sinalizando que terá
os dados disponíveis neste ciclo.
Durante a 1ª metade do ciclo T3 a memória coloca os dados na via de
dados.
Na transição descendente de T3 o processador lê os dados no barramento,
armazena em um registrador interno e desativa os sinais MREQ e RD .
9
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
≈2,2η
≈1,8η ≈1,4η
≈4,6η
≈1,8η ≈1,4η
10
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
• Barramento assíncrono
o Não possui um relógio mestre.
o As operações podem levar o tempo que for necessário para serem realizadas e
não um número inteiro de ciclos de relógio como ocorre no barramento síncrono.
o Vantagem: suporta pares mestre-escravo heterogêneos (lentos e rápidos) no
mesmo barramento.
o Este barramento funciona em malha fechada a partir de um protocolo denominado
"Aperto de Mão" completo (hand-shake). Os sinais de controle gerados pelo
escravo são disparados em resposta aos sinais gerados pelo mestre, e vice-
versa.
o Desvantagem: é mais difícil de implementar. Pouco utilizado.
o Como exemplo do funcionamento de um barramento assíncrono, considere o
diagrama temporal da figura 11, obtida de Tanenbaum (2007) pág. 106.
Sinais de controle:
MSYN : Master Syncrhonization. Ativo em baixo.
SSYN : Slave Syncrhonization. Ativo em baixo.
MREQ : requisição de referência à memória. Ativo em baixo.
RD : ativo = leitura, inativo = escrita. Ativo em baixo.
Operação:
11
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
Mestre e escravo:
Alguns dispositivos ligados ao barramento são ativos e podem iniciar transferências no
barramento, estes são denominados de mestre (master), enquanto outros são passivos e
esperam pelas requisições, estes são denominados de escravos (slave). Em alguns
casos um mesmo dispositivo pode atuar hora como mestre, hora como escravo. Por
exemplo, quando a CPU ordena a um controlador de disco que leia ou escreva um bloco,
ela está agindo como mestre e o controlador de disco como escravo. Mais tarde, o
controlador de disco pode agir como um mestre quando manda a memória aceitar as
palavras que são lidas do drive de disco. Algumas combinações típicas mestre–escravo
estão relacionadas na Tabela 2. As memórias sempre atuam como escravos.
12
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
Arbitragem de barramento
• Arbitragem Centralizada:
o Uma forma simples de arbitragem centralizada é mostrada na figura 12.
13
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
o A rigidez imposta pelo esquema de prioridades pode ser contornada usando dois
ou mais pares de linhas de requisição e concessão, com níveis de prioridades
distintas.
Sendo assim, o árbitro só liberará a permissão para a linha de concessão de
maior prioridade dentre os níveis que fizerem requisições simultâneas.
Entre os dispositivos da mesma prioridade é usado o encadeamento em série.
Na figura 12b, se ocorrer algum conflito, o dispositivo 2 vence o dispositivo 4,
que vence o 3.
O dispositivo 5 tem a menor prioridade porque está no final da linha de
encadeamento de menor prioridade.
Barramentos reais costumam ter 4, 8 ou 16 níveis.
o O árbitro pode ter uma terceira linha que um dispositivo qualquer ativa quando
aceita uma concessão e toma o barramento, então:
No instante que o dispositivo ativa essa linha de reconhecimento, as linhas de
requisição e concessão podem ser desativadas.
Outros dispositivos podem então requisitar o barramento enquanto o primeiro
dispositivo o estiver usando.
No instante em que a transferência em questão for concluída, o próximo mestre
de transferência de dados já terá sido selecionado. Ele pode começar logo que
a linha de reconhecimento tenha sido desativada, quando então pode ser
iniciada a próxima rodada de arbitragem e assim sucessivamente.
Esse esquema requer uma linha de barramento extra e mais lógica em cada
dispositivo, mas faz melhor uso de ciclos de barramento.
o Nos sistemas em que a memória está ligada no barramento comum aos
dispositivos E/S, o processador competirá pela posse na maioria dos ciclos, de
modo que é aconselhável atribuir ao processador a mais baixa prioridade.
Supondo que o processador pode esperar, mas E/S não, pois podem perder os
dados. O uso de um barramento dedicado entre memória e processador contorna
este problema.
• Arbitragem Descentralizada:
o Não existe a figura do árbitro. O processo de arbitragem é distribuído entre todos
os dispositivos.
o Um exemplo de arbitragem descentralizada é mostrado na figura 13.
Usa apenas três linhas, não importando quantos dispositivos estiverem
presentes.
14
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
o Vantagens:
É mais barato;
Mais rápido;
Não está sujeito à falha do árbitro.
15
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
Operações de barramento
• Transferência em Bloco:
o Normalmente só uma palavra é transferida por vez. Contudo, quando é usado
caching, é desejável buscar uma linha inteira de cache por vez (por exemplo, 16
palavras de 32 bits consecutivas).
o Mais eficiente do que transmitir uma palavra por vez.
o Operação:
Na figura 22 vemos um exemplos de transferência em blocos.
Quando uma leitura de bloco é iniciada, instante T1, o mestre de transferência
ativa um sinal de controle BLOCK para requisitar a transferência em bloco de
dados e informa ao escravo quantas palavras serão transferidas.
Em resposta, em vez de retornar apenas uma palavra, o escravo entrega uma
palavra durante cada ciclo, decrementando o contador, até esgotar aquele
número de palavras solicitadas.
Veja que nesse exemplo, uma leitura de bloco de 4 palavras demora apenas
6 ciclos de relógio em vez de 12.
16
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
17
Prof. Mario F. G. Boaratti - Arquitetura de Computadores
Recomendação de leitura para este capítulo: Tanenbaum (2007) das págs.100 até 109.
Referências bibliográficas:
TANENBAUM, Andrew S. Organização estruturada de computadores. 5ª edição. São
Paulo, Ed. Prentice Hall do Brasil, 2007.
MONTEIRO, M. A. Introdução à organização de computadores. 3ª edição. RJ, Ed. LTC,
1996.
SOUZA, D. J. Desbravando o PIC - Ampliado e Atualizado para PIC 16F628A. 12ª edição.
São Paulo, Ed. Érica, 2007.
MORIMOTO, Carlos E. Hardware, o Guia Definitivo. Disponível em:
< http://www.gdhpress.com.br/hardware/leia/index.php?p=cap3-14>, 2007. Acessado em:
08/2010.
TORRES, Gabriel e LIMA, Cássio. Tudo o Que Você Precisa Saber Sobre Chipsets.
Disponível em: <http://www.clubedohardware.com.br/printpage/568>, 2005. Acessado em:
08/2010.
TORRES, Gabriel e LIMA, Cássio. Barramento HyperTransport Usado Pelos
Processadores da AMD. Disponível em: < http://www.clubedohardware.com.br/artigos/522>,
2007. Acessado em: 08/2010.
18