Você está na página 1de 18

Prof. Mario F. G.

Boaratti - Arquitetura de Computadores

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.

São linhas Unidirecionais que identificam um lugar


particular na memória ou dispositivo de E/S

(address bus)

(data bus)

(control bus)

Trafegam os sinais que São linhas bidirecionais


indicam o tipo de atividade que trafegam os sinais
no processo corrente: referentes aos dados que
Escrita de memória fluem entre CPU, Memória
Leitura de memória e E/S
Interrupções
Escrita ou leitura de E/S
Figura 1 - Os três barramentos básicos do computador

1
Prof. Mario F. G. Boaratti - Arquitetura de Computadores

Na documentação os barramentos podem ser representados por setas largas e


sombreadas como nas figuras 1 e 4 ou como uma linha reta cortada por um pequeno
segmento de reta inclinado acompanhado de um número que indica a quantidade de bits,
conforme mostra a figura 2 e também a figura 3. Quando todos os bits são do mesmo tipo,
por exemplo, todos são bits de endereço ou todos são bits de dados, costuma-se utilizar a
representação do segmento de reta inclinado. Quando são envolvidas linhas de endereço,
dados e controle a seta sombreada é mais comum. Em alguns casos a quantidade de bits
é indicada dentro da seta entre parênteses.

Sousa (2007) pág. 24


Figura 2 - Outra forma de representar os barramentos
Arquitetura interna do PIC 16F628A

Como vimos na figura 1, os pinos de controle gerenciam o fluxo e a temporização de


dados que vêm da CPU e vão para ela, além de ter outras utilizações diversas, as quais
são mostradas na figura 3. Os pinos de controle podem ser agrupados nas principais
categorias seguintes:
o Controle de barramento.
o Interrupções.
o Arbitragem de barramento.
o Sinalização de co-processador.
o Estado.
o Diversos.
Além destes, todas as CPUs têm pinos para energia elétrica (+ 3,3 volts ou + 5 volts
dependendo do processador), pinos para terra e para um sinal de relógio. Podem ter
outros pinos, os quais variam muito de chip para chip.
2
Prof. Mario F. G. Boaratti - Arquitetura de Computadores

Tanenbaum (2007) pág. 101

Figura 3 - sinais de um processador típico

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

Tanenbaum (2007) pág. 102

Figura 4 – Sistema com controlador de barramentos

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.

• A ponte norte basicamente contém: o controlador de memória, o controlador do


barramento AGP, o controlador do barramento PCI Express x16 e a interface para
transferência de dados com a ponte sul.
• A ponte sul basicamente contém os controladores de: discos rígidos, portas USB,
som on-board, rede on-board, barramento PCI, barramento PCI Express,
barramento ISA, relógio de tempo real (RTC), memória de configuração (CMOS) e
dispositivos antigos, como controladores de interrupção e de DMA.

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

Origem: TORRES e LIMA, Clube do Hardware.


Figura 5 – Ponte Norte e Ponte Sul

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).

Origem: TORRES e LIMA, Clube do Hardware.

Figura 6 – Barramento Hyper Transport - AMD

Na Figura 6, pode-se ver como um processador AMD64 se comunica com o mundo


externo. O chip “ponte” é o chipset da placa-mãe. Dependendo do chipset utilizado

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).

Veja mais em: < http://www.clubedohardware.com.br/artigos/568/1 >


< http://www.clubedohardware.com.br/artigos/522>
< http://www.gdhpress.com.br/hardware/leia/index.php?p=cap3-14>

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

Figura 7 – Barramento conectado a dispositivo tri-state.

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

Figura 8 – Barramento conectado na forma OU cabeado (wired or).

Segundo Tanenbaum (2007), os principais tópicos no projeto de um barramento são


largura de barramento, relógio de barramento, arbitragem de barramento e operações de
barramento. Cada um destes tópicos tem impacto substancial sobre a velocidade e a
largura de banda do barramento.

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.

Tanenbaum (2007) pág. 102

Figura 9 – Crescimento do barramento de endereço com o tempo

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

o Desvantagem é que pares mestre-escravo mais rápidos ficam limitados ao ciclo


do barramento.
o Como exemplo do funcionamento de um barramento síncrono, considere o
diagrama temporal da figura 10 (diagrama de temporização de leitura em um
barramento síncrono) e sua especificação de tempos críticos tabela 1, obtidos de
Tanenbaum (2007) pág. 105.
ƒ Neste exemplo é usado um relógio de 100 MHZ, que dá um ciclo de
barramento de 10 nanossegundos.
ƒ É admitido ainda que ler da memória leva 15 nanossegundos a partir do
instante em que o endereço está estável. Como veremos em breve, com esses
parâmetros, ler uma palavra levará três ciclos de barramento, começando na
borda ascendente de T1 e o terceiro termina na borda ascendente de T4.

ƒ 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

Œ Se for o caso um novo ciclo de leitura pode ser iniciado na súbita de T4 e


Assim por diante.

≈2,2η

≈1,8η ≈1,4η

≈4,6η

≈1,8η ≈1,4η

6,8η 22,8η 27,8η


0 2,2η 5η 10η 20η 30η
16η
Tanenbaum (2007) pág. 105

Figura 10 - Diagrama temporal no barramento síncrono

Tabela 1: Especificação de tempos críticos do barramento síncrono

Tanenbaum (2007) pág. 105

ƒ Tempos requeridos pelo fabricante da CPU e seus significados, tabela 1:


Œ O Processador deve gerar endereços, no máximo, TAD = 4ηs após a
transição positiva de T1.
Œ O dado deve estar disponível, no mínimo, TDS = 2ηs antes da transição
negativa de T3 para dar tempo de se acomodarem antes que a CPU os leia.
Œ A combinação de restrições impostas por TAD e TDS indica que no pior caso a
memória dispõe de (T1+T2+T3/2) - TAD - TDS = 25η - 4η - 2η = 19ηs, a partir
do aparecimento do endereço, para liberar os dados a serem lidos.

10
Prof. Mario F. G. Boaratti - Arquitetura de Computadores

Œ As limitações impostas a TM e TRL significam que ambos, MREQ e RD ,


serão ativados dentro de 3ηs a partir da borda descendente T1 do relógio.
Isto implica que a memória terá apenas
T2↓ - T1↓) + (T3↓ - T2↓) - TM - TDS = 10η + 10η - 3η - 2η = 15ηs, para
colocar os dados no barramento após a ativação de MREQ e RD . No
exercício da figura 9 como TM ≈ 1,8ηs e TDS ≈ 2,2ηs implica que a memória
terá 16ηs (um pouco de folga em relação o mínimo).

ΠTMH e TRH informam quanto tempo leva para MREQ e RD serem


desativados após a leitura dos dados.
Œ Finalizando, TDH indica por quanto tempo a memória deve sustentar os
dados no barramento após a desativação de RD .
Œ Neste exemplo é percebido pelo diagrama de tempo que do instante da
ativação de MREQ e RD até o início da entrega dos dados se passaram
16ηs. Uma memória de 20ηs, perderia o momento da entrega e teria de
inserir um segundo estado de espera e responder durante T4.

• 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:

Œ Após colocar o endereço no barramento e ativar os sinais MREQ e RD o


mestre ativa MSYN .
Œ Em resposta a MSYN o escravo o mais rápido que puder coloca os dados
requeridos no barramento e ativa SSYN , indicando que terminou.

11
Prof. Mario F. G. Boaratti - Arquitetura de Computadores

Œ Ao perceber o SSYN ativado o mestre sabe que os dados estão disponíveis


e os lê. Em seguida desativa MREQ , RD e MSYN .
ΠEm resposta, o escravo desativa SSYN .
Œ Os diagramas temporais assíncronos podem utilizar setas para mostrar
causa e efeito como pode ser visto na figura 11.
o As operações completas são independentes de temporização. Cada evento é
causado por um evento anterior e não por um pulso de relógio.
o Um par mestre-escravo lento não afetará o desempenho de um mestre-escravo
subseqüente que é mais rápido.

Tanenbaum (2007) pág. 106

Figura 11 - Diagrama temporal no barramento assíncrono

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.

Tabela 2: Exemplos de mestres e escravos de barramentos.

Tanenbaum (2007) pág. 102

12
Prof. Mario F. G. Boaratti - Arquitetura de Computadores

Arbitragem de barramento

• Alguns dispositivos no barramento podem se tornar mestres de transferência de


dados. E se dois ou mais dispositivos quiserem se tomar mestres de transferência de
dados ao mesmo tempo?
o Deve existir algum mecanismo de arbitragem para evitar conflitos.

• Arbitragem é o mecanismo de seleção do mestre do barramento quando dois ou mais


dispositivos desejam tomar posse do mesmo barramento simultaneamente.
o Mecanismos de arbitragem podem ser centralizados ou descentralizados.

• Arbitragem Centralizada:
o Uma forma simples de arbitragem centralizada é mostrada na figura 12.

Tanenbaum (2007) pág. 107

Figura 12 – Arbitragem centralizada

o Um único árbitro de barramento determina quem ocupa o barramento.


o O árbitro pode estar fisicamente localizado no próprio processador ou em outro
chip dedicado a esta função.
o Este esquema é denominado Daisy Chaining ou encadeamento em série:
ƒ Os Dispositivos fazem requisição através da única linha wired-OR à qual todos
estão conectados e que é ligada ao árbitro, figura 12a. A linha é ativada
quando um ou mais dispositivos requisitam o barramento (OU lógico dos sinais
de requisição do barramento (Bus Request) de todos os dispositivos).
ƒ O árbitro só pode distinguir a ausência ou presença de requisição sem saber
quantos são.
ƒ Quando isto ocorre, ativa a linha de concessão de uso (Bus Grant - garantia de
uso do barramento), ligada em série através de todos os dispositivos de E/S.
ƒ Esta concessão de uso é passada de um dispositivo para outro da cadeia, a
partir do árbitro, até alcançar um que tenha feito uma requisição.

