CPUの処理を効率化するパイプライン

CPU 内にある各動作を担当する部分を休ませないことで処理を効率化

CPU の処理を細かく見ると、フェッチ、デコード、実行、実行結果をメモリーへ書き出すという4つの動作があります。

フェッチとは、メモリーからプログラムの命令を読み出す動作です。

デコードとは、メモリーから読み出したプログラムの命令を解読する動作です。

実行とは、解読した命令の内容に従って演算処理を行うことです。

実行が終わったら、実行結果をメモリーへ書き出し、一連の処理が終わります。

そして、フェッチから実行結果をメモリーへ書き出すという一連の処理を繰り返します。

各動作は、CPU 内の同じ部分で行われているわけではなく、それぞれ担当する部分があり、フェッチを担当する部分、デコードを担当する部分、実行を担当する部分、実行結果をメモリーへ書き出しを担当する部分があります。

フェッチを行っている時は、フェッチを担当する部分が動作しており、他の担当部分は休んでいる状態となります。デコードを行っている時は、デコードを担当する部分が動作しており、他の担当部分は休んでいる状態となります。他の担当部分に関しても同様です。 この休んでいる状態をなくして、処理を効率化する技術がパイプラインです。

パイプライン利用時は、1番目の命令をメモリーから読み出すためにフェッチを行う時は、フェッチを担当する部分以外の担当部分は休むことになりますが、フェッチが終わりデコードを担当する部分がデコードを行う時に、フェッチを担当する部分は休まずにフェッチを行い、2番目の命令をメモリーから読み出します。

1番目の命令のデコードが終わり実行する時に、デコードを担当する部分は休まずにメモリーから読み出した2番目の命令をデコードし、フェッチを担当する部分は3番目の命令をメモリーから読み出します。

このように各担当部分が休む時間をなくせば、単位時間あたりに行える処理数が4倍となります。

実際は、各命令は関係し合っていることが多く、常に4倍にはなりません。

例えば、前の命令を実行した結果次第で、次にフェッチする命令が決まる場合、パイプラインにより次にフェッチする可能性がある命令をフェッチして、その後の動作を続けますが、前の命令を実行した結果が出て、次にフェッチしなけれならない命令は別の命令だったら、パイプラインにより次の命令をフェッチし、その後に続けた動作は無駄になってしまいます。

キャンペーン
マウスコンピューター
安さで勝負する数少ない国内パソコンメーカーのマウスコンピューターでは、「夏のボーナス特集」を実施中です。普段使い、ゲーミング、クリエイター用の売れ筋パソコンをお求めになりやすい価格にて販売中です。
(キャンペーン実施中)
デル
いち早く直販とBTOカスタマイズでの販売方式で大幅なコスト削減を実現したデルでは、「夏のファイナルセール」を実施中です。最大20%オフクーポンで今ならお得です。
(8月13日迄)
ドスパラ
長い歴史を持つ代表的なショップブランドのドスパラでは、「サマーセール」を実施中です。ドスパラは元々安い価格で販売していますが、日ごろの感謝をこめて大特価放出中です。
(8月30日迄)


2017/07/02 更新