1985年 ねん の発表 はっぴょう 当初 とうしょ の名称 めいしょう はIntel 80386であった。80386専用 せんよう の数値 すうち 演算 えんざん コプロセッサ には80387 がある。仕様 しよう 上 じょう は80287 も接続 せつぞく できるが、そのためにはマシンが80287に対応 たいおう するように設計 せっけい されている必要 ひつよう がある。
1988年 ねん に80386SX(SXはSingle-word eXternal、つまり16ビット 外部 がいぶ バスを意味 いみ する) が80386シリーズに加 くわ わった際 さい に、従来 じゅうらい の32ビット外部 がいぶ バスのプロセッサには区別 くべつ するためにDXをつけてIntel 80386DX(DXはDouble-word eXternal、つまり32ビット外部 がいぶ バスを意味 いみ する)と改名 かいめい した。
また、インテルが80386からセカンドソース を廃止 はいし したため、Am386 などの互換 ごかん プロセッサが出現 しゅつげん し、その対策 たいさく もありi386DXと呼 よ ばれるようになった(数字 すうじ だけでは商標 しょうひょう として登録 とうろく ・保護 ほご できないため)。
ごく初期 しょき の製品 せいひん では32ビット演算 えんざん が正 まさ しく行 おこな われない、仮想 かそう 86モード が動作 どうさ しないという不具合 ふぐあい があったが、当初 とうしょ はMS-DOSなどのソフトウェアが主流 しゅりゅう であり、80286と同様 どうよう に主 しゅ として高速 こうそく な8086/V30[ 注 ちゅう 1] として使 つか われていたために32ビット機能 きのう を使 つか えなくても重大 じゅうだい な支障 ししょう はなかった。PC-9800シリーズ 初 はつ の32ビット機 き 「PC-98XL2 」に採用 さいよう された例 れい では、32ビット機能 きのう がオプション扱 あつか いになっており、「機能 きのう 拡張 かくちょう プロセッサ」を購入 こうにゅう してCPUを交換 こうかん することで32ビット機能 きのう を提供 ていきょう する仕様 しよう だが、機能 きのう 拡張 かくちょう プロセッサは不具合 ふぐあい が修正 しゅうせい された80386そのものである。
80386で採用 さいよう された32ビット命令 めいれい セットや仮想 かそう 86モードはやがて多 おお くのオペレーティングシステム (OS) で徐々 じょじょ に使 つか われるようになっていった。また、Unix系 けい OSであるBSD が移植 いしょく されて386BSD となり、Linux の開発 かいはつ も80386上 じょう で開始 かいし された。
80386DXの内部 ないぶ ブロック図 ず
プロテクトモード とリアルモード の二 ふた つの異 こと なる動作 どうさ モードを備 そな える。80286 ではいったんプロテクトモードに入 はい るとリアルモードに戻 もど すにはリセットが必要 ひつよう であったのに対 たい し、80386ではリアルモードとプロテクトモードを行 い き来 き することができる。また、プロテクトモード上 じょう で複数 ふくすう の8086 を仮想 かそう 的 てき に動作 どうさ させる仮想 かそう 86モード が追加 ついか された。
汎用 はんよう レジスタは32ビットに拡張 かくちょう された。32ビットレジスタはEAX、ESIのように従来 じゅうらい の16ビットレジスタ名 めい に「E」をつけて呼 よ ばれる。従来 じゅうらい の16ビットレジスタに上位 じょうい 16ビットを拡張 かくちょう した形 かたち で用意 ようい されており、下位 かい 16ビットは従来 じゅうらい 通 どお りの16ビット/8ビットレジスタとしてもアクセス出来 でき る。上位 じょうい 16ビットのみを独立 どくりつ した16ビットレジスタとして使用 しよう することは出来 でき ない。
セグメント レジスタは従来 じゅうらい のCS、DS、ES、SSの4個 こ にFS、GSが追加 ついか された。プロテクトモード上 じょう ではセグメントレジスタは単 たん にセグメントアドレスを格納 かくのう するのではなく、メモリ上 じょう のセグメントディスクプリタを指 さ すためのセレクタ[ 注 ちゅう 2] となっており、レジスタサイズは16ビットのままである。オフセットアドレスは従来 じゅうらい と同 おな じく「ベース」、「インデックス」、「符号 ふごう 付 つ き定数 ていすう 」の3項目 こうもく の任意 にんい の組 く み合 あ わせで記述 きじゅつ するが、32bitの汎用 はんよう レジスタ[ 注 ちゅう 3] を用 もち いて記述 きじゅつ する場合 ばあい には必要 ひつよう に応 おう じてインデックス側 がわ に*1
、*2
、*4
、*8
のいずれかの掛 か け算 ざん (スケールファクタ)も記述 きじゅつ できるようになった。
既存 きそん の命令 めいれい が32ビット演算 えんざん に対応 たいおう したほか、多 おお くの新 しん 命令 めいれい が追加 ついか された。レジスタの直交 ちょっこう 性 せい が増 ま し、従来 じゅうらい 「AX は演算 えんざん 用 よう 」「SI、DIはメモリ操作 そうさ 用 よう 」など用途 ようと 別 べつ に対応 たいおう 命令 めいれい が細 こま かく分化 ぶんか していたEAX、EBX、ECX、EDX、EBP、ESP、ESI、EDI合計 ごうけい 8個 こ の「汎用 はんよう レジスタ」がほぼ均等 きんとう に扱 あつか えるようになり、コンパイラ 言語 げんご への対応 たいおう が容易 ようい になった。
レジスタ及 およ び命令 めいれい の拡張 かくちょう はCPUのモードとは独立 どくりつ したもので、プロテクトモード・リアルモードの別 べつ なく使用 しよう 可能 かのう である。従 したが って、リアルモードでも32ビットプロセッサとして動作 どうさ し32ビット幅 はば のレジスタやデータを扱 あつか えるが、64KBを超 こ えるアクセスを実行 じっこう すると一般 いっぱん 保護 ほご 例外 れいがい が発生 はっせい する。[ 注 ちゅう 4]
フラグレジスタも32ビットに拡張 かくちょう する形 かたち で新 あら たなフラグが設 もう けられた。第 だい 16ビットは RF (Resume flag) と呼 よ ばれ、デバッグフォールトの発生 はっせい を制御 せいぎょ する。第 だい 17ビットは VM (Virtual 8086 mode)で、このビットが立 た つことにより仮想 かそう 86モードに移行 いこう する。
従来 じゅうらい のMSW (Machine status word)レジスタも拡張 かくちょう され、CR0 - CR3というコントロールレジスタ4個 こ が設 もう けられた。それぞれ32ビットで、CR0の下位 かい 16ビットがMSWそのものである。386で追加 ついか されたフラグはCR0の第 だい 4ビットのET (Extension type)フラグと末尾 まつび 31ビットのPG (Paging enable)である。前者 ぜんしゃ は80387が存在 そんざい するとセットされ、後者 こうしゃ をセットするとページング が有効 ゆうこう になる。CR1は予約 よやく されており使用 しよう できない。CR2とCR3はページングに使 つか われる[ 注 ちゅう 5] 。CR2はページング有効 ゆうこう 時 じ にページフォールトが発生 はっせい したときにそのアドレスが格納 かくのう される。CR3の上位 じょうい 20ビットはページングで使用 しよう するページディレクトリのアドレス上位 じょうい 20ビットすなわちベースアドレスを記録 きろく する。
また、ハードウエアによるデバッグ支援 しえん 機能 きのう が追加 ついか され、DR0からDR7のデバッグレジスタを備 そな える[ 注 ちゅう 6] 。
さらにTLB(トランスレーション・ルックアサイド・バッファ)をテストするテストレジスタTR6-TR7が設 もう けられた[ 注 ちゅう 7] 。
32ビット化 か に併 あわ せて論理 ろんり ・物理 ぶつり アドレス空間 くうかん も4GB(32ビット)に拡張 かくちょう され、セグメントサイズも最大 さいだい 4GBに拡張 かくちょう された。従 したが って、セグメント機構 きこう の無 な いプロセッサ同様 どうよう のフラットメモリモデル(リニアメモリモデル)で全 ぜん メモリ空間 くうかん が使用 しよう 可能 かのう である。また可変長 かへんちょう のセグメントに加 くわ えて固定 こてい 長 ちょう のページ 単位 たんい によるメモリ管理 かんり も追加 ついか され、近代 きんだい 的 てき なOSの実装 じっそう が容易 ようい になった。
x86 アーキテクチャCPUとしては、複数 ふくすう の並列 へいれつ ステージ(Intel386 では6 ステージ)を持 も つ最初 さいしょ のインテル・アーキテクチャ・プロセッサとなった(初 はじ めての「パイプライン」ではないことに注意 ちゅうい [ 1] 。80286は80386と同 おな じ4段 だん パイプライン構成 こうせい [ 注 ちゅう 8] )。80386のパイプラインは4段 だん で構成 こうせい されている。命令 めいれい の実行 じっこう は全 すべ てマイクロコード で実現 じつげん されており、複数 ふくすう サイクルの時間 じかん を要 よう する。また、複雑 ふくざつ な命令 めいれい の場合 ばあい はデコードで所要 しょよう サイクルが増加 ぞうか した。
80386では後 ご のCPUID 命令 めいれい と同様 どうよう のプロセッサ・シグニチャという概念 がいねん が導入 どうにゅう されたものの、まだCPUID命令 めいれい そのものは無 な く、インテルはフラグレジスタ を使 つか ったCPU判別 はんべつ 方法 ほうほう を紹介 しょうかい している[ 2] 。
80386と80486以降 いこう を区別 くべつ する方法 ほうほう としては、80486で追加 ついか されたACビットの存在 そんざい が利用 りよう できる。PUSHFD
とPOPFD
で読 よ み書 か きできる32ビット分 ぶん のフラグのうち第 だい 18ビットが該当 がいとう し、これを変更 へんこう できれば80486以上 いじょう 、変更 へんこう できなければ80386系 けい のCPUであると判断 はんだん できる。ただし32ビット分 ぶん のフラグレジスタへのアクセス命令 めいれい は16ビットCPUには存在 そんざい しないので、これに先立 さきだ ち80286以前 いぜん か80386以降 いこう かをあらかじめ判別 はんべつ しておく必要 ひつよう がある(詳細 しょうさい はIntel 80286 を参照 さんしょう )。
またリセット直後 ちょくご のEDXレジスタには、後 ご のCPUIDのEAX=1に相当 そうとう するCPUの識別 しきべつ 情報 じょうほう (プロセッサ・シグネチャ)が格納 かくのう されるようになったため、これが利用 りよう できる状況 じょうきょう [ 注 ちゅう 9] ならばそれを使 つか うこともできる(CPUID も参照 さんしょう )。ただし80386のプロセッサ・シグニチャは80486以降 いこう やCPUID命令 めいれい とは定義 ていぎ に少々 しょうしょう 違 ちが いがあり、80386ではプロセッサタイプが4ビット分 ぶん 使 つか われている。ファミリは4ビットで同 おな じだが、モデル番号 ばんごう に相当 そうとう する4ビットはメジャー・ステッピングと呼 よ ばれ、ステッピングIDに相当 そうとう する4ビットはマイナー・ステッピングと呼 よ ばれる。なお上位 じょうい 16ビットはすべて予 よ 約 やく ビットとなっており、拡張 かくちょう ファミリと拡張 かくちょう モデルは利用 りよう できない。
新 あら たに追加 ついか されたコントロールレジスタ (CR0-3)・テストレジスタ (TR6-7)・デバッグレジスタ (DR0-7) のシステムレジスタはニーモニック上 じょう はMOV
命令 めいれい でデータ交換 こうかん する書式 しょしき ではあるが、当然 とうぜん ながら内部 ないぶ 的 てき には新規 しんき のシステム命令 めいれい である。
既存 きそん 命令 めいれい の32ビット版 ばん に相当 そうとう する一般 いっぱん 命令 めいれい
編集 へんしゅう
既存 きそん 命令 めいれい と同様 どうよう の機能 きのう で、32ビットのデータや32ビットレジスタを扱 あつか うものを挙 あ げる。以下 いか のほか、実質 じっしつ 的 てき な追加 ついか 命令 めいれい として条件 じょうけん ジャンプ命令 めいれい が一新 いっしん されており、16ビットや32ビットのアドレス属性 ぞくせい を扱 あつか えるコードが新 あら たに用意 ようい された。
CDQ (Convert doubleword to qwadword)
CMPSD (Compare string double word)
CWDE (Convert word to doubleword extended)
INSD (Input string double word)
IRETD (Interrupt return using EIP)
JECXZ (Jump if ECX is zero)
LODSD (Load string double word)
MOVSD (Move string double word)
OUTSD (Output string double word)
POPAD (Pop all general doubleword registers)
POPFD (Pop extended flags off stack)
PUSHAD (Push all general doubleword registers)
PUSHFD (Push extended flags onto stack)
SCASD (Scan string double word)
STOSD (Store string double word)
ビットをテストする命令 めいれい 群 ぐん が6個 こ 追加 ついか された。
アドレス(セグメント・オフセット)をロードする命令 めいれい には、新 あら たにSS・FS・GSのセグメントレジスタに対応 たいおう したものが用意 ようい された。
データのビット長 ちょう を拡張 かくちょう する命令 めいれい および、シフト命令 めいれい について、結果 けっか を別 べつ のレジスタに保存 ほぞん できる命令 めいれい が新 あら たに追加 ついか された。
条件 じょうけん SET命令 めいれい は各種 かくしゅ の条件 じょうけん ジャンプ命令 めいれい の冒頭 ぼうとう の"J"の部分 ぶぶん を"SET"にそれぞれ置 お き換 か えたニーモニック表記 ひょうき の命令 めいれい 群 ぐん で、条件 じょうけん が合致 がっち した際 さい にはジャンプする代 か わりに、判定 はんてい 結果 けっか を指定 してい されたレジスタやメモリに保存 ほぞん するだけの動作 どうさ となる。
BSF (Bit scan forward)
BSR (Bit scan reverse)
BT (Bit test)
BTC (Bit test and complement)
BTR (Bit test and reset)
BTS (Bit test and set)
LFS (Load pointer using FS)
LGS (Load pointer using GS)
LSS (Load pointer using SS)
MOVSX (Move with sign extend)
MOVZX (Move with zero extend)
SHLD (Double precision shift left)
SHRD (Double precision shift right)
条件 じょうけん SET (Byte set on condition)
ICE が接続 せつぞく されている状態 じょうたい でこの命令 めいれい を実行 じっこう すると、ICE側 がわ のプログラムに制御 せいぎょ が移 うつ る。ICEが接続 せつぞく されていない状態 じょうたい ではシングルステップ割込 わりこ みINT 1を実行 じっこう する[ 4] 。のちにINT1(オペコードはF1)として公開 こうかい された。
ICE側 がわ のメモリとデバッグターゲット側 がわ のメモリ間 あいだ の転送 てんそう 命令 めいれい である[ 4] 。
ICE側 がわ でこの命令 めいれい を実行 じっこう するとICEBP実行 じっこう 時点 じてん のレジスタの状態 じょうたい をすべてもどしてデバッグターゲット側 がわ でのプログラムの実行 じっこう に戻 もど る。また、ICEとは関係 かんけい ないがLOADALLを使用 しよう するとリアルモードのままで、プロテクトメモリを含 ふく む4Gバイトのメモリにアクセス可能 かのう となる。ただし、80386以降 いこう ではUnreal mode (英語 えいご 版 ばん ) を使用 しよう すればLOADALLを使用 しよう しなくともリアルモードのままで4Gバイトのメモリにアクセス可能 かのう である。
i386SX(外部 がいぶ から機能 きのう を停止 ていし できるC STEP)
開発 かいはつ コード名 めい P9。命令 めいれい セットは80386と互換 ごかん 性 せい があるが、外部 がいぶ アドレス幅 はば を24ビット (16MB)、外部 がいぶ データバス を16ビット 幅 はば に縮小 しゅくしょう し、システム(システム基板 きばん 、メモリを含 ふく む)のトータル的 てき なコストダウンと、既存 きそん の80286搭載 とうさい パーソナルコンピュータ (PC) をほとんど仕様 しよう 変更 へんこう せずにCPU換 かわ 装 そう を可能 かのう として、当時 とうじ 急速 きゅうそく にシェアを拡大 かくだい しつつあったAMD などのセカンドソース 版 はん 80286、特 とく にIntelが提供 ていきょう していなかった16MHz版 ばん Am80286 などの高 こう クロック周波数 しゅうはすう 動作 どうさ 対応 たいおう モデルを市場 いちば から駆逐 くちく することを念頭 ねんとう に置 お いて設計 せっけい されたCPUである。
特 とく にメモリのバス幅 はば が狭 せま いことからプロテクトモードの利用 りよう は性能 せいのう の低下 ていか が激 はげ しかったが[ 5] 、それでもこのCPUを採用 さいよう することで、PCメーカーは従来 じゅうらい の80286 マシンをわずかな手直 てなお しを施 ほどこ すだけで「32ビットマシン」として販売 はんばい することが可能 かのう となり、またユーザー側 がわ にもMicrosoft Windows 3.1 (日本語 にほんご 版 ばん )の動作 どうさ が可能 かのう になる、あるいは後述 こうじゅつ するようにDOS環境 かんきょう でも1MB以上 いじょう のメモリ空間 くうかん にマッピングされるプロテクトモード対応 たいおう 増設 ぞうせつ メモリ(XMS メモリ)を仮想 かそう 86モードの下 した でEMS メモリとして割 わ り当 あ てて使用 しよう 可能 かのう となるなど、80286使用 しよう 時 じ と比較 ひかく してメモリ利用 りよう の自由 じゆう 度 ど が上 あ がるというメリットがあったため、一時 いちじ は広 ひろ く普及 ふきゅう した。
i386SL(PQFPパッケージ)
80386SXをベースに、システムマネジメントモード を追加 ついか し、サスペンドやレジューム機能 きのう などに対応 たいおう させたCPU。現在 げんざい のモバイル用 よう CPUの先駆 さきが けといえる。また、日本電気 にほんでんき がインテル に発注 はっちゅう して製造 せいぞう された、PC-9800シリーズ アーキテクチャ専用 せんよう のCPU、80386SL (98) もある。80386SL (98) にはi386SLロゴの下 した にPC-98ロゴも入 はい っており、PC9800 NECと打 だ 刻 こく されている。通常 つうじょう 版 ばん にはPC9800 NECの代 か わりにISAと打 だ 刻 こく されている。
80376 (英語 えいご 版 ばん ) は、組 くみ 込 こみ 機器 きき 用 よう のマイクロコントローラ である。80386SXに基 もと づいているものの、リアルモード を実装 じっそう しておらず、ブート時 じ からプロテクトモード で動作 どうさ する。[ 6]
80386EX (英語 えいご 版 ばん ) は、フルスタティック設計 せっけい の80386SXコアとした組 くみ 込 こみ 機器 きき 用 よう のマイクロコントローラ 。クロック、システムマネージメント、タイマーカウンター、ウォッチドッグタイマー 、同期 どうき /非同期 ひどうき シリアル 入出力 にゅうしゅつりょく 、パラレル入出力 にゅうしゅつりょく 、DMA コントローラ、DRAM リフレッシュ、JTAG 検査 けんさ ロジックなどの周辺 しゅうへん 回路 かいろ を混載 こんさい し、フットプリントと消費 しょうひ 電力 でんりょく とコストの低減 ていげん を図 はか っている。[ 7]
80386ピン互換 ごかん の486DX相当 そうとう プロセッサだが、プロセッサ・シグネチャは386系 けい を示 しめ すx3xx (0340) を返 かえ す[ 3] 。FPU内蔵 ないぞう のため、数値 すうち 演算 えんざん コプロセッサのソケットにはダミーを挿 さ して使 つか う[ 8] 。
Intel製 せい 80386には存在 そんざい しない独自 どくじ のCPUキャッシュを搭載 とうさい した。また、RDMSR
・WRMSR
命令 めいれい が実装 じっそう されていた[ 9] 。
386SL (386SX) ベースのIBM 改良 かいりょう 版 ばん 。内部 ないぶ 32ビット、外部 がいぶ データバス16ビットのまま、内蔵 ないぞう キャッシュ8Kを搭載 とうさい 。IBM PS/2 などに搭載 とうさい 。インテル は80386からセカンドソース を廃止 はいし したが、IBMはインテルとの提携 ていけい により、80486 までは製造 せいぞう ライセンスを持 も っていた。名称 めいしょう の「C」はCacheの略 りゃく とも言 い われる。
IBM 386SLCの改良 かいりょう 版 ばん 。内蔵 ないぞう キャッシュ16Kを搭載 とうさい 。内部 ないぶ 32ビット、外部 がいぶ データバス16ビットのまま、内蔵 ないぞう キャッシュ16Kにより486SXと同 どう レベルの性能 せいのう を実現 じつげん 。ThinkPad などに搭載 とうさい 。名称 めいしょう こそ486SXに類似 るいじ するものの、486SXのIBM改良 かいりょう 版 ばん ではなく、コアは386SL (386SX) ベース である。
IBM 486SLCのダブルクロック版 ばん 。内部 ないぶ 32ビット、外部 がいぶ データバス16ビット、ダブルクロックのまま、内蔵 ないぞう キャッシュ16Kを搭載 とうさい 。PS/V 、ThinkPad などに搭載 とうさい 。比較的 ひかくてき 後年 こうねん までCPUアクセラレータ にも使 つか われた。サードパーティではSusTeen のWinMasterシリーズの一部 いちぶ の下位 かい 機種 きしゅ に搭載 とうさい されたことがある[ 10] 。
IBM486SLCシリーズの32ビット版 ばん に相当 そうとう する製品 せいひん 群 ぐん の通称 つうしょう 。いくつかの種類 しゅるい があり、最大 さいだい で3倍 ばい 速 そく のものも登場 とうじょう した。製品 せいひん によって386DXベースとも486SLベースとも言 い われる[ 11] 。
32ビットCPUとして登場 とうじょう したものの、当初 とうしょ のPC市場 いちば にはその機能 きのう を活用 かつよう できるOSは存在 そんざい しておらず、単 たん に高速 こうそく なx86 CPUとして、主 おも にMS-DOS 環境 かんきょう で使 つか われる場合 ばあい が多 おお かった。
その後 ご 、80386のアーキテクチャを前提 ぜんてい として新 あら たに開発 かいはつ された32ビットOSとして、OS/2 2.0やWindows NT が市場 いちば に登場 とうじょう するが、その頃 ころ には既 すで に80486が登場 とうじょう しており、80386は下位 かい 機種 きしゅ 向 む けで外部 がいぶ 16ビットバスの386SXが主流 しゅりゅう となりつつあった。外部 がいぶ 16ビットのシステムで32ビットOSを動 うご かすには力不足 ちからぶそく が明白 めいはく であり、結果 けっか 的 てき により高速 こうそく なIntel 486 やPentium プロセッサがその後 ご を受 う け継 つ ぐこととなった。
MS-DOS環境 かんきょう における利点 りてん は、メモリマネージャとよばれるソフト(EMM386.EXE 等 ひとし )によって仮想 かそう 86モードへと移行 いこう し、高速 こうそく ・広帯域 こうたいいき のプロテクトメモリを転用 てんよう してEMS メモリをハードウェアEMSと同等 どうとう 、またはそれ以上 いじょう の性能 せいのう で実現 じつげん できたことである。しかしこれも本来 ほんらい の80386の機能 きのう ・スペックからすると中途半端 ちゅうとはんぱ な使 つか い方 かた であり、80386本来 ほんらい の機能 きのう を活 い かし切 き るには程遠 ほどとお いものであった。
また仮想 かそう 86モードの使用 しよう はI/Oアクセスなどの際 さい にトラップを発生 はっせい させ、その処理 しょり と復帰 ふっき に数 すう 十 じゅう サイクル程度 ていど の時間 じかん を要 よう するため、25MHzや33MHzの80386であっても、処理 しょり によっては12MHzの80286と大差 たいさ ない状況 じょうきょう や、場合 ばあい によってはむしろ劣 おと るといった状況 じょうきょう を招 まね いてしまうこともあった。ただし、通常 つうじょう の演算 えんざん 処理 しょり やメモリ操作 そうさ に関 かん しては、CPUおよびメモリの駆動 くどう クロックの差 さ が実効 じっこう 性能 せいのう に反映 はんえい されるため、これは都合 つごう の悪 わる い処理 しょり をピンポイント的 てき に繰 く り返 かえ した際 さい の話 はなし にすぎない。
80386用 よう に改良 かいりょう されたOSとして以下 いか が登場 とうじょう した。
Microsoft Windows (Windows)
Windows386 2.1 (リアルモード用 よう 16ビットアプリケーション を前提 ぜんてい とした16ビットOSだが、OS自体 じたい は80386のプロテクトモードを活用 かつよう するようになった)
Windows 3.0 (80286相当 そうとう のプロテクトモードに対応 たいおう した16ビットアプリケーションを前提 ぜんてい とした16ビットOSであるが、OS自体 じたい はエンハンスドモード動作 どうさ 時 じ に32ビットの仮想 かそう 86モードを活用 かつよう している)
Windows NT (OS自体 じたい を32ビット化 か )
OS/2
OS/2 2.0 (OS自体 じたい を32ビット化 か 。MVDMに仮想 かそう 86モード を使用 しよう する)
NetWare
NetWare386 (MS-DOS から起動 きどう し、80386のプロテクトモードを使用 しよう できる)
TownsOS
富士通 ふじつう FM TOWNS用 よう (MS-DOSにDOSエクステンダを組 く み合 あ わせたもの。80386のプロテクトモードを使用 しよう 。4GBリニアな論理 ろんり アドレス空間 くうかん を活 い かしたマルチメディアデータの取 と り扱 あつか いを可能 かのう にした)
80386搭載 とうさい PCは「高額 こうがく 」とは言 い っても、当時 とうじ 隆盛 りゅうせい していたRISC ワークステーション 等 ひとし よりは大幅 おおはば に安価 あんか であったため、より大 だい 規模 きぼ なシステムで利用 りよう されていたUNIX などの32ビットOS環境 かんきょう をこれら安価 あんか なパーソナルコンピュータに移植 いしょく する試 こころ みが、80386の登場 とうじょう によって始 はじ められた。1988年 ねん には当時 とうじ 既 すで にSPARCプロセッサを搭載 とうさい するSUN-4を製造 せいぞう 販売 はんばい していたサン・マイクロシステムズ がSUN386iと称 しょう する、SUN OS 4.0の386対応 たいおう 版 ばん を搭載 とうさい するワークステーションを発表 はっぴょう し、低 てい 価格 かかく であるだけでなく、当時 とうじ のSPARC搭載 とうさい 機 き では困難 こんなん であった、MS-DOS環境 かんきょう とSUN OS環境 かんきょう の共存 きょうぞん を制限 せいげん 付 つ きながら可能 かのう とするなど、当時 とうじ のRISCプロセッサ搭載 とうさい 機 き にはない新 あたら しい機能 きのう についての提案 ていあん を行 おこな った。その後 ご 、386BSD (後 ご のFreeBSD およびNetBSD )やLinux など、今日 きょう の代表 だいひょう 的 てき なPC-UNIX 系 けい 環境 かんきょう の移植 いしょく やビルドが始 はじ められたが、その理由 りゆう や動機 どうき は、80386の登場 とうじょう によってパーソナルコンピュータがこれらの近代 きんだい 的 てき な32ビットオペレーティングシステム環境 かんきょう を実現 じつげん するだけの機能 きのう や性能 せいのう を持 も ちえるに至 いた ったからに他 た ならない。2000年代 ねんだい 末 すえ にはWindows がOS市場 いちば の殆 ほとん どを占 し めたことに加 くわ え、PC-UNIX が伝統 でんとう 的 てき なUNIX と同等 どうとう の機能 きのう と信頼 しんらい 性 せい を備 そな えたことで、80386から始 はじ まったIA-32 を利用 りよう した方 ほう が圧倒的 あっとうてき にコストパフォーマンスが高 たか くなったため、ハイエンド用途 ようと やレガシーソフトウェアの利用 りよう を除 のぞ いてIA-32 がSPARC を駆逐 くちく するにまで至 いた っている。
80386で実装 じっそう された32ビット命令 めいれい (のちのIA-32 命令 めいれい )は、登場 とうじょう から30年 ねん 以上 いじょう が経過 けいか したが、上位 じょうい 互換 ごかん を保 たも ったCPUがインテルから提供 ていきょう され続 つづ けている他 ほか 、AMD 、VIA が発売 はつばい しているx86系 けい のさまざまな互換 ごかん CPUにおいても継承 けいしょう され続 つづ けており、多 おお くのパーソナルコンピュータと多 おお くのサーバで採用 さいよう され続 つづ けている。80386の命令 めいれい アーキテクチャは、ARMアーキテクチャ と並 なら び、これまでに最 もっと も普及 ふきゅう した命令 めいれい アーキテクチャと言 い える。80386以降 いこう のIA-32 プロセッサでは基本 きほん 命令 めいれい の追加 ついか はあまりなく、MMX 、SSE 、SSE2、SSE3などのSIMD 命令 めいれい の追加 ついか が主 おも であった。
^ ただし、同 どう 一 いち クロック周波数 しゅうはすう ・どちらもリアルモードでも386より286の方 ほう が高速 こうそく である。386をプロテクトモードにすると(MS-DOSで使 つか っていても拡張 かくちょう メモリマネージャを使 つか うためにはその必要 ひつよう がある)さらにその差 さ は開 ひら く。そのためかインテルは16MHz以上 いじょう の286を出 だ さなかった。逆 ぎゃく に286のセカンドソーサや286互換 ごかん CPUメーカーは、16MHz以上 いじょう 、果 は てはメーカーによっては25MHzという高速 こうそく の286を製造 せいぞう ・販売 はんばい した。
^ セグメント方式 ほうしき #x86 を参照 さんしょう 。
^ ただしスタックポインタ(ESP)はインデックスとして使用 しよう できない。
^ 64KBを超 こ えるアクセスには予 あらかじ めセグメントリミットの変更 へんこう が必要 ひつよう 。リアルモード を参照 さんしょう 。
^ 80486以降 いこう はCR3の下位 かい ビットに新 あら たなフラグも設定 せってい された。
^ うち2本 ほん は予約 よやく されているのみで、機能 きのう は無 な い。
^ なお80486ではさらにTR3-TR5が追加 ついか されている。
^ 詳細 しょうさい はen:Intel_80286 を参照 さんしょう 。
^ 例 たと えば80286用 よう に作 つく られたソフトウェアがプロテクトモードからリアルモードに戻 もど るときの外部 がいぶ ハードウェア機構 きこう を利用 りよう することで、CPUをリセットしつつも、OSは処理 しょり を続行 ぞっこう することができる(ただし復帰 ふっき 処理 しょり の際 さい にDXレジスタが保存 ほぞん されるか否 ひ かは機種 きしゅ によって異 こと なる)。また、PC-98ではメモリアドレス0000:0486に保存 ほぞん される[ 3] 。