• 締切済み

情報工学 ハードウェアの問題について

以下の問題を解く手順を教えて頂きたいです。 パイプラインの深さをD,パイプラインピッチをP秒とすると,I個の命令をパイプラインで実行するのに要する時間を表す式は(I+D-1)×Pであることは分かりましたが、パイプラインフラッシュを考慮しなければならない、となると分かりません。 また、パイプラインフラッシュが発生すると、パイプライン中の実行途中の命令が無効化されるということは、段数に比例して再実行しなければならない命令が増えるということでしょうか?

みんなの回答

noname#228894
noname#228894
回答No.1

> 段数に比例して再実行しなければならない命令が増える そういうことです。なので、パイプラインの段数は多い方が処理速度が稼ぎやすく、また動作周波数も上げやすい代わりに、分岐予測の失敗などでパイプラインの中身を破棄しなければならなくなった時、失うものも大きくなります。その辺のバランスが重要だよと言うことを考えさせるのが、この問題の趣旨です。 実製品の例で言えばPentium4が、とにかくパイプラインの段数を増やしてクロックを上げてぶん回し、うまくいっている時の速度を稼げば、コケた時の速度低下を補って余りあると言う発想でした。なのでもともと効率は良くない(って言うか最初からそれは考えてない)ため、同じクロック周波数だと旧製品に負けるし、ぶん回そうにも周波数を上げていく過程で増大する消費電力と発熱の壁に激突し、結局このやり方には限度があると実証されてしまいました。 CPU設計では、命令の実行効率を追求するか(動作周波数は上げにくい)、動作周波数を追求するか(実行効率は上げにくい)のバランス取りをどうするかを考えることになります。

whyathome
質問者

お礼

回答ありがとうございます。 やはり段数は上げすぎても良くないのですね。 もし問題の解答もして頂けるのであれば、是非よろしくお願い致します。

