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位元擴充。