ECCの冗長ビット数は2のべき乗の指数から求める
基本情報技術者試験 平成30年度秋期 午前 問11 / コンピュータ構成要素 › メモリ
過去問にチャレンジ
メモリのエラー検出及び訂正にECCを利用している。データバス幅ビットに対して冗長ビットがn+2ビット必要なとき,128ビットのデータバス幅に必要な冗長ビットは何ビットか。
- ア
7
- イ
8
- ウ
9
- エ
10
会話形式の解説
講師今回はECCの問題です。ECCは、データに冗長ビット、つまり誤りを見つけて直すために追加するビットを付けて、メモリのエラーを検出し訂正もできるようにする仕組みです。ただ、この問題で使うのはECCの知識より、問題文で与えられた関係式です。
受験者データバス幅が2のn乗ビットのとき、冗長ビットはn+2ビットという式ですね。128をそのまま式に入れればよいのでしょうか。
講師そこが最初の確認点です。式のnに入るのは128ではありません。128が2の何乗かを表す指数がnです。では、128は2の何乗でしょうか。
受験者2を掛けていくと、2、4、8、16、32、64、128なので、7回掛けて128です。n=7ですね。
講師そのとおりです。次に、そのnを冗長ビットの式に代入すると何ビットになりますか。
受験者7+2で9ビットです。検算として2の7乗が128で、データバス幅と合っています。
講師正解は9ビットです。ほかの選択肢がどこから来るかも見ておきましょう。7ビットはどういう間違いだと思いますか。
受験者求めたnの7をそのまま答えにしてしまった場合だと思います。式ではnに2を足すので、2ビット足りません。
講師はい。8ビットは、nに1だけ足した値にあたるので、式のn+2とは合いません。では10ビットはどうでしょう。
受験者n+2が10になるのはn=8のときです。でも2の8乗は256なので、128ビットのデータバス幅とは違います。2のべき乗を一つ数え間違えると、ここを選んでしまいそうです。
講師よく確かめられています。2の6乗が64、2の7乗が128、2の8乗が256あたりは、覚えておくと計算が速く正確になります。指数を求める段階と、式に代入する段階を分けて考えるのが大事です。
受験者手順は、データバス幅を2のべき乗で表してnを読み取り、そのnを式に入れる、ということですね。
講師そうです。補足すると、この問題の式では、64ビット、つまり2の6乗なら冗長ビットは6+2=8ビットです。この問題の式に従う限り、データ幅が2倍になっても冗長ビットは1ビットしか増えないので、データ幅が広いほど冗長ビットの割合は小さくなります。
まとめ
この問題は、ECCでデータバス幅2のn乗ビットに対し冗長ビットがn+2ビット必要という条件から、128ビットの場合を求めるものです。128は2を7回掛けた値なのでn=7となり、冗長ビットは7+2=9ビットです。7ビットはnをそのまま答えにした誤り、8ビットはnに1を足した値、10ビットはn=8(256ビット)のときの値です。データバス幅を2のべき乗で表して指数を読み取り、式に代入する2段階で考えると取り違えを防げます。
解答・解説
正解はウです
この問題のテーマ
ECCで、データバス幅と冗長ビット数の関係式が与えられたとき、128ビットのデータバス幅に必要な冗長ビット数を求める問題です。
解き方の考え方
問題文では、データバス幅がビットのとき冗長ビットはn+2ビットと決められています。まず128を2のべき乗で表してnを求め、そのnを冗長ビットの式に代入します。2を7回掛けると2→4→8→16→32→64→128となるので、、つまりn=7です。冗長ビットは7+2=9ビットになります。検算としてがデータバス幅と一致することを確かめると、答えは9ビットのウで正解と合います。
選択肢ごとの解説
- ×ア 7アの7ビットは、から求めたnの値と同じ数です。問題の条件では、冗長ビットはnに2を加えたn+2ビットなので、7ビットでは2ビット足りません。
- ×イ 8イの8ビットは、n=7に1を加えた値にあたります。与えられた式はn+2なので、n=7を代入した結果の9ビットとは一致しません。
- ○ウ 9ウの9ビットが正解です。128ビットはビットなのでn=7となり、冗長ビットは条件の式から7+2=9ビットと求められます。
- ×エ 10エの10ビットは、式n+2でn=8としたときの値です。n=8ならデータバス幅はビットになり、問題の128ビットとは合いません。
補足
同じ関係式を使うと、64ビット()のデータバス幅では冗長ビットが6+2=8ビットになります。データ幅が2倍になっても冗長ビットは1ビットしか増えないので、データ幅が広いほど冗長ビットの割合は小さくなります。
POINT
- ECCの冗長ビット数を問う問題では、まず問題文に示された関係式に従って計算します。
- データバス幅を2のべき乗で表し、指数をnとして読み取るのが最初の手順です。
- 、、など、よく使う2のべき乗は覚えておくと速く正確に解けます。
- ECCは、冗長ビットを付けてメモリのエラーを検出し、さらに訂正もできるようにする仕組みです。
