Intel 80386
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Intel 80386(またはi386DX)はインテルのCPUであり、8086シリーズを32ビットに拡張し、レジスタを強化したCPU。1985年10月に発表された。互換CPUにも386の型番が付くものがある。 インテルが現在使っている名称はIntel386™プロセッサ (Intel386™ Processor) である。
80386専用の数値演算コプロセッサに80387がある。
後 80386SX(1988年。SXはSingle-word eXternal、つまり16ビット外部バスを意味する) が80386シリーズに加わり、従来の32ビット外部バスのものを区別するためにDXをつけてIntel 80386DX(DXはDouble-word eXternal、つまり32ビット外部バスを意味する)と改名した。
また、インテルがセカンドソースを廃止したことによるAm386などの互換プロセッサの出現との兼ね合いもあり、i386DXと呼ばれるようになった。
その後のインテルの32ビットCPUのベースとなる命令セットアーキテクチャ(後のIA-32)が、このCPUで確定した。
目次 |
[編集] 特徴
プロテクトモードという動作モードとリアルモードという動作モードを備える。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が追加されている。原型となった80286のセグメント構造が32ビット対応を全く考えていなかったため、その拡張方式は強引かつ醜悪でオペレーティングシステム (OS) 移植者を嘆かせるものであったとさえ言われるが、80386のプログラム上の柔軟性は、その悪名高き80286に比べ飛躍的に向上している。
プロテクトモード上には、複数の8086を仮想的に動作させうる仮想86モードが追加された。32ビット化にあわせてアドレス空間も4GB(32ビット)に拡張された。プロテクトモード上では、従来のセグメント構造がセレクタと呼ばれる構造になっており、また可変長のセグメントに加えて固定長のページ単位によるメモリ管理も追加され、これによって近代的なOSの開発・移植が容易になったと言われている。
80x86アーキテクチャ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
80386SXをベースに、システムマネジメントモードを追加し、サスペンドやレジューム機能などに対応させたCPU。現在のモバイル用CPUの先駆けといえる。また、日本電気がインテルに発注して製造された、PC-9800シリーズアーキテクチャ専用のCPU、80386SL(98)もある。
[編集] 80376
80376は、組込機器用のマイクロコントローラである。80386SXに基づいているものの、リアルモードを実装しておらず、ブート時からプロテクトモードで動作する。[1]
[編集] 80386EX
80386EXは、フルスタティック設計の80386SXコアとした組込機器用のマイクロコントローラ。クロック、システムマネージメント、タイマーカウンター、ウォッチドッグタイマー、同期/非同期シリアル入出力、パラレル入出力、DMAコントローラ、DRAMリフレッシュ、JTAG検査ロジックなどの周辺回路を混載し、フットプリントと消費電力とコストの低減を図っている。[2]
[編集] IBM 386SLC
386SL(386SX)ベースのIBM改良版。内部32ビット、外部データバス16ビットのまま、内蔵キャッシュ8Kを搭載。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/V、ThinkPadなどに搭載。
[編集] 影響
32ビットCPUとして登場したものの、当初のPC市場にはその機能を活用できるOSは存在しておらず、単に高速な80x86CPUとして、主にMS-DOS環境で使われる場合が多かった。
その後、80386のアーキテクチャを前提として新たに開発された32ビットOSとして、OS/2 2.0やMicrosoft Windows NTが市場に登場するが、その頃には80386では既に力不足となっており、より高速なIntel 486やPentiumプロセッサがその後を受け継ぐこととなった。
[編集] 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
- OS/2 2.0 (OS自体を32ビット化。MVDMに仮想86モードを使用する)
- NetWare
- NetWare386 (MS-DOSから起動し、80386のプロテクトモードを使用できる)
[編集] UNIX
80386搭載PCは「高額」とは言っても、当時隆盛していたRISCワークステーション等よりは大幅に安価であったため、より大規模なシステムで利用されていたUNIXなどの32ビットオペレーティングシステム環境をこれら安価なパーソナルコンピュータに移植する試みが、80386の登場によって始められた。386BSD(後のFreeBSDおよびNetBSD)やLinuxなど、今日の代表的なPC-UNIX系環境の移植やビルドが始められた理由は、80386の登場によってパーソナルコンピュータがこれらの近代的な32ビットオペレーティングシステム環境を実現するだけの機能や性能を持ちえるに至ったからに他ならない。
[編集] PS/2について
下記の説があるが、PS/2は初期モデルより80386も搭載しており、正しくない(PS/2#モデルを参照)。PS/2とOS/2の混同と思われる(Windowsを持つマイクロソフトはOS/2 1.x を最初から80386専用に希望し、IBMは広く80286以上に希望した。PS/2で80386を搭載しなかったのではない。)
- 80386はマイクロソフトと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命令)は、登場から15年以上が経過した現在のPentium 4を始め、80x86系のさまざまな互換CPUにおいても継承され続けており、単にPCとしてのみならず、情報技術の発展と普及を担う、これまでに最も普及した命令アーキテクチャと言える。
2006年現在においても80386は少量ながら製造されている。主な用途は軍事向けで有名な物としてパトリオットミサイルに搭載されている。
[編集] 関連項目
[編集] 脚注
- ^ "376TM HIGH PERFORMANCE 32-BIT EMBEDDED PROCESSOR (英語)" (PDF) 2002-09-12. 2008-04-06閲覧.
- ^ "Intel386™ Processors (英語)" 2002-09-12. 2008-04-06閲覧.
|
|
---|---|
生産終了 | 4004, 4040, 8008, 8080, 8085, 8086, 8088, iAPX 432, 80186, 80188, 80286, 80386, i486, i860, i960, Pentium, MMX Pentium,Pentium Pro, Pentium II, Pentium III, Pentium 4, Pentium D, Pentium M, Pentium Extreme Edition, Itanium, StrongARM, XScale |
生産中 | Celeron, Pentium Dual-Core, Xeon, Core, Core 2, A100, Atom, Itanium 2 |
開発中 | Nehalem, Sandy Bridge, Larrabee, |
x86プロセッサ以外は斜体 |