基本情報技術者  科目A 問題  質問

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
ポイさん  
(No.1)
基本情報技術者資格習得に向けて勉強している者です。

MIPSを求める問題と平均命令実行時間を求める問題の計算の仕方について教えていただきたいです。

2MIPS=1秒/平均命令実行時間*10^-6
と平均命令実行時間を求める問題です。

平均命令実行時間=500*10^-9=500(ナノ秒)
となるのですが、途中式はどうなるのか?詳細に教えていただきたいです。

平均命令実行時間が200
1/200万=0.0000005で、
0.0000005*10^-6をする?←ココはどうやって計算するのか?はたまたもっと賢いやり方があるのか?

お時間ある際に教えていただけたら嬉しいです。よろしくお願いします。
2023.06.13 14:40
まーぼさん 
FE シルバーマイスター
(No.2)
私の場合は、単位がナノ秒なので、10^ -9を作ることを意識します。

(1/2)*10^-6 //200万の逆数
=(1/2)*10^3*10^-9 //10^-9を作って、帳尻合わせるために10^3を掛ける
=500*10^-9 //10^3 / 2を計算

よって500ナノ秒と求められます。
2023.06.13 15:55
jjon-comさん 
FE ゴールドマイスター
(No.3)
逆数とは,その数に掛け合わせると1になる数。
ある数を分数で表す場合,その数の逆数は分子と分母を逆にした数。

G(ギガ) 10の9乗
M(メガ) 10の6乗
k(キロ) 10の3乗
1       10の0乗
m(ミリ) 10の-3乗
μ(マイクロ) 10の-6乗
n(ナノ) 10の-9乗

なので,Gの逆数がn,Mの逆数がμ,kの逆数がm。

さらに,IPS(命令/秒)と 平均命令実行時間(秒/命令)は互いに逆数になる。

よって,
「2」「M」「IPS」の逆数は,
「1/2」「μ」「秒/命令」,つまり,0.5μ秒/命令。

平均命令実行時間の単位をμ秒でなくn秒にしたいのなら,
1000倍して,500n秒/命令。
2023.06.13 16:17
えださまさん 
(No.4)
①1MIPSは100万命令  =  1秒間に1000000命令
②2MIPSは200万命令  =  1秒間に2000000命令
③平均命令実行時間  =  1命令あたりの実行時間

④1秒  :  2000000命令  =  Z秒  :  1命令
という比例の等式が成り立ちます(覚えてください)

⑤計算方法
  1秒×1命令  =  2000000命令×Z秒
  1  =  2000000Z
  Z  =  1÷2000000
  Z  =  0.0000005秒

⑥1ミリ秒      =  1×10^-3(0.001)秒
  1マイクロ秒  =  1×10^-6秒(0.000001)
  1ナノ秒      =  1×10^-9秒(0.000000001)

⑦よって500ナノ秒

わからない番号①~⑦ありますでしょうか。
比例の式に関しては、他の項目を求める問題が出されても対応し易いですよ
2023.06.13 16:18
まーぼさん 
FE シルバーマイスター
(No.5)
すみません。MIPSと平均命令実行時間の関係は理解している前提で話してしまっていました。。。

MIPSは何の略かを考えるといいです。

MIPS: Million Instructions Per Second

つまり1秒あたりに実行できる100万単位の命令の数です。1MIPSなら1秒間に100万個の命令を実行できるということです。

「2MIPS=1秒/平均命令実行時間*10^-6」

これは公式のように考えてもいいのですが、当たり前なので覚えるまでもないと思います。

MIPSからMを抜いたIPSを考えます。(100万IPS =1MIPSの関係です)

単位を考えると、IPSは[I/S]、平均命令実行時間は[S/I](平均命令実行時間は平均して1つの命令に何秒かかるかです)

