連載

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

第8回 PCのエンジン「プロセッサ」の歴史(2)〜性能向上に勤しんだ486/Pentium世代
2. RISCのアーキテクチャに近づくPentium

元麻布春男
2002/08/31


大幅にマイクロアーキテクチャが変更されたPentiumファミリ

 1993年3月に最初の製品が登場したPentiumファミリは、Intel486ファミリの次の世代となるプロセッサだったが、ソフトウェア・モデルは基本的にIntel386やIntel486と変わらなかった。むしろ主眼は性能の向上で、特にIntel486では果たせなかったRISCプロセッサとの性能差を詰めることが重要視された。そのために、マイクロアーキテクチャにも大幅な改善が施されることとなる。

Pentium(開発コード名:P5)
x86アーキテクチャとして初めてスーパースカラーをサポートしたプロセッサ。写真は最初に登場したP5のもので、0.8μm BiCMOSプロセスで製造され、310万トランジスタが集積されていた。

 Pentiumプロセッサの最大の特徴は、動的な分岐予測*6を備えたスーパースカラー・アーキテクチャのマイクロプロセッサである、ということだ。簡単にいえば、1クロック・サイクルに1つ以上の命令を実行できるプロセッサである。Pentiumプロセッサの内部には、UパイプとVパイプという2本の命令パイプラインがあり、最大で1クロック・サイクル当たり2個の整数演算命令を処理できる。ただし、すべてのx86命令を処理可能なUパイプに対し、Vパイプによる処理は簡単な命令に限定されており、完全な2命令の並列処理が実現されていたわけではない。しかし、スーパースカラーという、当時のRISCプロセッサの主要な機能をサポートしてみせたことで、このころ市場にあったx86に代表されるCISCプロセッサ終焉論に歯止めをかけることはできたように思う。

*6 分岐予測(branch prediction)とは、プログラム中にある分岐命令で分岐するか否かを事前に予測することで、効率よくパイプラインに命令を処理させる技法のこと。分岐予測を持たない場合、プログラム中で分岐が生じた際、分岐先が決まるまでパイプラインを止めて、分岐先の命令からパイプラインに流し直す必要がある。しかし分岐予測を持てば、分岐前のプログラムの流れやそれまでの分岐結果など基に分岐先を予測して、分岐先と予想されるプログラムの実行が行える。分岐予測が当たっていた場合、そのまま処理が継続できるため、分岐命令で処理を止めておくよりも大幅な性能向上が実現できる。しかし、分岐予測が外れた場合は、処理を分岐命令まで戻して、再処理を行うことになる。そのため、分岐予測のヒット率が高いほど、このロスを小さくできる。

 そのほかにもPentiumでは、内蔵の1次キャッシュをデータ用と命令用で独立させ、それぞれ8Kbytesのライト・バック・キャッシュにしたり、外部データ・バス幅を従来の32bitから64bitに拡張したり、といったいくつもの改良が施された。また、Intel486でパイプライン化されていた整数演算ユニットに加え、Pentiumでは浮動小数点演算ユニットもパイプライン化された。これでも、当時のハイエンドRISCプロセッサには、浮動小数点演算性能で追いつくことはできなかったが、その差は確実に縮小した。また、互換プロセッサ・ベンダ製を含むx86プロセッサ全体の中で、Pentiumは抜きん出た浮動小数点演算性能を誇ることになる。これはAMDのAthlonプロセッサが登場するまで基本的に変わらない。

コア・アーキテクチャのRISC化で性能を高める

 全体的に見て、Pentiumにつぎ込まれた高速化技術は、RISCプロセッサが高性能化のために切り開いてきた技術をx86プロセッサに応用したもの、という印象が強い。Intel自身も、Pentiumプロセッサについて、CRISCという造語を用いていたほどだ。そして、CRISCという言葉でも明らかなように、Pentiumプロセッサのアーキテクチャは、RISC的な技術を取り入れたCISCプロセッサであり、x86プロセッサのコア・アーキテクチャの完全なRISC化というわけではない。それよりもっと重要なことは、しかるべき性能向上がIntel486に対して実現されていたことである。その点に、名より実を常に取るIntelの社風が現れている、というのは筆者の思い込みだろうか(同じことが、製造プロセスにこなれたCMOSではなく、高速化が期待できるBiCMOSを選んだことにも現れているような気がする)。

 実際の性能だが、当時Intelが自社製プロセッサの性能指標としていたiCOMP値は、Pentium-60MHzで510、Pentium-66MHzで567となっている(数値が大きいほど高速)。ベストセラーとなっていた66MHz動作のIntelDX2プロセッサのiCOMP値は297だから、Pentiumの性能は1.7倍から1.9倍に該当する。ただし、このiCOMP値は浮動小数点演算性能を含んだものであり、パイプライン化された浮動小数点演算ユニットを持つPentiumに有利なものとなっている点に注意したい。特に、当時一般向けのアプリケーションで浮動小数点演算性能を必要とするものが極めて限られていたことも、iCOMP値による性能比較がユーザーの体感以上にPentium有利に感じられた側面はある。だが、それでもPentiumが同一動作クロックのIntel486ファミリに対し、2倍近い大きな性能向上を実現したことは間違いない。

