資料介紹
14.10 浮點運算
大多數的ARM處理器硬件上并不支持浮點運算。但ARM上提供了以下幾個選項來實現浮點運算。
· 浮點累加協處理器FPA(Floating-Point Accelerator):ARM上提供了一組協處理器指令專門實現浮點運算。但這需要硬件支持,具體某一處理器上是否有FPA協處理器支持,可以查看ARM相關手冊。
· 浮點運算仿真(FPE):使用軟件仿真了FPA協處理器的執行。
· 浮點運算庫(FPLib):使用ARM的浮點運算庫函數實現程序中的浮點運算操作。這就意味著C編譯器要把每一個浮點操作轉換成一個子程序調用。C庫中的子函數使用整型運算來模擬浮點操作。這些代碼是用高效的匯編語言編寫而成的。盡管如此,浮點運算執行起來還是要比相應整型運算慢得多。
注意Thumb指令不支持協處理器指令,所以在Thumb狀態下實現浮點運算,只能調用ARM浮點運算庫。
為了在ARM上高效地實現浮點運算,請遵循以下規則。
· 避免使用浮點除法運算。通常情況下,除法運算的執行速度是普通加法或乘法運算速度的1/2。在無法避免除法的情況下,盡量使除法的除數為常數。如,x=x/3.0,可將其變為x = x * (1.0/3.0)。這樣除數為常數(1.0/3.0),該值在編譯階段由編譯器計算。
· 使用float型代替double型。float型要比double使用更少的內存和寄存器。
· 避免使用三角函數功能。實現三角函數功能,如sin、cos,使用了大量的乘加運算,它的運算速度大約是普通乘法運算的十倍。
· 當編譯器處理浮點運算操作時,由于精度的影響很多優化不能實現。比如,表達式3 * (x / 3),編譯器不能判斷其值和x是等價的。所以在使用浮點運算表達式時,最好先人工的做一些必要的優化。
?
大多數的ARM處理器硬件上并不支持浮點運算。但ARM上提供了以下幾個選項來實現浮點運算。
· 浮點累加協處理器FPA(Floating-Point Accelerator):ARM上提供了一組協處理器指令專門實現浮點運算。但這需要硬件支持,具體某一處理器上是否有FPA協處理器支持,可以查看ARM相關手冊。
· 浮點運算仿真(FPE):使用軟件仿真了FPA協處理器的執行。
· 浮點運算庫(FPLib):使用ARM的浮點運算庫函數實現程序中的浮點運算操作。這就意味著C編譯器要把每一個浮點操作轉換成一個子程序調用。C庫中的子函數使用整型運算來模擬浮點操作。這些代碼是用高效的匯編語言編寫而成的。盡管如此,浮點運算執行起來還是要比相應整型運算慢得多。
注意Thumb指令不支持協處理器指令,所以在Thumb狀態下實現浮點運算,只能調用ARM浮點運算庫。
為了在ARM上高效地實現浮點運算,請遵循以下規則。
· 避免使用浮點除法運算。通常情況下,除法運算的執行速度是普通加法或乘法運算速度的1/2。在無法避免除法的情況下,盡量使除法的除數為常數。如,x=x/3.0,可將其變為x = x * (1.0/3.0)。這樣除數為常數(1.0/3.0),該值在編譯階段由編譯器計算。
· 使用float型代替double型。float型要比double使用更少的內存和寄存器。
· 避免使用三角函數功能。實現三角函數功能,如sin、cos,使用了大量的乘加運算,它的運算速度大約是普通乘法運算的十倍。
· 當編譯器處理浮點運算操作時,由于精度的影響很多優化不能實現。比如,表達式3 * (x / 3),編譯器不能判斷其值和x是等價的。所以在使用浮點運算表達式時,最好先人工的做一些必要的優化。
?
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- LabViEW編程之VI服務器綜述 25次下載
- Windows編程之數值運算綜述 5次下載
- 浮點DSP運算效率不高 10次下載
- DSP教程之DSP數值運算基礎總結的詳細資料說明 9次下載
- C語言教程之數據類型與運算符的詳細資料說明 8次下載
- MATLAB教程之數組和矩陣的介紹及運算說明 0次下載
- 浮點運算單元的FPGA實現 8次下載
- 多核浮點非線性運算協處理器設計 0次下載
- 定點DSP C55X實現浮點相關運算解析 2次下載
- 高效的C編程之除法運算 5次下載
- C語言教程之平方和運算的問題 0次下載
- 浮點 DSP 運算效率不高 0次下載
- 定點dsp浮點運算教程
- DSP的浮點運算方法
- 浮點運算方法
- 技術干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析運算符與優先級 1.1k次閱讀
- 技術干貨驛站 ▏深入理解C語言:編程高手必備,全方位解析運算符的核心技能! 1.5k次閱讀
- 優秀的Verilog/FPGA開源項目-浮點運算器(FPU)介紹 6.6k次閱讀
- C語言的運算符 2.1k次閱讀
- FPGA浮點數轉化為定點數方法 6.2k次閱讀
- 如何在FPGA中正確處理浮點數運算 5.9k次閱讀
- 三菱PLC浮點數運算指令 2.1w次閱讀
- Altera FPGA硬核浮點DSP模塊解決方案提高運算性能 4.1k次閱讀
- 基于TI TMS320C6748定點/浮點DSP C674x處理器 3.8k次閱讀
- 單片機浮點數的運算原理及表達方式 1.4w次閱讀
- 利用FPGA技術能更方便靈活設計出浮點運算器 3.9k次閱讀
- FOC之定點小數運算 7.4k次閱讀
- 基于FPGA的嵌入式處理器的浮點系統 2.1k次閱讀
- 快速高效的實現浮點復數矩陣分解 1.3k次閱讀
- pic單片機io口控制教程之c語言編程實現 1.2w次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數據手冊
- 3.00 MB | 次下載 | 免費
- 2MDD品牌三極管BC817數據手冊
- 2.51 MB | 次下載 | 免費
- 3MDD品牌三極管D882數據手冊
- 3.49 MB | 次下載 | 免費
- 4MDD品牌三極管MMBT2222A數據手冊
- 3.26 MB | 次下載 | 免費
- 5MDD品牌三極管MMBTA56數據手冊
- 3.09 MB | 次下載 | 免費
- 6MDD品牌三極管MMBTA92數據手冊
- 2.32 MB | 次下載 | 免費
- 7STM32G474 HRTIME PWM 丟波問題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動汽車高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費
- 2PC5502負載均流控制電路數據手冊
- 1.63 MB | 23次下載 | 免費
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測距通信定位模塊規格書
- 838.47 KB | 5次下載 | 免費
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191439次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發燒友App





創作
發文章
發帖
提問
發資料
發視頻
上傳資料賺積分
評論