當前位置: 華文問答 > 數位

為什麽AMD首先設計了64位元架構,intel也能用啊?

2020-04-09數位

因為現在的Intel 64實際上和amd64基本是一個東西。

另外64位元架構也並不是AMD首先設計的,只是現在PC套用最廣泛的x86-64(amd64)是AMD設計的。

上世紀英特爾在IBM的要求下把x86授權給了一些其他公司使用,這其中就有AMD,AMD早期的x86處理器也是在這個授權下制造的。

在世紀之交的時候,英特爾聯合惠普設計了IA-64架構(其對應產品是安騰處理器),與此前的X86架構完全不相容,因此所有的軟體(包括作業系統)都需要使用專為IA-64編譯的版本。而AMD64則是在x86架構基礎上進行的拓展,相容x86原有的操作指令,原有的32位元程式不需要重新編譯即可執行。

在那個過渡年代,這樣的差異IA-64在軟體相容性方面處於劣勢,導致市場表現遠低於預期。盡管2005年英特爾推出了IA-32 EL模擬器提供對x86的支持,但這種跨架構模擬的效率較低,無法挽救IA-64走向失敗的命運。

(2017年英特爾宣布停產安騰處理器,也宣告了IA-64的徹底死亡)

由於IA-64的滑鐵盧,英特爾只能轉而選擇和AMD進行交叉授權拿到AMD64的使用權。很顯然,英特爾不可能允許在架構名稱中出現競爭對手的名字,所以一開始對外稱呼為IA-32E,短時間後改名為EM64T,再後來又叫做Intel 64。

amd64還有其他叫法,大體如下(摘自維基百科):

由於AMD64和Intel64基本上一致,很多軟硬體產品都使用一種不傾向任何一方的詞匯來表明它們對兩種架構的同時相容。出於這個目的,AMD對這種CPU架構的原始稱呼——「x86-64」被不時地使用,還有變體「x86_64」。其他公司如微軟和昇陽電腦在行銷資料中使用「x64」作為對「x86-64」的縮寫。
許多作業系統及產品,尤其那些是在Intel進入這塊市場之前就引入「x86-64」支持的,使用「AMD64」或「amd64」同時指代AMD64和Intel64。
BSD系統(如FreeBSD、NetBSD和OpenBSD)和一些Linux發行版(如Debian、Ubuntu、和Gentoo)將AMD64和Intel64都稱作「amd64」。Red Hat的RPM將x86-64稱為x86_64或x86-64,將32位元的IA-32稱為i*86(*為數位3-6,比如i386)。Arch Linux將x86-64稱為x86_64。
Fedora PackageKit稱64位元架構為「x86_64」。
Java Development Kit(JDK):包含x86-64檔的目錄命名為「amd64」。
Mac OS X:終端下的命令arch以及開發人員文件都表明蘋果稱64位元架構為「x86_64」。
Microsoft Windows:稱在IA-32處理器上使用64位元技術為「x64」,但一些相關目錄使用AMD64來標明。例如,Windows x64版安裝CD上的系統目錄命名為「AMD64」,而32位元版本上用「i386」。
Solaris:作業系統的命令isalist將AMD64和Intel64都定義成「amd64」。

參考內容: