パイプライン処理
データ処理要素の直列連結 / ウィキペディア フリーな encyclopedia
親愛なるWikiwand AI, これらの重要な質問に答えるだけで、簡潔にしましょう:
トップの事実と統計を挙げていただけますか パイプライン処理?
この記事を 10 歳向けに要約してください
すべての質問を表示
パイプライン処理(パイプラインしょり、英: pipeline processing)とは、コンピュータ等において、処理要素を直列に連結し、ある要素の出力が次の要素の入力となるようにして、並行(必ずしも並列とは限らない)に処理させるという利用技術である。要素間になんらかのバッファを置くことが多い。レイテンシの向上よりも、単位時間あたりの処理量(スループット)の向上に重点が置かれる方式である。
「ハザード (コンピュータ)」はこの項目へ転送されています。プロセッサパイプラインにおけるハザードについては「パイプライン処理#パイプラインハザード」をご覧ください。 |
コンピュータ関連のパイプラインには、次のようなものがある。
- 命令パイプライン
- プロセッサ内にあり、同じ回路で複数の命令をオーバーラップさせて実行する。回路は一般にステージに分割されており、命令デコード部、演算部、レジスタフェッチ部などがある。各ステージは1度に、ある1つの命令の処理のうち、自分が担当する部分を処理する。
- グラフィックスパイプライン
- コンピュータグラフィックスのうち、典型的な局所照明ベースの3次元コンピュータグラフィックスにおいて必要とされる計算は、最初の3次元幾何の処理(頂点トランスフォーム)、ラスタライズ、ピクセル単位の陰影計算および最終結果の出力(表示)までが流れ作業となる[1]。描画シーンの複雑度や画面の解像度に応じて必要な計算量が飛躍的に増大していく。特にコンピュータゲームやシミュレーション可視化などを目的としたリアルタイム描画の場合、膨大なデータ処理を短時間で高速に実行する必要があることから、CPUで実現することは難しいため、ほとんどが専用ハードウェア(GPU)によってパイプライン化されており、また一般的なマルチコアCPUを遥かに超える多数のストリームプロセッサコアで並列化されている。パーソナルコンピュータではビデオカードやオンボードグラフィックス、あるいはCPUに内蔵されたGPUが利用されるが、モバイルデバイスではGPUはSoCに統合されている。GPUは、プログラマブルシェーダーの登場によってパイプラインの一部をアプリケーションソフトウェアがカスタマイズできるようになり、のちにはグラフィックスタスクだけでなく汎用計算タスクをこなすGPGPU用のコンピュートパイプラインもサポートするようになった。さらにリアルタイムレイトレーシングのパイプラインをサポートするGPUも登場している[2]。
- ソフトウェアパイプライン
- スーパースカラやスーパーパイプラインにより、複雑化した命令パイプラインを有効に働かせるためには、命令を並べる順番を工夫し、ハザードによるバブルの発生を回避しなければならない。ループ展開をともなったループの最適化で特に有用で、その手法をソフトウェアパイプラインと言う。
- パイプ (コンピュータ)
- 複数個のプロセスについて、あるプロセスからの出力を別のプロセスの入力につなぐようにし、プロセスを協調して働かせる、というもの。UNIXへの実装により、単純でありながら大いに有用であることが実証された。