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


創(chuàng)作
發(fā)文章
發(fā)帖  
提問  
發(fā)資料
發(fā)視頻
上傳資料賺積分
           
            
            
                
            
評論