マンガでよめる痔のこと・薬のこと

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

【問題】基本情報処理 平成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で質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QCPUのクロック周波数が1クロック何秒になるかについて

簡単な問題なのかもしれませんが、
質問させていただきます。

私の通っている学校で課題が出されたのですが、
CPUのクロック周波数が例えば4、0Ghzだったとき、1クロックが
何秒になるかってどうやって計算すれば分かるでしょうか?
また、小数点ではなく整数で出してくれと言われたのですが・・・

分かる方いらっしゃったら是非回答お願いします!
初心者にも分かるように説明していただければ幸せこの上ないです。

Aベストアンサー

課題をそのまま投稿することは禁じられていますが・・・。

逆数計算ですので1/(4×10^9)=0.25×10^-9(秒)
いずれにしても小数ですので整数で出せと言うのが良くわかりませんが
25×10^-11(秒)
を要求しているのでしょうか。
あるいは250×10^-12=250(ピコ秒)なのでしょうか。
問題(の出題者)がトンマですね。

Qパイプライン方式での処理時間の求め方

応用情報の問題で、わからない所があります。

パイプラインの深さをD 、パイプラインのピッチをP 秒とすると、I 個の命令をパイプラインで実行するのに要する時間を表す式はどれか。
ここで、パイプラインの各ステージは1ピッチで処理されるものとし、パイプラインハザードについては、考慮しなくてよい。

 ア  (I +D )×P  イ  (I +D -1)×P
 ウ  (I ×D )+P  エ  (I ×D -1)+P

正解は「イ」なのですが、お恥ずかしながら全く腑に落ちません。

私の理解とそれによって導き出される式は以下のようになっています。
どこでまちがっているのか、教えていただけませんでしょうか。

◆私の理解
 パイプラインの深さをD:命令の中のステージ数はD個
 パイプラインのピッチをP 秒:1ピッチP秒かかる
 パイプラインの各ステージは1ピッチで処理:各ステージの処理はP秒かかる
 I 個の命令:命令がI個ある

◆式
 所用時間= I × (D × P)

D×Pで命令内全ステージにかかる時間を求めたつもりです。
それに命令数をかけています。

すみません、よろしくお願いいたします。

応用情報の問題で、わからない所があります。

パイプラインの深さをD 、パイプラインのピッチをP 秒とすると、I 個の命令をパイプラインで実行するのに要する時間を表す式はどれか。
ここで、パイプラインの各ステージは1ピッチで処理されるものとし、パイプラインハザードについては、考慮しなくてよい。

 ア  (I +D )×P  イ  (I +D -1)×P
 ウ  (I ×D )+P  エ  (I ×D -1)+P

正解は「イ」なのですが、お恥ずかしながら全く腑に落ちません。

私の理解とそれによって導き出される式は以下のようになって...続きを読む

Aベストアンサー

命令の個数を7、パイプラインの深さを4、パイプラインのピッチを1秒とする。

この場合、1つの命令がパイプラインを通り抜けるには4秒かかる。

そして、それぞれの命令は、1秒づつズレながら順にパイプラインに入っていく。

図にすると、以下のようになる。

 深さ4
←──→
□□□□______ 1番目のパイプに入った命令は抜けるまで4秒かかる
_□□□□_____ 2番目の命令が入るのは1ピッチ経過後。つまり1秒後
__□□□□____ 3番目の命令が入るのは2ピッチ経過後。つまり2秒後
___□□□□___ 4番目の命令が入るのは3ピッチ経過後。つまり3秒後
____□□□□__ 5番目の命令が入るのは4ピッチ経過後。つまり4秒後
_____□□□□_ 6番目の命令が入るのは5ピッチ経過後。つまり5秒後
______□□□□ 7番目の命令が入るのは6ピッチ経過後。つまり6秒後
1 2 3 4 5 67 89 10 ←(7+4-1)×1=10

最後の命令がパイプラインに入るのは「命令の個数-1ピッチ後」であり、その命令がパイプラインを通過し終わるのは、パイプラインの深さだけかかる。

つまり、最後の命令がパイプラインを通り抜け終わるのは「命令の個数-1+パイプラインの深さ」に、1ピッチの秒数を掛けた秒数が経過した時である。

「最後の命令がパイプラインを通り抜け終わる秒数」と言うのは「全部の命令を実行するのに要する時間」そのものである。

「(命令の個数-1+パイプラインの深さ)×1ピッチの秒数」を意味する式は「イ  (I +D -1)×P」である。

命令の個数を7、パイプラインの深さを4、パイプラインのピッチを1秒とする。

この場合、1つの命令がパイプラインを通り抜けるには4秒かかる。

そして、それぞれの命令は、1秒づつズレながら順にパイプラインに入っていく。

図にすると、以下のようになる。

 深さ4
