Cortex-M内核详细介绍

1 篇文章 0 订阅

为了针对不同的应用领域,ARM公司把Cortex-M分为众多系列:

Cortex-M0/M0+/M1处理器基于ARMv6-M架构。这是一个只支持56条指令的小指令集,大部分指令是16位指令,但是,此类处理器中的寄存器和处理的数据长度是32位的。对于大多数简单的I/O控制任务和普通的数据处理,这些指令已经足够了。这么小的指令集可以用很少的电路门数来实现处理器设计,Cortex-M0 和 Cortex-M0+最小配置仅仅12K门。然而,其中的很多指令无法使用高位寄存器(R8 到R12), 并且生成立即数的能力有限。这是平衡了超低功耗和性能需求的结果。

M0:Cortex-M系列中的基础版本,绝大部分功能都不具备,性能较低,运算能力为0.9 DMIPS/MHz,特点是具有较好的低功耗特性。

  • 小型和低功耗:Cortex-M0 的硬件设计非常紧凑,消耗的功率也非常低,这使得它非常适合在功率和空间受限的应用中使用。

  • 简单的指令集:Cortex-M0 使用的是基于 Thumb 指令集的 ARMv6-M 指令集,该指令集比 ARM 的其他处理器系列使用的指令集更为简单,这使得程序员可以更容易地编写和优化代码。

  • 完全静态设计:Cortex-M0 的所有操作都可以在任何时钟频率下运行,这使得它可以很好地适应各种不同的系统需求和应用。

M0+:Cortex-M系列中的基础版本,绝大部分功能都不具备,性能较低,运算能力为0.9 DMIPS/MHz,特点是具有较好的低功耗特性。

M1:Cortex-M1是第一个专为 FPGA 中的实现设计的 ARM 内核。Cortex-M1 内核使 OEM 能够通过在跨 FPGA、ASIC 和 ASSP 的多个项目之间合理地利用软件和工具投资来节省大量成本。

M23:Cortex-M23是Cortex-M系列中最节能的,其使用的是ARMv8-M架构,与类似的Cortex-M0和Cortex-M0+产品在同一频率下的表现相比,Cortex-M23的代码执行效率分别要高上40%和30% 。直观的比如:Cortex-M23 = Cortex-M0/M0 + 硬件除法器 + 性能提升 +专门的栈溢出硬件检测+指令集不可忽略的小动作
+安全扩展(TrustZone for Armv8-M) +MPU开发者模型的友好化改进。

Cortex-M23的指令集是基于ARMv8-M的Baseline子规范,它是ARMv6-M的超集。扩展的指令包括:

• 硬件除法指令

• 比较和跳转指令,32位跳转指令

• 支持TrustZone安全扩展的指令

• 互斥数据访问指令(通常用于信号量操作)

• 16位立即数生成指令

• 载入获取及存储释放指令(支持C11)

