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ビット外部バスを意味する) がi386シリーズに加わり、従来の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ビット対応を全く考えていなかったため、その拡張方式は強引かつ醜悪でオペレーティングシステム移植者を嘆かせるものであったとさえ言われるが、80386のプログラム上の柔軟性は、その悪名高き80286に比べ飛躍的に向上している。
プロテクトモード上には、複数の8086を仮想的に動作させうる仮想86モードが追加された。32ビット化にあわせてアドレス空間も4GB(32ビット)に拡張された。プロテクトモード上では、従来のセグメント構造がセレクタと呼ばれる構造になっており、また可変長のセグメントに加えて固定長のページ単位によるメモリ管理も追加され、これによって近代的なオペレーティングシステムの開発・移植が容易になったと言われている。
[編集] その他のi386シリーズ
[編集] 80386SX
開発コード名P9。命令セットは80386と互換性があるが、外部アドレス幅を24ビット (16MB)、外部データバスを16ビット幅に縮小し、システム(システム基板、メモリを含む)のトータル的なコストダウンと、既存の80286搭載PCをほとんど仕様変更せずにCPU換装を可能として、当時急速にシェアを拡大しつつあったAMDなどのセカンドソース版80286を駆逐することを念頭に置いて設計されたCPUである。 特にメモリのバス幅が狭いことからプロテクトモードの利用は性能の低下が激しかったが、それでもこのCPUを採用することで、PCメーカーは従来の286マシンをわずかな手直しを施すだけで「32ビットマシン」として販売することが可能となり、またユーザー側にもWindows 3.0の動作が可能になるというメリットがあったため、一時は広く普及した。
[編集] 80386SL
386SXをベースに、システムマネジメントモードを追加し、サスペンドやレジューム機能などに対応させたCPU。現在のモバイル用CPUの先駆けといえる。また、日本電気がインテルに発注して製造された、PC-9800シリーズアーキテクチャ専用のCPU、80386SL(98)もある。
[編集] その他
32ビットCPUとして登場したものの、当時のPC市場にはその機能を活用できるオペレーティングシステムは存在しておらず、単に高速な80x86CPUとして、主にMS-DOS環境で使われるに過ぎなかった。
MS-DOS環境における利点は、仮想86モードで動作するソフトウェア (EMM386.EXE) により、高速・広帯域のプロテクトメモリを転用することで、EMSメモリをハードウェアEMSと同等、またはそれ以上の性能で実現できた事である。しかしこれも本来の80386の機能・スペックからすると中途半端な使い方であり、80386本来の機能を活かし切るには程遠いものであった。
また仮想86モードの使用はI/Oアクセスなどの際にトラップを発生させ、その処理と復帰に数十サイクル程度の時間を要するため、25MHzや33MHzの80386であっても、処理によっては12MHzの80286と大差ない状況や、場合によってはむしろ劣るといった状況をも招いてしまう事もあった。(ただし、通常の演算処理やメモリ操作に関しては、CPUおよびメモリの駆動クロックの差が実効性能に反映されるため、これは都合の悪い処理をピンポイント的に繰り返した際の話にすぎない)
また「高額」とは言っても、当時隆盛していたRISCワークステーション等よりは大幅に安価であったため、より大規模なシステムで利用されていたUNIXなどの32ビットオペレーティングシステム環境をこれら安価なパーソナルコンピュータに移植する試みが、80386の登場によって始められた。386BSD(後のFreeBSDおよびNetBSD)やLinuxなど、今日の代表的なPC-UNIX系環境の移植やビルドが始められた理由は、80386の登場によってパーソナルコンピュータがこれらの近代的な32ビットオペレーティングシステム環境を実現するだけの機能や性能を持ちえるに至ったからに他ならない。
その後、80386のアーキテクチャを前提として新たに開発されたOS/2 2.0やWindows NTが市場に登場するが、その頃にはi386では既に力不足となっており、より高速なi486やPentiumプロセッサがその後を受け継ぐこととなった。
i386はマイクロソフトとIBMの(IBMがPS/2にi386を採用しなかった事を発端にした)対立の煽りをまともに受けた悲運のMPUでもある。
IBMはPC/ATの後継機種として、PS/2の開発を始めた。当時i386は既に販売されており、PS/2に搭載する事は物理的には可能であった。しかし、PS/2にi386を搭載した場合、自社製のオフィスコンピュータとの性能差がほとんど無くなりオフィスコンピュータ市場を圧迫する事などを嫌ったIBMはPS/2に80286を搭載する事にした。
マイクロソフト側としては、OS/2の実装に際してi386の機能を利用したいと考えていた様で、何度もIBMに対してPS/2へi386を採用するように要請していた。
この対立が元で、IBMとマイクロソフトとの蜜月が終り、マイクロソフトがOS/2から撤退しWindows NTの開発を始める事になった。
この決断によりi386ネイティブのオペレーティングシステム開発が遅れ、完成した頃にはi486の時代へと移っていたのである。
i386で実装された32ビット命令(のちのIA-32命令)は、登場から15年以上が経過した現在のPentium 4を始め、80x86系のさまざまな互換CPUにおいても継承され続けており、単にPCとしてのみならず、IT技術の発展と普及を担う、これまでに最も普及した命令アーキテクチャと言える。
2006年現在においてもi386は少量ながら製造されている。主な用途は軍事向けで有名な物としてパトリオットミサイルに搭載されている。
[編集] 関連項目
インテルのプロセッサ一覧 |
---|
4004 | 4040 | 8008 | 8080 | 8085 | 8086 | 8088 | iAPX 432 | 80186 | 80188 | 80286 | 80386 | i486 | i860 | i960 | Pentium | Pentium Pro | Pentium II | Celeron | Pentium III | StrongARM | XScale | Pentium 4 | Pentium M | Pentium D | Pentium E | Pentium Extreme Edition | Xeon | Core | Core 2 | Itanium | Itanium 2 (x86プロセッサ以外は斜体です) |