日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[architecture]-armv8-aarch64种的SIMD/FP指令介绍

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [architecture]-armv8-aarch64种的SIMD/FP指令介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

快速鏈接:
.
👉👉👉 個人博客筆記導讀目錄(全部) 👈👈👈

目錄

        • 1、hardware floating-point 和 Software floating-point
        • 2、armv8中的浮點型介紹
        • 3、擴展寄存器的map圖
        • 4、存儲指令對浮點型寄存器的操作
        • 5、SIMD和浮點型的對比
        • 參考

1、hardware floating-point 和 Software floating-point

在 ARMv8 中,hardware floating-point 是架構中的部分。AArch32 狀態支持 Software floating-point,但 AArch64 狀態不支持 Software floating-point

ARM 系統可能具有:

  • VFP 協處理器,即支持hardware floating-point
  • 沒有浮點硬件,即支持hardware floating-point

如果您為帶有硬件 VFP 協處理器的系統進行編譯,則 ARM 編譯器會使用它。
如果您為沒有協處理器的系統編譯,編譯器會在軟件中實現計算。例如,編譯器選項-mfloat-abi=hard選擇硬件 VFP 協處理器,該選項-mfloat-abi=soft指定算術運算將在軟件中執行,而不使用任何協處理器指令。

2、armv8中的浮點型介紹

浮點寄存器組與 SIMD 寄存器使用相同的擴展寄存器,且是banked的。
在 AArch32 狀態下,除了添加了一些符合 IEEE 754 標準的指令外,浮點支持與 VFPv4 基本沒有變化。

AArch64 狀態的浮點架構也是基于 VFPv4。主要區別如下:

  • 在 AArch64 狀態下,128 位 SIMD 和浮點寄存器的數量從16個增加到32個。
  • 單精度寄存器不再打包成雙精度寄存器,因此寄存器 Sx為 D x[31:0]。
  • 浮點硬件的存在是強制性的,因此不支持軟件浮點鏈接。
  • AArch64 狀態不支持早期版本的浮點架構,例如 VFPv2、VFPv3 和 VFPv4。
  • AArch32 或 AArch64 狀態不支持 VFP 矢量模式。對向量浮點使用高級 SIMD 指令。
  • 添加了一些新說明,包括:
    半精度和雙精度之間的直接轉換。
    加載和存儲對,替換加載和存儲多個。
    融合乘加和乘減。
    IEEE 754-2008 兼容性說明

3、擴展寄存器的map圖

  • 32個 128-bit registers V0-V31. (也叫q0-q31,其實是q0-q31直接map到了v0-v31)
  • 32個 64-bit registers D0-D31.
  • 32個 32-bit registers S0-S31.
  • 32個 16-bit registers H0-H31.
  • 32個 8-bit registers B0-B31.

4、存儲指令對浮點型寄存器的操作

例如:

  • LDP Qt1, Qt2, addr //將兩個連續的四字從addr尋址的內存中加載到128位Qt1和Qt2中
  • STP Qt1, Qt2, addr //將128位Qt1和Qt2的兩個連續四字存儲到addr尋址的內存中。


(使用是咧)

5、SIMD和浮點型的對比

基本概念:

  • VFP : 是指浮點型運算器的架構,如vfpv3 vfpv4,目前在armv8上使用的都是vfpv4
  • FP : 是指hardware float-point 指令
  • SIMD :是指SIMD指令
  • NEON :也一種提供SIMD指令的技術

補充NEON簡介
NEON :Arm Neon 技術是適用于 Arm Cortex-A 和 Cortex-R 系列處理器的高級單指令多數據 (SIMD : Single Instruction Multiple Data) 的架構擴展。Neon 技術旨在通過加速音頻和視頻編碼和解碼、用戶界面、2D/3D 圖形和游戲來改善多媒體用戶體驗。Neon 還可以加速信號處理算法和功能,以加快音頻和視頻處理、語音和面部識別、計算機視覺和深度學習等應用的速度。

做為一名軟件工程師,您可以通過以下方式使用ARM NEON技術

  • Neon intrinsics
  • Neon-enabled libraries
  • Auto-vectorization by your compiler
  • Hand-coded Neon assembler

總結: 我猜的哈,VFP是一個運算器(相當于ALU那種),它操作的是v0-v31寄存器(也可以說是q0-q31), 進行浮點型運算。而NEON技術,又提供了一些SIMD指令,也是使用VFP運算器,也是使用V0-V31寄存器。


參考

About floating-point support
Floating-point hardware
Extension register bank mapping in AArch64 state
NEON

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的[architecture]-armv8-aarch64种的SIMD/FP指令介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。