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

1989年4月リリース
Intel 80486
Intel 80486
AI生成コンテンツ / AI-generated contents
Intel 486 は、IntelIntel 80386 の後継製品として開発した32ビットCPUである。命令体系は 80386 と互換性を保ちながら、性能向上を重視した新設計となっている。
当初 80486 と呼ばれていたが、その後 486DX と呼ばれるようになる。

目次

Intel 80486
Intel 80486
AI生成コンテンツ / AI-generated contents
80386 はIntel初の32ビットx86 CPUで、複雑な命令の一部を内部のマイクロコードで処理していた。80486 は互換性を保ちつつ、よく使う命令をワイヤードロジック化した実行部と5段パイプラインを採用し、多くの整数命令を1クロックで処理できるようにした。また、80386 では別売の 80387 が担った数値演算機能と、8KBのキャッシュも同じチップに統合した。
このため、トランジスタ数は80386 の約27万5千個から約120万個へ増えたが、同じクロック周波数なら整数処理性能はおおむね2倍に高まった。

パイプライン処理

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

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

486DXと486SX

486SX
486SX
初代80486は、Intelのx86 CPUとして初めて数値演算コプロセッサ(FPU)をCPU本体と同じチップに内蔵した。従来の80386では、浮動小数点演算を高速化するには別売の80387と専用ソケットが必要だった。1チップ化すればCPUとFPUの通信をチップ内部で行えるため高速になり、基板も単純になる。CAD、表計算、科学技術計算など、実数計算を多用するソフトの性能を標準構成で高められることも、内蔵する理由であった。
浮動小数点ベンチマーク 487SX使用
(486DX-25相当)
486SX-25のソフトウェア
エミュレータ
16ビット Whetstone16.761.00
32ビット SPECfp9215.001.00(推定値)
表はIntelが1992年(平成4年)に公表したiCOMP用データを基に、25MHzの486SXによるソフトウェア処理を1.00として比較した相対性能である。487SXは486DX相当のCPUなので、486DX-25の値を用いた。16ビットのWhetstoneでは約16.8倍である。32ビットのSPECfp92は、当時利用できるエミュレーション環境が限られたため、IntelがFPU使用時の値を15で割って見積もった推定値であり、実測値ではない。

一方、当時のワープロや多くの業務ソフトは整数演算が中心で、FPUをほとんど使わなかった。そこでIntelは1991年(平成3年)、FPUを使えなくした低価格版486SXを投入し、従来品を486DXと呼び分けた。初期の486SXは486DXと同じダイでFPUを無効化した製品であり、のちにはFPU部分を持たない小さなダイも作られた。これにより、FPUが不要なパソコンの価格を下げ、80386搭載機や安価な互換CPUに対抗できた。

FPUが必要になった利用者向けには487SXが用意された。名称はコプロセッサだが、実体は完全な486 CPUであり、装着すると元の486SXを停止させ、システム全体の処理を引き継いだ。

クロックダブラ

486DX2
486DX2
1992年(平成4年)3月、486DX にクロックダブラを内蔵し、システムクロック周波数はそのままで、CPU内部クロックを2倍にした 486DX2 を発売する。最初の 486DX のクロック周波数は25MHzであったが、これを内部50MHzにした。
つまり、CPUとメモリなどを結ぶ外部バスのクロックは変えずに、CPU内部だけを高速化したのである。

キャッシュの必要性

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

そこで、80486はCPUとメモリの間に、CPU内部で高速に動作するSRAM製の8KBキャッシュを内蔵した。一度読み込んだ命令やデータがキャッシュに残っていれば、低速なメインメモリを再び読む必要がない。初代80486の内蔵キャッシュは、書き込みをキャッシュとメインメモリの両方へ反映するライトスルー方式である。ライトバック方式は後の486世代で採用された。
当然、プログラムの動作によってはキャッシュが不足することもあるだろう。すべてのメモリを 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、省電力機能を強化した 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
1985年エイコーンARM132bit6MHz
1986年MIPSR200032bit15MHz
1987年ザイログZ28016bit12MHz
1987年モトローラMC6803032bit50MHz
1988年MIPSR300032bit40MHz
1989年インテル8048632bit100MHz
1989年インテルi86032bit50MHz
1990年モトローラMC6804032bit40MHz
1991年MIPSR400064bit200MHz
1992年DECAlpha 2106464bit200MHz
1993年IBM, モトローラ, ApplePowerPC 60132bit120MHz
1993年インテルPentium32bit300MHz
1994年IBM, モトローラ, ApplePowerPC 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/M4/M564bit3.49GHz
2023年インテルCore Ultra 9 / 7 / 564bit5.1GHz

参考サイト

(この項おわり)
header