版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、北京科技大學(xué)計(jì)算機(jī)系李建江參考課件:清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系高性能計(jì)算研究所 鄭緯民 教授第五章 Cache Coherence5.1 Cache Coherence問題5.1.1 Cache Coherence的提出5.1.2 多個Cache不一致的原因5.1.3 兩種設(shè)計(jì)Cache一致性協(xié)議策略5.2 監(jiān)聽總線協(xié)議5.3 基于目錄的Cache一致性協(xié)議5.4 三種Cache一致性策略5.1 Cache Coherence問題 5.1.1 Cache Coherence問題的提出 在多處理器系統(tǒng)中,多個Cache中,對應(yīng)的copy內(nèi)容應(yīng)該一致,如下圖:MemoryCachePCachePC
2、acheP這幾個copy應(yīng)該一致5.1.2 多個Cache不一致的原因 1.共享可寫數(shù)據(jù)的不一致性(sharing of writable data)P1P2更新前xxx處理機(jī)CachesharedmemoryP1P2寫通過xxxP1P2寫回xxx2.進(jìn)程遷移的不一致性P1P2遷移前xx處理機(jī)CacheP1P2寫通過xxxP1P2寫回xxxsharedmemory上圖中: 右圖為:包含共享變量x的進(jìn)程原來在P1上運(yùn)行,并對x進(jìn)行了修改(但采取寫回策略,所以暫時沒有修改Memory),由于某種原因遷移到P2,修改過的x仍在P1的Cache中,P2運(yùn)行時從Memory中得到x(因?yàn)槿笔В?,這個x其
3、實(shí)是“過時”的,所以造成了不一致。 中間圖為:P2中運(yùn)行的進(jìn)程對x進(jìn)行了修改,采取寫通過策略,所以把Memory中的x也修改為x,由于某種原因該進(jìn)程遷移到P1,但P1的Cache中仍為x,所以造成不一致。3. I/O操作(繞過Cache的I/O操作)P1P2xx存儲器P1P2寫通過xxP1P2寫回xxxxxxxI/O存儲器輸入存儲器輸出c1c2總線上圖中: 中間圖為:當(dāng)I/O處理機(jī)將一個新的數(shù)據(jù)x寫入主存儲器時,繞過采用寫通過策略的cache,則C1和共享存儲器之間產(chǎn)生了不一致。 右圖為:直接從主存儲器輸出數(shù)據(jù)時(繞過Cache),采用寫回策略的高速緩存產(chǎn)生不一致性。5.1.3 兩種設(shè)計(jì)Cac
4、he一致性協(xié)議策略 1.寫無效(write invalidate) 任一處理器寫它的私有Cache時,它都使所有其它的Cache中的副本失效。 對Write-through,它也更新memory中的副本(最終是一個Cache中的副本和memory中的副本是有效的)。 對Write-back,它使memory中的副本也失效(最終只有一個Cache中的副本是有效的)。2.寫更新(write update) 任一處理器寫它的私有Cache時,它都立即更新所有其它的Cache中的副本。 對Write-through,它也更新主存儲器中的副本。 對Write-back,對存儲器中副本的更新延遲到這個Ca
5、che被置換的時刻。3. 示意圖 下圖表示數(shù)據(jù)塊x在共享存儲器和三臺處理機(jī)的Cache中的副本一致的情形。x共享存儲器CacheP1xP2xxP3總線處理機(jī) 下圖表示P1進(jìn)行寫無效操作后的情形。寫通過:xI表示無效P1IP2xIP3寫回:xI表示無效P1IP2IIP3 下圖表示P1進(jìn)行寫更新操作后的情形(寫通過)。xI表示無效P1xP2xxP34.寫無效的問題主要開銷在兩個方面: (1)作廢各Cache副本的開銷; (2)由作廢引起缺失造成的開銷,即處理機(jī)需要訪問已經(jīng)作廢的數(shù)據(jù)時將引起Cache的缺失。 后果: 如果一個處理機(jī)經(jīng)常對某個塊連續(xù)寫,且各處理處理機(jī)間對共享塊的競爭較小,這時寫無效策
6、略維護(hù)一致性的開銷是很小的。如發(fā)生嚴(yán)重競爭,即處理機(jī)之間對某個地址的共享數(shù)據(jù)競爭,將產(chǎn)生較多的作廢,引起更多的作廢缺失。結(jié)果是共享數(shù)據(jù)在各Cache間倒來倒去,產(chǎn)生顛簸現(xiàn)象,當(dāng)緩存塊比較大時,這種顛簸現(xiàn)象更為嚴(yán)重。5. 寫更新的問題 由于更新時,所有的副本均需要更新,開銷很大。第五章 Cache Coherence5.1 Cache Coherence問題5.2 監(jiān)聽總線協(xié)議5.2.1 寫一次協(xié)議5.3 基于目錄的Cache一致性協(xié)議5.4 三種Cache一致性策略5.2 監(jiān)聽總線協(xié)議(Snoopy protocol) 通過總線監(jiān)聽機(jī)制實(shí)現(xiàn)Cache和共享存儲器之間的一致性。適用性分析: 適用
7、于具有廣播能力的總線結(jié)構(gòu)多機(jī)系統(tǒng),允許每臺處理機(jī)監(jiān)聽其它處理機(jī)的存儲器訪問情況。 只適用于小規(guī)模的多處理機(jī)系統(tǒng)。5.2.1 寫一次(write-once)協(xié)議 寫無效監(jiān)聽一致性協(xié)議,將寫通過和寫回策略結(jié)合。 為了減少總線流量,高速緩存塊的第一次寫用寫通過方法,產(chǎn)生一份正確的主存儲器副本,并使其它的Cache中的副本無效,之后就采用寫回方法更新Cache與主存儲器。1. 一致性協(xié)議的內(nèi)容 一致性協(xié)議包括: (1)Cache可能出現(xiàn)的狀態(tài)集合 (2)共享主存的狀態(tài) (3)為維護(hù)一致性而引起的狀態(tài)轉(zhuǎn)換。2. 每份Cache中的副本可能出現(xiàn)的四種狀態(tài) (1)有效(valid state):與主存儲器副
8、本一致的Cache副本,即該副本未經(jīng)修改,所以這個Cache副本不是唯一的副本。 (2)保留(reserved state):這一Cache副本是第一次修改,并用寫通過方法寫入主存,所以這一Cache副本和主存儲器副本一致。 (3)重寫(dirty state):Cache副本不止一次被修改過,由于不再采用寫通過方法,所以這個Cache副本是唯一的副本。與存儲器和其它的Cache副本都不一致。主存儲器中的副本也是無效的。 (4)無效(invalid state)與存儲器或其它的Cache副本不一致,或在Cache中找不到。3. 局部命令(Local commands) (1)P-Read:本地
9、處理機(jī)讀自己的Cache副本。 (2)P-Write:本地處理機(jī)寫自己的Cache副本。4. 一致性命令 (1)Read-blk:從另一Cache讀一份有效的副本。 (2)Write-inv:在寫命中時在總線上廣播一個無效命令。 (3)Read-inv:在寫缺失時在總線上廣播一個無效命令。 Dirty: modified more than once, the only copy in the system; Invalid: inconsistent copy; Reserved: after written once, the only copy consistent with memor
10、y; Valid: A copy consistent with the memory copy.5. Write-Once一致性協(xié)議狀態(tài)轉(zhuǎn)移圖其中,四種狀態(tài)的含義如下:InvalidValidDirtyReservedRead-inv(4)P-Write(1)P-Write(hit:local still dirty)P-Write(hit:local, not memoryupdate, local copy becomes dirty)P-Write(hit:local,updatememory copy,broadcastwrite-inv to all cache,local cop
11、ybecomesreserved)Read-blk(3)Read-inv(4)P-Read(2)Read-blk(3)Read-inv(4)/Write-inv(5)P-Read(hit:alwayslocal,no statetransition)下一節(jié)(用鼠標(biāo)點(diǎn)擊連線來察看詳細(xì)信息)P-Write(1)(1)P-Write(miss: take a dirty copy from a remote cache, or from memory; send Read-invto invalidate all copies; update local copy into a dirty one)
12、.InvalidValidDirtyReserved下一節(jié)InvalidValidDirtyReserved(2)P-Read(miss: if no dirty copy exists, memory supplies a validcopy, otherwise, the cache inhibits memory and supplies a copyand updates memory. Both copies become valid).P-Read(2)下一節(jié)InvalidValidDirtyReserved(3)Read-blk(read from remote processo
13、rs, the localcopy become valid).Read-blk(3)下一節(jié)InvalidValidDirtyReserved(3)Read-blk(read from remote processors, the localcopy become valid).Read-blk(3)下一節(jié)InvalidValidDirtyReserved(4)Read-inv(A remote cache reads a block during a write-miss,updates it and invalidates all other copies).Read-inv(4)下一節(jié)I
14、nvalidValidDirtyReserved(4)Read-inv(A remote cache reads a block during a write-miss,updates it and invalidates all other copies).Read-inv(4)下一節(jié)InvalidValidDirtyReserved(4)Read-inv(A remote cache reads a block during a write-miss,updates it and invalidates all other copies).(5)Write-inv(A remote cac
15、he updates its local copy during a write-hits and invalidates all other copies).Read-inv(4)/Write-inv(5)下一節(jié) (1)P-Write(miss: take a dirty copy from a remote cache which then updates memory, or from memory; send Read-inv to invalidate all copies; update local copy into a dirty one). (2)P-Read(miss: i
16、f no dirty copy exists, memory supplies a valid copy, otherwise, the cache inhibits memory and supplies a copy and updates memory. Both copies become valid). (3)Read-blk(read from remote processors, the local copy become valid). (4)Read-inv(A remote cache reads a block during a write-miss, updates i
17、t and invalidates all other copies). (5)Write-inv(A remote cache updates its local copy during a write-hits and invalidates all other copies).6. Write-Once一致性協(xié)議狀態(tài)轉(zhuǎn)移表必是局部進(jìn)行,不影響有效狀態(tài)第一次寫命中,用寫通過法。同時修改本地和主存副本并廣播Write-inv使所有副本失效commandcurrentstatenextstatestatusP-Read有效有效Read-hitP-Write有效保留Write-hitaction
18、第二次寫命中,用寫回法。但不修改主存的副本P-Write保留重寫Write-hit寫缺失時,則從主存或遠(yuǎn)程Cache送來副本。并廣播Read-inv使所有其它副本無效。commandcurrentstatenextstatestatusP-Write無效保留 Write-missaction(續(xù)表)第二次以后更多的寫命中,用寫回法。無狀態(tài)改變。P-Write重寫重寫Write-hitcommandcurrentstatenextstatestatusaction(續(xù)表)讀缺失時,如遠(yuǎn)程Cache中沒有重寫副本,則主存中一定有一份正確的副本,供給發(fā)請求的Cache。如遠(yuǎn)程的Cache有重寫的副本
19、,則它禁止主存操作,并將副本發(fā)給請求的Cache,兩種情況均使發(fā)請求的Cache得到的副本為有效。P-Read無效有效 Read-miss遠(yuǎn)程Cache讀此副本,讀后兩份副本均有效Read-blk保留或重寫有效commandcurrentstatenextstatestatusaction(續(xù)表)寫缺失時,遠(yuǎn)程Cache讀一個塊,并修改它,并使所有其它Cache的副本無效。Read-inv除無效外的其它狀態(tài)無效寫命中時,一遠(yuǎn)程Cache修改其本地副本,并使數(shù)據(jù)塊的其它副本無效Write-inv有效無效commandcurrentstatenextstatestatusaction(續(xù)表)如果副
20、本處于重寫狀態(tài),必須通過塊替換寫回主存,否則不產(chǎn)生替換操作Write-inv有效無效替代7.其它的一些問題 CPU要向Cache寫數(shù)據(jù),如果write miss,表示該數(shù)據(jù)塊不在Cache中或者該數(shù)據(jù)快處于無效狀態(tài),那么需要把正確的數(shù)據(jù)從memory或其它的Cache中取過來,然后再寫操作。 為什么不能直接寫? (1)可能該數(shù)據(jù)塊根本不在Cache中,所以需要從其它地方調(diào)入。 (2)已在Cache中,但數(shù)據(jù)不正確,這時如果直接寫入數(shù)據(jù),整個數(shù)據(jù)塊可能還是不正確的。例如,數(shù)據(jù)不正確的原因是100號單元數(shù)據(jù)已修改,如果要寫入一個數(shù)據(jù)到101單元,這時不能直接寫,否則100號單元還是錯的。 Cach
21、e Coherence問題概要:多處理機(jī)系統(tǒng)共享存儲器Cache塊的狀態(tài)訪問的數(shù)據(jù)是最新的,不是“過時”的內(nèi)容第五章 Cache Coherence5.1 Cache Coherence問題5.2 監(jiān)聽總線協(xié)議5.3 基于目錄的Cache一致性協(xié)議5.3.1 目錄的一般性問題5.3.2 全映射目錄5.3.3 有限目錄5.3.4 鏈?zhǔn)侥夸?.4 三種Cache一致性策略5.2 基于目錄的Cache一致性協(xié)議5.2.1 目錄的一般性問題 1.Cache一致性協(xié)議的開銷分析 (1)采用寫無效協(xié)議無效后,當(dāng)其它處理機(jī)再讀該副本時,出現(xiàn)Read miss,要有開銷 (2)采用寫更新協(xié)議需要更新所有Cac
22、he和memory中的副本,所以開銷大,有些處理機(jī)對更新后的數(shù)據(jù)可能不會使用。 2. 基于目錄的一致性協(xié)議的基本思想 當(dāng)處理機(jī)臺數(shù)增加時,一般不用總線結(jié)構(gòu),而采用多級互聯(lián)網(wǎng)絡(luò)。多級互連網(wǎng)絡(luò)實(shí)現(xiàn)廣播功能代價(jià)很大。 為什么需要廣播功能?把一致性命令,如Write-inv,Read-inv等命令要發(fā)送給所有的Cache。 能不能只發(fā)送給存放該副本的Cache?基于目錄的協(xié)議的基本思想 3. 目錄的結(jié)構(gòu) (1)目錄里放什么有關(guān)Cache副本駐留在哪里的信息:所有共享數(shù)據(jù)塊的所有Cache副本的地址表。 (2)每個目錄項(xiàng)(每個數(shù)據(jù)結(jié)構(gòu))包含若干個指向這個塊(每個數(shù)據(jù)塊有個目錄項(xiàng))的Cache副本地址的指
23、針以及一個重寫位(用來說明是否有一個Cache允許把有關(guān)的數(shù)據(jù)寫入)。 (3)基于目錄的Cache一致性協(xié)議是依靠一個目錄來記錄系統(tǒng)之中哪些處理機(jī)的Cache中有指定存儲塊的副本。當(dāng)一臺處理機(jī)希望寫某個共享塊時,通過目錄向有該塊的副本的那些處理機(jī)“點(diǎn)對點(diǎn)”的發(fā)無效信號,使所有其它的副本無效。 4. 目錄的方式(1)集中目錄方式(中心目錄)1976年Tang提出。用一個中心目錄存放所有Cache目錄的副本,它能提供為保證一致性所需要的所有信息。 缺點(diǎn):容量非常大,必須采用聯(lián)想方法來檢查,沖突多,檢索時間長。(2)分布式目錄1978年Censier和Feautrier提出。每個存儲模塊維護(hù)各自的目
24、錄,目錄中記錄著每個存儲塊的當(dāng)前信息。當(dāng)前信息指明哪些Cache有該存儲塊的副本。如下面的圖:D1M1D2M2DmMmP1C1P2C2PmCm互連網(wǎng)絡(luò) 如果C2讀miss,這時C1中有Dirty的副本,則把它寫回memory,內(nèi)存再給C2一個副本,變成Valid。 如果C1寫命中,它告訴memory控制器,控制器發(fā)無效命令給在D1的當(dāng)前向量中有記錄的所有Cache。 5. 三種目錄 全映射(full map)目錄:存放與全局存儲器中每個塊有關(guān)的數(shù)據(jù)。系統(tǒng)中的每個Cache可以同時存儲任何數(shù)據(jù)塊的副本,即每個目錄項(xiàng)包含N個指針(N是處理機(jī)數(shù)目)。 有限(limited)目錄:每個目錄項(xiàng)有固定數(shù)目
25、的指針(小于N)。 鏈?zhǔn)剑╟hained)目錄:將目錄分布到各個Cache(其余同全映射目錄)。5.2.2 全映射目錄 1.目錄項(xiàng)結(jié)構(gòu) 目錄項(xiàng)中有N個處理機(jī)位(對應(yīng)N臺處理機(jī))和一個重寫位,如下圖所示:目錄項(xiàng):重寫位(1位)處理機(jī)位(N位) 處理機(jī)位表示相應(yīng)處理機(jī)的Cache block的狀態(tài)(存在或不存在)。 有一個也只有一個處理機(jī)位為“1”,那么該處理機(jī)可以對該塊進(jìn)行寫操作。 Cache的每個塊有兩個狀態(tài)位:有效位有效塊是否允許寫有效1位 Cache的狀態(tài)位應(yīng)該和目錄項(xiàng)的狀態(tài)一致。1位允許寫目錄項(xiàng):重寫位(1位)處理機(jī)位(N位)Cache狀態(tài)位:2.目錄的三種情況我們來看三臺處理機(jī)(三個C
26、ache)的例子。(1)C1,C2,C3都沒有單元X的副本 目錄項(xiàng)的重寫位被置為未寫(c)狀態(tài),表示無一處理機(jī)允許寫入該數(shù)據(jù)塊。Shared Memoryx:c000dataC1P1C2P2C3P3(2)C1,C2,C3同時請求X單元的副本,這時目錄項(xiàng)中的三個指針(處理機(jī)位)被置一,表示這些Cache中已有數(shù)據(jù)副本。 目錄項(xiàng)的重寫位被置為未寫(c)狀態(tài),表示無一處理機(jī)允許寫入該數(shù)據(jù)塊。Shared Memoryx:c111datax:P1x:P2x:P3C1C2C3(3)C3請求對該塊的寫允許權(quán)時出現(xiàn)第(3)種情形,重寫被置成D狀態(tài),且有一個指針指向C3的數(shù)據(jù)塊。Shared Memoryx:
27、D001dataP1P2 x:P3C1C2C3data3.第二種情況第三種情況的過程 P3向C3發(fā)出寫請求時:(1)C3檢測出包含單元X的塊是有效的,但Cache中的塊允許位狀態(tài)表示不允許處理機(jī)對該塊進(jìn)行寫操作。(2)C3向包含單元X的存儲器模塊發(fā)出寫請求,并暫停P3工作。(3)該存儲器模塊發(fā)出一個無效請求給C1和C2(根據(jù)目錄項(xiàng)的內(nèi)容發(fā)幾個無效信號)(4)C1和C2收到無效請求后,把相應(yīng)位置0,表示含單元X的塊已無效,并發(fā)送一個回答信號給請求的存儲器模塊。(5)存儲器模塊收到回答信號后,將重寫位置1,清除指向C1、C2的指針,發(fā)出允許信號給C3。(6)C3收到寫允許信號后,修改Cache的狀
28、態(tài)并激活處理機(jī)P3。4. 目錄所占空間 假設(shè)存儲器大小和處理機(jī)臺數(shù)N成正比,即臺數(shù)增加時,存儲器的模塊數(shù)也增加,所以數(shù)據(jù)塊的個數(shù)也和N成正比。 另外目錄項(xiàng)的大小也和處理機(jī)臺數(shù)N成正比,所以目錄的總所占空間和N2成正比。 即:目錄項(xiàng)數(shù)*項(xiàng)大小 = O ( N2) 太大不便于擴(kuò)展。5.2.3 有限目錄 解決目錄過大的問題。任意一個數(shù)據(jù)塊在Cache中同時存在的副本數(shù)量有一定限制,那么目錄大小的增加不會超過一個常數(shù)。符號表示法: DiriX i:指針的數(shù)量。X是NB,表示沒有廣播功能的方案。 DirNNB表示沒有廣播功能的全映射方式 DiriNB(i N):使用i個指針的沒有廣播功能的有限目錄協(xié)議方
29、式。 除了多于i個Cache請求讀一個特定的數(shù)據(jù)塊的情況外,有限目錄協(xié)議與全映射協(xié)議類似。 有限目錄中指針不是每臺處理機(jī)一位,而是針對處理機(jī)的二進(jìn)制標(biāo)識符進(jìn)行編碼,所以指針占log2N位存儲器。 在全映射方式中,每個處理機(jī)對應(yīng)一個指針,所以N臺處理機(jī)一共用了N位,而有限目錄中只用log2N位,設(shè)N =16,則log216 = 4。 如果允許兩個指針,則需要8位。 所以目錄的存儲容量為O(Nlog2N),比全映射容易擴(kuò)充。 如果多處理機(jī)系統(tǒng)中的處理機(jī)具有局部性,即在任何給定的時間間隔內(nèi),只有一小部分處理機(jī)訪問某個給定的存儲器字,那么有限目錄足以應(yīng)付這個小的工作處理機(jī)組了。5.2.4 鏈?zhǔn)侥夸?用
30、目錄指針鏈來跟蹤共享數(shù)據(jù)副本。 兩種方法,單鏈法與雙鏈法。 數(shù)據(jù)塊共享副本的數(shù)目并無限制。 所占的空間及可擴(kuò)展性同有限目錄。 它的工作原理如下過程所示。(1)P1要讀單元X,則memory發(fā)送一份副本給C1,同時送給C1一個鏈結(jié)束指針(CT:Chain Termination),存儲器也保存指向C1的指針。Shared Memoryx:cdataP1P2P3C1C2C3x:CTdata(2)當(dāng)P2要讀單元X時,存儲器送一份副本給C2,同時送給C2一個指向C1的指針,存儲器保存指向C2的指針。Shared Memoryx:cdataP1P2P3C1C2C3x:CTdatax:data(3)重復(fù)以
31、上步驟,所有Cache都得到單元X的副本。(4)如果P3要對單元X進(jìn)行寫操作,它必須沿著鏈發(fā)送一個數(shù)據(jù)無效信息。為了保證順序一致性,在有鏈結(jié)束指針的處理機(jī)回答無效信號之前,存儲器模塊不給P3寫允許權(quán)。 無效命令從一個Cache到一個Cache順序進(jìn)行,不象snoopy協(xié)議那樣同時發(fā)送給所有Cache。(5)替換。假設(shè)C1到CN都有單元X的副本,還假設(shè)單元X和單元Y都映射到同一個高速緩存塊(直接映射法)。如果處理機(jī)Pi要讀單元Y,它首先必須把X所在的塊從Cache中去掉,這可以采用兩種方法: 1)沿著鏈發(fā)一個消息使Ci+1的指針指向Ci-1,這樣使Ci從鏈中去掉(這時Ci中存放Y了)。 2)使C
32、i+1到CN中的單元X無效(這時Ci中存放Y了)。目錄占用的存儲容量:指針的尺寸以處理機(jī)數(shù)目的對數(shù)關(guān)系增長(這和有限目錄相同)log2N,每個Cache塊的指針數(shù)目與處理機(jī)個數(shù)無關(guān)。解決Cache一致性的其它辦法:(1)不允許有私有 Cache:Shared Cache方案(2)可寫的共享數(shù)據(jù)不存放在Cache中第五章 Cache Coherence5.1 Cache Coherence問題5.2 監(jiān)聽總線協(xié)議5.3 基于目錄的Cache一致性協(xié)議5.4 三種Cache一致性策略 5.4.1 采用Write-Through策略的Cache 5.4.2 采用Write-Bach策略的Cache
33、5.4.3 采用Write-Once策略的Cache5.4 三種Cache一致性策略5.4.1 采用Write-Through策略的Cache 數(shù)據(jù)塊的兩種狀態(tài):有效和無效(指本地處理機(jī)相應(yīng)數(shù)據(jù)塊的狀態(tài),并非整個Cache的狀態(tài)。) 一致性的四種操作: Rr和Wr:其它處理機(jī)對該數(shù)據(jù)塊(指在其它處理機(jī)Cache中的數(shù)據(jù)塊)的讀寫 Rl和Wl:是本地處理機(jī)對該數(shù)據(jù)塊的讀寫狀態(tài)轉(zhuǎn)移圖如下:有效無效RrWlRlRl, WlWrRr, WrCache的數(shù)據(jù)塊為無效時: 其它處理機(jī)的任何操作都不會影響本地Cache的這種無效狀態(tài); 只有在本地處理機(jī)讀或者寫了數(shù)據(jù)塊中的某個數(shù)據(jù),即對Cache執(zhí)行了Rea
34、d或Write命令時,該數(shù)據(jù)塊的狀態(tài)才會成為“有效”。 Cache的數(shù)據(jù)塊為“有效”時: 本地處理機(jī)的讀、寫操作,不會影響該狀態(tài); 其它處理機(jī)對存有相同內(nèi)容的數(shù)據(jù)塊讀,不會影響該狀態(tài); 其它處理機(jī)對存有相同內(nèi)容的數(shù)據(jù)塊執(zhí)行了寫操作,該數(shù)據(jù)塊狀態(tài)變成無效。5.4.2 采用Write-Back策略的Cache 1.數(shù)據(jù)塊的三種狀態(tài) RO (只讀)狀態(tài):表示整個系統(tǒng)中不止一個副本正確(例如一個在Cache中,一個在memory中)。 讀-寫狀態(tài):表示整個系統(tǒng)中,只有這個副本是正確的,其它都“過時”(即無效),這說明這個 Cache的數(shù)據(jù)塊至少被寫過一次,但memory中的內(nèi)容還沒有被修改。 無效狀態(tài)
35、:“過時”數(shù)據(jù)。2. 一致性的四種操作: Rr和Wr:其它處理機(jī)對該數(shù)據(jù)塊(指在其它處理機(jī)Cache中的數(shù)據(jù)塊)的讀寫 Rl和Wl:是本地處理機(jī)對該數(shù)據(jù)塊的讀寫狀態(tài)轉(zhuǎn)移圖如下:3. 處于RO狀態(tài) 本地讀,遠(yuǎn)程讀不會改變狀態(tài) 本地寫,使ROR-W(這時只有一個數(shù)據(jù)塊正確) 遠(yuǎn)程寫,使RO無效無效ROWlWrRl, RrW-R4. 處于讀-寫狀態(tài)無效RORrWrRl,WlW-R 本地讀、寫不會改變狀態(tài) 遠(yuǎn)程讀:這時只有這個 Cache的數(shù)據(jù)塊是正確的,所以要有“寫回”動作(即把內(nèi)容寫回Memory),另外還需要把正確的數(shù)據(jù)傳遞給遠(yuǎn)程讀的處理機(jī)相應(yīng)的Cache。兩個Cache的狀態(tài)RO 遠(yuǎn)程寫:把本
36、地處理機(jī)的數(shù)據(jù)塊傳遞給遠(yuǎn)程處理機(jī),遠(yuǎn)程處理機(jī)對數(shù)據(jù)塊進(jìn)行寫操作,遠(yuǎn)程處理機(jī)對應(yīng)的Cache狀態(tài)變?yōu)镽O,而本地的Cache變?yōu)闊o效狀態(tài)。5. 處于無效狀態(tài)無效ROWlRr,WrW-RRl 本地讀:無效RO 本地寫:無效WR(同時使其它擁有相同內(nèi)容的數(shù)據(jù)塊的Cache中相應(yīng)的數(shù)據(jù)塊的狀態(tài)變成無效) 遠(yuǎn)程寫、遠(yuǎn)程讀:不影響狀態(tài)的改變5.4.3 采用Write-Once策略的Cache 1. Write-Through和Write-Back的缺點(diǎn) Write-Through策略的弱點(diǎn)是每次都要修改memory,所以總線流量增大; Write-Back策略的弱點(diǎn)是Cache寫了一次后,Memory中的內(nèi)容不一致。2. Write-Once的基本思想 把Write-Through和Write-Back兩者的優(yōu)點(diǎn)結(jié)合在一起:減少總線流量。 Cache的第一次寫采用Write-Through策略(有一個以上的副本正確); Cache而后的寫采用Write-Back策略(只有一份副本正確)。 為了區(qū)分是否是第一次寫,把“讀-寫”狀態(tài)分成兩個狀態(tài):Reserved和Drity。3. 數(shù)據(jù)塊
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《戰(zhàn)略采購管理》課件
- 二項(xiàng)式系數(shù)的性質(zhì)課件
- 結(jié)腸癌手術(shù)案例分析
- 油藏地球物理一體化地震正演軟件ColchisFM介紹
- 工廠證件轉(zhuǎn)讓合同范例
- 消防監(jiān)測合同范例
- 商務(wù)代理合同范例
- 住房押金合同范例
- 鞋類訂貨合同范例
- 團(tuán)員勞動合同范例
- 2024-2030年中國船舶用傳動軸行業(yè)市場研究及發(fā)展前景預(yù)測報(bào)告
- CJT272-2008 給水用抗沖改性聚氯乙烯(PVCM)管材及管件
- 深圳市 2022-2023 學(xué)年七年級上學(xué)期期末地理試題【帶答案】
- 2024年黑龍江省齊齊哈爾市中考數(shù)學(xué)試題
- 2024年長沙電力職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫附答案
- 美學(xué)導(dǎo)論智慧樹知到期末考試答案章節(jié)答案2024年山東工藝美術(shù)學(xué)院
- 裝修設(shè)計(jì)招標(biāo)評標(biāo)辦法
- 乒乓球校隊(duì)選拔方案
- 熱水供水系統(tǒng)運(yùn)營維護(hù)服務(wù)投標(biāo)方案(技術(shù)方案)
- 現(xiàn)實(shí)與理想-西方古典繪畫 課件-2023-2024學(xué)年高中美術(shù)人美版(2019)美術(shù)鑒賞
- 快遞安全教育培訓(xùn)課件
評論
0/150
提交評論