HOME»応用情報技術者試験掲示板»クロック数とIPSについて
投稿する

[0147] クロック数とIPSについて

 応用ポールさん(No.1) 
22年度秋午前問9

動作クロック周波数が700MHzのCPUで、命令の実行に必要なクロック数及びその命令の出現率が表に示す値である場合、このCPUの性能は約何MIPSか。

命令の種別       命令実行に必要なクロック数    出現率(%)
レジスタ間演算            4                      30
メモリ・レジスタ間演算    8                      60
無条件分岐                 10                    10

という問題の解法についてですが、手持ちの参考書やネット上の多くのサイトでは、まず平均クロック数を4×0.3=1.2 クロックのように算出して答えを100MIPSとしています。

私は、700×0.3/4 のようにして、1秒当たりの総クロック回数に、1秒当たりの各命令の割合を掛けて1秒当たりの各命令に割り振られるクロック数を計算し、それを命令実行に必要なクロック数で割って1秒当たりの各命令の命令回数回数を求め、最後にそれらを合計して112MIPSとしました。

どちらも正解の番号は同じになりますが、計算方法と計算結果の値は異なります。
出現率の扱いがちがっており、100MIPSになる計算方法の方は、クロックの出現率という考えを採用(私の方は命令の出現率という考え)しています。
クロックの出現率とか平均クロック数という考えが私には理解できないのですが、どなたか解説願えますでしょうか?
2012.10.22 13:13
takaさん(No.2) 
具体的に命令数 100 とした場合の必要クロック数を考えてみると
分かりやすいでしょう。
命令の種別      必要クロック数 出現率 100命令
レジスタ間演算               4     30     120
メモリ・レジスタ間演算       8     60     480 
無条件分岐                  10     10     100

以上より 100 命令には 700 Hz 必要になります。
動作クロック周波数が 700 MHz なので 100M 命令になります。


別回答として
1命令当り7クロックの命令を1秒間に何回実行できる?
と考えても良いかも知れません。
この場合は、1命令で7クロックなので100MIPSとなります。
700^6(1秒間当りに処理できるクロック数)÷7(1命令当りのクロック数)
=100^6(1秒間に実行できる命令数)
2012.10.22 20:05
管理人(No.3) 
「クロックの出現率」という表現を使っているので、たぶん応用ポールさんは、出現率を全クロック数に対する各命令ごとのクロック使用率と勘違いしているのだと思います。
問題文中の表にある「出現率」は命令の出現率のことです。
2012.10.22 23:22
 応用ポールさん(No.4) 
>takaさん
すいません、それは参考書とかでよくみかける解説内容で、それだとわからないから質問させていただいています。
そもそもの、その平均クロック数や(クロック数×出現率)の意味するものが理解できないのです。クロック数×出現率なるものが現象として存在しうるのか。

>ミルキー@管理人
いいえ、私の回答は、一定時間に占める各命令の出現率(一定時間において、命令の種類ごとに合計してそれが全命令に占める割合を計算した値)を計算しているつもりです。

1.  例えば、1秒という一定時間を考えて、それのうち3割(0.3秒)がレジスタ間演算の命令になっている、それのうち6割(0.6秒)がメモリ・レジスタ間演算の命令になっている、のこりが無条件分岐になっている、としましょう。(ここまでは問題文に何か矛盾ありますでしょうか?)

2.  700MHzのクロックを使う場合、上記に、700M回のクロック信号がトータルの値として送られるということになり、かつ、1クロック当たりの秒数は等しいので、3種類の命令に送られるクロック信号はそれぞれ合計で、700M×0.3(回)、700M×0.6(回)、700M×0.1(回)となります。(ここまでは問題文に何か矛盾ありますでしょうか?)

3.  あとは、残りの計算をすれば、112MIPSとなります。

ちなみに、私はこの考え方で他の年度の過去問もいくつか解いており、他の場合では支障は出ていません。

むしろ、100MIPSの回答の方が「出現率を全クロック数に対する各命令ごとのクロック使用率と勘違いしている」と思います。(と私は思うのですが、私の解釈が間違いの可能性があるのでここで質問させていただいている次第です。)

2012.10.23 07:01
 応用ポールさん(No.5) 
解決しました。考え、takaさんの命令数 100 とした場合の説明で、100MIPSとなる意味がわかりました。

つまり、

100MIPSとなるtakaさんのレスにあるような解法(参考書等でよくみかける解法)は、命令1の「回数、命令2の「回数」および命令3の「回数」の割合を、命令の出現率という言葉で表現している場合の回答

112MIPSとなる私が示した解法は、命令1、命令2および命令3が対象時間内において占める確率、たとえば1秒にしめる各命令の割合)を、つまり時間的割合を、命令の出現率という言葉で表現している場合の回答

ということでしょう。

前者は、命令の出現率=(命令1の回数の合計)/(全命令の総計)で計算され、
・出現は出る瞬間を意味しており、カウントは回数である
・命令は時間的に飛び値であってもよい(命令の出現および出現後処理される命令処理領域が存在しない空白の時間領域があってもよい)
ことを意味します。言葉の用法の例として、ゲームの各アイテム出現率、良品出現率などがあります。アイテムを引く、検査をする、などの行為をした場合にそれが出現する確率です。本件にあてはめると、命令というものが生じた場合に、各命令が出現する確率。

