一文搞懂 x64 IA-64 AMD64 Inte64 IA-32e 架構之間的關係

chaoguo1234發表於2023-05-03

想要搞清楚 x64、IA64、AMD64 指令集之間的關係,就要先了解 Intel 和 AMD 這兩家公司在生產處理器上的發展歷史。

x86 處理器

1978年 Intel 生產了它的第一款 16bit 處理器8086,之後幾款處理器名字也都以86結尾,包括80186,80286, 80386,80486,這些處理器的架構被統一稱為 x86 架構。其中8086、80186、80286是 16bit 處理器,80386和80486是 32bit 處理器,32bit 處理器向前相容 16bit 的處理器。由於指令集屬於處理器架構層面,因此這些處理器使用的指令集被稱為 x86 指令集。後來 Intel 生產了比如奔騰、Xeon 等新的 32bit 處理器,它們仍然使用 x86 架構。

The CPU architecture defines the basic instruction set, and the exception and memory models that are relied on by the operating system and hypervisor.

The CPU microarchitecture determines how an implementation meets the architectural contract by defining the design of the processor and covering such things as: power, performance, area, pipeline length, and levels of cache.

針對 32bit 的 x86 系列處理器,Intel 給了一個全新的處理器架構名字 IA-32。同時由於 80386 是 Intel 第一款 32bit 處理器,32bit 的 x86 系列處理器也被稱為 i386 處理器。總之,IA-32 與 i386 處理器都是指 Intel 的 32 bit 處理器,而 x86 處理器可能是 32bit 的,也可能是 16bit 的。但是無論是 32bit 還是 16bit,他們都屬於 x86 架構,使用 x86 指令集。

合作

當1978年 Intel 生產出它的 x86 處理器時,1981年 IBM 生產了第一臺個人 PC 電腦,並且希望搭載 Intel 的 x86 處理器。不過,為了防止 Intel 作為 x86 處理器唯一的供應商後期一家獨大,IBM 留了一個心眼,提出 Intel 如果想合作,就必須授權另一家公司,也能生產 x86 處理器。為了達成這次合作,Intel 找到了 AMD 公司,簽了一個10年期協議,將 x86 架構授權給 AMD,讓 AMD 可以生產基於 x86 架構的處理器。

 

AMD(Advanced Micro Devices) 公司早期主要從事儲存器生產,生產的儲存器也會賣給 Intel 公司使用。1975年,AMD 開始涉足處理器市場,但是當時對 Intel 還夠不成威脅。透過1981年這次和 Intel 的合作,AMD 經過10年來發展迅猛,已經成為 Intel 在處理器市場上最大的一個勁敵,Intel 完全可以說是養虎為患。

 

由於 AMD 和 Intel 生產的 CPU 都是基於 x86 架構,所以,在使用 Intel 處理器電腦上能執行的軟體,在使用 AMD 處理器上的電腦也可以執行。

 

x64 處理器

時間來到1999年,Intel 向世界宣佈了它全新的 64bit 處理器安騰,其使用的架構被命名為 IA-64。不過由於 Intel 過於激進,IA-64 架構並不相容 x86 處理器,也就是原先眾多執行在 x86 處理器上的 32bit 軟體,完全不能執行在 IA-64 處理器上。這種不相容問題,很快讓 Intel 遭遇了滑鐵盧,基於 IA-64 架構的安騰處理器並未得到市場的廣泛認可。

 

就在 Intel 宣佈安騰處理器的第二天,AMD 公司也向世界公佈了自己全新的 64bit 處理器架構 AMD64。AMD64 架構可以看成是 x86 架構的擴充套件,完全向下相容 x86 處理器,得到了市場的強烈反響。Intel 眼見大事不妙,趕忙調整了技術方向,放棄了之前的 IA-64 架構,採用了幾乎與 AMD64 完全一樣的技術方案,實現了自己的相容 x86 處理器的 64bit 架構。不過為了面子,Intel 一開始將自己的 64bit 架構命令為 EM64T,後來又改為 IA-32e,再後來又改為 Intel64,總之就是隻字不提 AMD 三個字。

 

由於 Intel 和 AMD 64bit 處理器都是遵循同樣的架構,因此它們被統一被稱為 x64 處理器。

 

相關文章