64位版本為什麼叫amd64,而不是intel64

前言

今天有朋友問,為什麼軟件版本會註明 for amd64版本,不是intel64呢?

64位版本為什麼叫amd64,而不是intel64


X86

X86架構(The X86 architecture)是微處理器執行的計算機語言指令集,指一個intel通用計算機系列的標準編號縮寫,也標識一套通用的計算機指令集合。

1978年6月8日,Intel發佈了新款16位微處理器“8086”,也同時開創了一個新時代:x86架構誕生了。

在40年的發展史中,x86家族不斷壯大,從桌面轉戰筆記本、服務器、超級計算機、編寫設備,期間還挫敗或者限制了很多競爭對手的發展,讓不少處理器廠商及其架構技術成為歷史名字,即使有些封閉發展的也難以為繼,比如蘋果就已經放棄PowerPC了。

64位版本為什麼叫amd64,而不是intel64

AMD64/x86-64

x86-64有時會簡稱為“x64”,是64位微處理器架構及其相應指令集的一種,也是Intel x86架構的延伸產品。“x86-64”1999由AMD設計,AMD 首次公開 64 位集以擴充給 IA-32,稱為 x86-64(後來改名為 AMD64)。 AMD64架構在IA-32上新增了64位寄存器,併兼容早期的16位和32位軟件,可使現有以x86為對象的編譯器容易轉為AMD64版本。

由於AMD64和Intel64基本上一致,很多軟硬件產品都使用一種不傾向任何一方的詞彙來表明它們對兩種架構的同時兼容。出於這個目的,AMD對這種CPU架構的原始稱呼 - “x86-64”被不時地使用,還有變體“x86_64”。其他公司如微軟和Sun在營銷資料中使用“x64”作為對“x86-64”的縮寫。

許多操作系統及產品,尤其那些是在Intel進入這塊市場之前就引入“x86-64”支持的,使用“AMD64”或“amd64”同時指代AMD64和Intel64。

64位版本為什麼叫amd64,而不是intel64


EM64T

Intel的EM64T技術,EM64T技術官方全名是Extended Memory 64 Technology,中文解釋就是擴展64bit內存技術。

EM64T本質上和AMD64一樣都是IA-32的增強版本,Xeon藉助於EM64T可實現高達1TB(40bit)的物理內存尋址和256TB(48bit)的虛擬內存尋址,並且良好地支持現有32位x86代碼的執行,這一點跟AMD64無異,同時也是Intel開發EM64T的出發點—讓現有的x86指令集能夠執行64位代碼,而繼續保持對32位代碼的良好兼容。

64位版本為什麼叫amd64,而不是intel64


IA-64

Intel在之前已在Itanium處理器上使用了自家的64位IA-64技術,雖然說Intel 64也是64位,但兩者並不兼容,即IA-64的軟件不能直接在Intel 64上運行。Intel 64所用的x86-64是IA-32指令集的延伸,而IA-64則是另一款獨立的架構,沒有任何IA-32的影子。雖然IA-64可通過模擬來運行IA-32的指令,但指令在運行前需經轉換,才能在IA-64上運行,導致其速度變慢。由於x86-64是從IA-32派生而來,因此運行IA-32與64位程序的表現也顯得綽綽有餘。


64位版本為什麼叫amd64,而不是intel64

目前市場上Intel兼容處理器可以實現64位計算的主要有3種:

1) Intel IA64,基於安騰2處理器,不兼容32位應用,軟件相對本模式的版本叫 xxx for Itanium 。

2) Intel EM64T,基於Xeon DP “Nocona”和MP處理器,兼容32位應用,軟件相對本模式的版本叫 xxx for x86-64或者amd64。

3) AMD AMD64,基於Opteron處理器,兼容32位應用,軟件相對本模式的版本叫 xxx for x86-64或者amd64。


分享到:


相關文章: