テクの雑学

第48回 パソコン高速化の決定打? −デュアルコアCPUのしくみ−

過去の記事を整理・一部リライトして再掲載したものです。 古い技術情報や、 現在、TDKで扱っていない製品情報なども含まれています。

2005年4月19日、インテルが世界初の「デュアルコアCPU」となる「Pentium Extreme Edition」を発表してから、早くも1年以上が経ちました。現在ではデュアルコアCPUを搭載するパソコンの種類も増え、価格もこなれてきたことで、次のパソコンはデュアルコアに…と考えている人も多いのではないでしょうか。
 ただし、注意してほしいことがあります。デュアルコアCPUを搭載するパソコンだからといって、すべての動作が速くなるわけではない、ということです。その理由も含めて、今回はデュアル(マルチ)コアCPUについて説明したいと思います。
 

デュアルコアCPUのしくみ

■ CPUコアの基本構造

 「コア」とは、その名の通りにCPUの核となる内部回路です。内部には演算回路、キャッシュメモリ、レジスタといった、演算処理にかかわるユニットが統合的に配置されています。
 現在市販されているCPUでは、CPUクーラーを脱着する際のコア損傷を避けるとともに、放熱効率を高めるための金属板が装着されているためにコアは目視できませんが、PentiumⅢやAthlon XPといった少し古いCPUでは、CPUパッケージの中央部分にコアそのものが見えていました。

 デュアルコアCPUとは、その名の通り、1個のCPUパッケージの上に2個のコアが搭載されているものです。現状では1パッケージあたり2個のコアを搭載しているので「デュアルコア」と呼ばれていますが、今後はクアッド(4)コアなど、より多くのコアを搭載する製品の開発も予定されているため、一般名詞としては「マルチコア」「メニーコア」といった呼び方も根付きつつあります。

 コアの数を増やすメリットは、同じ時間内に処理できる計算の数が増えることにあります。
 OSでもアプリケーションでも、プログラムがCPUによって処理される工程は、以下のような流れが基本になっています。

プログラムをメモリ上にロード(展開)する

CPUがプログラムを処理するための単位「プロセス」が生成される

プロセスを保持する「プロセスメモリ空間」が作られ、物理メモリにマップされる

プロセスメモリ空間の先頭から、プログラムが順次実行される

 Windowsは「マルチタスクOS」とされていて、一見すると同時にいくつものプログラムが走っているように見えます。しかし、特にWindows9x系では、実際に処理できるプロセス(もしくは、後述する『スレッド』)はひとつだけで、他のプロセスは処理の順番待ちをしていなければなりませんでした。

シングルコアCPU




 この待ち時間を減らすことが、すなわち動作の高速化につながります。そのためにできることは、まずCPUの動作速度を高めることです。動作速度が2倍になれば、理論上は同じ処理を半分の時間でこなせることになります。実際には各種のオーバーヘッドなどが生じるため、処理速度は2倍にまでは達しませんが、それでも確実に高速化します。
 もうひとつの手法は、「1クロックあたりの処理効率」を高めることです。CPUのクロック周波数自体が同じでも、1クロックで処理できる「量」を増やせば、その分だけ全体の処理が高速化するわけです。

■ リーク電流とは

 しかし、CPUの設計コンセプト上、動作速度の向上と1クロックあたりの処理効率向上はえてして相反する関係にあります。従来、Intelは(特にPentium 4以降)おもに動作速度の向上を、AMDはおもに1クロックあたりの処理効率向上を重視した設計によってCPUの高性能化を図ってきましたが、クロック周波数が3GHzを越えたあたりで、「リーク電流」の問題に直面し、それ以上の高クロック化が難しくなってしまったのです。

 ここではおおざっぱな説明に留めますが、リーク電流とは、トランジスタの内部で動作とは無関係に漏れ出す電流のことです。
 高速動作のためには、CPUコアをより微細に製造する必要があります。CPUが行なう演算の原理を突き詰めると、「ゲート」のオン/オフということになります。1GHzのCPUが1クロックを刻む時間に、光が進める距離は約30cm。それだけのわずかな時間にオン/オフ動作を行ない、次のゲートに電流を渡すためには、ゲート間の距離が小さい=製造プロセスが微細である方が有利になります。また、製造プロセスが微細であるほど、より低い電圧で駆動できる=動作による発熱を低減できるメリットもあります。
 ところが、微細化と低電圧化が極限まで進んだことによって、ゲートのオン/オフとは無関係なリーク電流が増大、動作の高速化には貢献しないにもかかわらず発熱だけを高めてしまうという、大きな問題が立ちはだかってきたのです。

 

■ デュアルコアCPUの登場

 コンピュータの処理速度を高める手法は、実はもうひとつあります。マシンが搭載するCPUの数を増やして、複数の処理を同時並列的にこなしてしまえばいいのです。
 複数の処理を同時並列的に実行できれば、当然、処理に要する時間は短くて済み、パフォーマンスが向上します。そのような目的で、ワークステーションやサーバでは、従来から物理的に複数のCPUを搭載する「マルチCPU」という構成を持つものが珍しくありませんでした。
 ただし、単に物理的にCPUのコア数が増えただけでは、処理速度の向上幅はあまり高くなりません。プログラム側も、それに最適な構造を採る必要があります。そのため、マルチCPU向けOSやアプリケーションは、プログラムの処理プロセスをより細かい「スレッド」という単位に分割可能な構造としています。
 WindowsもNT系(NT4.0、2000、XPなど)では、OS自体が「マルチスレッド処理」に対応しています。このおかげで、10年ほど前からパソコン向けにもデュアルCPU構成を実現するマザーボードが登場し、ハイエンドユーザーを中心に根強い人気を誇ってきました。

仮想デュアルコアCPU


 しかし、マルチCPUマシンはどうしても高価になりがちです。複数のCPUを搭載しなければならないので、CPUソケットなどの部品点数が増えてしまうことがその理由です。実装する部品点数が増えるということは、マザーボードのサイズも大きくなりがちですから、小型省スペースマシンを作ることも難しくなります。省電力機構を供えないCPUやマザーボードでは、マシン全体の消費電力も大幅に高まってしまいます。
 そこで、より低コストでデュアルCPUに似た効能を実現させることを目的にIntelが考案し、2001年9月に発表したのが、「仮想デュアルコアCPU」です。「Hyper-Threading Technology」(HTT)と命名されたこの技術は、CPUコアを仮想的にデュアル構成とし、ひとつのスレッドを処理する過程で待ち時間が生じた場合、その間に他のスレッドの処理を実行することで、全体の処理効率を高める仕組みです。

 HTTは安価にCPUの性能を向上させる技術として人気を博しましたが、あくまで「空き時間を有効活用する」ものであって、完全な同時並列処理はできません。そこで、その手軽さはそのままに、よりマルチCPU環境に近付くため、次の一手として投入されたのがマルチコアCPUというわけです。
 

デュアルコアCPU

 同じデュアルコアCPUでも、現状ではIntelとAMDで内部構造が異なっています。ごく簡単に言うと、IntelのPentium DやCore Duoは、文字通り2個のCPUをひとつのパッケージに収めたような構造。AMDのAthlon64 X2は、CPU内部にシステム・リクエスト・インターフェース(調停回路)を搭載し、両コア間での作業分担を調整するといった、より本格的な設計を実現しています。
 ただし、両者の構造面には一長一短があり、どちらが優れているとひと言では言えない部分があります。また、もう間もなく登場するIntelの新型CPU「Core2 Duo」では、内部構造が一新され、デュアルコアのメリットがより発揮されやすくなっているようです。

デュアルコアCPUの登場

■ デュアルコアCPUのメリット

 さて、デュアルコアCPU搭載パソコンのメリットはどのようなものでしょうか? まず、マルチスレッド処理に対応しているプログラムを実行する場合は、かなりの高速化が見込めることです。
 現在市販されているデュアルコアCPUパソコンは、OSにWindows XPを採用していますから、OSレベルでマルチスレッド処理に対応しています。アプリケーションは製品ごとに対応/非対応がわかれますが、動画エンコード用ソフトなどは対応製品も多いので、その面では確実に高速処理が可能となるでしょう。上手にマルチスレッド処理に対応した動画エンコード用プログラムを使った場合、さすがに2倍の速度とまでは行きませんが、最大でシングルコアCPUの1.8倍程度の処理速度が実現できます。つまり、従来の約半分の時間でエンコードが終わるわけです。
 また、多くのアプリケーションを同時に立ち上げて作業している場合、それぞれの処理が「速く」はならなくても、全体の動作が「遅くならない」メリットは確実にあります。Windows本体だけでも常時数多くのスレッドが動作していることに加え、アンチウィルスソフトやファイアウォールソフト、TVキャプチャーボードの録画予約プログラムなど、常駐させて使用するプログラムが増えている中、これも見逃せないメリットと言えるでしょう。
 逆に言うと、マルチスレッド対応ではないアプリケーションを使う限りでは、マルチコアCPUのメリットはあまり多くありません。ネットサーフィンやメール、オフィスアプリケーションを使う程度の用途にしかパソコンを使っていない場合、積極的にマルチコアCPUを選ぶメリットは大きいとは言えません。シングルコアCPUパソコンを購入し、デュアルコアCPUパソコンとの差額分でメインメモリを増設したほうが、トータルでは幸せになれるかもしれません。

 ただし、気になるのは、日本で2007年初頭に販売開始と言われる次期Windows「Vista」です。Windows XPもマルチスレッド対応OSでしたから、基本的な動作の面ではそう大きな差が出るとは考えにくいのですが、Vistaで新規に投入される3DデスクトップGUI「AERO」をより快適に使用する上で、マルチコアCPUがどの程度貢献してくれるのか、それともまったく関係ないのか、現時点ではなんとも判断できないところです。
 また、Microsoft Officeの「2007」版では、ExcelやPowerPointなどが大きく変更されているとの話もあります。これらに対するマルチコアCPUのメリットも、現状ではなんとも判断できないところです。

 ごく普通の使い方しかしないとは思っていても、いざ新OfficeやVistaが出てから「やっぱり……」と後悔したくなければ、今夏のボーナスはとりあえず温存しておき、それらが登場してから新しいパソコンを購入するのがいいでしょう。


著者プロフィール:松田勇治(マツダユウジ)
1964年東京都出身。青山学院大学法学部私法学科卒業。在学中よりフリーランスライター/エディターとして活動。
卒業後、雑誌編集部勤務を経て独立。現在は日経WinPC誌、日経ベストPCデジタル誌などに執筆。
著書/共著書/監修書
「手にとるようにWindows用語がわかる本」「手にとるようにパソコン用語がわかる本 2004年版」(かんき出版)
「PC自作の鉄則!2006」「記録型DVD完全マスター2003」「買う!録る!楽しむ!HDD&DVDレコーダー」など(いずれも日経BP社)
 

PAGE TOP