1.关于x86架构

X86是一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,X86是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序,现在X86已经广泛运用到了家用PC领域。x86是一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,X与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义,例如:i386, 586,奔腾(pentium)。由于早期intel的CPU编号都是如8086,80286来编号,由于这整个系列的CPU都是指令兼容的,所以都用X86来标识所使用的指令集合如今的奔腾,P2,P4,赛扬系列都是支持X86指令系统的,所以都属于X86家族。X86的不足在什么地方?

(1)可变的指令长度   X86指令的长度是不定的,而且有几种不同的格式,结果造成X86 CPU的解码工作非常复杂,为了提高CPU的工作频率,不得不延长CPU中的流水线,而过长的流水线在分支预测出错的情况下,又会带来CPU工作停滞时间较长的弊端。   
(2)寄存器的贫乏   X86指令集架构只有8个通用寄存器,而且实际只能使用6个。这种情况同现代的超标量CPU极不适应,虽然工程师们采用寄存器重命名的技术来弥补这个缺陷,但造成了CPU过于复杂,流水线过长的局面。   
(3)内存访问   X86指令可访问内存地址,而现代RISC CPU则使用LOAD/STORE模式,只有LOAD和STORE指令才能从内存中读取数据到寄存器,所有其他指令只对寄存器中的操作数计算。在目前CPU的速度是内存速度的5倍或5倍以上的情况下,后一种工作模式才是正途。  (4)浮点堆栈   X87 FPU是目前最慢的FPU,主要的原因之一就在于X87指令使用一个操作数堆栈。如果没有足够多的寄存器进行计算,你就不得不使用堆栈来存放数据,这会浪费大量的时间来使用FXCH指令(即把正确的数据放到堆栈的顶部)。   
(5)4GB限制   这似乎不是问题,但是,在6年前,主流PC只有4MB内存,而目前的绝大部分PC装备了64MB以上的内存,是以前的16倍,所以,在下一个十年,PC内存突破1GB绝对不会令人惊讶,而且目前的大型服务器已经使用了1GB以上的内存,突破4GB内存的情况很快就会出现。   
(6)芯片变大   所有用于提高X86 CPU性能的方法,如寄存器重命名、巨大的缓冲器、乱序执行、分支预测、X86指令转化等等,都使CPU的芯片面积变得更大,也限制了工作频率的进一步提高,而额外集成的这些晶体管都只是为了解决X86指令的问题。

GOOGLE的Android系统和苹果的IPAD、IPHONE推出后,ARM架构的电脑系统(特别是在终端方面应用)受到用户的广泛支持和追捧,ARM+Android成为IT、通信领域最热门的话题,众多芯片厂商纷纷推出具有各种独特应用功能基于ARM结构开发的产品,近期最新形成的“异构概念”更成为电脑今后发展主要方向。在IT行业推崇了20多年的“性价比“概念受到根本的动摇和冲击,“适用的才是最好的”已经被越来越多的用户接受。

我们就ARM架构的系统与X86架构系统的特性进行一个系统分析,方便用户在选择系统时进行理性、合理的比价分析。

一、性能:
X86结构的电脑无论如何都比ARM结构的系统在性能方面要快得多、强得多。X86的CPU随便就是1G以上、双核、四核大行其道,通常使用45nm(甚至更高级)制程的工艺进行生产;而ARM方面:CPU通常是几百兆,最近才出现1G左右的CPU,制程通常使用不到65nm制程的工艺,可以说在性能和生产工艺方面ARM根本不是X86结构系统的对手。
但ARM的优势不在于性能强大而在于效率,ARM采用RISC流水线指令集,在完成综合性工作方面根本就处于劣势,而在一些任务相对固定的应用场合其优势就能发挥得淋漓尽致。

二、扩展能力
X86结构的电脑采用“桥”的方式与扩展设备(如:硬盘、内存等)进行连接,而且x86结构的电脑出现了近30年,其配套扩展的设备种类多、价格也比较便宜,所以x86结构的电脑能很容易进行性能扩展,如增加内存、硬盘等。

ARM结构的电脑是通过专用的数据接口使CPU与数据存储设备进行连接,所以ARM的存储、内存等性能扩展难以进行(一般在产品设计时已经定好其内存及数据存储的容量),所以采用ARM结构的系统,一般不考虑扩展。基本奉行“够用就好”的原则。

三、操作系统的兼容性
X86系统由微软及Intel构建的Wintel联盟一统天下,垄断了个人电脑操作系统近30年,形成巨大的用户群,也深深固化了众多用户的使用习惯,同时x86系统在硬件和软件开发方面已经形成统一的标准,几乎所有x86硬件平台都可以直接使用微软的视窗系统及现在流行的几乎所有工具软件,所以x86系统在兼容性方面具有无可比拟的优势。

