作为ARM Cortex-M家族的继承者 Cortex-M23与M33有哪五大特色?

2023-05-16

http://news.eeworld.com.cn/xfdz/article_2017011259937.html
 

集微网消息,ARM处理器在嵌入式设备领域的应用非常广泛。基于ARM Cortex处理器的片上系统(SoC)解决方案适用于多种嵌入式设计细分市场,如物联网、电机控制、医疗、汽车、家电自动化等。Cortex系列处理器主要基于3大产品类型量身开发,A系列:运行复杂系统的精细高端应用;R系列:高性能硬实时系统;M系列:低功耗、确定性、成本敏感的微控制器,专门优化以满足其需求。

其中,Cortex-M家族32位微控制器(MCU)在业内最广为人知。该家族包括超低功耗的Cortex-M0/0+、主流的Cortex-M3、带DSP浮点运算的Cortex-M4和最高性能的Cortex-M7系列。

去年11月,ARM公司又推出了Cortex-M家族的继承者,分别是Cortex-M23和Cortex-M33 MCU。其中,Cortex-M23是Cortex-M0+的继任者,主打超低功耗,而Cortex-M33是Cortex-M3和Cortex-M4的继任者,性能更强,具有DSP浮点运算功能。

据悉,ARM Cortex-M23与Cortex-M33是首款基于ARM公司最新的ARMv8-M架构的嵌入式处理器,而Cortex-M0/0+、Cortex-M3、Cortex-M4和Cortex-M7则是基于上一代的ARMv7-M架构。

那么,Cortex-M23与Cortex-M33到底拥有着怎样的特色呢?

Cortex-M33是一款能在性能、功耗和安全之间实现最佳平衡的处理器

 

Cortex-M33是首款采用TrustZone安全技术和数字信号处理技术的ARMv8-M全功能实现处理器。该处理器可以支持大量灵活的配置选项,并在广泛应用中进行部署,此外还提供专用的协同处理器界面以支持经常需要加速和大量运算的运作。Cortex-M33是一款在性能、功耗、安全与生产力之间达到最佳平衡的处理器。

 

为了显著降低系统功耗,Cortex-M33处理器采用有序三阶管线技术。大部分指令在头两个阶段就能完成,而复杂的指令则需要3个阶段。此外,某些16位指令将采用双发射机制,以增强性能。处理器内核有两个AMBA 5 AHB5界面:C-AHB和S-AHB,完全对称,指令和数据提取性能不分伯仲。

 

接下来,让我们了解一下Cortex-M33的五大特色:

 

1 、为ARMv8-M 量身优化的TrustZone技术为整个系统的安全保驾护航

    

采用TrustZone技术的Cortex-M33处理器拥有两个安全状态及多种相关特色:

 

 

安全状态和非安全状态的全面利用,必将开启众多新机遇和新应用的大门。该系统使用的高价值专利固件可以在安全状态下运行。在安全状态下设置的监管员代码则可以在系统受到攻击或不可靠运行后将其恢复初始;而非安全侧则像以前一样向正在用Cortex-M开发软件的数百万开发者开放。

2 、协同处理器界面,实现高扩展性

对某些应用而言,专用运算起到的作用可谓非同小可;但为了实现专用运算,这个全球最强大设计生态系统的所有优点必须完美保留,即允许设计师在开发工具、编译器、调试器、操作系统和中间件之间最大限度的进行选择。ARM生态系统可以帮助开发商节约时间和成本,进一步提高生产力。

Cortex-M33处理器包含一个可以选配、类似总线的专用界面,主要用于集成紧耦合加速器硬件。对需要频繁运算的操作而言,该界面可以帮助设计师用自定义的处理硬件提升通用运算能力。须着重指出的是,这样做并不会使整个生态系统分裂。该界面包含最多可用于8个协同处理器的控制和数据通路,发出的信号可显示处理器的特权状态和安全状态、指令类型、相关寄存器和操作字段。协同处理器通常会合理的在几个少数循环内完成,或在后台运行并在完成时自动停止。操作的细节和数据可以通过该界面与单指令同时传输,如有需要,还可插入等待状态。

3 、用于任务隔离的存储保护单元(MPU)

设计师可以自行对选配的MPU编程,为每个安全状态和非安全状态提供多达16个区域。在多任务环境中,操作系统可以在任务情境切换时重新编程MPU,为每个任务定义存储访问许可。比如说,某个应用的某个任务只被允许访问某些应用数据和特定的周边设备,这种情况下,MPU将保护所有其他的存储和周边设备,将讹误或未授权访问阻挡在外,有效提升系统可靠性。

 

Cortex-M33存储保护架构的开发基于受保护的存储系统架构PMSAv8。最新版本搭载了针对各区域的基线与限值比较器,而非此前的二次方尺寸对齐模型。每个区域都有一个基线的初始地址、终止地址,以及访问许可和存储性质的设定值,因此在这一架构中,设计师设计MPU区域时再也无需顾虑将多个区域整合在一起的麻烦了。功能强化后,软件开发变得更加简单,客户的使用意愿提升,编程步骤也得以减少,并将进而降低情境转换次数。

4 、DSP拓展

选配的整数DSP拓展可以为系统增加85个新指令。大多数情况下,DSP指令可将性能平均提升3倍,让所有以数字信号控制为中心的应用性能突飞猛进。

为帮助设计师加速软件开发,ARM将在CMSIS项目中提供免费的DSP库,包含整套过滤、转换和数学功能(如矩阵),并支持多种数据类型。CMSIS项目是开源的,其开发详情发布在github上。

5 、单精度浮点单元

基于FPv5的选配单精度浮点拓展单元包括一份额外的16-入口 64位寄存器文件。该拓展新增45个与IEEE754-2008兼容的单精度浮点指令。使用浮点指令通常可将软件库平均性能提升10倍。FPU位于单独的电源域,负责在整个单元不使用的时候切断电源。

    

Cortex-M23是一款尺寸最小、能效最高的处理器

 

ARM Cortex-M23采用TrustZone技术,是尺寸最小、能效最高的处理器。小型嵌入式应用对芯片的安全性能有严格要求,基于ARMv8-M基线架构的Cortex-M23处理器则是最佳解决方案。

同样地,让我们也来了解一下Cortex-M23的五大特色:

1、为ARMv8-M量身打造的TrustZone技术:安全实现的基础

TrustZone技术为ARMv8-M度身优化,可以在每一台搭载Cortex-M23处理器的设备上以硬件形式实现可信软件和非可信软件强制隔离。因此,采用TrustZone,设计师只需一个处理器就可以设计嵌入式应用,此前则必须使用多个处理器才能在可信区域和非可信区域之间实现物理隔离。仅需Cortex-M23处理器,既可出色实现多项安全需求,如设备识别管理、高价值固件保护、软件认证、安全根等等。

采用TrustZone技术的Cortex-M23处理器具备以下两种安全状态:

• 安全状态 – 可以访问安全和非安全资源(存储、周边设备等)

• 非安全状态 – 只可访问非安全资源

两种安全状态下的代码执行转换和代码访问均由硬件监管,最大限度地降低转换管理成本并保证确定性——这也是所有Cortex-M处理器的标志性功能。

 

2、紧凑二阶布线处理器

Cortex-M23是一款简单的二阶布线冯诺依曼处理器(Von Neumann processor),但却足以支持全套ARMv8-M基线指令集。熟悉Cortex-M0+的用户一定可以迅速指出Cortex-M23使能效最大化的众多相似特色:WFI(等待中断)/WFE(等待事件)和睡眠/深度睡眠模式、退出时睡眠、SysTick定时器和选配的单循环IO等。

