通信用語の基礎知識 戻る
アスカネットワークサービス

ハミングコード

読み:ハミングコード
外語:humming code
品詞:名詞
2006/02/13 更新

情報訂正符号の一つ。ハミング符号ともいう。

情報を記録する際に、実際のデータに加えてエラーチェック用のコードを付加しておき、読み出したときにそれを検証して、正しいかどうかを判断する技術のこと。

ECC付きメモリやRAID2などで使われる。なお、RAID3RAID4RAID5では、ハミングコードではなくハミングコードの代わりにより簡略なパリティビットとバイトを使用してエラー訂正をしている。

算出

例えば4ビットのデータ列があった場合、これに3ビットのハミングコードを与える。

データ列がd0 d1 d2 d3とすると、次のように3ビットのハミングコードを求める。

  • p0 = d0 XOR d1 XOR d3
  • p1 = d0 XOR d2 XOR d3
  • p2 = d1 XOR d2 XOR d3

訂正

もし読み出してエラーが発生していた場合は、次のようなXOR演算をしてe0〜e2を算出する。

  • e0 = p0 XOR d0 XOR d1 XOR d3
  • e1 = p1 XOR d0 XOR d2 XOR d3
  • e2 = p2 XOR d1 XOR d2 XOR d3

正常時は、e0 e1 e2は全て0であるので、どのビットが1になるかで、エラービットの位置が求められる。

e2=0e2=1
e1=0e1=1e1=0e1=1
e0=0e0=1e0=0e0=1e0=0e0=1e0=0e0=1
正常p0 NGp1 NGd0 NGp2 NGd1 NGd2 NGd3 NG

これにより、エラービットが一つまでであれば、その誤りを訂正することが可能となる。