このページの本文へ

前へ 1 2 3 4 次へ

ロードマップでわかる!当世プロセッサー事情 第73回

CPU性能向上のトレンド マルチコアの理論と限界

2010年10月18日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/)

  • この記事をはてなブックマークに追加
  • 本文印刷

IPCの引き上げは難しい
シンプルな解決策がCPU数の増加

 今回のテーマはマルチコアである。もともとコンピューターの世界では、CPUのコアをいっぱい並べるという技法は、非常に一般的であった。66回でも書いたが、CPUの処理性能は以下の式で表わされる。

  • P=F×IPC

 PがPerformance(処理性能)で、FがFrequency(動作周波数)、IPCは「Instructions Per Cycle」(1サイクルあたりの処理命令数)となる。Pを引き上げるためには、Fを上げるかIPCを上げるかになるが、Fを上げると同時に消費電力も増えることになり、ある程度以上の動作周波数以上に引き上げるのが放熱の観点から困難、という制約があった。

 一方IPCを引き上げるのはもっと難しい、というのはここまでの連載で紹介したとおり。いろいろな策を講じてIPCを引き上げようとしているが、それでもなかなか上がらない。例えばインテルの場合、1989年に「Intel 486DX」がリリースされた頃は、最大33MHz駆動でIPCはほぼ1命令/サイクルであった。

 一方2006年に「Core 2 Duo」がリリースされた際には、Extreme Edition向けは最大2.93GHzまで動作周波数は上がったものの、IPCはやっと3命令/サイクルが実現できた程度である。17年をかけて動作周波数は約90倍になったのに、IPCはたったの3倍でしかないということからもIPCを引き上げることの難しさがわかるだろう。

 そこで次なるアイデアとして出てきたのが「CPUの数を増やす」である。前回のSMT(同期マルチスレッディング)と発想は似ているが、先に登場したのは当然こちらである。複数のCPUがあれば、その性能は以下の式となる。

  • P=n×F×IPC

 ここでのnは「Number of CPUs」、つまりCPUの数である。33MHzのCPUであっても、3つ並べれば見かけ上は100MHzのCPU1個と同じ処理性能になるという、これまた単純なアイディアである。

 そんなわけで、x86の場合、P54C世代の「Pentium」で、初めてCPUの数を増やした構成がサポートされた。図1の左が通常のシングルCPU構成とすると、最初のデュアルCPUは図1右のようになる。FSBを共有する、という形で2つのCPUが同時に動作するようになったわけだ。

図1

図1 Pentium世代での基本的なシングルCPU構成(左)とデュアルCPU構成

 この構成、「Pentium Pro」では図2のように、最大4CPUまでを標準サポートするようになった。「標準サポート」という微妙な言い方をしたのは、4つという制限はあくまでインテルの提供するチップセットを使った場合で、サードパーティの中には6~8CPUまでの構成をサポートする製品もあった。

図2

図2 Pentium Pro世代の4CPUのシステム構成

 ちなみに、8個までのCPUをサポートするチップセットに「Profusion」という製品があった。Corollary社というチップベンダーが開発したのだが、インテルは1997年に同社を買収。その後インテルでも発売したにも関わらず(関連リンク)、今では黒歴史扱いされているという、ちょっと可哀想な運命をたどっている。

前へ 1 2 3 4 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン