Java中cacheline的狀態(tài)有哪些

本篇內(nèi)容介紹了“Java中cache line的狀態(tài)有哪些”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了曲沃免費(fèi)建站歡迎大家使用!

cache line的狀態(tài):

1、狀態(tài)M表示該緩存行中數(shù)據(jù)有修改,并且與內(nèi)存中的數(shù)據(jù)不一致;

2、狀態(tài)E表示該緩存行中數(shù)據(jù)有修改,并且與內(nèi)存中的數(shù)據(jù)一致;

3、狀態(tài)S表示該緩存行中數(shù)據(jù)與內(nèi)存中的數(shù)據(jù)一致,并且與其它內(nèi)核中的cache line一致;

4、狀態(tài)I表示該緩存行無效;

每個(gè)cache控制器除了監(jiān)聽自己cache的讀寫操作還監(jiān)聽其它c(diǎn)ache的讀寫操作與狀態(tài),因此每個(gè)緩存行根據(jù)當(dāng)前所處的狀態(tài)與監(jiān)聽的動(dòng)作進(jìn)行狀態(tài)轉(zhuǎn)換,簡稱MESI一致性協(xié)議。讀寫操作具體可分成4種類型(LR-本內(nèi)核讀取本cache,LW-本內(nèi)核寫本cache,RR-其它內(nèi)核讀其對應(yīng)的cache,RW-其它內(nèi)核寫其對應(yīng)的cache)狀態(tài)轉(zhuǎn)換過程如下:

1、當(dāng)數(shù)據(jù)所在cache line處于I狀態(tài)并發(fā)生LR時(shí),如果其它內(nèi)核cache line中沒有該數(shù)據(jù)則從內(nèi)存加載,然后該cache line狀態(tài)變成E;如果其它內(nèi)核cache line中有該數(shù)據(jù)并處于狀態(tài)M時(shí),令其寫入到內(nèi)存后然后本內(nèi)核從內(nèi)存中加載,兩個(gè)cache line都處于S狀態(tài);如果其它內(nèi)核cache line中有該數(shù)據(jù)且已處于狀態(tài)S或者E時(shí),本cache line從內(nèi)存中加載然后都變成S狀態(tài)。

     當(dāng)數(shù)據(jù)所在cache line處于I狀態(tài)并發(fā)生LW時(shí),先從內(nèi)存加載數(shù)據(jù)然后在cache line中修改,狀態(tài)變成M;如果其它內(nèi)核cache line中有該數(shù)據(jù),且狀態(tài)為M時(shí)先令其更新到內(nèi)存然后狀態(tài)置為I;如果其它內(nèi)核cache line中有該數(shù)據(jù),且狀態(tài)為E時(shí)將狀態(tài)置為無效I。而本內(nèi)核的cache line狀態(tài)一直是M。

    當(dāng)數(shù)據(jù)所在cache line處于I狀態(tài)并監(jiān)聽到RR和RW時(shí)不會(huì)作任何反應(yīng)。

2、當(dāng)數(shù)據(jù)所在cache line處于M狀態(tài)并發(fā)生LR時(shí),直接讀取,狀態(tài)不變。

      發(fā)生LW時(shí),直接寫入,狀態(tài)不變。

      監(jiān)聽到RR時(shí),數(shù)據(jù)會(huì)寫入內(nèi)存然后狀態(tài)變成S。

      監(jiān)聽到RW時(shí),將數(shù)據(jù)寫入內(nèi)存便于其它內(nèi)存讀取最新數(shù)據(jù),然后狀態(tài)置無效I。

3、當(dāng)數(shù)據(jù)所在cache line處于E狀態(tài)并發(fā)生LR時(shí),直接讀取,狀態(tài)不變。

     發(fā)生LW時(shí),直接寫入,狀態(tài)變成M。

     監(jiān)聽到RR時(shí),狀態(tài)變成S。

     監(jiān)聽到RW時(shí),狀態(tài)置無效I。

4、當(dāng)數(shù)據(jù)所在cache line處于S狀態(tài)并發(fā)生LR時(shí),直接讀取,狀態(tài)不變。

     發(fā)生LW時(shí),修改cache line中的內(nèi)容并將狀態(tài)變成M,其余內(nèi)核的cache line置無效狀態(tài)I。

    監(jiān)聽到RR時(shí),狀態(tài)不變。

    監(jiān)聽到RW時(shí),cache line置無效狀態(tài)I。

“Java中cache line的狀態(tài)有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

文章題目:Java中cacheline的狀態(tài)有哪些
文章鏈接:http://bm7419.com/article20/pcsjjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、靜態(tài)網(wǎng)站、品牌網(wǎng)站建設(shè)、企業(yè)建站網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)