当前位置:首页 > 公众号精选 > wenzi嵌入式软件
[导读]引言笔者接触嵌入式领域软件开发已近五年,几乎用的都是ARMCortexM内核系列的微控制器。在这五年期间,感谢C语言编译器的存在,让我不用接触汇编即可进行开发,但是彷佛也错过了一些风景,没有领域到编译器之美和CPU之美,所以决定周末无聊的休息时间通过寻找资料、动手实验、得出结论的...

引言

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

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

一、Arm指令集架构

ARM指令集架构简称为ISA,支持三种指令集:A64、A32、T32。

  • A64指令集在 Armv8-A 中,用于支持64位架构
  • A32指令集在 Armv6 和 Armv7架构中,称为ARM指令集
  • T32指令集在 Armv6 和 Armv7架构中,称为Thumb指令集

A32 Instruction Set

A32指令集,在 armv8 之前的架构中也被称为 「ARM 指令集,指令长度固定32位,4字节对齐」

T32 Instruction Set

T32指令集,在 armv8 之前的架构中被称为 Thumb 指令集。

最初,ARM 指令集的长度固定为 32 位,为了改善用户代码的代码密度,「Thumb 指令集被设计为 16 位指令集」,开发者可以同时使用ARM指令集和Thumb指令集来降低代码大小。但这是两套指令集,两个运行状态,需要在ARM状态和Thumb状态之间来回切换,非常麻烦。

随着时间的推移和Thumb-2技术的引入,「作为Thumb指令集的补充,ARM指令集的大部分功能都被纳入到了Thumb指令,Thumb指令集演化为16位和32位混合长度指令集,称为Thumb-2指令集」

Thumb-2指令集的诞生,使得编译器可以在单个指令集中平衡性能和代码的大小,提供了极好的代码密度,最小化系统内存大小和成本。

二、Arm架构扩展

ARM还提供了一系列的架构扩展用于满足下一代处理器的需求,这些扩展为ARM处理器提供了一些新的功能。

DSP扩展

DSP for Cortex-M 为 ARM Cortex-M 处理器提供了高性能的「信号处理能力」,用于声音、音频、传感器中枢、机器学习等场景, 不需要额外的 DSP 设备即可完成信号处理的工作。

带有 DSP 扩展的处理器包括Cortex-M4、Cortex-M7、Cortex-M33、Cortex-M35P、Cortex-M55处理器。

DSP扩展指令在 Thumb 指令集和可选的浮点运算单元的基础上添加,使得在为Cortex-M处理器添加数字信号处理的同时,保持了原有Cortex-M编程模型的易用性。

SIMD指令

这些带有DSP扩展的 Cortex-M 处理器,还提供了 「SIMD 指令」来操作8位或者16位的整数。

SIMD表示单指令多数据,在所有寄存器仍是32位的基础上,「SIMD指令可以同时操作2个16 bit 的值或者4个8 bit 的值」。工作于8位或16位数据的指令对于处理诸如视频数据或者音频数据的时候非常有用,因为这些数据不需要32位的宽度,SIMD指令提供了并行处理这些数据的能力。

浮点单元

ARM浮点单元技术为「半精度、单精度和双精度的浮点运算」提供了高性能和高效率的硬件支持。

Arm浮点单元使用完整的软件库支持,完全兼容IEEE-754标准,特别适用于对浮点计算精度要求比较高的应用场景。

浮点数据类型的应用场景如下:

  • 汽车控制程序
  • 3D图形
  • 工业控制系统
  • 运动控制系统

Helium

ARM Helium 技术是ARM Cortex-M处理器系列的 M配置向量扩展,简称MVE,该技术是Armv8.1-M架构的扩展,为小型嵌入式设备的机器学习应用提供给了显著的性能提升。

Cortex-M55是首款具有该扩展的处理器。

Helium技术添加了150多个新的标量和向量指令,其中整数Helium技术使8位、16位、32位固定点数据的高效计算成为可能,16位和32位固定点格式在传统的信号处理中广泛应用,比如音频处理,而8位固定点格式在机器学习处理中很重要,比如神经网络计算,图像处理等。

同样,Helium也支持浮点数据类型,包括单精度浮点数(32位)和半精度浮点数(16位)。

三、Cortex-M用什么指令集

讲述了ARM的基本指令集和扩展指令集,是时候来回答我们提出的问题:ARM Cortex-M用什么指令集?

「ARM Cortex-M 全部系列只支持唯一的指令集:Thumb指令集或Thumb-2指令集。确切的来说,是支持T32指令集。」

在Cortex-M阵营众多的成员中,每个处理器对 Thumb/Thumb-2 指令集的支持情况不同,「大部分处理器都是支持 Thumb/Thumb-2 指令集的子集」

Cortex-M0、Cortex M3、Cortex M4、Cortex M7系列支持的Thumb指令集如图所示。Cortex-M23和Cortex-M33内核支持的Thumb指令如下图所示,图中黄色部分表示ArmV8-M系列新增的指令:

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


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

电路分析计算是电子科技领域中的一项重要技术,它涉及电流、电压、功率等物理量的分析和计算,为电路的设计、优化和故障排除提供了理论支持。本文将详细介绍电路分析计算的基本概念、常用方法以及科技应用,帮助读者更深入地了解这一领域...

关键字: 电路分析 支路电流法

业内消息,近日Alphabet旗下谷歌公司发言人表示为控制成本正在进行最新裁员,但具体人数不详。该发言人表示,裁员并非全公司范围,受影响的员工将能够申请内部职位,但没有具体说明受影响的员工人数或涉及的团队。

关键字: 谷歌 裁员

几天前,以南印度组织零售商协会(ORA)为代表的20多家零售连锁店和4300家商店宣布将从5月1日起停止销售一加设备。4月17日,全印度移动零售商协会(AIMRA)代表印度15万多家线下智能手机零售商通知一加,其成员正在...

关键字: 印度 一加 小米 Poco

业内消息,近日光刻机制造商阿斯麦(ASML)公布了2024年第一季度业绩,财报显示,该公司当季总净销售额53亿欧元,环比下降27%;毛利率51.0%,上季度为51.4%;净利润12亿欧元(当前约92.4亿元人民币),环比...

关键字: 光刻机 ASML

近日有韩媒称,由于薪资谈判破裂,劳资双方未能缩小对涨薪的意见分歧,三星电子全国工会(NSEU)即日起将发起公司成立以来首次集体行动,工会当天在华城市(Hwaseong)京畿道华城园区的组件研究大楼(DSR)前举行文化活动...

关键字: 三星

昨天上午,华为终端官微宣布全新重磅新机开售,约一分钟线上即告售罄,线下门店排起长队,气势丝毫不输苹果,和 Mate 60 Pro 一样没有发布会,这次官方同样推出了 “HUAWEI Pura 70 系列 先锋计划”,可以...

关键字: 麒麟芯片 华为

针对光伏优化器(MPPT)的非隔离DC-DC升压电路,推荐瑞森半导体低压MOS-SGT系列。极低导通电阻,低损耗,高雪崩耐量,高效率,非常适合高频应用。

关键字: 光伏优化器 MPPT

业内消息,近日东芝正在计划在日本裁员5000名员工,相当于日本员工总数的7%左右,这是其加速重组的最新举措。据知情人士透露,裁员的主要对象是总部的后勤部门,同时该公司将寻求员工自愿退休。

关键字: 裁员 东芝

昨天海能达发布公告,称针对产品禁售等判令提起的上诉结果已出:法院决定暂停执行一审法院对公司颁布的产品禁售令及罚款等,公司将与全球合作伙伴紧密合作,即刻恢复正常的商业活动并启动相关产品的销售。

关键字: 禁售令 海能达

业内消息,华为Pura 70第一批现货已到总代,部分经销商也已完成打款,等待华为打响开售“发令枪”。

关键字: 华为Pura 70 华为
关闭
关闭