初期の x86 プロセッサモデル

最終更新: 2024-01-17 22:54:22 +0800 +0800
原文は英語で書かれています。あなたはAI翻訳版を読んでいます。

プロセッサモデルは ISA の系譜を共有しますが、バス、パッケージ、クロック、 統合周辺機器、マイクロアーキテクチャは異なります。したがって、ソフトウェア互換性が 同一の基板レベル動作を意味するわけではありません。

Intel 8086 および 8088 #

8086 と 8088 は同じ 16 ビット命令セットを実行し、20 ビットのアドレス空間を使用して 1 MiB の物理メモリを提供します。両者の主な外部的な違いはデータバスです。8086 は 16 ビットバスを備える一方、8088 は 8 ビットバスを備えます。バス幅を縮小したことで、 8088 は当時の低コスト周辺機器に接続しやすくなりましたが、16 ビット転送では追加の バスサイクルが必要になりました。

両設計ではアドレスピンとデータピンが多重化されているため、外部ラッチがバスサイクル中に アドレスを保持します。MN/MX 入力は、単一プロセッサシステム向けの最小モードと、 外部バスコントローラおよびコプロセッサを使用するシステム向けの最大モードを選択します。

セグメントは 16 バイト境界から開始し、CS、DS、SS、ES を介してアドレス指定されます。 ファーポインタはオフセットとセグメント値を格納します。これは線形 32 ビットアドレスでは ありません。

x86 プロセッサパッケージ

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 で閲覧・コメントする(投稿にはログインが必要です)