分享

ARM架构知识科普

 卩魂殇 2016-11-20

ARM架构,过去称作高级精简指令集机器(英语:Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。但在其他领域上也有很多作为,由于节能的特点,ARM处理器非常适用于移动通信领域,匹配其主要设计目标为低成本、高性能、低耗电的特性。另一方面,超级计算机消耗大量电能,ARM同样被视作更高效的选择。

至2009年为止,ARM架构处理器占市面上所有32位嵌入式RISC处理器90%的比例,使它成为占全世界最多数的32位架构之一。ARM处理器可以在很多消费性电子产品上看到,从便携式设备(PDA、移动电话、多媒体播放器、掌上型电子游戏和计算机)到电脑外设(硬盘、桌面型路由器),甚至在导弹的弹载计算机等军用设施中都有他的存在。在此还有一些基于ARM设计的衍伸产品,重要产品还包括Marvell的XScale架构和德州仪器的OMAP系列。

2011年,ARM的客户报告79亿ARM处理器出货量,占有95%的智能手机、90%的硬盘驱动器、40%的数字电视和机上盒、15%的微控制器、和20%的移动电脑[3]。在2012年,微软与ARM科技生产新的Surface平板电脑,AMD宣布它将于2014年开始生产基于ARM核心的64位服务器芯片,2016年,富士通宣布下一代“京”超级计算机将采用ARM架构。

2016年7月18日,日本软银集团斥资3.3万亿日元,约合311亿美元将ARM的设计公司ARM Holdings收购。

特色和应用

自2005年,每年超过一亿的手机销售约98%至少使用了一个ARM处理器。截至2009年,占大约90%的所有嵌入式32位RISC处理器[7]和ARM处理器被广泛使用在消费性电子产品,包括个人数字助理(PDA)、平板电脑、移动电话、数字媒体和音乐播放器、手持式游戏游戏机、计算器和计算机外围设备(如硬盘驱动器和路由器)。

历史

ARM架构知识科普

一颗主要用于路由器的科胜讯公司ARM处理器

ARM架构知识科普

用于松下多媒体播放机的芯片

ARM的设计是艾康电脑公司于1983年开始的开发项目。

这个团队由Roger Wilson和Steve Furber带领,着手开发一种类似高级6502架构的处理器。Acorn电脑有一大堆建构在6502处理器上的电脑,因此能设计出一颗类似的芯片即意味着对公司有很大的优势。

Acorn RISC Machine:ARM2

ARM架构知识科普

用在BBC Micro上的ARM1 second processor

团队在1985年时开发出样本“ARM1”,而首颗真正能量产的“ARM2”于次年投产。ARM2具有32位的数据总线、26位的定址空间,并提供64 Mbyte的定址范围与16个32-bit的寄存器。寄存器中有一个作为程序计数器,其前面6位和后面2位用来保存处理器状态标记。ARM2可能是全世界最简单实用的32位微处理器,仅容纳了30,000个晶体管(六年后的摩托罗拉68000包含了70,000颗)。之所以精简的原因在于它不含微码(这大概占了68000的晶体管数约1/4至1/3);而且与当时大多数的处理器相同,它没有包含任何的高速缓存。这个精简的特色使它只需消耗很少的电能,却能发挥比Intel 80286更好的性能。后继的处理器“ARM3”则备有4KB的高速缓存,使它能发挥更佳的性能。

Apple、DEC、Intel、Marvell:ARM6、StrongARM、XScale

在1980年代晚期,苹果电脑开始与艾康电脑合作开发新版的ARM核心。由于这项目非常重要,艾康电脑甚至于1990年将设计团队另组成一间名为安谋国际科技(Advanced RISC Machines Ltd.)的新公司。也基于这原因,使得ARM有时候反而称作Advanced RISC Machine而不是Acorn RISC Machine。由于其母公司ARM Holdings plc于1998年在伦敦证券交易所和NASDAQ挂牌上市,使得Advanced RISC Machines成了ARM Ltd旗下拥有的产品。

这个项目到后来进入了“ARM6”,首版的样品在1991年发布,然后苹果电脑使用ARM6架构的ARM 610来当作他们Apple Newton产品的处理器。在1994年,艾康电脑使用ARM 610做为他们个人电脑产品的处理器。

在这些变革之后,内核部分却大多维持一样的大小——ARM2有30,000颗晶体管,但ARM6却也只增长到35,000颗。主要概念是以ODM的方式,使ARM核心能搭配一些选配的零件而制成一颗完整的CPU,而且可在现有的晶圆厂里制作并以低成本的方式达到很大的性能。

ARM的经营模式在于出售其IP核,授权厂家依照设计制作出建构于此核的微控制器和中央处理器。最成功的实现案例属ARM7TDMI,几乎卖出了数亿套内置微控制器的设备。

Digital曾购买这个架构的产权并研发出“StrongARM”。在233 MHz的频率下,这颗CPU只消耗1瓦特的电能(后来的芯片消耗得更少)。这项设计后来为了和英特尔的控诉和解而技术移转,英特尔因而利用StrongARM架构补强他们老旧的i960产品。英特尔后来开发出他们自有的高性能架构产品XScale,之后卖给了迈威尔科技。

支持智能型手机、个人数码助理和其他手持设备最常见的架构是“ARMv4”。XScale和ARM926处理器是“ARMv5TE”,而且比起建构在ARMv4的StrongARM、ARM925T和ARM7TDMI等处理器还更常见于许多高级设备上。

架构

从1995年开始,《ARM体系结构参考手册》是ARM文档的主要来源,提供了关于ARM处理器架构和指令集,区分接口,所有的ARM处理器的支持(如指令语义)的实现细节可能会有所不同。该体系结构随着时间的演变,并与Cortex系列的核心开始,存在三个“配置”的定义如下:

  • '应用'配置: Cortex-A 系列

  • '嵌入式'配置: Cortex-R 系列

  • '微处理器'配置: ARM Cortex-M 系列.

每个配置允许有其子集的架构。例如,用于ARMv6-M配置(所使用的Cortex M0 / M0+/ M1)的一个子集ARMv7-M架构(支持较少的指令)。

CPU模式

CPU ARM架构指定了以下的CPU模式。在任何时刻,CPU只可处于某一种模式,但可由于外部事件(中断)或编程方式进行模式切换。

  • 用户模式

  • 仅非特权模式。

  • 系统模式

  • 仅无需例外进入的特权模式。仅以执行明确写入CPSR的模式位的指令进入。

  • Supervisor (svc) 模式

  • 在CPU被重置或者SWI指令被执行时进入的特权模式。

  • Abort 模式

  • 预读取中断或数据中断异常发生时进入的特权模式。

  • 未定义模式

  • 未定义指令异常发生时进入的特权模式。

  • 干预模式

  • 处理器接受一条IRQ干预时进入的特权模式。

  • 快速干预模式

  • 处理器接受一条IRQ干预时进入的特权模式。

  • Hyp 模式

  • armv-7a为cortex-A15处理器提供硬件虚拟化引进的管理模式。

指令集

讲求精简又快速的设计方式,整体电路化却又不采用微码,就像早期使用在艾康微电脑的8位6502处理器。

ARM架构包含了以下精简指令集处理器的特性:

  • 读取/存储架构

  • 不支持地址不对齐内存访问(ARMv6内核现已支持)

  • 大量的16 × 32-bit寄存器堆

  • 固定的32 bits操作码(opcode)长度,降低编码数量所产生的耗费,减轻解码和流水线化的负担。

  • 大多均为一个CPU周期运行。

为了补强这种简单的设计方式,相较于同时期的处理器如Intel 80286和Motorola 68020,还多加了一些特殊设计:

  • 大部分指令可以条件式地运行,降低在分支时产生的负重,弥补分支预测器的不足。

  • 算数指令只会在要求时更改条件编码

  • 32-bit筒型位移器可用来运行大部分的算数指令和定址计算而不会损失性能

  • 强大的索引寻址模式

  • 支持快速叶端函数调用的链寄存器

  • 精简但快速的双优先级中断子系统,具有可切换的寄存器组

寄存器

寄存器 R0-R7 对于所有CPU模式都是相同的,它们不会被分块。

对于所有的特权CPU模式,除了系统CPU模式之外,R13和R14都是分块的。也就是说,每个因为一个异常(exception)而可以进入模式,有其自己的R13和R14。这些寄存器通常分别包含堆栈指针和函数调用的返回地址。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多