Codificação de Informação

Documentos relacionados
Códigos de bloco. Instituto Federal de Santa Catarina Curso superior de tecnologia em sistemas de telecomunicação Comunicações móveis 2

RAID Redundat Arrays of Inexpensive Disks

tipo e tamanho e com os "mesmos" elementos do vetor A, ou seja, B[i] = A[i].

Inteligência Artificial

Departamento de Informática - PUC-Rio INF 1005 Programação I P1 22/09/2010 Nota

Codificação de Canal

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Códigos de Detecção e Correcção de Erros

Lista de Exercícios 1

Probabilidade e Estatística 2008/2. Regras de adicão, probabilidade condicional, multiplicação e probabilidade total.

Técnicas de Contagem I II III IV V VI

AULA 07 Distribuições Discretas de Probabilidade

A camada de Enlace. Serviços e Protocolos

III-2 Cyclic Redundancy Check


Curso C: Ponteiros e Arrays

COMUNICAÇÃO DIGITAL 1. INTRODUÇÃO PROF. MARCIO EISENCRAFT

SISTEMAS OPERACIONAIS. 3ª. Lista de Exercícios

FERRAMENTAS DA QUALIDADE FOLHA DE VERIFICAÇÃO

GTMMI, Lda. Condições Gerais de Venda

Árvores. ! utilizada em muitas aplicações. ! modela uma hierarquia entre elementos. ! O conceito de árvores está diretamente ligado à recursão

Graphing Basic no Excel 2007

Probabilidade. Luiz Carlos Terra

AV2 - MA UMA SOLUÇÃO

de fevereiro de 2002

SISTEMAS DISTRIBUÍDOS

Unidade 1: O Computador

Organização e Arquitetura de Computadores. Ivan Saraiva Silva

Cap. II EVENTOS MUTUAMENTE EXCLUSIVOS E EVENTOS NÃO- EXCLUSIVOS

Manual de Programação TED1000 versão TC100 Ethernet

OPERAÇÕES COM FRAÇÕES

Sistemas Numéricos. Tiago Alves de Oliveira

Sistemas Distribuídos

Driver Next Versão 1.0 de Português

Prof. Daniela Barreiro Claro

Teoria dos erros em medições

Entradas/Saídas. Programação por interrupções Programação da porta série Recepção Concorrência no acesso a recursos Programação por DMA

Resolução da Lista de Exercício 6

Tópicos Especiais em Informática

Sistemas Tolerantes a Falhas

EGEA ESAPL - IPVC. Resolução de Problemas de Programação Linear, com recurso ao Excel

BIOS - Códigos de erro

Conteúdo programático por disciplina Matemática 6 o ano

Comandos de Eletropneumática Exercícios Comentados para Elaboração, Montagem e Ensaios

M =C J, fórmula do montante

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

Mídias Discretas. Introdução à Ciência da Informação

Instruções para o cadastramento da Operação de Transporte e geração do Código Identificador da Operação de Transporte CIOT.

Professor: André Rabelo Curso: Engenharia da Computação Disciplina: Lógica Digital Período: 3º Data Entrega: 21/03/2012 Valor: 15 pts Objetivos:

Avaliação de Empresas Profa. Patricia Maria Bortolon

Aula 04. Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros

Sistemas Operacionais. Sincronização: Semáforos Problema dos Leitores/Escritores

PLANIFICAÇÃO INTRODUÇÃO ÀS TECNOLOGIAS DE INFORMAÇÃO BLOCO I

PROGRAMA DE CERTIFICAÇÃO PROFISSIONAL DO IIA: CIA, CCSA, CFSA, CGAP

PESQUISA OPERACIONAL -PROGRAMAÇÃO LINEAR. Prof. Angelo Augusto Frozza, M.Sc.

COMO SELECIONAR O RAID ADEQUADO PARA UMA SAN EQUALLOGIC

Rede Local - Administração Políticas de Backup, Redundância e Fiabilidade

7- GPS 2-D. GPS Global Positioning System

UTILIZAÇÃO DE RECURSOS AVANÇADOS DO EXCEL EM FINANÇAS (PARTE III): GERENCIAMENTO DE CENÁRIOS

OBSERVAÇÕES: EXERCÍCIOS

Conteúdo programático

Dicas de Segurança sobre Virus

Módulo de Contrato Agora OS

Distribuição Normal de Probabilidade

