ARM体系结构与x86有何不同?

时间:2013-02-10 03:40:00

标签: x86 arm

x86架构是否专门设计用于键盘,而ARM期望移动?这两者之间的主要区别是什么?

5 个答案:

答案 0 :(得分:237)

ARMRISC(精简指令集计算)架构,而x86CISC(复杂指令集计算)架构。

这方面的核心差异在于ARM指令仅在寄存器上运行,其中有一些指令用于从/向内存加载和保存数据,而x86也可以直接在内存上运行。直到v8 ARM是本机32位架构,比其他架构更倾向于四字节操作。

所以ARM是一种更简单的架构,导致小的硅面积和大量的省电功能,而x86在功耗和生产方面都成为了一种强大的动力。

关于“是否专门设计用于键盘的x86架构,而ARM期望移动?”。 x86并非特别设计用于移动设备的ARM键盘。然而,由于核心架构选择,实际上x86还具有直接与IO一起工作的指令,而ARM则没有。然而,对于像USB这样的专用IO总线,对这些功能的需求也在消失。

如果您需要引用文档,这就是Cortex-A Series Programmers Guide (4.0)讲述RISC和CISC架构之间差异的原因:

  

ARM处理器是精简指令集计算机(RISC)   处理器。

     

复杂指令集计算机(CISC)处理器,如   x86,有一个丰富的指令集,能够做复杂的事情   只需一条指令。这类处理器往往具有重要意   解码机器指令的内部逻辑量   内部操作序列(微码)。

     

RISC架构,in   相比之下,有更少数量的通用指令,   这可能是用更少的晶体管执行的   硅更便宜,功率更高。像其他RISC一样   在体系结构方面,ARM内核具有大量的通用性   寄存器和许多指令在一个周期内执行。它有   简单寻址模式,所有加载/存储地址都可以   根据寄存器内容和指令字段确定。

ARM公司还提供了一篇题为Architectures, Processors, and Devices Development Article的论文,描述了这些术语如何适用于他们的商业。

比较指令集架构的示例:

例如,如果您在应用程序中需要某种按字节顺序的内存比较块(由编译器生成,跳过详细信息),这就是它在x86

上的样子。
repe cmpsb         /* repeat while equal compare string bytewise */

虽然在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                 */

这应该会提示RISC和CISC指令集的复杂程度如何不同。

答案 1 :(得分:87)

除了多年来ARM在功耗方面具有相当大的优势,这使得它对各种电池供电的设备都具有吸引力之外,没有任何特定的键盘或移动设备。

