Intel 80386

出典: Wikipedio


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

目次

概要

1985年の発表当初の名称はIntel 80386であった。80386専用の数値演算コプロセッサには80387がある。

1988年に80386SX(SXはSingle-word eXternal、つまり16ビット外部バスを意味する) が80386シリーズに加わった際に、従来の32ビット外部バスのプロセッサには区別するためにDXをつけてIntel 80386DX(DXはDouble-word eXternal、つまり32ビット外部バスを意味する)と改名した。

また、インテルが80386からセカンドソースを廃止したため、Am386などの互換プロセッサが出現し、その対策もありi386DXと呼ばれるようになった(数字だけでは商標として保護できないため)。

当初は主に「高速な80286」として使われたが、80386で採用された32ビット命令セットや仮想86モードは多くのオペレーティングシステムで徐々に使われるようになった。その後のインテルの32ビットCPUのベースとなる命令セットアーキテクチャ(後にIA-64登場時にIA-32と呼ばれる)が、このCPUで確定した。

特徴

thumb|right|300px|80386DXの内部ブロック図 プロテクトモードという動作モードとリアルモードという動作モードを備える。80286で用意されたプロテクトモードは16ビットのリアルモードへ戻れなかったのに対し、80386ではリアルモードとプロテクトモードを行き来することができる。80286とは違い、リアルモードでも32ビットの演算(アドレス空間ではない、あくまでレジスタ演算のみ)が可能である。32ビットに拡張されたレジスタはEAX、ESIのように従来の16ビットレジスタ名に「E」をつけて区別され、従来「AX は演算用」「SI、DIはメモリ操作用」など用途別に対応命令が分化していたのに対しEAX、EBX、ECX、EDX、EBP、ESP、ESI、EDI合計8個の「汎用レジスタ」が均等に扱えるようになってコンパイラ言語への対応が容易になった。またセグメントセレクタも CS、DS、ES、SSの4個に加えFS、GSが追加されている。

プロテクトモード上には、複数の8086を仮想的に動作させうる仮想86モードが追加された。32ビット化にあわせてアドレス空間も4GB(32ビット)に拡張された。プロテクトモード上では、従来のセグメント構造がセレクタと呼ばれる構造になっており、また可変長のセグメントに加えて固定長のページ単位によるメモリ管理も追加され、これによって近代的なOSの開発・移植が容易になったと言われている。

x86アーキテクチャCPUとしては初めてパイプラインを採用し高速化を図っている。80386のパイプラインは4段で構成されている。命令の実行は全てマイクロコードで実現されており複数サイクルの時間を要した。また、複雑な命令の場合はデコードで所要サイクルが増加した。

その他の80386シリーズ

80386SX

開発コード名P9。命令セットは80386と互換性があるが、外部アドレス幅を24ビット (16MB)、外部データバス16ビット幅に縮小し、システム(システム基板、メモリを含む)のトータル的なコストダウンと、既存の80286搭載パーソナルコンピュータ (PC) をほとんど仕様変更せずにCPU換装を可能として、当時急速にシェアを拡大しつつあったAMDなどのセカンドソース版80286を駆逐することを念頭に置いて設計されたCPUである。 特にメモリのバス幅が狭いことからプロテクトモードの利用は性能の低下が激しかったが、それでもこのCPUを採用することで、PCメーカーは従来の80286マシンをわずかな手直しを施すだけで「32ビットマシン」として販売することが可能となり、またユーザー側にもMicrosoft Windows 3.xの動作が可能になるというメリットがあったため、一時は広く普及した。

80386SL

thumb|200px|i386SL(PQFPパッケージ) 80386SXをベースに、システムマネジメントモードを追加し、サスペンドやレジューム機能などに対応させたCPU。現在のモバイル用CPUの先駆けといえる。また、日本電気インテルに発注して製造された、PC-9800シリーズアーキテクチャ専用のCPU、80386SL(98)もある。

80376

80376は、組込機器用のマイクロコントローラである。80386SXに基づいているものの、リアルモードを実装しておらず、ブート時からプロテクトモードで動作する。<ref>Template:Cite web</ref>

80386EX

80386EXは、フルスタティック設計の80386SXコアとした組込機器用のマイクロコントローラ。クロック、システムマネージメント、タイマーカウンター、ウォッチドッグタイマー、同期/非同期シリアル入出力、パラレル入出力、DMAコントローラ、DRAMリフレッシュ、JTAG検査ロジックなどの周辺回路を混載し、フットプリントと消費電力とコストの低減を図っている。<ref>Template:Cite web</ref>

IBM 386SLC

386SL(386SX)ベースのIBM改良版。内部32ビット、外部データバス16ビットのまま、内蔵キャッシュ8Kを搭載。IBM PS/2 などに搭載。インテルは80386からセカンドソースを廃止したが、IBMはインテルとの提携により、80486までは製造ライセンスを持っていた。名称の「C」はCacheの略とも言われる。

IBM 386SLC2

IBM 386SLCのダブルクロック版。例えば386SLC2-50/25は、ベースクロック25MHz、内部クロック50MHzで稼働する。PS/Vなどに搭載。

IBM 486SLC2

IBM 386SLC2の改良版。内部32ビット、外部データバス16ビット、ダブルクロックのまま、内蔵キャッシュ16Kを搭載。名称より「486SXのIBM改良版」との誤解が多いが、コアは386SL(386SX)ベースである。内蔵キャッシュ16Kにより486SXと同レベルの性能を実現。PS/VThinkPadなどに搭載。

影響

