基本情報 2022 サンプル問題 問11:テクノロジ系に関する問題
メモリのエラー検出及び訂正にECC を利用している。データバス幅2 n ビットに対 して冗長ビットがn + 2 ビット必要なとき,128 ビットのデータバス幅に必要な冗長 ビットは何ビットか。
- a7
- b8
- c9正答
- d10 - 10 -
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは c「9」 です。
ECC(エラー訂正符号)というのは、メモリのデータが化けたとき、それを直してくれる仕組み。データ本体とは別に「冗長ビット」というオマケのビット(エラー直し用の手がかり)を一緒に保存しておきます。
ルールはこう書かれている:
- データ幅が 2のn乗ビット のとき、冗長ビットは n+2 ビット 必要
問題は 128ビット のデータ幅。128 = 2の何乗?
- 2¹=2, 2²=4, 2³=8, 2⁴=16, 2⁵=32, 2⁶=64, 2⁷=128 ← これ!
なので n=7。冗長ビットは n+2 = 7+2 = 9 ビット。
👉 覚え方: 「2のn乗を見つけたら、+2する」。
ほかの選択肢: a(7)はnそのまま、b(8)はn+1、d(10)はn+3で、それぞれ計算ミス。
なぜこれが正解か
正解は c「9」。問題で与えられた関係式は データバス幅 2ⁿ ビットに対し冗長ビット n+2 ビット。
データバス幅128ビットに対し、128 = 2⁷ なので n = 7。
冗長ビット = n + 2 = 7 + 2 = 9 ビット。
これは SEC-DED(Single Error Correction, Double Error Detection) 方式の Hamming 符号の冗長ビット数公式と一致する。一般式: データビット k に対し r 個の冗長ビットが必要で、2ʳ ≥ k + r + 1 を満たす最小の r。SEC-DED ではさらに +1 ビット(パリティ)を加える。
各選択肢の解説
- a「7」: n そのまま。+2 を忘れている。
- b「8」: n+1。SEC のみ(2重検出なし)の場合だが、本問はSEC-DEDの公式に基づく。
- d「10」: n+3。1ビット過剰。
覚え方・ひっかけ注意
「2のべき乗の指数」を即答できるように: 16=2⁴, 32=2⁵, 64=2⁶, 128=2⁷, 256=2⁸, 512=2⁹, 1024=2¹⁰。これは試験で頻繁に問われるので暗記必須。
本問の数式は「与えられた関係式に代入するだけ」なので、ECC の理論を知らなくても解ける。ただし関連知識として ECCメモリはサーバ用途で必須、Hamming 符号、CRC、パリティチェックの違いは押さえておく。
ECC の理論的背景
ECC(Error Correcting Code)はデータに冗長ビットを付加してビット誤りを検出・訂正する。本問は Hamming 符号(1950年, Richard Hamming) に基づき、データビット k と冗長ビット r の関係 `2^r ≥ k + r + 1` を満たす最小の r が SEC(1ビット訂正)に必要。SEC-DED(2ビット検出付き)はさらに +1 ビットのパリティを加えて r + 1 となる。
k=128 で確認: 2⁸=256 ≥ 128+8+1=137 ✓ → SEC は r=8、SEC-DED は 9ビット(本問の答えと一致)。問題文の `n+2`(n=log₂k)は、データ幅が2の冪のとき正確に成立する SEC-DED の簡易公式。
ECC の実装階層
- DRAM ECC: サーバDIMM(72ビット幅 = 64データ+8ECC)。メモリコントローラがハードウェア訂正。
- Chipkill: IBM が開発した1チップ全体故障対応 ECC。Reed-Solomon を応用しミッションクリティカル系で採用。
- CPU キャッシュ ECC: 高密度 L3 で必須。L1/L2 はパリティのみが多い(速度優先)。
- ストレージ ECC: SSD は LDPC、HDD は Reed-Solomon。
- 通信路符号化: ターボ符号、Polar 符号(5G)など Shannon 限界に迫る方式。
主要方式の比較
| 方式 | 検出/訂正 | 用途 |
|---|---|---|
| パリティ | 1ビット検出のみ | 簡易チェック |
| Hamming SEC-DED | 1訂正+2検出 | サーバメモリ |
| CRC | 多ビット検出 | Ethernet, ZIP |
| Reed-Solomon | バイト単位訂正 | DVD, QR, RAID6 |
試験での位置づけ
ハードウェア・通信領域の頻出単元。基本情報技術者試験では冗長ビット計算、パリティ/Hamming/CRC の使い分けが問われる。応用情報以降ではシンドローム計算、Reed-Solomon 生成多項式、Galois 体演算まで踏み込む。
選択肢の発展補足
- ソフトエラー: 宇宙線によるビット反転。地上でも年間1ビット/1GB 程度発生し ECC で吸収。航空宇宙では TMR(3重冗長)を併用。
- メモリスクラビング: ECC メモリで定期的に全領域を読み戻し、1ビット誤りが2ビット誤り(訂正不能)に進化するのを防ぐ機構。
- DDR5 の On-Die ECC: DRAM チップ内蔵 ECC。微細化に伴う誤り率上昇に対応。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 2022 サンプル問題 問11/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。