ARM探索之旅 | 一、带你认识ARM Cortex-M阵营

引言

笔者接触嵌入式领域软件开发已近五年,几乎用的都是 ARM Cortex M 内核系列的微控制器。在这五年期间,感谢C语言编译器的存在,让我不用接触汇编即可进行开发,但是彷佛也错过了一些风景,没有领域到编译器之美和CPU之美,所以决定周末无聊的休息时间通过寻找资料、动手实验、得出结论的方法来探索 ARM CPU 架构的美妙,以及C语言编译器的奥秘。(因为我个人实在是不赞同学校中微机原理类课程的教学方法)。

一、ARM CPU Architecture

ARM CPU架构是一个用于计算机处理器的精简指令集(RISC)架构家族。它是世界上最普遍的处理器架构,从传感器、可穿戴设备、智能手机、到超级计算机,每年会有数十亿基于ARM的设备出货。

ARM CPU架构基于RISC精简指令集,包括:

  • 一个统一的寄存器文件,其中指令不限于作用于特定的寄存器;
  • 一种加载或存储架构,其中数据处理仅对寄存器内容进行,而不是直接对内存内容进行;
  • 简单的寻址模式,所有加载或者存储模式仅由寄存器内容和指令字段决定。

根据不同的应用场景,ARM CPU架构分为:

架构定义 使用案例 实现(处理器内核)
A系列 复杂的电脑应用(服务器、 络设备、手机、TV) Cortex-A、Neoverse
R系列 用于需要实时响应的场景(严格的安全性应用、需要确定响应的应用、自动驾驶) Cortex-R
M系列 功耗和尺寸比较重要的设备,尤其嵌入式设备和IoT设备,比如小型传感器、通信模组、智能家居产品等 Cortex-M

在本系列文章中,我们将以Cortex M内核为主进行探索,不去考虑Cortex A 系列和Cortex R系列。

二、Cortex M内核

Cortex-M处理器家族基于ARM M 架构定义,为嵌入式系统提供了低延迟和高度确定的操作,主要包括的Cortex-M系列内核如下图:

3. Cortex M1

Cortex M1是首个专为FPGA上的实现而设计的处理器。使用 AMBA AHB-Lite 总线、三级流水线,支持部分Thumb/Thumb-2 指令集。

8. Cortex M33

Cortex-M33适用于需要有效安全性或者数字信 控制的嵌入式和IoT应用场景。Cortex-M33有非常多的可选特性,包括DSP扩展、用于硬件强制隔离的TrustZone安全特性、一个协处理器接口、内存保护单元、浮点计算单元。

Cotex-M33使用 Armv8-M Mainline 架构,拥有3级流水线,使用 2 个 AMBA5 AHB 总线(哈佛架构),支持Thumb/Thumb-2 指令集,支持8 to 256个中断优先级等级,可选的TrustZone for Armv8-M支持,DSP扩展中支持可选的 DSP/SIMD 指令,可选的协处理器接口支持。

推荐傻孩子大佬的一篇文章:深度剖析,简单粗暴,详解Cortex-M23/33特性。

9. Cortex M35P

Cortex-M35P处理器使用TrustZone for Armv8-M,具有硬件安全和可选的软件隔离特性。对于试图阻止物理篡改并希望获得更高级别安全认证的嵌入式开发人员,ARM提供了Cortex-M35P这款处理器。

Cotex-M35P使用 Armv8-M Mainline 架构,拥有3级流水线,使用 2 个 AMBA5 AHB 总线(哈佛架构),支持Thumb/Thumb-2 指令集,支持8 to 256个中断优先级等级,具有可选的协处理器接口支持、TrustZone for Armv8-M支持、DSP支持,并且具有物理安全特性,内置保护,防止入侵和非入侵式攻击

总结

认识了Cortex-M阵营都有哪些成员后,可以看到ARM Cortex-M 越来越注重安全性能和AI性能,这也给了我们一个发展方向,未来物联 的发展也不再是仅限于对接一下云平台上 数据这么简单,而是更多的提升物联 设备安全能力和AI能力,毕竟硬件设备遭遇入侵比电脑中毒更加可怕,如果端侧AI处理能力大大提升,则数据处理可直接在终端中完成,而不用去消耗不必要的云端算力~

至此,ARM探索之旅第一站就结束啦!下一站再会!

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年4月21日
下一篇 2021年4月21日

相关推荐