Linux核心類比浮點運算

來源:互聯網
上載者:User

最近在閱讀Linux核心的龍芯改進版時,發現核心中有類比浮點運算的模組,略作記錄。

 

在arch/mips/math-emu/目錄,核心用整數運算對浮點運算進行了類比實現。這是為什嗎?

 

原來,很多嵌入式晶片是沒有浮點運算的。這又是為什嗎?浮點運算的功耗和成本是很大的,對於嵌入式晶片,這有時值得通過犧牲效率節約成本。

 

但是,這些運算在核心中實現,普通應用程式如何使用?使用者進程用到浮點運算時,首先編譯成浮點運算指令,但是晶片沒有這些指令,於是產生異常,異常的處理函數入口即為上述模組的入口(這是在核心初始化時設定的)。

 

於是,使用者態轉移到核心態進行類比運算,將結果返回。但是,到這裡,都注意到了一個問題:這個效率高嗎?

的確,這個效率比較低,原因有二:

每進行一次浮點運算,需要產生一個異常,在使用者態與核心態切換;

核心類比浮點運算是通過整形實現的,而且,對不同指令逐個進行case比較,這個效率也是相對一般的指令很低的。

 

由於以上問題,據稱,有的採用軟類比,即以庫的形式進行連結。使用交叉編譯,給定正確參數,正如數學庫-lm這樣編譯,這樣免去了上述的異常切換。本人未曾涉獵,不作過多猜測。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.