資料介紹
14.10 浮點運算
大多數(shù)的ARM處理器硬件上并不支持浮點運算。但ARM上提供了以下幾個選項來實現(xiàn)浮點運算。
· 浮點累加協(xié)處理器FPA(Floating-Point Accelerator):ARM上提供了一組協(xié)處理器指令專門實現(xiàn)浮點運算。但這需要硬件支持,具體某一處理器上是否有FPA協(xié)處理器支持,可以查看ARM相關手冊。
· 浮點運算仿真(FPE):使用軟件仿真了FPA協(xié)處理器的執(zhí)行。
· 浮點運算庫(FPLib):使用ARM的浮點運算庫函數(shù)實現(xiàn)程序中的浮點運算操作。這就意味著C編譯器要把每一個浮點操作轉換成一個子程序調用。C庫中的子函數(shù)使用整型運算來模擬浮點操作。這些代碼是用高效的匯編語言編寫而成的。盡管如此,浮點運算執(zhí)行起來還是要比相應整型運算慢得多。
注意Thumb指令不支持協(xié)處理器指令,所以在Thumb狀態(tài)下實現(xiàn)浮點運算,只能調用ARM浮點運算庫。
為了在ARM上高效地實現(xiàn)浮點運算,請遵循以下規(guī)則。
· 避免使用浮點除法運算。通常情況下,除法運算的執(zhí)行速度是普通加法或乘法運算速度的1/2。在無法避免除法的情況下,盡量使除法的除數(shù)為常數(shù)。如,x=x/3.0,可將其變?yōu)閤 = x * (1.0/3.0)。這樣除數(shù)為常數(shù)(1.0/3.0),該值在編譯階段由編譯器計算。
· 使用float型代替double型。float型要比double使用更少的內存和寄存器。
· 避免使用三角函數(shù)功能。實現(xiàn)三角函數(shù)功能,如sin、cos,使用了大量的乘加運算,它的運算速度大約是普通乘法運算的十倍。
· 當編譯器處理浮點運算操作時,由于精度的影響很多優(yōu)化不能實現(xiàn)。比如,表達式3 * (x / 3),編譯器不能判斷其值和x是等價的。所以在使用浮點運算表達式時,最好先人工的做一些必要的優(yōu)化。
?
大多數(shù)的ARM處理器硬件上并不支持浮點運算。但ARM上提供了以下幾個選項來實現(xiàn)浮點運算。
· 浮點累加協(xié)處理器FPA(Floating-Point Accelerator):ARM上提供了一組協(xié)處理器指令專門實現(xiàn)浮點運算。但這需要硬件支持,具體某一處理器上是否有FPA協(xié)處理器支持,可以查看ARM相關手冊。
· 浮點運算仿真(FPE):使用軟件仿真了FPA協(xié)處理器的執(zhí)行。
· 浮點運算庫(FPLib):使用ARM的浮點運算庫函數(shù)實現(xiàn)程序中的浮點運算操作。這就意味著C編譯器要把每一個浮點操作轉換成一個子程序調用。C庫中的子函數(shù)使用整型運算來模擬浮點操作。這些代碼是用高效的匯編語言編寫而成的。盡管如此,浮點運算執(zhí)行起來還是要比相應整型運算慢得多。
注意Thumb指令不支持協(xié)處理器指令,所以在Thumb狀態(tài)下實現(xiàn)浮點運算,只能調用ARM浮點運算庫。
為了在ARM上高效地實現(xiàn)浮點運算,請遵循以下規(guī)則。
· 避免使用浮點除法運算。通常情況下,除法運算的執(zhí)行速度是普通加法或乘法運算速度的1/2。在無法避免除法的情況下,盡量使除法的除數(shù)為常數(shù)。如,x=x/3.0,可將其變?yōu)閤 = x * (1.0/3.0)。這樣除數(shù)為常數(shù)(1.0/3.0),該值在編譯階段由編譯器計算。
· 使用float型代替double型。float型要比double使用更少的內存和寄存器。
· 避免使用三角函數(shù)功能。實現(xiàn)三角函數(shù)功能,如sin、cos,使用了大量的乘加運算,它的運算速度大約是普通乘法運算的十倍。
· 當編譯器處理浮點運算操作時,由于精度的影響很多優(yōu)化不能實現(xiàn)。比如,表達式3 * (x / 3),編譯器不能判斷其值和x是等價的。所以在使用浮點運算表達式時,最好先人工的做一些必要的優(yōu)化。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- LabViEW編程之VI服務器綜述 24次下載
- Windows編程之數(shù)值運算綜述 5次下載
- 浮點DSP運算效率不高 10次下載
- DSP教程之DSP數(shù)值運算基礎總結的詳細資料說明 9次下載
- C語言教程之數(shù)據(jù)類型與運算符的詳細資料說明 8次下載
- C語言實用教程之數(shù)據(jù)類型運算符和表達式的詳細資料說明 10次下載
- 浮點運算單元的FPGA實現(xiàn) 8次下載
- 多核浮點非線性運算協(xié)處理器設計 0次下載
- 定點DSP C55X實現(xiàn)浮點相關運算解析 2次下載
- 高效的C編程之除法運算 5次下載
- C語言教程之平方和運算的問題 0次下載
- 浮點 DSP 運算效率不高 0次下載
- 定點dsp浮點運算教程
- DSP的浮點運算方法
- 浮點運算方法
- 技術干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析運算符與優(yōu)先級 313次閱讀
- 技術干貨驛站 ▏深入理解C語言:編程高手必備,全方位解析運算符的核心技能! 381次閱讀
- 優(yōu)秀的Verilog/FPGA開源項目-浮點運算器(FPU)介紹 3717次閱讀
- C語言的運算符 1230次閱讀
- FPGA浮點數(shù)轉化為定點數(shù)方法 4869次閱讀
- 如何在FPGA中正確處理浮點數(shù)運算 5141次閱讀
- 三菱PLC浮點數(shù)運算指令 1.6w次閱讀
- Altera FPGA硬核浮點DSP模塊解決方案提高運算性能 3646次閱讀
- 基于TI TMS320C6748定點/浮點DSP C674x處理器 3210次閱讀
- 單片機浮點數(shù)的運算原理及表達方式 1.2w次閱讀
- 利用FPGA技術能更方便靈活設計出浮點運算器 3503次閱讀
- FOC之定點小數(shù)運算 6452次閱讀
- 基于FPGA的嵌入式處理器的浮點系統(tǒng) 1680次閱讀
- 快速高效的實現(xiàn)浮點復數(shù)矩陣分解 1034次閱讀
- pic單片機io口控制教程之c語言編程實現(xiàn) 1.2w次閱讀
下載排行
本周
- 1常用電子元器件集錦
- 1.72 MB | 24485次下載 | 免費
- 2ssd1306單片 CMOS OLED/PLED 驅動芯片中文手冊
- 1.66 MB | 4次下載 | 1 積分
- 3低壓降肖特基整流管SR340L數(shù)據(jù)手冊
- 0.78 MB | 2次下載 | 免費
- 4高壓MOS管MDD12N65F/MDD12N65P數(shù)據(jù)手冊
- 2.36 MB | 2次下載 | 免費
- 5FP6195 60V、800mA、480KHz異步降壓轉換器規(guī)格書
- 0.88 MB | 2次下載 | 免費
- 6CPCI6310型復合視頻采集板資料
- 0.04 MB | 1次下載 | 免費
- 7STM32F10xxx參考手冊
- 13.64 MB | 1次下載 | 1 積分
- 8PC2456高壓浪涌抑制器控制器數(shù)據(jù)手冊
- 3.03 MB | 1次下載 | 免費
本月
- 1常用電子元器件集錦
- 1.72 MB | 24485次下載 | 免費
- 2三相逆變主電路的原理圖和PCB資料合集免費下載
- 27.35 MB | 111次下載 | 1 積分
- 3運算放大器基本電路中文資料
- 1.30 MB | 16次下載 | 免費
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 12次下載 | 5 積分
- 5常用電子元器件介紹
- 3.21 MB | 10次下載 | 免費
- 6EMC電路設計工程師必備的EMC基礎
- 0.42 MB | 6次下載 | 2 積分
- 7相關協(xié)議信號總結
- 0.94 MB | 4次下載 | 免費
- 8ssd1306單片 CMOS OLED/PLED 驅動芯片中文手冊
- 1.66 MB | 4次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935130次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183345次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81591次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73816次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論