ARM有什么优点?


61

在对此答案的评论中,Kortuk提出了ARM的优势是什么。我首先在答案中添加了一些论点,但是我认为这个问题很有趣,以至于本身就是一个问题,因此有可能提供更多答案。


1
您的答案似乎对建设性最低的问题具有建设性,但我担心其他人会写出很自以为是的答案。我们将看看人们是否试图越过您设置的标准。
Kortuk

@Kortuk-如果您认为可以帮助获得更好的答案,请随意编辑问题或标题的措词。(无论如何,这都是您的问题)
stevenvh 2011年

5
这个问题是一场宗教战争。如果不是人们在问和发表评论,我将投票决定立即关闭它。记住,您知道自己永远是对的,而另一个人是出于信仰的野蛮异教徒。让圣战开始……
奥林·拉斯洛普

@olinLathrop,这就是我要注意的。目前看来,我们正在获得高质量的答案,而不会产生争吵。我可能会将此定为CW的长期目标,并允许谷歌诱饵与有关手臂的有趣信息一起存在。我通常会完全关闭此文件,但@stevenvh确实打开了一个很好的答案,似乎已经定下了质量基调。
Kortuk

Answers:


51

性能是优势之一。作为32位处理器,它在DMIPS方面(几乎)胜过所有8位控制器。核心也经历了几代人的读取优化。
这些优化不仅显示在性能数字上,而且还显示在功耗上。与上一代相比,最新的内核将其DMIPS / mW比提高了一倍(另请参见此答案)。
许多其他微控制器相比,ARM的制造商数量众多,而且制造商均可提供ARM ,每种产品都有许多版本可供选择,并具有片上外设,存储器和封装的不同组合。恰当的例子:恩智浦提供不少于35个带有片上以太网的控制器
ARM是价格不贵 ; ARM可能是第一个突破1美元壁垒的32位控制器。

这种组合的性能广泛的产品低成本使它这样,你根本无法忽视ARM:

分析公司Linley Group的研究显示,2005年,约98%的手机在其主板上使用至少一个ARM设计的内核。来源

2


1
我只能补充说,ARM绝对是第一个突破0.5美元价格点的32位微型处理器(数量上是Cortex M0)
BarsMonster 2011年

@Barsmonster-太好了!看起来8位的唯一未来是2mm x 3mm DFN
stevenvh 2011年

@self-也许还没有。请参阅我的答案中有关LPC1102的其他内容。
stevenvh 2011年

@stevenvh-嗯,还有功耗优势。LPC1102 @ 12MHz睡眠模式使用1mA。不错,但是比[16位] msp430高出约1000倍。
Imbrondir

1
@self-也要充分利用这一优势。经过一番搜索后,看来Energy Micro拥有一个M3,它在睡眠模式下+ RTC可以降至0.6uA。
Imbrondir

37

尚未提及的一点:1908年,一个名叫PL罗伯逊先生的家伙发明了一种新的改进的螺丝头和螺丝刀。他想成为唯一为他的设计制造螺丝和螺丝刀的人。几十年后,一个叫亨利·菲利普斯先生的人提出了另一种设计方案。与罗伯逊先生不同,菲利普斯先生对许可他的设计更感兴趣,而不是生产螺丝和螺丝刀。

同样,在1970年代,索尼想出了一项叫做Betamax的技术。JVC提出了一种叫做VHS的方法。索尼对生产VCR感兴趣。JVC对许可更感兴趣。

这里似乎有一种模式。(注:一段时间以来,英特尔确实获得了其80x86技术的许可,但几十年来,它一直更加致力于开发内部使用的技术。)


4
是。我认为ARM知识产权许可计划是成功的原因。

10
ARM通过许可获得了极大的灵活性。如果您只需要用于几个内核的IP,则价格不会太高。但是,如果您想制造一个高度定制的芯片,并由芯片设计人员完全优化,则成本更高,但可以选择。 因此,像Apple这样的公司可以自行开发针对其应用进行优化的处理器产品线。大多数公司不会让太多的皇冠珠宝超出他们的控制范围。
Mike DeSimone

