基本情報技術者試験 - 令和6年1月修了 - 問8
あるプログラムは,命令 a~d を次の順で実行する。
各命令の実行に必要なクロックサイクル数(CPI:Cycles Per Instruction)は,表のとおりである。CPUのクロック周波数を100MHzとするとき,この命令列の実行時間は何ナノ秒か。ここで,命令の実行はオーバラップしないものとする。

各命令の実行に必要なクロックサイクル数(CPI:Cycles Per Instruction)は,表のとおりである。CPUのクロック周波数を100MHzとするとき,この命令列の実行時間は何ナノ秒か。ここで,命令の実行はオーバラップしないものとする。
| 命令 | CPI |
| a | 6 |
| b | 2 |
| c | 4 |
| d | 8 |
| ア | 30 |
|---|---|
| イ | 40 |
| ウ | 200 |
| エ | 300 |
答え : エ
分野 : テクノロジ系 › コンピュータシステム › コンピュータ構成要素 › プロセッサ
解説 :
この問題では,a,c,b,a,c,dという順序で命令が実行されるプログラムについて,各命令の実行に必要なクロックサイクル数(CPI)が表で与えられています。
まず,この命令列全体で必要な合計クロックサイクル数を求めます。命令aはCPIが6で2回実行されるので12サイクル,命令cはCPIが4で2回実行されるので8サイクル,命令bはCPIが2で1回実行されるので2サイクル,命令dはCPIが8で1回実行されるので8サイクルです。これらを合計すると,12+8+2+8=30サイクルになります。
次に,クロック周波数が100MHzということは,1秒間に1億回のクロックが発生するということなので,1クロックにかかる時間は1秒を1億で割った値,つまり10ナノ秒です。したがって,30サイクル分の実行時間は30×10=300ナノ秒となり,正解は「エ」です。
不正解の選択肢は,命令の回数を数え間違えたり,クロック周波数の計算を誤ったりした場合に出やすい値です。CPUの処理時間を求める基本は「必要なクロックサイクル数×1クロックあたりの時間」という考え方です。
分野 : テクノロジ系 › コンピュータシステム › コンピュータ構成要素 › プロセッサ
解説 :
この問題では,a,c,b,a,c,dという順序で命令が実行されるプログラムについて,各命令の実行に必要なクロックサイクル数(CPI)が表で与えられています。
まず,この命令列全体で必要な合計クロックサイクル数を求めます。命令aはCPIが6で2回実行されるので12サイクル,命令cはCPIが4で2回実行されるので8サイクル,命令bはCPIが2で1回実行されるので2サイクル,命令dはCPIが8で1回実行されるので8サイクルです。これらを合計すると,12+8+2+8=30サイクルになります。
次に,クロック周波数が100MHzということは,1秒間に1億回のクロックが発生するということなので,1クロックにかかる時間は1秒を1億で割った値,つまり10ナノ秒です。したがって,30サイクル分の実行時間は30×10=300ナノ秒となり,正解は「エ」です。
不正解の選択肢は,命令の回数を数え間違えたり,クロック周波数の計算を誤ったりした場合に出やすい値です。CPUの処理時間を求める基本は「必要なクロックサイクル数×1クロックあたりの時間」という考え方です。