文章目录
- ARM NEON
- NEON 向量寄存器
- NEON 寄存器使用方式
- NEON 寄存器的视图
- NEON 寄存器别名
- NEON 寄存器的用途
ARM NEON
在ARMv8架构中,引入了一组新的寄存器,称为向量寄存器(Vector Registers),用于支持高效的向量和浮点计算。这些寄存器是SIMD(Single Instruction, Multiple Data)指令的一部分,使得ARM架构能够在单个指令周期内对多个数据进行并行计算,极大地提升了处理速度,特别适合于图像处理、数字信号处理、加密解密等需要大量数学运算的场景。
NEON
指令集支持8位,16位,32位和64位有符号和无符号整型。NEON
还支持 32 位单精度浮点元素,以及 8 位和 16 位多项式。
NEON 向量寄存器
在ARMv8-A架构中,共有32个向量寄存器,编号从v0
到v31
。每个向量寄存器的大小为128位。这些寄存器可以用于存储浮点数、整数或SIMD向量数据。
NEON 寄存器使用方式
- 浮点数:当作为浮点数寄存器使用时,每个向量寄存器可以存储:
- 两个64位双精度浮点数(double-precision),或
- 四个32位单精度浮点数(single-precision)。
- 整数和SIMD向量:当用于存储整数或作为SIMD操作的一部分时,向量寄存器可以按照不同的方式来划分,例如: