修了試験 2025-12-14実施分 基本情報技術者試験 問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)から、命令列の実行時間を求める問題です。 まず命令列全体のサイクル数を合計し、次に1サイクルの時間を掛けます。 命令はa、c、b、a、c、dの順に実行され、オーバラップしません。 【計算】 命令列のCPIを順に足すと、6+4+2+6+4+8=30サイクルです。 クロック周波数が100MHzなので、1サイクルの時間は1÷(100×10⁶)秒です。 これは10×10⁻⁹秒、つまり10ナノ秒です。 実行時間は、30サイクル×10ナノ秒=300ナノ秒です。 【選択肢別解説】 1:× 30は命令列全体のサイクル数です。 1サイクルの時間である10ナノ秒を掛ける必要があります。 2:× 40は正しい計算からは得られない値です。 命令aと命令cは2回ずつ実行されるので、合計30サイクルになります。 3:× 200は、命令aとcを1回ずつしか数えないなど、サイクル数の合計を誤った値です。 4:○ 合計30サイクルに1サイクル10ナノ秒を掛けると、300ナノ秒になります。 【ポイント】 クロック周波数の逆数が1サイクルの時間です。 100MHzなら10ナノ秒、1GHzなら1ナノ秒と覚えておくと計算が速くなります。まとめて解く
修了試験 2025-12-14実施分を通しで解く(60問)→