2013-01-21 36 views
1

根據我的知識mssemsse2選項gcc將通過更快地執行算術運算來提高性能。而且我也讀過一些喜歡使用更多資源的地方,比如寄存器,緩存。如果我們在RTOS設備中使用gcc的msse和msse2選項,那麼會好嗎

如果我們使用在RTOS設備上使用這些選項生成的可執行文件(如vxworks板),性能如何?

+0

SSE是一個x86指令集的擴展,如果你的設備不是x86的,就不能使用它 – Mysticial

回答

1

操作系統必須支持SSE(2)指令,以使您的應用程序正常工作。看起來,從谷歌搜索,VcWorks支持(這並不是真的很難,只需要操作系統有一個512字節的保存區域每個任務使用SSE/SSE2 - 給定的情況下,它可以分配按需分配,但分配給所有任務往往更容易]保存/恢復SSE寄存器是「按需」完成的,也就是說,只有當與上一個使用SSE的任務不同時,才使用SSE指令,是否這個操作系統會使用一個特殊的中斷(陷阱)來表示「一個新的任務正在嘗試使用SSE指令。」

所以,只要處理器支持它,你應該沒問題。

+0

另外,只要O S支持它,「成本」是相同的,不管你是否使用它。 – Damon

+0

Ehm,no。如果您不使用FP/SSE指令,則根本沒有成本 - 因爲它是按需保存FP上下文 - 對於大多數應用程序來說非常適用,因爲大多數情況下不需要太多浮點或SIMD指令。操作系統只會在實際使用時保存/恢復狀態。 –

+0

我不知道這應該如何工作(TS標誌也許?),但我會聽取你的意見。 :-) – Damon

0

我可能不能直接回答你的問題,但這裏有幾件事情我知道,可能是有用的:

  • SSE,SSE2等必須支持/由處理器來實現對他們來說首先會有任何影響。
  • 您可以調用的具體函數使用這些擴展指令進行數學運算。這些功能可以在更廣泛的數據類型上運行,或對一組數據進行有效的操作
  • 啓用GCC中的選項可能會自動使用先前的API /內置函數。這是我不確定的部分。
相關問題