×
单片机 > 单片机程序设计 > 详情

ARMv7体系结构学习笔记(一)

发布时间:2020-09-03 发布时间:
|

本轮学习过程主要集中在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 前缀来指定饱和指令。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
MSP430F5529 上手小例程2