ハミング符号(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)