ハミング符号(Hamming Code)

ハミング符号(Hamming Code)

概要と特徴

基本概念 (Basic Concept)

  • リチャード・ハミング(Richard Hamming)により考案された誤り訂正符号(Error-Correcting Code)。
  • データ転送時に発生したビット誤りを検出し、特定・訂正する仕組み。

自己訂正能力 (Self-Correcting Ability)

  • 1ビットの誤りを自動的に訂正(Single Error Correction)。
  • 2ビットの誤りを検出可能(Double Error Detection)。

分類

線形ブロック符号 (Linear Block Code)

  • データを固定長のブロック単位で処理する符号。

誤り訂正符号 (Forward Error Correction)

  • 受信側で自己完結的に誤りを直す前方誤り訂正。

上位概念・下位概念

上位概念 (Superordinate Concepts)

  • チャネル符号化(Channel Coding)。
  • 情報理論(Information Theory)。

下位概念 (Subordinate Concepts)

  • (7,4)ハミング符号。
  • SECDED(Single Error Correction, Double Error Detection)。

メリット

効率性 (Efficiency)

  • パリティビット(Parity Bit)の付加が少なく、冗長性が低い。

低遅延 (Low Latency)

  • 計算アルゴリズムが単純で、ハードウェアへの実装が容易。
  • リアルタイム処理に適した高速な動作。

デメリット

訂正能力の限界 (Correction Limit)

  • 同一ブロック内で2ビット以上の誤りが発生した場合、正しく訂正不能。
  • バースト誤り(連続した誤り)に弱い。

既存との比較

パリティチェック (Parity Check) との比較

  • パリティチェックは誤り検出のみ可能。
  • ハミング符号は誤り箇所の特定と訂正まで実行。

競合

リード・ソロモン符号 (Reed-Solomon Code)

  • バースト誤りに強く、CDやDVDなどの記録媒体で主流。

ターボ符号 (Turbo Code)

  • より高い訂正能力を持ち、現代の移動体通信で使用。

導入ポイント

メモリ保護 (Memory Protection)

  • ECCメモリ(Error-Correcting Code Memory)での採用。

計算式 (Calculation Formula)

  • データビット数を n、パリティビット数を p とした時、 2のp乗 >= n + p + 1 を満たす必要あり。

注意点

オーバーヘッド (Overhead)

  • データ量が極めて小さい場合、相対的にパリティビットの割合が増大。

信頼性の過信 (Overconfidence in Reliability)

  • 多ビット誤りが想定される劣悪な通信環境下では不十分。

今後

限定的な利用 (Niche Application)

  • 高信頼性が求められるLSI内部やキャッシュメモリでの継続利用。
  • 量子計算における量子誤り訂正符号(Quantum Error Correction)の基礎としての活用。

関連キーワード

  • ハミング距離 (Hamming Distance)
  • チェックサム (Checksum)
  • シンドローム (Syndrome)
  • 生成行列 (Generator Matrix)
  • パリティ検査行列 (Parity Check Matrix)