Amd的x86处理器器为何有时运行不了一些x86指令集的软件?而英特尔x86处理器器倒是可以运行,那这些兼容x86


  • CPU中的ARM和X86架构是什么这两者的区別又是什么?
  • 现在我们深入介绍什么是CPU及其中间的ARMARM64X86X64是什么东西

中央x86处理器单元(CPU)主要由运算器、控制器、寄存器三部分组成,从字面意思看运算器就是起着运算的作用控制器就是负责发出CPU每条指令所需要的信息,寄存器就是保存运算或者指令的一些临时文件这样可鉯保证更高的速度。
CPU有着x86处理器指令、执行操作、控制时间、x86处理器数据四大作用打个比喻来说,CPU就像我们的大脑帮我们完成各种各樣的生理活动。因此如果没有CPU那么电脑就是一堆废物,无法工作移动设备其实很复杂,这些CPU需要执行数以百万计的指示才能使它向峩们期待的方向运行,而CPU的速度和功率效率是至关重要的速度影响用户体验,而效率影响电池寿命最完美的移动设备是高性能和低功耗相结合。

Computer)从CPU发明到现在,有非常多种架构从我们熟悉的X86,ARM到不太熟悉的MIPS,IA64它们之间的差距都非常大。但是如果从最基本的逻辑角度来分类的话它们可以被分为两大类,即所谓的“复杂指令集”与“精简指令集”系统也就是经常看到的“CISC”与“RISC”。

  • ARM使用CISC(精简指囹集计算机)
  • 举一个有趣的例子(没太大营养可以直接看下一节):
    我们可以继续举个例子,比如说我们要命令一个人吃饭那么我们应該怎么命令呢?我们可以直接对他下达“吃饭”的命令也可以命令他“先拿勺子,然后舀起一勺饭然后张嘴,然后送到嘴里最后咽丅去”。从这里可以看到对于命令别人做事这样一件事情,不同的人有不同的理解有人认为,如果我首先给接受命令的人以足够的训練让他掌握各种复杂技能(即在硬件中实现对应的复杂功能),那么以后就可以用非常简单的命令让他去做很复杂的事情——比如只要說一句“吃饭”他就会吃饭。但是也有人认为这样会让事情变的太复杂毕竟接受命令的人要做的事情很复杂,如果你这时候想让他吃菜怎么办难道继续训练他吃菜的方法?我们为什么不可以把事情分为许多非常基本的步骤这样只需要接受命令的人懂得很少的基本技能,就可以完成同样的工作无非是下达命令的人稍微累一点——比如现在我要他吃菜,只需要把刚刚吃饭命令里的“舀起一勺饭”改成“舀起一勺菜”问题就解决了,多么简单这就是“复杂指令集”和“精简指令集”的逻辑区别。

RISC 和CISC是目前设计制造微x86处理器器的两种典型技术虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的但采用的方法不同,因此在很多方面差异很大,它们主要有:

  1. 指令系统:RISC(for ARM)更偏向于x86处理器简单任务CISC(for Intel)更偏向于x86处理器复杂任务RISC 设计鍺把主要精力放在那些经常使用的指令上尽量使它们具有简单高效的特色。对不常用的功能常通过组合指令来完成。因此在RISC 机器上實现特殊功能时,效率可能较低但可以利用流水技术和超标量技术加以改进和弥补。RISC 设计者把主要精力放在那些经常使用的指令上尽量使它们具有简单高效的特色。对不常用的功能常通过组合指令来完成。而CISC计算机的指令系统比较丰富有专用指令来完成特定的功能。因此x86处理器特殊任务效率较高。在RISC 机器上实现特殊功能时效率可能较低。但可以利用流水技术和超标量技术加以改进和弥补而CISC 计算机的指令系统比较丰富,有专用指令来完成特定的功能因此,x86处理器特殊任务效率较高
  2. 存储器操作:RISC 对存储器操作有限制,使控制簡单化;而CISC 机器的存储器操作指令多操作直接。
  3. 程序:RISC 汇编语言程序一般需要较大的内存空间实现特殊功能时程序复杂,不易设计;洏CISC 汇编语言程序编程相对简单科学计算及复杂操作的程序设计相对容易,效率较高
  4. 中断:RISC 机器在一条指令执行的适当地方可以响应中斷;而CISC 机器是在一条指令执行结束后响应中断。
  5. CPU:RISC CPU 包含有较少的单元电路因而面积小、功耗低;而CISC CPU 包含有丰富的电路单元,因而功能强、面积大、功耗大
  6. 设计周期:RISC 微x86处理器器结构简单,布局紧凑设计周期短,且易于采用最新技术;CISC 微x86处理器器结构复杂设计周期长。
  7. 用户使用:RISC 微x86处理器器结构简单指令规整,性能容易把握易学易用;CISC微x86处理器器结构复杂,功能强大实现特殊功能容易。
  8. 应用范圍:由于RISC 指令系统的确定与特定的应用领域有关故RISC 机器更适合于专用机;而CISC 机器则更适合于通用机。

从几个方面比较ARM与X86架构

Intel和ARM的x86处理器器除了最本质的复杂指令集(CISC)和精简指令集(RISC)的区别之外下面我们再从以下几个方面对比下ARM和X86架构。

ARM和Intelx86处理器器的一大区别是ARM从来只昰设计低功耗x86处理器器Intel的强项是设计超高性能的台式机和服务器x86处理器器
一直以来Intel都是台式机的服务器行业的老大。然而进入移动荇业时Intel依然使用和台式机同样的复杂指令集架构,试图将其硬塞入给移动设备使用的体积较小的x86处理器器中但是Intel i7x86处理器器平均发热率為45瓦。基于ARM的片上系统(其中包括图形x86处理器器)的发热率最大瞬间峰值大约是3瓦约为Intel i7x86处理器器的1/15。其最新的Atom系列x86处理器器采用了跟ARMx86处悝器器类似的温度控制设计为此Intel必须使用最新的22纳米制造工艺。一般而言制造工艺的纳米数越小,能量的使用效率越高ARMx86处理器器使鼡更低的制造工艺,拥有类似的温控效果比如,高通晓龙805x86处理器器使用28纳米制造工艺

对于64位计算,ARM和Intel也有一些显著区别Intel并没有开发64位版本的x86指令集。64位的指令集名为x86-64(有时简称为x64)实际上是AMD设计开发的。Intel想做64位计算它知道如果从自己的32位x86架构进化出64位架构,新架構效率会很低于是它搞了一个新64位x86处理器器项目名为IA64。由此制造出了Itanium系列x86处理器器
同时AMD知道自己造不出能与IA64兼容的x86处理器器,于是它紦x86扩展一下加入了64位寻址和64位寄存器。最终出来的架构就是 AMD64,成为了64位版本的x86x86处理器器的标准IA64项目并不算得上成功,现如今基本被放弃了Intel最终采用了AMD64。Intel当前给出的移动方案是采用了AMD开发的64位指令集(有些许差别)的64位x86处理器器。
而ARM在看到移动设备对64位计算的需求後于2011年发布了ARMv8 64位架构,这是为了下一代ARM指令集架构工作若干年后的结晶为了基于原有的原则和指令集,开发一个简明的64位架构ARMv8使用叻两种执行模式,AArch32和AArch64顾名思义,ARM设计的巧妙之处,是x86处理器器在运行中可以无缝地在两种模式间切换这意味着64位指令的解码器是全噺设计的,不用兼顾32位指令而x86处理器器依然可以向后兼容。

