基本情報技術者試験 - 令和6年1月修了 - 問8

あるプログラムは,命令 a~d を次の順で実行する。


各命令の実行に必要なクロックサイクル数(CPI:Cycles Per Instruction)は,表のとおりである。CPUのクロック周波数を100MHzとするとき,この命令列の実行時間は何ナノ秒か。ここで,命令の実行はオーバラップしないものとする。

命令CPI
a6
b2
c4
d8
ア30
イ40
ウ200
エ300
答え : エ
分野 : テクノロジ系 › コンピュータシステム › コンピュータ構成要素 › プロセッサ
同一問題 : 〔令7修1問8〕〔平23修7問9〕
解説 :
この問題では,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クロックあたりの時間」という考え方です。
ホーム画面への追加方法
1.ブラウザの 共有ボタンのアイコン 共有ボタンをタップ
2.メニューの「ホーム画面に追加」をタップ
閉じる