[I/S]と[S/I]はそれぞれ逆数の関係にあります。つまりIPS[I/S]の分母と分子を入れ替えると、[平均命令実行時間[S/1]になります。

MIPSから平均命令実行時間を求めるためには、

1.MIPSをIPSに変換。
2.1で求めたIPSの分母分子を入れ替える。

ということをすれば良いです。

1.2MIPSをIPSに変換。2MIPSとは1秒間に200万個の命令を実行できるということなので、200万IPS

2.200万の分母分子を入れ替えます。200万は分数ではないですが、分母に1が隠れているので分母分子を入れ替えると、1/200万となり。平均命令実行時間は1/200万と分かります。

さきほどの私の投稿は1/200万の整理の仕方についてです。
2023.06.13 18:53
ポイさん  
(No.6)
まーぼさん  jjon-comさん  えださまさん

詳細で丁寧な説明していただきありがとうございます。1つ1つの説明よく分かります!

あと1つ質問させてください!
今、10^-6と10^-9の単位合わせで混同しています。
ミリオン(100万)10^-6の単位に合わせるのに、10^-9(ナノ)にする?
1日計算問題をしており、計算も合うようになってきたのですが、単位のところの理解が、、、?

また、お時間ある時に教えていただけたらと思います。

よろしくお願いします。
2023.06.13 22:30
momochanさん 
(No.7)
このような計算でいいのでは?
1/(2×10^6)
=0.5×10^-6(0.5マイクロ秒)
=500×10^-9(500ナノ秒)
2023.06.13 23:29
boyonboyonさん 
FE シルバーマイスター
(No.8)
ちょっと変な解き方ですが、思いついたので参考までに書き込ませていただきます。
①1秒間に何個命令を実行できるか。(IPS)
②1つの命令を実行するのに何秒かかるか。(平均命令実行時間:単位は、SPIにしておきます。)

スレ主さんが最初に提示している
>2MIPS=1秒/平均命令実行時間*10^-6
なんですが、余分な所を消して、
2MIPS=1/平均命令実行時間
で考えるとすっきりします。
2MIPSと平均命令実行時間を入れ替えて
平均命令実行時間=1/2MIPS
No.3のjjon-comさんのおっしゃっているように
Mの逆数は、μですし、IPSの逆はSPIなので、
平均命令実行時間=1/2MIPS=(1/2)μSPI=0.5μSPI=500nSPI
となります。
2023.06.14 00:16
まーぼさん 
FE シルバーマイスター
(No.9)
ポイさん

>ミリオン(100万)10^-6の単位に合わせるのに、10^-9(ナノ)にする?

MIPSが100万(10^6)なのに、なぜ10^-9で10の指数(右肩に乗っている数字のこと)の絶対値(|6|=6と|-9|=9)が違うのかということでしょうか。MIPSから平均命令実行時間に変換するときに必ずナノが出てくるわけではありません。答えで求められているのはナノ[S/I]のため、10^-9に合わせています。そのため、答えがマイクロ[S/I]で求める場合は10^-6に合わせます。要するに数字の接頭語(メガ、マイクロ、ナノなど)がないものから、あるものに変換しているにすぎません。

(1/2)*10^-6[S/I] //数字の接頭語なし
=(1/2)*10^3ナノ[S/I] //数字の接頭語を加える、ナノ=10^-9,10^(3-9) =10^-6より
=500ナノ[S/I]

k(キロ)は10^3を表す接頭語です。距離を求める問題で、何kmか?と聞かれた場合、m(数字の接頭語なし)を求めてから答えのkmに合わせているのと同じことです。

例:答えを求めたら35000mになった。答えがkmで求めるため、kmに変換する。

35000[m]
=35000*10^-3キロ[m]
=35[km]

※細かい指摘になってしまうのですが一般的な数字の接頭語のMはミリオンではなく、メガと読みます。(MB:メガバイト等)
ミリオンもメガもどちらも100万を表す言葉なので覚え方としては問題ないです。
2023.06.14 00:46
jjon-comさん 
FE ゴールドマイスター
(No.10)
No.3の回答者です。No.3の
> よって,
> 「2」「M」「IPS」の逆数は,
> 「1/2」「μ」「秒/命令」,つまり,0.5μ秒/命令。
以降を補足します。

(マイクロ秒/命令でなく)ナノ秒/命令で答えよ,という出題指示であるなら。
「0.5」「μ」秒/命令の
「0.5」を1000倍して「μ」を1/1000にしても値は等しい。
よってこの場合は,
「500」「ナノ」秒/命令。

(マイクロ秒/命令でなく)ミリ秒/命令で答えよ,という出題指示であるなら。
「0.5」「μ」秒/命令の
「0.5」を1/1000にして「μ」を1000倍しても値は等しい。
よってこの場合は,
「0.0005」「ミリ」秒/命令。
2023.06.14 09:08
ポイさん  
(No.11)
momochanさん  boyonboyonさん  まーぼさん  jjon-comさん

ありがとうございます。問題に求められている単位に合わせて答えを出すことが分かりました!
何度も皆さんの解説を読んでいて、そこで10^の変換が混同していることに気がつきました。

別問題で確認させてください。


1命令を平均0.8クロックで実行する1GHzのCPUがある。このCPUは1秒間に平均何万命令を実行できるか求めよ。
解答群(ア125  イ250 ウ80,000 エ125,000)


『CPUのクロック周波数 ÷ 1命令に要する平均クロック数』より
式1*10^9/0.8=1,250,000,000
皆さんのおかげで、1GHzだから「1*10^9」だとわかり式が立てられるようになってます!
そして、これが答えではなく「平均何万命令を実行できるか」と万(メガ)単位しないといけないことも
分かりました!

1,250,000,000は0が多いので
1.25*10^9として(これはギガ)メガにすると?10^6になるので3動かす
125*10^6これでOK!  正解はアだと思ったら、エで泣きました。

本の解説には125,000*10^4と書かれておりさらにパニックです。

あとひとおし、教えていただけたら嬉しいです。
よろしくお願いします。
2023.06.14 11:38
まーぼさん 
FE シルバーマイスター
(No.12)
ポイさん

>1命令を平均0.8クロックで実行する1GHzのCPUがある。このCPUは1秒間に平均何万命令を実行できるか求めよ。

1GHzとは1秒あたりに10^9クロックですから、1命令が平均0.8クロックならば

1秒あたりの平均命令実行数は

10^9 ÷ 0.8 
= (10/8) * 10^9
= (5/4) * 10^9
= (125/100) * 10^ 9
= 125 * 10 ^ 7

求めるられている単位が万(10^4)ですので、10^4を作ります。

125 * 10^7 
= 125 * 10^3 * 10^4
= 125 * 10^3 万
から125000万[I/S]

単位が10^0ならば125 * 10^7 =125000 * 10^4となるので本に書いてあるのはこのことかと。今回は単位が10^4で要求されているので、エの125000になります。
2023.06.14 12:06
ポイさん  
(No.13)
まーぼさん  

ありがとうございます!
「目から鱗が落ちる」とはこのことか思うぐらいにスッキリと理解しました。
今まで「何百万」=10-6を使い続けていたので、10^-6または10^-9の数字にとらわれていました。
今回は「万」の問題なので、単位は10^4ですね!!
今後気をつけて勉強に励みたいと思います。

みなさま本当にありがとうございます。助かりました。
またよろしくお願いします。
2023.06.14 12:18

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop