
現在、ソフトウェア開発技術者試験の勉強をしているものです。
お忙しいところ、誠に申し訳ございませんが、
以下の問題の考え方について、アドバイス頂けないでしょうか?
頭を悩ましているのは、以下の問題です。
一つの命令を構成する各処理を
表に示す時間で行うプロセッサがある。
各処理を、それぞれパイプラインの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命令実行可能だと解釈しています。
□□□□□
■□□□□
■■□□□
■■■□□
■■■■□
※■:前の命令のステージを表す。
たぶん、納得できないのはここの解釈だと思うのですが…。
No.2ベストアンサー
- 回答日時:
NO.1さんの回答で納得できない場合の為に補足しておくと、
□□□□□
■□□□□
■■□□□
■■■□□
■■■■□
が
■□□□□
■■□□□
■■■□□
■■■■□
■■■■■
になる為には「何ナノ秒」必要か考えてみましょう。
あと、上記のようにパイプラインのステージが一歩進むたびに命令の実行が1個ずつ完了する事が理解(というか納得)出来るでしょうか?
(5個あるうちのどれか1つが必ず命令実行完了となる)
パイプラインを生産ラインと考えれば、xxナノ秒毎に生産(実行)完了した命令が一個ずつアウトプットされているという風に理解しやすくなるかな。
No.1
- 回答日時:
パイプライン処理の場合は、命令処理の各工程を流れ作業のように行うことで、複数の命令処理を効率よく実行できます。
非パイプライン処理では命令処理ごとに各工程を順番に実行します。前の命令処理が全ての工程を完了しないと、次の命令処理を開始することができません。
パイプライン処理では、まず、命令処理1の「読込」を行います。命令処理1の「読込」が終わり「解読」が始まると、命令処理2の「読込」を行います。命令処理1の「解読」、命令処理2の「読込」が終わると、それぞれ次の工程にすすみます。命令処理1は「実行」を行い、命令処理2は「解読」を行います。一方、新しい命令処理3の「読込」をはじめます。同様に、命令処理の各工程を次から次へと絶え間なく行います。
つまり、非パイプライン処理では100+50+100+80+100=430かかるところを、パイプライン処理では各処理のなかで一番長い処理時間の100で済むことになりますので、430÷100=4.3 となるのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
arduino
-
VBSとVBA
-
プログラム言語FortranとCの違...
-
64ビット化による処理速度低下...
-
【有効数字について】 授業で、...
-
ジークアクスのサイコガンダム...
-
携帯電話の略語であるMBって英...
-
EXCELでの16進数取り出し、上...
-
【暗号資産】Bitcashって仮想通...
-
文字の容量(サイズ)についての...
-
CSV データのバイト数を調べる...
-
新聞1ページは何バイトですか?...
-
テキストの半角文字を全部削除...
-
Stirlingについて
-
マトリックスサイズが512×512で...
-
1Mバイトって何バイト?
-
JIS、SHIFT-JIS、EUCはなぜでき...
-
16bitはダイナミックレンジが97...
-
GB と Gbの違いの意味
-
フリーソフトYokkaGrepでの置換...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラム言語FortranとCの違...
-
arduino
-
CPU、Z80からステート数から...
-
組み込みCプログラムで実数型
-
パイプライン制御について
-
なぜ、i++なのか?(ものすごく...
-
PICマイコンのプログラムについ...
-
アセンブリ言語で。
-
G4 って Pentium でいうとどの...
-
CPUって
-
MIPS アセンブリ言語
-
64ビット化による処理速度低下...
-
マイコンのビット数とクロック数
-
関数と命令の違いについて
-
H8Sで割り込み発生時の飛び先ア...
-
VBSとVBA
-
+=と÷=の処理速度の謎を教え...
-
スマートフォンAndoroid の R...
-
任天堂64の64 CPUの仕...
-
CPUのHTについて教えてください。
おすすめ情報