x86-64[編輯]
x86-64(簡稱x64)是64位元版本的x86指令集,向前相容於16位元及32位元的x86架構。x64於1999年由AMD設計,AMD首次公開64位元集以擴充給x86,稱為「AMD64」。其後也為英特爾所採用,現時英特爾稱之為「Intel 64」,在之前曾使用過「Clackamas Technology」 (CT)、「IA-32e」及「EM64T」。
Apple 和 rpm 以「x86-64」或「x86_64」稱呼此64位元架構。昇陽電腦(已被甲骨文公司收購)及 Microsoft 稱之為「x64」。BSD 家族及其他 Linux發行版則使用「amd64」,32位元版本則稱為「i386」(或 i486/586/686)。
目錄 [隱藏]
1 AMD64
1.1 架構特色
1.2 市場分析
2 Intel 64
2.1 概要
2.2 架構特色
3 虛擬位址空間的細節
4 執行模式
5 系統支援
5.1 DOS
5.2 FreeBSD
5.3 Linux
5.4 Mac OS X
5.5 MenuetOS
5.6 NetBSD
5.7 OpenBSD
5.8 Solaris
5.9 Windows
6 業界稱謂慣例
7 應用產品
8 參考文獻
9 參見
10 外部連結
AMD64[編輯]
AMD64的標誌
AMD64指令集被應用在Athlon 64、Athlon 64 FX、Athlon 64 X2、Turion 64、Turion 64 X2、Opteron及較新款的Sempron和Phenom處理器上。
架構特色[編輯]
在x86-64出現以前,英特爾與惠普聯合設計出IA-64架構;惟IA-64並不與x86相容,且市場反應較冷淡,同時受制於多個專利權,使其他廠商不能模仿。與x86相容的AMD64架構便應運而生,其主要特點如名稱所述,既有支援64位元通用暫存器、64位元整數及邏輯運算、以及64位元虛擬位址,設計人員又為架構作出不少改進,部份重大改變如下:
新增暫存器
位址闊度加長
SSE2、SSE3指令
NX位元:AMD64其中一個特色是擁有「禁止執行」(No-Execute)的位元,可以防止蠕蟲病毒以緩衝區溢位的方式來進行攻擊。
市場分析[編輯]
AMD64代表AMD放棄了跟隨Intel標準的一貫作風,選擇了像把16位元的Intel 8086擴充成32位元的80386般,去把x86架構擴充成64位元版本,且相容原有標準。
AMD64架構在IA-32上新增了64位元暫存器,並相容早期的16位元和32位元軟體,可使現有以x86為對象的編譯器容易轉為AMD64版本。除此之外,NX bit也是引人注目的特色之一。
不少人認為,像DEC Alpha般的64位元RISC晶片,最終會取代現有過時及多變的x86架構。但事實上,為x86系統而設的應用軟體實在太龐大,成為Alpha不能取代x86的主要原因,AMD64能有效地把x86架構移至64位元的環境,並且能相容原有的x86應用程式。
Intel 64[編輯]
Intel 64指令集被應用於Pentium 4、Pentium D、Pentium Extreme Edition、Celeron D、Xeon、Intel Core 2、Intel Core 2 Quad、Intel Core i3、Intel Core i5及Intel Core i7處理器上。
概要[編輯]
Intel 64計劃的歷史可謂相當長及複雜,其原因主要是因為Intel自身的內政問題。該計劃開始時,其代號為「Yamhill」,不過Intel一直對外宣稱其計劃不存在;至2004年初,Intel才改口承認,並把代號改為CT(Clackamas Technology)。在宣布CT計劃的數個星期內,Intel為計劃給予多個新名稱。在2004年春季的Intel開發者論壇後,Intel將之命名為「IA-32E」,意即IA-32的延伸;在數星期後,才改稱為EM64T。
Intel曾長時間把該計劃保持機密,其原因有以下兩點。第一,Intel不想給客戶混淆資訊,把未來Itanium IA-64處理器的展望與x86混為一談;但在Intel眼見使用AMD64的Opteron及Athlon 64取得成功,便需要對競爭者的威脅作出迎擊。而第二個原因,是Intel為了自身的面子,必然不會承認使用了對手AMD的技術,因此Intel把該技術以EM64T這個名字來推出,雖然核心與AMD64幾乎相同,猶如一對孿生兄弟,但如果Intel使用了AMD64這名字,等於在幫對手做廣告宣傳。在以往Intel的行銷中,Intel總把AMD的產品貶為自家技術的仿製品;不過這回AMD率先開發民用64位元技術,Intel需要反過來吸納AMD的技術,使Intel在研發x86處理器技術的領導地位受到重挫,因此Intel在造勢方面便需要使用更多的人力物力。Intel主席Craig Barrett之後也承認,在保密方面,這個機密算是保護得最差的。
在Intel 64(EM64T)的檔案中,對於其指令集的起源隻字不提;因此有媒體為它起了「iAMD64」這個別名,諷刺Intel在迎擊AMD的民用64位元技術上,使用了AMD的技術,直接把AMD64吸納過來,並以新名重新包裝使用。後來Intel索性將此技術正式命名為Intel 64。
架構特色[編輯]
Intel 64可使處理器直接存取超過4GB的記憶體,容許執行更大的應用程式。而x86-64架構也加入了額外的暫存器及其他改良在指令集上。透過64位元的記憶體位址上限,其理論記憶體大小上限達16,000,000TB(16EB),不過在初期的應用上並未能支援完整的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位元程式的表現也顯得綽綽有餘。
首顆使用Intel 64技術的處理器屬於Xeon型號,支援雙處理器,其核心名稱為Nocona。由於Xeon是直接建基於桌上型Pentium 4的架構上,因此Pentium 4主機板也可使用Intel 64,如使用超執行緒(Hyper-Threading)等。不過Intel 64在初期的Prescott版本尚未啟用,其原因大概是當時其尚未完善。在使用Prescott核心E0更新版本的Pentium 4處理器已可使用Intel 64,被稱為Pentium 4 F。再者,E0更新版本加入了「禁止執行」位元,稱為XD bit(eXecute Disable),相當於AMD64的NX bit。
https://zh.wikipedia.org/wiki/X86-64