亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
請教關(guān)于優(yōu)化屏障與內(nèi)存屏障的問題
[打印本頁]
作者:
dingyujie
時(shí)間:
2012-12-05 10:05
標(biāo)題:
請教關(guān)于優(yōu)化屏障與內(nèi)存屏障的問題
以下是本人的理解,請大牛分析下對否?
優(yōu)化屏障是針對編譯器來說的,內(nèi)核中以barrier()宏給出,它避免編譯器的重排序優(yōu)化操作,保證編譯程序時(shí)在優(yōu)化屏障之前的指令不會在優(yōu)化屏障之后執(zhí)行。
什么意思呢?比如現(xiàn)在有四條匯編指令A(yù),B,C,D,預(yù)期的執(zhí)行順序是A-B-C-D,在沒有使用barrier()優(yōu)化屏蔽時(shí),我們?nèi)绻_啟了編譯優(yōu)化,那么很可能被優(yōu)化成這樣的順序:
C-D-A-B,那么此時(shí)我們在原來B,C之間加入barrier,那么C,D就不會跑到A,B之前了,但是barrier并沒有保證CPU把指令混在一起執(zhí)行,這里的意思是,雖然我們使用了barrier()是編譯產(chǎn)生的匯編指令不會亂序,但是并不是cpu在取指令執(zhí)行時(shí)也是按照匯編指令的出現(xiàn)順序來做。比如我們保證了匯編指令順序中C,D不會跟A,B顛倒,但是不能保證會先執(zhí)行A,B后指令C,D。。。
所以這就需要內(nèi)存屏蔽,這里以mb表示。它保證了在mb之后的指令開始執(zhí)行之前,mb之前的指令已經(jīng)執(zhí)行完成
作者:
liuiang
時(shí)間:
2012-12-05 12:52
跟我理解的一樣。
作者:
liuiang
時(shí)間:
2012-12-05 12:55
mb包括rmb wmb mb,另外mb從語義來說并不保證指令“已經(jīng)執(zhí)行完”,而只保證CPU執(zhí)行指令的時(shí)候不會穿越屏障。當(dāng)然不同處理器相應(yīng)指令真實(shí)語義也有區(qū)別,沒細(xì)扣過。
歡迎光臨 Chinaunix (http://72891.cn/)
Powered by Discuz! X3.2