32ビットCPUとして登場したものの、当初のPC市場にはその機能を活用できるOSは存在しておらず、単に高速なx86CPUとして、主にMS-DOS環境で使われる場合が多かった。

その後、80386のアーキテクチャを前提として新たに開発された32ビットOSとして、OS/2 2.0やMicrosoft Windows NTが市場に登場するが、その頃には80386では既に力不足となっており、より高速なIntel 486Pentiumプロセッサがその後を受け継ぐこととなった。

MS-DOS

MS-DOS環境における利点は、メモリマネージャとよばれるソフト(EMM386.EXE等)によって仮想86モードへと移行し、高速・広帯域のプロテクトメモリを転用してEMSメモリをハードウェアEMSと同等、またはそれ以上の性能で実現できたことである。しかしこれも本来の80386の機能・スペックからすると中途半端な使い方であり、80386本来の機能を活かし切るには程遠いものであった。

また仮想86モードの使用はI/Oアクセスなどの際にトラップを発生させ、その処理と復帰に数十サイクル程度の時間を要するため、25MHzや33MHzの80386であっても、処理によっては12MHzの80286と大差ない状況や、場合によってはむしろ劣るといった状況をも招いてしまうこともあった。(ただし、通常の演算処理やメモリ操作に関しては、CPUおよびメモリの駆動クロックの差が実効性能に反映されるため、これは都合の悪い処理をピンポイント的に繰り返した際の話にすぎない)

Microsoft Windowsなど

80386用に改良されたOSとして以下が登場した。

  • Microsoft Windows (Windows)
    • Windows386 2.1 (OS自体は16ビットだが、80386のプロテクトモードを使用できる)
    • Windows 3.0 (OS自体は16ビットだが、エンハンスドモードでは仮想86モードを使用できる)
    • Windows NT (OS自体を32ビット化)
  • OS/2
  • NetWare
    • NetWare386 (MS-DOSから起動し、80386のプロテクトモードを使用できる)

UNIX

80386搭載PCは「高額」とは言っても、当時隆盛していたRISCワークステーション等よりは大幅に安価であったため、より大規模なシステムで利用されていたUNIXなどの32ビットオペレーティングシステム環境をこれら安価なパーソナルコンピュータに移植する試みが、80386の登場によって始められた。386BSD(後のFreeBSDおよびNetBSD)やLinuxなど、今日の代表的なPC-UNIX系環境の移植やビルドが始められた理由は、80386の登場によってパーソナルコンピュータがこれらの近代的な32ビットオペレーティングシステム環境を実現するだけの機能や性能を持ちえるに至ったからに他ならない。

PS/2について

下記の説があるが、IBM PS/2は初期モデルより80386も搭載しており、正しくない(IBM PS/2#モデルを参照)。PS/2とOS/2の混同と思われる(Windowsを持つマイクロソフトOS/2 1.x を最初から80386専用に希望し、IBMは広く80286以上に希望した。PS/2で80386を搭載しなかったのではない。)

80386はマイクロソフトIBMの(IBMがIBM PS/2に80386を採用しなかったことを発端にした)対立の煽りをまともに受けた悲運のMPUでもある。IBMはPC/ATの後継機種として、PS/2の開発を始めた。当時80386は既に販売されており、PS/2に搭載することは物理的には可能であった。しかし、PS/2に80386を搭載した場合、自社製のオフィスコンピュータとの性能差がほとんどなくなりオフィスコンピュータ市場を圧迫する事などを嫌ったIBMはPS/2に80286を搭載することにした。マイクロソフト側としては、OS/2の実装に際してi386の機能を利用したいと考えていたようで、何度もIBMに対してPS/2へ80386を採用するように要請していた。この対立が元で、IBMとマイクロソフトとの蜜月が終り、マイクロソフトがOS/2から撤退しMicrosoft Windows NTの開発を始めることになった。この決断により80386ネイティブのオペレーティングシステム開発が遅れ、完成した頃にはi486の時代へと移っていたのである。

現在

80386で実装された32ビット命令(のちのIA-32命令)は、登場から20年以上が経過した現在のCore 2を始め、AMD,VIAが発売しているx86系のさまざまな互換CPUにおいても継承され続けており、ほとんどのパーソナルコンピュータと多くのサーバで採用され続けている。80386の命令アーキテクチャは、組み込みシステムで圧倒的なシェアを誇るARMアーキテクチャと並び、これまでに最も普及した命令アーキテクチャと言える。近年のIA-32プロセッサは命令アーキテクチャが大幅に拡張されており、SSEなどのSIMD命令も付加されているが、386由来の命令も依然として使われている。

2006年現在においても80386は少量ながら製造されている。主な用途は軍事向けで有名な物としてパトリオットミサイルに搭載されている(正確にはミサイル本体(MIM-104)ではなく、地上装置であるECS及びICCの兵器管制コンピュータEWCC(Enhanced Weapon Control Computer)に搭載されている)。

関連項目

Template:Commonscat

脚注

<references/>

Template:Intel processorsca:Intel 80386 cs:Intel 80386 de:Intel 80386 en:Intel 80386 es:Intel 80386 et:80386 fi:Intel 80386 fr:Intel 80386 gl:Intel 80386 hr:Intel 80386 hu:Intel 80386 id:Intel 80386 it:Intel 80386 ko:인텔 80386 lt:I386 nl:Intel 80386 no:Intel 80386 pl:Intel 80386 pt:Intel 80386 ro:Intel 80386 ru:Intel 80386 sh:Intel 80386 sk:Intel 80386 sl:I386 sv:Intel 80386 tr:Intel 80386 vi:Intel 80386 zh:Intel 80386

個人用ツール