A respeito dos sistemas de computadores, responda:
Construa um código capaz de corrigir um único erro de bit onde as palavras de memória possuem bits. Prove que ele funciona apresentando um exemplo de erro em um dos bits de uma palavra de código.
Passo 1
Beleza, vamos ter um enunciado que diz: “Precisamos montar um código que corrija um único erro de bit para palavras de memória com bits”. Isso é assunto de códigos de detecção/correção de erro, mais especificamente o código de Hamming.
O que vamos precisar:
Descobrir quantos bits de paridade (chamados de ) são necessários para proteger 8 bits de dados.
Escolher as posições desses bits de paridade na palavra de código.
Definir quais bits cada paridade deve “olhar” (a lógica de cobertura).
Mostrar na prática que, se um bit é invertido por engano, a gente consegue achar qual foi e corrigir.
Passo 2
Primeiro, quantos bits de paridade precisamos? A condição do Hamming é
Aqui . Testando:
Se , e . Falha.
Se , e . OK!
Logo, são 4 bits de paridade.
Passo 3
Como colocar esses 4 bits junto dos 8 de dados?
A gente vai ter uma palavra de código de bits. As posições que são potências de 2 (1, 2, 4 e 8) ficam reservadas para os bits de paridade . Nas outras vai cada dado .
Agora insere um erro simples: digamos que o bit na posição 6 vire de 1 → 0. Aí a gente recalcula cada paridade (sindrome):
= soma mod2 de (1,3,5,7,9,11) no recebido = 0 → sem erro nessa cobertura, .
= soma mod2 de (2,3,6,7,10,11) = 1 → .
= soma mod2 de (4,5,6,7,12) = 1 → .
= soma mod2 de (8,9,10,11,12) = 0 → .
Juntando os bits de síndrome em binário, isso é 6 em decimal. Ou seja, “o erro está no bit 6”. Bingo! A gente inverte de volta e corrigiu o único erro.
Resposta
O código que corrige 1 erro para é o código de Hamming com 4 bits de paridade em posições 1,2,4 e 8, usando cobertura pelos bits de índice em binário conforme mostrado. A prova de funcionamento veio do exemplo: erro no bit 6 → síndrome indica “6” → corrige.