後者は、
・各状態である割合を示し、時間的に飛び値は持たない。全ての時間が埋まっている
・出現に”出る瞬間”という視点はない
ことを意味します。言葉の用法の例として、天気出現率などがあります。この場合、仮に1回の天気を2回連続と数えることができても、出現率の値は同じ値になります。本件にあてはめると、ある瞬間がその命令である確率。

本問題の内容は、CPUが処理している間、常に3つのうちどれかの命令が行われている、と解釈できる(なぜならそうでないと何MIPSの計算は無意味になる)という意味では後者の解釈が優勢だが、”出現率”ではなく"出現"という単語だけ考えたなら、”出る瞬間”という意味がある方が妥当であり、後者はそぐわない。
前者の解釈は、命令が実際1回、2回と数えれるという意味では優位にあり、出る瞬間という意味も備えているが、時間的に飛び値でありえるという一般的な意味に本件の問題の状況はそぐわない。

結局は、用語「命令の出現率」がこの業界で定義済みである(デファクトスタンダードも含めて)か否かがポイントですが、どうですか?
2012.10.23 10:44
 応用ポールさん(No.6) 
平成14年度春期 基本情報 問21  の問題文では、命令総数の記述の後に各命令の構成比率という言い方で割合に触れていますね。この問題文だと命令に占める命令の割合と解釈させられるので安全ですね。

なぜ呼び方を「出現率」などと変更したのでしょうね。業界ではそう呼ぶようになったから呼び方を変えたのでしょうか?いずれにしても「構成比率」とかの方がまぎらわしくなくていいです。問題慣れ、またはもし業界用語であるのなら業界慣れしていないと、「出現率」の意味をとり間違えるリスクが増して、初心者には厳しい問題です。
2012.10.23 14:31
時間的に飛び値?さん(No.7) 
期待値とかと同様に考えればいいんじゃないでしょうか。

問題で与えられた条件って、実際に飛んでくる命令が
以下のようになっているってことを表してるんですよね。

[例]
レジスタ間演算----------4クロック
メモリ・レジスタ間演算--8クロック 
レジスタ間演算----------4クロック
メモリ・レジスタ間演算--8クロック
メモリ・レジスタ間演算--8クロック
メモリ・レジスタ間演算--8クロック
無条件分岐-------------10クロック
レジスタ間演算----------4クロック
メモリ・レジスタ間演算--8クロック
メモリ・レジスタ間演算--8クロック
メモリ・レジスタ間演算--8クロック



合計-----------------700Mクロック
処理した命令の数-----?(IPS)  ←コレを求める


>そもそもの、その平均クロック数や(クロック数×出現率)の意味するものが
>理解できないのです。クロック数×出現率なるものが現象として存在しうるのか。

問題の条件を満たす命令のパターンが、上記の例以外に無数にあるわけです。
そこで出現率を使って、「仮にすべての命令に必要なクロック数が同じだったら?」
と考えて求めたものが平均クロック数です。
つまり、問題の条件に合うように

命令某----------7クロック
命令某----------7クロック
命令某----------7クロック
命令某----------7クロック
命令某----------7クロック
命令某----------7クロック



合計-----------------700Mクロック
処理した命令の数-----?(IPS)  ←コレを求める

こんな風に単純化するための手段として、平均クロック数が使われるのです。


上記の2つの命令処理のパターンについて、常に命令が飛んできているのは
明白ですよね?ゆえに

>本問題の内容は、CPUが処理している間、常に3つのうちどれかの命令が
>行われている、と解釈できる

この点について、命令の数ベースで解釈することによる不都合はありません。


「出現率」という言葉を使っているのは、あくまで「次の命令は何になるか分からない」という、現実の処理の流れに即した考え方をしているからだと思います。

「全部で命令を100個処理して、そのうち30個が命令Aでした。だから命令Aの構成比率は30%でした」というような、結果からさかのぼって割合を求める状況ではないということです。

「次に来る命令は、
4クロックかかるレジスタ間演算が30%の確率、
8クロックかかるメモリ・レジスタ間演算が60の確率、
10クロックかかる無条件分岐が10%の確率だ」
という状況で命令を処理し続けるCPUを想像してください。

そうすれば、平均クロック数(1つの命令処理にかかるクロック数の期待値)という考え方も納得できるかと。
2012.10.24 13:00
aさん(No.8) 
>時間的に飛び値?さん
ありがとうございます。というかすいません。もう前のレスの段階(解決しましたのところ)で平均クロック数とかも含めていろんな用語の意味は理解してました。

その後で思ったのは、出現率は、時間的に飛び値?さんもいわれているように、次に出現する率ということで、これは外部や使用者から見たときの表現でよくつかわれる言い方で、構成率とか割合とか書くとそれはシステムの動きをしっている内部から見たときの表現で使われるのかな、ということです。

ただ、一般に、外部から見たときの確率、次に出現する確率、をつかうのは、出現と出現の時間間隔が一定だったり気にしなくてよかったりという場合が多い(ゲームの各アイテム出現率、良品出現率、天気出現率など)ので、異なる所要時間を持つ命令に対してつかわれていると私が連想できなかったという話です。

結局、間違えたのは、この試験でつかわれる出現率という「専門用語」の意味を知らなかったのが原因だということに尽きるということです。試験慣れしないとだめということですね。
2012.10.24 18:28

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop