Intel 80486はワイヤードロジックで高速化

1989年4月リリース
Intel 80486
Intel 80486
80486 は、Intel80386 の後継製品として開発した32ビットCPUである。命令体系は 80386 と同じ32ビット IA-32 であるが、性能向上を重視した新設計となっている。
当初 80486 と呼ばれていたが、その後 486DX と呼ばれるようになる。

目次

Intel 80486
Intel 80486
80386 は、Intel初の32ビットCPUであるが、それまでのx86プロセッサの設計を受け継ぎ、ほとんどの機能を、CPU内のプログラムによって処理するマイクロプログラム方式だった。だが、IA-32 の複雑な命令の処理に時間がかかり、16ビットCPUの 80286 よりも遅いという事態に陥っていた。
そこで、80486では、ハードウェアによる物理的な結線で処理を実行するワイヤードロジック方式を導入した。また、80386 では 80387 として別売していた数値演算コプロセッサをも取り込んだ。
このため、80386 で275,000個だったトランジスタ数は1,200,000個と4倍以上に膨れあがり、ダイのサイズも大きくなったが、同クロックで 80386 の2倍以上の処理速度を叩き出すことに成功した。

パイプライン処理

80486では、インテルは初めてパイプライン処理を導入した。
この時代のCPUは、命令を読み込んで実行するまで、次の5段階(ステージ)の処理を行う。
1) Fetch
次に処理すべき命令を、メモリーやキャッシュから取得する。
2) Decode
取得した命令を解釈し、どんな処理を実行すべきかを決定する。
3) Data Fetch
必要なら、処理に必要なデータを取り込む。
4) Execute
処理する。
5) Writeback
処理結果を出力する。
CPUの処理
CPUの処理
これまでは、この5つあるステージを1まとまりにして、順次実行していた。かりに1つのステージに1サイクルの時間がかかるとすると、5ステージでは1×5=5サイクル。この処理を3階実行すると、5×3=15サイクルかかる計算になる。
パイプライン処理
パイプライン処理
80486では、5つあるステージの1つずつを独立して動かせるようにした。これをパイプライン処理を呼ぶ。パイプライン処理を実行するには、5つのステージが同期して動かなければならない。そこで、各ステージの間にラッチ回路を挿入し、同期をとれるようにした。
その結果、従来なら15サイクルかかっていたところを、半分以下の7サイクルにすることができる。

ただ、7サイクルというのは理想値で、実際には、「3) Data Fetch」でメインメモリからデータを読み込むときに「待ち」が発生し、後続の処理も「待ち」に入ってしまう。
そこで、80486では、後述するキャッシュを導入することで、この「待ち」を極力減らせるようにした。

486DXと486SX

486SX
486SX
1991年(平成3年)9月、数値演算コプロセッサ機能を省いた廉価版の 486SX を販売開始し、従来品は 486DX と呼ぶようになった。

数値演算コプロセッサとして 487SX を併売したが、実はこれは 486DX そのもので、487SX を投入すると、486SX の機能が停止するようになっていた。

クロックダブラ

486DX2
486DX2
1992年(平成4年)3月、486DX にクロックダブラを内蔵し、システムクロック周波数はそのままで、CPU内部クロックを2倍にした 486DX2 を発売する。最初の 486DX のクロック周波数は25MHzであったが、これを内部50MHzにした。
つまり、CPUが外部のコンポーネント(主にメモリコントローラやノースブリッジ)と通信するための通信速度(帯域)である FSB(Front Side Bus)は変えずに、CPU内部だけを高速化したのだ。

キャッシュの必要性

ところが、このことが逆に足枷となり、システム全体の処理速度を上げにくくなってしまった。
それまでは、CPUは速くても 30MHz程度。対するメモリーチップは 10~15MHz程度。x86命令はマイクロコードに展開されていたため、1命令を実行するのに2~4サイクルかかるため、メモリアクセスはCPUクロックの 2~4分の1程度あれば十分だった。
ところが 80486のワイヤードロジックにより1命令の実行時間が縮まり、さらに 486DX2ではCPU速度が FSB に対して純粋に 2倍になったため、メモリ・アクセス待ちが目立ってきた。

そこで、CPU とメモリの間に CPU と同じスピードで動作する SRAMキャッシュとして介在させ、最初の読み込み時にはメモリから CPU とキャッシュの両方に読み込み、2度目からはキャッシュだけを読めば済むようにすることでメモリ読み込みを高速化した。書き込みについては、まず CPU からキャッシュへ書き込み、次にキャッシュからメモリに書き戻すライトバック方式を採用した。
当然、プログラムの動作によってはキャッシュが不足することもあるだろう。すべてのメモリを SRAM にすればよさそうなものだが、SRAM は1ビットにつきトランジスタが6~8個必要になる。これに対して DRAM は1個で済む。486DX には 1ビットあたり6個のトランジスタから成る 8KBのキャッシュが搭載されたが、486DX のトランジスタ数は約120万個で、そのうち 6×8(bit)×8KB=38.4万個と、全体の3割以上のトランジスタがキャッシュに相当する。このようにキャッシュはコストが高くつくのである。
DX4ODP
>DX4ODP
その後、3倍クロックダブリングの 486DX4、486SXの2倍クロックダブリングの 486SX2、486DXの省電力版 486SL といった派生CPUが販売された。
一方、AMDやCyrixは486互換CPUを開発・販売し、Intelの市場を脅かしていた。
そこでIntelは、既存の 486DX486SX と交換するだけで 486DX2486DX4 相当の性能を提供するオーバードライブプロセッサの販売を始めた。

互換プロセッサたち

i486 の時代、互換CPUが次々と登場した。それほどパソコンが急速に普及した時代だった。

AMD(アドバンスト・マイクロ・デバイセズ)は、1993年(平成5年)4月、486DX 互換の Am486 DX-40(40MHz)を発売した。その後、486DX2486DX4486SX2 互換のCPUを発売する。同クロックの i486 とほぼ互角の性能で、回路的にもほぼ互換を保っており、安価というメリットがあった。
互換CPUといっても、AMD はIntelから正式にライセンスを受けているわけではなく、Intelは 80386 の時代にAMDを著作権侵害で訴えた。そこでAMD80386 を力業でリバース・エンジニアリングしたうえで、独自のマイクロコードを実装した Am486 を世に送り出した。さらに、マイクロコード著作権についての裁判も、AMD が逆転勝訴した。

Intelにとって AMD 以上に厄介なのが Cyrix (サイリックス)  であった。他のシリコンバレー企業と異なり、テキサスでTI(テキサス・インスツルメンツ)の支援を得ており、1993年(平成5年)5月、自力で i486 互換CPUとなる Cyrix Cx486 を発売した。その後、486DX2486DX4486SX 互換のCPUを発売し、1997年(平成9年)にはグラフィックやオーディオコアを搭載した MediaGX を発売してIntelを超えたが、時代はすでに Pentium へ移行しており、ナショナル・セミコンダクターへ吸収された。

IBMはIntelとクロスライセンス契約を結んでおり、80386SX 以降、合法的な互換CPUとして、1993年(平成5年)、IBM486BLX を発売した。

台湾UMCは、1994年(平成6年)、i486 のマイクロコードをそのままコピーした UMC U5S を発売するが、すぐさまIntelに訴えられ、アメリカでの販売ができなくなった。その後、和解が成立するが、このシリーズは生産中止となった。

主要スペック

項目 仕様
メーカー Intel
発売開始 1989年4月
トランジスタ数 120万
データバス 32ビット
アドレスバス 32ビット
物理メモリ 4GB
CPUクロック 25~100MHz
プロセスルール 1.0μm~0.6μm
ソケット Socket1, Socket2, Socket3
最大消費電力 3.68W

CPUの歴史

発表年 メーカー CPU名 ビット数 最大クロック
1970年Garrett
AiResearch
MP944 (軍用)20bit375KHz
1971年インテル40044bit750KHz
1974年インテル80808bit3.125MHz
1975年モステクノロジーMOS 65028bit3MHz
1976年ザイログZ808bit20MHz
1978年インテル808616bit10MHz
1979年モトローラMC68098bit2MHz
1979年ザイログZ800016bit10MHz
1980年モトローラMC6800016bit20MHz
1983年NECV3016bit16MHz
1984年インテル8028616bit12MHz
1985年インテル8038632bit40MHz
1985年インテルi96032bit100MHz
1985年サン・マイクロシステムズSPARC32bit150MHz
1986年MIPSR200032bit15MHz
1987年ザイログZ28016bit12MHz
1987年モトローラMC6803032bit50MHz
1989年インテル8048632bit100MHz
1989年インテルi86032bit50MHz
1991年MIPSR400064bit200MHz
1990年モトローラMC6804032bit40MHz
1993年インテルPentium32bit300MHz
1994年IBM, モトローラPowerPC 60332bit300MHz
1995年サイリックスCyrix Cx5x8632bit133MHz
1995年AMDAm5x8632bit160MHz
1995年サン・マイクロシステムズUltraSPARC64bit200MHz
1999年IBM, モトローラPowerPC G432bit1.67GHz
1999年AMDAthlon32bit2.33GHz
2000年インテルPentium 432bit3.8GHz
2001年インテルItanium64bit800MHz
2003年AMDOpteron64bit3.5GHz
2003年インテルPentium M32bit2.26GHz
2006年SCE,ソニー,IBM,東芝Cell64bit3.2GHz
2006年インテルCore Duo32bit2.33GHz
2006年インテルCore 2 Duo64bit3.33GHz
2008年インテルCore i9/i7/i5/i364bit5.8GHz
2017年AMDRyzen64bit5.7GHz
2020年AppleM1/M2/M3/M464bit3.49GHz
2023年インテルCore Ultra 9 / 7 / 564bit5.1GHz

参考サイト

(この項おわり)
header