ARM系统几乎都采用Linux的操作系统,而且几乎所有的硬件系统都要单独构建自己的系统,与其他系统不能兼容,这也导致其应用软件不能方便移植,这一点一直严重制约了ARM系统的发展和应用。GOOGLE开发了开放式的Android系统后,统一了ARM结构电脑的操作系统,使新推出基于ARM结构的电脑系统有了统一的、开放式的、免费的操作系统,为ARM的发展提供了强大的支持和动力。

四、软件开发的方便性及可使用工具的多样性
X86结构的系统推出已经近30年,在此期间,x86电脑经过飞速发展的黄金时期,用户的应用、软件配套、软件开发工具的配套及兼容等工作,已经到达非常成熟甚至可以说是完美的境界。所以使用X86电脑系统不仅有大量的第三方软件可供选择,也有大量的软件编程工具可以帮助您完成您所希望完成的工作。

Arm结构的电脑系统因为硬件性能的制约、操作系统的精简、以及系统兼容等问题的制约,造成Arm结构的电脑系统不可能像X86电脑系统那样有众多的编程工具和第三方软件可供选择及使用,ARM的编程语言大多采用C和JAVA。

对这一点的比较,更直接的结论是:基于x86结构电脑系统平台开发软件比arm结构系统更容易、更简单、实际成本也更低,同时更容易找到第三方软件(免去自己开发的时间和成本),而且软件移植更容易。

从以上对比分析,给了我们的一个很清晰的感觉,ARM和X86结构的电脑根本就无法对比,ARM根本就不是X86电脑的的对手。是的,如果只考虑上述几个方面的要数,ARM确实无法与X86电脑竞争,甚至连比较的资格都没有。但是近1、2年,ARM的产品在终端应用特别是手持终端应用飞速发展(如:智能手机、平板电脑等),其销售数量已经远远超出x86结构的电脑销售数量,可见ARM是具有其与X86结构电脑不可对比的优势。该优势就是:功耗.

五、功耗
X86电脑因考虑要适应各种应用的需求,其发展思路是:性能+速度。20多年来x86电脑的速度从原来8088的几M发展到现在随便就是几G,而且还是几核,其速度和性能已经提升了千、万倍,技术进步使x86电脑成为大众生活中不可缺少的一部分。但是x86电脑发展的方向和模式,使其功耗一直居高不下,一台电脑随便就是几百瓦,即使是号称低功耗节能的手提电脑或上网本,也有十几、二十多瓦的功耗,这与ARM结构的电脑就无法相比。

ARM的设计及发展思路是:满足某个特殊方面的应用即可,在某一专项领域是最强的,(哪怕在其他方面一无是处),这样Arm以其不是最强的技术,同样也不是很高级制程的制造工艺,生产出性能不是很强的电脑系统,但在某个专业应用方面则是最好的,特别是在众多终端应用,尤其在移动终端应用上占有绝对优势的统治地位,这个原因就是:功耗。

高功耗导致了一系列X86系统无法解决的问题出现:系统的续航能力弱、体积无法缩小、稳定性差、对使用环境要求高等问题。从这里我们可以看到x86系统与ARM系统是在两个完全不同领域方面的应用,他们之间根本不存在替换性,在服务器、工作站以及其他高性能运算等应用方面,是可以不考虑功耗和使用环境等条件时,X86系统占了优绝对优势;但受功耗、环境等条件制约且工作任务固定的情况下ARM就占有很大的优势,在手持式移动终端领域,X86的功耗更使他英雄毫无用武之地。

但在很多的应用终端领域,现正成为两大阵营争夺的重点,ARM阵营努力增加其性能和系统(特别是操作系统)的通用性,蚕食x86系统的部分终端应用市场;X86阵营努力降低功耗保住其市场,同时侵入手持移动终端市场。

我们今天讨论的重点就是在两大阵营都能可以覆盖的终端应用领域进行对比、分析。这类型的应用一定是终端应用,通常有下面几个特征:
1、系统的工作性质比较固定(如:POS、ATM、车载电脑系统、多媒体广告播放系统、视频监控系统,以及众多的信息接收、控制系统和专业的工控系统等等);
2、应用环境比较恶劣,如:温度变化很大,高温超过40度,低温达零下20度;多尘、潮湿等;
3、有一定的应用数量,但数量不是很大。
这部分的应用领域传统上是由X86结构的低功耗工控机(系统)实现的,但近几年ARM系统的飞速发展,特别是Android操作系统出现后,ARM+Android大有取代x86系统占领(低功耗)终端应用领域的趋势。我们在考虑这种应用对比时根据ARM和X86的特性对比主要还考虑以下以及因数:

