【ハミング符号】
メモリの誤り制御方式で、2ビットの誤りを検出でき、1ビットの誤り訂正機能をもつ。
コンピュータ内部の回路間や、通信回線を使ったコンピュータ同士のデータ通信において、
データの誤り(エラー)を検出する手法の一つ。
誤りを検出するだけでなく、正しい値に訂正することもできる。
1950年にアメリカのベル研究所のHamming氏によって考案された。
本来のデータに、データから演算によって割り出したチェック用のデータ(ハミングコード)
を付加して転送する。
広く普及しているパリティチェックは、ハミングコードチェックの特殊な場合にあたる。
RAID−2の誤り訂正符号に採用されている。
【誤り訂正符号 (ECC:error correcting code)】
メモリシステムの信頼性を高めるため、データ読込み時にエラーがあっても
誤りを検出するとともに自動的に訂正する機能をもつ方式。
高い信頼性が求められるサーバ機などの記憶装置やバス(データ伝送路)に利用される。
ハミングコードなどが代表例である。
【チェックサム】
データをブロック化し、そのブロック内のデータの合計をチェックする方式である。
誤り検出のみが可能である。
【パリティチェック】
1ビットの誤り検出のみが可能である。
アスキーコードで”A”という文字は、2進数で表すと”01000001”となる。
データ伝送の際には、通信回線でノイズが入ることもあり得るので、このデータがそのまま
きちんと送られることについての完璧な保証はない。
そこで「誤り制御」が必要となって来る。
パリティチェック方式は、その中でも最も古くからあるものの一つである。
”01000001”というデータを送る際にはパリティビットを1ビット付加して
送信する。ここで「偶数パリティ」か「奇数パリティ」によって付加するビットが
0か1かが変わってくる。
偶数パリティとは「1になっているビットが偶数個になるようにパリティビットを
付加する」というものである。奇数パリティなら「奇数個」である。
例)
”01000001”は1のビットが2つで偶数個だから
偶数パリティ 0を付加 → ”010000010” 1が偶数個
奇数パリティ 1を付加 → ”010000011” 1が奇数個
ということになる。
例)
偶数パリティでデータを送信したとして、下線を付けたビットが化けて
1になったとする。
010000010 本来のビット列
 ̄
010100010 送信されてきたビット列
ビット列の中に奇数個の1があるため、誤りであると判断できる。これは、仮に
パリティビットが化けたとしても同じである。
【巡回冗長検査 (CRC:Cyclic Redundancy Check)】
連続して出現する誤り(バースト誤り)の検出が可能な誤り検出方式。
特定の多項式で求めた誤り検出用の符号を付加する。
HDLC手順で採用されている。
CRCとECCの比較
CRC ECC
冗長度 小 大
訂正機能 な し あ り
主な用途 通 信 メモリ
【チェックディジット (check digit)】
モジュラス11などの計算方法によって得られた結果を商品コードなどの末尾に付加し、
入力の誤りを入力データだけから発見できるようにする方法で、この末尾に付加される
もののことをいう。
主に、入力したコードの値の誤りを検出するのに使われる。