Loading AI tools
インテル製x86系マイクロプロセッサで386の後継製品 ウィキペディアから
Intel486(インテルよんはちろく)は、インテルのx86系マイクロプロセッサで、386の後継製品である。
Intel486 DX-33 | |
生産時期 | 1989年4月から2007年9月28日まで |
---|---|
生産者 | Intel, IBM, AMD, テキサス・インスツルメンツ, Harris_Semiconductor, UMC, SGSトムソン |
CPU周波数 | 16 MHz から 100 MHz |
FSB周波数 | 16 Mhz から 50 Mhz |
プロセスルール | 1μm から 0.6μm |
命令セット | x86 (IA-32) including x87 (except for "SX" models) |
ソケット | Socket 1, Socket 2, Socket 3 |
パッケージ |
PGA 196ピン PQFP 208ピン SQFP |
前世代プロセッサ | Intel 80386 |
次世代プロセッサ | Intel Pentium (1993年) |
コプロセッサ | Intel 80487SX |
当初の名称は「80486」で、後に廉価版の「486SX」をラインナップに追加した際に、従来の80486を「486DX」と改名し、同時にそれらの総称として「i486」の商標を使うようになった。"i" を付けたのは、米国では番号だけの名前は商標権を取れない(登録できない)ためである。インテルが現在使用している名称はIntel486プロセッサ (Intel486 Processor) である。
486は386の上位ないし後継のx86マイクロプロセッサである。基本的な命令セットは386と同様にIA-32と後に呼ばれることになったもので、BSWAPなどいくつかの命令の追加がある。
実装としては、性能向上を重視した全くの新設計である。他に、新アーキテクチャの最初の実装のため386で発覚したいくつかの問題点の修正、NDP(数値演算コプロセッサ)の標準での内蔵、x86系としては初のオンダイキャッシュ、などが主な特徴に挙げられる。なお、NDPを内蔵しない廉価版もある。
比較的複雑なx86およびIA-32命令セットを実装するため、8086以降386までは機能のほぼ全てをマイクロプログラム方式で実装していた。しかし、RISCブームなどもあり、インテルとしても性能向上は至上命題だったことから、ほとんどの命令をワイヤードロジックによる実行とし、5段パイプラインも動作周波数の向上を狙ったものである。周波数の向上と同時に、多くの命令のサイクル数も386と比べ大幅に削減され、基本的な命令は1サイクルとなった。またあまり本質的ではないが、当時の利用者にとって影響が大きかったものとしては仮想86モード中での入出力命令の高速化などもある。なお、乗算だけは42サイクルとなり386より1クロック遅くなった。ただし、複雑な動作を行う一部の命令についてはマイクロプログラムを併用している。浮動小数点モジュールは、統合によるオーバヘッドの削減による高速化のみで、パイプライン化はしていない。
486系のプロセッサではロットによってCPUID命令を搭載しているものとそうでないものが混在しており、インテルはフラグレジスタを用いた判別法を示している[1]。
CPUID命令の有無は32ビットフラグレジスタ (EFLAGS) の第21ビットで確認できるようになっており、このビットが変更可能であれば、CPUID命令でプロセッサの種類を判別できる。ただしEFLAGSの上位ビットは80386以上のプロセッサにしか存在しないため、事前に80386以上のプロセッサであることを確認してからアクセスする必要がある(詳細はIntel 80386を参照)。
CPUID命令が使用できない場合でも80486で追加されたEFLAGS第18ビットのAC (Alignment check) フラグで80386と80486は区別でき、このビットがセット可能であれば80486以上のプロセッサであると判断できる。また80386と同様に、286方式でリセットしたときのDXレジスタの内容からCPUIDにおけるEAX=1相当のプロセッサ・シグニチャの情報を得られる場合がある(詳細はIntel 80286およびIntel 80386を参照)。
80486では公式には6個の一般命令が追加されており、うち3つがCPUキャッシュ関連である[注 1]。そのほか、前述のCPUID
のように非公開命令やロットによって搭載された命令も存在する。またシステム関連ではテストレジスタにTR3,TR4,TR5が追加されているため、これらを読み書きするMOV命令にもそれらに対応した新たなコードが有効になっている。
BSWAP (Byte swap) CMPXCHG (Compare and exchange) INVD (Invalidate cache) INVLPG (Invalidate TLB entry) WBINVD (Write back and invalidate cache) XADD (Exchange and add)
当初80486で32ビットのフラグレジスタ (EFLAGS) に追加されたフラグは上述のAC (Alignment check) だけだったが、上述のように後にCPUID命令の判別フラグも追加されている。
なおACビットはアラインメント(整列)チェックに使われるフラグである。80486では新たに例外17 (0x11) のフォールトとしてアラインメントチェック割り込みが新設されている。例えばワードデータなのに奇数アドレスといった非整列なオペランドを検知するなどした場合にこの割り込みが発生する。この機能を有効にするには現在の特権レベル (CPL) が3である必要があり、さらにフラグレジスタのACフラグのほかに、CR0レジスタに追加されたAM (Alignment mask) ビットを適切にセットしておく必要がある。
CR0・CR3レジスタのいくつかのビットには機能が追加された。
以下のPWTとPCDはページング有効時に、ページングされないバスサイクル中に外部ピンに出力される。
またテストレジスタにはCPUキャッシュのテストに使われるTR3・TR4・TR5が追加された。さらにTR7レジスタにもPL,LRU,PWT,PCDの各ビットが新たに設けられた。
デバッグレジスタにおいては80386ではDR7レジスタのLE・GEビットがセットされていると実行速度を落とす仕様があったが、80486ではこのビットが無視されるようになり、L0-L3がG0-G3のどれかがセットされていれば実行速度を落とすように変更された。
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.