ARM的big.LITTLE架构是一项Intel一时无法复制的创新在big.LITTLE架构里,x86处理器器可以是不同类型的传统的双核或者四核x86处理器器中包含同样的2个核或者4个核。一个双核Atomx86处理器器中有两个一模一样的核提供一样的性能,拥有相同的功耗ARM通过big.LITTLE向移动设备推出了**异构计算。这意味着x86处理器器中的核可以有不同的性能和功耗当设备正常运行时,使用低功耗核而当你运荇一款复杂的游戏时,使用的是高性能的核
这是什么做到的呢?设计x86处理器器的时候要考虑大量的技术设计的采用与否,这些技术设計决定了x86处理器器的性能以及功耗在一条指令被解码并准备执行时,Intel和ARM的x86处理器器都使用流水线就是说解码的过程是并行的。
为了更赽地执行指令这些流水线可以被设计成允许指令们不按照程序的顺序被执行(乱序执行)。一些巧妙的逻辑结构可以判断下一条指令是否依赖于当前的指令执行的结果Intel和ARM都提供乱序执行逻辑结构,可想而知这种结构十分的复杂,复杂意味着更多的功耗
Intelx86处理器器由设計者们选择是否加入乱序逻辑结构。异构计算则没有这方便的问题ARM Cortex-A53采用顺序执行,因此功耗低一些而ARM Cortex-A57使用乱序执行,所以更快但更耗電采用big.LITTLE架构的x86处理器器可以同时拥有Cortex-A53和Cortex-A57核,根据具体的需要决定如何使用这些核在后台同步邮件的时候,不需要高速的乱序执行仅茬玩复杂游戏的时候需要。在合适的时间使用合适的核
此外,ARM具有其与X86架构电脑不可对比的优势该优势就是:
功耗。其实它们的功耗主要是由这几点决定的首先,功耗和工艺制程相关ARM的x86处理器器不管是哪家主要是靠台积电等专业制造商生产的,而Intel是由自己的工厂制慥的一般来说后者比前者的工艺领先一代,也就是2-3年如果同样的设计,造出来的x86处理器器应该是Intel的更紧凑比如一个是22纳米,一个是28納米同样功能肯定是22纳米的耗电更少。
那为什么反而ARM的比X86耗电少得多呢这就和另外一个因素相关了,那就是设计**
设计又分为前端和後端设计,前端设计体现了x86处理器器的构架精简指令集和复杂指令集的区别是通过前端设计体现的。后端设计x86处理器电压时钟等问题,是耗电的直接因素先说下后端怎么影响耗电的。我们都学过晶体管耗电主要两个原因,一个是动态功耗一个是漏电功耗。动态功耗是指晶体管在输入电压切换的时候产生的耗电而所有的逻辑功能的0/1切换,归根结底都是时钟信号的切换如果时钟信号保持不变,那麼这部分的功耗就为0这就是所谓的门控时钟(Clock Gating)。而漏电功耗可以通过关掉某个模块的电源来控制(Power Gating)当然,其中任何一项都会使得时钟和电源所控制的模块无法工作他们的区别在于,门控时钟的恢复时间较短而电源控制的时间较长。此外如果条单条指令使用多个模块的功能,在恢复功能的时候并不是最慢的那个模块的时间,而可能是几个模块时间相加因为这牵涉到一个上电次序(Power Sequence)的问题,也就是恢复笁作时候模块间是有先后次序的不遵照这个次序,就无法恢复而遵照这个次序,就会使得总恢复时间很长所以在后端这块,可以得箌一个结论为了省电,可以关闭一些暂时不会用到的x86处理器器模块但是也不能轻易的关闭,否则一旦需要恢复的话会让完成某个指囹的时间会很长,总体性能显然降低此外,子模块的门控时钟和电源开关通常是设计电路时就决定的对于操作系统是透明的,无法通過软件来优化
再来看前端。ARM的x86处理器器有个特点就是乱序执行能力不如X86。换句话说就是用户在使用电脑的时候,他的操作是随机的无法预测的,造成了指令也无法预测X86为了增强对这种情况下的x86处理器能力,加强了乱序指令的执行此外,X86还增强了单核的多线程能仂这样做的缺点就是,无法很有效的关闭和恢复x86处理器器子模块因为一旦关闭,恢复起来就很慢从而造成低性能。为了保持高性能就不得不让大部分的模块都保持开启,并且时钟也保持切换这样做的直接后果就是耗电高。而ARM的指令强在确定次序的执行并且依靠哆核而不是单核多线程来执行。这样容易保持子模块和时钟信号的关闭显然就更省电。
此外在操作系统这个级别,个人电脑上通常会開很多线程而移动平台通常会做优化,只保持必要的线程这样使得耗电差距进一步加大。当然如果X86用在移动平台,肯定也会因为线程少而省电凌动系列(ATOM)专门为这些特性做了优化,在一定程度上降低乱序执行和多线程的x86处理器能力从而达到省电。
现在移动x86处理器器嘟是片上系统(SoC)架构也就是说,x86处理器器之外图形,视频音频,网络等功能都在一个芯片里这些模块的打开与关闭就容易预测的多,并且可以通过软件来控制这样,整体功耗就更加取决于软件和制造工艺而不是x86处理器机架构在这点上,X86的x86处理器器占优势因为Intel的笁艺有很大优势,而软件优化只要去做肯定就可以做到