指令集共包含80条左右的拇指指令,其中大多数都是16位指令(为了尽可能提高代码的紧凑度),但仍有一些为了提升效率而设置的32位指令。Cortex-M23支持所有的ARMv6-M指令,以帮助设计师轻而易举地将代码从Cortex-M0和Cortex-M0+处理器转移至Cortex-M23。此外ARMv8-M基线指令集中还加入了多条新指令以提升条件运算、互斥访问、硬件划分运算和即时移动的效率。

3、强化的调试纠错与追溯能力

仅凭一台高效安全的32位处理器,尚无法成功实现字段部署,软件开发的成本通常超过生产和硬件IP的总和。Cortex-M23引入更多可配置的硬件断点和数据观测点,对比其他ARMv6-M处理器,可以助设计师更轻松地实现软件开发与调试。除了Cortex-M0+ 处理器中也配置的微型跟踪缓冲器(MTB),Cortex-M23还包括选配的嵌入式跟踪宏单元(ETM)。有了这些选配功能,设计师可以自行判断,究竟选择更加丰富全面的指令追溯能力;还是性价比更高、更加精简的指令追溯能力。

4、 用于任务隔离的存储保护单元

    

Cortex-M23还包括选配存储保护单元(MPU),基于全新PMSAv8架构打造,设计师使用起来非常方便。它可以在安全和非安全状态的任何一个状态下最多“保护”16个区域。每个区域都有一个基础地址、结束地址、访问许可和存储属性设置。在多任务环境下,操作系统可以在任务情境切换的过程中重新编程MPU,定义每个任务的存储许可,比如允许应用任务访问全部或部分应用数据和特定的周边设备。通过保护许可之外的数据免遭污染,并阻止未授权来源访问许可之外的周边设备,该MPU可以显著提升系统可靠性。

 

更易设置的存储区域

Cortex-M23的存储保护架构采用基线和限值比较器,用以定义存储区域,而此前使用的是二次方尺寸对齐比较器。这项改进简化了软件研发的复杂程度,而且在某些情况下,当区域尺寸不是完美的二次方尺寸时,还能减少存储浪费。

5、 全新ARMv8-M基线指令

对比ARMv6-M,Cortex-M23加入了许多全新指令,但丝毫没有折损Cortex-M系列处理器的超高能效。大多数新指令(除用于安全拓展外)都继承自ARMv7-M的架构指令集,进一步拓展Cortex-M23的功能,并与Cortex-M0+ 处理器形成鲜明区分。

5.1安全拓展

ARMv8-M采用的TrustZone安全技术为基线指令集补充了全新指令,包括安全网关(SG)、非安全支路(BXNS、BLXNS)以及测试目标(TT)指令。欲知详情,请参阅Yiu撰写的《ARMv8-M 架构介绍》。

5.2 仅执行代码生成

对仅执行(Execute-Only)代码存储区的支持也获得改善,新增加的即时移动指令(从ARMv7-M继承的MOV/MOVT)可以在仅执行代码中生成即时数据,让设计师仅凭2条指令便能生成32位值,且无需运行实际负载。

5.3代码优化

条件比较和支路指令(从ARMv7-M继承的CBNZ/CBZ)可以提高多项条件控制代码序列的性能。长偏移即时支路(从ARMv7-M继承的)可以将支路指向遥远的目标地址;硬件整数划分指令(从ARMv7-M继承的SDIV/UDIV)则可以减少除法运算的处理循环。

5.4排斥存取

    

Cortex-M23还从ARMv7-M继承了负载和储存的专用指令,提升Cortex-M23在多核系统中的一贯性,确保多个处理器以同样的机制处理信号。此外,为了对C11/C++11提供稳定支持,Cortex-M23还新增ARMv8-A(Thumb 32版本)的负载获取与储存释放指令,并包括这些指令的排斥存取变种。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

作为ARM Cortex-M家族的继承者 Cortex-M23与M33有哪五大特色? 的相关文章

  • jupyter notebook import torch报错

    create pytorch env 进入 pytorch 环境 conda activate pytorch name 安装jupyter notebook 安装ipykernel 用于安装kernel conda install ipy
  • 分享本地文件给其他人访问

    在想分享的文件夹下执行 python3 m http server 9999 https blog csdn net inter peng article details 121332985 为了保证不用每次都自己手动输入上述命令 xff0
  • C++ 文件读写fopen_s/fopen

    最好使用fopen s xff0c 使用fopen提示 not safe xff0c 二者区别如下 xff1a 1 fopen s的安全是在于比函数fopen多了溢出检测 2 在使用上 xff0c 函数fopen的返回值是文件指针 xff0
  • 齐次线性方程组和非齐次线性方程组

    定义 齐次线性方程组 等式右侧常数项全部为0 非齐次线性方程组 等式右侧常数项不全部为0 2 齐次方程组的求解 将系数矩阵化为行阶梯形矩阵 xff0c 记全为0的行数量为r 61 n R A 则非零行的首非零元所在列对应的就是约束变量 其余
  • C++求解汉明距离

    目录 汉明距离介绍汉明距离应用解法1 xff1a Brian Kernighan算法解法2解法3 汉明距离介绍 leetcode 461 汉明距离 xff0c 难度 xff1a 简单 两个整数之间的 汉明距离 指的是这两个数字对应二进制位不
  • Qt无边框窗口,自定义标题栏,可拉伸,拖动,Qt5/6通用,windows, linux通用

    项目链接 gitee xff1a https gitee com linghuzhangmen qtframeless 截图 Qt6 4可编译 主要功能 xff08 1 xff09 自定义标题栏 可拖动 拉伸 xff1b xff08 2 x
  • QToolButton用法记录

    QToolButton是工具按钮 可以设置图标 文本 也可以结合qss灵活设置样式 例如下面的效果 点击之后 代码如下 include widget h include ui widget h include lt QDebug gt Wi
  • C#不使用配置文件封装log4net

    先使用NuGet安装log4net 如下图 log4net封装类 span class token keyword using span span class token namespace log4net span class token
  • Qt QTextEdit使用总结

    目录 QTextEdit类 QTextEdit基本用法 1 创建QTextEdit对象 2 设置文本 3 获取文本 4 插入文本 5 设置字体 字号和颜色 6 设置对齐方式 7 撤销和重做 8设置只读模式 9 信号与槽 10 多行显示 QT
  • C++ Qt智能指针使用教程

    C Qt智能指针使用教程 contents 一 QSharedPointer用法 二 QWeakPointer 三 QScopedPointer 四 QPointer 五 Qt智能指针需要注意的坑 Qt提供了类似C 11智能指针的实现 用于
  • 编程题:有两个字符串str1和str2,写一个函数实现在str1中查找str2的初始位置,要求不区分大小写

    编程题 xff1a 有两个字符串str1和str2 xff0c 写一个函数实现在str1中查找str2的初始位置 xff0c 要求不区分大小写 思路 xff1a 1 xff1a 首先判断两个字符串的大小 xff0c 作初步比较 2 xff1
  • vscode对C++程序进行调试

    调试helloworld 先建立一个文件夹然后在文件夹 xff0c 创建一个test cpp 写下一下内容 span class token macro property span class token directive hash sp
  • C++模拟go defer

    go defer介绍 在Go语言中 defer语句用于在函数返回之前执行一些代码 这对于释放资源或记录函数执行时间非常有用 当函数中有多个defer语句时 它们将按照后进先出 LIFO 的顺序执行 以下是一个简单的示例 演示了如何使用def
  • C++设计模式13:责任链模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式7:桥接模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式8:组合模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式11:享元模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式15:解释器模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式16:迭代器模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式21:策略模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式

