技術士の過去問
平成29年度(2017年)
基礎科目「情報・論理に関するもの」 問12

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

技術士 第一次試験 平成29年度(2017年) 基礎科目「情報・論理に関するもの」 問12 (訂正依頼・報告はこちら)

10,000命令のプログラムをクロック周波数2.0[GHz]のCPUで実行する。
下表は、各命令の個数と、CPI( 命令当たりの平均クロックサイクル数 )を示している。
このプログラムのCPU実行時間に最も近い値はどれか。
問題文の画像

次の問題へ

正解!素晴らしいです

残念...

この過去問の解説 (3件)

01

問題文に与えられたCPUは、2.0GHzであることから、

1秒間に2.0×1,000,000,000の命令を処理することができることが分かります。

よって、1命令に要する時間は、

1÷(2.0×1,000,000,000)秒となります。

また、この10,000命令のプログラムの内訳は、

転送命令3,500個

算術演算命令5,000個

条件分岐命令1,500個

であり、それぞれ与えられた表のCPIを要することから、

このプログラムは、

(3,500×6)+(5,000×5)+(1,500×4)の命令からなることが分かります。

以上のことから、このプログラムを処理するために要する時間は、

{(3,500×6)+(5,000×5)+(1,500×4)}/(2.0×1,000,000,000)

=0.000026(秒)

となります。

0.000001秒=1マイクロ秒であることから、

0.000026秒=26マイクロ秒となります。

よって、正解は、2となります。

参考になった数26

02

命令実行時間は、(1クロックに要する時間)×(CPI)×(命令数)で表されます。
CPIは1命令に要するクロック数を表します。

クロック周波数は、CPUのリズムを表し、1Hzなら1秒に1回、10Hzなら1秒に10回の動作を行います。
このCPUのクロック周波数は2.0GHzなので、
1クロックに要する時間は、1[秒]÷(2.0×10^9)[Hz] となります。

よって、
1[秒] ÷ (2.0×10^9)[Hz] × {(3,500×6)+(5,000×5)+(1,500×4)} = 26×10^-6[秒] = 26 [マイクロ秒]

2が正解となります。

参考になった数17

03

クロック周波数2.0GHzなので、1秒あたり2×10^9回のクロックサイクル数です。
1クロックサイクル数あたりの時間は1秒÷2×10^9=0.5ナノ秒です。

1命令あたり6クロックサイクル数必要な場合、各命令に掛かるCPU実行時間は

転送命令の場合:3500×6×0.5=10500ナノ秒=10.5マイクロ秒・・・(1)
算術演算命令:5000×5=12500ナノ秒=12.5マイクロ秒・・・(2)
条件分岐命令:1500×4=3000ナノ秒=3マイクロ秒・・・(3)

(1)+(2)+(3)より26マイクロ秒となります。

したがって、2が正解です。

参考になった数4