ポラックの法則(ポラックのほうそく)は、「プロセッサの性能はその複雑性の平方根に比例する」という経験則。ここで「複雑性」とは、論理回路の水準で見るならばゲート数やFF数、電子回路の水準で見るならばネットリストのエッジ数とノード数すなわち配線数と素子数、などのことである。トランジスタ数のことだとして、この法則に文字通り従うならば、1プロセッサに使うトランジスタを2倍に増やしても、性能は倍にしか上がらない。

ここで、ある系列のプロセッサの新型を設計するとして、その新型ではプロセス微細化なしに2倍のトランジスタを使うことにする。すると(実際にはその設計次第であるが)、ポラックの法則に従うならばプロセッサの性能は1.4倍しか向上していないにもかかわらず、トランジスタ数に比例して消費電力は2倍に増大している。したがって消費電力あたりの性能は、トランジスタ数を2倍にした結果逆に0.7倍に低下することになる。消費電力は、ほぼそのまま発熱量とみてよい。結論として、トランジスタ数の増加によるプロセッサの性能の向上は、遠からず(仮に電力の供給はなんとかできたとしても)熱の問題により頭打ちとなることが、この法則が正しければ予言される。

直感的に説明するならば、この法則はプロセッサ設計がある種の「飽和」に達した後の現象だということになる。ビットスライスプロセッサのように、たとえば32ビットのALUを、8ビットのALU(たとえばAm2901)を並べて作っていたような時代であれば、単純な物量作戦で性能は線形に上がるだろうし、もっとかも(グロッシュの法則)しれない。その後、単純に物量作戦で可能なことは全てやり、パイプライン化なども行われると、それ以上の性能向上は並列(parallel)処理で、となり、scoreboardingTomasuloのアルゴリズムなど、並行(concurrent)処理の複雑さが、目的の計算以上に素子などの資源を喰ってしまうわけである。

なお以上の議論ではプロセス微細化なしにという前提を置いているが、MOS集積回路の開発から200x年代頃までのトレンドとしては、ムーアの法則を達成するためのプロセス微細化によって、デナード則にもとづき高速化と消費電力が低減されてきていたため(しばしばこの後半のほうを指してムーアの法則だとされている)そちらによる性能向上が大きかった。こちらによる性能向上は、集積回路の生産プロセスを更新するだけでプロセッサ設計やマスクパターンの大きな変更無しに、単にパターンをより小さく縮小するだけであり、「無料の昼食」(Free Lunch)などと形容されることも[1]ある。

インテル社のMRL(Microprocessor Research Labs)のディレクター兼インテル・フェロー(Intel Fellow)を務めていたフレッド・ポラック(Fred Pollack)が提唱した。なお、実際のデータからは、文字通りではなく、物量と性能の関係は一定ではなく変化するものだ、という意味に取るのが良いようである[2]

この法則が示唆する通り(また、物理法則の限界により、縮小しても高速化や低電圧化を以前のようには進められず、電流に至ってはリークのせいで増える傾向にすらあることもあり)、その後のプロセッサは低消費電力・マルチコア化を指向するようになった。

出典 編集

  • www.intel.com/research/mrl/Library/micro32Keynote.pdf Technologies1999年に開催されたMicro-32の基調講演にてPollack氏が提示したプレゼンテーション。この4ページ目に示された"We are on the Wrong Side of a Square Law"(我々は二乗則の悪い側にいる[2])という言葉がのちに「ポラックの法則」として広まることとなる。この言葉は、計算機の性能は価格の2乗に比例する、としたグロッシュの法則を踏まえたものと思われる(複雑性=価格とすれば、それぞれの法則を描いたチャートは、逆の形を描くことになる)。

脚注 編集

  1. ^ The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software
  2. ^ a b http://news.mynavi.jp/column/architecture/122/index.html

関連項目 編集