Cortex-M3&Cortex-M4架构简介
ARM Cortex-M处理器简介
-
三级流水线结构。
-
哈佛总线结构,且具有统一的储存器空间;指令和地址总线使用相同的地址空间。
-
32位寻址,支持4GB存储器空间。
-
基于
ARM AMBA
(高级微控制器总线架构)技术的片上接口,支持高吞吐量的流水线总线操作。 -
名为
NVIC
(嵌套向量中断控制器)的中断控制器,支持最多2
个中断请求和8~256
个中断优先级(取决于实际的芯片设计)。 -
支持多种
OS
(操作系统)特性,如节拍定时器以及影子栈指针等。 -
休眠模式和多种低功耗特性。
-
支持可选的
MPU
(存储器保护单元),提供了可编程存储器或访问权限控制等存储器保护特性。 -
通过位段特性支持两个特定存储器区域中的位数据访问。
-
可以选择使用单个或多个处理器。
Cortex-M3和Cortex-M4处理器提供的指令
- 普通数据处理,包括硬件除法指令。
- 存储器访问指令,支持8位、16位、32位和64位数据,以及其他可以传输多个32位数据的指令。
- 位域处理指令,
- 乘累加(
MAC
)以及饱和指令。 - 用于跳转、条件跳转以及数调用的指令.
- 用于系统控制、支持
OS
等的指令。
另外,Cortex-M4处理器还支持:
-
单指令多数据(
SIMD
)噪作。 -
其他快速
MAC
和乘法指今。 -
饱和运算指令。
-
可选的浮点指令(单精度)。
一般来说,ARM Cortex-M
可以被到为RISC
(精简指令集)处理器,有些人可能会认为Cortex-M3
和Cortex-M4的某些特性同CISC
(复杂指令集)相近,如丰富的指令集和多种指今宽度等。不过随着处理器技术的发展,多数处理器的指令集同样越来越复杂.此RISC
和CISC
处理器定义间的界限也变得模糊了。
Cortex-M 处理器家族
Cortex-M3
和Cortex-M4
处理器为ARM Cortex-M
处器家族的两个产品,整个Cortex-M
处理器家族如下图所示。
Cortex-M3
和Cortex-M4
处理器基于ARMv7-M
架,它们都具有高性能,且是为微控制器应用设计的。由于Cortex-M4
处理器具有SIMD
、快速MAC
以及饱和运算指令,其可以执行一些数字信号处理程序,之前则需要使用数字信号处理器(DSP
)。
Cortex-M0
, Cortex-M0+
以及Cortex-M1
基于ARMv6-M
.它们的指令集较小.Cortex-M0
和Cortex-M0+
的门数非常少,特别适合低成本微控制器产品。Cortex-M0+
处理器具有低功耗优化,以及更多的可选特性。
Cortex-M1
处理器是专门为FPGA
应用设计的,它所具有的紧密耦合存储器(TCM
)特性有助于FPGA
内的存储器的使用,并且根据设计,高级的FPGA
可以使用更高的时钟频率。
对于普通数据处理和I/O
控制任务,由于Cortex-M0
和Cortex-M0+
处理器的低门数,它们具有良好的能耗效率。不过若应用需要复杂的数据处理,则可能需要花费更多的指令和时钟周期以在这种情况下,Cortex-M3
或Cortex-M4
处理器则可能会更适合。由于这些处理器支持的指令更多,那么同ARMv6-M
架构相比,执行处理任务可能要更少的指今。因此,不同的任务需要使用不同的处理器。
Cortex-M 处理器的优势
-
低功耗
与其他32位微控制器设计相比,
Cortex-M
处理器相对较小。Cortex-M
处理器也进行了低功耗的优化,目前,许多Cortex-M
微控制器的功耗都低于200μA/MHz
,有些还低于100μA/MHz
。另外,Cortex-M
处理器还支持休眠模式特性,可以同许多先进的超低功耗设计技术配合使用。综上所述,Cortex-M
可以用于各种超低功耗微控制器产品中。 -
性能
Cortex-M3
和Cortex-M4
处理器的性能可以达到3 CoreMark/MHz
、1.25DMIPS/MHz
(基于Dhrystone2. 1
平台),这样Cortex- M3
和Cortex M4
就可以处理许多复杂的应用。或者也可以使用更低的时钟频率以降低功耗。 -
能耗效率
结合低功耗和高性能的特点,Cortex-M3
和Cortex-M4
处理器具有非常优秀的能耗效率。这就意味着,在有限的能量下,仍然可以进行大量的处理工作,或者让任务更快完成,以便让系统可以在休眠模式下待更长时间,这样,就能够提高可移动产品的电池寿命。
- 代码密度
Thumb ISA
提供了良好的代码密度,这就意味着要完成相同的任务,所需的程序代码更少。因此,可以通过使用具有较小Flash
存储器的微控制器以降低成本和功耗,而且芯片生产商也可以生产具有较小封装的微控制器芯片。
- 中断
Cortex-M3
和CortexM4
处理器具有可配置的中断控制器设计,支持多达240个向量中断和多个中断优先等级(从8到256个等级)。中断嵌套由硬件自动处理,具有零等待状态存储器的系统的中断等待仅为12个周期。Cortex-M
处理器的中断处理能力也使得其非常适合实时控制应用。
- 易于使用
Cortex-M
处理器非常易于使用,事实上,由于Cortex-M
处理器具有简单、线性的存储器映射,它们比许多8位处理器还容易使用。架构上没有8位微控制器所具有的许多限制(例如:存储器分组、有限的栈等级以及不可重入代码等)。几乎所有的代码都可以用C实现,其中包括中断处理。
- 可扩展性
Cortex-M
处理器家族可以很容易地从低成本、简单的、低于1美元的微控制器扩展至运行在200MHz
的高端微控制器,可以发现有些Cortex-M
微控制器具有多个处理器。尽管如此,由于处理器架构间的一致性,只需使用一-种工具链就可以很容易地重用软件。
- 调试特性
Cortex-M
处理器具有许多调试特性,它们有助于分析设计问题。除了标准的调试特性,如多数微控制器都具有的暂停和单步调试等,还可以生成捕获程序流、数据变动以及概况信息等的跟踪数据。对于多处理器设计,每个Cortex-M
处理器的调试系统可以连在一起,并共享调试连接。
- OS支持
Cortex-M
处理器在设计之初就考虑了OS
应用,其多个特性确保了OS
的实现和OS
的高效运行。当前Cortex-M
处理器可用的嵌入式OS
超过了30种
-
多种系统特性
Cortex-M3
和Cortex-M4
处理器支持多种系统特性,如可位寻址存储器区域(位段特性)和MPU
(存储器保护单元)等。 -
软件可移植性和可重用性
由于架构为C友好的,几乎所有代码都可以用标准的
ANSIC
进行编程。CMSIS
(Cortex
微控制器软件接口标准)是ARM
提出的,它通过提供标准头文件以及标准Cortex-M
处理器功能的API
,使得基于Cortex-M
处理器的编程更加简单。这样也就提高了软件的可重用性及应用程序代码的可移植性。 -
选择(设备、 工具和OS等)
使用
Cortex-M
微控制器的优势之一在于其选择众多,除了数以千计的微控制器设备以外,还可以选择多种软件开发/调试工具、嵌入式OS
以及中间件等。
Cortex-M 处理器应用
由于ARM Cortex-M3
和Cortex-M4
处理器具有许多强大的特性,它们非常适合多种应用:
-
微控制器
Cortex-M
处理器家族非常适合微控制器产品。其中包括具有小的存储器容量的微控制器及具有高运行速度的高性能微控制器。这些微控制器可用于消费类产品,从玩具到电子产品,甚至信息科技(IT)用的特殊产品,以及工业和医疗系统。 -
汽车
Cortex-M3
和Cortex-M4
处理器的另外一个应用为汽车工业,由于这些处理器可以提供高性能.非常高的能耗效率以及低中断等待,它们非常适合实时控制系统。另外,由于处理器设计得非常灵活(例如,支持最多240个中断源,可选的MPU
),它们也可用于汽车工业中高度集成的ASSP
(专用标准产品)。MPU
特性还提供了健壮的存储器保护,这也是这些应用中所需要的。 -
数据通信
由于处理器的低功耗和高效率,并且
Thumb-2
中还有位域操作的指令,因此Cortex-M3
和Cortex-M4
处理器适合于多种通信应用,如Bluetooth
和ZigBee
。 -
工业控制
在工业控制应用中,简单、响应快以及可靠性为最重要的因素,
Cortex-M3
和Cortex-M4
处理器中的中断支持特性,包括确定的中断行为、自动嵌套处理、MPU
以及增强的错误处理等,都使得它们成为这一领域的强力候选。 -
消费产品
许多消费产品中都有一个(或多个)高性能微控制器,
Cortex-M3
和Cortex-M4
处理器尽管非常小,却非常高效和节能,而且其性能足以处理LCD
面板上显示的复杂的GUI
和各种通信协议。 -
片上系统(SoC)
在有些高端处理器设计中,
Cortex-M
处理器可用于多种子系统中,如音频处理、电源控制系统、FSM
(有限状态机)置换及I/O
控制任务等。 -
混合信号设计
在
IC
设计领域,数字和模拟设计是混在--起的。当微控制器中的模拟部件(如ADC
和DAC
)越来越多时,传感器、PMIC
(电源管理IC
)和MEMS
(微机电系统)等模拟IC
也需要提供一些其他功能,Cortex-M
处理器的低功耗以及低门数特点使得其可以被集成在混合信号IC
系统中。
目前市场上已经有许多基于Cortex-M3
和Cortex-M4
处理器的产品,其中包括价格低于0.5
美元的低端微控制器,这样ARM
微控制器的价格就同许多8位微控制器相当,甚至更低。