Flávia Rodrigues. Silves, 26 de Abril de 2010

Bem-vindo ao tópico sobre conceitos de determinação de preços.

MÓDULO 2 Topologias de Redes

Auditoria e Segurança de Sistemas Aula 03 Segurança off- line. Felipe S. L. G. Duarte Felipelageduarte+fatece@gmail.com

Simulado de Linguagem de Programação Java

Entropia, Entropia Relativa

Camada de Ligação de Dados

Banco de Dados I. Prof. Edson Thizon

aplicação arquivo Condições Gerais de Utilização

Aula 03. Processadores. Prof. Ricardo Palma

Aplicações Diferentes Para Números Complexos

Comércio e Manutenção de Produtos Eletrônicos. Mapeamento de memória e conexões do Controlador CP-WS13/8DI8DO2AI2AO/USB/OEM. Versão 1.

Seu pé direito nas melhores Faculdades

Módulo de Equações do Segundo Grau. Equações do Segundo Grau: Resultados Básicos. Nono Ano

1 Circuitos Pneumáticos

O que é RAID? Tipos de RAID:

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

ÁREA DO PROFESSOR (TUTOR)

Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009

2 Conceitos de transmissão de dados

Módulo 8 Entradas Digitais 24 Vdc Monitorado. Os seguintes produtos devem ser adquiridos separadamente para possibilitar a utilização do produto:

ISS Eletrônico. Formato de Arquivos para Transmissão de Documentos Declarados através do aplicativo OFFLINE. Extensão do Arquivo JUNHO2006.

Questões frequentes relativas à Instrução da CMVM n.º 1/2010 Deveres de Informação dos Emitentes:

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Instituto Politécnico de Beja Escola Superior De Tecnologia e Gestão Departamento de engenharia. Tecnologias WAN

Sistemas de armazenamento

Introdução aos Computadores Introdução à Ciência de Computadores Outubro / 16

Engenharia de Software II

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede

Impressora Latex série 300. Garantia limitada

Criar e formatar relatórios

Subsequência comum mais longa Em inglês, Longest Common Subsequence (LCS)

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

Leiaute de arquivos XML para Carta-Circular 3254

Transcrição:

2/7/0 Codificação de Informação Sumário: Detecção e correcção de erros detecção de erros (conclusão) correcção de erros (código de Hamming) aplicações: CD ROM e discos RAID Detecção de erros Detectar erros em pequenas quankdades de dados Números de cheques, contas bancárias, cartões de crédito. Livros (ISBN) Detectar em números base 0 Detectar erros de leitura das máquinas Detectar números forjados Dept. InformáKca/FCT 7 Dezembro 200 2

2/7/0 Erros de digitação Tipo de erro Exemplo Frequência Erros isolados a para b 60-95% Transposições adjacentes ab para ba 0-20% Erros duplos aa para bb 0.5-.5 % Transposições por salto acb para bca 0.5-.5 % Saltos duplos aca para bcb < % Erros fonéticos 3 para 3 0.5-.5 % Omitir ou acrescentar um dígito 0-20% Dept. InformáKca/FCT 7 Dezembro 200 3 Dígito de verificação () Omissão/Adição de um dígito é detectado por contagem O dígito de verificação deve tratar os casos Erros isolados e transposição de dígitos adjacentes Todos os outros erros são raros Normalmente o dígito de verificação ukliza o módulo da divisão por N Sendo o número d a d n, dígito de verificação C é calculado a parkr de: (C + d + d 2 +... ) mod N = 0 Dept. InformáKca/FCT 7 Dezembro 200 4 2

2/7/0 Exemplo: Dígito de verificação (2) T = (d + d 2 +... ) mod n C = n T A = d d 2 d 3 e cada dígito pode ir de 0 a 4 A = 4 2 T = (4+2+) mod 5 = 2 C = 3 Detecta que há erro mas não corrige Não é eficiente para os erros de transposição Dept. InformáKca/FCT 7 Dezembro 200 5 Soma com pesos C + w *d + w 2 *d 2 +... ) mod n = 0 T = ( w *d + w 2 *d 2 +... ) mod n ; C = n T Exemplo: A = d d 2 d 3 e cada dígito pode ir de 0 a 4 Pesos w =2, w 2 =3, w 3 =4 A = 4 2 T = (4*2+2*3+*4) mod 5 = 3 C = 2 Se se receber 4 2 / 2 ( 2 + 4*2 + *3 + *4) mod 5 = 2 ERRO!! Note se que isto funciona bem porque os pesos são primos relakvamente a n Dept. InformáKca/FCT 7 Dezembro 200 6 3

2/7/0 País/ Língua 0 inglês (USA,UK) 2 francês (Europa, Canadá) 972 Português 9992 Quatar ISBN 0 d d 2 d 3 d 4 d 5 d 6 d 7 d 8 d 9 0 3 8 7 9 5 0 4 5 Editor Número do livro Dígito de verificação Cálculo do dígito de verificação T = (0*d+9*d2+...+2*d9) mod Dígitos de verificação : 0,, 2,..., 0 Esquema de detecção forte: N () é primo e portanto todos os pesos são primos relativamente a Dept. InformáKca/FCT 7 Dezembro 200 7 ISBN 0 #define N 0 #define QUOCIENT int acum, weight, remainder, checkdigit;... acum = 0; weight=n; char *apt = argv[]; for( i = N-; i > 0; i--) { acum = acum + weight * (int)(*apt - 0 ); apt++; weight--; } remainder = acum % QUOCIENT; checkdigit = (QUOCIENT remainder) % QUOCIENT; if( checkdigit!= (QUOCIENT -)) printf( checkdigit = %d\n, checkdigit); else printf( checkdigit = \n ) Dept. InformáKca/FCT 7 Dezembro 200 8 4

2/7/0 ISBN 0 Detecta os erros mais comuns, não corrige Detecta erros de só dígito Dem. por absurdo Suponha se que se alterava d i sem alterar T Para isso a contribuição d i *w i teria de ser ou um múlkplo de Mas é primo... Detecta transposições adjacentes Dem. por absurdo Suponha se que se alterava d i d i+ sem alterar T Para isso: ( d i *w i +d i+ *w i+ ) mod (d i+ *w i +d i *w i+ ) mod teria de ser múlkplo de Mas a diferença só pode valer 0 Dept. InformáKca/FCT 7 Dezembro 200 9 ISBN 3 Janeiro 2007 Exemplo: 978 0 306 4065 7 3 dígitos Quando 978 se esgotar passa a 979 e sucessivamente 9 dígitos seguintes como no ISBN 0 Dígito de verificação calculado de forma diferente: Dígito: 9 7 8 0 3 0 6 4 0 6 5 Peso: 3 3 3 3 3 3 9*+7*3+8*+0*3+3*+0*3+6*+4*3+0*+6*3+*+5*3=93 93 mod 0 = 3 0 3 = 7 Pesos ou 3; módulo 0 Dept. InformáKca/FCT 7 Dezembro 200 0 5

2/7/0 Códigos de barras () 8 3 7 2 8 0 0 3 2 Tipo do produto Código do fabricante Código do produto Dígito de verificação (C) Cada dígito é codificado em 7 barras (0/) Bits de paridade Pode ser lido nos dois sentidos T = (3*d + d 2 + 3*d 3 + d 4 + 3*d 5 + d 6 + 3*d 7 + d 8 + 3*d 9 + d 0 +3*d ) mod 0 C = 0 - T Dept. InformáKca/FCT 7 Dezembro 200 Códigos de barras (2) T = (3*d + d 2 + 3*d 3 + d 4 + 3*d 5 + d 6 + 3*d 7 + d 8 + 3*d 9 + d 0 +3*d ) mod 0 C = 0 T Erro num dígito Para um dígito d i com erro não ser detectado d i * ou d i *3 teriam ser múlkplos de 0, o que nunca acontece Transposição A contribuição para a soma passa de *a+3*b para *b+3*a (a+3b) (b+3a) = 2b 2a vai de 8 a +8 e pode ser 0 Não detecta todos os casos Admite se que os leitores (máquinas) não trocam dígitos Dept. InformáKca/FCT 7 Dezembro 200 2 6

