新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM處理器的浮點運算單元(FPU)

        ARM處理器的浮點運算單元(FPU)

        作者: 時間:2016-11-21 來源:網絡 收藏
        浮點運算單元(FPU)簡介

        Float Point Unit,浮點運算單元是專用于浮點運算的協處理器,在計算領域,例如三角函數以及時域頻域變換通常會用到浮點運算。當CPU執行一個需要浮點數運算的程序時,有三種方式可以執行:軟件仿真器(浮點運算函數庫)、附加浮點運算器和集成浮點運算單元。 區別于以往的ARM9處理器,目前基于ContexTM構架的ARM處理均集成了浮點運算單元。如下圖Toradex ARM核心板產品所示,Nvidia TegraTM 2, TegraTM 3和 NXP/Freescale i.MX 6集成了VFPv3浮點運算單元。NXP/Freescale i.MX 7 集成了VFPv4浮點運算單元。ARM 浮點架構 (VFP) 為半精度、單精度和雙精度浮點運算中的浮點操作提供硬件支持。它完全符合 IEEE 754 標準,并提供完全軟件庫支持,與 NEONTM 多媒體處理功能結合使用時,可增強圖像應用程序的性能(如縮放、2D 和 3D 轉換、字體生成和數字過濾)。

        本文引用地址:http://www.104case.com/article/201611/319521.htm

        基于Toradex Colibri T20 和 Colibri/Apalis T30使用FPU

        Colibri T20 核心板帶有一個 VFPv3-D16 浮點運算單元(不帶 NEON) ,而 Colibri T30 和Apalis T30 帶有一個VFPv3-D32 (含有 NEON),通過以下的配置,將能夠有效的提高浮點運輸的效率,運算量愈大愈明顯。

        ./ Windows CE 編譯器的浮點優化

        在 Visual Studio 2008環境中,你可以直接為上述核心板生成含有浮點處理器加速的代碼,請在您的工程中按照以下步驟進行:

        對于 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.
        • 關閉對話框并選擇"OK".

        對于 WinCE 7:

        • 打開"Project"菜單并選擇"Properties".
        • 選擇 "Configuration Properties : C/C++ : Command Line : Additional Options".
        • 添加 "/QRfpe-" to the set of options.
        • 關閉對話框并選擇"OK".

        請注意,這些功能在Visual Studio 2005 不能被實現。

        ./ 性能比較舉例

        通過Mark Riordan benchmark program我們做了一個簡單c代碼的性能比較程序。我們計算了這個循環所需要的時間如下,時間越短性能越好:

        Module

        Time

        Compile Settings

        Colibri PXA320 806MHz

        about 3400 ms

        VS08 WinCE 6 Release 默認配置.

        Colibri T20 1.0GHz

        about 545 ms

        VS08 WinCE 6 Debug默認配置.

        Colibri T20 1.0GHz

        about 315 ms

        VS08 WinCE 6 Release默認配置.

        Colibri T20 1.0GHz

        about 80 ms

        VS08 WinCE 6/7 Release settings編譯器的浮點優化打開

        Colibri T20 1.0GHz

        about 80 ms

        Linux optimized GCC settings編譯器的浮點優化.

        Colibri T30 1.3GHz

        about 60 ms

        VS08 WinCE 6/7 Release settings編譯器的浮點優化打開




        評論


        技術專區

        關閉
        主站蜘蛛池模板: 望江县| 蕲春县| 丹寨县| 封开县| 泽普县| 淄博市| 西宁市| 易门县| 南充市| 沛县| 外汇| 连州市| 得荣县| 嘉定区| 鸡东县| 台南县| 祁东县| 武夷山市| 乌拉特中旗| 西吉县| 蛟河市| 伽师县| 营口市| 上饶县| 韩城市| 德令哈市| 休宁县| 广州市| 祥云县| 洱源县| 共和县| 罗城| 疏勒县| 墨玉县| 铜川市| 湟源县| 新宁县| 来宾市| 赣州市| 晋城| 白水县|