ベクトル計算機
最初のサブユニットがアドレスを読み込み、デコード、次のユニットがアドレスからデータを取り出し、その次が演算を行う仕組みである。パイプラインの仕掛けは、まるで組立ラインのように一つ目の命令が終わる前に次の命令をデコードし始めることで、アドレス・デコーダは絶えず使用され続ける。
一方で科学技術計算において必要な大量の計算では、ベクトルの加算のことを考えてみればわかるように、配列のそれぞれのデータに対して、一斉に同じ演算をするようなものが多い。画像処理などはその最たる例であり、さらに行列の乗算などでは行列が大きくなると計算量は飛躍的に大きくなる。これを効率的に処理するには、命令を「アドレスAから始まる配列と、アドレスBから始まる配列の各要素を足し、アドレスCから始まる配列として戻せ」といったようなものにし、パイプラインにはそれぞれの配列のデータを次々と送り込むようにすれば、演算器が常に働き続けることになり、効率よく大量の計算を処理できる。
2組の、それぞれ10個ある数字を加算していく単純なタスクを例に取ると、普通のプログラミングではループ処理で、1組ずつ数字を取り出し、10回加算を繰り返すコードを書く。プロセッサから見ると、以下のような命令となる。
ベクトル計算機だと以下のように、かなり異なったものとなる。
この方法ならばアドレスの解読は2箇所だけで済む。ただし短縮できる時間はアーキテクチャによる。もう1つの利点は命令読み出しが10回から1回に減ることである。