読み方 : ハミングふごう

ハミング符号 【Hamming code】 ハミングコードチェック

概要

ハミング符号(Hamming code)とは、データの伝送時に付加し、誤りを検知・訂正できる誤り訂正符号の一つ。ビット列中の1の数の奇偶を利用するパリティチェックを拡張したもの。
ハミング符号のイメージ画像

解説 データを送受信する際に、本来のデータに一定の手順で計算したチェック用のデータを付加して送信することにより、受信側で受け取ったデータに誤りがないかどうかを検証することができる。

パリティチェックでは元のビット列中の1の数が偶数なら0、奇数なら1(あるいはその逆)となる1ビットのパリティビットを付加するが、ハミング符号では元のビット列の中からいくつかの異なる複数ビットの組み合わせを考え、それぞれについてパリティを算出して付加していく。受信側では複数あるパリティから元のビット列のどこに誤りが生じたかを知ることができる。

ハミング符号は元のデータを一定の長さごとに区切って算出する。ブロックの長さと追加する符号の長さによって誤り検出能力は異なる。最も単純な例として知られる元のデータ4ビットにつき3ビットのハミング符号を算出する方式では1ビットの誤りを検知し、これを正しい値に訂正できる。

ハミング符号は1950年に米AT&T(当時)ベル研究所のリチャード・ハミング(Richard W. Hamming)氏によって考案された。後に開発されたリードソロモン符号などに比べ誤りの検出・訂正能力は弱いが、計算手順が短く高速に処理できるという特徴がある。ECCメモリRAID 2などの採用例が有名。

(2019.4.28更新)

他の用語辞典による「ハミング符号」の解説 (外部サイト)

資格試験などの「ハミング符号」の出題履歴

▼ 基本情報技術者試験
令4修6 問12】 メモリの誤り検出及び訂正を行う方式のうち,2ビットの誤り検出機能と,1ビットの誤り訂正機能をもつものはどれか。
平27修12 問12】 メモリの誤り制御方式で,2ビットの誤り検出機能と,1ビットの誤り訂正機能をもたせるのに用いられるものはどれか。
平25修7 問12】 メモリの誤り制御方式で,2ビットの誤り検出機能と,1ビットの誤り訂正機能をもたせるのに用いられるものはどれか。
平25修6 問13】 メモリの誤り制御に用いられ,自動訂正機能をもつものはどれか。
平24修1 問12】 メモリの誤り制御方式で,2ビットの誤り検出機能と,1ビットの誤り訂正機能をもたせるのに用いられるものはどれか。
平22修1 問10】 メモリの誤り制御に用いられ,自動訂正機能をもつものはどれか。