NEON----ARM通用 SIMD 引擎

一、NEON

1、簡介
NEON是適用於ARM Cortex-A系列處理器的一種128位SIMD(Single Instruction, Multiple Data,單指令、多數據)擴展結構。ARM® NEON™ 通用 SIMD 引擎可有效處理當前和將來的多媒體格式,從而改善用戶體驗。
NEON 技術可加速多媒體和信號處理算法(如視頻編碼/解碼、2D/3D 圖形、遊戲、音頻和語音處理、圖像處理技術、電話和聲音合成),其性能至少爲 ARMv5 性能的 3 倍,爲 ARMv6 SIMD 性能的 2 倍。

2、如何使用 NEON
OpenMAX DL 庫: 加速 AV 編解碼器的建議方法
以源格式釋放的庫,在 ARM 網站上免費提供
支持以下格式:MPEG-4 簡單配置文件、H.264 基準、JPEG、MP3、AAC
支持以下功能:FIR、IIR、FFT、點積、色彩空間轉換、de-blocking、de-ringing、旋轉、縮放、合成
a、矢量化編譯器
使用現有源代碼自動搜索 NEON SIMD
受 ARM RealView 開發套件(v3.1 Pro 及更高版本)支持
在 2007q3 及更高版本中受 gcc 支持
b、內部函數
C 函數調用接口至 NEON 操作
支持 NEON 支持的所有數據類型和操作
在 ARM RealView 開發套件(3.1 及更高版本)和 gcc 2007q3 及更高版本中受支持
c、彙編器
針對確實需要在最低級別進行優化的用戶
在 ARM 的 RealView 開發套件(3.1 及更高版本)和 gcc 2007q3 及更高版本中受支持

二、針對多媒體的 SIMD 擴展
當前的智能手機和 Internet 設備必須提供高級媒體和圖形性能,才具有競爭力。ARMv6 和 ARMv7 體系結構中的 SIMD 擴展改進了此類性能。

ARM SIMD 媒體擴展隨 ARMv6 體系結構引入,從 ARM1136 開始,持續經過 ARM1176™、ARM11™ MPCore™、Cortex™-A5、Cortex-A8 和 Cortex-A9。這些 SIMD 擴展增強了基於 ARM 處理器的 SoC 的處理能力,而實際上不會增加功耗。SIMD 擴展已經過優化,可適用於衆多軟件應用領域,包括視頻和音頻編解碼器,這些擴展將性能提高了將近 75% 或更多。

與具有單獨可編程 DSP 或加速器的體系結構相比,SIMD 擴展可通過提供一個工具鏈和處理設備來簡化應用軟件的開發過程。該工具鏈環境可縮短上市時間,因爲軟件在產品開發過程中扮演着越來越重要的角色。SIMD 擴展對操作系統 (OS) 完全透明,因此可以使用現有 OS 端口。可對 OS 上運行的新應用程序進行編寫,以顯式使用 SIMD 擴展,從而提供額外功率/性能優勢。

與 ARMv6 體系結構中的 32 位寬 SIMD 相比,NEON™ 技術是根據 SIMD 概念構建的,該技術採用一個專用模塊提供 128 位寬的矢量操作。ARMv7 架構中引入了 NEON 技術,該技術只適用於 ARM Cortex-A 類處理器。

三、DSP 擴展
ARM DSP 指令集擴展增加了高性能應用中 ARM 解決方案的 DSP 處理能力,同時通過便攜式、電池電源設備提供所需的低能耗。DSP 擴展已經過優化,適用於衆多軟件應用(包括伺服馬達控制、Voice over IP (VOIP) 和視頻/音頻編解碼器),其中此擴展可增強 DSP 性能,使其能夠有效處理所需任務。

用於 ARM 架構的編譯器可以使用這些 DSP 擴展來改進標準 C 和 C++ 軟件的代碼生成過程,或者允許軟件開發人員要求通過內部函數或內聯彙編代碼顯式使用這些擴展。

ARM DSP 擴展改進了 DSP 性能,且無需非常高的時鐘頻率。幾乎不增加典型實現中的功耗即可獲得此性能。DSP 擴展廣泛應用於智能手機以及需要大量信號處理的類似嵌入式系統,從而避免使用其他硬件加速器。DSP 擴展可與 32 位 ARM 和 16 位 Thumb® 指令集完全兼容,從而確保所有現有操作系統和應用程序代碼都可在支持 DSP 且基於 ARM 處理器的設備上重用。

發佈了33 篇原創文章 · 獲贊 30 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章