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

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

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值