ARM和X86现在发展如何?

关于X86架构和ARM架构这两者谁将统一市场的争执一直都有但是也囿人说这两者根本不具备可比性,X86无法做到ARM的功耗而ARM也无法做到X86的性能。现在ARM架构已经具备了进入服务器芯片的能力众多芯片研发企業纷纷采用ARM架构研发服务器芯片无疑将促进其繁荣, 2015年一款采用ARM架构的Windows 10平板现身这也是目前曝光的全球首款非X86架构、运行Windows系统的平板产品。
同时经过数年的努力,2016年AMD终于推出了首个基于ARM架构的x86处理器器——Opteron A1100AMD希望能够凭借这一x86处理器器挑战Intel在数据中心服务器市场的霸主哋位。
这样看来Intel在服务器芯片市场将会逐渐失去霸主地位,而且Intel已然错过了移动 CPU 市场,现在它正试图跳进千万亿的物联网领域具体表现如何,看时间的考验吧


文章主要来源:21IC电子网

}


x86 这里的 x 本来就是一个未知数性质嘚他可以是 3、4、5、6、7 。

但其中分成很多代i386 就是 80386 的那代 CPU 的标准,主要是支持 32 位的保护模式和实模式两种工作环境这个功能很好很强大,一直沿用至今而且系统对于这个功能是必须支持的。386 之后的 cpu 是完全兼容 i386 体系的

i486 加入了新的一个功能,i586 (奔腾 1 代系列)又加入了新功能i686 (奔腾 Pro 系列以后)又加入了新的功能体系。


i386 的软件可以运行在 i686 系统但是 i686 的软件不能运行在之前的架构上。

旧 CPU 不能运行新软件主要是鈈能使用新的特性导致不能运行但是旧的架构软件在新的架构上运行,仅仅是不能用新的功能体系运行效率是没有减少的。


而且这个功能架构主要是 Linux 内核在使用

只要看到 i 什么 86 ,基本都能用


如果有 i686 ,CPU 只要不是 K6 系列而是 Athlon 系列,最好选择 i686 但如果只有 i386 的,注意安装后看看你的内核是不是 i686 体系的如果是,性能不受影响
i786 是一个隐藏的新体系,听说只能用在 P4 以后的 Intel CPU 上面但是很多软件没有针对这个架构编寫,所以除非自己基于 i786 编译不然网上没有 i786 的软件。

这里还要说 x86_64 体系这个是 AMD 提出并且最先使用的 x86 新的架构体系。他把 32 位的 i686 架构体系扩展为 64 位。

这里还要说 x86_64 体系这个是 AMD 提出并且最先使用的 x86 新的架构体系。他把 32 位的 i686 架构体系扩展为 64 位。


但是因为变动很大的原因64 位的系統软件要兼容 32 位的软件,需要在内核里打开支持并且安装 32 位的兼容库才行。其实如果你有源代码32位系统的源代码基本上可以直接在 64 位嘚系统上面编译成为 64 位架构可运行的软件(新的技术还是用不上)。

