プロが教える店舗&オフィスのセキュリティ対策術

クロック周波数に関する問題を解こうとしているのですが、
公式がどうも覚えづらくて仕方ないのですが・・・ 何か良い解き方はないものでしょうか?

【問題】基本情報処理 平成19年 秋
 「 1GHzで動作するCPUがある。このCPUは,機械語の1命令を平均0.8クロックで実行できることが分かっている。このCPUは1秒間に約何万命令実行できるか。 」


【公式】
  (1) 1クロックの時間 = 1÷クロック周波数
  (2) 1命令の実行時間 = 1命令の実行に必要なクロック数×1クロックの時間
  (3) 1秒間の命令実行回数 = 1÷1命令の実行時間(命令)

---------------------------------------------------------------
【考え】
 公式より、
  (3)の答えを出したければ (2)が必要であり
  (2)の答えを出したければ (1)が必要である。
  
 であるから、先に(1)を求め (2)を求め (3)を最終的に求める。
 という風に解いてはいるのですが、教科書を見ながらだと解ける状態ですが、いざ時間を空けると公式を忘れてしまって、この手の問題が解けないことがあり、困っています。

  何か逆算みたいで、覚えづらいので一度覚えてもすぐに忘れしまうのですが・・・
 
  この問題をとく方法としては、一旦、解き方の流れを把握して、求め方を覚えるしかないでしょうか?


【ふとした疑問】
  この問題をしてふと思ったのですが、クロック周波数の計算事態は、実際にどこでどういう場面で使われるものなのでしょうか? 何だか、ただ問題を解いているようで、ちょっとイメージが浮いている感じがしているのです・・・(汗)
  

A 回答 (3件)

単純な問題なので解けた方がいいでしょう。

公式で解こうとするから、忘れてしまうとか言っているが、公式の意味を考えた方がいい。
「一箱に1[kg]のひき肉が入っている。ひき肉の一粒が0.8[g]だとすると、一箱の中に何粒のひき肉があるか」という問題と同じだ。こんな問題に公式とか何とか言うか。

【公式】
  (1) 1クロックの時間 = 1÷クロック周波数
  (2) 1命令の実行時間 = 1命令の実行に必要なクロック数×1クロックの時間
  (3) 1秒間の命令実行回数 = 1÷1命令の実行時間(命令)
だね。
(3)に(2)、(1)を代入していけば、
1秒間の命令実行回数 = 1÷1命令の実行時間=1÷(1命令の実行に必要なクロック数×1クロックの時間)=1÷(1命令の実行に必要なクロック数×(1÷クロック周波数))

すなわち、

1秒間の命令実行回数=クロック周波数÷1命令の実行に必要なクロック数

になる。

言葉で書くとわかりにくいので、記号を使うと、

f:クロック周波数
n:1秒間の命令実行回数
t1:1命令の実行時間
c1:1命令の実行に必要なクロック数
t:1クロックの時間


t=1/f・・・(1)
t1=c1*t・・・(2)
n=1/t1・・・(3)
=1/(c1*t)=1/(c1*1/f)=f/c1

ついでに、答えまで書くと、

n=1*10^9/0.8=1.25*10^9

でしょう。
    • good
    • 1
この回答へのお礼

ご回答いただきありがとうございます。

>「公式の意味を考えた方がいい。」
そうなのです。
が、しかし、そこもまた難しく悩んでおります(汗)

回答いただきました内容の方を参考させていただきます。
今集中力も切れているせいか、中々考えがまとまらないので
また集中できるときに回答を読まさせてください。

ありがとうございます。

お礼日時:2009/04/20 19:55

私もこれは、あまり良い問題とは思わないですね。

内部がパイプライン化され、投機実行や分岐予測を行う(いわゆるアウトオブオーダー型)今のCPUだと、命令の実行時間が予測できないので。この計算が通用するのは、昔ながらのインオーダー実行のCPU限定でしょう。ただ考え方として、知っておいても損はしません。

ところで、計算するときはクロック周波数をそのまま使う方が簡単です。1クロックで1命令を実行するCPUの場合は、クロック周波数と同じ、すなわち1GHzだと1G回(10億回)となり、何の計算もいりません。1クロックで実行できる命令数が1ではない場合は、この回数から命令数を割れば求まります。先の問題の場合だと、1G回/0.8=1.25G回=12億5千万回となるわけです。
    • good
    • 3
この回答へのお礼

ありがとうございます。
お返事が大変遅くなり申し訳ありません。

クロック周波数をあれから勉強しているのですが
何分苦手分野?で考えがまだちょっとまとまってないです(汗)
先に先行して覚えれるものを覚えていこうと思います。

クロック周波数については、
「命令の実行が予測できるもの」でなければ効果がえられないものですね(^^;

みなさん、
いろいろと教えてくださってありがとうございます。

お礼日時:2009/06/07 11:40

正直なところ、使う場面はほぼ無いと思って良いと思います。


あなたがCPU周り又はそれ関係なら必要かもしれません。
それ以外は『CPUにまつわる計算でこんなのがあるよ』って感じです。

基本的に解き方の考えを頭に入れて、過去問を何度もやるしか覚える
方法はないと思います。

基本情報技術者の試験でこれが苦手ならば捨てるのも一つの手です。
解けるものを多くしたほうが効率が良いです。

個人的にCPUにしかりHDの問題にしても今はほとんど使われない気が
しますがね。
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございます。

気に掛かってたので参考になります。
豆知識的な問題もあるということなのですねぇ・・・。

アドバイスありがとうございます。
解けるものを多くすることに力を入れていきます。

お礼日時:2009/04/20 12:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!