関連するQ&A

  • 応用情報の問題です。

    応用情報の問題です。 パイプラインの深さをD 、パイプラインのピッチをP 秒とすると、I 個の命令をパイプサインで実行するのに要する時間を表す式はどれか。 ここで、パイプラインの各ステージは1ピッチで処理されるものとし、パイプラインハザードについては、考慮しなくてよい。  ア  (I +D )×P  イ  (I +D -1)×P  ウ  (I ×D )+P  エ  (I ×D -1)+P 正解は「イ」なのですが、「パイプラインの深さD」と「命令数I」の違いを教えて いただきたいです。 よろしくお願いします。

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

    応用情報の問題で、わからない所があります。 パイプラインの深さを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で命令内全ステージにかかる時間を求めたつもりです。 それに命令数をかけています。 すみません、よろしくお願いいたします。

  • 化学工学の問題

    比重0.88、粘度μ=0.005Pa・sの原油をパイプラインで1日300m^3輸送する。パイプは4B鋼管(内径D=0.1053m)を使用し、全長が12km(12000m)の時の圧力降下ΔPを求める問題なのですが、 まず、体積流量V=300m^3/日=0.00347m^3/sなので、平均流速u=V/{(π/4)D^2}より、u=0.401m/sとなりました。 ここからハーゲン-ポアズィユの式ΔP=(32μLu)/D^2にそれぞれの値を代入して計算したところ、ΔP=70000Paという値になりました。しかし解答を聞いたところΔP=0.297MPaで大きく違っていたのですが、ここまでの計算でどこかが間違っているのでしょうか?比重を利用していないとこがちょっと気になっているのですが・・・。どなたか教えていただけないでしょうか?宜しくお願いします。

  • CPUの高速化技法

    CPUの高速化技法のパイプライン制御の動作中に分岐命令があった場合の計算問題です パイプライン制御を行うと高速に命令を実行できる反面、分岐命令を行うと、前もって取り出しておいた命令を破棄して再度命令の取り出しからやり直さなければならない。 もし、分岐命令がないとき1つのステージを処理するのに5ナノ秒かかるとすると、6個の命令を実行するのに( )ナノ秒かかる。 この問題が分かりません。 答えは55ナノ秒となってます。

  • マイクロプロセッサの高速化手法

    動作周波数が100MHzのマイクロプロセッサPが、50,000,000命令を実行するベンチマークテストを行ったところ、これらの命令を0.25秒で実行することができた。 マイクロプロセッサPがこのようなCPI値になるのは、どのような高速化手法が適用されているからか、その手法名を述べ、どのような手法が説明せよ。 という問題ですが (1)パイプライン (2)スーパーパイプライン (3)スーパースカラ (4)VLIW (5)マルチプロセッサ のどれかかと考えているのですがどれが答えとして最適かわかりません。 ご教示お願い致します。 またMIP値が200MIP CPI値が0.5 と計算してなりましたが合っていますでしょうか?加えてご確認お願い致します。

  • パイプライン処理の処理能力について

    現在、ソフトウェア開発技術者試験の勉強をしているものです。 お忙しいところ、誠に申し訳ございませんが、 以下の問題の考え方について、アドバイス頂けないでしょうか? 頭を悩ましているのは、以下の問題です。 一つの命令を構成する各処理を 表に示す時間で行うプロセッサがある。 各処理を、それぞれパイプラインの1ステージに 割り当てる5段パイプライン構成のプロセッサの 命令処理速度は、パイプライン化していない プロセッサに比べて何倍になるか? <処理名>:<最大処理時間(単位:ナノ秒)> 命令フェッチ:100 命令デコード:50 オペランド読出し:100 演算処理:80 演算結果書込み:100 答えは、4.3倍だったのですが、どうも解答に納得できません。 例えば、2命令を実行した場合を考えた時、 <通常> □□□□□□□□□□□□□□□ 430(100+50+100+80+100)×2=860ナノ秒 <パイプライン> □□□□□  □□□□□ 1処理あたり最大100ナノ秒なので、 2命令実行するのに600ナノ秒かかる。 つまり、860÷600≒1.4倍だと思いました。 解答の考え方は、 パイプラインでの処理能力を500ナノ秒の間に、 5命令実行可能だと解釈しています。 □□□□□ ■□□□□ ■■□□□ ■■■□□ ■■■■□ ※■:前の命令のステージを表す。 たぶん、納得できないのはここの解釈だと思うのですが…。

  • パイプラインの5つのフェーズ

    パイプラインのフェーズの割り方で I・D・R・EX・Wに分かれている図があったのですが、 I:Instruction fetch 命令フェッチ D:decode デコード R:? EX:execution 演算実行 W:write back 結果の格納 Rだけが何を指すのかわかりません。 何を指すのでしょうか?

  • 動点問題

    AB=4cm,BC=8の長方形ABCDがあり、2点P,Qは同時にBを出発し、長方形の周囲を進む。点Pは毎秒2cmの速さでB→A→Dの順に、点Qはある一定の速さでB→C→Dの順に進み、ともにDで停止する。2点P、QがBを出発してからx秒後の△PBQの面積をy(cm^2)とする。 点PがDに着くのと同時に、点QはCに着くような速さで動くものとする。この速さで点Qが辺CD上を動くとき、yをxの式で表しなさい。 私の考えたのですが、式までたどりつきませんでした。すいませんが解説をお願いします。 私が考えたところは、 点PはB→A→Dまで動くつまり12cm。ここまで6秒で動きますよね。 これと同じ時間で、点QはB→C間で動くつまり8cm。このときの点Qの速さは4/3(cm/秒)動くということが分かりました。その先どうやって式を作っていいのかが分かりませんでした。すいませんが解説をお願いします。

  • 基本情報技術者試験の午前過去問が分からなくて困っています。

    基本情報技術者試験の午前過去問が分からなくて困っています。 以下にその問題を示します。宜しくお願いします。 表のCPIと構成比率で、3種類の演算命令が合計1000000命令実行されるプログラムを、クロック周波数が1GHzのプロセッサで実行するのに必要な時間は何ミリ秒か? 表。 演算命令     CPI  構成比率(%) 浮動小数点加算  3    20 浮動小数点乗算  5    20 整数演算       2    60 解説では、(3*0.2+5*0.2+2*06)÷10^9*1000000という式になり、 答えは2.8ミリ秒となるらしいです。 なぜ、(3*0.2+5*0.2+2*06)÷10^9*1000000という式がでてくるのか、よくわかりません。一応、CPIやクロック周波数などの用語は理解しているつもりなのですが。 宜しくお願いします。

  • 高校数学の確率の問題です

    右図のように12個の点A,B,C,D,E,F,G,H,K,Lが12本の線で結ばれている 粒子Pが点Aを出発してこれらの12個の点の間を次の規則に従って移動する  (i)粒子Pは点ABCDの各点では上下左右のいずれか隣の点へ同じ確率1/4で1秒間で移動する (ii)粒子Pが×印の付いた点GKのいずれかに達すれば直ちに消滅する  (iii)粒子Pが○印の付いた点EFHIJLのいずれかの点に達すれば以後その点で停止し続ける  出発してからn秒後に粒子Pが消滅する確率をp[n],停止する確率をq[n]とする、このとき、 (1)粒子Pが消滅する確率Σ[n1→∞]p[n],および停止する確率Σ[n1→∞]q[n]を求めよ (2)粒子Pが消滅するか停止するまでの時間の期待値Σ[n1→∞]n(p[n]+q[n])を求めよ 解説で粒子Pが0,2,4,,,秒後にA,Cにある確率の総和をそれぞれP(S),P(C)とし、1,3,5,,,秒後にB,Dにある確率の総和をそれぞれP(B),P(D)とする 対称性からP(B)=P(D)=xとすると P(A)=1+2x/4,P(C)=2x/4 粒子Pが移動し続ける事象Mの確率はp(M)=1×2/4×1/4×1/4×・・・・=0となっていたのですが、 P(A)=1+2x/4,P(C)=2x/4になるのとp(M)=1×2/4×1/4×1/4×・・・・=0になるのが分かりません p(M)の式は最初の1は0秒後に必ずAにいるので1、1秒後はAからB,Dのいずれかに行く確率なので2/4ここまでは分かるのですが、2秒後BまたはDからそれぞれAかCに行く確率が1/4になっているのが分からないです、B,Dから次に繋がる場合の数はB,DからそれぞれAかCに行く場合の合計4通りでB,Dからの進み方はB→G,B→F,B→A,B→C,D→A,D→C,D→K,D→Jの全部で8通りです、この中で次につながるのが4通りですから 1秒後から2秒後に繋がる確率は4/8=1/2と思ったのですが、1/4になってて合わないですよね、この考え方はどこが間違っているのでしょうか?