就实际差异而言:ARM有更多的寄存器,在英特尔添加它之前支持大多数指令的预测,有一个"拇指"主要用于增加代码密度的模式(因此程序适合较少的内存)并且长期采用各种技术(称之为#34;技巧",如果您愿意的话)几乎可以在任何地方节省电力它可以。

英特尔曾经一度强调速度而不是功耗。他们开始主要在笔记本电脑的背景下强调功耗。对于笔记本电脑而言,对于相当小的笔记本电脑而言,它们的典型功率目标是大约6瓦。最近(很多最近),他们开始瞄准移动设备(手机,平板电脑等)。对于这个市场,他们只需看几瓦左右最。虽然他们的方法与ARM有很大不同,但他们似乎做得很好,强调制造技术,其中ARM主要强调微架构(考虑到ARM销售设计并将制造留给其他人,这并不奇怪)。

答案 2 :(得分:35)

Jerry Coffin's第一段的附加内容。即ARM设计提供更低的功耗。

公司ARM仅授权CPU技术。他们不制造物理芯片。这允许其他公司添加各种外围技术,通常称为SOC或片上系统。该设备是平板电脑,手机还是车载娱乐系统。这允许芯片供应商将芯片的其余部分定制到特定应用。这有其他好处,

  1. 降低电路板成本
  2. 降低功率(注1)
  3. 更容易制造
  4. 更小的外形
  5. ARM支持SOC供应商AMBA,允许SOC实施者购买现成的第三方模块;像以太网,内存和中断控制器。其他一些CPU平台支持此功能,如MIPS,但MIPS并不具备功耗意识。

    所有这些都有利于手持/电池供电的设计。有些人在周围都很好。同样,ARM有电池供电设备的历史; Apple NewtonPsion Organizers。一些公司利用PDA software infra-structure来创建智能手机类型的设备。虽然那些重新发明GUI用于智能手机的人取得了更大的成功。

    Open source工具集和operating systems的兴起也促进了各种SOC筹码。封闭的组织在尝试支持ARM可用的所有各种设备时会遇到问题。两个最流行的蜂窝平台Andriod和OSx / IOS基于LinuxFreeBSD, Mach and NetBSD os。 Open Source帮助SOC供应商为其芯片组提供软件支持。

    希望为什么 x86 用于键盘是不言而喻的。它有软件,更重要的是受过培训的人使用该软件。 Netwinder是一个ARM系统,最初是为键盘设计的。此外,制造商目前正在研究服务器市场的ARM64。电源/热量是24/7数据中心的一个问题。

    所以我想说围绕这些芯片增长的生态系统与低功耗等功能一样重要。 ARM一直致力于低功耗,高性能计算(1980年代中后期),他们有很多人参与其中。

    注1:多个芯片需要总线驱动器以已知电压和驱动器进行相互通信。此外,通常单独的芯片需要支持电容和其他功率组件,这些组件可以在 SOC 系统中共享。

答案 3 :(得分:15)

ARM体系结构最初是为Acorn个人计算机设计的(参见Acorn Archimedes,大约1987年和RiscPC),它们与基于x86的IBM PC模型一样多,基于键盘的个人计算机。只有后来的ARM实施主要针对移动和嵌入式市场。

最初,性能大致相同的简单RISC CPU可以由比英特尔x86开发人员更小的工程团队(参见Berkeley RISC)设计。

但是,如今,最快的ARM芯片具有由大型工程团队设计的非常复杂的多发布无序指令调度单元,而x86内核可能具有由指令转换单元提供的RISC内核。

因此,两种体系结构之间的任何当前差异都与开发团队所针对的产品利基的特定市场需求更相关。 (随机意见:ARM可能会从嵌入式应用程序中获得更多的许可证费用,而这些应用程序往往功耗和成本都要大得多。而且英特尔需要在PC和服务器上保持性能优势以获得利润率。因此,您会看到不同的实现优化。)

答案 4 :(得分:15)

ARM就像一辆意大利跑车:

  • 平衡良好,调整良好,发动机。提供良好的加速度和最高速度。
  • 优秀的追逐,刹车和悬挂。可以快速停下来,可以在不减速的情况下转弯。

x86就像一辆美国肌肉车:

  • 大发动机,大燃油泵。提供出色的最高速度和加速度,但使用了大量燃料。
  • 可怕的刹车,如果你想放慢速度,你需要预约日记。
  • 可怕的转向,你必须放慢角落。

总结:x86基于1974年的设计,并且在直线上很好(但使用了大量燃料)。手臂使用很少的燃料,不会减慢角落(树枝)的速度。

隐喻,这里有一些真正的差异。

  • Arm有更多寄存器。
  • Arm有很少的专用寄存器,x86是所有专用寄存器(因此移动的东西较少)。
  • Arm几乎没有内存访问命令,只有加载/存储寄存器。
  • Arm是哈佛建筑内部的设计。
  • 手臂简单快速。
  • Arm指令在架构上是单周期的(加载/存储多个除外)。
  • 手臂指令通常不止一件事(在一个周期内)。
  • 需要更多的一条Arm指令,例如x86的循环存储&自动递增,Arm仍在较短的时钟周期内完成。
  • Arm有更多条件指示。
  • Arm的分支预测器非常简单(如果是无条件或向后然后假设分支,否则假设不是分支),并且在x86中非常非常复杂的那个表现得更好(这里没有足够的空间来解释它,而不是我能)。
  • Arm具有简单一致的指令集(您可以手动编译,并快速学习指令集)。