百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

对比Cortex-M各处理器功能模块(cortex处理器排行榜)

haoteby 2025-01-23 17:17 1 浏览

ARMCortex-M处理器家族发展至今(2016),已有 5 代产品,分别是 CM0/CM0+、CM1、CM3、CM4、CM7。

1.Cortex-M 兼容特性

为了能做到 Cortex-M 软件重用,ARM 公司在设计 Cortex-M 处理器时为其赋予了处理器向下兼容、软件二进制向上兼容特性。

首先看什么是二进制兼容,这个特性主要是针对软件而言,这里指的是当某软件(程序)依赖的头文件或库文件分别升级时,软件功能不受影响。要做到二进制兼容,被软件所依赖的头文件或库文件升级时必须是二进制兼容的。

那么什么又是向上兼容,向上兼容又叫向前兼容,指的是在较低版本处理器上编译的软件可以在较高版本处理器上执行。

跟向上兼容相对的另一个概念叫向下兼容,向下兼容又叫向后兼容,指的是较高版本处理器可以正确运行在较低版本处理器上编译的软件。

所以其实既可以用向上兼容,也可以用向下兼容来形容 Cortex-M 特性,只不过描述的主语不一样,我们可以说 Cortex-M 程序是向上兼容的,也可以说 Cortex-M 处理器是向下兼容的。

具体到 Cortex-M 处理器时,这个兼容特性表现为:

从处理器角度看:CM0 指令集和功能模块是最精简的,CM7 指令集和功能模块是最丰富的。不存在低版本处理器上存在的特性是高版本处理器所没有的。

从软件角度来看:CMSIS 提供的头文件和功能函数是二进制向上兼容的,比如某 CM0 软件 App 使用的是 core_cm0.h 头文件,而这个 App 要在 CM7 上运行时,不需要使用 core_cm7.h 再重新编译一次(当然使用新头文件编译后的 App 也是正常的。)

2.Cortex-M 功能模块差异

由于 CM1 主要是用在 FPGA产品中,故下面对比忽略 CM1。我们知道 CM 处理器是向下兼容的,故 CM 功能模块是随着版本的升级而逐步增加的,我们逐步从最低版本开始对比。

2.1 CM0 vs CM0+

先来聊聊 CM0 与 CM0+,从最基准的 CM0 模块看起:

ARMv6-M CPU 内核:ARM 公司于 2007 年推出的内核。冯·诺依曼体系结构,3 级流水线,支持大部分 Thumb 和小部分 Thumb-2 指令集,所有指令一共 57 条。此外还内嵌 32-bit 返回结果的硬件乘法器。

NVIC 嵌套向量中断控制器:用于 CPU 在正常 Run 模式下中断管理。最大支持 32 个外部中断,外部中断可设 4 级抢占优先级(2bit)。

WIC 唤醒中断控制器:用于 CPU 在低功耗 Sleep 模式下中断管理。

AHB-Lite 总线:一条 32bit AMBA-3 标准的高性能 system 总线负责所有 Flash、SRAM指令和数据存取。

调试模块:0-4 个硬件断点 Breakpoint,0-2 个数据监测点 Watchpoint。

DAP 调试接口:通过 DAP 模块支持 JTAG 和 SWD 接口。

那么 CM0+到底改进了什么?

ARMv6-M CPU 内核:流水线改为 2 级(很多 8bit MCU 都是 2 级流水线,主要用于降低功耗)

NVIC 嵌套向量中断控制器:增加了 VTOR 即中断重定向功能。

那么 CM0+到底增加了什么?

MPU 存储器保护单元:提供硬件方式管理和保护内存,控制访问权限,最大可将内存分为 8*8 个 region。内存越权访问,将返回 MemManage Fault。

MTB 片上跟踪单元:用户体验更好的的跟踪调试,优化的异常捕获机制,可以更快地定位 bug。

Fast I/O:可单周期访问的快速 I/O 口,更易于 Bit-banging(比如 GPIO 模拟 SPI、IIC 协议)。

2.2 CM0+ vs CM3

前面比较完了 CM0 与 CM0+,再来看看 CM3 比 CM0+增强在了哪里:

那么 CM3 到底改进了什么?

ARMv7-M CPU 内核:ARM 公司于 2004 年推出的内核。哈佛体系结构,3 级流水线+分支预测,支持全部的 Thumb 和 Thumb-2 指令集。内嵌 32-bit 硬件乘法器可返回 64-bit 运算结果,且新增 32-bit 硬件除法器。

NVIC 嵌套向量中断控制器:最大支持 240 个外部中断,中断优先级可分组(抢占优先级、响应优先级),8bit 优先级设置(最大 128 级抢占优先级(对应最小 2 级响应优先级),最大 256 级响应优先级(对应无抢占优先级))。

3x AHB-Lite 总线:除了原 system 总线负责 SRAM 存取外,还新增两条 ICode、DCode 总线分别完成 Flash 上指令和数据存取。

调试模块:0-8 个硬件断点 Breakpoint,0-4 个数据监测点 Watchpoint。

ITM/ETM 跟踪单元:ITM 更好地支持 printf 风格 debug,ETM 提供实时指令和数据跟踪。

那么 CM3 到底增加了什么?

额,CM3 相比 CM0+并没有增加什么独有模块,反倒是少了 Fast I/O Port。

2.3 CM3 vs CM4

前面比较完了 CM0+与 CM3,再来看看 CM4 比 CM3 增强在了哪里:

那么 CM4 到底改进了什么?

