x86架构是否专门设计用于键盘,而ARM期望移动?这两者之间的主要区别是什么?
答案 0 :(得分:237)
ARM
是RISC(精简指令集计算)架构,而x86
是CISC(复杂指令集计算)架构。
这方面的核心差异在于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有更多的寄存器,在英特尔添加它之前支持大多数指令的预测,有一个"拇指"主要用于增加代码密度的模式(因此程序适合较少的内存)并且长期采用各种技术(称之为#34;技巧",如果您愿意的话)几乎可以在任何地方节省电力它可以。
英特尔曾经一度强调速度而不是功耗。他们开始主要在笔记本电脑的背景下强调功耗。对于笔记本电脑而言,对于相当小的笔记本电脑而言,它们的典型功率目标是大约6瓦。最近(很多最近),他们开始瞄准移动设备(手机,平板电脑等)。对于这个市场,他们只需看几瓦左右最。虽然他们的方法与ARM有很大不同,但他们似乎做得很好,强调制造技术,其中ARM主要强调微架构(考虑到ARM销售设计并将制造留给其他人,这并不奇怪)。
答案 2 :(得分:35)
Jerry Coffin's第一段的附加内容。即ARM设计提供更低的功耗。
公司ARM
仅授权CPU技术。他们不制造物理芯片。这允许其他公司添加各种外围技术,通常称为SOC或片上系统。该设备是平板电脑,手机还是车载娱乐系统。这允许芯片供应商将芯片的其余部分定制到特定应用。这有其他好处,
ARM
支持SOC供应商AMBA,允许SOC实施者购买现成的第三方模块;像以太网,内存和中断控制器。其他一些CPU平台支持此功能,如MIPS,但MIPS并不具备功耗意识。
所有这些都有利于手持/电池供电的设计。有些人在周围都很好。同样,ARM
有电池供电设备的历史; Apple Newton,Psion Organizers。一些公司利用PDA software infra-structure来创建智能手机类型的设备。虽然那些重新发明GUI用于智能手机的人取得了更大的成功。
Open source
工具集和operating systems
的兴起也促进了各种SOC
筹码。封闭的组织在尝试支持ARM可用的所有各种设备时会遇到问题。两个最流行的蜂窝平台Andriod和OSx / IOS基于Linux和FreeBSD, 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年的设计,并且在直线上很好(但使用了大量燃料)。手臂使用很少的燃料,不会减慢角落(树枝)的速度。
隐喻,这里有一些真正的差异。