IA-32
此条目可参照英語維基百科相應條目来扩充。 (2022年7月17日) |
英特爾32位元架構(英語:Intel Architecture, 32-bit,縮寫為IA-32),常被稱為i386、或x86,由英特爾公司於1985年推出的指令集架構。它是8086架構的延伸版本,可支援32位元運算,首次應用在Intel 80386晶片中。
歷史
[编辑]IA-32架構屬於複雜指令集,由英特爾公司開發,1985年,隨著Intel 80386微處理器的上市,被公之於世。接下來20年的時間,雖然後繼的新型晶片運算速度不斷增加,但IA-32架構大體上都沒有改變。對許多程式語言來說,IA-32與i386是同義詞。
英特爾也是世界上最大的IA-32晶片供應商,AMD則是第二大的供應商。2011年,英特爾與AMD同時採用了新的x86-64架構,但是x86架構仍然被應用在如Intel Atom(N2xx與Z5xx系列)、AMD Geode等晶片上。威盛電子生產的VIA C3/C7,也仍然採用IA-32架構。
架构特征
[编辑]IA-32在保留早期16位x86软件兼容性的基础上,引入了32位通用寄存器、32位整数运算以及扩展的内存寻址能力。
寄存器与运算
[编辑]IA-32将原有的16位通用寄存器扩展为32位。例如,AX、BX、CX和DX分别是EAX、EBX、ECX和EDX的低16位。处理器可以执行32位整数运算,并通过指令前缀指定部分操作数大小和地址大小。
寻址方式
[编辑]IA-32支持使用基址寄存器、变址寄存器、比例因子和位移量组合计算有效地址。比例因子可以是1、2、4或8。该架构还增加了FS和GS两个段寄存器。
内存管理
[编辑]IA-32支持分段和分页。分段机制将逻辑地址转换为线性地址;启用分页后,线性地址再通过页表转换为物理地址。
IA-32的线性地址宽度为32位,因此其线性地址空间最大为4 GiB。支持物理地址扩展(PAE)的处理器可以访问超过4 GiB的物理内存,但不会因此扩大32位线性地址空间本身。
运行模式
[编辑]IA-32相关的x86处理器支持多种运行模式:
- 实模式:提供与早期Intel 8086软件兼容的运行环境。
- 保护模式:提供特权级、分段保护和分页等机制,是传统32位操作系统的主要运行环境。
- 虚拟8086模式:允许处理器在保护模式下执行部分8086程序,由操作系统管理其运行环境。
实际可用的功能取决于处理器型号及其运行状态。
与x86-64和IA-64的区别
[编辑]x86-64是x86指令集架构的64位扩展,最初由AMD实现,英特尔随后以Intel 64的名称实现兼容架构。x86-64扩展了通用寄存器、地址空间及相关指令功能,同时保留了运行IA-32兼容代码的机制。
IA-64则是英特尔为Itanium处理器开发的另一种指令集架构,并不是IA-32的64位扩展。