在某些情况下,这些增强的指令集可以提高处理器性能,并且对包含多个处理器的SoC设计有用(例如,互斥访问对多处理器的信号量处理有帮助

M3:Cortex-M3处理器是基于ARMv7-M架构的处理器,支持更丰富的指令集,包括许多32位指令,这些指令可以高效的使用高位寄存器。Cortex-M3是目前最主流的ARM内核选型,这款内核具有非常均衡的能力:较高的性能,较低的功耗,较低的成本,是一款性价比非常高的ARM内核。

(例如,支持若干条需要多个时钟周期执行的MAC指令,还有饱和运算指令)。最后,这些32位指令允许用单个指令对多个数据一起做桶型移位操作。

支持更丰富的指令导致了更大的面积成本和更高的功耗。典型的微控制器,Cortex-M3的电路门数是Cortex-M0 和 Cortex-M0+两倍还多。但是,处理器的面积只是大多数现代微控制器的很小的一部分,多出来的面积和功耗经常不那么重要。

M4 :比较着M3的内核来说,M4内核添加了浮点运算单元,如果应用需要大量浮点数据的运算的时候,M4内核会大大提高处理器性能和运算速度,比如项目是平衡车或者平衡器的时候选择M4比较好。Cortex-M4在很多地方和Cortex-M3相同:流水线,编程模型。Cortex-M4支持Cortex-M3的所有功能,并额外支持各种面向DSP应用的指令,像SIMD, 饱和运算指令,一系列单周期MAC指令(Cortex-M3只支持有限条MAC指令,并且是多周期执行的),和可选的单精度浮点运算指令。

Cortex-M4的SIMD操作可以并行处理两个16位数据和4个8位数据。

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

直观的比如:Cortex-M33 =Cortex-M3/M4 + 性能提升 +专门的栈溢出硬件检测+指令集不可忽略的小动作
+安全扩展(TrustZone for Armv8-M)+MPU开发者模型的友好化改进

• DSP指令(Cortex-M4 和Cortex-M7支持的)是可选的

• 单精度浮点运算指令是可选的,这些指令是基于FPv5的,并且比Cortex-M4多几条。

Cortex-M33也支持那些ARMv8-M Mainline引入的新指令:

• 支持TrustZone安全扩展的指令

• 载入获取及存储释放指令(支持C11)

  • 安全:Cortex-M33集成了TrustZone技术,这是一种硬件安全技术,可以创建安全和非安全两个操作环境,增强了系统的安全性。
  • 浮点运算:Cortex-M33处理器支持单精度浮点运算,可以处理复杂数值运算。
  • 协处理器接口:Cortex-M33还提供了一个协处理器接口,允许设计者添加自定义的协处理器,以提高特定应用的性能。
    低功耗:Cortex-M33设计了多种低功耗模式,适应各种低能耗应用场景。

Cortex-M33和Cortex-M7都是ARM公司的高性能微控制器处理器,但是它们在架构、性能、安全性等方面存在一些差异。

  • 架构:Cortex-M33基于ARMv8-M架构,而Cortex-M7则基于ARMv7-M架构。这意味着Cortex-M33支持ARM的TrustZone技术,能够为嵌入式设备提供更好的安全性;而Cortex-M7不支持TrustZone技术

  • 性能:Cortex-M7的性能更强。它采用了六级流水线和双发射超标量架构,可以在一个时钟周期内执行两条指令。相比之下,Cortex-M33则采用了四级流水线架构,每个时钟周期只能执行一条指令。

  • 浮点运算:Cortex-M7处理器可以进行双精度浮点运算,而Cortex-M33只支持单精度浮点运算

  • 缓存:Cortex-M7有分离的指令和数据缓存,可以更有效地减少处理器和内存之间的延迟,提高处理器的性能。而Cortex-M33则没有这个功能

  • 协处理器接口:Cortex-M33提供了一个协处理器接口,允许设计者添加自定义的协处理器,以提高特定应用的性能;而Cortex-M7没有这个功能。

  • 低功耗:虽然Cortex-M7的性能更强,但Cortex-M33在低功耗模式下的性能更优,更适合于电池供电的设备。Cortex-M33比Cortex-M4的性能大约高20%,并达到了1.5 DMIPS/MHz和4.02 CoreMark/MHz。

M35P:Cortex-M35P是一款高性能处理器,可帮助嵌入式安全开发人员阻止物理篡改并实现更高级别的安全认证。它是Cortex-M系列中的第一款具有设计防篡改功能的处理器。它还包括用于软件隔离的ARM TrustZone技术,使设计人员可以更轻松,更快速地将多层支付或通过电信认证的安全性嵌入到任何设备的核心。Cortex-M35P有的两个安全知识产权CryptoCell和CryptoIsland都可以使用技术来抵御各种攻击。

  • 处理器核心:Cortex-M35P 是基于 Cortex-M33 核心的一个增强版本,它在 Cortex-M33 的基础上增加了对物理攻击的防护,比如针对功耗分析和电磁辐射分析的攻击。
  • 性能:Cortex-M35P 具有与 Cortex-M33 类似的性能特点。
  • 安全性:除了支持 TrustZone 技术外,Cortex-M35P 还加入了防护物理攻击的特性,使其更适合于需要抵御复杂物理攻击的安全敏感应用。
  • 强化安全特性:Cortex-M35P 的核心特点是其增强的硬件安全性,包括抗侧信道攻击的特性。

Cortex-M33 和 Cortex-M35P 具有许多相似之处,如都支持 TrustZone 安全技术,但 Cortex-M35P 提供了额外的物理攻击防护,使其在安全需求较高的应用中更为合适。如果你的应用场景包括支付系统、安全认证或者其他需要增强安全特性的领域,那么 Cortex-M35P 可能是更好的选择。而对于一般的嵌入式应用,Cortex-M33 已经提供了相当强大的功能和安全性。

M55:Cortex-M55 处理器是第一个支持 Armv8.1-M 架构的Cortex-M 处理器。与同系列产品相比, Cortex-M55内部集成了 Helium 技术(也称为 M-Profile Vector Extension,MVE),Helium技术用于Cortex-M内核的M-Profile矢量扩展,为其提供高达15倍的机器学习性能和高达5倍的信号处理能力。基于 Cortex-M55的产品在信号处理和AI应用中体现了极大的优势,性能和能耗有了显著的提高。

M7:Cortex-M7处理器是一款高效、高性能的嵌入式处理器,具有低中断延迟、低成本调试和向后兼容现有Cortex-M配置文件处理器的特点。处理器有一个有序的超标量管道,这意味着许多指令可以双重发出。

Cortex-M7支持的指令集和Cortex-M4相似,添加了:
• 浮点数据架构是基于FPv5的,而不是Cortex-M4的FPv4,所以Cortex-M7支持额外浮点指令

• 可选的双精度浮点数据处理指令

• 支持缓存数据预取指令(PLD)

Cortex-M7的流水线和Cortex-M4的非常不同。Cortex-M7是6级双发射流水线,可以获得更高的性能。多数为Cortex-M4设计的软件可以直接运行在Cortex-M7上。但是,为了充分利用流水线差异来达到最好的优化,软件需要重新编译,并且在许多情况下,软件需要一些小的升级,以充分利用像Cache这样的新功能

Cortex-M7采用了一种名为Superscalar的技术,这种技术可以在一个时钟周期内执行多条指令,大大提高了处理器的性能。同时,Cortex-M7还支持双精度浮点运算,使其具备了处理复杂数值运算的能力。

Cortex-M7处理器还具有高速缓存技术,可以有效减少处理器和内存之间的延迟,进一步提高系统的性能。此外,它还支持错误检测和纠正技术,可以增强系统的可靠性和鲁棒性。

在应用方面,Cortex-M7被广泛应用于高端的嵌入式系统,如汽车电子、航空航天、工业自动化以及高端消费电子产品等领域。

Cortex-M7Cortex-M4都是ARM公司的高性能微控制器处理器,但它们之间还是存在一些重要的差异

  • 1.性能:Cortex-M7提供了更高的运算性能。它具有六级流水线和双发射超标量架构,可以在一个时钟周期内执行两条指令,而Cortex-M4采用三级流水线,每个时钟周期只能执行一条指令。

  • 2.浮点运算:Cortex-M7处理器可以进行双精度浮点运算,而Cortex-M4只支持单精度浮点运算

  • 3.缓存:Cortex-M7有分离的指令和数据缓存,可以更有效地减少处理器和内存之间的延迟,提高处理器的性能。而Cortex-M4则没有这个功能。

  • 4.错误检测和纠正:Cortex-M7支持错误检测和纠正,可以增强系统的可靠性和鲁棒性,而Cortex-M4则不支持。

M85:Cortex-M85是Cortex-M 系列中中性能最强的 CPU(没有之一),其性能超过 6 CoreMark/MHz 和 3 DMIPS/MHz,非常适合高性能物联网、工业控制和汽车应用。同时,Cortex-M85 采用了 Arm Helium 技术,机器学习和数字信号处理 (DSP) 能力较 Cortex-M7有了显著提升。这些优势使其成为注重计算性能的微控制器 (MCU) 应用中的强大内核。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值