• 締切済み

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

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

みんなの回答

noname#228894
noname#228894
回答No.1

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

whyathome
質問者

お礼

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

関連するQ&A