情報理論と符号の基礎
32ビットのデータに、1ビットの誤りを訂正し、2ビットの誤りを検出できるSECDED符号を付ける。ハミング符号の検査ビットの数rは、2^r ≥ データのビット数 + r + 1 を満たす最小の値で、SECDEDではこれに全体のパリティを1ビット加える。必要な検査ビットの数はどれか。
- A6ビット
- B7ビット
- C8ビット
答えと解説を見る
正解:B. 7ビット
r = 5 では 2⁵ = 32 < 32 + 5 + 1 = 38 で足りず、r = 6 では 2⁶ = 64 ≥ 32 + 6 + 1 = 39 なので、ハミング符号の検査ビットは6ビットです。SECDEDでは、1ビットの誤りと2ビットの誤りを区別するために全体のパリティを1ビット加えるので7ビットになり、符号語は39ビットです。64ビットのデータでは同じ計算で8ビットになり、サーバー用のメモリのECCで使われる72ビット幅になります。
- A. 6ビットは、1ビットの訂正だけを行うハミング符号の検査ビットの数です。2ビットの誤りを検出するには、全体のパリティがもう1ビット必要です。
- B. 正しい。6 + 1 = 7 ビットです。
- C. 8ビットは、64ビットのデータにSECDEDを付けるときの検査ビットの数です。