連載

IT管理者のためのPCエンサイクロペディア
−基礎から学ぶPCアーキテクチャ入門−

第12回 PCのエンジン「プロセッサ」の歴史(6)〜プロセッサの新時代を開く「Pentium 4」
2. 命令レベルからスレッド・レベルへ並列化の舵を切れ!

元麻布春男
2003/01/30


第2世代のPentium 4をリリース

 逆にIntelは、マーケティング的なメリットを追求した結果、IPCを下げても動作クロックを引き上げやすいマイクロアーキテクチャを採用するという、ユーザー不在の選択をしたのだろうか。確かにWillametteだけを見ていると、そのように思えるが、Intelが5〜6年のアーキテクチャ寿命と、最大10GHzに到達する可能性を見込むNetBurstマイクロアーキテクチャを、そのような理由だけで選択したハズがない。NetBurstマイクロアーキテクチャはIPCの引き上げについて、まったく違うアイデアを持っていたのだが、それは後述するように最近まで明らかにされることはなかった。

 それはともかく、2002年1月にIntelは第2世代のNetBurstマイクロアーキテクチャ採用プロセッサとなるNorthwoodをリリースした。Northwoodコアを用いたPentium 4は、本稿執筆時点において最新のIA-32プロセッサでもある。Northwoodの最大の特徴は、製造プロセスを0.13μmに縮小したことと、それによりオンダイの2次キャッシュを256Kbytesから512Kbytesに拡張したことだ。発表時のニュースリリースでは、2.0A GHzと2.20GHzのみが記載されていたが、実際には1.60A GHzと1.80A GHzも同時にリリースされている。なお、Willametteコアの1.60GHzおよび1.80GHzと区別するため、2次キャッシュが増量されたNorthwoodコアを採用したプロセッサは動作クロック末尾の「A」が付く。

 このNorthwoodコアのリリースと同時に、IntelはIntel 845におけるDDR SDRAMのサポートを開始する。DDR-266PC2100 DIMM)とDDR-200PC1600 DIMM)をサポートしたIntel 845には、新しい名前が与えられるわけでもなく、単にIntel 845 Bステップと呼ばれる。メモリのサポートを除けば、既存のIntel 845と同じであるからだろうが、サポートするメモリが異なる以上、型番くらい変えてもよかったのではないかと思う。

 ちなみにこの2002年1月、Intelはポール・オッテリーニ(Paul Otellini)氏を社長兼COO(最高執行責任者)に選出した。それまでオッテリーニ氏は、アルバート・ユー(Albert Yu)氏と並んでインテル・アーキテクチャ事業本部の本部長を務めていた。マーケティング畑のオッテリーニ氏と、技術畑のユー氏という構成だ。と同時に、技術的な観点からDirect RDRAM路線を推進したユー氏と、マーケティング的観点からそれに批判的だったオッテリーニ氏という構図だったともいわれている。当時、Direct RDRAMには性能で劣るものの、市場シェアでは優位に立っていたDDR SDRAMのサポートがIntel 845に加えられた1月に、オッテリーニ氏が社長に就任したというのは、象徴的なできごとだったといえるかもしれない。

533MHz FSB対応のPentium 4の登場

 2002年5月、IntelはPentium 4(Northwoodコア)の動作クロックを引き上げると同時に、FSBのクロックを533MHzに引き上げた。プロセッサとしての変更は小さいが、FSBの引き上げはチップセットの対応を必要とする。この533MHz FSB対応のPentium 4と同時に発表されたチップセットは、Direct RDRAMに対応したIntel 850のマイナーチェンジ版であるIntel 850Eだ。これだけを見ると、IntelはDirect RDRAMを重視しているようにも受け取れる。しかし、実際はこのタイミングで発表する予定だった開発コード名「Tulloch(タラク)」で呼ばれていた新しいDirect RDRAM対応チップセットをIntelはキャンセルしており、Intel 850Eがとりあえずの対応だったことが分かる。またIntel 850EのサウスブリッジがIntel 850から変更なく、ICH2のままなのも、このチップセットが「つなぎ」的な役割しか期待されていないことをうかがわせる(当時、最新のサウスブリッジはICH4だった)。この後、Intel 850EにはPC1066メモリのサポートが追加されるが、ここでもサウスブリッジの更新は行われず、サポートが収束していくのはだれの目にも明らかになった。Direct RDRAMは、Intelのほか、サードパーティのSiSが行っているが、完全に主流からは外れることとなる。