重要的是要注意,ARM不会与Intel的x86系列竞争(甚至在新的Atom处理器所处的空间中也没有竞争)。如果您的答案暗示了这一点,那是不正确的。英特尔的Moorestown和Medfield架构(旨在)在与ARM相同的领域中竞争。
标记

1
自从Intel的80x86系列产品在当今将使用ARM的应用程序类型中获得竞争以来已经有很长的历史了,但是8088、8086、80286和80386均已获得许可,在嵌入式系统中很受欢迎。我对英特尔的评论主要是要承认,尽管英特尔没有像ARM那样获得许可,但它在当今仍然很受欢迎。
supercat

@supercat:如今,英特尔许可了许多软IP。它还提供了用于FPGA设计的设计工具和SIP(intel.com/content/www/us/en/fpga/ip-and-design-tools.html
jbord39,2016年

32
  1. 为所有供应商的ARM开发相同的硬件/软件。您只需购买JLINK / ULINK和一些Keil IDE,就可以使用它来开发,仿真和调试星球上几乎所有的ARM。

  2. 转向新的芯片供应商时无需学习新架构=>更少的供应商锁定=>更多的竞争=>更低的价格

  3. 在现代技术流程(0.18um及以下)中,ARM内核是如此之小,以至于将其牺牲为8位内核将无法节省任何可见的价格。因此,之所以选择标准的高性能而廉价的架构。

  4. 性能-只有使用ARM,您才能拥有32 * 32-> 32的单时钟乘法,并且对32 * 32-> 64的硬件支持以及1美元以下设备的除法(例如,低端STM32)

  5. ARM不太贪婪,并且不收取不合理的许可证费用,因此制造商可以生产廉价的微型计算机。


27

由于以下原因,我将重点放在中型ARM处理器上:

  1. 全面的Linux支持

    这意味着设备驱动程序几乎是免费的。我已经完成了足够的USB主机和设备代码,我不再想要这样做了。我也对尝试将TCP / IP添加到随机处理器平台并不感到很兴奋(尽管LwIP / uIP并不那么糟糕)。我什至从未尝试过Wi-Fi,真正的蓝牙堆栈,网络摄像头等。使用Linux意味着可以轻松地与许多设备通讯。

    我也对Linux设备驱动程序的编写如此合理和容易感到惊讶。在完成一些Windows设备驱动程序之后,Linux是一个梦想。(公平地说,自从我这样做以来,Windows驱动程序框架已经有了很大的改进。)

    该软件平台也很棒。我得到了SSL加密,文件系统,远程管理,简单的应用程序更新(通过文件复制而不是复杂的Bootloader)等等。哦,还有很多现有的实用程序(如果您需要完成某些工作)。

    它也是免版税的,并且比说封闭源WinCE平台要容易得多。(并不是说我真的是一个开源理想主义者……对我来说,这都是非常实际的理由。)

    我说的是带有实际MMU的 ARM内核,所以这是针对中高端芯片的(尽管我可以使用μClinux)。

  2. 能量消耗

    这基本上是其他人的评论的重复,但这对我来说是一个很大的因素。我当前的454 MHz ARM平台功耗为1/2瓦,最大CPU为1瓦。使用x86甚至无法接近。

这几乎就是我的推理。我认为方程式不会很快改变。


2
相关:多个RTOS选项。
史蒂夫·S

您的大部分答案与ARM一样适用于大多数CPU体系结构。它们中的许多也适用于2)。Linux支持的体系结构列表是LONG,ARM只是其中之一。
标记

19

ARM经历了一个进步:

  1. 一种32位指令架构,其代码比许多其他架构更庞大,但是与竞争性架构相比,它可以被快速解码并且可以用更少的指令来执行许多操作
  2. 一种双指令格式的体系结构,可以在功能强大的ARM指令集(但不幸的是有点肿)之间切换,而在功能较弱(但紧凑得多)的16位“ Thumb”指令集之间切换。每个Thumb指令都有一个对应的ARM指令,从而在某种程度上减少了程序员学习两个指令集的需要。
  3. Thumb2体系结构向Thumb指令集添加了两个单词的指令,从而产生了双赢的局面:典型的ARM代码将包含仅在ARM中可用的指令与在Thumb中可用的指令的混合但无论如何必须以32位表示;在Thumb2中,此类代码具有将16位指令替换某些32位指令的空间优势。
  4. 一个Thumb-only架构,它比我所关心的要严格得多,但是比其他任何一种都更小,更便宜。

ARM体系结构允许非常快速地执行一些相当复杂的操作-远远快于任何其他芯片。例如(使用ARM7-TDMI):

  ldrh r0,[r10,#ADDR_BUS_OFS]; 读取目标系统地址总线(13位)
  ldrb r1,[r9,r0,lsr#8]; 使用高位在处理程序表中查找地址
  添加pc,r9,r1 lsl#2; 转到适当的处理程序

每个处理程序都存储为一个字节,从表开始算起,该字节给出了地址位移的1/4。最终结果是,一旦获取了地址总线的内容,就使用32字节的跳转表,仅需六个周期(两条指令)即可根据检索到的高五位跳转到处理程序。

对应的THUMB代码更像是:

; 假设我们不需要r6 / r7进行其他操作,则将它们从r9 / r10重新分配
  ldrh r0,[r7,#ADDR_BUS_OFS]
  mov r1,r0
  lsr r1,r1,#8; THUMB要求源和目的地要相同
  ldrb r1,[r6,r1]
  lsl r1,r1,#1; 如果目标地址是全字对齐的,可以使用左移二
  添加pc,r1

从代码密度的角度来看,这很好,因为指令仅是原始指令的一半,但是在获取之后将花费九个周期,而不是六个。在被监视的总线将以自己的速度运行的应用程序中,无论ARM是否已设法对其进行处理,更快的ARM指令都是一大优势。

顺便说一句,Thumb2与Thumb二进制兼容,这有助于使用较早的工具,但是这意味着它与原始ARM相比,在某些方面做不到。例如,在ARM中,可以使用大约每2位3条指令“旋转”保存在四个寄存器中的8x8位图:

  movs r0,r4,lsl#25; 将LSB的高位放入C,然后将下一位放入N
  orrcs r6,#0x00000001
  orrmi r6,#0x00000100

在Thumb2中,有必要添加明确的条件指令:

  movs r0,r4,lsl#25; 将LSB的高位放入C,然后将下一位放入N
  itcs
  orrcs r6,#0x00000001
  Itmi
  orrmi r6,#0x00000100

与ARM相比,时间和空间效率净减少了33%;这可能是最坏的Thumb代码示例不如ARM高效的示例,即使那样也不是太可怕了。

与ARM相比,Thumb2的另一个小缺点:在ARM代码中,所有指令均始于全字边界,从而便于进行静态分析。在Thumb2中,指令可以任意地从半字边界开始,也可以跨越全字边界。因此,静态分析可能会困难得多。


14

有点历史了,橡子希望在1980年代为一台新计算机使用一个定制的CPU(例如带有内置的内存控件等)(8位6502限制了它们的功能)。他们与Intel进行了交谈,但是Intel不会向他们授予CPU许可。

因此,Acorn设计了一个非常简单的RISC CPU,但由于他们不是CPU制造商,因此愿意将其许可给任何人(并且需要他们所能获得的所有快钱!)。(我相信CPU是第一次工作,部分是因为它是如此简单,而且设计师在剑桥大学期间也创造了很多研究型CPU。)

多年来,CPU设计变得越来越容易包含在客户芯片设计中。

芯片制造商感到自己不是竞争对手,因此从Acorn那里获得了安全许可。也没有人认为他们会去竞争对手的家乡,而就像Acorn在剑桥一样(真正的人!)。(有机会去剑桥进行“事实调查”旅行,以访问橡子在任何时候都会影响期权的卖空……)

包括Acorn Risc Machine CPU在内的许多设计都是针对嵌入式系统的,因此功耗非常重要。还为Acorn Risc Machine CPU创建了便宜又好的开发工具。

因此,当手机开始需要带有嵌入式CPU的定制芯片时,Acorn被重命名为ARM,其余的就是历史了。(也许还有一点,其他CPU主要由美国控制,但移动设备首先在欧洲成为普通设备)

(这是否使您和IBM的一个未知的小团队使您想起Microsoft和Dos?)

ARM是当时(现在仍然是)执行许多任务的最佳CPU之一,这一事实也有所帮助-但是仅具有“最佳” CPU设计是不够的。


Acorn RISC Machine实际上已重命名为Advanced RISC Machines(拼写为ARM)。也只有Acorn的ARM CPU分支独立了,被称为Advanced RISC Machines。橡子继续开发其RISC-OS,我相信后者现在也知道它。
jippie 2012年

13

除了技术问题之外,ARM还有很多非技术原因。 但是快速的答案是:不是Intel(或x86)。

如果您看一下现在在CPU研发上投入的资金,它们基本上可以分为两个阵营:ARM和Intel。(我忽略了小型MCU,而将AMD与Intel混为一谈。)投入PowerPC,MIPS,SPARC和其他大型CPU的资金很少。仅有ARM和Intel仍然存在。

使用Intel和其他x86 CPU,您将获得大量的遗留行李。例如,您需要芯片组,BIOS和其他东西。即使CPU具有超级节能功能,那些其他设备也往往会降低系统的重量,使其变得更大,更耗电且更昂贵。仅使用Intel CPU开发PCB是一个大问题,然后您必须与BIOS供应商等进行谈判。更糟糕的是,许多芯片组,BIOS,视频芯片等供应商根本不希望与年销量不低于一百万台的小型企业开展业务。

使用ARM,您就不必再负担了。芯片来源很多,从微控制器产品到多核怪兽。您不需要处理BIOS许可(这很像去二手车销售员)。制造商和供应商通常对您很友好。


2
不要忽略小型MCU。ARM的Cortex-M系列也在该市场中占有很大份额。这些天我会考虑使用非ARM 32位控制器。
Mike DeSimone

是的,我同意@Mike。ARM当前正试图扩展到像服务器这样的英特尔主导的大功率市场。他们以中高端微控制器和中低端微处理器而
闻名

英特尔最近获得了更多IP许可(尤其是收购Altera)。例如,请参阅:intel.com/content/www/us/en/fpga/ip-and-design-tools.html
jbord39 '16

12

ARM7 / ARM9MIPS IV进行比较,除了已经提到的许可问题之外,没有什么其他优势。MIPS指令集的内部结构和内部总线使其在某些类型的设计中具有优越的性能(每成本成本)。这就是为什么许多Wi-Fi路由器使用MIPS内核而不是ARM内核的原因。

由于ARM内核主要应用于手持设备,因此ASIC增加了更多的功率控制功能,而MIPS则更多地关注每个周期的性能而不是更低的功率。RISC优于Intel x86 的好处是另一番讨论。


1
请注意,Microchip的PIC 32系列使用MIPS内核。因此,MIPS还提供小巧,便宜,自包含且低功耗的封装。此外,您可以在它们上使用MPLAB,这是任何ARM都无法做到的。
奥林·拉斯洛普

我从ASIC设计人员那里收到的另一条评论是,ARM AHB和APB难以使用(可能是由于单独的许可或设计问题)。而MIPS总线在某种程度上更容易实现。含义:核心是一回事;核心以外的外围设备也需要考虑。
乔纳森·克莱恩

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.