令和3年度 秋期 データベーススペシャリスト試験 午前Ⅱ 問22
テクノロジハードウェア基礎理論メモリ・キャッシュ数値表現・論理演算・符号理論
ECCメモリで,2ビットの誤りを検出し,1ビットの誤りを訂正するために用いるものはどれか。
解答・解説
正解: エ. ハミング符号
ECCメモリ (Error Checking and Correcting memory) は、データの読み書き時に誤りを検出し、訂正する機能を持つメモリです。このECCメモリにおいて、2ビットの誤りを検出し、1ビットの誤りを訂正するためによく用いられる方式が ハミング符号 です。情報ビットに複数の検査ビットを付加することで、誤りの位置を特定し訂正(SEC-DED: Single Error Correction - Double Error Detection)することができます。
各選択肢の解説
- ア 偶数パリティ
パリティビットを用いて、データ中の「1」の数が偶数になるように調整する方式です。1ビットの誤りを検出することはできますが、どのビットが誤っているかの特定(訂正)や、2ビットの誤り検出はできません。 - イ 垂直パリティ
データをブロック単位で扱い、各列に対してパリティを付加する方式です。水平パリティと組み合わせることで1ビットの誤り箇所を特定して訂正することは可能ですが、単体では誤りの検出のみに留まります。 - ウ チェックサム
データを複数のブロックに分割し、それらのデータの合計値(サム)などを付加することでデータ転送時の誤りを検出する方式です。ネットワーク通信などでよく用いられますが、誤りの有無の検出のみで、誤り位置の特定(訂正)はできません。 - エ ハミング符号
正解。検査ビットから誤りの位置を特定して1ビットの誤りを訂正できる誤り訂正符号です。ECCメモリでは、ハミング符号に全体のパリティビットを1ビット加えた拡張ハミング符号(SEC-DED)で、1ビットの誤り訂正と2ビットの誤り検出を同時に行うのが一般的です。