パイプライン
コンピューター処理におけるパイプラインとは、複数の命令を同時に実行するための手法です。コンピューターのプロセッサは、毎秒数百万個の命令を処理できます。すべての命令はいくつかの段階を通過し、それぞれの段階はプロセッサの異なる部分で処理されます。各クロックサイクルで命令は次の段階へ移動します。1つの命令がある段階を通過している間、ほかの命令は別の段階を同時に通過します。
一般的なCPUのパイプラインには、命令フェッチ、命令デコード、実行、メモリアクセス、書き戻しという5つの段階がありますただし、これは(アーキテクチャによって異なる場合があります)。パイプライン処理を行わない場合、プロセッサは一度に1つの命令しか処理できません。各命令がすべての段階を通過するには複数のクロックサイクルが必要なため、1つの命令が段階から段階へ移動している間、プロセッサの大部分はアイドル状態になります。パイプラインを使わない処理でも、1つの命令にかかる時間が長くなるわけではありません。しかし、プロセッサが1秒あたりに処理できる命令数は少なくなります。
命令パイプラインは、自動車の組み立てラインによく似ています。組み立てラインでは、各ステーションが座席の取り付け、エンジンの搭載、車輪の取り付けなど、1つの作業だけを担当します。一度に1台の車しかラインを進まない場合、ほとんどのステーションはアイドル状態になり、工場は1日に多くの車を生産できません。しかし、各ステーションが常に作業できるほど、数十台の車両が同時にライン上にあれば、それぞれの車にかかる時間は同じでも、1日に完成する車の数は大幅に増えます。
GPUのグラフィックスパイプライン
CPUに加えて、コンピューターのGPUも命令の処理にパイプラインを使用します。GPUのグラフィックスパイプラインはより複雑で、専用の複数の処理コンポーネントが、数学的な関数を実行して、3Dのシーンやオブジェクトを画面に表示する2D画像へレンダリングします。
GPUのアーキテクチャは世代によって大きく異なりますが、ほとんどのグラフィックスパイプラインは似たパターンに従います。単純なグラフィックスパイプラインでは、まず頂点(すべての3Dオブジェクトを構成する三角形の角)の3D座標を、画面の平面上の2D座標に変換します。次に、それらの座標をワイヤーフレームに変換し、頂点間の形状を塗りつぶして図形を作成します。その後、テクスチャーマップ、照明、その他のシェーダー効果を加えて、図形をピクセルにラスタライズします。「カメラ」から見えない隠れたピクセルやその他の情報は破棄され、最後に画像がフレームバッファーに保存されて画面に表示されます。
知識をテストする