如何看Cortex-M系列处理器差异与共性?技术老司机Joseph带你飞



ARM处理器家族如何区分?

多年来, ARM已经研发了相当多的不同的处理器产品,不同的ARM 处理器有不同的指令集,系统功能和性能。对很多初学者,甚至某些芯片设计经验丰富但是不熟悉ARM系列处理器的设计者来说,也是很容易混淆这些产品。 如下图中:ARM 处理器产品分为经典ARM处理器系列和最新的Cortex处理器系列。并且根据应用范围的不同,ARM处理器可以分类成3个系列。

ARM处理器家族

❂ Application Processors(应用处理器)

面向移动计算,智能手机,服务器等市场的的高端处理器。这类处理器运行在很高的时钟频率(超过1GHz),支持像Linux,Android,MS Windows和移动操作系统等完整操作系统需要的内存管理单元(MMU)。 如果规划开发的产品需要运行上述其中的一个操作系统,你需要选择ARM 应用处理器。

❂ Real-time Processors (实时处理器)

面向实时应用的高性能处理器系列,例如硬盘控制器,汽车传动系统和无线通讯的基带控制。多数实时处理器不支持MMU,不过通常具有MPU,Cache和其他针对工业应用设计的存储器功能。实时处理器运行在比较高的时钟频率(例如200MHz 到 >1GHz ),响应延迟非常低。虽然实时处理器不能运行完整版本的Linux和Windows, 但是支持大量的实时操作系统(RTOS)。

❂ Microcontroller Processors(微控制器处理器)

微控制器处理器通常设计成面积很小和能效比很高。通常这些处理器的流水线很短,最高时钟频率很低(虽然市场上有此类的处理器可以运行在200Mhz之上)。 并且,新的Cortex-M处理器家族设计的非常容易使用。因此,ARM 微控制器处理器在单片机和深度嵌入式系统市场非常成功和受欢迎。


ARM处理器特性总结


Cortex-M 处理器家族一览

Cortex-M处理器家族更多的集中在低性能端,但是这些处理器相比于许多微控制器使用的传统处理器性能仍然很强大。例如,Cortex-M4和Cortex-M7处理器应用在许多高性能的微控制器产品中,最大的时钟频率可以达到400Mhz。


当然,性能不是选择处理器的唯一指标。在许多应用中,低功耗和成本是关键的选择指标。因此,Cortex-M处理器家族包含各种产品来满足不同的需求:


面向低成本,超低功耗的微控制器和深度嵌入应用的非常小的处理器(最小12K门电路)。

针对小型嵌入式系统的最高能效的处理器,与Cortex-M0处理器接近的尺寸大小和编程模式,但是具有扩展功能,如单周期I/O接口和向量表重定位功能。

针对FPGA设计优化的小处理器,利用FPGA上的存储器块实现了紧耦合内存(TCM),和Cortex-M0有相同的指令集。

针对低功耗微控制器设计的处理器,面积小但是性能强劲,支持可以处理器快速处理复杂任务的丰富指令集,具有硬件除法器和乘加指令(MAC)。并且,M3支持全面的调试和跟踪功能,使软件开发者可以快速的开发他们的应用。

不但具备Cortex-M3的所有功能,并且扩展了面向数字信号处理(DSP)的指令集,像单指令多数据指令(SMID)和更快的单周期MAC操作。此外,它还有一个可选的支持IEEE754浮点标准的单精度浮点运算单元。

针对高端微控制器和数据处理密集的应用开发的高性能处理器。具备Cortex-M4支持的所有指令功能,扩展支持双精度浮点运算,并且具备扩展的存储器功能,例如Cache和紧耦合存储器(TCM)。

面向超低功耗,低成本应用设计的小尺寸处理器,和Cortex-M0相似,但是支持各种增强的指令集和系统层面的功能特性。M23还支持Trustzone安全扩展。

主流的处理器设计,与之前的Cortex-M3和Cortex-M4处理器类似,但系统设计更灵活,能耗比更高效,性能更高。M33还支持Trustzone安全扩展。


不同于老的经典ARM处理器(例如,ARM7TDMI, ARM9),Cortex-M处理器有一个非常不同的架构。例如:

✔ 仅支持ARM Thumb指令,已扩展到同时支持16位和32位指令Thumb-2版本。

✔ 内置的嵌套向量中断控制负责中断处理,自动处理中断优先级,中断屏蔽,中断嵌套和系统异常处理。

✔ 中断处理函数可以使用标准的C语言编程,嵌套中断处理机制避免了使用软件判断哪一个中断需要响应处理。同时,中断响应速度是确定性的,延迟低。

✔ 向量表从跳转指令变为中断和系统异常处理函数的起始地址。

✔ 寄存器组和某些编程模式也做了改变。


这些变化意味着许多为经典ARM处理器编写的汇编代码需要修改,老的项目需要修改和重新编译才能迁移到Cortex-M的产品上。软件移植具体的细节点击“阅读原文”查看ARM文档:ARM Cortex-M3 Processor Software Development for ARM7TDMI Processor Programmers


Cortex-M系列处理器的共同特性

Cortex-M0, M0+, M3, M4 and M7之间有很多的相似之处,例如:

基本编程模型 

嵌套向量中断控制器(NVIC)的中断响应管理

架构设计的休眠模式:睡眠模式和深度睡眠模式

操作系统支持特性

调试功能

易用性


Cortex-M处理器的嵌套向量中断控制器


例如,嵌套向量中断控制器是内置的中断控制器,支持许多外围设备的中断输入,一个不可屏蔽的中断请求,一个来自被称作内置时钟(SysTick)的中断请求和一定数量的系统异常请求。NVIC处理这些中断和异常的优先级和屏蔽管理。

