ポラックの法則
ポラックの法則(ポラックのほうそく)は、1999年に提唱された「プロセッサの性能はその複雑性の平方根に比例する」という経験則。
原典では「我々は二乗則の悪い側にいる」という表現で、これは計算機の性能は価格の2乗に比例する、としたグロッシュの法則を踏まえている。複雑性=価格とすれば、それぞれの法則を描いたチャートは、逆の形を描くことになる。
ここで「複雑性」とは、論理回路の水準で見るならばゲート数やFF数、電子回路の水準で見るならばネットリストのエッジ数とノード数すなわち配線数と素子数、などのことである。トランジスタ数のことだとして、この法則に文字通り従うならば、1プロセッサに使うトランジスタを2倍に増やしても、性能は倍にしか上がらない。
なお、実際のデータからは、定性的にはともかく、定量的には文字通りではなく、物量と性能の関係は一定ではなく変化するものだ、という意味に取るのが良いようである[1]。
ここで、ある系列のプロセッサの新型を設計するとして、その新型ではプロセス微細化なしに2倍のトランジスタを使うことにする。すると(実際にはその設計次第であるが)、ポラックの法則に従うならばプロセッサの性能は1.4倍しか向上していないにもかかわらず、トランジスタ数に比例して消費電力は2倍に増大している。したがって消費電力あたりの性能は、トランジスタ数を2倍にした結果逆に0.7倍に低下することになる。消費電力は、ほぼそのまま発熱量とみてよい。結論として、トランジスタ数の増加によるプロセッサの性能の向上は、遠からず(仮に電力の供給はなんとかできたとしても)熱の問題により頭打ちとなることが、この法則が正しければ予言される。
直感的に説明するならば、この法則はプロセッサ設計がある種の「飽和」に達した後の現象だということになる。ビットスライスプロセッサのように、たとえば32ビットのALUを、8ビットのALU(たとえばAm2901)を並べて作っていたような時代であれば、単純な物量作戦で性能は線形に上がるだろうし、もっとかも(グロッシュの法則)しれない。その後、単純に物量作戦で可能なことは全てやり、パイプライン化なども行われると、それ以上の性能向上は並列(parallel)処理で、となり、scoreboarding や Tomasuloのアルゴリズムなど、並行(concurrent)処理の複雑さが、目的の計算以上に素子などの資源を喰ってしまうわけである。
なお以上の議論ではプロセス微細化なしにという前提を置いているが、MOS集積回路の開発から200x年代頃までのトレンドとしては、ムーアの法則を達成するためのプロセス微細化によって、デナード則にもとづき高速化と消費電力が低減されてきていたため(しばしばこの後半のほうを指してムーアの法則だとされている)そちらによる性能向上が大きかった。こちらによる性能向上は、集積回路の生産プロセスを更新するだけでプロセッサ設計やマスクパターンの大きな変更無しに、単にパターンをより小さく縮小するだけであり、「無料の昼食」(Free Lunch)などと形容されることも[2]ある。
この法則が示唆する通り、またデナード則の崩壊により、その後のプロセッサは低消費電力・マルチコア化を(提唱時期からみても、この法則はシングルコア性能が前提である)指向するようになった。
出典
編集- https://web.archive.org/web/20000818024243/http://www.intel.com/research/mrl/Library/micro32Keynote.pdf (2024年9月4日閲覧) 1999年に開催されたMicro-32の基調講演にてフレッド・ポラック(w:Fred Pollack)が提示したプレゼンテーション。この4ページ目に示された"We are on the Wrong Side of a Square Law"(我々は二乗則の悪い側にいる[1])が原典。ポラックはインテル社のMRL(Microprocessor Research Labs)のディレクター兼インテル・フェロー(Intel Fellow)を務めていた。