←──→
□□□□______ 1番目のパイプに入った命令は抜けるまで4秒かかる
_□□□□_____ 2番目の命令が入るのは1ピッチ経過後。つまり1秒後
__□□□□____ 3番目の命令が入るのは2ピッチ経過後。つまり2秒後
___□□□□...続きを読む

QMIPS と クロック周波数の換算方法

プロセッサの処理能力を表すものとして
MIPS Million Instruction Per Second
クロック周波数 動作のタイミングをとる信号の周波数のこと。
        1Hzは1秒間に1回

がありますが、両者には何らかの換算方法のようなものはあるのでしょうか?

Aベストアンサー

MIPSは「1クロックあたりの平均処理命令数」 × クロック周波数
という式で求まるはずです。

「1クロックあたりの平均処理命令数」はCPUごとに異なります。
最近のCPUはどれも、複数の命令を同時に処理することが出来ます。また、命令一つを実行する為には、数クロックから数十クロックの処理時間を必要とします。

それから、実行する命令によっては、「命令AとBは同時に実行できない」とか「命令Aの処理結果によっては、現在計算中の命令を破棄して、それらを再計算させなければならない」などといったことが起こります。

ですから、CPUのスペック表に書かれているMIPS値は「典型的な使用状態における平均値」であり、実際のMIPS値は、そのときの使用状況によって異なってくるわけです。

Q16進数から10進数への変換

16進数の77が16×14+7だということはわかるのですが、少し複雑になるとわからなくなります。
例えば以下のような場合です。

「16進数で5D2Cは
16の三乗×5+16の二乗×13+16×2+12
とあらわされます。」

なぜ、16の三乗や、16の二乗をする必要があるのでしょうか?

5桁になるとおそらく16の4乗をする必要がありそうですが、
宜しくお願いします。

Aベストアンサー

5桁で16の4乗、というのは正しいです。
この説明は下でされているので省きます。

16進数は数が大きいので、扱いが面倒、と思われるかもしれないので、
簡単な2進数への変換法を書いておきます。

16進数で5D2Cの場合
 1、各桁を2進数に変換する
 ⇒5D2C = 0101 | 1101 | 0010 | 1100
 2、変換したものをそのまま結合する
 ⇒ 0101 | 1101 | 0010 | 1100 ⇒  0101110100101100

 これで、2進数になります。
2のN乗の方が計算が楽だと思いますので、10進数にする場合は
使ってみてはいかがでしょうか?
(8進数の場合も同様にできます)

Q10進数の14.5を浮動小数点(IEEE754形式)の2進数に変換するにはどうしたらよいでしょうか?

10進数の14.5を浮動小数点(IEEE754形式)の2進数に変換するにはどうしたらよいでしょうか?
10進数の-7.5を浮動小数点(IEEE754形式)の2進数に変換するにはどうしたらよいでしょうか?
計算方法を教えてください。

Aベストアンサー

14.5を符号と指数と仮数に分けます。
符号は正の数なので符号は0
次に14.5を符号無し2進数に変換すると
1110.1
小数点を左に移動させて1だけ残すと
1110.1=1.1101*2^3
仮数は23ビットで小数点より右側だけなので、足りない分を0でうめて
11010000000000000000000
指数の3を127でバイアスするので
3+127=130
これを2進数に直すと
10000010
全て合わせると、
01000001011010000000000000000000
で、32ビットの2進数に変換できました。
同じように、-7.5を変換すると、
符号は負の数なので1
-7.5を符号無し2進数に変換すると、
 111.1
=1.111*2^2
なので、仮数は
11100000000000000000000
指数の2を127でバイアスすると
2+127=129
これを2進数に直すと
10000001
全て合わせると
11000000111100000000000000000000
になります。
64ビットの場合は、指数のバイアスを127から1023にし、仮数の23ビットを52ビットまで増やせばOKです。

14.5を符号と指数と仮数に分けます。
符号は正の数なので符号は0
次に14.5を符号無し2進数に変換すると
1110.1
小数点を左に移動させて1だけ残すと
1110.1=1.1101*2^3
仮数は23ビットで小数点より右側だけなので、足りない分を0でうめて
11010000000000000000000
指数の3を127でバイアスするので
3+127=130
これを2進数に直すと
10000010
全て合わせると、
01000001011010000000000000000000
で、32ビットの2進数に変換できました。
同じように、-7.5を変換すると、
符号は負の数なので1
-7.5を...続きを読む

QMIPS値の求め方

以下の問題教えてください
3種類の命令群を持ち、それぞれの実行速度と出現頻度が下表とおりであるコンピュータのMIPS値を求めよ。
命令群ABC
実行速度2ナノ秒3ナノ秒4ナノ秒
出現頻度40%40%20%

Aベストアンサー

