Periféricos e Interfaces
magnetoresistência
A magnetoresistência é a
propriedade dos materiais
variarem a corrente elétrica
em função do campo
magnético.
Em materiais comuns a
magnetoresistência é pequena.
A corrente muda pouco menos
de 1% sob um campo
magnético.
Fert e Grünberg (premio Nobel de Física, 2007) descobriram em 1988 que um
“sanduiche” de alguns materiais empilhados em camadas de espessura
nanométrica exibe magnetoresistência gigante: a resistência aumenta ou
reduz até 50% sob um campo magnético.
Cabeça de leitura de discos magnéticos
bits menores com informações
concentradas
Redução do tamanho do disco
Tamanho do
disco comum
Aplicação em IPOD
Tamanho do
disco aprimorado
Códigos de correção de erro
•
•
•
•
Palavra de memória consiste de m bits de dados
Acrescenta-se r bits redundantes
Comprimento total da palavra n = m+r
Esse conjunto de n bits denomina-se palavra de código de n bits.
– Para uma palavra de memória de n bits, com n = m + r, somente 2m palavras
são válidas.
• Dadas duas palavras de código quaisquer 10001001 e 10110001 é
possível determinar quantos bits são diferentes.
10001001
10110001
10001001 xor
10110001
-------------00111000
3 bits diferentes
número de bits 1 = 3.
O número de bits diferentes em duas palavras de código é denominado
de distância de Hamming (Hamming, R.W.”Error detecting and error correcting
codes”.Bell Syst.Tech.J.v.29,p.147-160, abr.1950).
Distância de Hamming
• Se duas palavras de código estiverem separadas por uma distância de
Hamming d, será preciso d erros simples para converter uma na outra.
– Ex: 11110001 e 00110000 estão a uma distância de Hamming 3.
• Para calcular a distância de Hamming de um código completo, deve-se
calcular a distância entre todos os pares de palavras de código. A distância
mínima é a distância de Hamming.
• Para se detectar d erros simples, é preciso um código com distância d + 1.
• Para se corrigir d erros simples, é preciso um código com distância 2d+1.
Exemplos
• Exemplo 1: Código de detecção de erro com um bit de paridade.
– O bit de paridade é escolhido de modo que o número de bits 1 na
palavra de código seja par (ou ímpar).
– Tal código tem distância 2, pois precisa de 2 erros simples para ir de
uma palavra válida para uma outra palavra válida.
– Pode ser usado para se detectar um erro.
• Exemplo 2: código contendo apenas 4 palavras de código válidas:
0000000000, 0000011111, 1111100000, 1111111111
– Tem distância 5, portanto pode corrigir dois erros simples.
– Se a palavra lida é 0000000111, o sistema sabe que a original é
0000011111, considerando-se que ocorreu 2 erros simples.
– Se a palavra correta é 0000000000, mas ocorreu 3 erros simples
resultando em 0000000111, o erro não pode ser corrigido.
Número de bits de redundância
• Seja um código com m bits de dados e r bits de redundância, que
vai permitir que todos os erros simples sejam corrigidos. Para cada
uma das 2m palavras de memória tem n palavras de código com um
erro simples, ou a distância 1.
• Essas palavras podem ser formadas invertendo cada um dos n bits
da palavra de código.
• Uma vez que o número total de combinações de palavras de n bits
é 2n, tem-se que
(n + 1)2m < = 2n
Como n = m + r
(m+r+1) < = 2r
Número de bits de redundância para um
código de correção de um erro simples
Tamanho da
palavra
Bits de
redundância
Tamanho total
Acréscimo
percentual
8
4
12
50
16
5
21
31
32
6
38
19
64
7
71
11
128
8
136
6
256
9
265
4
512
10
522
2
Algoritmo de Hamming
•
•
•
•
•
Os bits são numerados começando com 1, sendo o bit 1 o mas à esquerda.
Todos os bits cujo número de bit for potência de 2 são bits de paridade.
Ex: uma palavra de 16 bits de dados, são adicionados 5 bits de paridade:
1,2,4,8 e 16.
Cada bit de paridade verifica posições específicas de bits. Usando paridade
par, o número de 1s nessas posições específicas deve ser par.
O bit b é verificado pelos bits b1, b2,..., bj tais que b1+b2+...+bj = b.
b1 b2
b4
b16
b8
bits de paridade
Escrevendo cada um dos números de 1 a 21 em soma de 1,2,4,8 e 16:
1=1
2=2
3 = 1+2
4=4
5=4+1
6=4+2
7=4+2+1
8=8
9=8+1
10 = 8 + 2
11 = 8 + 2 + 1
12 = 8 + 4
13 = 8 + 4 + 1
14 = 8 + 4 + 2
15 = 8 + 4 + 2 + 1
16 = 16
17 = 16 + 1
18 = 16 + 2
19 = 16 + 2 + 1
20 = 16 + 4
21 = 16 + 4 + 1
Nota-se que:
bit 1 – verifica a paridade entre os bits ímpares
bit 2 – 2,3,6,7,10,11,14,15,18,19
bit 4 - 4,5,6,7,12,13,14,15,20,21
bit 8 – de 8 a 15
bit 16 – de 16 em diante
Exemplo
•
•
Seja a palavra
1111000010101110
A palavra de código de 21 bits é
1
b1 b2
1
b4
1
1
0
0
0
0
1
0
1
0
1
1
1
0
b16
b8
Bits de paridade:
b1 =
0
1
1
b1 b2
b4
1
b2 =
0 0 1
1
b1 b2
b4
1
0 0 1 0 1
b1 b2
b4
1
0 0 1 0 1
b1 b2
b4
1
b4=
b8 e b16=
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1 0
b16
1
1
1
0
b16
0
0
0
0
1
0
1
b16
b8
1
1
1
b8
1
1
b16
b8
1
0
0 0
b8
0
0
0
1
0
1
Exemplo de detecção de erro
•
Seja erro no bit 5:
0 0 1 0 0
b1 b2
b4
1
1
0 0
b8
0
0
0
1
0
1
1 0
b16
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1 0
b16
1
1
1
0
Bits de paridade incorretos:
b1 e b4
erro
0
1
0
b1 b2
b4
1
0 0 1
0
b1 b2
b4
1
0 0 1 0 0
b1 b2
b4
1
0 0 1 0 0
b1 b2
b4
1
1
0
0
0
b16
b8
acerto
erro
1
0
0
0
0
1
0
1
b16
b8
1
0
0
0
0
1
0
1
b16
b8
acerto
1
0 0
b8
0
0
0
1
0
1
Detecção da posição do erro
• Erro em b1 e b4 implica em:
erro em: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21
erro em: 4,5,6,7, 12,13,14,15,20,21
• Acerto em b2, b8 e b16 implica em:
acerto em: 2,3,6,7,10,11,14,15,18,19
acerto em: 8,9,10,11,12,13,14,15
acerto em: 16,17,18,19,20,12
Por exclusão só sobra o bit 5 (verificar)
Regra para detectar a posição do erro: somar os bits de paridade
ponderados: 1x b1 + 2 x b2 + 4 x b4 + 8x b8 + 16x b16
sendo bi = 1 se houve erro e bi = 0 se houve acerto.
Posição = 1xb1 + 4xb4= 1 + 4 = 5
LRC e VRC
•
•
LRC – Longitudinal Redundancy Check – paridade dentro do caractere
VRC – Vertical Redundancy Check – paridade da coluna de caracteres
•
Considera-se a transmissão de 5 caracteres com paridade par:
001101100 – caractere 1
010101111 - caractere 2
101110101 - caractere 3
011100010 - caractere 4
000010111 - caractere 5
101000011 – caractere redundante
Caractere 1 = 001101100
VRC
Bit de paridade da
segunda coluna
LRC
Bit de paridade
do primeiro caractere
Exemplo de aplicação
001101100 – caractere 1
010101001 - caractere 2
101110101 - caractere 3
011100010 - caractere 4
000010111 - caractere 5
101000011 – caractere redundante
Erro em duas posições ( colunas 2 e 3) do caractere 2
Caractere 2 recebido = 010101001
LRC não detecta o erro duplo!!
Bit de Paridade = 0, correto
Porém, quando o receptor calcula o caractere redundante obtem:
Caractere redundante calculado = 101000101
Caractere redundante recebido = 101000011
VRC detecta erro!!
Erro duplo em dois caracteres
001101100 – caractere 1
010101001 - caractere 2
101110101 - caractere 3
011100100 - caractere 4
000010111 - caractere 5
101000011 – caractere
redundante
Se ocorrer erro duplo em dois caracteres ( caracteres 2 e 4, por exemplo)
tanto LRC como VRC não conseguem detectá-los.
Um sistema de detecção de erros mais efetivo em sistemas de comunicação
com uma quantidade mínima de hardware (porém, maior que LRC e VRC)
é o CRC.
CRC – Cyclic Redundancy Checks
•
O cálculo é realizado usando múltiplas seções de registradores de
deslocamento que alimentam um XOR, cuja saída alimenta uma
outra seção de registrador, conforme figura
X5
15 14 13 12 11
X16
X12
+
10 9
8
7
6
5
4
+
3
2
1
0
+
bms
BMS
A
XOR
DADO DE
ENTRADA
Transmissão
X5
1
0
0
0
0
X16
X12
+
1
0
0
0
0
0
0
+
1
0
0
0
+
bms
BMS
A
XOR
O registrador é inicializado com zeros.
DADO DE
ENTRADA
=1
Assim que cada bit é apresentado à linha de transmissão, é também
aplicado ao circuito no ponto marcado por A, e um deslocamento é
aplicado.
A figura mostra o conteúdo do registrador assumindo que o primeiro
bit transmitido é 1.
Após todos os bits a serem transmitidos passarem pela entrada A,
o conteúdo do registrador é também transmitido para o receptor.
Recepção
•
•
•
Num sistema equipado com CRC, um arranjo lógico idêntico ao usado
no transmissor é também usado no receptor.
Novamente o registrador é inicializado com zero, e os dados recebidos
são aplicados ao ponto A, e o conteúdo do registrador é deslocado.
Ao concluir o recebimento da mensagem, o receptor recebe o BCC
(Block Check Caracteres) que é o conteúdo do registrador de
deslocamento. Esse código é também aplicado ao ponto A, do circuito,
resultando em:
0
0
0
B
B
15 14 13 12 11
+
8
7
6
5
4
B
B
B
10 9
0
+
3
2
1
0
+
B
Se houver coincidência entre o bit de BCC recebido e o calculado
o resultado do xor do dado de entrada é 0.
Esse 0 é aplicado aos demais xor do circuito que não afeta o conteúdo
do registrador, a não ser na extremidade à esquerda que introduz 0.
A
DADO DE
ENTRADA
Ao final de todos os deslocamentos, se o CRC coincidir, o registrador termina
em zeros.
EVOLUÇÃO DOS BARRAMENTOS
(Andrew S. Tanenbaum- Organização Estruturada de
Computadores, 5a. Edição, Prentice-Hall, 2007.)
100
MHz
CPU
Barramento
síncrono
MEM
CPU
CPU
MEM
A CPU tem um atraso de TAD (max. 4ns) para colocar o endereço no barramento.
Considerando-se 15 ns para realizar a leitura, após o endereço estar estável,
a memória emite um sinal de espera WAIT’.
No ciclo seguinte ao término da espera a memória coloca os dados no
barramento, com TDS (min. 2ns) da borda de descida do clock f.
Assim, a memória tem 25 – 4 – 2 =19 ns para produzir os dados.
Como os sinais MREQ’ e RD’ são produzidos em TM(max.3ns) e TRL(max.3ns)
após a descida do clock T1, no pior caso o chip de memória terá somente
10 +10 -3 -2 = 15 ns para colocar o dado, após a emissão dos sinais de leitura.
Barramento assíncrono
CPU
CPU
CPU
CPU
MEM
MEM
Ao invés de vincular os sinais ao clock, quando a CPU disponibilizar os sinais
de leitura (MREQ’ e RD’) e o endereço, emite o sinal MSYN’.
Como resposta a MEM faz a leitura e quando o dado for disponibilizado
no barramento, emite o sinal SSYN’.
Apesar da aparente simplicidade do barramento assíncrono, e a vantagem
do ajuste automático à velocidade do dispositivo, o barramento síncrono é
mais simples de ser construído, e a maioria dos barramentos
existentes são síncronos .
Arbitragem centralizada
O barramento tem uma única linha de requisição (OR) que assegura a
solicitação de acesso por um ou mais dispositivos a qualquer tempo.
Quando o árbitro recebe uma requisição, emite uma concessão ativando
a linha de concessão. Essa linha está ligada a todos os dispositivos em série.
Quando o dispositivo que está mais próximo do árbitro fisicamente, vê a
concessão e fez requisição, faz acesso ao barramento, e não passa a
concessão para o próximo dispositivo. Se não fez requisição propaga a
concessão até o próximo dispositivo, e assim por diante, até algum dispositivo
aceitar a concessão e tomar o barramento.
Esse esquema é denominado encadeamento em série (daisy chaining).
Arbitragem centralizada com
prioridade
Contorna as prioridades baseadas na distância em relação ao árbitro.
Para cada nível de prioridade existem uma linha de requisição de barramento
e uma linha de concessão.
No exemplo:
• O dispositivo 2 vence o 4 em prioridade devido a distância.
• O dispositivo 4 vence o 3 em devido ao nível de prioridade.
Arbitragem descentralizada
Um exemplo de arbitragem descentralizada usa uma linha de requisição OR,
comum a todos os dispositivos; uma linha de ocupado (BUSY) ativada pelo
dispositivo que estiver controlando o barramento; e uma linha de arbitragem.
Quando um dispositivo quer usar o barramento, e o mesmo estiver livre, verifica
a entrada da linha de arbitragem. Se a entrada da linha estiver ativa, ele
propaga o sinal zero para o próximo e toma o controle do barramento.
Assim os próximos dispositivos recebem a entrada zero e propagam esse valor
inativo na linha de arbitragem.
O esquema é parecido com o daisy chain, porém, dispensa o árbitro centralizado,
diminuindo o custo de implementação.
Exemplos de barramentos
• Barramento IBM-PC ou PC/XT
– Era o padrão dos sistemas 8088 dos computadores pessoais IBM
– Tinha 62 linhas de sinais, incluindo 20 para endereço de memória, 8
para dados, e uma linha de cada para ativar leitura de memória, escrita
de memória, leitura de E/S e escrita de E/S. Havia também sinais para
requisitar e conceder interrupções e usar DMA.
– Cada cartão (placa) que usava o barramento, tinha uma borda
compatível com o conector com 31 faixas banhadas a ouro de cada
lado, para fazer contato com o conector.
• Extensão para o PC/AT
– Com o lançamento do PC/AT com 80286 com capacidade de acesso a
16 MB de memória e transferência de 16 bits, o barramento ficou
incompatível.
– A solução foi acrescentar um segundo conector ao barramento com 36
linhas.
Barramento PC e PC/AT
62 linhas
36 linhas
Barramentos ISA e EISA
• Como a IBM lançou a série PS/2 como sucessora do PC/AT, para
colocar obstáculos aos fabricantes de clones de PC que haviam
conquistado uma grande parte do mercado, o resto da indústria de
computadores pessoais reagiu lançando o barramento ISA, que era
basicamente o barramento PC/AT, mas funcionando a 8,33 MHz.
• A vantagem era a compatibilidade com as máquinas e placas
existentes.
• Mais tarde o barramento ISA (Industry Standard Architecture) foi
ampliado para 32 bits com mais algumas características (por
exemplo, multiprocessamento).
• O novo barramento foi chamado EISA (Extended ISA).
Barramento PCI
•
•
No IBM PC a maioria das aplicações era baseada em texto.
Gradualmente com a introdução do Windows, começaram a ser usadas
interfaces gráficas de usuário.
•
Nenhuma dessas aplicações exigia demais o barramento ISA.Com o
tempo, muitas aplicações, em especial jogos em multimídia, começaram a
usar computadores para usar vídeo de tela inteira e movimento total.
•
Assim, uma tela de 1024x768 pixels, com cores reais (3 bytes por pixel) ,
exige 2,30 MB de dados. Para a visualização de movimentos suaves são
necessários 30 quadros por segundo, ou 69,12 MB de dados por segundo.
•
Como o conteúdo a ser visualizado fica no disco magnético, CD-ROM ou
DVD, os dados devem passar do drive de disco para o barramento e ir até
a memória e para a apresentação, devem percorrer o barramento
novamente e ir até o adaptador de vídeo gráfico.
•
Portanto precisa-se de um barramento de 135 MB por segundo só para o
vídeo, sem contar com a largura de banda que a CPU e outros dispositivos
precisam.
Barramento PCI (cont.)
•
O barramento ISA funcionava a taxa máxima de 8,33 MHz, transmitindo 2
bytes por ciclo, fornecendo uma largura de banda de 16,7 MB/s. O EISA
podia transferir 4 bytes por ciclo, alcançando 33,3 MB/s.
•
Nenhum desses barramentos resolvia o problema da apresentação de
gráfico na tela.
•
Em 1990, a Intel percebendo a situação desenvolveu um novo barramento
com uma largura de banda muito mais alta que o EISA, denominado PCI
(Peripheral component Interconnect Bus).
•
Para incentivar o seu uso a Intel patenteou o barramento PCI e passou
todas as patentes para domínio público.
•
A Intel também organizou um consórcio de empresas, PCI Interest Group,
para gerenciar o futuro do barramento PCI.
•
Como resultado, muitos computadores usam o PCI, mesmo os que não
usam chips da Intel, como UltraSPARC.
Barramento PCI (cont.)
• O barramento PCI original usava 32 bits por ciclo e funcionava a 33
MHz, com uma largura de banda de 133 MB/s.
• Em 1993 foi lançado o PCI 2.0 e em 1995 saiu o PCI 2.1.
• O PCI 2.2 tem características para computadores portáteis (para
economizar energia).
• O barramento PCI 2.2 funciona até 66 MHz e pode manipular
transferências de 64 bits para uma largura de banda total de 528
MB/s. Com essa capacidade o vídeo gráfico é viável.
• Gargalos: o barramento PCI não é bom para memória; e não é
compatível com todas as placas antigas ISA existentes.
• A solução imaginada pela Intel foi projetar o computador com 3 ou
mais barramentos.
Arquitetura dos primeiros sistemas
Pentium
Arquitetura dos sistemas
•
•
•
•
•
•
•
•
Pentium (cont.)
Dois componentes principais dessa arquitetura são os dois chips pontes
fabricados pela Intel. A ponte PCI conecta a CPU, a memória e o
barramento PCI. A ponte ISA conecta o barramento PCI ao barramento ISA
e também suporta um ou dois discos IDE.
Quase todos o sistemas Pentium 4 vêm com um ou mais encaixes (slots)
PCI livres para acrecentar novos periféricos de alta velocidade e um ou
mais encaixes ISA.
A grande vantagem da arquitetura é que a CPU tem uma largura de banda
extremamente alta para a memória usando um barramento de memória
proprietário.
O barramento PCI oferece alta largura de banda para periféricos rápidos,
como discos SCSI, e adaptadores gráficos.
O barramento PCI pode ser de duas tensões diferentes, 5 V e 3.3 V, porém
os cartões de 3.3 V tem um sistema que impede a sua insersão num
encaixe de 5V ( e vice versa).
Existem também placas universais que suportam ambas as tensões.
As placas tem também versões de 32 bits e 64 bits. As placas de 32 bits
têm 120 pinos, e as de 64 bits, têm os mesmos 120 pinos mais 64 pinos
adicionais.
Os barramentos e placas PCI podem funcionar a 33 MHz ou 66 MHz.
AGP (Accelerated Graphics Port) e
evolução do chip ponte
• No final da década de 1990, a resolução dos monitores tinha
aumentado, em alguns casos para 1600x1200, e a demanda pelos
gráficos aumentou.
• Nesse contexto a Intel lançou um novo barramento só para
comandar a placa gráfica, denominado AGP (Accelerated Graphics
Port Bus).
• A versão inicial AGP 1.0, funcionava a 264 MB/s, o que foi definido
por 1x.
• Com o passar dos anos saíram novas versões, com AGP 3.0
funcionando a 2,1 GB/s (8x).
• Um sistema Pentium 4 contem agora um chip ponte central e
conecta as 5 peças mais importantes do sistema: a CPU, a
memória, a placa gráfica, o controlador ATAPI e o barramento PCI.
• Em algumas variações tem também suporte para Ethernet. Os
dispositivos de menor velocidade são ligados ao PCI.
Estrutura de barramento de um Pentium 4
Novo chip ponte
• Internamente o chip ponte é dividido em duas partes: a ponte de
memória e a ponte de E/S.
• A ponte de memória conecta a CPU com a memória e o adaptador
gráfico.
• A ponte de E/S conecta o controlador ATAPI, o barramento PCI, e
opcionalmente outros dispositivos rápidos de E/S com conexão
direta de ponte.
• As duas pontes são conectadas por uma interconexão de
velocidade muito alta.
Mais sobre o barramento PCI
•
•
•
O barramento PCI é síncrono. Todas as transações no barramento PCI
ocorrem entre o mestre, cujo nome oficial é iniciador, e um escravo,
oficialmente denominado alvo (target).
Para manter baixo o número de pinos, as linhas de endereços e dados são
multiplexadas. Desse modo, nas placas são necessários somente 64 pinos
para endereços e dados.
Os pinos de endereços e dados funcionam da seguinte maneira:
– No ciclo 1 de leitura, o mestre coloca o endereço no barramento.
– No ciclo 2 o mestre remove o endereço e o barramento muda de sentido.
– No ciclo 3 o escravo entrega os dados requisitados.
•
•
Numa operação de escrita o barramento não muda de sentido, pois o
mestre coloca o endereço e os dados, usando 3 ciclos.
Se o escravo não conseguir reponder em 3 ciclos pode inserir estados de
espera. Também são permitidas transferências de blocos sem limite de
tamanho, bem como outros tipos de transações.
Arbitragem no barramento PCI
•
•
•
•
•
•
•
•
Árbitro centralizado
Todo dispositivo PCI tem duas linhas dedicadas que vão até o árbitro.
Uma linha REQ# é usada para requisitar o barramento
A outra linha GNT# é usada para receber concessão de barramento
Para requitar o barramento um dispositivo PCI, inclusive CPU, ativa REQ#
e espera até ver sua linha GNT# ser ativada pelo árbitro. Quando isso
acontece o dispositivo pode usar o barramento.
O algoritmo usado pelo árbitro não é definido na especificação do PCI.
Arbitragem por prioridade, e outros esquemas são permitidos.
Uma concessão serve para apenas uma transação, embora teoricamente o
comprimento dessa transação não tenha limite.
Se um mestre estiver realizando uma transferência muito longa e algum
outro dispositivo requisitar o barramento, o árbitro pode negar a linha
GNT#. O mestre deve monitorar a linha GNT# e quando perceber a
negação deve liberar o barramento no próximo ciclo. Esse esquema
permite transferências muito longas (eficientes) quando há somente um
mestre, mas ainda assim dá resposta rápida a dispositivos concorrentes.
Sinais do barramento PCI (obrigatórios)
sinais
linhas MesTre
Es- descrição
cra
vo
CLK
1
AD
32
X
PAR
1
X
Bit de paridade
C/BE#
4
X
Comando de barramento/ mapa de bits para bytes habilitados
FRAME#
1
X
Indica que AD e C/BE estão ativas
IRDY#
1
X
Leitura: mestre aceitará; escrita: dados presentes
IDSEL
1
X
Seleciona espaço de configuração em vez de memória
DEVSEL#
1
X
Escravo decodificou seu endereço e está na escuta
TRDY#
1
X
Leitura: dados presentes; escrita: escravo aceitará
STOP#
1
X
Escravo quer interromper a transação imediatamente
PERR#
1
Erro de paridade de dados detectado pelo receptor
SERR#
1
Erro de paridade de endereço ou erro de sistema detectado
REQ#
1
Arbitragem: requisição
GNT#
1
Arbitragem: concessão
RST#
1
Restaura o sistema e todos os dispositivos
Relógio (33 ou 66 MHz)
X
Endereços e dados
Sinais opcionais
sinais
linhas
Mestre
Escravo
REQ64#
1
ACK64#
1
AD
32
PAR64
1
X
Paridade para os 32 bits extras de endereço/dados
C/BE#
4
X
4 bits adicionais para habilitações de bytes
LOCK
1
X
Trava o barramento para permitir múltiplas
transações
SBO#
1
X
Presença de dados em uma cache remota (para
multiprocessador)
SDONE
1
Escuta realizada(para multiprocessador)
INTx
4
Requisição de uma interrupção
JTAG
5
Sinais de testes IEEE 1149.1 JTAG
M66EN
1
Ligado à energia ou terra (66 MHz ou 33 MHz)
X
descrição
Requisição para realizar transação de 64 bits
X
Permissão concedida para uma transação de 64 bits
32 bits adicionais de endereço ou dados
Exemplos de transações no PCI
Transação de leitura
•
Quando ocorre uma borda descendente de T1, o mestre põe o endereço de
memória em AD e o comando de barramento em C/BE#.
•
Então ativa FRAME# para iniciar a transação
•
Durante T2, o mestre libera o barramento de endereço para deixar que ele
retorne em preparação para o comando do escravo em T3. Aciona IRDY#
para indicar que está pronto para receber o dado.
•
O mestre também muda C/BE# para indicar quais bytes na palavra
endereçada ele quer habilitar, i.e´, quais quer que sejam lidos
•
Em T3, o escravo ativa DEVSEL# de modo que o mestre saiba que ele
obteve o endereço e está planejando responder. Além disso põe os dados
nas linhas AD e ativa TRDY# para informar ao mestre a execução da
tarefa. Se o escravo não puder responder com tanta rapidez, ainda assim
ele ativa DEVSEL# para anunciar sua presença, mas mantem TRDY#
negado até que possa obter os dados.
PCI Express
•
•
•
•
•
•
Embora o funcionamento do PCI seja adequado para a maioria das
aplicações existentes, a necessidade de maior largura de banda de E/S é
esperada.
O problema é que há cada vez mais dispositivos de E/S muito rápidos para
o barramento PCI.
Toda vez que um dispositivo de E/S fica muito rápido para o PCI a Intel
acrescenta uma porta especial no chip ponte para permitir que o dispositivo
desvie do barramento PCI.
Um outro problema do barramento PCI é que as placas são muito grandes,
não cabem nos laptops e os fabricantes gostariam de produzir dispositivos
menores.
Diversas soluções foram propostas, mas a que tem mais probabilidade de
vencer é denominada PCI Express.
Ela tem pouco a ver com o barramento PCI, e na verdade nem é
barramento, mas o pessoal de marketing quer manter o famoso nome PCI.
Arquitetura do PCI Express
•
•
•
•
O coração do PCI Express é se livrar do barramento paralelo com seus
muitos mestres e escravos e passar para um projeto baseado em conexões
seriais ponto a ponto de alta velocidade.
Essa solução representa uma ruptura radical com a tradição do barramento
ISA/EISA/PCI e toma idéias do mundo das redes locais, em especial a
Ethernet com comutação de pacotes.
A idéia básica se resume em: no fundo o PC é um conjunto de chips de
CPU, memória e controladores de E/S que precisa ser interconectado.
O que o PCI Express faz é fornecer um comutador de uso geral para
conectar chips usando ligações seriais.
PCI Express
•
•
•
A memória e o cache estão conectados ao chip ponte de forma tradicional.
A novidade é um comutador conectado à ponte, possivelmente fazendo
parte da ponte.
Cada um dos chips de E/S tem uma conexão ponto a ponto dedicada com
o comutador. Cada conexão consiste em um par de canais unidirecionais,
um que vai para o comutador e outro que vem dele. Cada canal é
composto de dois fios, um para o sinal e outro para o terra.
A arquitetura PCI Express tem 3 pontos diferentes em relação ao
barramento PCI:
– Um comutador centralizado contra um barramento
– Utilização de conexões seriais ponto a ponto
– O terceiro é que o modelo fundamenta em envio de pacote de dados.
•
•
O conceito de pacote que consiste de um cabeçalho e uma carga útil vem
do mundo das redes. O cabeçalho contem informação de controle, que
elimina a necessidade de muitos sinais de controle presentes no
barramento PCI.
O PC com PCI Express é uma rede de comutação de pacotes em
miniatura.
Outras características do PCI Express
•
O código de detecção de erro é usado somente nos pacotes, dando um
grau de confiabilidade maior que o PCI
•
A conexão entre um chip e o comutador pode ter até 50 cm, para permitir
uma repartição do sistema.
•
O sistema pode ser expandido porque um dispositivo pode perfeitamente
ser um outro comutador, permitindo uma árvore de comutadores.
•
Os dispositivos podem ser acrescidos ou removidos do sistema em
operação.
•
Uma vez que os conectores seriais são muito menores do que os
conectores PCI, podem-se fabricar dispositivos e computadores muito
menores
Protocolo – camada física
•
•
•
•
•
•
•
Trata da movimentação dos bits de um remetente para o destinatário por
uma conexão ponto a ponto
Cada conexão ponto a ponto consiste em um ou mais pares de enlaces
simplex (unidirecionais). No caso mais simples há um par em cada direção,
mas também é permitido ter 2, 4, 8, 16 ou 32 pares. Cada enlace é
denominado via.
O número de vias em cada direção deve ser o mesmo.
Produtos de primeira geração devem suportar uma taxa de dados em cada
direção de no mínimo 2,5 Gbps, mas espera-se atingir logo 10 Gbps.
O PCI Express não tem um relógio mestre. Os dispositivos têm liberdade
para começar a transmitir tão logo tenham dados para enviar. Mas se os
primeiros bytes forem todos zeros, como o destinatário sabe que os dados
estão sendo transmitidos?
O problema é resolvido com codificação 8b/10b. Nesse esquema, 10 bits
são usados para codificar um byte de dados. Entre os 1024 símbolos de 10
bits possíveis foram escolhidos os que têm suficientes transições para
manter os dispositivos sincronizados, mesmo sem um relógio mestre.
Uma conseqüência é que um enlace com capacidade de 2,5 Gbps brutos
só pode transmitir 2 Gps líquidos de dados.
Protocolo- camada de enlace
•
•
•
•
A camada de enlace trata da transmissão de pacotes.
Ela pega o cabeçalho e a carga útil e acrescenta a eles um número de
seqüência e um código de correção de erro denominado CRC (Cyclic
Redundancy Check).
Quando o pacote é recebido o destinatário efetua alguns cálculos no
cabeçalho e nos dados e compara o resultado com o CRC recebido. Se
forem compatíveis o destinatário devolve um curto pacote de
reconhecimento. Se não forem compatíveis, o destinatário solicita uma
retransmissão. Nota-se que no PCI não tem nenhuma prescrição para
retransmissão.
Para evitar que um transmissor rápido afogue um receptor lento, é usado
um mecanismo de créditos. Nele, o receptor concede ao transmissor um
certo número de créditos que corresponde ao tamanho do buffer que ele
tem para armazenar os pacotes que chegam. Quando os créditos esgotam
o transmissor deve parar de enviar pacotes até receber mais créditos.
Protocolo-camada de transação
•
Trata das ações do barramento.
•
Ler uma palavra de memória requer duas transações: uma iniciada pela CPU ou
canal de DMA e outra iniciada pelo alvo que está fornecendo os dados.
•
A camada de transaçao adiciona valor à transmissão de pacotes bruta oferecida
pela camada de enlace. Ela pode dividir cada via em até 8 circuitos virtuais, cada um
manipulando uma classe de tráfego diferente.
•
A camada de transação pode rotular pacotes de acordo com sua classe de tráfego,
o que pode incluir atributos de prioridade, entrega fora de ordem, e outros. O
comutador pode usar esses rótulos para decidir qual pacote manipulará em seguida.
•
Cada transação usa um dos 4 espaços de endereços:
–
–
–
–
Espaço de memória (para leituras e escritas comuns)
Espaço para E/S (para endereçar registradores de dispositivos)
Espaço de configuração (para inicialização do sistema, etc.)
Espaço de mensagem (para sinalização, interrupçoes, etc.)
Protocolo-camada e software
•
•
•
•
•
Faz a interface entre o sistema PCI Express e o sistema operacional.
Ela pode emular o barramento PCI, possibilitando a execução de SOs
existentes e não modificados para o PCI Express.
Essa emulação é necessária até que os SOs sejam modificados para usar
totalmente o PCI Express.
Quando um comando é dado para a camada de software, esta o passa
para a camada de transação, que o formula em termos de um cabeçalho e
uma carga útil. Então essas partes são passadas para a camada de enlace,
que acrescenta um número de seqüência à sua parte anterior e um CRC.
Em seguida esse pacote ampliado é passado para a camada física, que é
por fim, transmitido. Na extremidade receptora ocorre o inverso.
A grande diferença do protocolo com o mundo das redes é que no PCI
Express o protocolo faz parte do hardware do dispositivo, enquanto que
nas redes o processamento nas várias camadas é quase sempre por
software.
Download

Slide 1