『Pentium DとCore Duo』

はじめに

Pentium DとCore DuoはともにIntelの投入したデュアルコアプロセッサですが、同じデュアルコアプロセッサでも内容はかなり異なる製品です。ここではこの2つのデュアルコアプロセッサの違いについてすこしお話します。

Pentium DとCore Duoの違い

Intelはデスクトップ向けプロセッサでPentium Dというデュアルコアプロセッサを投入していましたが、このPentium DはAthlon 64のデュアルコア投入に危機感を抱いたIntelが急遽作ったものという話は有名で(開発者自身が認めてる)、構造的にはPentium 4をそのまま二つ搭載した形になっています。従って、単純にPentium 4をデュアルプロセッサ構成にしたもの(Pentium 4はデュアルプロセッサには対応してないので同等コアのXeonで考えると分かりやすい)と言えます。この為コアそのものはもちろんの事、2次キャッシュやFSBが(Preslerコアに至ってはダイまで)別々になっていました。

これに対してCore Duoは当初からデュアルコアを前提に設計されており、FSBが1つに纏められ、2次キャッシュは共有する仕様となっているのが特徴です。ちなみに、Athlon64はFSBは1つに纏められていますが2次キャッシュは別々になっています。

2次キャッシュが共有していると何がいいの?

コア間のデータ転送

2次キャッシュが別々になっていると、例えば『1つのコア』から『もう片方のコア』にデータを送る時にFSBを経由して転送することになります。例えば3.2GHzのPentiumDのFSBは800MHzなので実に1/4の速度で動作するFSBを経由することになりボトルネックになることは明らかです。これに対して2次キャッシュ共有型の場合は、コアと同速度2次キャッシュを介してデータのやりとりができるので処理速度の向上が見込めます。

しかし、ここで重要なのは『1つのコア』から『もう片方のコア』にデータを送ることが発生するかどうかです。例えば、2つのコアでそれぞれ別々のアプリケーションを走らせているような場合は、当然扱っているデータが別のものなのでほとんどデータを送ることはありません。従ってこの点に関してはほとんど性能向上は見込めないでしょう。

逆に、マルチスレッドに対応した1つのアプリケーションを2つのコアで走らせているような場合には頻繁に起こりうるので大幅な処理速度の向上が見込めるのです。

コア間でのキャッシュサイズの融通

さらに2つのコアの2次キャッシュの境界線がないので、2次キャッシュを多く必要としているコアにより多くの2次キャッシュを割り当てることができます。

例えばシングルタスクのアプリケーションを実行していて『片方のコア』しか使っていなかった場合、2次キャッシュが独立している場合は『使われていないコア』側にある2次キャッシュも利用することができません。2次キャッシュが共有型の場合は『使われているコア』にすべての2次キャッシュを割り当てることができるのです。

2次キャッシュの配分をコントロールする仕組みなので、独立型のそれぞれのコアに搭載された2次キャッシュの合計と共有型2次キャッシュの容量が同じならば共有型の方が有利になりますが、独立型の片方のコアに搭載された2次キャッシュの容量と共有型の2次キャッシュの量が同じならば独立型の方が有利になります(あくまで処理性能に関して)。

ただし、2次キャッシュを効率よく使うという点では同じ性能ならば2次キャッシュを少なくすることができるので、コストや消費電力の面でも有利になります。

FSBが一つだと何がいいの?

Intelのデュアルプロセッサは従来から1つのFSB上に2つのプロセッサが乗っかってバスを共有する形状となっていて、対するAMDのAthlonMPやOptronなどは、1つのFSB上に1つのプロセッサという構成になっています。前者は配線などが楽なため安価で容易に作ることができる反面、性能では不利になり、後者はこの逆になります。

Pentium Dではこの点を活用して、FSBまで(ほとんど完全に?)独立した2つのコアを1つのプロセッサ内に収め、内部で2つのコアのFSBが1つのバス上に乗っかる構成となっています。つまり、見た目こそデュアルコアプロセッサになっていますが、構成はほとんどデュアルプロセッサに近い構成でした。

FSBが2つのコアで共有されると、どうしても1つの時に比べてFSB自身の高速化が難しくなります。Intelのハイエンド向けプロセッサ『Pentium4 Extreme Edition』でFSBが1066MHzまで引き上げられたのに対して、後継の『Pentium Extreme Edition』でFSBが800MHzに下がった(9x5番台で1066MHzに再び上げられたが)のがそれをよく表していると思います。

また、Intelは同一コアの派生品をサーバーやワークステーション向けのXeonシリーズとして出荷しています。Pentium Dのように内部で2つのコアが1つのバスを共有するCPUをデュアルプロセッサ構成にすると、1つのバスに2つのCPUが共有してさらに内部で2つのコアが共有する構成となってしまって、いかにも高速化が難しくなりそうです。(現にXeonではかなり開発期間をかけてFSBを一つに纏めたXeonを出荷していて、くしくもこれが最後のNetBurstアーキテクチャのCPUとなった)

FSBが1つに纏められたConroeシリーズは、『Pentium Extreme Edition』のみだったFSB 1066MHzをすべての製品でサポートし、WoodcrestシリーズではFSB1333MHzまでサポートするなどその効果が現れていると言えるでしょう。

2次キャッシュ共有でFSBが1つのPentium DならOKなの?

Core Duoのデュアルプロセッサとしての特徴は主に記の2次キャッシュが共有型である点と、FSBが1つに纏められている点です。しかし、PentiumDに2次キャッシュ共有型にしてFSBを1つに纏めれば問題ないかというとそうでもありません。

そもそもデュアルコアはコアを2個搭載しているわけですが、1つの時と同じだけの処理能力を持ったコアを2つ搭載すれば、大ざっぱに言えば消費電力も2個分となります。CPUは動き回ったりするものではないので、消費された電力はそのまますべて熱になり、静音製や小型化の大きな障壁になります。

Pentium 4のコアをデュアルで搭載したPentium Dは良くも悪くもPentium 4の2つ分の製品で、単体でも充分問題となっていた発熱を致命的なまでに引き上げてしまいました(単純に2倍ですから大変です)。CoreDuoでは同じくデュアルコアですが、こちらはPentium Mをコアを使っていて、消費電力を引き下げることに注力したモバイル向けのコアの為、消費電力が2倍になっても問題にはならない程度だったのが決定的になったようです。

おそらく、2次キャッシュとFSBが独立していても、Pentium Mのコアを二つ使ったプロセッサだったならば、Athlon 64とそれなりに渡り合えたのではないかと思われます。CoreDuoではそれに加えて2次キャッシュを共有するという新しい技術を投入してさらに高速化した形となりました。AMDの次の一手に注目したいところです。