基本情報技術者 2019年 秋期 午前(科目A) 問12
問題文
1GHzのクロックで動作するCPUがある。このCPUは、機械語の1命令を平均0.8クロックで実行できることが分かっている。このCPUは1秒間に平均何万命令を実行できるか。
選択肢
ア:125
イ:250
ウ:80,000
エ:125,000(正解)
🔒 解説は解答すると表示されます
命令実行数の計算【午前解説】
正解の理由
CPUのクロック周波数が GHz( クロック/秒)で、1命令あたり平均 クロックで実行できるということは、「1秒間に実行できる命令数 = クロック数 ÷ 命令あたりクロック数」として求められます。したがって命令数は
命令/秒となります。問題は「何万命令か」を問うているので、命令数を万()で割ると
となり、選択肢のうち エ(125,000)が正しい理由です。
解法ステップ
- クロック数を秒あたりのクロックで表す:GHz = クロック/秒。
- 1命令あたりに必要なクロック数が クロックなので、1秒に実行できる命令数はクロック数を で割る:.
- 得られた命令数(命令/秒)を万単位に直すために で割る。
- 結果を選択肢と照合して エ を選ぶ。
選択肢別の誤答解説
- ア(125): これは命令/秒を「千」や「万」などの単位変換で間違えた値です。正しい万単位は125,000であり、125では桁が小さすぎます。
- イ(250): 同様に桁の取り違えによる誤り。たとえば を百万()で割ると1250(単位:百万命令)となるので、250は不適切です。
- ウ(80,000): クロック数に平均クロックを「掛ける」誤りをした場合に出る値です。誤った計算例:命令/秒 → 万単位では (選択肢ウ)。これは「命令あたりのクロック数が0.8なら掛ける」の誤った理解に基づく結果で、実際は割る必要があります。
- エ(125,000): 正しい手順で求めた結果。命令/秒 = (万命令)。
よくある誤解
- 割るべきところを掛けてしまう
- 誤りの例:命令/秒 → 万単位では80,000(選択肢ウ)。平均クロック数が0.8クロック/命令というのは「1命令に0.8クロック必要」という意味であり、命令数は総クロック数を1命令あたりのクロックで割ることに注意してください。
- 単位(万・千・百万)の換算ミス
- 命令数を万命令で求める問題では、最初に得た命令/秒(例:1.25×10^9)を で割る必要があります。桁数を一つ間違えると選択肢が大きくずれます。
- 小数の扱いの混同
- 「0.8クロック」という小数を扱う際に、整数扱い(0クロックや1クロック)で考えてしまうと論理が破綻します。平均値は割り算で処理することを忘れないでください。
補足コラム
- CPI(Cycles Per Instruction、1命令あたりの平均クロック数)を 、クロック周波数を 、命令実行率を とすると一般式は です。本問では 、 なので 命令/秒となります。
- MIPS(Millions of Instructions Per Second)で表すと 命令/秒 = MIPS。ただし MIPS はアーキテクチャ間比較に適さない点に注意してください(命令セットや命令の意味が異なるため)。
FAQ
Q. なぜ「0.8」を掛けないのですか?
A. 「0.8クロック/命令」は1命令を実行するために平均0.8クロック使うという意味です。1秒あたりのクロック数を命令あたりのクロックで割ると命令数が出ます。掛けると「1クロックあたりの命令数」を誤って計算することになります。
A. 「0.8クロック/命令」は1命令を実行するために平均0.8クロック使うという意味です。1秒あたりのクロック数を命令あたりのクロックで割ると命令数が出ます。掛けると「1クロックあたりの命令数」を誤って計算することになります。
Q. 万単位への変換を確実に行う方法は?
A. 命令/秒を得たら末尾にカンマ区切りを入れて桁を確認するか、数学的には命令数 ÷ を実施して万単位にします。今回の例では 。
A. 命令/秒を得たら末尾にカンマ区切りを入れて桁を確認するか、数学的には命令数 ÷ を実施して万単位にします。今回の例では 。
Q. CPI が1より小さい場合はあり得るのですか?
A. 平均で1より小さいCPIは、パイプラインやスーパースカラの効果で実現可能です。本問のように0.8は「平均して1命令あたり0.8クロックで済んでいる」ことを示します。
A. 平均で1より小さいCPIは、パイプラインやスーパースカラの効果で実現可能です。本問のように0.8は「平均して1命令あたり0.8クロックで済んでいる」ことを示します。
関連キーワード: CPI、クロック周波数、命令実行数、万単位変換、CPI計算、MIPS、平均クロック数

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

