fbpx
维基百科

x86-64

x86-64(又稱x64,即英文詞64-bit extended,64位元拓展的簡寫)是一個處理器指令集架構,基於x86架構64位拓展,向后相容16位32位的x86架構。x64於1999年由AMD設計,AMD首次公開64位元集以擴充給x86,稱為「AMD64」。其後也為英特爾所採用,現時英特爾稱之為「Intel 64」,在之前曾使用過「Clackamas Technology」 (CT)、「IA-32e」及「EM64T」。

蘋果公司RPM套件管理員以「x86-64」或「x86_64」稱呼此64位架構。甲骨文公司Microsoft稱之為「x64」。BSD家族及其他Linux發行版則使用「amd64」,32位元版本則稱為「i386」(或 i486/586/686),Arch Linux及其衍生发行版用x86_64稱呼此64位元架構。

AMD64

 
AMD64的標誌

AMD64指令集被應用在Athlon 64Athlon 64 FXAthlon 64 X2Turion 64Turion 64 X2OpteronSempronPhenomAthlon IIPhenom IIAMD APUAMD FXAMD RyzenAMD Epyc等處理器上。

架構特色

在x86-64出現以前,英特爾與惠普聯合設計出IA-64架構;惟IA-64並不與x86兼容,且市場反應較冷淡,同時受制於多個專利權,使其他廠商不能模仿,規模沒有很大。與x86兼容的AMD64架構便應運而生,其主要特點如名稱所述,既有支援64位通用暫存器、64位整數及邏輯運算、以及64位虛擬位址,設計人員又為架構作出不少改進,部份重大改變如下:

  • 新增暫存器
  • 地址闊度加長
  • SSE2SSE3指令
  • NX位元:AMD64其中一個特色是擁有「禁止執行」(No-Execute)的位元,可在一定程度上防止蠕蟲病毒緩衝區溢位的方式來進行攻擊。

市場分析

AMD64代表AMD放棄了跟隨Intel標準的一貫作風,選擇了像把16位的Intel 8086擴充成32位的80386般,去把x86架構擴充成64位版本,且兼容原有標準,沒想到比Intel自己發表的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 4Pentium DPentium Extreme EditionCeleronXeonPentium Dual-CoreIntel Core 2Intel Core i3Intel Core i5Intel Core i7Intel Core i9處理器上。

概要

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英语Craig Barrett (chief executive)之後也承認,在保密方面,這個機密算是保護得最差的。

在Intel 64(EM64T)的文件中,對於其指令集的起源隻字不提;因此有媒體為它起了「iAMD64」這個別名,諷刺Intel在迎擊AMD的民用64位元技術上,使用了AMD的技術,直接把AMD64吸納過來,並以新名重新包裝使用。後來Intel索性將此技術正式命名為Intel 64

架構特色

