修了試験 2025-01-26実施分 基本情報技術者試験 問8
あるプログラムは,命令a〜dを次の順で実行する。 a→c→b→a→c→d 各命令の実行に必要なクロックサイクル数(CPI:Cycles Per Instruction)は,表のとおりである。 CPUのクロック周波数を100MHzとするとき,この命令列の実行時間は何ナノ秒か。 ここで,命令の実行はオーバラップしないものとする。 命令/CPI a/6 b/2 c/4 d/8
正答4
解説
正解は4です。 命令ごとのCPI(Cycles Per Instruction)とクロック周波数から、命令列の実行時間を求める問題です。 命令列は、a、c、b、a、c、dの順に6個の命令を実行します。 実行時間は「合計クロックサイクル数×1クロックの時間」で求めます。 【計算】 合計サイクル数は、aの6+cの4+bの2+aの6+cの4+dの8です。 6+4+2+6+4+8=30サイクルです。 100MHzの1クロックの時間は、1÷(100×10^6)秒=10ナノ秒です。 実行時間は、30サイクル×10ナノ秒=300ナノ秒です。 【選択肢別解説】 1:× 30は、命令列全体の合計クロックサイクル数です。 これに1クロックの時間である10ナノ秒を掛けていないため、誤りです。 2:× 40ナノ秒は、命令列の合計サイクル数30から導けません。 正しくは、30サイクルに10ナノ秒を掛けた300ナノ秒です。 3:× 200ナノ秒は、命令a〜dを1回ずつ実行した場合の20サイクル分の時間です。 実際の命令列ではaとcを2回ずつ実行するため、合計は30サイクルになります。 4:○ 合計30サイクルに1クロック10ナノ秒を掛けると、300ナノ秒になります。 命令の実行がオーバラップしないため、単純な足し算で求められます。 【ポイント】 クロック周波数の逆数が1クロックの時間です。 100MHzなら10ナノ秒、1GHzなら1ナノ秒と、すぐに換算できるようにしておきます。まとめて解く
修了試験 2025-01-26実施分を通しで解く(60問)→