2/7/0 Cartões de crédito IBM check 5 dígitos + verificação T = (2#d + d 2 + 2#d 3 + d 4... + 2#d ) mod 0 C = 0 T #d mulkplica d por 2 e soma os dígitos do produto Detecta todos os dígitos errados Detecta quase todas as transposições Dept. InformáKca/FCT 7 Dezembro 200 3 Métodos de correcção de erros Votação Bits de verificação Bits de paridade Horizontal (detecta um bit errado; não corrige) Rectangular (corrige um bit errado) Códigos de bloco Códigos de Hamming Outros Códigos de convolução (não incluídos nesta disciplina) Dept. InformáKca/FCT 7 Dezembro 200 4 7

2/7/0 Detecção de erros com códigos de bloco Dept. InformáKca/FCT 7 Dezembro 200 5 Distância de Hamming Definição: O número de elementos que necessitam de mudar para tornar uma palavra de código noutra. A distância de Hamming de: [00] para [00] é 2 bits [00] para [0000] é 2 bits barrar to bastar é 2 chars Distância de Hamming (d) para duas sequências binárias de n bits, é o número de bits diferentes: Ex., v =00; v 2 =000; d(v, v 2 )=3 Pode ser feito com um OR ou com aritmékca módulo 2 Dept. InformáKca/FCT 7 Dezembro 200 6 8

2/7/0 Interpretação gráfica da distância de Hamming (em bits) 00 0 0 Número de arestas que é preciso percorrer para chegar de um código a outro é o nº de bits que têm de vir errados para transformar um código noutro 000 00 00 0 00 0 0 Se escolhermos os códigos 000 0 0 0 Temos um código de distância 2; é preciso percorrer 2 arestas para ir de um código a outro Dept. InformáKca/FCT 7 Dezembro 200 7 Interpretação gráfica da distância de Hamming (em bits) 000 Hipercubo 4 dimensões 00 00 0 0000 000 000 00 0 00 0 000 00 00 0 Dept. InformáKca/FCT 7 Dezembro 200 8 9

2/7/0 Distância de Hamming de um código Exemplo de codificação A -> 00 -> 00000 B -> 0 -> 00 C -> 0 -> 00 D -> -> 0 A distância de Hamming de um código d é a distância mínima entre quaisquer dois códigos diskntos No exemplo, d=3 Dept. InformáKca/FCT 7 Dezembro 200 9 Correcção de erros baseada na distância de Hamming Com n bits de dados e k bits de verificação são possíveis 2 (n+k) configurações 2 n deles são usadas As 2 n configurações válidas são escolhidas de forma a que exista entre elas uma distância d Quando é recebido um código não válido, é assumido o código com distância menor (descodificação pela máxima verosimilhança) Tendo o sido emitido o símbolo U pela fonte; este foi codificado na sequência. Tendo sido recebida a sequência Y trata-se de maximizar ( P(U Y a probabilidade condicional U Y Canal com ruído Dept. InformáKca/FCT 7 Dezembro 200 20 0

2/7/0 Interpretação geométrica da distância de Hamming () Dept. InformáKca/FCT 7 Dezembro 200 2 Interpretação geométrica da distância de Hamming (2) Dept. InformáKca/FCT 7 Dezembro 200 22

2/7/0 Correcção de erros Maior distância de Hamming entre palavras de código válidas Hipótese básica: Se o padrão de bits x recebido não corresponde a nenhum código válido, e a palavra de código a é que tem a menor distância de Hamming para x então é provável que x seja uma versão corrompida do código a Quanto maior for a separação (distância de Hamming entre códigos válidos), maior será a probabilidade dessa correspondência Dept. InformáKca/FCT 7 Dezembro 200 23 Correcção de erros Exemplo Códigos com 3 bits Dois códigos válidos 0000 Qual é a distância de Hamming deste código? Quantos bits errados podemos detectar? E corrigir? Suponha se que se recebe 0 Assume se que é uma versão corrompida of, e não 0000 Suponha se que se recebe 00? Dept. InformáKca/FCT 7 Dezembro 200 24 2

2/7/0 Correcção de erros Exemplo Códigos com 4 bits e distância 4 Dois códigos válidos: 0000 e Distância de 0000 Distância 2 de 0000 Distância 2 de Distância de 000 000 0000 000 000 00 00 00 00 00 00 0 0 0 0 Dept. InformáKca/FCT 7 Dezembro 200 25 De uma forma geral: Códigos de Hamming É preciso decidir que o padrão de bits recebido é mais próximo de uma palavra de código válida do que de qualquer outra. Os empates não ajudam Se a distância entre códigos válidos é m Detectam se até m bits errados Corrigem se até (m )/2 (arredondado para baixo) bits errados Dept. InformáKca/FCT 7 Dezembro 200 26 3

2/7/0 Distância de Hamming Exemplos Se a distância de Hamming é: 5 - Detectam se até 4 bits errados - Corrigem se até 2 bits errados 3 - Detectam se 2 bits errados - Corrigem se até 6 bits errados 9 - Detectam se até 8 bits errados - Corrigem se até 4 bits errados Dept. InformáKca/FCT 7 Dezembro 200 27 Distância de Hamming para um código de paridade ( 4 C(5, Código de paridade Este código tem 4 bits de dados e bit de verificação. A sua distância é 2 Consegue detectar um erro e corrigir zero erros Dept. InformáKca/FCT 7 Dezembro 200 28 4

2/7/0 Distância de Hamming para um código de paridade Suponha-se que se transmitiu 0; o código criado é 0 Não há erros. S é 0. O código é dado como bom Foi recebido 00 (um erro num bit de dados). S é. O código é dado como errado Foi recebido 00 (um erro no bit de verificação). S é. O código é dado como errado. Há dois erros: foi recebido 000. S é 0. O código é dado como bom e 0 passa 00 Há três bits errados. S é. Detecta-se um erro Um código com um bit de paridade detecta um nº ímpar de bits errados Dept. InformáKca/FCT 7 Dezembro 200 29 Código de Hamming Permite correcção automákca de bit errado Distância de Hamming: 3. Detecta dois bits errados e corrige um Forma sistemákca de calcular os bits de verificação de forma a que se saiba onde está o erro Numerar os bits começando pelo menos significakvo a parkr de. Colocar os bits menos significakvos à direita. As posições que são potências de 2 são bits de verificação Todas as outras posições são bits de dados reais Dept. InformáKca/FCT 7 Dezembro 200 30 5

2/7/0 Cálculo dos bits de verificação de Hamming Colocar os bits de dados deixando das posições de verificação vazias Preencher o bit de verificação Contar os s nas posições 3, 5, 7, 9,, 3, todas as ímpares Atribuir o valor à posição que torne o número de s par Preencher o bit de verificação 2 Paridade par com os bits 3, 6, 7, 0,, 4, etc. Preencher o bit de verificação 4 Paridade par com as posições posikons 5, 6, 7, 2, 3, 4, etc. Preencher o bit de verificação 8 8, 9, 0,, 2, 3 e assim por diante Dept. InformáKca/FCT 7 Dezembro 200 3 Exemplo () Palavra de dados com 8 bits. Quantos bits de verificação são precisos? Seja a palavra de dados = 00 0 Palavra de Hamming (sem bits de verificação): 2 0 9 8 7 6 5 4 3 2 0 0 0 Dept. InformáKca/FCT 7 Dezembro 200 32 6

2/7/0 Exemplo (2) Bit Bit 2 Bit 4 Bit 8 2 3 4 5 6 7 8 9 0 2 Palavra de Hamming (com bits de verificação): 8 9,0, 4 5,6, 2 3,6,7 3,5,7 2 0 0 9 0 8 0 7 6 5 4 3 0 2 0, 2 0 0 7,2 0 0, 0 9, 0 0 0 0 Dept. InformáKca/FCT 7 Dezembro 200 33 Exemplo (3) Suponha se que quando se lê o dado se recebe : 00 (há um erro no bit 3 da palavra de Hamming) Recalculam se os bits de verificação 2 0 9 8 7 6 5 4 3 2 0 0 0 0 0 0 bits de verificação recebidos OR 0 0 bits de verificação calculados ----------- 0 0 (erro no bit 3) Dept. InformáKca/FCT 7 Dezembro 200 34 7

2/7/0 Correcção de erros uklizando o método de Hamming (4 bits dados + 3 bits verificação) d4 d3 d2 d Se é 0 não há erros senão indica o bit errado s3 s2 s d4 d3 d2 d Geração dos bits de verificação OR dos bits de verificação recebidos e calculados Transmissão através de um meio sujeito a erros d4 d3 d2 d4 v3 d v2 v d4 d3 d2 7 6 5 4 3 2 7 6 5 4 3 2 Dept. InformáKca/FCT 7 Dezembro 200 35 d4 v3 d v2 v Comentários sobre o método de Hamming Número de bits necessários para uma codificação de Hamming para K bits de dados: K + V bits de verificação Com V bits de verificação é possível representar valores entre 0 (não há erro) e 2 V (um dos bits está errado) V é o menor inteiro que verifica a condição 2 V >= K + V + Dept. InformáKca/FCT 7 Dezembro 200 36 8

2/7/0 Família de códigos de Hamming k 4 26 57 20 247 502 n 7 5 3 63 27 255 5 R=k/n 0.57 0.73 0.84 0.9 0.94 0.968 0.982 A eficiência aumenta à medida que o tamanho do bloco aumenta No entanto, à medida que o tamanho do bloco aumenta, surgem dificuldades: - Complexidade do codificador aumenta - É preciso juntar muitos bits antes de transmitir, o que pode criar atrasos intoleráveis Dept. InformáKca/FCT 7 Dezembro 200 37 Códigos BCH (Bose Chaudhuri Hocquenghem) 960 O código de Hamming faz parte dos códigos BCH Os códigos BCH podem corrigir um número de erros tão grande quanto se queira (desde que o bloco tenha bits suficientes) Têm um rendimento R=k/n muito baixo UKlizados quando a fiabilidade é essencial k 4 5 24 64 247 7 7 5 63 27 255 255 023 R=k/n 0.57 0.33 0.38 0.5 0.97 0.67 0.0 Erros corrigidos 3 7 0 255 Dept. InformáKca/FCT 7 Dezembro 200 38 n 9

2/7/0 Correcção de erros em caso de rajadas (bursts) Os código de Hamming clássicos (7;4 e semelhantes) são adequados à correcção de erros isolados Um caso diferente são os erros de rajada Fenómenos atmosféricos, danos na super~cie de um meio de armazenamento É preciso usar códigos de correcção de erros especialmente vocacionados para esta situação Dept. InformáKca/FCT 7 Dezembro 200 39 Interleaving () Os códigos de bloco até agora descritos resultam melhor quando os erros ocorrem de forma isolada Em muitos casos, os erros ocorrem em rajada (burst errors) exemplo telemóveis (propagação múlkpla, movimento do uklizador) Para distribuir os burst errors por vários blocos pode se fazer interleaving Dept. InformáKca/FCT 7 Dezembro 200 40 20

2/7/0 Códigos periódicos ( interleaving ) Embebem se bits de paridade no meio dos bits de dados, de forma a que cada bit de paridade seja calculado com bits não adjacentes Exemplo detecção de erros em blocos de 5 bits de dados mais um de paridade b, b,2 b,3 b,4 b,5 p b 2, b 2,2 b 2,3 b 2,4 b 2,5 p... b 5, b 5,2 b 5.3 b 5.4 b 5.5 p 5 2 Pi = b(i,) xor b(i-,2) xor b(i-2,3) xor b(i-3,4) xor b(i-4,5) Paridade par Dept. InformáKca/FCT 7 Dezembro 200 4 Correcção de erros de rajada uklizando interleaving e codificação de Hamming Dept. InformáKca/FCT 7 Dezembro 200 42 2

2/7/0 Códigos periódicos na correcção de erros em CDs Amostragem a 44. KHz hora de música = 58.760.000 amostras Tendo cada amostra de 6 bits dá 2 x 5.080.320.000 bits = 635,040,000 bytes Dept. InformáKca/FCT 7 Dezembro 200 43 Códigos periódicos na correcção de erros em CDs CDs de dados - modo sectores de 2048 bytes Dept. InformáKca/FCT 7 Dezembro 200 44 22

2/7/0 Codificação de dados num CD Começa se com um bloco de 24 bytes de dados Aplica se uma codificação de Reed Solomon (ver à frente) e obtêm se 32 bytes Uma frame contem 33 bytes (32 de dados+correcção de erros + byte de subcoding info. sobre as faixas) Cada byte é transformado em 4 bits para evitar demasiados 0s consecukvos + 3 bits de separação Uma frame tem: 24+3 bits iniciais de sincronização 33x(4+3) bits de dados 24 bytes (92 bits) de dados transformam se em 588 bits escritos no CD... Dept. InformáKca/FCT 7 Dezembro 200 45 Correcção de erros em CDs É importante corrigir erros em CDs de dados, mas também de audio ( 0000 0000 0000 0000 silêncio, 000 0000 0000 0000 som muito forte...) I N T E R L E A V E D D A T A Impressão digital (50 ( µm Partícula de pó (40 ( µm Cabelo ( µm 80) Dept. InformáKca/FCT 7 Dezembro 200 46 23

2/7/0 Correcção de erros por interleaving I N T E R L E A V E D D A T A Dados interleaved N E E I T L R V D A A D E T A N E E I T L?????? E T A I N T E? L E?? E?? A T? Burst de erros O burst de erros é transformado em erros isolados que podem ser corrigidos por bytes de paridade Dept. InformáKca/FCT 7 Dezembro 200 47 Códigos de Reed Solomon nos CDs Erros isolados corrigidos por bits de paridade Erros de rajada corrigidos por códigos RS (Reed Solomon) Bell Labs 960 Consegue corrigir 4000 bits errados seguidos (3 mm de uma pista estragada...) É um código periódico ou interleaved Dept. InformáKca/FCT 7 Dezembro 200 48 24

2/7/0 Códigos de Reed Solomon Um código RS(N,K) tem os parâmetros: K número de bytes de informação N número de bytes total num bloco N K syndrome bytes É capaz de corrigir (N K)/2 erros nos K bytes de informação Exemplo RS(255,223) 223 bytes de informação 32 bytes de correcção de erros Corrige até 6 bytes errados Baseado na teoria dos campos de Galois Fácil de implementar em hardware Dept. InformáKca/FCT 7 Dezembro 200 49 Aplicação da correcção de erros discos RAID RAID Redundant Array of Independent Disks Conjunto de dois ou mais discos, com objeckvo de: Tornar o sistema de disco mais rápido (isto é, acelerar o carregamento de dados do disco), através de uma técnica chamada divisão de dados (data striping ou RAID 0); Tornar o sistema de disco mais seguro, através de uma técnica chamada espelhamento (mirroring ou RAID ). Estas duas técnicas podem ser usadas isoladamente ou em conjunto. Dept. InformáKca/FCT 7 Dezembro 200 50 25

2/7/0 Aplicação da correcção de erros discos RAID RAID 0 blocos espalhados por vários discos (não há tolerância a falhas) RAID mirror RAID 2 bit por disco; n discos para dados; correcção de erros por código de Hamming: k discos RAID 3 bit por disco; n discos para dados; disco para bit de paridade RAID 4 n discos com stripes de dados; disco para stripe de paridade RAID 5 idem; mas com stripe de paridade rotakvo RAID 6 Código de Reed Solomon (2 discos extra) Dept. InformáKca/FCT 7 Dezembro 200 5 RAID 0 (striping) RAID (mirroring) Dept. InformáKca/FCT 7 Dezembro 200 52 26

2/7/0 RAID 2 K discos de dados Número de discos V para correcção de erros é o menor k que verifica a condição: 2 V >= K+V + 8 discos com dados (K=8). O menor V que verifica a condição é 4; 4 discos de código de Hamming 4 discos de dados (K=4). V = 3 b 0 b 2 ( b ) f 2 ( b ) f ( b ) f 0 b b 2 Dept. InformáKca/FCT 7 Dezembro 200 53 RAID 3 bit por disco; b 0, b, b 2, b 3,..., b n O bit de paridade é calculado por hardware: Bit paridade = b 0 or b or b 2 or... or b n ou Bit paridade = b 0 + b + b 2 +... + b n (mod 2) Um disco em falha pode ser reconstruído usando o mesmo método. Supondo que o disco 3 falhou: b 3 = b 0 or b or b 2 or Bit paridade or b 4 or... b 0 b b 2 b 2 ( P(b Dept. InformáKca/FCT 7 Dezembro 200 54 27

2/7/0 O stripe de paridade é calculado fazendo o OR dos bits dos stripes de dados O disco de paridade é um gargalo no RAID 4; resolvido no RAID 5 através da paridade rotakva Recuperação em caso de erro como no RAID 3 RAID 4 e RAID 5 RAID 4 RAID 5 Dept. InformáKca/FCT 7 Dezembro 200 55 RAID 6 Tolera a falha simultânea de dois discos: mínimo 4 discos(2 discos de dados + 2 discos de correcção de erros) Blocos de correcção de erros rotakvos (como no RAID 5) Má performance em escrita (3 discos: dados, 2 de paridade) O cálculo dos bytes de correcção baseia-se num código de Reed Solomon: correcção automática de dois erros Dept. InformáKca/FCT 7 Dezembro 200 56 28