加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 14.10  浮點運算
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

高效的C編程之: 浮點運算

2013/09/30
1
閱讀需 3 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

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編譯器要把每一個浮點操作轉(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)化。

Arm

Arm

ARM公司是一家知識產(chǎn)權(IP)供應商,主要為國際上其他的電子公司提供高性能RISC處理器、外設和系統(tǒng)芯片技術授權。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計算設備、多媒體數(shù)字消費品等方案的RISC標準。公司1990年11月由Acorn、Apple和VLSI合并而成。

ARM公司是一家知識產(chǎn)權(IP)供應商,主要為國際上其他的電子公司提供高性能RISC處理器、外設和系統(tǒng)芯片技術授權。目前,ARM公司的處理器內(nèi)核已經(jīng)成為便攜通訊、手持計算設備、多媒體數(shù)字消費品等方案的RISC標準。公司1990年11月由Acorn、Apple和VLSI合并而成。收起

查看更多

相關推薦

電子產(chǎn)業(yè)圖譜

華清遠見(www.farsight.com.cn)是國內(nèi)領先嵌入師培訓機構,2004年注冊于中國北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營分公司。華清遠見除提供嵌入式相關的長期就業(yè)培訓、短期高端培訓、師資培訓及企業(yè)員工內(nèi)訓等業(yè)務外,其下屬研發(fā)中心還負責嵌入式、Android及物聯(lián)網(wǎng)方向的教學實驗平臺的研發(fā)及培訓教材的出版,截止目前為止已公開出版70余本嵌入式/移動開發(fā)/物聯(lián)網(wǎng)相關圖書。企業(yè)理念:專業(yè)始于專注 卓識源于遠見。企業(yè)價值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。