aus*_*len 263
ARM是一种RISC(精简指令集计算)架构,同时x86是CISC(复杂指令集计算)架构.
这方面的核心差异在于ARM指令仅在寄存器上运行,其中有一些指令用于从/向内存加载和保存数据,而x86也可以直接在内存上运行.直到v8 ARM是本机32位架构,比其他架构更倾向于四字节操作.
所以ARM是一种更简单的架构,导致小的硅面积和大量的省电功能,而x86在功耗和生产方面都成为了一种强大的动力.
关于" 是否x86架构专门设计用于键盘而ARM期望移动? "的问题.x86不是专门设计用于键盘也不ARM适用于移动设备.然而,由于核心架构选择,实际上x86也有指令直接使用IO而ARM没有.然而,对于像USB这样的专用IO总线,对这些功能的需求也在消失.
如果需要引用文档,这就是Cortex-A系列程序员指南(4.0)讲述RISC和CISC架构之间的差异:
ARM处理器是精简指令集计算机(RISC)处理器.
复杂指令集计算机(CISC)处理器,如x86,具有丰富的指令集,能够通过单个指令执行复杂的操作.这样的处理器通常具有大量的内部逻辑,其将机器指令解码为内部操作序列(微代码).
相比之下,RISC架构具有更少数量的通用指令,可以用更少的晶体管执行,从而使硅更便宜且功率效率更高.与其他RISC架构一样,ARM内核具有大量通用寄存器,许多指令在一个周期内执行.它具有简单的寻址模式,其中所有加载/存储地址可以从寄存器内容和指令字段确定.
ARM公司还提供了一篇题为" 体系结构,处理器和设备开发文章"的论文,描述了这些术语如何适用于他们的业务.
比较指令集架构的示例:
例如,如果您需要在应用程序中使用某种字节内存比较块(由编译器生成,跳过详细信息),这就是它的外观. x86
repe cmpsb /* repeat while equal compare string bytewise */
Run Code Online (Sandbox Code Playgroud)
在ARM最短的形式可能看起来像(没有错误检查等)
top:
ldrb r2, [r0, #1]! /* load a byte from address in r0 into r2, increment r0 after */
ldrb r3, [r1, #1]! /* load a byte from address in r1 into r3, increment r1 after */
subs r2, r3, r2 /* subtract r2 from r3 and put result into r2 */
beq top /* branch(/jump) if result is zero */
Run Code Online (Sandbox Code Playgroud)
这应该会提示RISC和CISC指令集的复杂程度如何不同.
Jer*_*fin 88
除了多年来ARM在功耗方面具有相当大的优势,这使得它对各种电池供电的设备都具有吸引力之外,它们都没有任何特定的键盘或移动设备.
就实际差异而言:ARM有更多寄存器,在英特尔添加它之前很久就支持对大多数指令的预测,它具有"拇指"模式,主要用于增加代码密度(因此程序适合较少的内存)并且很长时间都包含在内各种技术(如果你愿意,可称之为"技巧")几乎可以在任何地方节省电力.
英特尔曾一度强调速度而不是功耗.他们开始主要在笔记本电脑的背景下强调功耗.对于笔记本电脑而言,对于相当小的笔记本电脑而言,它们的典型功率目标是大约6瓦.最近(多最近),他们已经开始瞄准移动设备(手机,平板电脑等)对于这个市场,他们正在寻找一对夫妇瓦左右最多.虽然他们的方法与ARM大不相同,但他们似乎做得很好,强调制造技术,其中ARM主要强调微架构(考虑到ARM销售设计并将制造留给其他人,这并不奇怪).
art*_*ise 37
除了Jerry Coffin的第一段.即ARM设计提供更低的功耗.
该公司ARM仅授权CPU技术.他们不制造物理芯片.这允许其他公司添加各种外围技术,通常称为SOC或片上系统.该设备是平板电脑,手机还是车载娱乐系统.这允许芯片供应商将芯片的其余部分定制到特定应用.这有额外的好处,
ARM支持SOC供应商使用AMBA,允许SOC实施者购买现成的第三方模块; 像以太网,内存和中断控制器.其他一些CPU平台支持这一点,如MIPS,但MIPS并不具备功耗意识.
所有这些都有利于手持/电池供电的设计.有些人在周围都很好.同样,ARM有电池供电设备的历史; Apple Newton,Psion组织者.该PDA的软件基础结构被一些公司利用创造的智能手机类设备.尽管那些重新发明用于智能手机的GUI的人已经取得了更大的成功.
Open source工具集的兴起operating systems也促进了各种SOC芯片的发展.封闭的组织在尝试支持ARM可用的所有各种设备时会遇到问题.最流行的两种移动平台Andriod和OSx/IOS基于Linux和FreeBSD,Mach和NetBSD操作系统. Open Source帮助SOC供应商为其芯片组提供软件支持.
希望,为什么x86用于键盘是不言而喻的.它有软件,更重要的是受过培训的人使用该软件. Netwinder是一个ARM最初为键盘设计的系统.此外,制造商目前正在研究服务器市场的ARM64.电源/热量是24/7数据中心的关注点.
所以我想说围绕这些芯片生长的生态系统与低功耗等功能同样重要. ARM一段时间(1980年代中后期)一直在努力争取低功耗,高性能的计算,并且他们有很多人参与.
注1:多个芯片需要总线驱动器以已知电压和驱动器进行相互通信.而且,通常单独的芯片需要支持电容器和可以在SOC系统中共享的其他功率组件.
hot*_*aw2 15
ARM架构最初是为Acorn个人计算机设计的(参见Acorn Archimedes,大约1987年,和RiscPC),它们与基于x86的IBM PC机型一样多,都是基于键盘的个人计算机.只有后来的ARM实施主要针对移动和嵌入式市场.
最初,具有大致相同性能的简单RISC CPU可以由比英特尔x86开发人员更小的工程团队(参见Berkeley RISC)设计.
但是,如今,最快的ARM芯片具有由大型工程团队设计的非常复杂的多发布无序指令调度单元,而x86内核可能具有由指令转换单元馈送的RISC核心.
因此,两种体系结构之间的任何当前差异都与开发团队所针对的产品利基的特定市场需求更相关.(随机意见:ARM可能会从嵌入式应用程序中获得更多的许可证费用,而这些应用程序往往功耗和成本都要大得多.而且英特尔需要在PC和服务器上保持性能优势以获得利润率.因此,您会看到不同的实现优化.)
ctr*_*lor 15
ARM就像一辆意大利跑车:
x86就像一辆美国肌肉车:
总结:x86基于1974年的设计,并且在直线上很好(但使用了大量燃料).手臂使用很少的燃料,不会减慢角落(树枝)的速度.
隐喻,这里有一些真正的差异.