プロセッサモデルは ISA の系譜を共有しますが、バス、パッケージ、クロック、 統合周辺機器、マイクロアーキテクチャは異なります。したがって、ソフトウェア互換性が 同一の基板レベル動作を意味するわけではありません。
Intel 8086 および 8088 #
8086 と 8088 は同じ 16 ビット命令セットを実行し、20 ビットのアドレス空間を使用して 1 MiB の物理メモリを提供します。両者の主な外部的な違いはデータバスです。8086 は 16 ビットバスを備える一方、8088 は 8 ビットバスを備えます。バス幅を縮小したことで、 8088 は当時の低コスト周辺機器に接続しやすくなりましたが、16 ビット転送では追加の バスサイクルが必要になりました。
両設計ではアドレスピンとデータピンが多重化されているため、外部ラッチがバスサイクル中に
アドレスを保持します。MN/MX 入力は、単一プロセッサシステム向けの最小モードと、
外部バスコントローラおよびコプロセッサを使用するシステム向けの最大モードを選択します。
セグメントは 16 バイト境界から開始し、CS、DS、SS、ES を介してアドレス指定されます。
ファーポインタはオフセットとセグメント値を格納します。これは線形 32 ビットアドレスでは
ありません。

80186 および 80188 #
80186 と 80188 は 8086/8088 のコアにおける違いを維持しながら、タイマ、割り込み制御、 DMA、チップセレクトロジックなどの周辺機器を統合しています。この統合は組み込みシステムに 適していましたが、PC 互換システムでは周辺機器を個別に設計していたため、直接的な PC 用 CPU 置換製品としては採用されませんでした。
この 2 つのプロセッサは、後続の x86 プロセッサで使用される命令も追加しています。これには
PUSHA、POPA、PUSH の即値形式、符号付き即値 IMUL、ENTER、LEAVE、BOUND、
およびストリングポート I/O が含まれます。前の 2 つと同様に、80186 は外部データバスとして
16 ビットバスを備え、80188 は 8 ビットバスを備えます。
モデル、パッケージ、クロックの境界 #
プロセッサ名だけでは、単一の物理部品を特定できません。Intel はこれらのファミリの プロセッサを複数のパッケージおよび速度グレードで出荷し、互換ベンダーも追加の実装を 製造しました。クロック定格は、該当するデータシートにおける入力周波数または動作周波数を 示すものであり、1 秒あたりの命令数を示すものではありません。バス幅、ウェイトステート、 プリフェッチ動作、周辺機器のタイミングにより、同じクロック定格の部品でも動作は異なる 可能性があります。
最新のプロセッサでの識別 #
最新の x86 プロセッサは、その命令を実装している場合、CPUID を通じてファミリ、モデル、
ステッピングを報告します。オペレーティングシステムは、これらの識別子を機能ビットと
組み合わせて、緩和策、性能ポリシー、回避策を選択します。ISA 命令を選択する際の正しい
基準はファミリ番号ではなく機能ビットです。これは、異なるモデルが異なるオプション拡張を
公開する可能性があるためです。
電気的なピン割り当て、パッケージ規則、タイミング要件は、特定のプロセッサのデータシート に記載されています。ISA マニュアルはソフトウェア契約を説明するものですが、これらの 基板レベルの文書の代替にはなりません。同様に、歴史的なモデル名から、実モード、保護モード、 互換モード、64 ビット実行モードであることを推測することはできません。ソフトウェアは 現在のモードを確立し、サポートされている機能を照会する必要があります。
コメント
GitHub で閲覧・コメントする(投稿にはログインが必要です)