ARMv7E-M CPU 内核:增加了 DSP 相关指令支持。

那么 CM4 到底增加了什么?

DSP 数字信号处理单元:新增支持单周期 16/32-bit MAC、dual 16-bit MAC, 8/16-bit SIMD 算法的数字信号处理单元。

FPU浮点运算单元:新增单精度(float 型)兼容 IEEE-754 标准的浮点运算单元(VFPv4-SP)。

2.4 CM4 vs CM7

前面比较完了 CM3 与 CM4,再来看看 CM7 比 CM4 增强在了哪里:

那么 CM7 到底改进了什么?

ARMv7E-M CPU 内核:6 级流水线+分支预测。

2x AHB-Lite 总线:精简为 2 条 AHB 总线,其中 AHB-P 外设接口完成原来 system 总线功能, AHB-S 从属接口负责外部总线控制器(如 DMA)功能以及与 TCM 接口功能。

MPU 存储器保护单元:最大可将内存分为 16*8 个 region。

FPU 浮点运算单元:新增双精度(double 型)兼容 IEEE-754 标准的浮点运算单元(VFPv5)。

那么 CM7 到底增加了什么?

I/D-Cache 缓存区:即是我们通常理解的 L1 Cache,每个 Cache 大小为 4-64KB。

I/D-TCM 紧密耦合存储器:紧密的与处理器内核相耦合的 RAM,提供与 Cache 相当的性能,但比 Cache 更具确定性,memory 最大均为 16MB。

ECC 特性:对 L1 Cache 提供错误校正和恢复功能,提高系统的可靠性。

AXI-M 总线:基于 AMBA 4 的 64bit AXI 总线,用于支持挂在系统上的 L2 memory。

相关推荐

前端:从零实现一款可视化图片编辑器

背景介绍我们知道,为了提高企业研发效能和对客户需求的快速响应,现在很多企业都在着手数字化转型,不仅仅是大厂(阿里,字节,腾讯,百度)在做低代码可视化这一块,很多中小企业也在做,拥有可视化低代码相关技术...

2018年面世 英特尔将打造超级计算机

|责编:王冬奇中关村在线消息:据国外媒体报道,近日英特尔宣布将联手Cray公司为美国阿贡国家实验室打造一台性能强大的全新超级计算机——极光(Aurora),运算性能可达到180P-Flops(每秒浮...

Hyperledger Fabric 2.0安装教程

本文介绍如何安装最新的HyperledgerFabric2.0的预编译程序、fabric-samples示例配置和代码以及docker镜像。HyperledgerFabric区块链开发教程:F...

一文精通虚拟端口通道vPC,精品文章,爱了

今天给大家带来的是虚拟端口通道相关的技术:简介...

「数据中心」数据中心脊页架构:思科FabricPath Spine和Leaf网络

思科在2010年引入了FabricPath技术。FabricPath提供了新的功能和设计选项,使网络运营商能够创建以太网结构,从而提高带宽可用性,提供设计灵活性,并简化和降低网络和应用程序部署和操作的...

51单片机项目:定时宠物喂食系统(含代码)keil、DXP原理图

题目要求:一、拟解决的主要问题...

基于51单片机的多功能智能语音循迹避障小车(含代码)

大家好,今天给大家介绍基于51单片机的多功能智能语音循迹避障小车,下方附有本文涉及的全部资料和源代码的获取方式,可进群免费领取。一.功能介绍及硬件准备这是一款基于51单片机开发的智能小车,通过这篇文章...

如何对自己尚不熟悉Angular.js的情况下对代码进行调试

【51CTO.com快译】如果大家对AngularJS还不熟悉,那么可能会在初步创建Web应用时对很多问题感到担心。而且尽管这可能已经是我们所能用到的上手难度最低的Web开发框架之一,但大家仍然需要了...

拿代码量算KPI跟程序员们来这套?(下)

嘿嘿,一个美丽的周末又这么过来了~小伙伴们都做了些啥呢?加班了咩?改bug了咩?催需求了咩?小编也如约更新“拿代码量算KPI……跟程序员们来这套?(下)”前情回顾请点击下方菜单栏的“精彩文章”,找到7...

哆啦A梦彩色版第5卷第51章,胖虎的料理

重温童年经典动漫,哆啦A梦彩色版第5卷第51章,胖虎的料理...

51单片机项目设计:基于51单片机时钟万年历(含代码、原理图)

大家好,今天给大家介绍基于单片机stm32的多功能氛围灯、手机控制ws2812和MCU升级程序,文章末尾附有本毕业设计的论文和源码的获取方式,也可现在直接进群免费领取。...

重构代码,真没有银弹

译者|布加迪我的一位同事在大型项目代码重构方面有丰富的经验,他真诚地与我分享了他如何处理这些繁杂的任务。虽然他做的大部分事情只是坚持不懈地努力,就像在健身房锻炼那样,但这对我来说很有意义。本文分享...

51&52单片机C语言程序实例Proteus仿真和代码300个

11个奇奇怪怪的微信隐藏玩法(含撩妹教程)

最近,我在微信发现了一个好玩的东西用它可以扒到好友的“黑料”...

程序员没转发公司朋友圈,被罚款500,半个月后3行代码让领导懵了

现在在职场,也确实存在着许多的身不由己,很多事情都不是自己想做的,但是为了工作也不得不做。就比如说公司经常会要求员工们发一些朋友圈,很多人都不愿意把工作上的东西发到朋友圈去,但是如果不发又要挨领导的批...