Intel_80386
[Wikipedia|▼Menu]

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。
出典検索?: "Intel 80386" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2018年10月)

80386i386DX 33MHz
生産時期1985年10月から2007年9月28日まで
生産者Intel, AMD, IBM
CPU周波数12 MHz から 40 MHz
プロセスルール1.5μm から 1μm
命令セットx86 (IA-32)
パッケージ132ピンPGA・PQFP
100ピン PQFP・BQFP
前世代プロセッサIntel 80286
次世代プロセッサIntel 80486
トランジスタ275000
コプロセッサ

386DX: Intel 80387386SX: Intel 80387SX
テンプレートを表示

Intel 80386(またはi386)はインテル32ビットマイクロプロセッサ (CPU) である。1985年10月に発表され、x86アーキテクチャを32ビットに拡張し、レジスタを強化した。インテルが現在使用している名称はIntel386TMプロセッサ (Intel386TM Processor) である。互換CPUにも386の型番が付くものがある。

後にIA-32と呼ばれる、インテルの32ビットCPUのベースとなる命令セットアーキテクチャは、このCPUで確定した。アーキテクチャとしてのi386については、x86およびIA-32の項目も参照のこと。
概要

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ビットのままである。

既存の命令が32ビット演算に対応したほか、多くの新命令が追加された。レジスタの直交性が増し、従来「AX は演算用」「SI、DIはメモリ操作用」など用途別に対応命令が細かく分化していたEAX、EBX、ECX、EDX、EBP、ESP、ESI、EDI合計8個の「汎用レジスタ」がほぼ均等に扱えるようになり、コンパイラ言語への対応が容易になった。

レジスタ及び命令の拡張はCPUのモードとは独立したもので、プロテクトモード・リアルモードの別なく使用可能である。従って、リアルモードでも32ビットプロセッサとして動作し32ビット幅のレジスタやデータを扱えるが、64KBを超えるアクセスを実行すると一般保護例外が発生する。[注 3]

また、ハードウエアによるデバッグ支援機能が追加され、DR0からDR7のデバッグレジスタを備える。[注 4]

32ビット化に併せて論理・物理アドレス空間も4GB(32ビット)に拡張され、セグメントサイズも最大4GBに拡張された。従って、セグメント機構の無いプロセッサ同様のフラットメモリモデル(リニアメモリモデル)で全メモリ空間が使用可能である。また可変長のセグメントに加えて固定長のページ単位によるメモリ管理も追加され、近代的なOSの実装が容易になった。
アーキテクチャ

x86アーキテクチャCPUとしては、複数の並列ステージ(Intel386 では6 ステージ)を持つ最初のインテル・アーキテクチャ・プロセッサとなった(初めての「パイプライン」ではないことに注意[1]。80286は80386と同じ4段パイプライン構成[2])。80386のパイプラインは4段で構成されている。命令の実行は全てマイクロコードで実現されており、複数サイクルの時間を要する。また、複雑な命令の場合はデコードで所要サイクルが増加した。
80386の判別

80386では後のCPUID命令と同様のプロセッサ・シグニチャという概念が導入されたものの、まだCPUID命令そのものは無く、インテルはフラグレジスタを使ったCPU判別方法を紹介している[3]

80386と80486以降を区別する方法としては、80486で追加されたACビットの存在が利用できる。PUSHFDとPOPFDで読み書きできる32ビット分のフラグのうち第18ビットが該当し、これを変更できれば80486以上、変更できなければ80386系のCPUであると判断できる。ただし32ビット分のフラグレジスタへのアクセス命令は16ビットCPUには存在しないので、これに先立ち80286以前か80386以降かをあらかじめ判別しておく必要がある(詳細はIntel 80286を参照)。

またリセット直後のEDXレジスタには、後のCPUIDのEAX=1に相当するCPUの識別情報(プロセッサ・シグネチャ)が格納されるようになったため、これが利用できる状況[注 5]ならばそれを使うこともできる(CPUIDも参照)。ただし80386のプロセッサ・シグニチャは80486以降やCPUID命令とは定義に少々違いがあり、80386ではプロセッサタイプが4ビット分使われている。ファミリは4ビットで同じだが、モデル番号に相当する4ビットはメジャー・ステッピングと呼ばれ、ステッピングIDに相当する4ビットはマイナー・ステッピングと呼ばれる。なお上位16ビットはすべて予約ビットとなっており、拡張ファミリと拡張モデルは利用できない。
その他の80386シリーズ
80386SX 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使用時と比較してメモリ利用の自由度が上がるというメリットがあったため、一時は広く普及した。
80386SL i386SL(PQFPパッケージ)

80386SXをベースに、システムマネジメントモードを追加し、サスペンドやレジューム機能などに対応させたCPU。現在のモバイル用CPUの先駆けといえる。また、日本電気インテルに発注して製造された、PC-9800シリーズアーキテクチャ専用のCPU、80386SL (98) もある。80386SL (98) にはi386SLロゴの下にPC-98ロゴも入っており、PC9800 NECと打刻されている。通常版にはPC9800 NECの代わりにISAと打刻されている。



80376


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:44 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef