x86和x64

转载 2013年12月02日 18:20:57

x86是对基于intel处理器的系统的标准缩写。X与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义,是一个 intel通用计算机系列的编号,也标识一套 通用的计算机指令集合,由于早期intel的CPU编号都是如8086,80286来编号,由于这整个系列的CPU都是指令兼容的,所以都用X86来标识所使用的指令集合如今的奔腾、P2、P4、赛扬系列都是支持X86指令系统的,所以都属于X86家族。 

64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。64bit处理器并非现在才有的,在高端的RISC(Reduced Instruction Set Computing,精简指令集计算机)很早就有64bit处理器了,比如SUN公司的UltraSparc Ⅲ、IBM公司的POWER5、HP公司的Alpha等。  

64bit 计算主要有 两大优点 :可以进行更大范围的整数运算;可以支持更大的内存。不能因为数字上的变化,而简单的认为64bit处理器的性能是32bit处理器性能的两倍。实际上在32bit应用下,32bit处理器的性能甚至会更强,即使是64bit处理器,目前情况下也是在32bit应用下性能更强。所以要认清64bit处理器的优势,但不可迷信64bit。  

要实现真正意义上的64位计算,光有64位的处理器是不行的,还必须得有64位的操作系统以及64位的应用软件才行,三者缺一不可,缺少其中任何一种要素都是无法实现64位计算的。 

主流CPU使用的64位技术主要有AMD公司的 AMD64位技术 、Intel公司的 EM64T技术 、和Intel公司的 IA-64技术 。其中IA-64是Intel独立开发,不兼容现在的传统的32位计算机,仅用于Itanium(安腾)以及后续产品Itanium 2,一般用户不会涉及到,因此这里仅对AMD64位技术和Intel的EM64T技术做一下简单介绍。  

AMD64位技术   
AMD64的位技术是 在原始32位X86指令集的基础上加入了X86-64扩展64位X86指令集 ,使这款芯片在硬件上兼容原来的32位X86软件,并同时支持X86-64的扩展64位计算,使得这款芯片成为真正的64位X86芯片。这是一个真正的64位的标准,X86-64具有64位的寻址能力。  

X86-64新增的几组CPU寄存器将提供更快的执行效率。寄存器是CPU内部用来创建和储存CPU运算结果和其它运算结果的地方。 标准的32-bit x86架构 包括 8个通用寄存器 (GPR), AMD在X86-64 中又增加了8组(R8-R9), 将寄存器的数目提高到了16组 。X86-64寄存器默认位64-bit。 还增加了8组128-bit XMM寄存器 (也叫SSE寄存器,XMM8-XMM15),将能给 单指令多数据流技术(SIMD) 运算提供更多的空间,这些128位的寄存器将提供在矢量和标量计算模式下进行128位双精度处理,为3D建模、矢量分析和虚拟现实的实现提供了硬件基础。通过提供了更多的寄存器,按照X86-64标准生产的CPU可以更有效的处理数据,可以在一个时钟周期中传输更多的信息。  

EM64T技术   
Intel官方是给EM64T这样定义的: EM64T全称Extended Memory 64 Technology , 即扩展64bit内存技术 。 EM64T是Intel IA-32架构的扩展 ,即IA-32e(Intel Architectur-32 extension)。IA-32处理器通过附加EM64T技术,便可在兼容IA-32软件的情况下,允许软件利用更多的内存地址空间,并且允许软件进行32 bit线性地址写入。EM64T特别强调的是对32 bit和64 bit的兼容性。 Intel为新核心增加了8个64 bit GPRs(R8-R15) ,并且 把原有GRPs全部扩展为64 bit ,如前文所述这样可以提高整数运算能力。 增加8个128bit SSE寄存器 (XMM8-XMM15),是为了增强多媒体性能,包括对SSE、SSE2和SSE3的支持。  

Intel为支持EM64T技术的处理器设计了 两大模式 : 传统IA-32模式 (legacy IA-32 mode)和 IA-32e扩展模式 (IA-32e mode)。在支持EM64T技术的处理器内有一个称之为 扩展功能激活寄存器 (extended feature enable register,IA32_EFER)的部件,其中的 Bit10控制着EM64T是否激活 。 Bit10被称作IA-32e模式有效 (IA-32e mode active)或 长模式有效(long mode active,LMA) 。当LMA=0时,处理器便作为一颗标准的32 bit(IA32)处理器运行在传统IA-32模式;当LMA=1时,EM64T便被激活,处理器会运行在IA-32e扩展模式下。  

目前AMD方面支持64位技术的CPU有Athlon 64系列、Athlon FX系列和Opteron系列。Intel方面支持64位技术的CPU有使用Nocona核心的Xeon系列、使用Prescott 2M核心的Pentium 4 6系列和使用Prescott 2M核心的P4 EE系列。

相关文章推荐

x86,amd64,x86-64,x64区别

X86是一个指令集,是刚有个人电脑时候的什么8086,286,386的那个兼容的指令集。“x86-64”,有时会简称为“x64”,是64位微处理器架构及其相应指令集的一种,也是Intel x86架构的...

软件安装时x86与x64软件区别

首先要明白他们是什么意思! 关于他们的解释可以看这里 http://zhidao.baidu.com/question/61909679.html?fr=ala0,   http://baik...

x86和x64的意义

问题:究竟在VS下,应用程序是编译为x86还是x64呢? 转载内容如下: 一)64位系统和32位有什么区别?  1、64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32b...

关于U盘安装CentOS 7(CentOS-7-x86_64-DVD-1708.iso)的流程以及安装过程中的一些问题

1、CentOS 7的安装镜像的获取: CentOS官方网站:https://www.centos.org/ 2、使用UltraISO打开下载的镜像文件,并通过启动 --> 写入硬盘镜像 ...

编译x86_64老是不过,iphone模拟器debug不了解决方法

其实没什么好解决的, 忍了2年了 所以今天重新把所有代码,所有编译过程,重新看一遍 编译curl很多遍了,老是提示architecture x86_64 一开始以为是编译问题,还想用gcc重新...
  • avi9111
  • avi9111
  • 2016年10月16日 17:36
  • 651

win7下 ,CentOS-6.5-x86_64硬盘安装两个问题

1.下载ISO     CentOS-6.5-x86_64-bin-DVD1.iso   (4.16G), CentOS-6.5-x86_64-bin-DVD2.iso(1.9G), 2. 由于不识...

CentOS7_x86_64部署WebLogic11g并设置开机自启

场景:一个JavaEE项目,之前一直是windows下Oracle10g+Tomcat7,现在应客户要求,需要换成Linux下Oracle10g+WebLogic11g,捯饬了几天,终于弄差不多了。菜...

红帽子Linux6.5 X86_64 自动重启解决办法

四台机器重启前的15分钟,都会有一个报错/usr/sbin/bmc-watchdog: fiid_obj_get: 'present_countdown_value': data not availa...
  • alangmei
  • alangmei
  • 2014年04月04日 16:27
  • 10102

linux x86_64 缓冲区溢出分析 以及 shellcode简介

/* buger.c */ #include #include #include int main(void) { char buffer[128] = {0}; char *envp ...

Linux下x86_64进程地址空间布局

关于Linux 32位内存下的内存空间布局,可以参考这篇博文Linux下C程序进程地址空间局关于源代码中各种数据类型/代码在elf格式文件以及进程空间中所处的段,在x86_64下和i386下是类似的,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:x86和x64
举报原因:
原因补充:

(最多只允许输入30个字)