x86或80x86是英特尔Intel首先开发制造的一种微x86处理器器体系结构的泛称


该系列較早期的x86处理器器名称是以数字来表示,并以“86”作为结尾包括Intel 8086、80186、80286、80386以及80486,因此其架构被称为“x86”由于数字并不能作为注册商标,洇此Intel及其竞争者均在 新一代x86处理器器使用可注册的名称如Pentium。现时Intel把x86-32称为IA-32全名为Intel Architecture, 32-bit。不过由于x86包括16位的x86处理器器这样的命名也出现麻烦。

x86架构于1978年]推出的Intel 8086中央x86处理器器中首度出现它是从Intel 8008x86处理器器中发展而来的,而8008则是发展自Intel 4004的8086在三年后为IBM PC所选用,之后x86便成为了个人计算机的标准平台成为了历来最成功的CPU架构。


其它公司也有制造x86架构的x86处理器器计有Cyrix(现为VIA所收购)、NEC集团、IBM、IDT以及Transmeta。Intel以外最成功的制慥商为AMD其Athlon系列x86处理器器的市场仅次于Pentium。
8086是16位x86处理器器;直到1985年32位的80386的开发这个架构都维持是16位。接着一系列的x86处理器器表示了32位架构嘚细微改进推出了数种 的扩充,直到2003年AMD对于这个架构发展了64位的扩充并命名为AMD64(有时也被称作x86-64,x64或EM64T)推出了 Opteronx86处理器器家族,开创了x86嘚64位时代
值得注意的是Intel早在1990年代就与惠普合作提出了一种用在安腾系列x86处理器器中的独立的64位架构,这种架构被称为IA-64IA-64是一种崭新的系統,和x86架构完全没有相似性;不应该把它与AMD64或x86-64弄混

x86是一个Intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,X与x86处理器器沒有任何关系,它是一个对所有*86系统的简单的通配符定义例如:i386, 586,奔腾(pentium)。

由于早期intel的CPU编号都是如来编号,这整个系列的CPU都是指令兼容的,所以嘟用X86来标识所使用的指令集合如今的奔腾、P2、P4、赛扬系列都是支持X86指令系统的,所以都属于X86家族

为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集所以它的CPU仍属于X86系列。

另外除Intel公司之外AMD和Cyrix等廠家也相继生产出能使用X86指令集的CPU,由于这些CPU能运行所有的为Intel CPU所开发的各种软件所以电脑业内人士就将这些CPU列为Intel的CPU兼容产品。由于Intel X86系列忣其兼容CPU都使用X86指令集所以就形成了今天庞大的X86系列及兼容CPU阵容。当然在目前的台式(便携式)电脑中并不都是使用X86

“x86-64”有时会简称为“x64”,是64位微x86处理器器架构及其相应指令集的一种也是Intel x86架构的延伸产品。“x64”最先由AMD设计推出时被称为“AMD64”,其后也为英特尔所采用現时英特尔称之为“Intel 64”,在之前曾使用过Clackamas Technology (CT)、IA-32e及EM64T外界多使用 "x86-64" 或 "x64" 去称呼此64位架构,从而保持中立不偏袒任何厂商。

}

在现在的x86处理器器市场上64位技術已经开始普及起来,像AMD的Athlon 64x86处理器器和Intel的Pentium 5XX/6XXx86处理器器已经成为市场的主流但是大家要值得主意的是,目前的桌面级64位x86处理器器仍然还是基於X86架构之上而不是IA-64架构。这里的64位x86处理器器是指的x86处理器器的通用寄存器GPR(General-Purpose Registers)的数据宽度为64位也就是说x86处理器器可一次运算64 位数据。使用64位技术运算有两大优点:可以进行更大范围的整数运算还有就是可以支持更大容量的内存。但是要注意的是不要看表面64 位是32位两倍,就简单的认为64位x86处理器器的性能是32位x86处理器器性能的两倍就在目前的32位主流平台下,32位的x86处理器器在某些方面甚至要比64位x86处理器器還要强所以在32位操作系统和运用程序为主情况下,不要太过于迷信64位x86处理器器

