正答4
解説
正解は4です。
この問題は、メモリの誤り制御で「2ビット誤りの検出」と「1ビット誤りの訂正」を同時に実現する方式を問うています。
この機能はSECDED(Single Error Correction, Double Error Detection)と呼ばれ、ECC(Error Correcting Code)メモリなどで使われます。
【選択肢別解説】
1:× 奇数パリティは、1の個数が奇数になるように検査ビットを1ビット付ける方式です。
1ビットの誤りは検出できますが、どのビットが誤ったかはわからないため訂正はできません。
2ビットの誤りは1の個数の偶奇が変わらないので、検出もできません。
2:× 水平パリティは、複数のデータをまとめ、ビット位置ごとにパリティを付ける方式です。
単独では誤りの検出にとどまり、訂正の機能はもちません。
3:× チェックサムは、データを一定の単位で足し合わせた値を付けて、受信側で照合する方式です。
誤りがあることは検出できますが、どこが誤っているかはわからないため訂正はできません。
4:○ ハミング符号は、複数の検査ビットをデータの特定のビット群に対応させて付ける方式です。
検査結果の組合せから誤ったビットの位置がわかるので、1ビットの誤りを訂正できます。
さらに全体のパリティビットを1つ加えると、2ビットの誤りも検出できるようになります。
【ポイント】
誤りを「訂正」できるのは、誤りの位置まで特定できるハミング符号です。
パリティやチェックサムは誤りの「検出」だけを行う方式と区別して覚えましょう。