






















SIMD, Single-Instruction Multiple-Data 单指令多数据
https://www.arm.com/architecture/learn-the-architecture/m-profile
https://developer.arm.com/architectures/m-profile-architecture

v8-M系架构主要面向低功耗低成本嵌入式设备,提供了可选DSP拓展、可选FPU、可定制指令等特性,支持T32指令集子集 (Thumb-2等)
v8.1-M引入了Helium – M-Profile Vector Extension (MVE) 来支持矩阵加速计算。
About T32:
The T32 instruction set, known as Thumb in pre-Armv8 architectures, is a mixed 32- and 16-bit length instruction set that offers the designer excellent code density for minimal system memory size and cost.
T32 provides enhanced levels of performance, energy efficiency, and code density for a wide range of embedded applications. Designers can use both T32 and A32 instructions sets and therefore have the flexibility to emphasize performance or code size on a subroutine level as their applications require. T32 is supported across all architecture profiles, and is the only instruction set supported by the M-Profile architecture.
宏 __ARM_FEATURE_SIMD32
指令
un = __smlad(*(xn++), *(hn++), un);
smlad是 Dual 16-bit Signed Multiply with Addition of products and 32-bit accumulation.
用法:

适用架构:ARMv6及其以上 v7仅限于ARMv7E-M
This ARM instruction is available in ARMv6 and above.
This 32-bit Thumb instruction is available in ARMv6T2 and above. For the ARMv7-M architecture, it is only available in an ARMv7E-M implementation.
There is no 16-bit version of this instruction in Thumb.
文档 https://developer.arm.com/documentation/dui0473/m/arm-and-thumb-instructions/smlad
NEON主要面向高性能A系R系处理器,是高级SIMD拓展指令集,还提供了矩阵计算。
Arm Neon technology is an advanced Single Instruction Multiple Data (SIMD) architecture extension for the A-profile and R-profile processors.
文档:
https://developer.arm.com/documentation/dui0472/m/Using-NEON-Support/NEON-intrinsics-for-multiplication
使用:
如 vmlal_s16 矩阵乘法指令搭配行列向量类型 int32x4_t

Cortex-M33 https://developer.arm.com/documentation/100230/latest
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。