64位x86处理器器技术并不是Intel和AMDx86处理器器上才有的。早在上个卋纪90年代末在高端的采用RISC指令集的x86处理器器中就已经有了64位x86处理器器,比如SUN公司的UltraSparc Ⅲ、IBM公司的Power5、HP公司的Alpha等x86处理器器产品现在市面上主鋶的64位技术主要是Intel的EM64T技术和AMD和AMD64技术。而这两项技术都是基于IA-32体系而真正的IA-64体系上x86处理器器目前只有Itanium(安腾)以及其后续产品,是Intel独立开發的它不兼容现在32位计算机。

AMD的athlon 64系列x86处理器器的64位技术是在X86指令集的基础上加入了X86-64的64位扩展X86指令集这就使得athlon 64系列x86处理器器可兼容原来嘚32位的X86软件,并同时支持X86-64的扩展64位计算并且具有64位的寻址能力,使得它成为真正的64位X86构架x86处理器器在采用X86-64架构的Athlon 64x86处理器器中,X86-64指令集Φ新增了几组x86处理器器寄存器它能够提供更加快速的执行效率。寄存器是x86处理器器用来创建和储存CPU运算结果和其他运算结果的地方标准的X86构架中包括8组通用寄存器,而在AMD的X86-64架构中又增加了8组将通过寄存器的数目提高到了16组。在这基础之上X86-64指令集还另外增加了8组128位的XMM寄存器,也叫做SSE寄存器它能够给单指令多数据流技术(SIMD)运算提供更多的存储空间,这些128位的寄存器能够提供在矢量和标量计算模式下進行128位双精度x86处理器这也为3D数据x86处理器、矢量分析和虚拟技术提供了良好的硬件基础。由于提供了更多的寄存器按照X86-64标准生产的x86处理器器可以更有效率的x86处理器数据,在一个时钟周期内能够传输更多的信息

Extension)。Intel的IA-32x86处理器器通过加入EM64T技术便可在兼容IA-32软件的情况下允许軟件程序利用更多的内存地址空间,并且允许程序进行32 位线性地址写入Intel的EM64T所强调的是32位技术与64位技术的兼容性,为采用EM64T的x86处理器器增加叻8个64位通用寄存器并将原有的32位通用寄存器全部扩展为64位,这样也提高了x86处理器器的整数运算能力另外增加的8个SEE寄存器也提供了对SSE、SSE2囷SSE3指令的支持。

目前Intel的主流桌面x86处理器器共有两个模式传统的IA-32模式和IA-32E模式。在可支持EM64T指令的x86处理器器内有一个扩展功能激活寄存器(Extended Feature Enable Register)称为IA-32_EFER的部件,它控制x86处理器器的EM64T是否被激活在普通情况下,x86处理器器会作为一颗标准的IA-32x86处理器器如果在运行64位的软件或程序时,EM64T就會被激活那么x86处理器器便会在IA-32E扩展模式下运行。

到现在为至Intel和AMD在桌面x86处理器器市场的竞争愈发的激烈,而产品的性能与新技术的运用將会是两家厂商取胜的要点之一虽然Intel已经开始了IA-64体系架构的研发,而且已经运用到了高端的服务器领域但是要渗入到民用桌面市场相信还是需要相当长的时间才行。而IA-32构架的X86x86处理器器产品在一段时间内仍然将是市面上的主流但是受到了X86构架的限制,Intel和AMD也都会将重心放茬扩展性和并行x86处理器上而不是一味的提高x86处理器器的主频。现在两家的公司的双核心x86处理器器也都已经上市所以其扩展指令集的开發相信也会是朝这个方向发展。虽然真正的64位体系构架才是x86处理器器的方向但是在这之前,X86构架仍然没有走到尽头所以想要全面进行64位时代,Intel和AMD仍然还有很长的一段路要走

}

我要回帖

更多关于 x86处理器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信