购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 ARM背景知识简介

2.2.1 ARM简介

本书使用的Kinetis微控制器的内核为ARM Cortex-M4。ARM Cortex-M4 完美地融合了高效的信号处理能力以及ARM Cortex-M系列处理器的诸多无可比拟的优势,包括低功耗、低成本和易于使用,旨在满足那些新兴的、灵活多变的解决方案的需求。为了了解ARM Cortex-M4 的来龙去脉,本节将简要介绍ARM的背景知识。

1.ARM发展史

ARM公司于 1990 年 11 月成立于英国,原名为Advanced RISC Machine有限公司,是苹果电脑、Acorn电脑集团和VLSI Technology的合资企业。Acorn曾推出过世界首个商用单芯片精简指令集计算机(Reduced Instruction Set Computer,RISC)处理器,而苹果电脑当时希望将RISC技术应用于自身系统,ARM的微处理器新标准由此应运而生。ARM成功地研制了首个低成本RISC架构,迅速在市场上崭露头角。与此同时,RISC结构的竞争对手也都致力于提高各自的产品性能并研发高端工作站处理器的RISC结构。ARM公司是世界领先的半导体知识产权供应商,其提供的产品堪称数字电子产品的核心,并为当今世界上四分之一的电子产品提供技术基础,被半导体及电子业界评为过去 30 年全球最有影响力的 10 家公司之一。

1991 年ARM公司推出了首个嵌入式RISC核心——ARM6 TM 系列处理器,不久VLSI Technology公司率先获得授权,一年后夏普和GEC Plessey也成为授权用户,1993 年德州仪器和Cirrus Logic等公司亦得到了授权协议。从此ARM的知识产权产品和授权用户急剧扩大。1993年Nippon Investment and Finance(NIF)成为ARM股东后,ARM开始向全球拓展,分别在亚洲、美国和欧洲设立了办事处。1998 年 4 月ARM公司在伦敦证券交易所和纳斯达克交易所上市。

现在,ARM芯片的出货量每年的增量均在 20 亿片以上。与其他大多数的半导体公司不同,ARM公司从不制造和销售具体的处理器芯片,而是把处理器的设计授权给相关的商务合作伙伴,让他们根据自己的强项设计具体的芯片。更重要的是ARM公司开创了电子新纪元:采用ARM技术的微处理器遍及各类电子产品,在汽车、消费、娱乐、成像、工业控制、网络、存储、安保和无线等市场中,其技术几乎无处不在。

2.ARM架构的演进

ARM的设计历史起源是Acorn电脑公司(Acorn Computers Ltd.)于 1983 年开始的开发计划。该团队在Roger Wilson和Steve Furber等人的带领下,着手开发一种新架构,类似高端的MOS Technology 6502 处理器。设计团队在 1985 年时开发出ARM1 Sample版,而首颗“真正”的产能型ARM2 于次年量产。ARM2 具有 32 位的数据总线、26 位的寻址空间,并提供 64 MB的寻址范围和 16 个 32 位的寄存器。ARM2 可能是全世界最简单实用的 32 位微处理器,仅使用了 30 000只晶体管。之所以精简的原因在于它不含微码,而与现今大多数的CPU不同,它不含任何高速缓存。这个精简的特色使其只需消耗很少的电能,却能发挥比Intel 80286 更好的效能。后继的处理器ARM3 加入了 4 KB的高速缓存,能发挥更佳的效能。

1991年,ARM技术首次发布,然后苹果电脑使用ARM6架构的ARM610当做其Apple Newton PDA的核心。1994 年,Acorn使用ARM610 作为其RISC PC内的CPU。

随着ARM2 到ARM6 的技术逐步发展,内核部分却大多维持一样的大小。ARM2 有 30 000只晶体管,ARM6 比ARM2 仅增加 5 000 只晶体管。主要概念是以原始设计制造商(Original Design Manufacture,ODM)的方式,使ARM核心能搭配一些选配的模块而制成一颗完整的CPU,而且可在现有的晶圆制造厂里制作,并以较低成本获得较高效能。

随着技术的不断发展,ARM公司不断推陈出新,研发出较高性能的ARMv7 架构。要说明的是,架构版本号和处理器名字中的数字并不是一码事。比如,ARM7TDMI是基于ARMv4T架构的(T示支持Thumb指令)。ARMv7 架构采用Thumb-2 技术,是在ARM的Thumb代码压缩技术的基础上发展起来的,并且完整地保持了对现存ARM解决方案的代码兼容性。Thumb-2 技术比纯 32 位代码少使用 31%的内存,减小了系统开销,同时能够提供比已有的基于Thumb技术的解决方案高出 38%的性能。ARMv7 架构还采用了NEON技术,将DSP和媒体处理能力提高了近4 倍,并支持改良的浮点运算,满足了下一代 3D图形、游戏物理应用以及传统嵌入式控制应用的需求。此外,在该版本中,内核架构首次从单一序列变成三种序列。

ARM架构发展版本有关资料见网上光盘“…\WYH-K60-BookA-CD(V1.0)\分章阅读资料\Ch02-DOC\ ARM架构的版本.pdf”。

系列A(ARMv7-A):设计用于高性能的“开发应用平台”——越来越接近电脑。该序列处理器为需要运行复杂应用程序的“应用处理器”,支持大型嵌入式操作系统,如Andriod、Symbian(用于诺基亚等手机)、Linux以及微软的Windows CE等。

系列R(ARMv7-R):用于高端的嵌入式系统,尤其是那些带有实时要求的——既要快又要实时。该序列处理器为硬实时且高性能的处理器。目标是高端实时市场。像高档轿车的组件、大型发电机控制器、机器手臂控制器等,它们使用的处理器不但要很好很强大,还要极其可靠,对事件的反应也要极其敏捷。

系列M(ARMv7-M):用于深度嵌入的、单片机风格的系统中——本书的主角。该序列处理器是为电子系统智能化领域而量身定制的(微控制器领域)。在这些应用中,尤其是对于实时控制系统,低成本、低功耗、极速中断反应以及高处理效率都是至关重要的。Cortex系列是v7 架构的第一次亮相。其中Cortex-M4 就是按序列M设计的。

3.ARM处理器命名方法的演变

以前,ARM使用一种基于数字的命名法。在 20 世纪 90 年代,还曾在数字后面添加字母后缀,用来进一步明细该处理器的特性。就拿ARM7TDMI来说,T代表Thumb指令集,D代表支持JTAG调试,M意指快速乘法器,I则对应一个嵌入式ICE模块。后来,这 4 项基本功能成了所有后续产品的标配,于是就不再使用这 4 个后缀(相当于缺省了)。但是新的后缀不断加入,包括定义存储器接口的,定义高速缓存的,以及定义“紧耦合存储器(TCM)”的,等等,于是形成了一套新的命名法,这套命名法沿用较久。

到了ARMv7 架构时代,ARM改革了这一冗长的、需要“解码”的数字命名法,转而启用了另一种看起来比较整齐的命名法。比如,ARMv7 架构的A、R、M三个系列都以Cortex作为主名,分别命名为ARM Cortex-A、ARM Cortex-R、ARM Cortex-M。这样精简的命名规则,不仅便于记忆,也避免了新手对架构号和系列号的混淆。例如,ARM7TDMI并不是一款ARMv7 架构的产品,而是属于v4T架构的产品。

4.ARM的专有技术
1)Thumb、Thumb-2 及ThumbEE

Thumb是ARM处理器的一种 16 位指令模式。Thumb指令集可以看做ARM指令压缩形式的子集,它是为减小代码量而提出的。Thumb指令体系并不完整,只支持通用功能,有时(如进入异常)仍需要使用ARM的 32 位指令。Thumb指令格式和使用方式与ARM指令集类似,使用并不频繁。

