ARM處理器的浮點運算單元(FPU)
Float Point Unit,浮點運算單元是專用于浮點運算的協(xié)處理器,在計算領(lǐng)域,例如三角函數(shù)以及時域頻域變換通常會用到浮點運算。當(dāng)CPU執(zhí)行一個需要浮點數(shù)運算的程序時,有三種方式可以執(zhí)行:軟件仿真器(浮點運算函數(shù)庫)、附加浮點運算器和集成浮點運算單元。 區(qū)別于以往的ARM9處理器,目前基于ContexTM構(gòu)架的ARM處理均集成了浮點運算單元。如下圖Toradex ARM核心板產(chǎn)品所示,Nvidia TegraTM 2, TegraTM 3和 NXP/Freescale i.MX 6集成了VFPv3浮點運算單元。NXP/Freescale i.MX 7 集成了VFPv4浮點運算單元。ARM 浮點架構(gòu) (VFP) 為半精度、單精度和雙精度浮點運算中的浮點操作提供硬件支持。它完全符合 IEEE 754 標(biāo)準(zhǔn),并提供完全軟件庫支持,與 NEONTM 多媒體處理功能結(jié)合使用時,可增強圖像應(yīng)用程序的性能(如縮放、2D 和 3D 轉(zhuǎn)換、字體生成和數(shù)字過濾)。
本文引用地址:http://www.ex-cimer.com/article/201611/319521.htm基于Toradex Colibri T20 和 Colibri/Apalis T30使用FPU
Colibri T20 核心板帶有一個 VFPv3-D16 浮點運算單元(不帶 NEON) ,而 Colibri T30 和Apalis T30 帶有一個VFPv3-D32 (含有 NEON),通過以下的配置,將能夠有效的提高浮點運輸?shù)男?,運算量愈大愈明顯。
./ Windows CE 編譯器的浮點優(yōu)化
在 Visual Studio 2008環(huán)境中,你可以直接為上述核心板生成含有浮點處理器加速的代碼,請在您的工程中按照以下步驟進(jìn)行:
對于 WinCE 6:
- 打開 "Project" 菜單并選擇 "Properties".
- 選擇 "Configuration Properties : C/C++ : Advanced".
- 改變 "Enable floating point emulation" 為 "No".
- 改變 "Compile for architecture"為 "ARM5T /QRarch5t".
- 選擇 "Configuration Properties : C/C++ : Command Line : Additional Options".
- 添加 "/QRfpe-"to the set of options.
- 關(guān)閉對話框并選擇"OK".
對于 WinCE 7:
- 打開"Project"菜單并選擇"Properties".
- 選擇 "Configuration Properties : C/C++ : Command Line : Additional Options".
- 添加 "/QRfpe-" to the set of options.
- 關(guān)閉對話框并選擇"OK".
請注意,這些功能在Visual Studio 2005 不能被實現(xiàn)。
./ 性能比較舉例
通過Mark Riordan benchmark program我們做了一個簡單c代碼的性能比較程序。我們計算了這個循環(huán)所需要的時間如下,時間越短性能越好:
Module | Time | Compile Settings |
Colibri PXA320 806MHz | about 3400 ms | VS08 WinCE 6 Release 默認(rèn)配置. |
Colibri T20 1.0GHz | about 545 ms | VS08 WinCE 6 Debug默認(rèn)配置. |
Colibri T20 1.0GHz | about 315 ms | VS08 WinCE 6 Release默認(rèn)配置. |
Colibri T20 1.0GHz | about 80 ms | VS08 WinCE 6/7 Release settings編譯器的浮點優(yōu)化打開 |
Colibri T20 1.0GHz | about 80 ms | Linux optimized GCC settings編譯器的浮點優(yōu)化. |
Colibri T30 1.3GHz | about 60 ms | VS08 WinCE 6/7 Release settings編譯器的浮點優(yōu)化打開 |
評論