2013-04-12 49 views
0

什麼更有效,爲什麼?loadu和load有什麼區別?

+3

請使用適當的CPU(系列)進行標記。 –

+0

Intel Xeon E5620,SSE – Opal

+2

您可能想要閱讀常見問題解答和[問題解答](http://stackoverflow.com/questions/how-to-ask)。猜猜這可以從計算機科學的學生預計;)當然,歡迎堆棧溢出。 –

回答

4

loadu用於未對齊的負載(從未對齊到16字節倍數的地址),並且load用於對齊的負載。如果您知道您的源地址已正確對齊,那麼load通常會更高效,因爲它只需要一個讀取週期,而不必處理修復多個未對齊數據塊。在較舊的英特爾CPU上,未對齊負載的性能損失非常大(通常大於2倍),但在更新的CPU(例如Core i5/i7)上,懲罰幾乎可以忽略不計。請注意,使用loadu作爲對齊的數據除了上述性能損失之外沒有問題,但使用load以及未對齊的數據會生成異常(即崩潰)。

+1

或者它可能意味着'load'與''load unsigned''(如MIPS:'LB' /'LH'對'LBU' /'LHU',其中一對在從存儲器中將值加載到寄存器時簽名擴展另一個在這個過程中進行零延伸)。 –

+1

OP已經澄清 - 它是x86/SSE –

+0

@AlexeyFrunze它沒有。 OP在這裏不要求猜測。 – EJP