Intel 64可使處理器直接存取超過4GB的記憶體,容許執行更大的應用程式。而x86-64架構也加入了額外的暫存器及其他改良在指令集上。透過64位的記憶體位址上限,其理論記憶體大小上限達16,777,216TB(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

VIA x86-64

VIA在Centaur研发部门五年的研发后,发布了其第一款x86-64改进架构[1],微架构研发代号"Isaiah", 而64位微架构于2008年1月24日首次展示[2],并在5月29日以VIA Nano品牌发布产品。[3]

该处理器支持一类VIA专为提高低功率应用情景下的效率而研发的x86扩展指令集。 Isaiah微架构预计与前一代架构Esther相比,同时钟频率下,在整数运算表现上会有两倍提性能提升升, 浮点运算上会有四倍性能提升。而在功耗上,处理器 TDP设置为5 W到 25 W。[4] 此外,对于前代产品 VIA C7系列尚不支持的x86虚拟化技术,该架构也作了支持,同时也保留了加密扩展。

虛擬地址空間的細節

儘管虛擬地址有64位的寬度,但當前的實現機制(以及任何已知處在計劃階段的芯片)并不允許整個16EB的虛擬地址空間都被使用。大多數的操作系统和應用程序在可見的未來都用不到如此巨大的地址空間(比如,Windows在AMD64上的實現僅應用了256TB,即48位的寬度),所以實現如此巨大的地址寬度只會增加系統的複雜度和地址轉換的成本,帶不來任何好處。AMD因此決定,在對這一架構的首次實現中,只有虛擬地址的最低48位才會在地址轉換(頁表查詢)時被使用。但是,任何虛擬地址的48位至63位必須與47位一致(按照符號位擴展的方式),否則處理器將會報告一個異常。符合這一規則的地址被稱作“傳統格式”。傳統格式將從0至00007FFF`FFFFFFFF,以及從FFFF8000`00000000至FFFFFFFF`FFFFFFFF總計256TB的地址範圍作為可以使用的虛擬地址空間。

這種“古怪”的規則為日後擴展到真正的64位尋址保留了一個重要的特性:很多的操作系统(包括但不限於Windows NT系列)將地址空間的高半部分(被稱作內核空間)留給自己,将低半部分(用戶空間)留給應用程序代碼、用戶態棧、堆和其他數據區。這種“傳統地址”的設計保證了每一個符合AMD64的實現都擁有兩個內存片段:低半段從00000000`00000000開始,隨著更多的虛擬地址位元變得可用而“向上生長”;高半部分被“懸掛”在地址空間的頂部而“向下生長”。同樣,將未被使用的地址位元內容固定下來防止被操作系统用作標誌位、特權級標號等其他用途,是爲了避免當架構擴展至52, 56, 60和64位的時候出現問題。

當前48位的實現方式

 

57位的實現方式

 

完全64位的實現方式

 

(非按比例繪製)

64位尋址模式(長模式),是物理地址擴展(PAE)的超集;因此,內存頁大小可以是4KB,2MB,或1GB。但是,與系統在PAE模式下使用的三級分頁表機制不同,長模式下系統使用四級分頁表:PAE的頁目錄指針表的表項從4個擴展到了512個,而且附加了一個第四級頁面映射表(Page-Map Level 4 Table,PML4 Table),包含512個采用48位實現的表項。整個48位地址空間的4KB頁面完整映射層級將會占據略多於512GB的内存(256TB虛擬地址空間的0.196%)。在提供更大虛擬地址的實現中,這個表被一個更高的映射层級所映射,即第五级页面映射表(PML5[5]),可以提供52位物理地址(4PiB)和57位虚拟地址(128PiB)的实现。

运行模式

运行模式 操作系统要求 已编译程序重新构建 默认地址长度(位元) 默认操作數长度(位元) 寄存器扩展 典型通用寄存器宽度(位元)
长模式
(IA-32e)
64位元模式 64位元 需要 64 32 可用 64
兼容模式 64位元(拓展) 不需要 32 不可用 32
16
遺留模式 保护模式 遺留32位元 不需要 32 不可用
遺留16位元 16 16 或 32
虚拟8086模式 遺留32位元 16
真实模式 遺留16位 16 或 32

作業系統支援

以下作業系統均支援長模式(long mode)的x86-64架構。

DOS

DOS環境下可透過DOS Extender(例如DOS4GW)來進入保護模式。

FreeBSD

FreeBSD在5.1正式版曾為x86-64作試驗,至6.0正式版解決了在x86-64執行32位程式出現的一些問題,以及能支援不少驅動程式。

Linux

Linux在2.6版本的內核開始加入長模式,支援x86-64,能兼容32位程式及模擬32位系統,容許在32位的環境下,把程式編譯為64位版本。

macOS

Mac OS X 10.6 Snow Leopard开始提供64位内核,并可以在部分处理器上打开64位内核。64位内核只支持64位的内核扩展,反之亦然;但对于普通应用程序,无论32位或64位内核均可以支持两种位宽的应用程序,但32位程序只能使用4GB的内存空间[6][7]

Mac OS X 10.5 Leopard在Intel与PowerPC上提供对Cocoa, Quartz, OpenGLX11的GUI程序的64位支持[8],并支持全部的命令行库和程序。但内核仍只有32位版本。

Mac OS X使用通用二进制文件格式将32位和64位程序和库代码包装在同一文件中,在加载时自动选择最合适的版本。在Mac OS X 10.6中,内核和内核扩展也使用通用二进制格式以同时支持两种构架。

蘋果公司於2018年4月起,在macOS High Sierra作業系統內執行32位元應用程式時,會提醒訊息。並已在2018年6月的WWDC上宣佈macOS Mojave將是最後一版支援32位元應用程式的macOS[9]

MenuetOS

x86-64版本的MenuetOS系統於2005年6月推出,雖然原有的32位版本Menuet以GPL授權,但x86-64版本則維持專屬,並以免費軟件方式發佈,以及提供部分元件的原始碼。

NetBSD

x86-64版本的NetBSD最早於2001年6月19日被提出,至2004年12月9日推出的NetBSD 2.0已能完全支援x86-64。

OpenBSD

OpenBSD自2004年5月1日推出的3.5版起,已支援x86-64。

Solaris

昇陽的Solaris自版本10開始已支援x86-64。

Windows

供用戶端使用的Windows XP Professional x64 Edition以及供伺服器使用的Windows Server 2003 x64 Edition均已於2005年3月推出。Windows VistaWindows Server 2008Windows Server 2012Windows Server 2012 R2Windows Server 2016Windows Server 2019Windows 7Windows 8Windows 8.1以及Windows 10均有对应的64位版本。從Windows Server 2008 R2開始的Windows Server作業系統只提供64位版本,从Windows 11開始的面向消费者的Windows作業系統只提供64位版本。

业界称谓惯例

由于AMD64和Intel64基本上一致,很多软硬件产品都使用一种不倾向任何一方的词汇来表明它们对两种架构的同时兼容。出于这个目的,AMD对这种CPU架构的原始称呼——“x86-64”被不时地使用,还有变体“x86_64”。其他公司如微软昇陽電腦在营销资料中使用“x64”作为对“x86-64”的缩写。

许多操作系统及产品,尤其那些是在Intel进入这块市场之前就引入“x86-64”支持的,使用“AMD64”或“amd64”同时指代AMD64和Intel64。

  • BSD系统(如FreeBSDNetBSDOpenBSD)和一些Linux發行版(如DebianUbuntu、和Gentoo)将AMD64和Intel64都称作“amd64”。Red HatRPM將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”。

應用產品

以下處理器產品使用了x86-64技術,截至2018年9月,幾乎等同於市場上所有消費級產品皆使用x86-64技術。

参考文献

  1. ^ . DigiTimes. [2007-07-25]. (原始内容 (subscription required)存档于2008-12-03). 
  2. ^ Stokes, Jon. . Ars Technica. 2008-01-23 [2008-01-24]. (原始内容存档于2008-01-27). 
  3. ^ (新闻稿). VIA. May 29, 2008 [May 25, 2017]. (原始内容存档于2019-02-03). 
  4. ^ (PDF). VIA. 2008-01-23 [2013-07-31]. (原始内容 (PDF)存档于2008-09-07). 
  5. ^ (PDF). [2018-05-05]. (原始内容 (PDF)存档于2018-12-05). 
  6. ^ John Siracusa. Mac OS X 10.6 Snow Leopard: the Ars Technica review. Ars Technica LLC. [2010-06-20]. (原始内容存档于2012-08-13). 
  7. ^ . Apple. [2010-05-24]. (原始内容存档于2009-11-12). 
  8. ^ Apple - Mac OS X Leopard - Technology - 64 bit. [2010-09-18]. (原始内容于2009-01-12). 
  9. ^ . [2018-09-18]. (原始内容存档于2022-04-23). 
  10. ^ . www.zhaoxin.com. [2022-02-10]. (原始内容存档于2022-04-23). 

參見

外部連結

  • Intel 64 and IA-32 Architectures Software Developer Manuals (页面存档备份,存于互联网档案馆

又稱x64, 即英文詞64, extended, 64位元拓展的簡寫, 是一個處理器的指令集架構, 基於x86架構的64位拓展, 向后相容於16位及32位的x86架構, x64於1999年由amd設計, amd首次公開64位元集以擴充給x86, 稱為, amd64, 其後也為英特爾所採用, 現時英特爾稱之為, intel, 在之前曾使用過, clackamas, technology, em64t, 蘋果公司和rpm套件管理員以, 稱呼此64位架構, 甲骨文公司及microsoft稱之為, bsd家族及其他linu. x86 64 又稱x64 即英文詞64 bit extended 64位元拓展的簡寫 是一個處理器的指令集架構 基於x86架構的64位拓展 向后相容於16位及32位的x86架構 x64於1999年由AMD設計 AMD首次公開64位元集以擴充給x86 稱為 AMD64 其後也為英特爾所採用 現時英特爾稱之為 Intel 64 在之前曾使用過 Clackamas Technology CT IA 32e 及 EM64T 蘋果公司和RPM套件管理員以 x86 64 或 x86 64 稱呼此64位架構 甲骨文公司及Microsoft稱之為 x64 BSD家族及其他Linux發行版則使用 amd64 32位元版本則稱為 i386 或 i486 586 686 Arch Linux及其衍生发行版用x86 64稱呼此64位元架構 目录 1 AMD64 1 1 架構特色 1 2 市場分析 2 Intel 64 2 1 概要 2 2 架構特色 3 VIA x86 64 4 虛擬地址空間的細節 5 运行模式 6 作業系統支援 6 1 DOS 6 2 FreeBSD 6 3 Linux 6 4 macOS 6 5 MenuetOS 6 6 NetBSD 6 7 OpenBSD 6 8 Solaris 6 9 Windows 7 业界称谓惯例 8 應用產品 9 参考文献 10 參見 11 外部連結AMD64 编辑 AMD64的標誌 AMD64指令集被應用在Athlon 64 Athlon 64 FX Athlon 64 X2 Turion 64 Turion 64 X2 Opteron Sempron Phenom Athlon II Phenom II AMD APU AMD FX AMD Ryzen AMD Epyc等處理器上 架構特色 编辑 在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位版本 且兼容原有標準 沒想到比Intel自己發表的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 Xeon Pentium Dual Core Intel Core 2 Intel Core i3 Intel Core i5 Intel Core i7及Intel Core i9處理器上 概要 编辑 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 英语 Craig Barrett chief executive 之後也承認 在保密方面 這個機密算是保護得最差的 在Intel 64 EM64T 的文件中 對於其指令集的起源隻字不提 因此有媒體為它起了 iAMD64 這個別名 諷刺Intel在迎擊AMD的民用64位元技術上 使用了AMD的技術 直接把AMD64吸納過來 並以新名重新包裝使用 後來Intel索性將此技術正式命名為Intel 64 架構特色 编辑 Intel 64可使處理器直接存取超過4GB的記憶體 容許執行更大的應用程式 而x86 64架構也加入了額外的暫存器及其他改良在指令集上 透過64位的記憶體位址上限 其理論記憶體大小上限達16 777 216TB 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 VIA x86 64 编辑VIA在Centaur研发部门五年的研发后 发布了其第一款x86 64改进架构 1 微架构研发代号 Isaiah 而64位微架构于2008年1月24日首次展示 2 并在5月29日以VIA Nano品牌发布产品 3 该处理器支持一类VIA专为提高低功率应用情景下的效率而研发的x86扩展指令集 Isaiah微架构预计与前一代架构Esther相比 同时钟频率下 在整数运算表现上会有两倍提性能提升升 浮点运算上会有四倍性能提升 而在功耗上 处理器 TDP设置为5 W到 25 W 4 此外 对于前代产品 VIA C7系列尚不支持的x86虚拟化技术 该架构也作了支持 同时也保留了加密扩展 虛擬地址空間的細節 编辑儘管虛擬地址有64位的寬度 但當前的實現機制 以及任何已知處在計劃階段的芯片 并不允許整個16EB的虛擬地址空間都被使用 大多數的操作系统和應用程序在可見的未來都用不到如此巨大的地址空間 比如 Windows在AMD64上的實現僅應用了256TB 即48位的寬度 所以實現如此巨大的地址寬度只會增加系統的複雜度和地址轉換的成本 帶不來任何好處 AMD因此決定 在對這一架構的首次實現中 只有虛擬地址的最低48位才會在地址轉換 頁表查詢 時被使用 但是 任何虛擬地址的48位至63位必須與47位一致 按照符號位擴展的方式 否則處理器將會報告一個異常 符合這一規則的地址被稱作 傳統格式 傳統格式將從0至00007FFF FFFFFFFF 以及從FFFF8000 00000000至FFFFFFFF FFFFFFFF總計256TB的地址範圍作為可以使用的虛擬地址空間 這種 古怪 的規則為日後擴展到真正的64位尋址保留了一個重要的特性 很多的操作系统 包括但不限於Windows NT系列 將地址空間的高半部分 被稱作內核空間 留給自己 将低半部分 用戶空間 留給應用程序代碼 用戶態棧 堆和其他數據區 這種 傳統地址 的設計保證了每一個符合AMD64的實現都擁有兩個內存片段 低半段從00000000 00000000開始 隨著更多的虛擬地址位元變得可用而 向上生長 高半部分被 懸掛 在地址空間的頂部而 向下生長 同樣 將未被使用的地址位元內容固定下來防止被操作系统用作標誌位 特權級標號等其他用途 是爲了避免當架構擴展至52 56 60和64位的時候出現問題 當前48位的實現方式 57位的實現方式 完全64位的實現方式 非按比例繪製 64位尋址模式 長模式 是物理地址擴展 PAE 的超集 因此 內存頁大小可以是4KB 2MB 或1GB 但是 與系統在PAE模式下使用的三級分頁表機制不同 長模式下系統使用四級分頁表 PAE的頁目錄指針表的表項從4個擴展到了512個 而且附加了一個第四級頁面映射表 Page Map Level 4 Table PML4 Table 包含512個采用48位實現的表項 整個48位地址空間的4KB頁面完整映射層級將會占據略多於512GB的内存 256TB虛擬地址空間的0 196 在提供更大虛擬地址的實現中 這個表被一個更高的映射层級所映射 即第五级页面映射表 PML5 5 可以提供52位物理地址 4PiB 和57位虚拟地址 128PiB 的实现 运行模式 编辑运行模式 操作系统要求 已编译程序重新构建 默认地址长度 位元 默认操作數长度 位元 寄存器扩展 典型通用寄存器宽度 位元 长模式 IA 32e 64位元模式 64位元 需要 64 32 可用 64兼容模式 64位元 拓展 不需要 32 不可用 3216遺留模式 保护模式 遺留32位元 不需要 32 不可用遺留16位元 16 16 或 32虚拟8086模式 遺留32位元 16真实模式 遺留16位 16 或 32作業系統支援 编辑以下作業系統均支援長模式 long mode 的x86 64架構 DOS 编辑 在DOS環境下可透過DOS Extender 例如DOS4GW 來進入保護模式 FreeBSD 编辑 FreeBSD在5 1正式版曾為x86 64作試驗 至6 0正式版解決了在x86 64執行32位程式出現的一些問題 以及能支援不少驅動程式 Linux 编辑 Linux在2 6版本的內核開始加入長模式 支援x86 64 能兼容32位程式及模擬32位系統 容許在32位的環境下 把程式編譯為64位版本 macOS 编辑 Mac OS X 10 6 Snow Leopard开始提供64位内核 并可以在部分处理器上打开64位内核 64位内核只支持64位的内核扩展 反之亦然 但对于普通应用程序 无论32位或64位内核均可以支持两种位宽的应用程序 但32位程序只能使用4GB的内存空间 6 7 Mac OS X 10 5 Leopard在Intel与PowerPC上提供对Cocoa Quartz OpenGL与X11的GUI程序的64位支持 8 并支持全部的命令行库和程序 但内核仍只有32位版本 Mac OS X使用通用二进制文件格式将32位和64位程序和库代码包装在同一文件中 在加载时自动选择最合适的版本 在Mac OS X 10 6中 内核和内核扩展也使用通用二进制格式以同时支持两种构架 蘋果公司於2018年4月起 在macOS High Sierra作業系統內執行32位元應用程式時 會提醒訊息 並已在2018年6月的WWDC上宣佈macOS Mojave將是最後一版支援32位元應用程式的macOS 9 MenuetOS 编辑 x86 64版本的MenuetOS系統於2005年6月推出 雖然原有的32位版本Menuet以GPL授權 但x86 64版本則維持專屬 並以免費軟件方式發佈 以及提供部分元件的原始碼 NetBSD 编辑 x86 64版本的NetBSD最早於2001年6月19日被提出 至2004年12月9日推出的NetBSD 2 0已能完全支援x86 64 OpenBSD 编辑 OpenBSD自2004年5月1日推出的3 5版起 已支援x86 64 Solaris 编辑 昇陽的Solaris自版本10開始已支援x86 64 Windows 编辑 供用戶端使用的Windows XP Professional x64 Edition以及供伺服器使用的Windows Server 2003 x64 Edition均已於2005年3月推出 Windows Vista Windows Server 2008 Windows Server 2012 Windows Server 2012 R2 Windows Server 2016 Windows Server 2019 Windows 7 Windows 8 Windows 8 1以及Windows 10均有对应的64位版本 從Windows Server 2008 R2開始的Windows Server作業系統只提供64位版本 从Windows 11開始的面向消费者的Windows作業系統只提供64位版本 业界称谓惯例 编辑由于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 應用產品 编辑以下處理器產品使用了x86 64技術 截至2018年9月 幾乎等同於市場上所有消費級產品皆使用x86 64技術 AMD K8 AMD64 微處理器架構 AMD Athlon 64 AMD Athlon 64 X2 AMD Athlon 64 FX AMD Opteron AMD Turion 64 AMD Sempron 限使用E6步進以後的Palermo 全數Manila型號和全數Sparta型號 AMD K10微處理器架構 AMD Phenom AMD Athlon AMD Sempron AMD 推土机微處理器架構 AMD FX Series AMD Fusion APU AMD Bobcat微處理器架構的CPU核心 AMD Ontario AMD Zacate AMD K10微處理器架構的CPU核心 AMD Llano AMD Ryzen Intel NetBurst Intel 64 Intel Xeon 自 Nocona 起的部分型號 Celeron D 自 Prescott 起的部分型號 Pentium 4 自 Prescott 起的部分型號 Pentium D Pentium Extreme Edition Intel Core微處理器架構 Intel Xeon Woodcrest Intel Core 2 Intel Pentium Dual Core Intel Celeron Intel Nehalem微處理器架構 Intel Xeon Intel Core i7 Intel Core i5 Intel Core i3 Intel Pentium Intel Celeron Intel Sandy Bridge微處理器架構 Intel Xeon Intel Core i7 Intel Core i5 Intel Core i3 Intel Pentium Intel Celeron Intel Ivy Bridge微處理器架構 Intel Xeon Intel Core i7 Intel Core i5 Intel Core i3 Intel Pentium Intel Celeron Intel Haswell微處理器架構 Intel Xeon Intel Core i7 Intel Core i5 Intel Core i3 Intel Pentium Intel Celeron Intel Broadwell微處理器架構 Intel Xeon Intel Core i7 Intel Core i5 Intel Core i3 Intel Skylake微處理器架構 Intel Xeon Intel Core i9 Intel Core i7 Intel Core i5 Intel Core i3 Intel Pentium Intel Celeron Intel Kaby Lake微處理器架構 Intel Xeon Intel Core i9 Intel Core i7 Intel Core i5 Intel Core i3 Intel Pentium Intel Celeron Intel Coffee Lake微處理器架構 Intel Xeon Intel Core i9 Intel Core i7 Intel Core i5 Intel Core i3 Intel Pentium Intel Celeron Intel Atom 部分 VIA 兆芯 10 VIA Nano ZX C 系列 ZX C 系列 KX 5000 系列 KX 6000 系列 KH 20000 系列 KH 30000系列参考文献 编辑 VIA to launch new processor architecture in 1Q08 DigiTimes 2007 07 25 原始内容 subscription required 存档于2008 12 03 Stokes Jon Isaiah revealed VIA s new low power architecture Ars Technica 2008 01 23 2008 01 24 原始内容存档于2008 01 27 VIA Launches VIA Nano Processor Family 新闻稿 VIA May 29 2008 May 25 2017 原始内容存档于2019 02 03 VIA Isaiah Architecture Introduction PDF VIA 2008 01 23 2013 07 31 原始内容 PDF 存档于2008 09 07 存档副本 PDF 2018 05 05 原始内容 PDF 存档于2018 12 05 John Siracusa Mac OS X 10 6 Snow Leopard the Ars Technica review Ars Technica LLC 2010 06 20 原始内容存档于2012 08 13 Mac OS X Technology Apple 2010 05 24 原始内容存档于2009 11 12 Apple Mac OS X Leopard Technology 64 bit 2010 09 18 原始内容存档于2009 01 12 macOS Mojave will officially be the last release to support 32 bit apps 2018 09 18 原始内容存档于2022 04 23 PC 嵌入式处理器 兆芯 好用的电脑芯 www zhaoxin com 2022 02 10 原始内容存档于2022 04 23 參見 编辑NX bit AMD K8 AMD K10 由於K9在英語發音上不好聽 Canine 狗類 因此AMD在K8代號後 直接使用K10為代號 IA 64 x86外部連結 编辑AMD Developer Guides amp Manuals Intel 64 and IA 32 Architectures Software Developer Manuals 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title X86 64 amp oldid 75232194, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。