<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
x86-64
“x86-64”,有时会简称为“
x64”,是
64位微处理器架构及其相应指令集的一种,也是
Intel
x86架构的延伸产品。“
x86-64”1999由
AMD设计,
AMD
首次公开
64 位集以扩充给
IA-32,称为
x86-64(后来改名为
AMD64)。 其后也为英特尔所采用,现时英特尔称之为“
Intel
64”,在之前曾使用过
Clackamas
Technology (CT)、
IA-32e及
EM64T。外界多使用
"x86-64" 或
"x64"
去称呼此
64位架构,从而保持中立,不偏袒任何厂商。
目录
* 1 AMD64
o 1.1 架构特色
o 1.2 市场分析
* 2 Intel 64
o 2.1 概要
o 2.2 架构特色
* 3 虚拟地址空间的细节
* 4 运行模式
* 5 系统支持
o 5.1 DOS
o 5.2 FreeBSD
o 5.3 Linux
o 5.4 Mac OS X
o 5.5 MenuetOS
o 5.6 NetBSD
o 5.7 OpenBSD
o 5.8 Solaris
o 5.9 Windows
* 6 业界称谓惯例
* 7 应用产品
* 8 参见
AMD64
AMD64指令集被应用在
Athlon
64、
Athlon 64 FX、
Athlon
64 X2、
Turion 64、
Turion
64 X2、
Opteron及较新款的
Sempron和
Phenom处理器上。
架构特色
在
"x86-64"
出现以前,英特尔与惠普(
Hewlett
Packard)联合设计出
"IA-64"
架构,惟这款
64位架构并不与
x86兼容,且市场反应较冷淡,同时受制于多个专利权,使其他厂商不能模仿。与
x86兼容的
AMD64架构便应运而生,其主要特点如名称所述,计有支持
64位通用寄存器、
64位整数及逻辑计算,以及
64位虚拟地址。设计人员也为架构作出不少改进,部份重大改变如下:
* 新增寄存器
* 地址阔度加长
* SSE2、
SSE3指令
* “禁止运行”位
(NX-bit): AMD64其中一个特色是拥有“禁止运行”(
No-Execute,
NX)的位,可以防止蠕虫病毒以缓冲器满溢的方式来进行攻击(也称:缓存溢出攻击,
Buffer
Overflow)。
市场分析
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 i7处理器上。
概要
Intel
64计划的历史可谓相当长及复杂,其原因主要是因为
Intel自身的内政问题。该计划开始时,其代号为
Yamhill,不过
Intel一直对外宣称其计划不存在,至
2004年初才改口承认,并把代号改为
CT(
Clackamas
Technology)。在宣布
CT计划的数个星期内,
Intel为计划给予多个新名称。在
2004年春季的
IDF开发者论坛后,
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。
虚拟地址空间的细节
尽管虚拟地址有
64位的宽度,但前的实现机制(以及任何已知处在计划阶段的芯片)并不允许整个
16EB的虚拟地址空间都被使用。大多数的操作系统和应用程序在可见的未来都用不到如此巨大的地址空间(比如,
Windows在
AMD64上的实现仅应用了
16TB,即
44位的宽度),所以实现如此巨大的地址宽度只会增加系统的复杂度和地址转换的成本,带不来任何好处。
AMD因此决定,在对这一架构的首次实现中,只有虚拟地址的最低
48位才会在地址转换(页表查询)时被使用。但是,任何虚拟地址的
48位至
63位必须与
47位一致(按照符号位扩展的方式),否则处理器将会报告一个异常。符合这一规则的地址被称作“传统格式”。传统格式将从
0至
00007FFF`FFFFFFFF,以及从
FFFF8000`00000000至
FFFFFFFF`FFFFFFFF总计
256TB的地址范围作为可以使用的虚拟地址空间。
这种“古怪”的规则为日后扩展到真正的
64位寻址保留了一个重要的特性:很多的操作系统(包括但不限于
Windows
NT系列)将地址空间的高半部分(被称作内核空间)留给自己,将低半部分(用户空间)留给应用程序代码、用户态栈、堆和其他数据区。这种“传统地址”的设计保证了每一个符合
AMD64的实现都拥有两个内存片段:低半段从
00000000`00000000开始,随着更多的虚拟地址位变得可用而“向上生长”;高半部分被“悬挂”在地址空间的顶部而“向下生长”。同样,将未被使用的地址位内容固定下来防止被操作系统用作标志位、特权级标号等其他用途,是为了避免当架构扩展至
52,
56, 60 和
64位的时候出现问题。
64位寻址模式(长模式),是物理地址扩展(
PAE)的超集;因此,内存页大小可以是
4KB,
2MB,或
1GB。但是,与系统在
PAE模式下使用的三级标签页表机制不同,长模式下系统使用四级标签页表:
PAE
的页目录指针表的表项从
4个扩展到了
512个,而且附加了一个第四级页面映射表(
Page-Map
Level 4 Table,
PML4
Table),包含
512个采用
48位实现的表项。在提供更大虚拟地址的实现中,这个表既可以进行扩展来提供足够数量的表项(对于
64位实现来说理论值高达
33,554,432个)以描述整个地址空间,也可以再被一个更高层映射级所映射,像是
PML5。整个
48位地址空间的
4KB页面完整映射层级将会占据略多于
512GB的内存(
256TB虚拟地址空间的
0.196%)。
运行模式
运行模式
操作系统要求
已编译程序重新构建
默认地址长度(位)
默认操作码长度(位)
寄存器扩展
典型通用寄存器宽度(位)
长模式
64位模式
支持
64位
需要
64 32 可用
64
兼容模式
不需要
32 32 不可用
32
16 16 16
传统模式
保护模式
传统
16位或
32位
不需要
32 32 不可用
32
16 16 16
虚拟
8086模式
16 16 16
真实模式
传统
16位
系统支持
以下操作系统均支持长模式(
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位版本。
Mac OS X
供
Intel处理器使用的
Mac
OS X系统,经破解后能辨认
x86-64处理器,早期的
x86-64处理器由于不支持
SSE3指令集,需安装有关补丁去模拟
SSE3。
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 SP1 x64 Edition均已于
2005年
3月推出。
Windows
Vista、
Windows Server 2008以及
Windows
7均有对应的
64位版本
.Windows
Server 2008 R2将只提供
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”。
* 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技术。
* AMD K8 (AMD64)
o AMD Athlon 64
o AMD Athlon 64 X2
o AMD Athlon 64 FX
o AMD Opteron
o AMD Turion 64
o AMD
Sempron(限使用
E6步进以后的
Palermo、全数
Manila型号和全数
Sparta型号)
o AMD Phenom
* Intel NetBurst (Intel 64)
o Xeon(自
"Nocona"起的部分型号)
o Celeron
D(自
"Prescott"起的部分型号)
o Pentium
4(自
"Prescott"起的部分型号)
o Pentium D
o Pentium Extreme Edition
* Intel Core微处理器架构
o Xeon ("Woodcrest")
o Intel Core 2
o Intel Pentium Dual-Core
o Intel Celeron(自
"Core"起的型号)
* Intel Nehalem 微处理器架构
o Intel Core i7
o Intel Core i5
分享到:
相关推荐
oracle 10g 软件p6810189_10204_Linux-x86-64适用于Linux 64位系统,文件分割成 2个 压缩包,必须集齐2个 文件后才能一起解压一起使用: p6810189_10204_Linux-x86-64.part2.rar ... p6810189_10204_Linux-x86-64.part...
oracle 10g 软件p8202632_10205_Linux-x86-64 适用于Linux 64位系统,文件分割成 2个 压缩包,必须集齐 2个 文件后才能一起解压一起使用: p8202632_10205_Linux-x86-64.part2.rar ... p8202632_10205_Linux-x86-64....
包含oracle11.2.0.4_x86-64位linux版本全套安装包: p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip p13390677_112040_Linux-x86-64_3of7.zip p13390677_112040_Linux-x86-64_4of7...
openwrt-x86-64-combined-squashfs.img
openwrt-x86-64-uefi-gpt-squashfs.img
windows 12c p33174380_122010_MSWIN-x86-64.zipwindows 12c p33174380_122010_MSWIN-x86-64.zipwindows 12c p33174380_122010_MSWIN-x86-64.zipwindows 12c p33174380_122010_MSWIN-x86-64.zipwindows 12c p...
openwrt-x86-64 lede软路由2021年最新版
Nacicat Premium中的Oracle的instantclient-basic-win-x86-64-11.2.0.1.0工具
p31659823_112040_MSWIN-x86-64.zip
mingw-w64-x86-64-V8.1.0-win32-seh离线安装包,内附安装说明
instantclient-basic-win-x86-64-11.1.0.7.0 现在无法给大家免费下载了,最低资源2分,希望积分少的同学能够用的到
instantclient-basic-win-x86-64-11.1.0.7.0,oracle数据库连接oracle9i及以上版本
下载对应版本instantclient-basic-win-x86-64-11.2.0.1.0.zip包 这里对应的也是64位的instantclient包,将其完全解压到Navicate Premium安装目录,删除原有的installclient_10_2文件夹,其中最关键的是此文件夹中的...
LibreOffice_7.5.7_Linux_x86-64_deb.tar
x86-64安卓7.1的xp框架,凤凰论坛大神编译的,至今为止只有这一个,所以大家好好珍惜吧
11.2.0.4 RAC 环境升级PSU补丁包,包括p6880880_112000_Linux-x86-64 .zip和p21352635_112040_Linux-x86-64.zip等
适用于将oracle 19.3版本数据库的时区补丁升级到34(默认为32) 用于解决impdp时遇到ORA-39405 TSTZ版本错误 p29997937_190000_MSWIN-x86-64,适用于windows平台
Apache_OpenOffice_4.1.13_Linux_x86-64_install-rpm_zh-CN.tar.gz
LibreOffice_7.4.7_Linux_x86-64_rpm.tar.gz,Openoffice