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では、ハードウェアによる物理的な結線で処理を実行するワイヤードロジック方式を導入した。また、80386 では 80387 として別売していた数値演算コプロセッサをも取り込んだ。
このため、80386 で275,000個だったトランジスタ数は1,200,000個と4倍以上に膨れあがり、ダイのサイズも大きくなったが、同クロックで 80386 の2倍以上の処理速度を叩き出すことに成功した。
パイプライン処理
80486では、インテルは初めてパイプライン処理を導入した。
この時代のCPUは、命令を読み込んで実行するまで、次の5段階(ステージ)の処理を行う。
この時代のCPUは、命令を読み込んで実行するまで、次の5段階(ステージ)の処理を行う。
- 1) Fetch
- 次に処理すべき命令を、メモリーやキャッシュから取得する。
- 2) Decode
- 取得した命令を解釈し、どんな処理を実行すべきかを決定する。
- 3) Data Fetch
- 必要なら、処理に必要なデータを取り込む。
- 4) Execute
- 処理する。
- 5) Writeback
- 処理結果を出力する。
CPUの処理
これまでは、この5つあるステージを1まとまりにして、順次実行していた。かりに1つのステージに1サイクルの時間がかかるとすると、5ステージでは1×5=5サイクル。この処理を3階実行すると、5×3=15サイクルかかる計算になる。
パイプライン処理
80486では、5つあるステージの1つずつを独立して動かせるようにした。これをパイプライン処理を呼ぶ。パイプライン処理を実行するには、5つのステージが同期して動かなければならない。そこで、各ステージの間にラッチ回路を挿入し、同期をとれるようにした。
その結果、従来なら15サイクルかかっていたところを、半分以下の7サイクルにすることができる。

ただ、7サイクルというのは理想値で、実際には、「3) Data Fetch」でメインメモリからデータを読み込むときに「待ち」が発生し、後続の処理も「待ち」に入ってしまう。
そこで、80486では、後述するキャッシュを導入することで、この「待ち」を極力減らせるようにした。
その結果、従来なら15サイクルかかっていたところを、半分以下の7サイクルにすることができる。
ただ、7サイクルというのは理想値で、実際には、「3) Data Fetch」でメインメモリからデータを読み込むときに「待ち」が発生し、後続の処理も「待ち」に入ってしまう。
そこで、80486では、後述するキャッシュを導入することで、この「待ち」を極力減らせるようにした。
486DXと486SX
486SX
1991年(平成3年)9月、数値演算コプロセッサ機能を省いた廉価版の 486SX を販売開始し、従来品は 486DX と呼ぶようになった。

数値演算コプロセッサとして 487SX を併売したが、実はこれは 486DX そのもので、487SX を投入すると、486SX の機能が停止するようになっていた。
数値演算コプロセッサとして 487SX を併売したが、実はこれは 486DX そのもので、487SX を投入すると、486SX の機能が停止するようになっていた。
クロックダブラ
486DX2
1992年(平成4年)3月、486DX にクロックダブラを内蔵し、システムクロック周波数はそのままで、CPU内部クロックを2倍にした 486DX2 を発売する。最初の 486DX のクロック周波数は25MHzであったが、これを内部50MHzにした。
つまり、CPUが外部のコンポーネント(主にメモリコントローラやノースブリッジ)と通信するための通信速度(帯域)である FSB(Front Side Bus)は変えずに、CPU内部だけを高速化したのだ。
つまり、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割以上のトランジスタがキャッシュに相当する。このようにキャッシュはコストが高くつくのである。
それまでは、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
その後、3倍クロックダブリングの 486DX4、486SXの2倍クロックダブリングの 486SX2、486DXの省電力版 486SL といった派生CPUが販売された。
一方、AMDやCyrixは486互換CPUを開発・販売し、Intelの市場を脅かしていた。
そこでIntelは、既存の 486DX や 486SX と交換するだけで 486DX2 や 486DX4 相当の性能を提供するオーバードライブプロセッサの販売を始めた。
一方、AMDやCyrixは486互換CPUを開発・販売し、Intelの市場を脅かしていた。
そこでIntelは、既存の 486DX や 486SX と交換するだけで 486DX2 や 486DX4 相当の性能を提供するオーバードライブプロセッサの販売を始めた。
互換プロセッサたち
i486 の時代、互換CPUが次々と登場した。それほどパソコンが急速に普及した時代だった。

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

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

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

台湾UMCは、1994年(平成6年)、i486 のマイクロコードをそのままコピーした UMC U5S を発売するが、すぐさまIntelに訴えられ、アメリカでの販売ができなくなった。その後、和解が成立するが、このシリーズは生産中止となった。
AMD(アドバンスト・マイクロ・デバイセズ)は、1993年(平成5年)4月、486DX 互換の Am486 DX-40(40MHz)を発売した。その後、486DX2、486DX4、486SX2 互換のCPUを発売する。同クロックの i486 とほぼ互角の性能で、回路的にもほぼ互換を保っており、安価というメリットがあった。
互換CPUといっても、AMD はIntelから正式にライセンスを受けているわけではなく、Intelは 80386 の時代にAMDを著作権侵害で訴えた。そこでAMD は 80386 を力業でリバース・エンジニアリングしたうえで、独自のマイクロコードを実装した Am486 を世に送り出した。さらに、マイクロコード著作権についての裁判も、AMD が逆転勝訴した。
Intelにとって AMD 以上に厄介なのが Cyrix であった。他のシリコンバレー企業と異なり、テキサスでTI(テキサス・インスツルメンツ)の支援を得ており、1993年(平成5年)5月、自力で i486 互換CPUとなる Cyrix Cx486 を発売した。その後、486DX2、486DX4、486SX 互換の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 (軍用) | 20bit | 375KHz |
| 1971年 | インテル | 4004 | 4bit | 750KHz |
| 1974年 | インテル | 8080 | 8bit | 3.125MHz |
| 1975年 | モステクノロジー | MOS 6502 | 8bit | 3MHz |
| 1976年 | ザイログ | Z80 | 8bit | 20MHz |
| 1978年 | インテル | 8086 | 16bit | 10MHz |
| 1979年 | モトローラ | MC6809 | 8bit | 2MHz |
| 1979年 | ザイログ | Z8000 | 16bit | 10MHz |
| 1980年 | モトローラ | MC68000 | 16bit | 20MHz |
| 1983年 | NEC | V30 | 16bit | 16MHz |
| 1984年 | インテル | 80286 | 16bit | 12MHz |
| 1985年 | インテル | 80386 | 32bit | 40MHz |
| 1985年 | インテル | i960 | 32bit | 100MHz |
| 1985年 | サン・マイクロシステムズ | SPARC | 32bit | 150MHz |
| 1986年 | MIPS | R2000 | 32bit | 15MHz |
| 1987年 | ザイログ | Z280 | 16bit | 12MHz |
| 1987年 | モトローラ | MC68030 | 32bit | 50MHz |
| 1989年 | インテル | 80486 | 32bit | 100MHz |
| 1989年 | インテル | i860 | 32bit | 50MHz |
| 1991年 | MIPS | R4000 | 64bit | 200MHz |
| 1990年 | モトローラ | MC68040 | 32bit | 40MHz |
| 1993年 | インテル | Pentium | 32bit | 300MHz |
| 1994年 | IBM, モトローラ | PowerPC 603 | 32bit | 300MHz |
| 1995年 | サイリックス | Cyrix Cx5x86 | 32bit | 133MHz |
| 1995年 | AMD | Am5x86 | 32bit | 160MHz |
| 1995年 | サン・マイクロシステムズ | UltraSPARC | 64bit | 200MHz |
| 1999年 | IBM, モトローラ | PowerPC G4 | 32bit | 1.67GHz |
| 1999年 | AMD | Athlon | 32bit | 2.33GHz |
| 2000年 | インテル | Pentium 4 | 32bit | 3.8GHz |
| 2001年 | インテル | Itanium | 64bit | 800MHz |
| 2003年 | AMD | Opteron | 64bit | 3.5GHz |
| 2003年 | インテル | Pentium M | 32bit | 2.26GHz |
| 2006年 | SCE,ソニー,IBM,東芝 | Cell | 64bit | 3.2GHz |
| 2006年 | インテル | Core Duo | 32bit | 2.33GHz |
| 2006年 | インテル | Core 2 Duo | 64bit | 3.33GHz |
| 2008年 | インテル | Core i9/i7/i5/i3 | 64bit | 5.8GHz |
| 2017年 | AMD | Ryzen | 64bit | 5.7GHz |
| 2020年 | Apple | M1/M2/M3/M4 | 64bit | 3.49GHz |
| 2023年 | インテル | Core Ultra 9 / 7 / 5 | 64bit | 5.1GHz |
参考サイト
- インテルのあゆみ:インテル
- PHPで対数グラフ(ムーアの法則)を描く:ぱふぅ家のホームページ
(この項おわり)

当初 80486 と呼ばれていたが、その後 486DX と呼ばれるようになる。