このキーワード
友達に教える
URLをコピー

Intel_80386とは?

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。
出典を追加して記事の信頼性向上にご協力ください。(2018年10月)
80386
i386DX 33MHz

【生産時期】
1985年から2007年9月まで
【生産者】
インテル
CPU周波数 12 MHz から 40 MHz
【プロセスルール】
1.5μm から 1μm
命令セット
x86 (IA-32)
【パッケージ】
132ピンPGA・PQFP
100ピン PQFP

Intel 80386(またはi386)はインテル32ビットマイクロプロセッサ (CPU) である。1985年10月に発表され、x86アーキテクチャを32ビットに拡張し、レジスタを強化した。インテルが現在使用している名称はIntel386プロセッサ (Intel386 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として使われていたために32ビット機能を使えなくても重大な支障はなかった。PC-9800シリーズ初の32ビット機「PC-98XL」に採用された例では、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が追加された。プロテクトモード上ではセグメントレジスタは単にセグメントアドレスを格納するのではなく、メモリ上のセグメントディスクプリタを指すためのセレクタとなっており、レジスタサイズは16ビットのままである。

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

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

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

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

アーキテクチャ

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

80386の判別

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

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

またリセット直後のEDXレジスタには、後のCPUIDのEAX=1に相当するCPUの識別情報(プロセッサ・シグネチャ)が格納されるようになったため、これが利用できる状況ならばそれを使うこともできる(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である。 特にメモリのバス幅が狭いことからプロテクトモードの利用は性能の低下が激しかったが、それでもこの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

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

80386EX

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

RapidCAD

詳細は「w:RapidCAD」を参照

80386ピン互換の486DX相当プロセッサだが、プロセッサ・シグネチャは386系を示すx3xx (0340) を返す。FPU内蔵のため、数値演算コプロセッサのソケットにはダミーを挿して使う。

IBM製

詳細は「IBM 386SLC」を参照

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 486SLC

IBM 386SLCの改良版。内蔵キャッシュ16Kを搭載。内部32ビット、外部データバス16ビットのまま、内蔵キャッシュ16Kにより486SXと同レベルの性能を実現。ThinkPadなどに搭載。名称こそ486SXに類似するものの、486SXのIBM改良版ではなく、コアは386SL (386SX) ベースである。

IBM 486SLC2

IBM 486SLCのダブルクロック版。内部32ビット、外部データバス16ビット、ダブルクロックのまま、内蔵キャッシュ16Kを搭載。PS/VThinkPadなどに搭載。比較的後年までCPUアクセラレータにも使われた。

影響

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

その後、80386のアーキテクチャを前提として新たに開発された32ビットOSとして、OS/2 2.0やWindows NTが市場に登場するが、その頃には既に80486が登場しており、80386は下位機種向けで外部16ビットバスの386SXが主流となりつつあった。外部16ビットのシステムで32ビットOSを動かすには力不足が明白であり、結果的により高速な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として以下が登場した。

UNIX

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ビットオペレーティングシステム環境を実現するだけの機能や性能を持ちえるに至ったからに他ならない。

その後の状況

80386で実装された32ビット命令(のちのIA-32命令)は、登場から30年以上が経過したが、上位互換を保ったCPUがインテルから提供され続けている他、AMDVIAが発売しているx86系のさまざまな互換CPUにおいても継承され続けており、ほとんどのパーソナルコンピュータと多くのサーバで採用され続けている。80386の命令アーキテクチャは、組み込みシステムで圧倒的なシェアを誇るARMアーキテクチャと並び、これまでに最も普及した命令アーキテクチャと言える。80386以降のIA-32プロセッサでは基本命令の追加はあまりなく、MMXSSE、SSE2、SSE3などのSIMD命令の追加が主であった。

関連項目

脚注

注釈

  1. ^ ただし、同一クロック周波数・どちらもリアルモードでも386より286の方が高速である。386をプロテクトモードにすると(MS-DOSで使っていても拡張メモリマネージャを使うためにはその必要がある)さらにその差は開く。そのためかインテルは16MHz以上の286を出さなかった。逆に286のセカンドソーサや286互換CPUメーカーは、16MHz以上、果てはメーカーによっては25MHzという高速の286を製造・販売した。
  2. ^ セグメント方式#x86を参照
  3. ^ 64KBを超えるアクセスには予めセグメントリミットの変更が必要。リアルモードを参照
  4. ^ うち2本は予約されているのみで、機能は無い。
  5. ^ 例えば80286用に作られたソフトウェアがプロテクトモードからリアルモードに戻るときの外部ハードウェア機構を利用することで、CPUをリセットしつつも、OSは処理を続行することができる(ただし復帰処理の際にDXレジスタが保存されるか否かは機種によって異なる)。また、PC-98ではメモリアドレス0000:0486に保存される。

出典

  1. ^ http://download.intel.com/design/intarch/manuals/24319001.PDF
  2. ^ en:Intel_80286
  3. ^ インテル(R) プロセッサの識別とCPUID命令 (PDF)” (英語・日本語). インテル. 2017年12月23日閲覧。
  4. ^ BIOSが使用するシステム共通域 (プレーンテキスト)”. ウェブテクノロジ. 2018年1月8日閲覧。
  5. ^ ピクニック企画, 堤大介, ed (1990-03-01). “i 80386SX” (日本語). 『電脳辞典 1990's パソコン用語のABC』. ピクニック企画. pp. 309. ISBN 4-938659-00-X. によれば、データ処理能力は20%ほどの低下を来す。
  6. ^ 376TM HIGH PERFORMANCE 32-BIT EMBEDDED PROCESSOR (PDF)” (英語) (2002年9月12日). 2008年4月6日閲覧。
  7. ^ Intel386™ Processors” (英語) (2002年9月12日). 2008年4月6日閲覧。
  8. ^ Intel 8087からRapidCADまで コプロセッサーの歴史”. ASCII.jp (2013年7月22日). 2020年3月29日閲覧。
インテルマイクロプロセッサ
生産終了 | 
x86以前(4ビット) | 

x86以前(8ビット) | 

x86(x86-16、16ビット) | 

IA-32(x86-32、32ビット) | 

x64(x86-64、64ビット) | 

その他 | 


現行 | 
IA-32(x86-32、32ビット) | 

x64(x86-64、64ビット) | 

IA-64(64ビット) | 


その他 | 

マイクロ
アーキテクチャ
 | 
P5 | 
P5ベースのコア
0.90 μm | 

0.60 μm | 

0.35 μm | 

0.25 μm | 


P6 | 
P6ベースのコア
0.50 μm | 

0.35 μm | 

0.25 μm | 

180 nm | 

130 nm | 

90 nm | 

65 nm | 


NetBurst | 
NetBurstベースのコア
180 nm | 

130 nm | 

90 nm | 

65 nm | 


Core | 
Coreベースのコア
65 nm | 

45 nm | 


Atom | 
Atomのマイクロアーキテクチャ
45 nm | 

32 nm | 

22 nm | 

14 nm | 


Nehalem | 
Nehalemベースのコア
45 nm | 

32 nm | 


Sandy Bridge | 
Sandy Bridgeベースのコア
32 nm | 

22 nm | 


Haswell | 
Haswellベースのコア
22 nm | 

14 nm | 


Skylake | 
Skylakeベースのコア
14 nm | 

10 nm | 


Ice Lake | 
Ice Lakeベースのコア
10 nm | 




・・・・・・・・・・・・・・・・・・
出典:wikipedia
2020/04/02 12:23

HAPPY Wikipedia

あなたの考える「Intel_80386」の意味を投稿しよう
「Intel_80386」のコンテンツはまだ投稿されていません。
全部読む・投稿 

Intel_80386スレッド一覧

・・・・・・・・・・・・・・・・・・
「Intel_80386」のスレッドを作成する
Intel_80386の」
友達を探す
掲示板を探す
このページ
友達に教える
URLをコピー

注目のキーワード

錦織圭/北島康介/2014_FIFAワールドカップ・アジア予選/サッカー日本女子代表/消費税/東京スカイツリー/ダルビッシュ有/イチロー/香川真司/野田内閣/復興庁/石川遼/HKT48/AKB48/ワールド・ベースボール・クラシック日本代表/黒田博樹/尖閣諸島/バレンタインデー/ONE_PIECE

キーワードで探す

 
友達を探す
掲示板を探す
ハッピーWiki
ハッピーメール
ハッピーランド
HAPPY NEWS
2010Happy Mail