第3回 CPUの今とこれからを支える周辺の技術と装置
これまでCPUの電気的な構造やしくみ、論理的な構造を解説しました。CPU編の最後は、2006年現在のCPUのトレンドとCPUのはたらきをフォローする周辺の装置や技術を紹介します。クロックの高速化一辺倒だったCPUの高性能化にマルチコアやHTテクノロジーなどさまざまな技術が適用されるようになりました。今回は、今のCPUに採用されている注目すべき技術と今後のCPUの動向を占う技術について解説します。
クロックの高速化は微細化技術に結びつき、小型化すればするほど高速化が実現します。しかし、同時に消費電力も増え、発生する熱量も増加します。2004年初頭からCPUのクロック周波数がほとんど変わらないのはこの発熱のためです。
CPUの高性能化において、クロック高速化→微細化技術→発熱→放熱→さらなるクロック高速化・・・という進化のパターンに変化が生じています。
CPUの過去から今へ
i4004が登場してから約30年でCPUはビット数の比で16倍、クロック比で7000倍以上という飛躍的な進歩を遂げています。
CPUの性能向上には、クロック周波数を速くする、一度に扱える命令数やデータ量を増やすなどさまざまなアプローチが考えられます。2004年まではクロック高速化のニーズが高く、そのために微細化技術が進み、高い集積度が実現し、ダイの面積が小さくなり、1枚のウェーハからとれる有効なダイの数が増えるというような相乗効果が実現していました。この高度成長期にも似たCPUの性能向上の歴史を概観します。
Intel社のi4004からPentium4までのCPUを表にして、ハードウェアでの製造技術や新技術の成果による性能向上の歴史を振り返ってみましょう。表の項目タイトルが持つ意味は後述します。
Intel社製CPUの性能比較 |
型番 |
発表 |
ビット数 |
クロック |
プロセス |
集積度 |
ピン数 |
電源 |
ダイサイズ |
i4004 |
1971 |
4ビット |
500KHz |
10µm |
2,300 |
DIP16pin |
5V/9V |
12mm2 |
8080 |
1974 |
8ビット |
2MHz |
6µm |
6,000 |
DIP20pin |
|
19.6mm2 |
8086 |
1978 |
16ビット |
5MHz |
3µm |
29,000 |
DIP40pin |
5V |
|
i80386 |
1985 |
32ビット |
16MHz |
1µm |
275,000 |
PGA132pin |
5V |
|
Intel 486 |
1989 |
32ビット |
20MHz |
1µm |
1,200,000 |
PGA168pin |
5V |
165mm2 |
Pentium |
1993 |
32ビット |
60MHz |
0.8µm |
3,100,000 |
Socket4
273pin |
5V |
294mm2 |
Pentium2 |
1997 |
32ビット |
233MHz |
0.35µm |
7,500,000 |
Slot1
242端子 |
2.8V |
203mm2 |
Pentium3 |
1999 |
32ビット |
450MHz |
0.25µm |
9,500,000 |
Socket370 |
2V/3.3V |
127.9mm2 |
Pentium4 |
2001 |
32ビット |
1.30GHz |
0.18µm |
4,200,000 |
Socket423 |
1.7/1.75V |
217mm2 |
PentiumD945 |
2006 |
64ビット |
3.40GHz |
0.065µm |
|
LDA775 |
|
140〜160mm2 |
|
歴代のCPUのうち、性能の変わり目がわかりやすい型番のCPUの仕様を古い順に並べたものです。
- ビット数
CPUが一度に処理できるビット数を増やせば処理性能は向上します。32ビットCPUで2度に分けて行っていた処理を64ビットでは一度で処理できるようになります。
ビット数が増えると、CPUはより大きなメモリのサイズが扱いやすくなります。これをメモリ空間とかアドレス空間と呼びます。32ビットのPentium では4GB(ギガバイト=109バイト)ですが、64ビットItanium2では16TB(テラバイト=103ギガバイト)に増えています。本来64ビットでは16EB(エクサバイト=109ギガバイト)ですが、Itanium2ではアドレスバスが44ビットに抑えられています。ちなみにi4004は4KB(212バイト=4096バイト=4KB)です。
- クロック
CPUの動作はクロック周波数で決まります。i4004からPentium 4までの30年で7000倍以上に高速化されています。クロック周波数が高速になればなるほどCPUの動作は高速になります。2006年7月現在3.8GHzが最高速です。
- プロセス
製造プロセスルールとも言います。CPUチップの微細化技術の指標となる数値です。ウェーハに生成されるもっとも細かい単位を示す数値です。i4004で10µm、最新のPentium 4は65nm(ナノメートル=0.065µm)を実現しています。
ちなみに、人間の髪の毛は直径が60〜80µmくらいです。
- 集積度
CPUチップに集積されているトランジスタの数です。プロセスルールが細かくなればなるほど集積できるトランジスタの数は多くなります。CPUに搭載されるキャッシュの大容量化に伴い、集積されたトランジスタのかなりの数がキャッシュメモリに使用されています。
- ピン数
性能向上とは直接関係はありませんが、CPUのビット数の増加や機能の拡張、集積度の向上はCPUとマザーボードを結ぶピン数の増加に顕著に表れます。i4004では16本だったピン数が64ビットPentiumでは50倍近くになっています。
- 電源
クロックの高速化と微細化技術により、CPUの高性能化につれて電源電圧は低くなっています。発熱(消費電力)がクロック周波数に比例するため電源電圧を下げて発熱を抑えようとしていることと、微細化技術によりCPU内部の素子の単位体積あたりの電源電圧が高くなるため素子の破壊を防止するためです。
- ダイサイズ
CPUチップのダイの面積は小さければ小さいほど有利です。
小さいほどクロックの高速化に対応できます。クロック周波数3GHzでは1クロックで信号が進む距離はわずか30cm、それ以上の距離では遅延が発生します。
また、小さいと製造工程での歩留まりがよくなります。例えば、同じ大きさのウェーハからとれるダイの数が5mm×5mmサイズでは30枚で、3mm×3mmサイズでは83枚とれます。歩留まりが50%とすると、5mm×5mmのダイは15枚、3mm×3mmのダイは41枚と大きな差になります。
- キャッシュ
使用頻度の高いデータをCPU内部の高速なメモリに蓄えておくことで、外部の低速なメモリから読み出すための待ち時間を省きます。複数段のキャッシュメモリを内蔵することが多く、CPUに近いものからL1(レベル1)、L2(レベル2)、...と呼びます。i386以降に搭載されており、今日ではL2まで搭載するのが普通になっています。
CPUをより高速に
CPUにはそのときどきの新しい技術が盛り込まれてきました。その中から、現在でも活躍している技術として、CISCとRISC、パイプライン処理、スーパースケーラを紹介します。
CISCとRISC
CISC(Complex Instruction Set Computer)とは「拡張命令セットコンピュータ」の意味で、CPUに対する命令の種類を、増やしたり、高度化したりすることで、処理能力を向上させるものです。
例えば四則演算は1つの加算器があれば実現できます。「C=A×B」という掛け算であれば「AをB回加算する」と計算します。ところがこの方法では、加算器しかないというハードウェアの制約をカバーするためアルゴリズムが複雑になります。「乗算器」をCPU側に用意しておき、それに対応した「A×B」という命令を用意すればプログラムはシンプルになります。
このように、プログラムを煩雑にする演算や機能をCPU側のハードウェアで用意し、簡単な命令だけで実現させるのがCISCの基本的な考え方です。
一方、RISC(Reduced Instruction Set Computer)とは「縮小命令セットコンピュータ」の意味で、命令の種類を少なく抑えて内部回路をシンプルにし、1つ1つの命令を高速に実行することで処理能力を向上させるものです。
RISCの概念は、1975年に米IBMワトソン研究所のJohn Cockeによって考え出されました。彼は、当時のコンピュータにおけるプログラムの各命令の使用頻度を調査し、プログラムの8割は全命令のうちの約2割の限られた命令しか使用されていないことを発見しました。この結果に基づいて、使用頻度の高い命令だけに制限し、命令セットの数を減らし、それに伴って削除された複雑な命令処理回路の代わりに、シンプルで高速な回路にするのがRISCの基本的な考え方です。
CISCとRISCの特徴をまとめると、次のようになります。
項目 |
CISC |
RISC |
命令数 |
多い |
少ない |
命令長(ビット数) |
可変 |
2、3種類に固定 |
オペランド数 |
基本的に2オペランド |
基本的に3オペランド |
命令の実行時間 |
命令により可変 |
固定 |
レジスタの数 |
少ない |
多い |
メモリアクセス |
制限なし |
基本的にはロード/ストア命令のみ |
|
RISCコンピュータには、モトローラのM88000シリーズ、サン・マイクロシステムズのSPARCシリーズ、DECのAlpha、AIM(Apple、IBM、Motorola)のPowerPCなどがあげられます。
RISCは、CISCと同じ処理を実行させるとより多くのプログラムが必要になるといった問題があり、しかも高性能化をはかる過程で次第に命令が複雑になり、RISCらしさを失ってしまいました。
x86系CPUは、CISC+RISCというアーキテクチャーに進化しています。次の図のように、プログラム自体は従来のCISCのままで、CPU内部で独自のRISC命令に変換して実行する方法をとっています。
パイプライン処理
CPUの性能を飛躍的に上げた手法です。
次の図は、非パイプラインの場合です。フェッチ→デコード→エクゼキュート→ライトバックという4段階を経て1つの命令を処理し終えてから、次の命令に取りかかります。
フェッチが終わってデコードが始まると、ライトバックが終わるまでフェッチは遊んだ状態です。そこで、フェッチが処理を終えてデコードに移るとすぐに次の命令のフェッチを開始することで、ムダな待ち時間を減らし、処理を高速にするというのがパイプライン処理の考え方です。
次の図は、パイプライン処理の例です。
フェッチ回路は命令1のフェッチが終わってデコード回路に渡すと、すぐに命令2のフェッチを開始します。次段の処理が終わるのを待つことなく自分は次の処理に移ります。こうして処理が大幅に高速化されます。
パイプラインはさらに発達し、動作サイクルをさらに細かく分けて各段ごとの処理を単純化することで、より高速に動作させることができます。4段の動作サイクルを8段にしたものをスーパーパイプライン、Pentium4に搭載されている20段を超えるパイプラインをハイパーパイプラインと呼んでいます。パイプライン処理はクロックの高速化による処理速度の向上に有利な手法です。
スーパースケーラ
CPUの実際の処理では、整数演算+メモリアクセス、小数演算+メモリアクセスなどの組み合わせが多く、これらを別々の実行ユニットで処理すれば高速になるという考え方です。
現在のスーパースケーラは、上図よりもエクゼキュートユニットを、さらに細かく分けて、多くの実行ユニットを置いて処理速度をさらに高めています。また、同時に複数の命令を取り込み、デコード後にスケジュールという機構で命令の実行順を並べ替えながら実行するしくみになっています。この実行順のコントロールをアウトオブオーダーと呼んでいます。
複数のCPUを使う新しいテクノロジー
クロック周波数を上げることによる性能向上は今、限界点に達しています。そこで、考えられたのがクロック1回あたりの処理能力を向上させることです。従来、1クロックで1回だったものを2回、3回分の仕事をさせることです。そのための手法として、CPUを2個以上用意して同時に動かす方法が実用化されました。これには三つの方法があります。
なお、こうした複数のCPUコアの性能を発揮するためには、アプリケーションの対応も重要です。通常のアプリケーションは問題なく動作しますが、「マルチコア対応」を選択することで、よりいっそうの性能向上が見込めます。
なお、アプリケーションによっては複数CPU・CPUコアが複数の場合、ライセンスも複数必要という場合がありますので、注意が必要です。
マルチCPU
1台のコンピュータに複数のCPUを搭載し、複数のCPUで分担して処理することにより、処理性能を向上させることができます。また、一方のCPUに障害が発生しても他方が活きていれば動作を続けられるメリットもあります。そのため、高安定性や高負荷のサーバやワークステーションに用いられる例が多いようです。
マルチCPUではそのパフォーマンスを引き出すために比較的厳しい条件があります。
アイテム |
条件 |
CPU |
マルチCPUに対応していること。(Pentium/Xeon/AthlonMP/Opteronなど)
使用するCPUはすべて型番、FSB、コア電圧が同一であること |
OS |
マルチCPUに対応していること。
Windows NT/2000、WindowsXP Professional、FreeBSD、Linuxなど。
代表的な未対応OS(Windows98/Me、WindowsXP Home) |
アプリケーション |
マルチCPUに対応していること。
Adobe Photoshop6.0、Adobe Premiere 6.0、Autodesk 3D Studio Max、Microsoft BackOffice、IIS 5.0など
未対応でもマルチCPUの性能が発揮されないだけで動作しないわけではありません。 |
メモリ |
レジスタードメモリといわれるサーバ・ワークステーション用の信頼性の高いもの。 |
電源 |
複数の高速CPUに電源を供給するため、出力の大きなものが必要。 |
|
システムを複数台用意するのに比べると、CPU以外の部分が共用できるためコストが安くすむというメリットはありますが、その反面でCPUを2個以上搭載するためにシステムの外形が大きくなり、電源も大型のものが必要です。なおかつ対応するアプリケーションも使用するというのでなければ、必ずしもコストパフォーマンスがよいとは言えません。
マルチCPUには次の2通りの構成方法があります。
- ASMP(Asymmetric Multiple Processor)
非対称型。OSのカーネルを実行、ユーザーアプリケーションの実行というように、搭載されたCPUそれぞれの役割が決定されているマルチCPUの構成方法。
- SMP(Symmetric Multiple Processor)
対称型。搭載されているCPUを基本的に同等なものとして動作させます。カーネルプロセスやユーザープロセスの区別なく、複数のCPUを使って同時に処理を行うことができます。
HTテクノロジ(ハイパースレッディングテクノロジ・Hyper Threading Technology)
1つのCPUでありながら、論理的に、もしくは仮想的に2つCPUがあるように見せる技術です。
アーキテクチャーステートと呼ばれるOSからのデータの窓口を二つ用意し、命令やデータを2倍取り込めるようにしたものです。これには次のような背景があります。
Pentium4は1クロックでの処理を増やすより、クロックを上げて処理回数を上げることを優先しています。そのことで、一般的なアプリケーションではPentium 4内部の機構が平均で3割しか使われず、CPU資源が空いています。そこで、命令やデータを2つの窓口から受け付けて余裕ある資源を効率的に使おうというわけです。
HTテクノロジーに対応するOSは、WindowsXPとLinux(カーネル2.4系列)だけです。WindowsXPはProfessionalでもHomeでも動作します。逆にマルチCPU対応のWindowsNTやWindows2000では動作が保証されていません。アプリケーションは特にHTテクノロジー対応でなくても、複数のアプリケーションが同時に実行されているような状態では効果は期待できます。3次元CGや動画のエンコードなど、マルチCPUやマルチスレッドに対応したアプリケーションを使用するときはさらに効果が発揮されます。
HTテクノロジーによる性能向上は、25%と公表されています。逆に、大量のファイルの読み書きなどの元々CPUよりも遅い動作の多いものや、効率的に組み上げられたアプリケーションでは、速度は向上しないとされています。
CPUの使用効率や応答性の向上など優れた面が多く、今後のPentium4ではほぼ標準的な機能となっていくと見られています。
マルチコア
1個のCPUに複数個のCPUコアを搭載する方法です。クロック周波数を高めることによる性能向上が一時的にしても限界に達している今、CPUの性能向上の切り札とされているのが、このマルチコアCPUです。次の図のように1チップのCPUの中に2個のCPUコアを内蔵しています。内蔵のしかたで性能が変わってきます。次の図の上段はデュアルコアとして初めて登場したPentium Dのデュアルコア構造です。CPU全体を2個まるごと1チップに収めた状態です。それに対して、2006年夏現在比較的新しいCoreDuoのデュアルコア構造が下段です。キャッシュやインターフェース部分を共有し、2個のCPUコアどうしの通信も高速化されることが分かります。2008年以降に予定されているItanium2ではCPUコアが4個搭載されると予想されています。
前項で説明したHTテクノロジー(Hyper Threading Technology)を搭載したCPU(Pentium Extreme Edition 840など)ではHTテクノロジーを有効にするとOSからは4CPUで動作しているように見えます。また、マルチコアで注意しなければならないのは、アプリケーションによってはCPUが複数になるのでライセンスも複数必要という場合があることです。
マルチコアCPU搭載パソコンのメリットは、マルチスレッド処理に対応しているプログラムを実行する場合に、かなりの高速化が見込めることです。Windows XPはOSレベルでマルチスレッド処理に対応していますが、アプリケーションは製品ごとに対応・非対応が分かれます。対応製品では、最大でシングルコアCPUの1.8倍程度の処理速度が実現できるといわれます。
多くのアプリケーションを同時に起動している場合にも、それぞれの処理が「速く」はならなくても、全体の動作が「遅くならない」メリットは確実にあります。
Intel社ではマルチコアの出荷比率が2006年中に50%を超えるとしています。
CPUをフォローする機能や技術
CPUの内部や周辺には、CPUのはたらきを助ける機能や技術が数多く見受けられます。その中から、代表的なものとして、MMUとFPUを紹介します。
MMU(メモリマネジメントユニット)Memory Management Unit
MMUは、アプリケーションなどのソフトウェアから見える論理的なアドレス空間と、物理的なメモリを別々に扱うこと(つまりアドレス変換)ができます。物理的なメモリをページまたはセグメントと呼ばれるブロックごとに分割して管理し、これを論理アドレス空間に割り当てます。こうすると、実際のメモリより大きい仮想的なメモリ空間をソフトウェアに提供できます。メモリが足りなくなったらディスクなどの2次記憶で代用します。
MMUのもう1つの仕事はメモリ保護です。OS本体などが格納されているシステム領域にアプリケーションがアクセスできると、システムの破壊を招いてしまう。そこでシステム領域はアプリケーションからアクセスできないようMMUで制限します。これによりアプリケーションが暴走してもシステムへの影響を最小限に抑えることができる。x86系CPUにはMMUが内蔵されています。
FPU(浮動小数点演算ユニット)
浮動小数点はコンピュータで数値を表現する方法のひとつです。「1.602×10の-19乗」という数値の場合、「1.602」の部分を仮数部、「-19」の部分を指数部といいます。このように数値を符号、仮数、指数の3種類に分けて表現する方法です。小数の有効な桁を仮数部によって表し、指数部によって小数点の位置を表現しています。
浮動小数点は、表現できる数値の範囲が広く、科学技術計算などで利用されていますが、固定小数点よりも計算に時間がかかりますので、一般的には、FPUという浮動小数点演算を行う専用のプロセッサ(CPUに内蔵されているものもある)を用いて計算します。
x86系CPUでは、i486からCPUに内蔵されるようになりました。それまでは、コプロセッサや数値演算プロセッサという名称でオプション扱いでした。
これからのCPU−消費電力との戦い−
CPUはクロック3GHzを超えたあたりから、消費電力の増加と発熱の壁に直面しています。Intel社の対応をみてみます。
発熱の源
CPUの発熱は動作に必要な電力以外に、リーク(漏れ)電流と導線の抵抗が原因としてあげられます。動作に必要な電力は、クロックとともに消費されますので、クロック周波数が上昇すれば消費電力も上昇します。リーク電流は、電流を完全には遮断できないトランジスタの性質上不要に流れてしまう電流のことをいい、動作するしないにかかわらず流れ続けます。CPUは何千万個というトランジスタで構成されており、その間は導線で結ばれています。これら導線はµm単位の細さで抵抗を持つためジュール熱を発生します。中でも動作周波数の上昇を困難にしている一番の原因はリーク電流といわれます。CPUのトランジスタ数が少なかった時には、リーク電流は、あまり問題になりませんでした。ところが現状のCPUのように数千万個ともなると個々のリーク電流はわずかでも、CPU動作時には無視できないほどの電流量になります。リーク電流の割合は、製造プロセス130nmでは20%、90nmでは40%、65nmでは50%ほどになると言われます。
見えてきた解決策
しかし、Intel社は、アーキテクチャーの改良や電力管理機構の組み込みによる細かな制御などに加えて、90nmを65nmプロセスにすると、「トランジスタのパフォーマンスが20%向上し、スイッチング時の消費電力が30%削減できる」と発表しており、クロックの高速化を伴わない微細化技術の中で成果を出し始めています。2006年後半に予定されているサーバ向け「Woodcrest」(開発コード名)は65nmプロセスで現行のXeon 2.8GHz(開発コード名:Paxville)と比較してパフォーマンスが80%向上し、消費電力は35%削減できるとされています。
同じくデスクトップ向けは、「Core 2 Duo」(開発コード名:Conroe)でこの8月に出荷され、現行のPentium D 960 (開発コード名:Presler)と比較してパフォーマンスが40%向上し、消費電力が40%削減されたとしています。
すでに、ノートパソコン向けプロセッサPentium Mによりパフォーマンスを落とすことなく、電力消費を大幅に低下させることに成功しており、同社の最新のデュアルコアCPUであるCore Duo(低電力版15W)は初代Pentium(13W)と同水準としています。
微細化技術は次の次元へ
Intel社では昨年の時点でプロセスルールの主流は90nmから65nmへ移行し、マルチコアCPUの出荷比率が2006年中に50%を超えるとしていました。同社では65nmの次の世代に当たる45nmプロセスにもすでに焦点を当てており、2007年には製造に移行できる見通しを発表しています。45nmへの移行により、65nmと比較して20%の性能向上と30%の電力効率向上が(理論的には)実現可能になると言われます。
Itanium2(開発コード名Montecito)が2006年7月に発表されました。可用性を高める技術として3次キャッシュを1CPUコアあたり12MB搭載しています。稼働中に3次キャッシュに問題が発生しても使用を継続する狙いです。しかし、1CPUコアあたり12MBは巨大です。Itanum2 9050(デュアルコア)では1個のパッケージに24MBの3次キャッシュが搭載されています。そのために集積されたトランジスタは約17億2000万個で、単一のチップに集積したトランジスタ数としては過去最高です。
発表されたばかりのItanium2で最高速クロックは1.6GHzです。CPUが高クロック競争からマルチコアやCPU内部機能の強化、高集積度といった別のテクノロジーによる競争に変貌しつつあることを強く感じさせます。
CPUは32ビットから64ビットへの移行期を迎えており、2006年冬モデルでは、Windows Vistaの発売を控え一般ユーザーへ普及が進むものと思われます。64ビットCPUの本来のパフォーマンスを発揮させるためにはCPUだけでなく、チップセット、メモリ、バス、マザーボード、電源などをよりいっそう強化することが必要です。次回からは3回にわたってバスアーキテクチャーについて解説します。
CPU編 |
|
|
|
|
|
第3回 CPUの今とこれからを支える周辺の技術と装置 |
|
|
バス編 |
|
|
|
|
|
|
|
|
ディスク編 |
|
|
|
|
|
|
|
|
メディア編 |
|
|
|
|
|
|
|
|
All Rights Reserved, Copyright(C) FUJITSUファミリ会
|