ARM处理器家族如何区分?

多年来, ARM已经研发了相当多的不同的处理器产品,不同的ARM 处理器有不同的指令集,系统功能和性能。对很多初学者,甚至某些芯片设计经验丰富但是不熟悉ARM系列处理器的设计者来说,也是很容易混淆这些产品。 如下图中:ARM 处理器产品分为经典ARM处理器系列和最新的Cortex处理器系列。并且根据应用范围的不同,ARM处理器可以分类成3个系列。

ARM处理器家族

❂ Application Processors(应用处理器)

面向移动计算,智能手机,服务器等市场的的高端处理器。这类处理器运行在很高的时钟频率(超过1GHz),支持像Linux,Android,MS Windows和移动操作系统等完整操作系统需要的内存管理单元(MMU)。 如果规划开发的产品需要运行上述其中的一个操作系统,你需要选择ARM 应用处理器。

❂ Real-time Processors (实时处理器)

面向实时应用的高性能处理器系列,例如硬盘控制器,汽车传动系统和无线通讯的基带控制。多数实时处理器不支持MMU,不过通常具有MPU,Cache和其他针对工业应用设计的存储器功能。实时处理器运行在比较高的时钟频率(例如200MHz 到 >1GHz ),响应延迟非常低。虽然实时处理器不能运行完整版本的Linux和Windows, 但是支持大量的实时操作系统(RTOS)。

❂ Microcontroller Processors(微控制器处理器)

微控制器处理器通常设计成面积很小和能效比很高。通常这些处理器的流水线很短,最高时钟频率很低(虽然市场上有此类的处理器可以运行在200Mhz之上)。 并且,新的Cortex-M处理器家族设计的非常容易使用。因此,ARM 微控制器处理器在单片机和深度嵌入式系统市场非常成功和受欢迎。


ARM处理器特性总结


Cortex-M 处理器家族一览

Cortex-M处理器家族更多的集中在低性能端,但是这些处理器相比于许多微控制器使用的传统处理器性能仍然很强大。例如,Cortex-M4和Cortex-M7处理器应用在许多高性能的微控制器产品中,最大的时钟频率可以达到400Mhz。


当然,性能不是选择处理器的唯一指标。在许多应用中,低功耗和成本是关键的选择指标。因此,Cortex-M处理器家族包含各种产品来满足不同的需求:


面向低成本,超低功耗的微控制器和深度嵌入应用的非常小的处理器(最小12K门电路)。

针对小型嵌入式系统的最高能效的处理器,与Cortex-M0处理器接近的尺寸大小和编程模式,但是具有扩展功能,如单周期I/O接口和向量表重定位功能。

针对FPGA设计优化的小处理器,利用FPGA上的存储器块实现了紧耦合内存(TCM),和Cortex-M0有相同的指令集。

针对低功耗微控制器设计的处理器,面积小但是性能强劲,支持可以处理器快速处理复杂任务的丰富指令集,具有硬件除法器和乘加指令(MAC)。并且,M3支持全面的调试和跟踪功能,使软件开发者可以快速的开发他们的应用。

不但具备Cortex-M3的所有功能,并且扩展了面向数字信号处理(DSP)的指令集,像单指令多数据指令(SMID)和更快的单周期MAC操作。此外,它还有一个可选的支持IEEE754浮点标准的单精度浮点运算单元。

针对高端微控制器和数据处理密集的应用开发的高性能处理器。具备Cortex-M4支持的所有指令功能,扩展支持双精度浮点运算,并且具备扩展的存储器功能,例如Cache和紧耦合存储器(TCM)。

面向超低功耗,低成本应用设计的小尺寸处理器,和Cortex-M0相似,但是支持各种增强的指令集和系统层面的功能特性。M23还支持Trustzone安全扩展。

主流的处理器设计,与之前的Cortex-M3和Cortex-M4处理器类似,但系统设计更灵活,能耗比更高效,性能更高。M33还支持Trustzone安全扩展。


不同于老的经典ARM处理器(例如,ARM7TDMI, ARM9),Cortex-M处理器有一个非常不同的架构。例如:

✔ 仅支持ARM Thumb指令,已扩展到同时支持16位和32位指令Thumb-2版本。

✔ 内置的嵌套向量中断控制负责中断处理,自动处理中断优先级,中断屏蔽,中断嵌套和系统异常处理。

✔ 中断处理函数可以使用标准的C语言编程,嵌套中断处理机制避免了使用软件判断哪一个中断需要响应处理。同时,中断响应速度是确定性的,延迟低。

✔ 向量表从跳转指令变为中断和系统异常处理函数的起始地址。

✔ 寄存器组和某些编程模式也做了改变。


这些变化意味着许多为经典ARM处理器编写的汇编代码需要修改,老的项目需要修改和重新编译才能迁移到Cortex-M的产品上。软件移植具体的细节点击“阅读原文”查看ARM文档:ARM Cortex-M3 Processor Software Development for ARM7TDMI Processor Programmers


Cortex-M系列处理器的共同特性

Cortex-M0, M0+, M3, M4 and M7之间有很多的相似之处,例如:

基本编程模型 

嵌套向量中断控制器(NVIC)的中断响应管理

架构设计的休眠模式:睡眠模式和深度睡眠模式

操作系统支持特性

调试功能

易用性


Cortex-M处理器的嵌套向量中断控制器


例如,嵌套向量中断控制器是内置的中断控制器,支持许多外围设备的中断输入,一个不可屏蔽的中断请求,一个来自被称作内置时钟(SysTick)的中断请求和一定数量的系统异常请求。NVIC处理这些中断和异常的优先级和屏蔽管理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值