• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Memory Barriers的一些小結(轉)

            Posted on 2011-03-22 10:02 MiweiDev 閱讀(1080) 評論(0)  編輯 收藏 引用 所屬分類: 雜談

            (http://blog.liuw.name/669)

            五一期間看了一篇文章,Memory Barriers: a Hardware View for Software Hackers,對于Memory Barriers得到了更加深入的理解。

            Cache本身的更新是遵守MESI(Modified,Exclusive,Shared,Invalid)協議的。CPU之間的Cache信息更新通過消息傳遞來完成。

            但是現在CPU的設計中,在Cache之外加入了Store Buffer和Invalidate Queue。Store Buffer的加入,使得CPU對某內存單元的更新不能馬上反映到Cache中;Invalidate Queue的存在,使得其他CPU對Cache的invalidate操作不能馬上反映到Cache中。Store Buffer和Invalidate Queue提高了性能,但是也就導致了Cache的不一致。

            因此需要引入Memory Barriers。Store Buffer和Invalidate Queue應該分別對應使用wmb和rmb。當然直接使用通用mb也是可以的。

            Roughly speaking, a “rmb” marks only the invalidate queue and a “wmb” marks only the store buffer, while a “mb” does both.

            一般來說,Memory Barriers應該配對使用,比如說一方使用了rmb另外一方對應使用wmb。在Linux內核中,還存在著Data Dependence Memory Barrier,這是一個較弱的rmb。具體見Linux內核代碼的Documentation/memory-barriers.txt。

            国内精品久久久久影院薰衣草 | 日日狠狠久久偷偷色综合96蜜桃 | 久久久久久综合一区中文字幕| 波多野结衣久久| 亚洲欧美一区二区三区久久| 日产精品久久久久久久| 人妻少妇久久中文字幕一区二区| 国产精品一区二区久久| 久久久久亚洲爆乳少妇无| 99久久国产综合精品女同图片| 国产精品一久久香蕉产线看| 久久国产成人| 伊人久久大香线蕉综合Av| 久久www免费人成看国产片 | 91久久精一区二区三区大全| 国产精品狼人久久久久影院| 久久99久久99精品免视看动漫 | 久久无码AV中文出轨人妻| 97超级碰碰碰碰久久久久| 无码国内精品久久人妻蜜桃| 久久久久亚洲AV成人网人人网站| 国产精品9999久久久久| 一级a性色生活片久久无| 99久久精品免费国产大片| 精品久久久久久无码专区| 精品无码久久久久国产动漫3d| 久久er国产精品免费观看8| 久久99精品久久久久久| 一本一本久久A久久综合精品| 久久亚洲AV无码西西人体| 激情综合色综合久久综合| 久久99国产精品二区不卡| www久久久天天com| 99久久人妻无码精品系列蜜桃| 久久婷婷国产剧情内射白浆| 久久这里只精品99re66| 欧美精品乱码99久久蜜桃| 久久久久久国产精品无码下载| 久久久久久久综合狠狠综合| 久久久久久亚洲精品影院| 久久无码AV中文出轨人妻|