プロセッサ名 Pentium 4 Pentium 4 Celeron Celeron
発表日 2000年11月 2002年1月 2002年5月 2002年9月
開発コード名 Willamette Northwood Willamette-128K
データ・バス幅 64bit 64bit 64bit 64bit
物理メモリ空間 64Gbytes 64Gbytes 64Gbytes 64Gbytes
製造プロセス 0.18μm 0.13μm 0.18μm 0.13μm
トランジスタ数 4200万個 5500万個 4200万個 5500万個
内部クロック周波数 1.4G〜2GHz 1.6GHz〜 1.7G〜1.8GHz 2GHz〜
外部バス・クロック周波数 400MHz 400MHz/533MHz 400MHz 400MHz
FPU(浮動小数点演算ユニット) 内蔵 内蔵 内蔵 内蔵
内蔵1次キャッシュ 8Kbytes + 12K(uOPs) 8Kbytes + 12K(uOPs) 8Kbytes + 12K(uOPs) 8Kbytes + 12K(uOPs)
2次キャッシュ 256Kbytes 512Kbytes 128Kbytes 128Kbytes
SIMD命令 SSE2 SSE2 SSE2 SSE2
対応ソケット PGA423/mPGA478 mPGA478 mPGA478 mPGA478
表区切り
Pentium 4/Celeronプロセッサ・ファミリの主な仕様

 Intel 850Eの発表からわずか2週間後、「本命」のチップセットであるIntel 845E/G/GLの3種類が発表となる。いずれもDDR-266をサポートしたチップセットで、サウスブリッジにUSB 2.0ホスト・コントローラ機能をサポートするICH4を採用している。2週間早いとはいえ、ICH4を組み合わせてもらえなかったことがIntel 850Eの命運を物語っている。Intel 850Eは、機能上ICH4のサポートも可能であるが、需要やバリデーション(検証)費用などの面からサポートが見送られることになったようだ。

 この3種類のチップセットのうち、Intel 845GとIntel 845GLには、内蔵グラフィックス機能が実装されている。実際にはIntel 845Eは、 533MHz FSBのサポートを加えたIntel 845 Bステップであるのに対し、Intel 845G/GLは新しいチップセット・コアを採用したものだ(前者にあるECCのサポートが後者にはない)。Intel 845GLが外部AGPスロットを設けることができないのに対し、Intel 845Gは外部AGPスロットをサポート可能であることが最大の違いだが、ほかにIntel 845GLでは533MHz FSBのサポートが見送られたという違いがある。これはIntel 845GLが直前に発表されたWillametteコアのCeleron(400MHz FSB)を搭載したエントリPC向け、という位置付けになっていたことが最大の理由だと思われる。2002年9月には、NorthwoodコアのCeleronも投入され、IntelのデスクトップPC向けプロセッサは、完全にNetBurstマイクロアーキテクチャ世代、そして0.13μmプロセス世代に入った。

HTテクノロジがプロセッサを変える

 2002年10月には、Intel 845ファミリはメモリ・サポートにDDR-333(PC2700 DIMM)を加えたIntel 845PE/GE/GVの世代に突入する。この世代では、オリジナルのIntel 845のコア(ECCサポート)は消えてしまう。内蔵グラフィックスをサポートしないIntel 845PEは、Intel 845GEの内蔵グラフィックスを無効にしたものとなる。しかしその代わり、エンタープライズ・プラットフォーム事業本部が、2002年11月にPentium 4向けとしてECCをサポートしたチップセット(E7205)をリリースすることとなる。このE7205は、デュアル・チャネルのDDRメモリをサポートしたものだが、DDRメモリのサポートはDDR-333ではなくDDR-266留まりとなっている。

 こうした準備作業(?)を経て、2002年11月(E7205の直前)にリリースされたのが動作クロック3.06GHzのPentium 4だ。このNorthwoodコアを用いたPentium 4は、PC用プロセッサの動作周波数が3GHzを突破したという記念碑的な意味以外に、Intelが「Hyper-Threadingテクノロジ(HTテクノロジ)」と呼ぶ技術のサポートが加えられた点に特徴がある。HTテクノロジとは、レジスタやバッファといったリソース(アーキテクチャ・ステートと呼ばれる)を追加することで、1つの実行ユニットしか持たないプロセッサを、ソフトウェアからは2個に見えるようにする技術である。マルチプロセッサに対応したOSであれば、HTテクノロジをサポートしたプロセッサを2つのプロセッサと見なして、スレッドの実行が可能である。

 一般にスーパースケーラを採用したプロセッサは、実行ユニット内部に複数の演算器を備えるが、分岐予測の失敗や命令間の依存、キャッシュ・ミスなどの要因により、これらの演算器がフル稼働することはほとんどない。Intelのホワイトペーパーによれば、HTテクノロジを搭載していないPentium 4における演算器の使用率は、35%にすぎないという。HTテクノロジは、プロセッサに複数のスレッドを供給することで、演算器の使用効率を高めようという技術だ。これはすなわち、プロセッサのIPCを高めることにほかならない。

 HTテクノロジ以前のマイクロプロセッサでは、IPCの向上をひたすら同時に処理可能な命令数の向上によって実現してきた(ILP:インストラクション・レベルの並列処理)。スーパースケーラを採用するプロセッサに採用されたさまざまな技術は、そのための努力だ。しかし、このアプローチによるIPCの向上は、上限に達しつつあり、別のアプローチが求められるようになってきた。その1つの方向性がItaniumプロセッサ・ファミリに採用されたEPICだ。しかし、ある意味でEPICは価格や既存のアプリケーションとの互換性(性能を含めた)を重視しない、新しいプラットフォーム向けのプロセッサだからこそ採用できた技術でもある。既存のアプリケーションとの互換性が維持しにくいEPICは、デスクトップPC向けのプロセッサでは採用しにくい。

 HTテクノロジは、以下の2点においてデスクトップPCのような予算に制約のあるシステムでも、IPCの向上が実現できる技術として期待されている。

  1. 実行ユニットを増やさないため、ダイ面積のペナルティが小さく(約5%の増加で済む)、コスト的に既存のプロセッサと大差ない
  2. 異なるスレッド間では命令間の依存性が小さくなり、効率の高い並列処理が期待できる

 HTテクノロジは、これまでのインストラクション・レベルでの並列性を高めるアプローチに対して、スレッド・レベルでの並列性(TLP)を高めるアプローチである。スレッド・レベルでの並列性を上げることで性能を高めるというアプローチに関して、Intelは多くの研究リソースを割いており、今後同社製プロセッサの性能向上に大きな役割を占めることになるハズだ。下図は、2002年10月に開かれたMicroprocessor Research Forumの基調講演で示されたプレゼンテーションだが、性能向上のためのフォーカスがインストラクション・レベルの並列性から、スレッド・レベルので並列性に移り変わったことを示している。

大きな図へ
並列実行の変遷
2002年10月29日に開かれたMicroprocessor Research ForumにおけるJustin Rattner氏の基調講演で示されたプレゼンテーション。将来のIntel Xeonでは、さらにマルチスレッド化が進み、マルチスレッド/マルチコアへと向かうことが示されている。

 現在リリースされているPentium 4のHTテクノロジは、アーキテクチャ・ステートの追加により、同時に2つのスレッドを処理可能になっているが、将来的にはこれが拡張される可能性が高い。アーキテクチャ・ステートをさらに追加して、3つや4つのスレッドを同時処理可能にするというアプローチも考えられるだろうし、実行ユニットを増やすこともあり得るだろう。こうしたマルチスレッドに対応したハードウェアを使ってシングルスレッドのアプリケーションを高速化するための技術の研究も進んでいる。また、スレッド・レベルでの投機実行をサポートすることで、マルチスレッド処理をダイナミックに行う研究も、Intelの社内外で進行中である。その一例として、Carnegie Mellon大学との共同研究プロジェクト「STAMPede」では、スレッド・レベルでの投機実行(Dynamic Thread Level)の可能性と、それに必要なコンパイラやOSサポートについての研究が行われている。HTテクノロジは、TLP世代のほんの入り口にすぎないのだ。

 次回は、サーバ向けプロセッサの歴史を取り上げ、Intelのプロセッサをまとめる予定だ。記事の終わり

  関連リンク
STAMPede Projectに関するページ
 

 INDEX
  第12回 PCのエンジン「プロセッサ」の歴史(6)〜プロセッサの新時代を開く「Pentium 4」
    1.P6からNetBurstへと時代は流れる
  2.命令レベルからスレッド・レベルへ並列化の舵を切れ!
 
 「System Insiderの連載」


System Insider フォーラム 新着記事
  • Intelと互換プロセッサとの戦いの歴史を振り返る (2017/6/28)
     Intelのx86が誕生して約40年たつという。x86プロセッサは、互換プロセッサとの戦いでもあった。その歴史を簡単に振り返ってみよう
  • 第204回 人工知能がFPGAに恋する理由 (2017/5/25)
     最近、人工知能(AI)のアクセラレータとしてFPGAを活用する動きがある。なぜCPUやGPUに加えて、FPGAが人工知能に活用されるのだろうか。その理由は?
  • IoT実用化への号砲は鳴った (2017/4/27)
     スタートの号砲が鳴ったようだ。多くのベンダーからIoTを使った実証実験の発表が相次いでいる。あと半年もすれば、実用化へのゴールも見えてくるのだろうか?
  • スパコンの新しい潮流は人工知能にあり? (2017/3/29)
     スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

System Insider 記事ランキング

本日 月間