応用情報技術者平成29年秋期 午前8
パイプライン制御を適切に表しているものはどれか。ここで,図中の記号Dは解読,Eは実行,Fは命令フェッチとする。
1、パイプライン制御は、CPUで処理される1命令を、
・命令読出し(フェッチ)、
・解読(デコード)、
・アドレス計算、
・オペランド呼出し、
・実行
というような複数のステージに分け、各ステージを少しずつずらしながら独立した処理機構で並列に実行することで、処理時間全体を短縮させる技法です。
通常(非パイプライン)の流れでは、読出し→解読→実行という一連の処理が終了してから次の命令処理に移るというサイクルを繰り返しますが、パイプライン制御では命令処理の完了を待つことなく次の命令の処理に移れるためスループットが向上します。
※オペランドとは、
コンピュータの演算における値や変数のことである。 オぺランドは演算の種類や内容を表す演算子(オペレータ)によって演算対象となるもので、例えば「7×3」という計算式があれば、「7」と「3」がオペランドとなる。
※スループットとは、
機器や通信路などの性能を表す特性の一つで、単位時間あたりに処理できる量のこと。 ITの分野では、コンピュータシステムが単位時間に実行できる処理の件数や、通信回線の単位時間あたりの実効伝送量などを意味することが多い。
ーーーーーーーーーーーーーーーーーーーーーーーーーー
補足
すべての命令が5サイクルで完了するように設計された,パイプライン制御のコンピュータがある。20命令を実行するのには何サイクル必要となるか。ここで,すべての命令は途中で停止することなく実行でき,パイプラインの各ステージは1サイクルで動作を完了するものとする。
簡単にいうと、
1命令 5サイクル
2命令 6サイクル
3命令 7サイクル
。。。 。。。
20命令 20+4サイクル
ですね。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
補足
CPUのパイプライン処理を有効に機能させるプログラミング方法はどれか。ここで,CPUは命令の読込みとデータのアクセスを分離したアーキテクチヤとする。
1、パイプライン制御は、
CPUで処理される1命令を、命令読出し(フェッチ)、解読(デコード)、アドレス計算、オペランド呼出し、実行 というような複数のステージに分け、各ステージを少しずつずらしながら独立した処理機構で並列に実行することで、処理時間全体を短縮させる技法です。
2、分岐ハザード
パイプライン処理では、処理命令を先読みするためプログラム中に分岐命令などがあると、
結果によって次に実行するべき命令がわからないため、パイプラインを止めて次に実行すべき命令が判明するのを待たなければなりません。これを分岐ハザードと呼びます。分岐ハザードを発生させないためには、分岐命令を少なくすることが有効な方法です。
参照: