Posts Issued on February 3, 2022

posted by sakurai on February 3, 2022 #452

機械の場合

人間であれば器用に3つの処理を一人で実行することができますが、コンピュータは機械なので一つのことしかできません。つまり、A専用、B専用、C専用の3つの機械を並べて処理することになります。

  • 社内メール封筒を取りに行く ----- A専用機
  • 宛名を書いて書類を入れて封をする ----- B専用機
  • 社内メール投函箱に投函しに行く ----- C専用機

図%%.1
図452.1 システム構成図とレイテンシ

レイテンシは前稿の3人がかりと同じように$3\tau$で、スループットはその逆数である$\frac{1}{3\tau}$です。これを表452.1にまとめます。

表452.1
個別/全体 レイテンシ スループット
A, B, C個別 $\tau$ $\frac{1}{\tau}$
A+B+C全体 $3\tau$ $\frac{1}{3\tau}$

パイプライン化

さて、ここでシステムのスループット(システム性能)は$\frac{1}{3\tau}$ですが、その向上を考えてみます。

性能向上のためレイテンシ短縮を考えると、$3\tau$以下にするのは困難です。ところが、AとB、BとCの間に箱を置いて、$3\tau$ではなく、$\tau$毎に処理を入力したらどうでしょうか。ちょうどバケツリレーのように$\tau$毎に処理が可能です。

スループットから見てみましょう。元々A, B, Cの機械単体でのスループットは$\frac{1}{\tau}$だったのですが、システムで組み合わせると$\frac{1}{3\tau}$のように33%に低下していました。

例えばA機械は、BとCが働いているときには遊んでいたわけです。これを間に箱を入れて切り離すようにした結果、レイテンシはほとんど変わらずに、スループットは3倍の100%に向上しました。つまり、A, B, Cそれぞれの機械の能力を100%出し切ることができたわけです。

表452.2
個別/全体 レイテンシ スループット
A+B+C全体をパイプライン化 $3\tau$ $\frac{1}{\tau}$

このように、パイプライン化はあまりコストをかけることなく、性能を大幅に向上できる特長があります。一般的には、全体を$n$ステージのパイプラインで構成すれば、レイテンシはあまり変わらず$n\tau+\alpha$と若干増加するだけです。一方、スループット(性能)を$n$倍のように大幅に引き上げることができます。


左矢前のブログ 次のブログ右矢