ARM cortex M系列的比较与分析
选择ARM还是CORTEX-M3

选择ARM7还是cortex-M3?要使用低成本的32位处理器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。
如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。
1.ARM实现方法ARM Cortex-M3是一种基于ARM7v架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线(冯诺伊曼结构下,数据和指令共用一条总线)。
从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。
根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。
ARM公司对Cortex-M3的定位是:向专业嵌入式市场提供低成本、低功耗的芯片。
在成本和功耗方面,Cortex-M3具有相当好的性能,ARM公司认为它特别适用于汽车和无线通信领域。
和所有的ARM内核一样,ARM公司将内该设计授权给各个制造商来开发具体的芯片。
迄今为止,已经有多家芯片制造商开始生产基于Cortex-M3内核的微控制器。
ARM7TDMI(包括ARM7TDMIS)系列的ARM内核也是面向同一类市场的。
这类内核已经存在了十多年之久,并推动了ARM成为处理器内核领域的主导者。
众多的制造商(据ARM宣称,多达16家)出售基于ARM7系列的处理器以及其他配套的系统软件、开发和调试工具。
在许多方面,ARM7TDMI都可以称得上是嵌入式领域的实干家。
2.两者差异除了使用哈佛结构,Cortex-M3 还具有其他显著的优点:具有更小的基础内核,价格更低,速度更快。
与内核集成在一起的是一些系统外设,如中断控制器、总线矩阵、调试功能模块,而这些外设通常都是由芯片制造商增加的。
Cortex-M3 还集成了睡眠模式和可选的完整的八区域存储器保护单元。
它采用THUMB-2指令集,最大限度降低了汇编器使用率。
3.指令集ARM7可以使用ARM和Thumb两种指令集,而Cortex-M3只支持最新的Thumb-2指令集。
浅谈ARM Cortex-M的音频性能

近年来,便携式音乐播放器大放异彩,备受人们喜爱。
其中的原因有很多,例如海量的压缩音乐内容,数据存储成本不断下降、操作简便和轻松访问不同流行元素的在线音乐内容。
消费者对下一代音乐播放器日益挑剔,期盼更长的音频播放时间、更丰富的聆听体验。
由此诞生了Cortex-M系列,这是新一代ARM低成本微处理器,采用低功耗设计。
Cortex-M3内核和最近发布的Cortex-M4内核基于哈佛架构的3级流水线并采用Thumb-2指令集架构(ISA),内存要求更低。
但这些MCU能否胜任音频处理任务?它们能否打造更出色的倾听体验,满足人们的期望?为了分析这些处理器是否适合处理音频,首先我们以MP3解码器和均衡器为例,大致了解一下音频解码器和后处理等音频部件中常用音频处理模块实施方案,然后按照高效实现这些模块对处理器指令集架构的要求,对模块加以分类。
我们重点从指令集角度来探讨Cortex-M3和Cortex-M4内核在音频处理方面的优势。
为此,我们先讨论不同音频部件的一些模块代码示例,随后分析这些处理器在循环和指令方面的独到优势,最后,将展示流行音频编解码器和音频后处理部件的典型性能指标以佐证这些处理器内核的音频能力。
音频处理模块的功能块为了分析音频处理器要求,现先从音频处理模块所涉及的功能块,即音频编解码器和音频后处理部件谈起。
本节框图中的模块用颜色标为3种不同类别。
绿色表示乘加(MAC)密集模块、红色表示MAC和控制代码混合模块、蓝色表示控制代码模块。
音频编解码器互联网提供了大量压缩音频数据,必然要求音乐播放器支持多种流行的音频解码器。
音频编码器的处理功能涉及一系列功能块,我们接下来回顾一下。
图1:典型音频编码器框图。
音频编码器:音频编解码器的用途是实现音频数据压缩,同时在给定比特率的限制下努力获得保真音质。
典型编码器如图1所示。
一般来说,音频编码器采用如下三步完成压缩:首先,通过数据滤波调节音频数据。
然后,通过窗口化和重叠对音频数据进行帧化,等待进一步处理;接着,将此数据变换至频域,消除时域内的冗余。
Cortex系列M1、M2、M3、M4对比

Cortex-M 系列针对成本和功耗敏感的 MCU 和终端应用(如智能测量、人机接口设备、汽车和工业控制系统、大型家用电器、消费性产品和医疗器械)的混合信号设备进行过优化。
.比较Cortex-M 处理器Cortex-M 系列是适用于具有不同的成本、功耗和性能的一系列易于使用的兼容嵌入式设备(如微控制器(MCU))的理想解决方案。
每个处理器都针对十分广泛的嵌入式应用围提供最佳权衡取舍。
关于Cortex-M4与Cortex-M3的区别,:M4不是用来取代M3的,它只是多了浮点运算功能。
如果你不需要浮点DSP,M3就足够了Cortex-M 系列处理器都是二进制向上兼容的,这使得软件重用以及从一个Cortex-M 处理器无缝发展到另一个成为可能。
M Cortex-M 技术CMSISARM Cortex 微控制器软件接口标准(CMSIS) 是 Cortex-M 处理器系列的与供应商无关的硬件抽象层。
使用CMSIS,可以为接口外设、实时操作系统和中间件实现一致且简单的软件接口,从而简化软件的重用、缩短新微控制器开发人员的学习过程,并缩短新产品的上市时间。
深入:嵌套矢量中断控制器(NVIC)NVIC 是Cortex-M 处理器不可或缺的部分,它为处理器提供了卓越的中断处理能力。
Cortex-M 处理器使用一个矢量表,其中包含要为特定中断处理程序执行的函数的地址。
接受中断时,处理器会从该矢量表中提取地址。
为了减少门数并增强系统灵活性,Cortex-M 处理器使用一个基于堆栈的异常模型。
出现异常时,系统会将关键通用寄存器推送到堆栈上。
完成入栈和指令提取后,将执行中断服务例程或故障处理程序,然后自动还原寄存器以使中断的程序恢复正常执行。
使用此方法,便无需编写汇编器包装器了(而这是对基于C 语言的传统中断服务例程执行堆栈操作所必需的),从而使得应用程序的开发变得非常容易。
NVIC 支持中断嵌套(入栈),从而允许通过运用较高的优先级来较早地为某个中断提供服务。
浅谈ARM Cortex系列处理器之区别

浅谈ARM Cortex系列处理器之区别市面上ARM Cortex系列包括3个系列,包括ARM Cortex-A, ARM Cortex-R, ARM Cortex-M,Z这三种系列,并且每个系列又分多种子版本,每个子版本都有各自的特点。
很好的为设计人员提供非常广泛的具有可扩展性的性能选项,从而有机会在多种选项中选择最适合自身应用的内核,而非千篇一律的采用同一方案。
其中,1,Cortex-A—面向性能密集型系统的应用处理器内核2, Cortex-R—面向实时应用的高性能内核3, Cortex-M—面向各类嵌入式应用的微控制器内核Cortex-A处理器为利用操作系统(例如Linux或者Android ,IOS)的设备提供了一系列解决方案,这些设备被用于各类应用,从低成本手持设备到智能手机、平板电脑、机顶盒以及企业网络设备等。
早期的Cortex-A系列处理器(A5、A7、A8、A9、A12、A15和A17)基于ARMv7-A架构。
每种内核都共享相同的功能集,例如NEON媒体处理引擎、Trustzone安全扩展、单精度和双精度浮点支持、以及对多种指令集(ARM、Thumb-2、Thumb、Jazelle 和DSP)的支持。
与此同时,这些处理器也具有极高的设计灵活性,能够提供所需的最佳性能和预期的功效。
介绍过Cortex-A,下面介绍Cortex-R系列——衍生产品中体积最小的ARM处理器,这一点也最不为人所知。
Cortex-R处理器针对高性能实时应用,例如硬盘控制器(或固态驱动控制器)、企业中的网络设备和打印机、消费电子设备(例如蓝光播放器和媒体播放器)、以及汽车应用(例如安全气囊、制动系统和发动机管理)。
Cortex-R系列在某些方面与高端微控制器(MCU)类似,但是,针对的是比通常使用标准MCU的系统还要大型的系统。
例如,Cortex-R4就非常适合汽车应用。
Cortex-R4主频可以高达600MHz(具有2.45DMIPS/MHz),配有8级流水线,具有双发送、预取和分支预测功能、以及低延迟中断系统,可以中断多周期操作而快速进入中断服务程序。
Cortex-M系列处理器指令集_指令集特性比较总结

