Intel 80186は、
インテルが1982年6月に発表した、主に
組み込みシステム用途の
マイクロプロセッサ、または
マイクロコントローラです。このプロセッサは、同年の2月に発表された80286のリアルモードと同様に、11個の命令が追加されています。しかし、80286以降のチップとは異なり、命令セットアーキテクチャの大幅な拡張はなく、8086と同世代のアーキテクチャに基づいていました。
マイクロコントローラとしての性格
80186は、コアの拡張ではなく、周辺IC(クロックジェネレータ、割り込みコントローラ、タイマ、DMAC、チップセレクタ)をオンダイに組み込むことで、
マイクロコントローラとしての性格を強く持っています。このため、
組み込みシステム向けの用途に適した特徴を備えています。
性能向上
一部命令の実行クロック数が削減されたことにより、同一クロックで動作するi8086と比較して、約1.3倍程度の性能向上が見られました(命令によって異なります)。
パッケージ形状
独特なパッケージ形状はCLCC(セラミック・リードレス・チップ・キャリア)と呼ばれ、専用のソケットを使用しなければ基板に実装できませんでした。その後、PLCC、QFP、PGAなど他のパッケージも供給されるようになり、パッケージ形状はそれぞれR(CLCC)、N(PLCC)、S(QFP)、A(PGA)としてチップ名の先頭で区別されました。
パーソナルコンピュータでの使用
IBM PCなどで使用されているDMACとは互換性がないため、
パーソナルコンピュータ(PC)での使用は限定的で、主に部品点数削減が重要なブック型パソコンで使用された程度です。
互換プロセッサ
同時期にNECが展開していた8086互換プロセッサであるVシリーズの中では、V35/V25が機能的に80186と類似しています。
追加・仕様変更された命令
80186には、80286に追加された新たな命令のうち、プロテクトモードや80287に関連しない汎用の命令11個が採用されました。これらの命令は、286命令の一部でありながら、数字的に186よりも大きい数字のプロセッサで使用できるようになったため、「186命令」などと呼ばれることもあります。
追加された命令は以下の通りです。
`ENTER`: プロシージャのスタックフレームを作成
`LEAVE`: 高水準プロシージャの終了処理
`PUSHA`: すべての汎用レジスタをスタックにプッシュ
`POPA`: スタックからすべての汎用レジスタをポップ
`BOUND`: 配列のインデックスが範囲内にあるかを確認
`INS`: 文字列を入力
`INSB`: 文字列を1バイト入力
`INSW`: 文字列を1ワード入力
`OUTS`: 文字列を出力
`OUTSB`: 文字列を1バイト出力
`OUTSW`: 文字列を1ワード出力
また、以下の10命令に対しても、オペランドにイミディエイト(即値)を使用できる
アドレッシングモードが追加されました。シフト/ローテイト命令では、ビット数として指定できる有効な値が31以下に変更され、それより大きな値を指定しても下位5ビット分しか認識されなくなりました。
`IMUL`: 整数乗算
`PUSH`: ワードをスタックにプッシュ
`RCL`: キャリー付き左ローテート
`RCR`: キャリー付き右ローテート
`ROL`: 左ローテート
`ROR`: 右ローテート
`SAL`: 算術左シフト
`SHL`: 論理左シフト
`SAR`: 算術右シフト
`SHR`: 論理右シフト
さらに、8086では8087命令の使用中にWAIT命令で
CPUを停止させる必要がありましたが、80186では自動的にタイミングが調整されるようになったため、8087命令の前に必ずしもWAIT命令を挿入する必要がなくなりました。
その他の80186シリーズ
80188: 外部データバス幅が
8ビットの
CPUで、8086に対する8088に相当します。
18677: 16MBのメモリを扱えるように機能拡張されたモデルで、
富士通と
インテルジャパンが共同開発しました。
80C186XL/80C188XL: 80186/80188を
CMOS化し、高クロック(16MHz)と低消費電力を実現したモデルです。
80C186Ex/80C188Ex: シリアルインターフェイスなどの周辺ICを追加し、3V動作やパワーマネジメント機能を追加したモデルです。
参考文献
成田佳應、『80x86/x87ハンドブック』、ナツメ社、1995年。
関連項目
x86
Intel 8086
Intel 80286
Intel 80386
*
FM-16β - シリーズの最初の機種は本
CPUを搭載しています。