資料介紹
14.10 浮點運算
大多數(shù)的ARM處理器硬件上并不支持浮點運算。但ARM上提供了以下幾個選項來實現(xiàn)浮點運算。
· 浮點累加協(xié)處理器FPA(Floating-Point Accelerator):ARM上提供了一組協(xié)處理器指令專門實現(xiàn)浮點運算。但這需要硬件支持,具體某一處理器上是否有FPA協(xié)處理器支持,可以查看ARM相關(guān)手冊。
· 浮點運算仿真(FPE):使用軟件仿真了FPA協(xié)處理器的執(zhí)行。
· 浮點運算庫(FPLib):使用ARM的浮點運算庫函數(shù)實現(xiàn)程序中的浮點運算操作。這就意味著C編譯器要把每一個浮點操作轉(zhuǎn)換成一個子程序調(diào)用。C庫中的子函數(shù)使用整型運算來模擬浮點操作。這些代碼是用高效的匯編語言編寫而成的。盡管如此,浮點運算執(zhí)行起來還是要比相應整型運算慢得多。
注意Thumb指令不支持協(xié)處理器指令,所以在Thumb狀態(tài)下實現(xiàn)浮點運算,只能調(diào)用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使用更少的內(nèi)存和寄存器。
· 避免使用三角函數(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相關(guān)手冊。
· 浮點運算仿真(FPE):使用軟件仿真了FPA協(xié)處理器的執(zhí)行。
· 浮點運算庫(FPLib):使用ARM的浮點運算庫函數(shù)實現(xiàn)程序中的浮點運算操作。這就意味著C編譯器要把每一個浮點操作轉(zhuǎn)換成一個子程序調(diào)用。C庫中的子函數(shù)使用整型運算來模擬浮點操作。這些代碼是用高效的匯編語言編寫而成的。盡管如此,浮點運算執(zhí)行起來還是要比相應整型運算慢得多。
注意Thumb指令不支持協(xié)處理器指令,所以在Thumb狀態(tài)下實現(xiàn)浮點運算,只能調(diào)用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使用更少的內(nèi)存和寄存器。
· 避免使用三角函數(shù)功能。實現(xiàn)三角函數(shù)功能,如sin、cos,使用了大量的乘加運算,它的運算速度大約是普通乘法運算的十倍。
· 當編譯器處理浮點運算操作時,由于精度的影響很多優(yōu)化不能實現(xiàn)。比如,表達式3 * (x / 3),編譯器不能判斷其值和x是等價的。所以在使用浮點運算表達式時,最好先人工的做一些必要的優(yōu)化。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- LabViEW編程之VI服務器綜述 20次下載
- Windows編程之數(shù)值運算綜述 5次下載
- 浮點DSP運算效率不高 10次下載
- DSP教程之DSP數(shù)值運算基礎總結(jié)的詳細資料說明 9次下載
- C語言教程之數(shù)據(jù)類型與運算符的詳細資料說明 8次下載
- C語言實用教程之數(shù)據(jù)類型運算符和表達式的詳細資料說明 10次下載
- 浮點運算單元的FPGA實現(xiàn) 8次下載
- 多核浮點非線性運算協(xié)處理器設計 0次下載
- 定點DSP C55X實現(xiàn)浮點相關(guān)運算解析 2次下載
- 高效的C編程之除法運算 5次下載
- C語言教程之平方和運算的問題 0次下載
- 浮點 DSP 運算效率不高 0次下載
- 定點dsp浮點運算教程
- DSP的浮點運算方法
- 浮點運算方法
- 優(yōu)秀的Verilog/FPGA開源項目-浮點運算器(FPU)介紹 2004次閱讀
- C語言編程的七大陷阱與高效避坑指南 393次閱讀
- C語言的運算符 1028次閱讀
- FPGA浮點數(shù)轉(zhuǎn)化為定點數(shù)方法 4396次閱讀
- Q格式的表示方式以及相應的運算 4031次閱讀
- 如何在FPGA中正確處理浮點數(shù)運算 4794次閱讀
- 三菱PLC浮點數(shù)運算指令 1.5w次閱讀
- Altera FPGA硬核浮點DSP模塊解決方案提高運算性能 3498次閱讀
- 基于TI TMS320C6748定點/浮點DSP C674x處理器 2989次閱讀
- 單片機浮點數(shù)的運算原理及表達方式 1.2w次閱讀
- 利用FPGA技術(shù)能更方便靈活設計出浮點運算器 3399次閱讀
- FOC之定點小數(shù)運算 6220次閱讀
- 基于FPGA的嵌入式處理器的浮點系統(tǒng) 1558次閱讀
- 快速高效的實現(xiàn)浮點復數(shù)矩陣分解 955次閱讀
- pic單片機io口控制教程之c語言編程實現(xiàn) 1.1w次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1490次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 92次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 10次下載 | 免費
- 6基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
- 7藍牙設備在嵌入式領域的廣泛應用
- 0.63 MB | 3次下載 | 免費
- 89天練會電子電路識圖
- 5.91 MB | 3次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關(guān)電源設計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537791次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233045次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多