A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

SEC (Single Error Correction) Código de Hamming

Apresentações semelhantes


Apresentação em tema: "SEC (Single Error Correction) Código de Hamming"— Transcrição da apresentação:

1 SEC (Single Error Correction) Código de Hamming
Arquitetura de Computadores

2 SEC (Single Error Correction)
Código de Hamming Problema Solução Custos Geração de Dados Conclusões

3 Código de Hamming Simples Correção de Erro (SEC)
Expansível : Dupla Detecção de Erro (SEC-DED) Garantia maior de consistência dos dados Verificações redundantes Identificação única

4 Código de Hamming Bits de Dados Bits de verificação (redundantes) 1 1
Bits de Dados 1 1 1 1 Bits de verificação (redundantes) 1 1 1 Erro

5 Código de Hamming C1 = M3 + M5 + M7 + M9 + M11
Exemplo: Check Data bit bit M12 M11 M10 M9 C8 M7 M6 M5 C4 M3 C2 C1 M bits de dados K bits de verificação devem ser capazes de codificar erros em M+K posições, quando houver erro, mais uma posição que indica que não houve erro. => 2k ³ M + K + 1 C1 = M3 + M5 + M7 + M9 + M11 C2 = M3 + M6 + M7 + M10 + M11 C4 = M5 + M6 + M7 + M12 C8 = M9 + M10 + M11 + M12 O O O O O O O O O O O O O O

6 Problema Implementar o código de Hamming para uma palavra de 8 bits
Utilizar CI’s em proto-board com algum visualizador A princípio, portas XOR seriam utilizadas Utilização da lógica XOR em paridade

7 Solução Utilização de XOR: Utilização de Memória: Programação:
Dificuldades: Montagem e Tamanho do Circuito Facilidades: Implementação pronta Utilização de Memória: Dificuldades: Programação Facilidades: Montagem e Tamanho do Circuito Programação: Utilização de um gerador (programa que gera a programação da memória)

8 Custos (outra vantagem)
Xor = US$ 0,50 Mem (27C512) = US$ 1,80 Utilização: 2 mem = US$ 3,60 = 7,2 xor = 7 xor = 28 portas Hamming = 12 portas Comparador = 4 portas Inversor xor = 8 portas

9 Custos (outra vantagem)
Total = 2 hamming (gerador e corretor) + 1 comparador + 1 inversor + codificador + ... Total = 2 x = portas Custo c\ memória: US$ 3,60 = R$ 10,80 Fonte Futurlec:

10 Geração de Dados (Programação)
Identificar: Etapas do processo Estruturas de dados Atividades comuns Formas de representação Gerar: Arquivos de Gravação Classes Métodos Atributos e saídas

11 Etapas do Processo Gerar Código Identificar Erro Corrigir
A partir do dado correto¹ gerar o seu código de Hamming Identificar Erro A partir do dado alterado² e o código de Hamming identificar o bit onde houve alteração Corrigir A partir do dado alterado² e o código de Hamming realizar a correção se existir um único erro (SEC) 1 – teoricamente imune ao erro, dado de entrada 2 – teoricamente susceptível ao erro, dado de saída

12 Arquivos de Gravação Composição em 2 arquivos Identificação e Correção
Geração Identificação e Correção (mesmas entradas) ham1.txt Identificação e Correção ham2.txt Etapas multiplexadas internamente

13 Estruturas de Dados - Classes
Estrutura que comporte a relação entre os bits de um vetor de bits e um número inteiro Classe Bits Atributos: boolean[] bits – vetor de bits int valor – valor correspondente inteiro Métodos de Conversão Classe Gerador (programa gerador) Métodos de Geração Estáticos¹ Classe Arquivo (auxilia gravação em arquivo) 1 – independe de um objeto, sobre uma classe

14 Classe Bits import java.util.Vector; import java.lang.Boolean;
public class Bits{ public int valor; public boolean[] bits; public Bits(int v){ this.valor = v; this.resolveBits(); } public Bits(boolean[] b){ this.bits = b; this.resolveValor(); ...

15 Atividades Comuns – Métodos (Bits)
Gets (obter bit do vetor): boolean getBooleanIn(int), int getIntIn(int) Mod2 (quociente e resto da divisão por 2): int[] mod2(int) Conversão (utilizado no construtor) resolveBits(), resolveValor() Xor

16 Classe Gerador Métodos e Atributos Estáticos Identificar erro
char correctionOut(int, int), int correction(int, int) Correção do erro char corrected(int, int) Código Hamming char hamming(int) Auxiliares int adjustOut(int), int decide(int), char int2Char(int), boolean xor (boolean, boolean)

17 Ex.: char hamming(int) ret[2] = Gerador.xor(bt.getBooleanIn(1),
public static char hamming(int v){ Bits bt = new Bits(v); boolean[] ret = new boolean[4]; ret[0] = Gerador.xor(bt.getBooleanIn(0), Gerador.xor(bt.getBooleanIn(1), Gerador.xor(bt.getBooleanIn(3), Gerador.xor(bt.getBooleanIn(4), bt.getBooleanIn(6))))); //C1 = M1 + M2 + M4 + M5 + M7 ret[1] = Gerador.xor(bt.getBooleanIn(0), Gerador.xor(bt.getBooleanIn(2), Gerador.xor(bt.getBooleanIn(5), //C2 = M1 + M3 + M4 + M6 + M7 ret[2] = Gerador.xor(bt.getBooleanIn(1), Gerador.xor(bt.getBooleanIn(2), Gerador.xor(bt.getBooleanIn(3), bt.getBooleanIn(7)))); //C4 = M2 + M3 + M4 + M8 ret[3] = Gerador.xor(bt.getBooleanIn(4), Gerador.xor(bt.getBooleanIn(5), Gerador.xor(bt.getBooleanIn(6), //C8 = M5 + M6 + M7 + M8 bt = new Bits(ret); return Gerador.int2Char(bt.valor); }

18 Classe Arquivo Classe desenvolvida pelos monitores da disciplina de Algoritmos e Estruturas de Dados, para auxiliar leitura e escrita de arquivos (entradas e saídas) Leitura: Tipo readTipo() (e.g. int readInt()) Escrita: print(Tipo), println(Tipo) (e.g. println(String), print(int))

19 Formas de Representação
Entradas (para a geração) Inteiros Saídas (para o arquivo) Caracteres Conversão Direta (Cast): char c; int i; c = (char) 21; i = (int) ‘b’ Problema caracteres não representados: 81, 8D, 8F, 90, 9D (hex)

20 Conclusões Implementações com memória
Programação Conveniente (Resultado) Vantagens: Montagem Tamanho Custo Objetivo prático: Análise Implementação

21 Mais Informações www.cin.ufpe.br/~bemaf/arquivos/arq/
SEC.ppt (esta apresentação) Bits.java Gerador.java Arquivo.java


Carregar ppt "SEC (Single Error Correction) Código de Hamming"

Apresentações semelhantes


Anúncios Google