亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1698 | 回復: 2
打印 上一主題 下一主題

[內(nèi)核同步] 請教關于優(yōu)化屏障與內(nèi)存屏障的問題 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-12-05 10:05 |只看該作者 |倒序瀏覽
以下是本人的理解,請大牛分析下對否?

優(yōu)化屏障是針對編譯器來說的,內(nèi)核中以barrier()宏給出,它避免編譯器的重排序優(yōu)化操作,保證編譯程序時在優(yōu)化屏障之前的指令不會在優(yōu)化屏障之后執(zhí)行。
什么意思呢?比如現(xiàn)在有四條匯編指令A,B,C,D,預期的執(zhí)行順序是A-B-C-D,在沒有使用barrier()優(yōu)化屏蔽時,我們?nèi)绻_啟了編譯優(yōu)化,那么很可能被優(yōu)化成這樣的順序:
C-D-A-B,那么此時我們在原來B,C之間加入barrier,那么C,D就不會跑到A,B之前了,但是barrier并沒有保證CPU把指令混在一起執(zhí)行,這里的意思是,雖然我們使用了barrier()是編譯產(chǎn)生的匯編指令不會亂序,但是并不是cpu在取指令執(zhí)行時也是按照匯編指令的出現(xiàn)順序來做。比如我們保證了匯編指令順序中C,D不會跟A,B顛倒,但是不能保證會先執(zhí)行A,B后指令C,D。。。

所以這就需要內(nèi)存屏蔽,這里以mb表示。它保證了在mb之后的指令開始執(zhí)行之前,mb之前的指令已經(jīng)執(zhí)行完成

論壇徽章:
4
天秤座
日期:2013-10-18 13:58:33金牛座
日期:2013-11-28 16:17:01辰龍
日期:2014-01-14 09:54:32戌狗
日期:2014-01-24 09:23:27
2 [報告]
發(fā)表于 2012-12-05 12:52 |只看該作者
跟我理解的一樣。

論壇徽章:
4
天秤座
日期:2013-10-18 13:58:33金牛座
日期:2013-11-28 16:17:01辰龍
日期:2014-01-14 09:54:32戌狗
日期:2014-01-24 09:23:27
3 [報告]
發(fā)表于 2012-12-05 12:55 |只看該作者
mb包括rmb wmb mb,另外mb從語義來說并不保證指令“已經(jīng)執(zhí)行完”,而只保證CPU執(zhí)行指令的時候不會穿越屏障。當然不同處理器相應指令真實語義也有區(qū)別,沒細扣過。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP