540 likes | 611 Views
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.
E N D
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
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. bits de paridade
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 Escrevendo cada um dos números de 1 a 21 em soma de 1,2,4,8 e 16: 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 é Bits de paridade: b1 = b2 = b4= b8 e b16=
Exemplo de detecção de erro • Seja erro no bit 5: Bits de paridade incorretos: b1 e b4 erro acerto erro acerto
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 LRC Bit de paridade da segunda coluna 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 VRC detecta erro!! Caractere redundante recebido = 101000011
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
Transmissão O registrador é inicializado com zeros. 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: 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. 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.)
Barra-mento sín-crono 100 MHz CPU 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 centralizadacom 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 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.
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.
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.
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