2 |
Pipeline processorの設計 |
パイプラインとは
ノイマン型計算機の進歩の中で命令パイプライン技術が考案されました。パイプライン制御はコンピュータの性能向上の手法の重要な技術のひとつです。詳細は命令パイプライン制御を見てください。
本稿ではパイプライン制御を解説していきます。このパイプライン制御を理解するには、まずスループットとレイテンシについて、正しく理解する必要があります。
スループットとレイテンシ
まずスループットとは、Wikipediaにもあるように、単位時間当たりの処理量です。コンピュータの処理能力は上げるほうが良いので、スループットを上げることを考えます。
次にレイテンシとは、端的に言えば入力から出力までの処理時間のことで、普通はその逆数がスループットになります。従って、処理能力を上げるにはレイテンシを小さくすることを考えます。
ところが、レイテンシを短くするのは非常に大変です。単純な仕事で見てみましょう。会社で社内メールを出すのに、
- 社内メール封筒を取りに行く ----- A処理と呼ぶ
- 宛名を書いて書類を入れて封をする ----- B処理と呼ぶ
- 社内メール投函箱に投函しに行く ----- C処理と呼ぶ
上記のA~C処理の3ステップがあるものとします。どれも同じ時間$\tau$だけかかるとすれば、レイテンシは$3\tau$です。一人の人間がフルに働いても$3\tau$に1通しか処理できません。処理能力であるスループットは、上記から$\frac{1}{3\tau}$となります。
3人でやってもレイテンシは$3\tau$と変わりません。Cを実行するにはBが完了していなければならない依存性があり、Bを実行するにはAが完了していなければならない依存性があるからです。これがレイテンシを短縮するのが困難な理由です。