Cortex-M系列处理器指令集_指令集特性比较总结1、指令集简介大多数情况下,应用程序代码可以用C或其他高级语言编写。
但是,对Cortex-M 处理器支持指令集的基本了解有助于开发者针对具体应用选择合适的Cortex-M处理器。
指令集(ISA)是处理器架构的一部分,Cortex-M处理器可以分为几个架构规范。
所有的Cortex-M 处理器都支持Thumb指令集。
整套Thumb指令集扩展到Thumb-2版本时变得相当大。
但是,不同的Cortex-M处理器支持不同的Thumb 指令集的子集,如图3所示2、Cortex-M0/M0+/M1指令集Cortex-M0/M0+/M1处理器基于ARMv6-M架构。
这是一个只支持56条指令的小指令集,大部分指令是16位指令,如图3所示只占很小的一部分。
但是,此类处理器中的寄存器和处理的数据长度是32位的。
对于大多数简单的I/O控制任务和普通的数据处理,这些指令已经足够了。
这么小的指令集可以用很少的电路门数来实现处理器设计,Cortex-M0 和Cortex-M0+最小配置仅仅12K门。
然而,其中的很多指令无法使用高位寄存器(R8 到R12),并且生成立即数的能力有限。
这是平衡了超低功耗和性能需求的结果。
3、Cortex-M3指令集Cortex-M3处理器是基于ARMv7-M架构的处理器,支持更丰富的指令集,包括许多32位指令,这些指令可以高效的使用高位寄存器。
另外,M3还支持:查表跳转指令和条件执行(使用IT指令)硬件除法指令乘加指令(MAC)各种位操作指令更丰富的指令集通过几种途径来增强性能;例如,32位Thumb指令支持了更大范围的立即数,跳转偏移和内存数据范围的地址偏移。
支持基本的DSP操作(例如,支持若干条需要多个时钟周期执行的MAC指令,还有饱和运算指令)。
最后,这些32位指令允许用单个指令对多个数据一起做桶型移位操作。
支持更丰富的指令导致了更大的面积成本和更高的功耗。
ARM7 与 Cortex-M3的性能比较

【程序】ARM7 与 Cortex-M3的性能比较文章来源:EDN 博客 作者:jgw文章导读:本程序为ARM7 与 Cortex-M3的性能比较功能特性 ARM7TDMI-SCortex-M3架构ARMv4T(冯·诺依曼)ARMv7(哈佛)指令集支持Thumb/ARMThumb/ Thumb-2流水线3级3级 + 分支预测中断FIQ/IRQNMI +最多240个物理中断中断延迟24—42个时钟周期12个时钟周期休眠模式无内置存储器保护无8段存储器保护单元指令执行速度0.95DMIPS/MHz (ARM模式)1.25DMIPS/MHz功耗0.28mW/MHz0.19mW/MHz面积0.62m2(仅内核)0.86m2(内核 + 外设)* 存储器映射方式4G空间有厂家自由划分4G空间划分由内核确定处理器模式7种处理器模式2种处理器模式*不包含可选系统外设(MPU和ETM)或者集成的部件最近有点小空,想学习一下眼下最流行的ARM,初步了解主流的ARM体系有2个:ARM7和Cortex-M3,下午在网上搜索了一下,结果令我大吃一惊。
本来我以为只要在市场上能共存的两种东西,肯定是各有千秋,否则其中较弱的的一个就会被彻底淘汰。
事实上我看到的却是完全一边倒的局面:Cortex-M3完胜ARM7!以下是摘录的一些对比:Cortex-M3 ARM7最新的ARM内核成熟使用近10年的ARM内核哈佛体系冯诺曼体系只支持最新的Thumb-2指令集支持ARM和Thumb指令集硬件自动压栈软件手工压栈单周期乘法指令多周期乘法指令2-12周期除法指令无除法指令有位操作无位操作内置系统节拍定时器无系统节拍定时器方便操作系统移植指令执行速度1.25DMIPS/MHz 0.95DMIPS/MHz功耗0.19mW/MHz 0.28mW/MHz从以上对比看,Cortex-M3在性能和功耗等方面基本上是完胜ARM7。
浅谈ARM-Cortex系列处理器之区别

浅谈ARM Cortex系列处理器之区别市面上ARM Cortex系列包括3个系列,包括ARM Cortex—A, ARM Cortex-R,ARM Cortex-M,Z这三种系列,并且每个系列又分多种子版本,每个子版本都有各自的特点.很好的为设计人员提供非常广泛的具有可扩展性的性能选项,从而有机会在多种选项中选择最适合自身应用的内核,而非千篇一律的采用同一方案。
其中,1,Cortex—A-面向性能密集型系统的应用处理器内核2, Cortex—R—面向实时应用的高性能内核3, Cortex-M—面向各类嵌入式应用的微控制器内核Cortex-A处理器为利用操作系统(例如Linux或者Android ,IOS)的设备提供了一系列解决方案,这些设备被用于各类应用,从低成本手持设备到智能手机、平板电脑、机顶盒以及企业网络设备等。
早期的Cortex—A系列处理器(A5、A7、A8、A9、A12、A15和A17)基于ARMv7—A架构。
每种内核都共享相同的功能集,例如NEON媒体处理引擎、Trustzone 安全扩展、单精度和双精度浮点支持、以及对多种指令集(ARM、Thumb-2、Thumb、Jazelle 和DSP)的支持。
与此同时,这些处理器也具有极高的设计灵活性,能够提供所需的最佳性能和预期的功效。
介绍过Cortex-A,下面介绍Cortex-R系列-—衍生产品中体积最小的ARM处理器,这一点也最不为人所知。
Cortex-R处理器针对高性能实时应用,例如硬盘控制器(或固态驱动控制器)、企业中的网络设备和打印机、消费电子设备(例如蓝光播放器和媒体播放器)、以及汽车应用(例如安全气囊、制动系统和发动机管理)。
Cortex-R系列在某些方面与高端微控制器(MCU)类似,但是,针对的是比通常使用标准MCU的系统还要大型的系统。
例如,Cortex-R4就非常适合汽车应用。
Cortex-R4主频可以高达600MHz(具有2。
ARM7 与 Cortex-M3的性能比较

【程序】ARM7 与 Cortex-M3的性能比较文章来源:EDN 博客 作者:jgw文章导读:本程序为ARM7 与 Cortex-M3的性能比较功能特性 ARM7TDMI-SCortex-M3架构ARMv4T(冯·诺依曼)ARMv7(哈佛)指令集支持Thumb/ARMThumb/ Thumb-2流水线3级3级 + 分支预测中断FIQ/IRQNMI +最多240个物理中断中断延迟24—42个时钟周期12个时钟周期休眠模式无内置存储器保护无8段存储器保护单元指令执行速度0.95DMIPS/MHz (ARM模式)1.25DMIPS/MHz功耗0.28mW/MHz0.19mW/MHz面积0.62m2(仅内核)0.86m2(内核 + 外设)* 存储器映射方式4G空间有厂家自由划分4G空间划分由内核确定处理器模式7种处理器模式2种处理器模式*不包含可选系统外设(MPU和ETM)或者集成的部件最近有点小空,想学习一下眼下最流行的ARM,初步了解主流的ARM体系有2个:ARM7和Cortex-M3,下午在网上搜索了一下,结果令我大吃一惊。
本来我以为只要在市场上能共存的两种东西,肯定是各有千秋,否则其中较弱的的一个就会被彻底淘汰。
事实上我看到的却是完全一边倒的局面:Cortex-M3完胜ARM7!以下是摘录的一些对比:Cortex-M3 ARM7最新的ARM内核成熟使用近10年的ARM内核哈佛体系冯诺曼体系只支持最新的Thumb-2指令集支持ARM和Thumb指令集硬件自动压栈软件手工压栈单周期乘法指令多周期乘法指令2-12周期除法指令无除法指令有位操作无位操作内置系统节拍定时器无系统节拍定时器方便操作系统移植指令执行速度1.25DMIPS/MHz 0.95DMIPS/MHz功耗0.19mW/MHz 0.28mW/MHz从以上对比看,Cortex-M3在性能和功耗等方面基本上是完胜ARM7。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
cortex_M0 CPU32位
体系结构ARMv6-M NVIC
(低延时,低抖动的中断响
应,
Y
thumb/thumb-2
(16/32位指令混合,小于8位
设备3倍的代码大小)
Y
低功耗模式集成的 WFI 和 WFE 指令和“退出时睡眠”功能。
睡眠和深度睡眠信号。
pipeline3
DMIPS/MHz0.9
中断NMI+1 到 32 个物理中断
位操作可以使用 Cortex-M 系统设计工具包实现位处理操作区
增强的指令硬件单周期 (32x32) 乘法选项动态功耗(40G)3 µW/MHz
area(40G)0.01 mm**2; 12k gate
优势最小 ARM 处理器
功耗超低
超级简单的指令集(56个指令)
侧重低成本和简单性8/16位应用
应用家电、汽车等低端应用替代8051等低端MCU
备注M0的特点就是小、便宜、简单,应用于极低端
cortex_M1cortex_M3
32位32位
ARMv7-M
Y Y
Y Y
集成的 WFI 和 WFE 指令和“退出时睡眠”功能。
睡眠和深度睡眠信号。
33
0.8 1.25
NMI+1 到 32 个物理中断NMI+1 到240 个物理中断
集成的指令和位段
硬件除法(2-12 个周期)和单周期 (32x32) 乘
法、饱和数学支持
7 µW/MHz
0.03 mm**2; 33k gate
标准处理器架构,可方便应用于各FPGA 厂商提供更高的性能和更丰富的功能
高性能和低动态能耗
全功能:可执行包括硬件除法、单周期乘法和位字段操作
丰富的连接,内存保护
fpga 性能和效率16/32位应用
fpga上应用专门针对微控制器应用开发的主流 ARM 处理器
TSMC90G,可以达到275M,不包括TCM等可选外设号称用于fpga,各方面资料较少
performance貌似和M0一个水平,甚至还
差一点
兼顾成本和性能,应该是M系列当前最流行的。