13
Prof. Mario F. G. Boaratti - Arquitetura de Computadores

ƒ O dispositivo que fez uma requisição e que primeiro recebe a permissão


interrompe a cadeia (não repassa a permissão à diante) e toma posse do
barramento.
ƒ A prioridade de posse é baseada na distância física ao árbitro. O que está mais
próximo vence.

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

Tanenbaum (2007) pág. 108

Figura 13 - Arbitragem descentralizada

ƒ A primeira linha de barramento é uma linha OU cabeada (wired-OR) para


requisitar o barramento.
ƒ A segunda linha de barramento é denominada BUSY e é ativada pelo mestre
de transferência de dados corrente.
ƒ A terceira linha é usada para arbitrar o barramento. Ela está ligada por
encadeamento em série a todos os dispositivos. O início dessa cadeia é
ativado ligando-a a uma fonte de energia de 5 volts.
ƒ O sinal de arbitragem se propaga livremente através de todos os dispositivos
quando barramento não estiver sendo usado.
ƒ Para cada dispositivo, a linha de arbitragem tem um terminal de entrada (IN) e
um de saída (OUT).
ƒ Um dispositivo que deseja se tornar mestre deve monitorar a linha BUSY até o
barramento ser desocupado e verificar se o sinal de arbitragem (+5V) está ativo
na sua entrada (IN).
Œ Caso IN não estiver ativo, não pode se tornar mestre.
ΠCaso IN estiver ativo, o dispositivo nega OUT. O seu vizinho percebe a
negação e nega o seu OUT, e assim por diante no resto da cadeia,
desativando os INs seguintes. Este dispositivo torna-se mestre, ativa BUSY
e inicia a sua transferência.
ƒ A prioridade depende da distância do dispositivo ao inicio da linha de
arbitragem, logo o dispositivo mais a esquerda tem maior prioridade.

o Vantagens:
ƒ É mais barato;
ƒ Mais rápido;
ƒ Não está sujeito à falha do árbitro.

• Arbitragem com Requisições independentes


o Cada dispositivo mestre é conectado ao árbitro central por linhas de grant e
request separadas;
o O árbitro central pode utilizar diversas políticas de alocação para definir quem
deve ter acesso ao barramento;
o Técnica utilizada pelo barramento PCI;

15
Prof. Mario F. G. Boaratti - Arquitetura de Computadores

o Desvantagem: implementação complexa.

Figura 14 - Arbitragem com requisições independentes

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.

Tanenbaum (2007) pág. 108

Figura 15 - • Transferência em Bloco

16
Prof. Mario F. G. Boaratti - Arquitetura de Computadores

• Transferência com bloqueio de leitura:


o Em sistemas multiprocessados (com mais que um processador), é necessário
assegurar que apenas um processador de cada vez terá acesso aos dados
compartilhados.
o A solução é disponibilizar um ciclo especial para ler-modificar-escrever, que
possibilita que, sem liberar o barramento, um processador leia uma palavra, altere
o seu valor e escreva o novo valor de volta na memória sem que outro
processador possa referenciar essa palavra enquanto durar a transação.

• Transferência usando Interrupções:


o Quando dois ou mais dispositivos solicitam interrupção através do barramento, é
necessário um sistema de arbitragem, com atribuição de prioridades. A solução
mais comum é utilizar um árbitro centralizado, um chip Controlador de
Interrupções.
o Existem vários controladores de interrupções padronizados um exemplo é o
Controlador de Interrupção 8259A da Intel, ilustrado na figura 23.

Tanenbaum (2007) pág. 109

Figura 16 – Exemplo de controlador de Interrupções

ƒ O controlador dispõe de registradores internos que podem ser lidos ou escritos


pelo processador usando sinais do barramento RD (Read = leitura), WR
(Write = escrita), CS (Chip Select = seleção de chip) e A0 (command select
address input).
ƒ Os registradores internos podem ser escritos para escolher o modo de
operação do 8259A.
ƒ Oito entradas de interrupção IR0 — IR7 (Interrupt Request) recebem pedidos de
interrupção de dispositivos com diferentes prioridades.
ƒ Quando uma ou mais entradas IR são ativadas, o controlador ativa o sinal de
interrupção do processador INT (Interrupt).
ƒ O processador em condições de atender interrupção ativa o sinal INTA
(Interrupt Acknowledge) de confirmação para o controlador.

17
Prof. Mario F. G. Boaratti - Arquitetura de Computadores

ƒ O controlador devolve ao processador qual foi o dispositivo que solicitou a


interrupção colocando o seu número na via de dados (D0 — D7).
ƒ O processador usa este número para indexar em uma tabela de ponteiros,
chamada vetor de interrupção, para achar o endereço do procedimento e
executar para atender à interrupção.
ƒ Ao fim da interrupção o processador escreve um código apropriado no
controlador, de modo a avisá-lo que está pronto para atender outras
interrupções. Em resposta, o controlador desativa INT, desde que não exista
uma outra interrupção pendente.

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

Você também pode gostar