Thumb-2 是 16 位Thumb指令集的扩充,以额外的 32 位指令让Thumb指令集的使用更加广泛。Thumb-2 技术首现于ARM1156,并于 2003 年发布。Thumb-2 的预期目标是要达到近乎Thumb的编码长度,也能表现出接近 32 位ARM指令集效能。Thumb-2 从ARM和Thumb指令集中派生出了多种指令,包含位段操作、分支跳转和条件执行等功能。

ThumbEE也就是所谓的Thumb-2EE。Thumb-2EE是专为Limbo、Java、C#、Perl和Python等语言设计的,并能让即时编译器能够输出更小的编译代码却不会影响到效能。Thumb-2EE在Thumb-2 的基础上进行一些扩充,使得指令集能特别适用于执行阶段(Runtime)的代码生成(如即时编译)。业界称ThumbEE为Jazelle RCT技术。ThumbEE于 2005 年发布,首现于ARM Cortex-A8 处理器。

2)Jazelle

Jazelle是与ARM体系结构相关的一种技术,用于在处理器指令层次对Java加速。ARM还开发出一项技术,称为Jazelle DBX(Direct Bytecode eXecution,直接字节码执行),允许它们在某些架构的硬件上加速执行Java bytecode。它能在现存的ARM与Thumb模式之间交互执行。首颗具备Jazelle技术的处理器是ARM926EJ-S:Jazelle以一个英文字母“J”标示于处理器的名称中。该处理器让手机制造商能够加速执行Java ME的游戏和应用程序,由此促进了Jazelle技术不断地发展。

3)高级SIMD(NEON)

高级单指令多重数据(Single Instruction Multiple Data,SIMD)延伸集,业界称为NEON技术,它是一个结合 64 位和 128 位的SIMD指令集,其针对多媒体和信号处理程序具备标准化加速的能力。NEON可以在 10 MHz的CPU上执行MP3 音效解码,且可以执行 13 MHz频率以下的全球移动通信系统(Global System of Mobile communication,GSM)自适应多速率(Adaptive Multi-Rate,AMR)语音编码。NEON具有一组广泛的指令集、各自的寄存器阵列以及独立执行的硬件。NEON支持 8 位、16 位、32 位和 64 位的整数及单精度浮点数据,并以SIMD的方式运算,执行图形和游戏处理中关于语音/视频的部分。SIMD在向量超级处理机中是个决定性的要素,它同时具备多项处理功能。在NEON技术中,SIMD最高可同时支持到 16 个运算。

4)向量浮点

向量浮点(Vector Floating-point,VFP)是在协处理器中针对ARM架构的衍生技术,它提供低成本的单精度和双精度浮点运算能力,并完全相容于ANSI/IEEE Std 754-1985 二进制浮点运算标准。VFP提供大多数适用于浮点运算的应用,如PDA、智能手机、语音压缩与解压、3D图像以及数码音效、打印机、机顶盒和汽车应用等。VFP架构也支持SIMD并行化的短向量指令执行,这在图像和信号处理等应用上,非常有助于降低编码大小及增加输出效率。在基于ARM架构的处理器中,或SIMD的协处理器,还包括FPA、FPE和iwMMXt等。它们提供类似VFP的功能,但在操作码层面上来说并不具有相容性。

5)安全性扩充(TrustZone)

TrustZone TM 技术出现在ARMv6KZ以及后续的应用核心架构中,它提供了一种低成本的方案,针对片上系统(System on Chip,SoC)内加入专属的安全核心,由硬件建构的存取控制方式支持两个虚拟的处理器。这个方式可使应用程序核心能够在两个状态之间切换。在此架构下可以避免信息从较可信的核心领域泄漏至较不安全的领域。这种内核领域之间的切换通常与处理器其他功能完全无关,因此各个领域在共用一个内核的基础上各自独立运作。内存和外部设备也可因此得知目前在内核中运作的是什么领域,并能针对这个方式来提供对装置的机密和编码进行存取控制。典型的TrustZone技术应用是要能在一个缺乏安全性的环境下完整地执行操作系统,并在可信的环境下能有更少的安全性的编码。

2.2.2 Cortex-M4 处理器特性简介

ARM Cortex™-M4 处理器是由ARM专门开发的最新嵌入式处理器,在M3 的基础上强化了运算能力,新加了浮点、DSP、并行计算等,用以满足需要有效且易于使用的控制和信号处理功能混合的数字信号控制市场。其高效的信号处理功能与Cortex-M处理器系列的低功耗、低成本和易于使用的优点的组合,旨在满足专门面向电动机控制、汽车、电源管理、嵌入式音频和工业自动化市场的新兴类别的灵活解决方案。

1.高能效数字信号控制

Cortex-M4 提供了无可比拟的功能,以将 32 位控制与领先的数字信号处理技术集成来满足需要很高能效级别的市场。Cortex-M4 处理器采用一个扩展的单时钟周期乘法累加(MAC)单元、优化的单指令多数据(SIMD)指令、饱和运算指令和一个可选的单精度浮点单元(FPU)。这些功能以表现ARM Cortex-M系列处理器特征的创新技术为基础。包括

● RISC处理器内核,高性能 32 位CPU、具有确定性的运算、低延迟 3 阶段管道,可达1.25DMIPS/MHz;

● Thumb-2 指令集,16/32 位指令的最佳混合、小于 8 位设备 3 倍的代码大小、对性能没有负面影响,提供最佳的代码密度;

● 低功耗模式,集成的睡眠状态支持、多电源域、基于架构的软件控制;

● 嵌套矢量中断控制器(NVIC),低延迟、低抖动中断响应、不需要汇编编程、以纯 C 语言编写的中断服务例程,能出色地完成中断处理;

● 工具和RTOS支持,广泛的第三方工具支持、Cortex微控制器软件接口标准(CMSIS)、最大限度地增加软件成果重用;

● CoreSight调试和跟踪,JTAG或 2 针串行线调试(SWD)连接、支持多处理器、支持实时跟踪。

此外,该处理器还提供了一个可选的内存保护单元(MPU),提供低成本的调试/追踪功能和集成的休眠状态,以增加灵活性。嵌入式开发者将得以快速设计并推出令人瞩目的终端产品,具备最多的功能以及最低的功耗和尺寸。

2.易于使用的技术

Cortex-M4 通过一系列出色的软件工具和Cortex微控制器软件接口标准(CMSIS)使信号处理算法开发变得十分容易。CMSIS是Cortex-M处理器系列的与供应商无关的硬件抽象层。使用CMSIS,可以为接口外设、实时操作系统和中间件实现一致且简单的处理器软件接口,从而简化软件的重用。使用CMSIS可缩短新微控制器开发人员的学习过程,从而缩短新产品的上市时间。

ARM目前正在对CMSIS进行扩展,将加入支持Cortex-M4 扩展指令集的C编译器;同时,ARM也在开发一个优化库,方便MCU用户开发信号处理程序。该优化库将包含数字滤波算法和其他基本功能,如数学计算、三角计算和控制功能。数字滤波算法也将可以与滤波器设计工具和设计工具包(如MATLAB和LabVIEW)配套使用。

此外,ARM还开发了一系列Cortex-M4 硬件和软件培训课程,以保证授权者能有效地将Cortex-M4 处理器融入其设计,并以最低的市场风险和最短的上市时间实现最优的系统性能。 dYo9bG+BXvYEXRTxRCL5BNXyHxPRx2iY8PrLMpBJVTsWTn5HiaRQJmHf5fIDHqqY

点击中间区域
呼出菜单
上一章
目录
下一章
×