最初のP5は不発

 さて、このように性能向上を果たしたPentiumプロセッサだが、最初のリリース(開発コード名P5)は、あまり高い評判を得られなかった。その最大の理由は、0.8μm BiCMOSプロセスにより製造されるP5はダイ・サイズが非常に大きく、Intel自身が積極的に価格の引き下げを行わなかったことだろう。事実、そのデビューは1993年3月だが、当初は1992年の秋の発表を予定していた。しかし(いまでは信じがたいことに)、当時のIntelは現在ほど高い製造能力を持っていなかったため、主力をIntel486から格段にダイ・サイズの大きなP5に切り替えると、プロセッサの供給量が需要に対して足りなくなる可能性があったため、半年近くリリースを遅らせたほどなのである。

 また、購入する側も、Intelが間もなく製造プロセスを0.8μmから0.6μmに縮小したプロセッサ(P54C)を出荷することを知っていた。そして、プロセッサの電源電圧がそれまでの5Vから3.3Vへ変更されるため、マザーボードなどプラットフォームの変更が避けられないことが知れ渡っており、買い控えのムードが生じたことも否めない。加えて、P5をサポートしたチップセットである430LX(Mercury)は、第1世代のPCI対応チップセットであり、例えばPCIバスの性能がスペックほど高くないなど、最初の実装に不可避な問題があった。そのうえ、まだ市場にPCI対応カードが出揃っていない、という不運があった。かといってPentiumにVL-Busは不釣合いである(「第5回 本家IBM PCの歴史(3)〜ローカルバスの興亡 2. VL-Busの限界とPCIへの移行」参照)。P5の発表から約1年後、P54CとIntelDX4がリリースされると、両者に挟み撃ちされる格好となり、P5は大きな商業的成功をおさめることができなかった。

Pentiumの本格的な普及はP54Cから

 それに対して開発コード名「P54C」は、Intelとユーザーの双方が「本命」と考えていたPentiumプロセッサであった。トランジスタ数がP5より若干増えているのは、APIC(Advanced Programmable Interrupt Controller)のサポートなどデュアルプロセッサ構成を標準でサポートするためのマイナーチェンジが施されたことによる。ただしこのころ、デュアルプロセッサ構成を実現するには、2つのプロセッサのS-Step(一種の製造ロット)を揃える必要があるなど、最初の実装にありがちなトラブルもあった。当初、100MHz動作品はほとんどなく、主力は90MHz品だったが、P5と異なりこちらは商業的な成功をおさめた。また当初はデュアルプロセッサ構成をサポートした高価な430NX(Neptune)チップセットとの組み合わせだったが、約10カ月後にリリースされた430FX(Triton)チップセットが当時としては優秀で、Pentiumの普及を後押しした。Intelのチップセットが市場に君臨するようになったのは、この430FXからだろう。一時は、PCといえばPentium-90MHz、という状況さえ生まれたほどだ。Pentium-90MHz〜133MHzに430FXチップセットでWindows 95を動かす、というのが1995年後半から1996年前半にかけて、最もポピュラーな組み合わせであった。

Pentium(開発コード名P54C)
P5の後継として登場したPentiumプロセッサの1種。P5より1世代進んだ0.6μm BiCMOSプロセスで製造され、320万トランジスタが集積されていた。

 その後、Pentiumの動作クロックは順調に上がっていくが、途中でプロセッサ用ソケットの変更が行われ、Socket 5からSocket 7へと切り替えられる。Socket 7は、高クロックのPentiumで消費電力が増大するのに対応すると同時に、I/O電圧とコア電源電圧が異なるデュアルボルテージ・プロセッサ(具体的にはMMX Pentium)に対応するソケットだ。基本的には133MHzまでのPentiumはSocket 5で、それ以上の動作クロックのPentiumとMMX PentiumはSocket 7で使用する、という切り分けであった。ただし、市場には、デュアルボルテージをサポートしないSocket 7マザーボード、などというものも存在したほか、後にサードパーティの互換プロセッサ・ベンダがSocket 7を拡張したため、ソケットとプロセッサの関係は、非常に複雑になってしまった。

Pentiumファミリで使用されたプロセッサ・ソケット(左:Socket 5、右:Socket 7)
赤い矢印の先を見ると、Socket 5にはピンの穴がないのに、Socket 7にはピンの穴があることが分かる。これはソケットの仕様に合致しないプロセッサの誤装着を防ぐのが目的だった。


マルチメディア向け命令セットを実装したMMX Pentium

 間にPentium Proを挟んで1997年1月に登場したのがMMX Pentiumだ。正式名称は「Intel Pentium Processor with MMX Technology」である。MMX Pentiumの最大の特徴は、もちろんその名前のとおり、MMX命令をサポートしたことにある。MMX命令は、整数データ型を扱うSIMD命令セットで、SSESSE2に連なるSIMD拡張命令の最初のものだ。用途として動画やグラフィックス処理、音声の合成や圧縮といったメディア関連のアプリケーションを想定しており、MMXはMulti Media eXtensionの略だと考えられている。

 MMX Pentiumが登場した当初、MMX命令を使った有効なアプリケーションがほとんどなく、その有効性は未知数であった。ソフトウェアMIDIなど、あるにはあったが、出荷されたばかりで高価なプロセッサで処理すべきアプリケーションとは思いにくかったのだ。現在では、大半のソフトウェアDVDプレイヤーをはじめ、多くのアプリケーションがMMX命令のサポートを動作条件に挙げている。逆に今度はMMX命令をサポートしたプロセッサはあまりにも普遍的すぎて、逆に誰も注目しない、という状況になっている。

MMX Pentium(開発コード名P55C)
x86アーキテクチャのIntel製プロセッサとしては、初めてSIMD命令セット(MMX)を実装したもの。0.35μmプロセス技術で製造され、450万トランジスタが集積されていた。

 それはともかくMMX Pentiumは、たとえMMX命令を利用しなくても、十分意義のあるプロセッサだった。MMX Pentiumでは、1次キャッシュがPentiumの2倍である32Kbytes(データ16Kbytes +命令16Kbytes)に増量されたことに加え、2ウェイ・セットアソシエイティブからヒット率の高い4ウェイ・セットアソシエイティブに改善された。また、実行ユニットのパイプラインも5段から6段に増えると同時に、UパイプとVパイプで同時に処理可能な命令の組み合わせが拡張された。こうした改良により、トランジスタ数も若干増えたが、MMX Pentiumの性能は、同一クロックのPentiumプロセッサを20%近く上回ることになった。また、次世代のP6コアがデスクトップPC向けに登場した後も、MMX PentiumはノートPC向けのプロセッサとして使われ続け、製品寿命が実質的に5年を超える長寿命のプロセッサとなった。

製品名 Pentium Pentium MMX Pentium モバイルMMX Pentium
発表日 1993年3月 1992年3月 1994年3月 1997年6月
開発コード名 P5 P54C/P54CS P55C −/Tillamook
データ・バス幅 64bit 64bit 64bit 64bit
物理メモリ空間 4Gbytes 4Gbytes 4Gbytes 4Gbytes
製造プロセス 0.8μm BiCMOS 0.6μ /0.35μm BiCMOS 0.35μm CMOS 0.35μ/0.25μm CMOS
トランジスタ数 310万個 320万個 450万個 450万個
内部クロック周波数 60M/66MHz 75M〜200MHz 133M〜233MHz 133M〜300MHz
外部バス・クロック周波数 60M/66MHz 50M/60M/66MHz 66MHz 60M/66MHz
FPU(浮動小数点演算ユニット) 内蔵 内蔵 内蔵 内蔵
内蔵1次キャッシュ 命令8Kbytes+データ8Kbytes(ライト・バック) 命令8Kbytes+データ8Kbytes(ライト・バック) 命令16Kbytes+データ16Kbytes(ライト・バック) 命令16Kbytes+データ16Kbytes(ライト・バック)
SIMD命令 MMX MMX
対応ソケット Socket 4 Socket 5/7 Socket 7
備考   ノートPC向けに低電圧化されたバージョンも存在した。    
表区切り
Pentiumプロセッサ・ファミリの主な仕様

 さて次回は、P6マイクロアーキテクチャの先駆けだった「Pentium Pro」から、Pentium IICeleronについて解説してみたい。記事の終わり

 
 
 INDEX
  第8回 PCのエンジン「プロセッサ」の歴史(2)〜性能向上に勤しんだ486/Pentium世代
    1.コアへの機能統合で性能を高めたIntel486
  2.RISCのアーキテクチャに近づくPentium
 
 「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 記事ランキング

本日 月間