IA-32 (「 Intel Architecture, 32-bit 」の略で、一般的にi386 [ 1 ] [ 2 ]と呼ばれる)[ 3 ]は、 x86命令セットアーキテクチャの32ビットバージョンであり、Intelによって設計され、1985年に80386マイクロプロセッサに初めて実装されました。IA -32は、32ビットコンピューティングをサポートする最初のx86の形態です。 [ 4 ]そのため、「IA-32」という用語は、32ビットコンピューティングをサポートするすべてのx86バージョンを指す換喩として使用されることがあります。 [ 5 ] [ 6 ]
様々なプログラミング言語命令において、IA-32は依然として「i386」アーキテクチャと呼ばれることがあります。また、IA-32 ISAの特定のイテレーションは、それぞれ80486、P5、P6マイクロアーキテクチャが提供する命令スーパーセットを指して、 i486、i586、i686と呼ばれることもあります。これらのアップデートでは、基本IA-32命令セットに加えて、浮動小数点機能やMMX拡張など、数多くの追加機能が提供されました。
歴史的に、Intel は IA-32 プロセッサの最大の製造業者であり、第 2 位のサプライヤーはAMDでした。1990 年代には、VIA、Transmetaおよびその他のチップ製造業者も IA-32 互換プロセッサ ( WinChipなど) を製造しました。現代でも、Intel は2019 年までIntel Quarkマイクロコントローラプラットフォームで IA-32 プロセッサを製造していましたが、2000 年代以降、製造業者の大多数 (Intel を含む) は、x86 の 64 ビット版であるx86-64に基づく CPU の実装にほぼ完全に移行しました。x86-64 は、仕様上、下位互換性のために IA-32 ISA で動作するレガシー動作モードを提供しています。 x86-64が現在普及しているにもかかわらず、今日では、Microsoft Windows ( Windows 10まで)[ 7 ] 、 Windows Server ( Windows Server 2008まで)[ 8 ] 、 Debian Linuxディストリビューションなど、多くの最新のオペレーティングシステムのIA-32保護モードバージョンがまだ維持されています。[ 9 ] IA-32という名前にもかかわらず(そして潜在的な混乱を引き起こしますが)、AMDから始まったx86の64ビット進化は「IA-64」として知られておらず、その名前は代わりにIntelの廃止されたItaniumアーキテクチャに属しています。
IA-32の主な特徴は、32ビット汎用プロセッサレジスタ(EAXやEBXなど)、32ビット整数算術演算および論理演算、保護モードにおけるセグメント内32ビットオフセット、そしてセグメントアドレスを32ビットリニアアドレスに変換する機能です。設計者はこの機会を利用して、他にも改良を加えました。16ビットの286命令セット と比較して、最も重要な変更点は次のとおりです。
| 動作モード | 必要な オペレーティング システム | 実行されるコードの種類 | デフォルトのアドレスサイズ | デフォルトのオペランドサイズ | 典型的なGPR幅 |
|---|---|---|---|---|---|
| 保護モード | 32ビットオペレーティングシステムまたはブートローダー | 32ビット保護モードコード | 32ビット | 32ビット | 32ビット |
| 16ビットの保護モードのオペレーティングシステムまたはブートローダー、または32ビットのブートローダー | 16ビット保護モードコード | 16ビット | 16ビット | 16ビットまたは32ビット | |
| 仮想8086モード | 16 ビットまたは 32 ビットの保護モード オペレーティング システム | 16ビットリアルモードコード | 16ビット | 16ビット | 16ビットまたは32ビット |
| リアルモード | 16ビットリアルモードオペレーティングシステムまたはブートローダー、または32ビットブートローダー | 16ビットリアルモードコード | 16ビット | 16ビット | 16ビットまたは32ビット |
| アンリアルモード | 16ビットリアルモードオペレーティングシステムまたはブートローダー、または32ビットブートローダー | 16ビットリアルモードコード | 32ビット | 16ビット | 16ビットまたは32ビット |
指定されたアーキテクチャへの Thin Universal バイナリは [...] "i386", "x86_64" などと指定する必要があります。
プロセッサは、IA-32アーキテクチャファミリにおける最初の32ビットプロセッサでした。このプロセッサは、オペランドの保持とアドレス指定の両方に使用できる32ビットレジスタを導入しました。