基本情報技術者試験 - 令和7年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 |
答え : エ
分野 : テクノロジ系 › コンピュータシステム › コンピュータ構成要素 › プロセッサ
解説 :
CPU(中央処理装置)が命令を実行するのにかかる時間を計算する問題です。命令の実行時間は「1命令あたりに必要なクロックサイクル数(CPI)」と「クロック周波数」から求めることができます。CPUのクロック周波数が100MHzということは,1秒間に1億回のクロック(拍子のようなもの)を刻むという意味で,クロック1回あたりの時間は1秒を1億で割った10ナノ秒になります。
命令a,b,c,d,a,cを実行する(画像1で示された命令列)とすると,それぞれのCPIはaが6,cが4,bが2という表の値をもとに,必要なクロックサイクルの合計を求め,それに1クロックあたりの時間(10ナノ秒)を掛け合わせることで実行時間を計算します。
命令列がa,c,b,a,c,dの順で実行される場合,CPIの合計は6+4+2+6+4+8=30サイクルとなり,30サイクル×10ナノ秒で300ナノ秒となります。したがって正解は「エ」です。他の選択肢は,クロック周波数とクロックサイクル時間の関係を取り違えたり,命令の回数を数え間違えたりした場合に導かれる誤った値です。
分野 : テクノロジ系 › コンピュータシステム › コンピュータ構成要素 › プロセッサ
解説 :
CPU(中央処理装置)が命令を実行するのにかかる時間を計算する問題です。命令の実行時間は「1命令あたりに必要なクロックサイクル数(CPI)」と「クロック周波数」から求めることができます。CPUのクロック周波数が100MHzということは,1秒間に1億回のクロック(拍子のようなもの)を刻むという意味で,クロック1回あたりの時間は1秒を1億で割った10ナノ秒になります。
命令a,b,c,d,a,cを実行する(画像1で示された命令列)とすると,それぞれのCPIはaが6,cが4,bが2という表の値をもとに,必要なクロックサイクルの合計を求め,それに1クロックあたりの時間(10ナノ秒)を掛け合わせることで実行時間を計算します。
命令列がa,c,b,a,c,dの順で実行される場合,CPIの合計は6+4+2+6+4+8=30サイクルとなり,30サイクル×10ナノ秒で300ナノ秒となります。したがって正解は「エ」です。他の選択肢は,クロック周波数とクロックサイクル時間の関係を取り違えたり,命令の回数を数え間違えたりした場合に導かれる誤った値です。