codeword. Arquitectura de Computadores (2008/2009): Memória 592

Documentos relacionados
Arquitetura e Organização de Computadores

UFSM-CTISM. Comunicação de Dados Aula-17

O L A Representação de Informação. Representação de Informação. -- Texto -- Tabela de ASCII (7 bits) Representação de Caracteres

Redes de Computadores

TRANSMISSÃO DE DADOS PROTEGIDOS POR CÓDIGOS CORRETORES DE ERRO

BC-0504 Natureza da Informação

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Introdução à Informática

III-1 Códigos detectores e correctores de erros

Big Endian é uma ordenação usada em sistemas do tipo Unix (arquiteturas SPARC, IBM Mainframe).

Aula 27 - Álgebra II. x (m(x)), x 2 + x + (m(x)), x 2 + x (m(x)) operações deste corpo são as seguintes:

Códigos Corretores de Erros e Cliques de Grafos

REPRESENTAÇÃO DE NÚMEROS EM BINÁRIO E HEXADECIMAL

Memória Interna. Prof. Leonardo Barreto Campos 1

Codificação de Informação

Acrescenta um bit 1 ou um bit 0 às mensagem para que o número total de bits 1 seja par

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

Universidade de Pernambuco Escola Politécnica de Pernambuco

Organização e Arquitetura de Computadores I

COM29008 LISTA DE EXERCÍCIOS #

Tolerância a Falhas em Circuitos Integrados Nanométricos

Aplicação. Programa Linguagem de Alto Nível. Programa em Linguagem Assembly. Programa em Linguagem Máquina

Princípios de detecção e correção de erros, princípios de controle de link e princípios de acesso múltiplo

Sílvio A. Abrantes. Uns pequenos truques que facilitam alguns cálculos de Códigos e Teoria da Informação

Sociedade Brasileira de Matemática Mestrado Profissional em Matemática em Rede Nacional

Capítulo 3. A camada de enlace de dados

Mensagem descodificada. Mensagem recebida. c + e

Sistemas de Numeração e Códigos

Objetivo. Sistemas de Numeração e Códigos. Apresentar técnicas de representação e converção de números em diversos sistemas de numeração.

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

Eletrônica Digital. Instituto Federal de Santa Catarina Campus São José. Área de Telecomunicações. Sistema de Numeração

Códigos de bloco. Luis Henrique Assumpção Lolis. 1 de novembro de Luis Henrique Assumpção Lolis Códigos de bloco 1

Sistemas de Numeração

28/8/13. Processadores. Introdução

RAIDs TECNOLOGIA DE BASES DE DADOS ARMAZENAMENTO E ESTRUTURA DE FICHEIROS. Trabalho de Investigação OUTUBRO DE 2005

Bacharelado em Engenharia Civil

Memória. Arquitetura de Computadores I. DCC-IM/UFRJ Prof. Gabriel P. Silva

ELETRÔNICA DIGITAL SISTEMAS NUMÉRICOS

Máquinas de estado. Rodrigo Hausen ... saída próx. estado. entrada estado. Circuito combinacional para o cálculo do próximo estado.

Raízes quadrada e cúbica de um polinômio

RAID Redundat Arrays of Inexpensive Disks

Tolerância a falhas como produzir o serviço correcto na presença de falhas

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teste de transformadores

Eletrônica Digital II. Exemplo de um CI com encapsulamento DIP. Diagrama do CI 74XX76.

Vamos estudar o que se entende por «programação», que é uma linguagem de programação e ver algumas terminologias própria de programação e como

Rede Digital com Integração de Serviços de Banda Larga ATM Asynchronous Transfer Mode

Redes de Computadores. Prof. André Y. Kusumoto

Conversão de Bases. Introdução à Organização de Computadores 5ª Edição/2007 Página 54. Sistemas Numéricos - Aritmética. Prof.

Engenharia de Software

Lógica Matemática Elementos de Lógica Digital. Sistema de numeração 09/08/2016 1

Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

Conceitos Básicos. Professor: Juliano Lucas Gonçalves.

Integrais. ( e 12/ )

SISTEMA DE MEDICAO DE ENERGIA E MONITORIA DA QUALIDADE DA REDE ELÉTRICA

Pesquisa sequencial e pesquisa binária

Algoritmo: Definição. Algoritmo. O que é Lógica? Lógica de Programação. Mas e a Lógica de Programação?

Este tipo de medidor de caudal foi construído por Henri de Pitot ( ).

A Mágica de virar as cartas Detecção e Correção de Erros

Sistemas Binários. José Delgado Arquitetura de Computadores Sistemas binários 1

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

Cálculo Numérico Noções básicas sobre erros

Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

MC102 Algoritmos e Programação de Computadores

6º Capítulo - (cont.) - Números Binários

Introdução à Computação

Técnicas para obtenção de Tolerância a Falhas

Aula 9. Aritmética Binária. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Eletrônica II. Germano Maioli Penello. Aula 13

MÉDIA ARITMÉTICA SIMPLES E PODERADA EXERCÍCIOS DE FIXAÇÃO

b. Período, freqüência e freqüência angular;

Representação de Informação -- Texto -- Representação de Informação. Representação de Caracteres

Sistemas de Numeração Coletânea. Antonio Carlos dos Santos Souza

Aula 4. Programa para tabelar potências de base 2 Análise de erros de overflow/underflow

Lista de Exercícios. Camada de Enlace de Dados

Sistemas Binários. José Delgado Arquitetura de Computadores Sistemas binários 1

Curso Satélite de. Matemática. Sessão n.º 1. Universidade Portucalense

Organização de Computadores

Matemática Aplicada em C. Contábeis/Mário FUNÇÃO QUADRÁTICA

Arquitecturas Avançadas de Computadores MEEC (2008/09 2º Sem.)

Conceitos: A fração como coeficiente. A fração e a sua representação gráfica. Termos que compõem uma fração. Fração unidade. Fração de um número.

Capítulo 2. Representação de números em vírgula flutuante

Arquitetura de Computadores

Arquitetura de computadores BASE NUMÉRICAS

Códigos convolucionais

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Estruturas de repetição. Prof. Alex Camargo

Aula 5: Conversões Entre Bases Numéricas

O REI MALIGNO E A PRINCESA GENEROSA: SOBRE BASES NUMÉRICAS E CRITÉRIOS DE DIVISIBILIDADE

SISTEMAS DE NUMERAÇÃO CONVERSÕES ENTRE BASES. Prof. André Rabelo

Unidade 2: Sistemas de Numeração Numerais Binários e Bases de Potência de Dois Prof. Daniel Caetano

MULTIPLEX E DEMULTIPLEX

Giovanna ganhou reais de seu pai pra fazer. sua festa de 15 anos. Ao receber o dinheiro, no. entanto, resolveu abri mão da festa.

Redes de Computadores

Representação gráfica dos dados

REDES DE COMPUTADORES. Detecção e Correção de Erros

Sistemas Digitais Representação Digital de Informação

3 a Lista de Exercícios

III-1 Códigos detetores e corretores de erros

Redes de computadores Lista de exercícios # 2

Trabalho de Programação 2 Processador CESAR

Transcrição:

Memória Detecção e correcção de erros

Códigos de correcção de erros As memórias podem cometer erros. Por exemplo devido a quedas de tensão nas linhas Grande parte das memória têm códigos de detecção e correcção de erros. Cada word em memória tem uns bits extra que têm como utilidade a detecção de erros. Suponhamos que uma word tem m bits de dados aos quais se acrescenta r bits de check bits., seja n = m+r. Esta nova word denomina-se uma n-bit codeword. Dadas duas codewords é possível determinar quantos bits diferem. Basta fazer um OU- EXCLUSIVO. Arquitectura de Computadores (2008/2009): Memória 592

Distância de Hamming O número de posições onde as words diferem denomina-se distancia de Hamming Se duas words tiverem um distancia d são necessários d erros de um bit para as converter uma na outra Apenas 2 m das 2 n words possíveis são codewords válidas A leitura de codeword inválida é detectada pelo computador, através dos check bits Pode-se, através de um algoritmo sobre esses mesmos bits, determinar as possíveis codewords válidas Arquitectura de Computadores (2008/2009): Memória 593

Propriedades de um código Da lista de codewords válidas determina-se as duas com distância de Hamming mínima A distancia é medida sobre toda a palavra, 2 n Exemplo: 10001100 11001111 10011001 a distância é 3 Hamming(10001100, 11001111) = 3 Hamming(10001100, 11011001) = 4 Hamming(11001111, 11011001) = 3 As propriedades de um código depende da sua distância de Hamming Para detectar d erros de um bit é necessário uma distância de d+1 Para corrigir é necessário um código com distância 2d+1 Arquitectura de Computadores (2008/2009): Memória 594

Exemplo de um código para 2 bits Bit de paridade. Escolhido de forma a que seja 0 se o número de 1s na word for par e 1 caso contrário. A distancia é 2, pode detectar erros de 1 bit. Sempre que ocorre um erro de 1 bit este é detectado e a execução não prossegue Exemplo a codeword 111 não é válida. Corrijo para qual? Data Word Parity Bit Code Word 00 0 000 01 1 011 10 1 101 11 0 110 Arquitectura de Computadores (2008/2009): Memória 595

Um outro exemplo Consideremos o seguinte conjunto de codewords válidas: 0000000000, 0000011111, 1111100000, 1111111111 A distância é 5 corrige erros de 2 bits. Suponhamos que lemos um posição de memória onde está escrito 0000011111 O valor que lemos é 0000000111 0000011111 não é uma codeword válida, logo detectamos um erro Corrigimos para 0000011111, pois é a que está à menor distância (2) No entanto se lermos 0000000011, ou seja, ocorre um erro de 3 bits, corrigimos 00000000 O erro é mal corrigido O código não corrige correctamente erros de 3 bits Arquitectura de Computadores (2008/2009): Memória 596

Um código para m bits Desenvolver um código com m bits de dados, r check bits que corrija todos os erros de um bit. Seja n=m+r Cada 2 m words válidas têm n codewords ilegais à distância 1. Cada word das 2 m necessita de padrões de n+1 bits. Como o número total de padrões é 2 n temos que ter (n+1) 2 m 2 n. Com n=m+r, temos que (m+r+1) 2 r Arquitectura de Computadores (2008/2009): Memória 597

Um código para m bits Dado m temos os dados da tabela do lado Este limite teórico pode de facto ser atingido através de um método: O método de Hamming. Tamanho da word Check bits Tamanho total 8 4 12 50 16 5 21 31 32 6 38 19 64 7 71 11 128 8 136 6 Overhead (%) 256 9 265 4 512 10 522 2 Arquitectura de Computadores (2008/2009): Memória 598

Código de Hamming para m bits No algoritmo de Hamming r bits de paridade são acrescentados a uma word de m bits, formando uma codeword de m+r bits. Os bits são numerados a partir de 1, sendo, neste caso, o bit 1 o mais à direita. Todos os bits que são potências de 2 são de paridade, sendo os outros de dados. Para words de 8-bits, os bits de paridade são 1,2,4 e 8. Portanto cada word tem 12 bits (8+4). Arquitectura de Computadores (2008/2009): Memória 599

Código de Hamming: construção Todos os números podem ser escritos como uma soma de potencias de 2 (neste caso os bits de paridade): 1=1, 2=2, 3=2+1, 4=4, 5=4+1, 6=4+2, 7=4+2+1, 8=8, 9=8+1, 10=8+2, 11=8+2+1 e 12=8+4 Cada bit é controlado pelos bits que compõem a sua soma. Por exemplo 5=4+1, logo é controlado pelos bits 1 e 4 Bit 1 controla 3, 5, 7, 9, 11 Bit 2 controla 3, 6, 7, 10, 11 Bit 4 controla 5, 6, 7, 12 Bit 8 controla 9, 10, 11, 12 Arquitectura de Computadores (2008/2009): Memória 600

Código de Hamming: exemplo Exemplo: 11010110 Preenchemos as posições deixando os bits de paridade livres Vamos calcular o valor do bit 2 Temos de ver os valores dos bits 3, 6, 7, 10, 11 0, 1, 0, 0, 1 paridade é 0 Os bits 1, 2, 4 e 8 terão os valores 1, 0, 1 e 1 Arquitectura de Computadores (2008/2009): Memória 601

Código de Hamming: detecção Supondo que introduzimos um erro no bit 5: passa a 0 Como é que o detectamos? Vamos calcular os bits de paridade e ver se estão certos Os bis que o bit 1 controla têm dois 1s, logo o seu valor devia ser 0 incorrecto, o valor que lá está é 1 Os bis que o bit 2 controla têm dois 1s, logo o seu valor devia ser 0 correcto Os bis que o bit 4 controla têm dois 1s, logo o seu valor devia ser 0 incorrecto, o valor que lá está é 1 Os bis que o bit 8 controla têm três 1s, logo o seu valor devia ser 1 correcto Arquitectura de Computadores (2008/2009): Memória 602

Código de Hamming: correcção Seguindo a teoria matemática de diagramas de Vern, que serve de base para este código, temos que: O bit errado só pode ser um de 5 e 7 pois são os únicos controlados pelo bit 1 e pelo 4. No entanto, o bit 2 está correcto, logo 7 também. Portanto o bit errado é o 5. Temos, no entanto, uma forma mais rápida de obter este resultado: Computar todos os bits de paridade, se tudo estiver bem, não ocorreu nenhum erro, ou mais do que um. Se ocorreu um erro somar os bits de paridade de deram erro. Neste exemplo (1+4) = 5. Basta mudar o seu valor. Arquitectura de Computadores (2008/2009): Memória 603