(1)平均の実行速度を求める。
それぞれの命令の実行速度に出現確率を掛けたものを足す。
2*(40/100) + 3*(40/100) + 4*(20/100)

(2)MIPSを求める
MIPSとは「1秒間に何百万回命令を実行するか」の尺度なので、まずは「1秒間に何回命令を実行するか」を求める。
ナノ・・10^(-9) 10のマイナス9乗なので

命令実行回数・・・1/(↑の(1)で求めた実行速度)
これを100万で割れば求められます。

Qエクセルで計算すると2.43E-19などと表示される。Eとは何ですか?

よろしくお願いします。
エクセルの回帰分析をすると有意水準で2.43E-19などと表示されますが
Eとは何でしょうか?

また、回帰分析の数字の意味が良く分からないのですが、
皆さんは独学されましたか?それとも講座などをうけたのでしょうか?

回帰分析でR2(決定係数)しかみていないのですが
どうすれば回帰分析が分かるようになるのでしょうか?
本を読んだのですがいまいち難しくて分かりません。
教えてください。
よろしくお願いします。

Aベストアンサー

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるための指数表記のことですよ。
・よって、『2.43E-19』とは?
 2.43×1/(10の19乗)で、
 2.43×1/10000000000000000000となり、
 2.43×0.0000000000000000001だから、
 0.000000000000000000243という数値を意味します。

補足:
・E+数値は 10、100、1000 という大きい数を表します。
・E-数値は 0.1、0.01、0.001 という小さい数を表します。
・数学では『2.43×10』の次に、小さい数字で上に『19』と表示します。→http://ja.wikipedia.org/wiki/%E6%8C%87%E6%95%B0%E8%A1%A8%E8%A8%98
・最後に『回帰分析』とは何?下の『参考URL』をどうぞ。→『数学』カテゴリで質問してみては?

参考URL:http://ja.wikipedia.org/wiki/%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるた...続きを読む

Q稼働率の解き方・計算式を教えてください。

問題は
ある装置では100日間に合計600分の障害が発生した。
この装置の稼働率を求めなさい。
なお、この装置は毎日10時間稼動している。

答え
ア.0.97
イ.0.98
ウ.0.99

この計算式を教えてください。お願い致します。

Aベストアンサー

装置は毎日10時間稼動で100日なので総稼働時間は


10時間×100日=1000時間

故障しない時間(稼働時間)は
障害600分なので 時間に直すと10時間


稼働時間は1000時間ー10時間=990時間

稼働率は



稼働時間÷総動作時間=990÷1000=0.99

Q卒業検定に落ちた人!

卒業検定に落ちた人!
(ペーパー試験じゃなくて、実技の方)

どの理由で落ちたか教えてください。
あと10日程で、卒業検定です。
参考にさせてください。

Aベストアンサー

一般的なことは,皆様が書かれている通りです
自分は一発合格でしたが
私の卒業した学校であった,変わったエピソードがあります
参考まで

交差点手前でで一台のトラックが止まっていたのですが
検定車5台の内,先頭の運転手が信号待ちと判断
トラックの後ろに停止,残り4台も同様に停止しました
ところが,トラックは信号待ちではなく
交差点近くの電話ボックスで電話する為に停車していただけだった
検定者は誰も気付かず教官に指摘された
ところが,車間距離が近すぎて,免許所持者なら切り返しで
抜けられるところ,未熟なため列から抜け出せず
全員が100点原点で不合格になった(実話ですよ)

ポイントは状況判断ミスと走行不能による検定中断になったため
一般的なことは皆様書かれているようなことで
おそらく,質問者様もある程度予測できていることも
あると思います
上のような,予測不可能な事態に巻き込まれたとき
如何に判断して抜け出せるかだと思います

運とか,こういう場面に出くわす確立とか
ありますが,平常,冷静を保つことが大事です!!

一般的なことは,皆様が書かれている通りです
自分は一発合格でしたが
私の卒業した学校であった,変わったエピソードがあります
参考まで

交差点手前でで一台のトラックが止まっていたのですが
検定車5台の内,先頭の運転手が信号待ちと判断
トラックの後ろに停止,残り4台も同様に停止しました
ところが,トラックは信号待ちではなく
交差点近くの電話ボックスで電話する為に停車していただけだった
検定者は誰も気付かず教官に指摘された
ところが,車間距離が近すぎて,免許所持者なら切り返し...続きを読む

Q周期T、周波数f、T=20[ms]のf=50[Hz]

T=20[ms]のf=50[Hz]とあります。
T=1/fを使い、秒を分にすればいいと考えたんですが、50[Hz]になりません、どう計算するのでしょうか?

Aベストアンサー

msとはミリ秒、つまり1/1000秒のことです。
秒に換算すると、20/1000=1/50秒
f=1/T=1(1/50)=50Hzとなります。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング