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处理这些中断和异常的优先级和屏蔽管理。

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

  1. 微型计算机体系结构的主要特点,高性能微型计算机体系结构:奔腾、酷睿系列处理器原理与应用技术...

    高性能微型计算机体系结构:奔腾.酷睿系列处理器原理与应用技术 语音 编辑 锁定 讨论 上传视频 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! <高性能微型计算机体系结 ...

  2. ARM Cortex各系列处理器分类比较

    目录 Cortex-M系列 Cortex-M0: Cortex-M0+: Cortex-M1: Cortex-M3: Cortex-M4: Cortex-M7: 规格对比 Cortex-A系列 Cor ...

  3. cortex系列处理器排行_ARM Cortex各系列处理器分类比较

    C o r t e x - M 系 列 M0 : Cortex-M0 是目前最小的 ARM 处理器, 该处理器的芯片面积非常小, 能耗极低, 且编程所需 的代码占用量很少,这就使得开发人员可以直接跳过 ...

  4. ARM性能天梯图,各系列处理器分类比较

    1.天梯图,转自 零维星空 的博客, 参考网址:https://blog.csdn.net/shaozhenyu/article/details/71159522 2.ARM Cortex各系列处理器 ...

  5. cortex系列处理器排行_ARM推出Cortex-A78C处理器,欲夺X86笔记本市场

    最近几年ARM依靠智能手机浪潮获得了巨大的发展,不过随着手机市场的饱和,ARM有必要去开拓新的疆域了,所以X86 PC市场就被ARM盯上了,ARM推出了针对此类市场的产品,加上今年苹果决定将Mac电脑 ...

  6. cortex系列处理器排行_2018最新CPU天梯图排行版 2018年5月最新版CPU性能天梯图

    时间过得真快,突然一下子到了五月份.距离上一次的高通CPU天梯图差不多有两个月了.伴随着过去2个月发布的新机较多,而采用的芯片份额当属高通最多.高通凭借自身的技术和雄厚资金获得了诸多手机厂商的青睐.所 ...

  7. ARM Cortex A/R/M全系列处理器型号概览(截止2020年4月)

    因为工作需要,要对ARM Cortex全系列的处理器进行一些收集和对比,找了半天没找到什么合适的资料,只好自己去ARM官网上,从网页上截了这张图作为一个参考,记录在此便于日后查询.

  8. cortex系列处理器排行_ARM实时处理器Cortex-R8介绍_Cortex-R系列处理器盘点

    说起ARM处理器,大家肯定都会想到Cortex-A系列,但这只是人家三大产品线之一的高性能应用处理器,同时还有非常低调的Cortex-M系列微控制器.Cortex-R系列实时处理器. 本文主要和大家说 ...

  9. 一文看懂ARM Cortex-M处理器

    ARM Cortex-M处理器家族现在有8款处理器成员.在本文中,我们会比较Cortex-M系列处理器之间的产品特性,重点讲述如何根据产品应用选择正确的Cortex-M处理器.本文中会详细的对照Cor ...

最新文章

  1. 捷微jeewx , 免费开源(java)微信公众账号管家系统发布
  2. python scrapy 环境搭建_python+scrapy环境搭建步骤描述
  3. 笔记-信息系统开发基础-信息系统规划方法-大型新信息系统特征/企业系统规划步骤...
  4. java线索二叉树的实现_JAVA递归实现线索化二叉树
  5. 苏州科技大学计算机学院 李双娴,苏州大学计算机科学与技术学院第十二次研究生代表大会顺利召开...
  6. 基础训练——合并电话簿
  7. 如何修复崩溃的WordPress数据库表
  8. python筛选csv数据_pandas数据筛选和csv操作的实现方法
  9. mysql cluster安装配置_mysqlcluster安装与配置_MySQL
  10. 深度搜索 java_java实现的深度搜索与广度搜索算法BFS,DFS以及几种最短路径算法...
  11. 【论文阅读】Graph Networks for Multiple Object Tracking
  12. 为了摸清敌人对自己了解多少,高阶国家黑客组织Turla 决定偷走反病毒日志
  13. html盒子优先级设置,CSS 基础(盒模型、选择器、权重、优先级)
  14. 单工、半双工、双工通信详解
  15. Python:threading(多线程操作)(转载)
  16. c语言 16进制编辑器,十六进制编辑器(010editor)最新下载
  17. vue项目中,网页地址栏添加小图标
  18. WPS2019 Ubuntu可以插入公式
  19. python安装第三方库的方法
  20. 短期盈利无望,Uber到底值多少钱?

热门文章

  1. 联想杯 - Gentle Jena(单调栈)
  2. python爬虫-初步使用Scrapy分布式爬虫(爬取mcbbs整合包保存名称及主要mod),大爱MC
  3. 案例逐步演示python利用正则表达式提取指定内容并输出到csv
  4. Codeforces Beta Round #1--C题(多边形求最小面积)
  5. 程序员的吸星大法-IDA反汇编工具初探
  6. malloc的内存分配之 malloc(0)的内存分配情况
  7. Ring0和Ring3权限级
  8. GitLab 自动触发 Jenkins 构建
  9. 如何选择适合自己网站的防盗链
  10. Python中is和==有什么区别?