随机推荐

  • C++设计模式18:备忘录模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式20:状态模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • stm32直流电机驱动与测速

    stm32直流电机驱动与测速 说实话就现在的市场应用中stm32已经占到了绝对住到的地位 xff0c 51已经成为过去式 xff0c 32的功能更加强大 xff0c 虽然相应的难度有所增加 xff0c 但是依然阻止不了大家学习32的脚步 x
  • C++设计模式22:模板方法模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++ 设计模式23:访问者模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式17:中介者模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • C++设计模式14:命令模式

    C 23种设计模式系列文章目录 创建型模式 第1式 工厂方法模式 第2式 抽象工厂模式 第3式 单例模式 第4式 建造者模式 第5式 原型模式 结构型模式 第6式 适配器模式 第7式 桥接模式 第8式 组合模式 第9式 装饰器模式
  • GPS 和 RTK 定位

    refers xff1a https blog csdn net u012241570 article details 80802675 GPS定位的基本原理 测量出已知位置的卫星到地面GPS接收器之间的距离 xff0c 然后接收器通过与至
  • 关于GD32的CMakeLists以及gcc部分编译选项的解释

    set CMAKE SYSTEM NAME Generic cmake最低版本 cmake minimum required VERSION 3 0 0 工程名称 语言 project TEST PRJ NAME LANGUAGES C C
  • ulimit -s 指定栈上的内存上限

    转自 xff1a http blog chinaunix net uid 24439730 id 144094 html ulimit s 指定栈上的内存上限 xff0c 单位为KB xff0c 如 xff1a root 64 wdqf1w
  • C++头文件重复包含问题

    为了避免同一个文件被include多次 有两种方式 1 span class token macro property span class token directive keyword ifdef span SOMEFILE H spa
  • TCP(select函数模型)

    客户端代码 include lt stdio h gt include lt sys types h gt include lt sys socket h gt include lt arpa inet h gt include lt st
  • i2c那些坑

    origin http bbs ntpcb com simple t126695 html I2C 的那些坑 一般情况下 xff0c i2c 设备焊接没什么问题 xff0c 按照设备手册一步步来 xff0c 基本上就顺风顺水能够用起来 如果
  • stm32f103系列引脚定义-功能图

    器件功能和配置 STM32F103xx增强型 STM32F103xx增强型模块框架图 STM32F103xx增强型VFQFPN36管脚图 STM32F103xx增强型LQFP100管脚图 STM32F103xx增强型LQFP64管脚图 ST
  • 用数百行代码实现60亿设备互联:微软重金收购的ThreadX硬在何处

    origin https www sohu com a 315222502 485057 2019年4月 xff0c 微软收购了ThreadX的母公司Express Logic 公司 而ThreadX有几亿个设备在运行 1 物联网操作系统简
  • Cache和DMA一致性

    cache读必须要buffer是cacheline对齐的 DMA应该多多少少知道点吧 DMA Direct Memory Access 是指在外接可以不用CPU干预 xff0c 直接把数据传输到内存的技术 这个过程中可以把CPU解放出来 x
  • stm32几种低功耗模式的实现和差别

    origin https blog csdn net jian3214 article details 99818603 01 前言 按功耗由高到低排列 xff0c STM32具有运行 睡眠 停止和待机四种工作模式 上电复位后 STM32
  • threadx也开源了

    前一段时间ucos开源了 xff0c 今天微软收购的threadx也开源了 xff0c 行业剧变呀 xff01 xff01 xff01 2020 5 26
  • armv8-M 32bit处理器

    https www eet china com mp a14579 html https developer arm com ip products processors cortex m 最早的Cortex M0属于Armv6 M架构 x
  • 作为ARM Cortex-M家族的继承者 Cortex-M23与M33有哪五大特色?

    http news eeworld com cn xfdz article 2017011259937 html 集微网消息 xff0c ARM处理器在嵌入式设备领域的应用非常广泛 基于ARM Cortex处理器的片上系统 xff08 So