1、性能:
如果ARM系统的性能能满足应用需求时,建议尽可能可虑采用ARM结构的产品,否则只能考虑X86的产品。注意在这里我们要强调的是:不要讲两个系统的绝对性能进行比较,而是以能否您的应用特点为标准进行分析。

2、应用数量:
如果您的应用数量太少,您可能根本不值得独立开发一套应用系统,但如果您的应用数量达到几百甚至过千时,您是值得考虑自己开发一套新的系统的。因为:Arm的开发成本和制造成本相对比较低,如果有几百个以上终端应用,应该可以分摊掉开发成本。

如果选用X86结构的系统,根本不应该考虑单独开发一套专用系统(因为开发成本太高,可能是ARM的10倍),而是在市场上筛选出最接近您需求的产品,以避免高昂的硬件开发成本,和今后的制造成本(如果批次生产的数量不够,排产成本也会很高)。

3、操作系统
ARM的操作系统通常是单独建立一个自己的Linux系统,且系统与系统间不能兼容,这严重制约了Arm的应用扩展,但Android出现后,系统兼容的屏障正逐步消失,促进了系统以及应用软件的兼容,大大扩大了ARM应用软件的的数量同时扩大了其应用空间。

4、功耗以及功耗延伸的系列问题
ARM的优势是功耗低,其实低功耗还意味着:
1)稳定性高:因为功耗越高电子元器件的稳定性和可靠性越差,对低功耗的产品只要选择好外围元件的品质,系统的稳定性不会有太大问题;
2)散热成本低和可以考虑更小的产品体积:对高功耗的产品不可避免要考虑散热问题,而散热设备(或器件)的存在,有制约了产品的体积,对某些场合的应用构成致命的制约。但ARM的功耗<1W,完全不用考虑散热问题。
3)功耗低对供电电源的要求低:几乎所有电子产品,(在同等条件下)功耗越高对电源的要求越高,电源的成本就越高。
4)功耗低电池的续航时间长,这不作详尽解释。
5)功耗低对抗环境伤害的能力强:低功耗产品因为不用考虑散热,可以将产品密封保护起来,但高功耗产品必须散热,甚至需要风扇帮助散热,这样必然使很多的元件和线路裸露在空气中,被空气中的尘埃、湿气、酸碱物质等腐蚀。

5、软件开发成本问题
Arm的操作系统很小(精简)不可能带很多工具,通常基于Arm的软件大多用C或JAVA开发,其成本会比基于X86系统的高。而且对大多数ARM而言,因其操作系统不一样,软件业不能在两个系统中自由互换使用,但一般来说:用C或JAVA编写的软件只需在ARM平台的操作系统中编译一下就可以移植过去。

但对Android系统开发的软件,只要能在某台Arm设备中运行,就可以在另一台基于同样系统的设备中运行。

6、硬件的开发成本
ARM实际上在CPU芯片中已经整合了几乎所有功能,几乎所有线路按原理图直接拉出就可以了,需要扩展的部分一般不多,所以其开发成本会比较低,通常三五万就可以了。

但X86的外围线路很多,需要相当经验的工程师,而且还有BIOS等设计,所以X86主板的设计费用会比较高,通常要二三十万。

7、硬件的制造及应用成本
无论Arm或X86主板其制造成本都是由元件和加工费构成,通常一片ARM的主板价格与一片X86主板的价格差不多,但ARM是一片可以独立使用的产品,但x86主板通常还要加上:CPU、内存、硬盘甚至还有显卡。另外X86还要配上一个电源,这个电源比ARM得电源要贵很多。所以:明显X86在硬件方面的应用成本比ARM高得多。

总结上面对比,X86系统和ARM系统应该是两个完全不同领域的应用,如果功能单一又受到环境制约的应用,如:POS、ATM、多媒体广告机(现已经有ARM+DSP的产品)、车载电脑终端等应用,应该首先考虑ARM方案,ARM方案与X86相比,其功耗和成本占有很大优势。

来源:http://www.cnwit.com/bencandy.php?fid=66&id=451

X86 架构和 ARM 架构的更多相关文章

  1. X86架构与ARM架构比较(摘录自网络)

    引言 CPU是怎样运作的? CPU的运作与人脑的运作差不多.先谈一下人这个系统的工作方式.眼镜.耳朵.舌头.皮肤等等感觉器官接收到"触觉",把信息传给大脑,大脑把信息处理后,把处理 ...

  2. X86架构与ARM架构比较

    引言 CPU是怎样运作的? CPU的运作与人脑的运作差不多.先谈一下人这个系统的工作方式.眼镜.耳朵.舌头.皮肤等等感觉器官接收到“触觉”,把信息传给大脑,大脑把信息处理后,把处理结果送给手.脚.嘴等 ...

  3. ARM架构和X86架构对比

    转载地址 我们就ARM架构的系统与X86架构系统的特性进行一个系统分析,方便用户在选择系统时进行理性.合理的比价分析. 一.性能: X86结构的电脑无论如何都比ARM结构的系统在性能方面要快得多.强得 ...

  4. 让x86的android模拟器能模拟arm架构系统

    网上介绍共计三种模拟器比较常用,分别是bluestacks.andy和Genymotion,前者支持ARM架构,中者支持远程控制,后者启动速度快,各有优缺点. 如果要用genymotion模拟arm的 ...

  5. 百度全新的ARM架构服务器,一个2U机箱装6台,每台4个3T硬盘,每个机箱共72TB

    1月11日,中国科学院原秘书长.国家科技重大专项国务院咨询评估组专家侯自强,来到百度南京数据中心,和他一起的还有中国工程院院士倪光南以及工业和信息化部电信研究院传输研究所副所长石友康等人.他们看到的是 ...

  6. KDB支持单步调试功能(ARM架构)

    0    实践发现KDB不支持step调试功能 (本文针对的是arm CotexA9架构,各种架构的实现方式不一样,    X86的好像已经支持,不过本人没有验证过) 1    首先看下要调试的代码段 ...

  7. ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么区别和联系?(转载自知乎)

    ARM架构:  由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~ARMv8种类. ARM7:       一类采用ARMv3或ARMv4架构的,使用冯诺依曼结构的内核. ...

  8. CPU 架构 —— ARM 架构

    linux 系统查看 CPU 架构命令: $ arch armv7l $ uname -m armv7l # -m:--machine # 进一步查看处理器信息 $ cat /proc/cpuinfo ...

  9. 一颗ARM架构芯片的软硬件构成

    硬件和软件是一颗芯片系统互相依存的两大部分.本文总结了一颗芯片的软硬件组成.作为对芯片的入门级概括吧. (一)硬件 主控CPU:运算和控制核心.基带芯片基本构架採用微处理器+数字信号处理器(DSP)的 ...

随机推荐

  1. android学习笔记九——RatingBar

    RatingBar==>星级评分条 RatingBar和SeekBar十分相似,它们甚至有相同的父类:AbsSeekBar.两者都允许用户通过拖动来改变进度: 两者最大的区别在于RatingBa ...

  2. VoLTE、呼叫等待(保持)

    VoLTE 的出现是手机通话的革命,VoLTE带来更好通话质量,更快的接通时间,接近0掉线这些特点,还可以一边通话一边上网,一方面VoLTE需要运营商的支持,另外一方面也需要手机终端的支持. 什么手机 ...

  3. Linux从逻辑地址到物理地址

    转自:http://blog.chinaunix.net/uid-24774106-id-3427836.html 我们都知道,动态共享库里面的函数的共享的,这也是动态库的优势所在,就是节省内存.C ...

  4. 技巧分享——如何去除多余的CSS代码?

    有时候,当你的CSS代码过多的时候,而且已经明确知道有部分CSS代码是多余的: 这时候,有什么较快的办法可以去除多余的CSS呢?? 下面分享一个实用技巧: 1.使用谷歌浏览器:Chrome .下载 2 ...

  5. 蜘蛛纸牌存档修改——python3.4.3

    #encoding:utf-8 import struct myfile = open("D:\\Backup\\我的文档\\spider.sav","rb+" ...

  6. smartgit document merge

    'Normal' Merge In case of a normal merge, a merge commit with at least two parent commits (i.e., the ...

  7. POJ 1740 A New Stone Game(普通博弈)

    A New Stone Game 题意: 对于n堆石子,每堆若干个,两人轮流操作,每次操作分两步,第一步从某堆中去掉至少一个,第二步(可省略)把该堆剩余石子的一部分分给其它的某些堆.最后谁无子可取即输 ...

  8. POJ 1466 Girls and Boys 黑白染色 + 二分匹配 (最大独立集) 好题

    有n个人, 其中有男生和女生,接着有n行,分别给出了每一个人暗恋的对象(不止暗恋一个) 现在要从这n个人中找出一个最大集合,满足这个集合中的任意2个人,都没有暗恋这种关系. 输出集合的元素个数. 刚开 ...

  9. mongodb csv 文件导入数据库,删除特定字段

    1. 导入数据库 mongoimport -h host_ip -p port -d db_name -c collection_name --fields name1,name2,name3,nam ...

  10. 105、android:windowSoftInputMode属性详解

    activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性. 这个属性能影响两件事情: [一]当有焦点产生时,软键盘是隐藏还是显示 [二]是否减少活动 ...