本轮学习过程主要集中在ARM NEON技术的学习,主要包括指令的学习、编程技巧的总结。
ARM NEON 技术是ARMv7体系结构的可选组件。NEON是针对高级媒体和信号处理应用程序以及嵌入式处理器64/128位混合SIMD技术,它是作为ARM内核的一部分实现的,但有自己的执行管道和寄存器组,该寄存器组不同于ARM核心寄存器组。
NEON支持整数、定点和单精度浮点SIMD运算。这些指令在ARM和Thumb-2中都可用。
NEON 扩展寄存器组:
--- 16-128bit 四字寄存器Q0~Q15
--- 32-64bit 双字寄存器D0~D31
许多NEON数据处理指令可具有正常指令、长指令、宽指令、窄指令和饱和指令变体形式。NEON指令可处理:
* 由以下内容构成的双字向量:
---8个8位元素
---4个16位元素
---2个32位元素
---1个64位元素
* 由以下内容构成的四字向量
---16个8位元素
---8个16位元素
--- 4个32位元素
--- 2个64位元素
正常指令
正常指令可对上述任意向量类型执行运算,并生成大小相同且类型通常与操作数向量相同的结果向量。通过将 Q 附加到指令助记符,可以指定正常指令的操作数和结果必须全部为四字。 这样指定后,如果操作数或结果不是四字,则汇编程序会生成错误。
长指令
长指令对双字向量操作数执行运算,并生成四字向量结果。 所生成的元素通常是操作数元素宽度的两倍,并属于同一类型。通过将 L 追加到指令助记符来指定长指令。
宽指令
宽指令对一个双字向量操作数和一个四字向量操作数执行运算。 此类指令生成四字向量结果。 所生成的元素和第一个操作数的元素是第二个操作数元素宽度的两倍。通过将 W 追加到指令助记符来指定宽指令。
窄指令
窄指令对四字向量操作数执行运算,并生成双字向量结果。 所生成的元素通常是操作数元素宽度的一半。
通过将 N 追加到指令助记符来指定窄指令。
饱和指令
通过在 V 和指令助记符之间使用 Q 前缀来指定饱和指令。
上一篇:ARM 之LCD和LCD控制器
下一篇:建立ARM交叉编译环境 (arm-none-linux-gnueabi-gcc with EABI)
推荐阅读最新更新时间:2024-11-16 22:40
设计资源 培训 开发板 精华推荐
- SWD离线烧写器
- AD9644-155KITZ,使用 AD9644BCPZ-155 的评估板,14 位,155 MSPS 模数转换器,高速串行输出接口
- 使用 Analog Devices 的 ADR430B 的参考设计
- DC1818A,使用 LTM8001 的演示板、36 VIN、5A 模块降压稳压器,具有 5 输出可配置 LDO 阵列
- 使用 Analog Devices 的 LTC3209EUF-1 的参考设计
- esp8266 游戏机
- 用于 P2020 QorIQ 电源架构处理器的 P2020DS-PC、P2020DS 开发系统
- SECO-1KW-MCTRL-GEVB:具有紧凑型智能功率模块 (IPM) 的 1kW 600V 工业电机控制电源板
- 使用 Analog Devices 的 LT1021DIN8-10 的参考设计
- 使用 Richtek Technology Corporation 的 RT7736BGE 的参考设计