Skip to the content.

最終更新日:2026年8月31日

まず結論

ECC(Error Correcting Code)は、データに冗長なビットを付加して、メモリ上のビット誤りを検出・訂正するための仕組みです。

基本情報技術者試験では、ECCの細かな方式を暗記するより、まず次の2点を押さえます。

誤りを見つけるだけ
→ 誤り検出

誤りを見つけて直す
→ 誤り訂正

また、計算問題では、問題文に与えられた条件をそのまま使います。

たとえば、

データ幅が 2^n ビット
必要な冗長ビットが n+2 ビット

という条件なら、128ビットの場合は

128 = 2^7
→ n = 7
→ n + 2 = 9

となります。

「データビット数」と「指数 n」を混同しないことがポイントです。

直感的な説明

メモリに保存されているデータは、基本的には0と1の集まりです。

たとえば、

10110010

というデータを保存したとします。

何らかの原因で1ビットだけ変化すると、

10110010
↓
10100010

のように、本来とは異なる値になります。

ECCでは、元のデータだけでなく、誤りを確認するための追加情報も一緒に持たせます。

データ
+
冗長ビット
↓
誤りを検出・訂正する材料にする

イメージとしては、荷物に「中身を確認するためのチェック情報」を付けておくようなものです。

定義・仕組み

ECCは Error Correcting Code の略です。

メモリなどに保存するデータへ冗長なビットを追加し、読み出したときにデータの誤りを調べます。

冗長ビットとは

冗長ビットは、元のデータそのものではなく、誤りの検出や訂正のために追加するビットです。

元のデータ
→ 情報そのもの

冗長ビット
→ 誤りを調べるための追加情報

冗長ビットを追加する分、必要な記憶量は増えます。

一方で、データの信頼性を高めることができます。

ECCとパリティの違い

パリティチェックも冗長ビットを付加する方式ですが、基本的な役割は誤りの検出です。

方式 主な役割
パリティチェック 誤りを検出する
ECC 誤りを検出し、方式によっては訂正する

パリティチェックについては、パリティチェックとは?偶数パリティ・奇数パリティと16進数問題の解き方も参考になります。

冗長ビット数は問題文の条件を確認する

ここは重要です。

ECCなら常に「n+2ビット」と決まっているわけではありません。

必要な冗長ビット数は、採用する符号方式や訂正能力などによって変わります。

FEの計算問題で、

2^n ビットに対して n+2 ビット必要

と条件が与えられている場合は、その条件を使って計算します。

公式の出題範囲やシラバスは、IPA:基本情報技術者試験から確認できます。

科目Aでどう出る?

ECCでは、仕組みの説明だけでなく、2の累乗を使った計算問題にも注意します。

まずデータ幅を2の累乗に直す

たとえば128ビットなら、

128 = 2^7

なので、

n = 7

です。

問題文で必要な冗長ビット数が n+2 と指定されていれば、

7 + 2 = 9ビット

となります。

よく使う2の累乗

n 2^n
5 32
6 64
7 128
8 256
9 512
10 1024

FEでは、この程度の対応をすぐ思い出せると計算が楽になります。

判断手順

① データ幅を見る
↓
② 2^n の形に直す
↓
③ n を求める
↓
④ 問題文の冗長ビットの式へ代入する

たとえば64ビットで同じ条件なら、

64 = 2^6
→ n = 6
→ n + 2 = 8

です。

どんな場面で使う?

ECCは、データの信頼性が重要なメモリで使われます。

たとえば、サーバなどでは、メモリ上のデータが誤ったまま処理されることを避けるためにECC対応メモリが利用されることがあります。

試験では製品知識より、次の関係を理解しておけば十分です。

メモリ上のビット誤り
↓
冗長情報を使って確認
↓
検出・訂正

よくある誤解・混同

128ビットなら128+2で130ビット?

違います。

問題文が、

2^n ビットに対して n+2 ビット

としているなら、128は 2^7 なので使うのは n=7 です。

128 + 2
→ ×

7 + 2
→ ○

ECCなら冗長ビットは必ずn+2?

違います。

n+2 は、その問題で与えられた条件です。

ECC一般の固定公式として暗記しないようにします。

パリティとECCは同じ?

どちらも冗長情報を付加しますが、役割の切り分けが重要です。

パリティ
→ 主に誤り検出

ECC
→ 誤り検出・訂正

冗長ビットは無駄なビット?

元のデータそのものではありませんが、誤りを検出・訂正するために必要な情報です。

試験では「余分だから不要」と考えず、信頼性のために追加するビットと理解します。

まとめ(試験直前用)

  • ECCは、冗長ビットを使ってメモリの誤りを検出・訂正する仕組み
  • 冗長ビットは、元データではなく誤り確認のための追加情報
  • パリティは主に誤り検出、ECCは誤り訂正まで扱う
  • 2^n が出たら、まず指数 n を求める
  • 128ビットは 2^7 なので n=7
  • n+2 という条件なら 7+2=9
  • n+2 をECC一般の固定公式として暗記しない

試験直前には、次の順で考えます。

データ幅
→ 2^n にする
→ n を求める
→ 問題文の式に代入する

128 = 2^7。問題文が n+2 なら、必要な冗長ビットは9ビット。

© 2024-2026 stemtazoo. All rights reserved.