DSP扩展forCortex-M为ARMCPU架构的美妙奥秘

简介

从事嵌入式领域软件开发近五年,几乎都是ARM Cortex M核系列的微控制器。这五年,多亏有C语言编译器的存在,我不用碰汇编也能开发,但我好像错过了一些风景,编译器的美和CPU的美都没有领域,所以我决定度过无聊的周末假期。查找信息、动手实验和结论,以探索 ARM CPU 架构的美妙之处和 C 编译器的秘密。 (因为我个人不认同学校计算机原理课的教学方式)。

一、Arm 指令集架构

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

A32 指令集

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

T32 指令集

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

最初,ARM 指令集的长度固定为 32 位。为了提高用户代码的代码密度,“Thumb 指令集被设计为 16 位指令集”,开发者可以同时使用 ARM 指令集和 Thumb 指令集来减少代码大小。但是这是两组指令,两种操作状态,在ARM状态和Thumb状态之间来回切换非常麻烦。

随着时间的推移和Thumb-2技术的引入,“作为对Thumb指令集的补充,ARM指令集的大部分功能已经被纳入到Thumb指令中16/32位微机原理,汇编语言及接口技术教程,而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 处理器。

在Thumb指令集和可选浮点运算单元的基础上增加了DSP扩展指令,使得在保持原有Cortex-M易用性的同时16/32位微机原理,汇编语言及接口技术教程,可以在Cortex-M处理器中加入数字信号处理编程模型性。

SIMD 指令

这些带有 DSP 扩展的 Cortex-M 处理器还提供“SIMD 指令”以对 8 位或 16 位整数进行操作。

SIMD 代表单指令多数据。在所有寄存器仍为 32 位的基础上,“SIMD 指令可以同时操作两个 16 位值或四个 8 位值”。

处理 8 位或 16 位数据的指令在处理视频或音频数据等数据时非常有用,因为这些数据不需要 32 位的宽度。 SIMD 指令提供了并行处理这些数据的能力。

浮点单元

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

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

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

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 探索之旅的第二站就结束了!下一站见!

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论