x64:x64

ylbtech-x64:x64

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.返回顶部
1、
中文名:X64 外文名:“ x86-64” 延伸产品:Intel  x86架构
改    名:AMD64 应    用: Pentium 4Pentium D 架构特色:直接访问超过4GB的 存储器
2、
2.返回顶部
1、

指令集

AMD64 指令集被应用在 Athlon 64、Athlon 64 FX、 Athlon 64 X2Turion 64Turion 64 X2Opteron及较新款的 SempronPhenom处理器上。
 

架构特色

在"x86-64"出现以前, 英特尔惠普(Hewlett Packard)联合设计出" IA-64"架构,惟这款 64位架构并不与x86兼容,且市场反应较冷淡,同时受制于多个专利权,使其他厂商不能模仿。与 x86兼容的AMD64架构便应运而生,其主要特点如名称所述,既有支持64位通用 暂存器、64位整数及逻辑运算,以及64位 虚拟地址。设计人员也为架构作出不少改进,部份重大改变如下:
新增暂存器
地址阔度加长
SSE2SSE3指令
“禁止运行”比特 (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 指令集被应用于 Pentium 4Pentium DPentium Extreme Edition、Celeron D、 XeonIntel Core 2、Intel Core 2 Quad、 Intel Core i3Intel Core i5Intel 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位一致(按照符号位扩展的方式),否则处理器将会报告一个异常。符合这一规则的地址被称作“规范寻址(Canonical Addressing)”。规范地址形式将从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

Mac OS X 10.6  Snow Leopard开始提供 64位 内核,并可以在部分处理器上打开64位内核。64位内核只支持64位的内核扩展,反之亦然;但对于普通应用程序,无论32位或64位内核均可以支持两种位宽的应用程序,但32位程序只能使用4GB的内存空间。
Mac OS X 10.5  Leopard在Intel与 PowerPC上提供对 CocoaQuartzOpenGLX11的GUI程序的64位支持,并支持全部的命令行库和程序。但内核仍只有32位版本。
Mac OS X使用 通用二进制文件格式将32位和 64位程序和库代码包装在同一文件中,在加载时自动选择最合适的版本。在Mac OS X 10.6中,内核和内核扩展也使用通用二进制格式以同时支持两种构架。
 

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 VistaWindows Server 2008Windows 7Windows 8以及Windows 10均有对应的 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系统(如 FreeBSDNetBSDOpenBSD)和一些 Linux发行版(如 DebianUbuntu、和 Gentoo)将AMD64和Intel64都称作“amd64”。
Linux, FedoraGCCopenSUSE,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)微处理器架构
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  Bulldozer微处理器架构
AMD  FX-Series
AMD  AMD Fusion (APU)
AMD  Bobcat微处理器架构的CPU核心
AMD  Ontario
AMD Zacate
AMD K10微处理器架构的CPU核心
AMD Llano
Intel  NetBurst (Intel 64)
Xeon(自"Nocona"起的部分型号)
Celeron D(自"Prescott"起的部分型号)
Pentium 4(自"Prescott"起的部分型号)
Intel Core微处理器架构
Xeon ("Woodcrest")
Intel Core 2
Intel Pentium Dual-Core
Intel  Celeron(自"Core"起的型号)
Intel  Nehalem微处理器架构
Intel  Core i7
Intel  Core i5
Intel  Core i3
Intel  Sandy Bridge微处理器架构
Intel Core i7
Intel Core i5
Intel Core i3
Intel Atom(部分)
2、
3.返回顶部
 
4.返回顶部
 
5.返回顶部
1、
2、
 
6.返回顶部
 
warn作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/storebook/p/10944329.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值