連載 IT管理者のためのPCエンサイクロペディア 第8回 PCのエンジン「プロセッサ」の歴史(2)〜性能向上に勤しんだ486/Pentium世代 元麻布春男 |
前回の「第7回 PCのエンジン「プロセッサ」の歴史(1)〜i8088からIntel386までの道のり」では、IBM PCに搭載されたi8088プロセッサから、今日のx86アーキテクチャのベースといえるIntel386プロセッサまでの歴史を振り返ってみた。今回は、引き続き、Intel386の後に登場したPCのプロセッサとして、Intel486ファミリからPentiumファミリまでの歴史とそれらの機能を解説していく。
Intel486 DXの改善ポイント
前回触れたようにIntel386は、Intelアーキテクチャの32bit化と、32bitプロテクト・モードや仮想86モードを含む新しいソフトウェア・モデルを確立したという意味で、記念碑的な存在となった。しかし、それが実際に効力を発揮するまでには一定の時間が必要となる。その一方で、Intel386の課題、すなわち競合する製品に対して性能が不足していることも明らかであった。AMDやHarris Semiconductorといったセカンド・ソースが繰り出してくる高クロック版の80286が前門の虎なら、Microsoftのサポートも得てPC分野に攻め込もうというRISCプロセッサが後門の狼といったところだ。
1989年4月に登場した、Intel386の後継であるIntel486*1プロセッサは、こうした不利な状況を打開する使命を負うことになる。そして、Intel486ファミリのプロセッサは、この難題に対する一定の回答となった。Intel486では、より効果的な整数演算処理のパイプライン化*2や、1次キャッシュ(8Kbytes/ライト・スルー*3)の内蔵などにより、Intel386に比べて性能を改善した。これによりIntel486プロセッサの整数演算性能は、同一動作クロックのIntel386プロセッサに対し40%ほど上回ることとなる。そのころ動作クロックを25MHz以上に引き上げることが難しくなっていたセカンド・ソース製の80286に対して、Intel486はハッキリとした性能マージンを稼ぐことに成功する。すなわち、33MHz動作のIntel486は、80286やIntel386に換算すると46MHz相当となり、性能の点で明らかに異なるクラスのプロセッサとなったのである。
*1 当初の名称はi80486だったが、前回で触れたi80386の改称と同じ理由により、i486DXやi486SXという名称に変わり、そして最終的には、例えばIntelDX2やIntelDX4という具合に改称された。本稿では、特にこれらを区別する必要がない限り、Intel486と呼ぶことにする。 |
*2 パイプライン(pipeline)化とは、命令実行の工程を複数の段階に分割し、各段階をオーバーラップさせて処理できるようにすること。ある命令の実行中に、次の命令の処理にとりかかる、といった具合に、連続する命令が効率よく実行できるようになる。 |
*3 ライト・スルー(write-through)とは、キャッシュへデータを書き込む際、同時にメイン・メモリにもデータを書き込む、という動作方式のこと。書き込み時の性能は向上しないが、制御が簡単になるというメリットがある。 |
このIntelによるIntel486プロセッサの投入と、翌1990年に登場するWindows 3.0の登場で、プロセッサの世代交代は急速に進み、80286は第一線から退くこととなった。これを機会に、自社開発路線に切り替えたAMDを除き、Harris SemiconductorやSiemens Semiconductors(現Infineon Technologies)といったセカンド・ソースはx86互換プロセッサ市場から撤退していくことになった。以後、x86互換プロセッサの中心は、独自開発するベンダに移ることになるが、それについては別途解説する予定だ。
Intel486 DX(i80486) |
x86アーキテクチャとしては初めて浮動小数点演算ユニットを内蔵した32bitプロセッサ。1μmプロセス技術で製造され、120万トランジスタが実装されていた。Intel386 DXの27万5000個に比べてケタ違いにトランジスタ数が増えたのは、1次キャッシュと浮動小数点ユニットを内蔵したことが影響している。 |
外付け数値演算コプロセッサから浮動小数点演算ユニットの内蔵へ
さて、x86アーキテクチャの世界に対しては、性能面でのマージンを確保したIntelだが、対RISCプロセッサとなると、話はそう簡単ではなかった。それでも、Intel486プロセッサの投入で、RISCとの性能的なギャップをある程度縮めることができた。その大きな理由は、Intel486 DXがIntelのx86プロセッサとしては初めて、浮動小数点演算ユニット(FPU:Floating-Point Unit)を内蔵したことによる。現在では考えにくいことだが、Intel386までは浮動小数点演算機能は、外付けのコプロセッサ(数値演算コプロセッサ)で提供されており、プロセッサ本体に浮動小数点演算ユニットは内蔵されていなかったのである。
i8086からIntel386 DXまで、浮動小数点演算ユニットを持たないIntelのプロセッサは、基本的に浮動小数点演算をソフトウェア・ライブラリで処理していた(ソフトウェアによって浮動小数点演算を整数演算に変換していた)。科学技術計算など、それでは性能が十分でないアプリケーションには、プロセッサとペアになる専用の数値演算コプロセッサを併用した。i8086/i8088に対するi8087、i80286に対するi80287、Intel386 DXに対するIntel387 DX、Intel386 SXに対するIntel387 SXといった具合だ。これらx86プロセッサ用の数値演算コプロセッサは「x87」と総称された。また、サードパーティからはx87互換の数値演算コプロセッサが提供されたほか、Weitekというメーカーはx87非互換の数値演算コプロセッサ(Intel386用のWeitek 3167など)をリリースし、一部のCADソフトウェアにサポートされた。
数値演算コプロセッサの例 |
これはi8086用の数値演算コプロセッサ「i8087」。マザーボードやプロセッサ・ボードに設けられた専用ソケットにこのコプロセッサを装着して利用する。日本でも、PC-9801シリーズなどのオプションとして市販されていた。 |
しかし、Intel486 DXではついに浮動小数点演算機能が内蔵された。一般的に浮動小数点演算ユニットやキャッシュ・メモリは、プロセッサと同じダイに内蔵(統合)されると、プロセッサ・コアとのデータ転送速度が大幅に向上して劇的に性能が高まる。Intel486 DXの浮動小数点演算性能は、RISCプロセッサに比べるとまだ見劣りしたとはいえ、以前に比べれば大きく改善された。それと同時に、Intel486 DXで浮動小数点演算ユニットが内蔵されたことで、サードパーティ製数値演算コプロセッサの市場も消えることになり、Cyrixのようにx86互換プロセッサ市場へ進出したり、WeitekのようにWindowsアクセラレータ・ベンダに転進したりといった変動が生じた。
Intel486 SXは浮動小数点演算ユニットの回路を内蔵していた?
とはいえ、この当時のアプリケーション環境では、必ずしもすべてのユーザーが浮動小数点演算性能を求めていたわけではなかった。そこで、廉価版として浮動小数点演算機能を省いたIntel486 SXもリリースされた。もっとも、このIntel486 SXは浮動小数点演算ユニットを本当に内蔵しないのではなく、実際は内蔵された浮動小数点演算ユニットが無効になったIntel486 DXというべきものだった。つまり、浮動小数点演算ユニット自体はダイに残っていて、それが機能しないように無効化されていたのだ。
Intel486 SX |
浮動小数点演算ユニットの機能を持たないIntel486プロセッサ。もっとも、プロセッサ・コアはIntel486 DX相当で、内蔵の浮動小数点演算ユニットの回路を残したまま、それを無効化したものだった。 |
このIntel486 SX用の数値演算コプロセッサとして、Intel487 SXが提供された。ところが、これも実際には単なる数値演算コプロセッサではなくフル・フィーチャーのIntel486 DXであり、Intel487 SXを実装するとIntel486 SXからすべての処理機能がIntel487 SXに移管する仕組みだった。つまり、Intel487 SXを搭載したマシンは、実際にはIntel486 DX相当のプロセッサが2個搭載されているにもかかわらず、1個が無効になるという、何とももったいない構成となってしまう。もちろん、Intel487 SXの価格も高く、多くのユーザーにとってメリットのないものとなっていた。そのせいもあってか、Intelのx86プロセッサで浮動小数点演算ユニットを内蔵しないのは、このIntel486ファミリが最後となった*4。
*4 これにより、動作条件にPentium以上を要求するOSやアプリケーションであれば、わざわざx87の浮動小数点演算をエミュレートするライブラリを持たなくて済む、という副産物も生じた。 |
内部クロック向上の道のりはIntelDX2/DX4から始まった
Intel486ファミリのプロセッサでもう1つ忘れてはならない高性能化技術は、現在では当たり前になった、外部クロックに対する内部クロックの逓倍である。1992年3月にリリースされたIntel486 DX2プロセッサ(後にIntelDX2に改称)は、Intel製x86プロセッサとしては初めて、外部バス・クロック周波数の2倍でプロセッサ・コアを駆動する逓倍技術をサポートした。逆にいえば、Intel486 DXまでのプロセッサは、プロセッサ・コアと外部バスの動作クロック周波数は同一であった。IntelDX2プロセッサは、比較的手ごろな価格と、当時としては優れた性能などにより、大ベストセラーとなった。また、バリエーションとして浮動小数点演算ユニットを内蔵しないIntelSX2プロセッサも提供された。
Intel486 DX2(IntelDX2) |
Intelのx86プロセッサとして、初めて内部クロック周波数が外部クロック周波数より高められた製品。同じ外部クロックのIntel486 DXに比べ、プロセッサ・コアは2倍のクロックで動作する。 |
Intel486ファミリのシリーズとして、次に登場したのはIntelDX4プロセッサである。しかし、実際にIntelDX4がリリースされたのは、次の世代のアーキテクチャを採用したPentiumプロセッサより1年あまりも後の1994年3月のことである。ただ、ここでは同じマイクロアーキテクチャの系統であるIntelDX4を先に取り上げることにする。
IntelDX4の最大の特徴は、内部動作クロック周波数が外部バス・クロック周波数の3倍であることだ。IntelDX「4」だからといって、逓倍率は4倍ではない。また内部クロック100MHzのIntelDX4では、外部クロックは33MHz(逓倍率3倍)だけではなく50MHz(逓倍率2倍)という設定も可能だったが、この構成でリリースされたPCはほとんどなかった。このほかにIntelDX4では、内蔵の1次キャッシュもIntelDX2までの8Kbytesから16Kbytesに拡張された。この効果もあって100MHz動作のIntelDX4は、66MHz動作のIntelDX2に対して5割近く高い性能を確保することができた。
ただIntelは、特にデスクトップPC向けのIntelDX4プロセッサの販売にそれほど熱心ではなく、後述のP54Cプロセッサ(開発コード名)のリリース以降は急速にPentiumへのシフトを進める。IntelDX4は、ノートPCにPentiumが搭載可能になるまでのギャップを埋める存在という印象が強かった。
IntelDX2プロセッサならびにIntelDX4プロセッサの末期(1994年10月以降出荷分)には、内蔵の1次キャッシュにライト・バック・モード*5を実装して性能を高めたWrite-Back Enhanced DX2/DX4というバージョンも登場した。しかし、IntelのPC向けプロセッサのフォーカスはすでにPentiumに切り替わっており、これらは主に組み込み用途で利用された。
*5 ライト・バック(Write-Back)とは、キャッシュにデータを書き込む際、同時にはメイン・メモリへ書き込まず、後で書き戻すという動作方式のこと。ライト・スルーに比べると、制御は難しく複雑だが、総じて性能は向上する。 |
製品名 | Intel486 DX | IntelDX2 | IntelDX4 |
発表日 | 1989年4月 | 1992年3月 | 1994年3月 |
開発コード名 | − | P24 | P24C |
データ・バス幅 | 32bit | 32bit | 32bit |
物理メモリ空間 | 4Gbytes | 4Gbytes | 4Gbytes |
製造プロセス | 1μm CMOS | 0.8μm CMOS | 0.6μm BiCMOS |
トランジスタ数 | 120万個 | 120万個 | 160万個 |
内部クロック周波数(最初) | 20M〜50MHz | 50M〜66MHz | 75M〜100MHz |
外部バス・クロック周波数 | 内部クロック周波数と同じ | 25MHz/33MHz | 25MHz/33MHz |
FPU(浮動小数点演算ユニット) | 内蔵 | 内蔵 | 内蔵 |
内蔵1次キャッシュ | 8Kbytes(ライト・スルー) | 8Kbytes(ライト・スルー) | 16Kbytes(ライト・スルー) |
SIMD命令 | − | − | − |
対応ソケット | Socket 1/2/3 | Socket 1/2/3 | Socket 3 |
備考 | FPUの機能のない「Intel486 SX」も存在した。その数値演算コプロセッサ「Intel487」はIntel486 DXとほぼ等価。 | 内部は外部クロックの2倍動作。FPUのない「IntelSX2」も存在した。 | 内部は外部クロックの3倍動作。 |
Intel486プロセッサ・ファミリの主な仕様 |
次のページでは、Intel486ファミリの後継として、さまざまな技術がつぎ込まれて開発されたPentiumファミリについて解説しよう。
INDEX | ||
第8回 PCのエンジン「プロセッサ」の歴史(2)〜性能向上に勤しんだ486/Pentium世代 | ||
1.コアへの機能統合で性能を高めたIntel486 | ||
2.RISCのアーキテクチャに近づくPentium | ||
「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)
スパコン関連の発表が続いている。多くが「人工知能」をターゲットにしているようだ。人工知能向けのスパコンとはどのようなものなのか、最近の発表から見ていこう
|
|