Cache超清晰逻辑详解----不一致性(待更)
文章目錄
- Cache超清晰邏輯詳解
- 造成Cache與主存內容不一致的原因主要有兩個:
- cache更新協議中的算法
- 解決Cache不命中的情況:
- 在多機系統中解決不一致性:
- 1.共享cache法
- 2. 共享數據不放私有cache中
- 3. 監視法Snooping
- 4.目錄法
Cache超清晰邏輯詳解
Cache是在主存和CPU之間設置的一個高速的、容量相對較小的存儲器(SRAM)。
題外話扯一下SRAM和DRAM的特點:
SRAM:斷電后會消失,
DRAM:刷新,電容,周期性地更新,訪問速度較慢,耗電量較大
正常情況下,Cache中的內容應該是主存內容的副本,但有時會出現Cache與主存內容不一致的情況,這就是Cache的一致性問題。
造成Cache與主存內容不一致的原因主要有兩個:
- CPU寫Cache,cache中的內容改了,但是沒有立即寫主存,主存沒有變
- I/O處理機或I/O設備寫主存,主存中的內容修改了,cache中的內容沒有修改
分別對應下面兩幅圖
還有別的原因:
在多機系統中,通常各個CPU都擁有自己的私有Cache
cache更新協議中的算法
- 寫回法WB:指處理機把數據寫入Cache的同時,也將數據寫入主存。
- 寫直達WT:指在CPU執行寫操作時,只寫入Cache,不寫入主存。
寫回法:
當Cache沒有命中且已滿時,將置換出去的、已被修改的塊寫入主存。在采用這種更新算法的Cache塊表中,有一個“臟位”,當一個塊中有數據被修改時,臟位被置為1。
When a processor writes a new value into its cache, the new value is also written into the memory module that holds the cache block being changed. Some copies of this block may exist in other caches, these copies must be updated to reflect the change caused by the write operation.
寫直達:
When a processor writes a new value into its cache, this value is written into the memory and all other copies in other caches are invalidated. This also done by broadcasting the invalidation request through the system. All caches receives this invalidation request and the cache which contains the updated data flushes its cache line.
WB和WT的優缺點:
-
可靠性:寫直達法優于寫回法。因為寫直達法始終能夠保證Cache是主存的副本,如果Cache中發生錯誤,還可以從主存中得到糾正。對于寫回法,在數據被修改后、寫回到主存之前,Cache中存放的并不是主存的副本。
-
控制的復雜性:寫直達法比寫回法簡單。對于寫回法必須為每個塊設置一個臟位,并且要對臟位進行管理和判斷,為了保證Cache的正確性,通常要采用糾錯碼。
對于寫直達法,不需要設置臟位,只需要采用簡單的奇偶校驗就可保證Cache中是主存的副本。 -
與主存的通信量:寫回法少于寫直達法。對于寫直達法,每次執行寫操作都必須寫、且只寫一個字到主存。對于寫回法,大部分的寫操作只需要寫Cache,不需要寫主存。
-
硬件實現的代價:寫回法優于寫直達法。對于寫直達法,每次寫操作都要寫主存,為了節省寫主存花費的時間,通常會采用一個高速小容量的緩沖存儲器,把要寫主存的數據和地址先放到這個緩沖存儲器中,每次讀主存時,也要首先判斷所讀的數據是否在這個緩沖存儲器內。寫回法不需要設置緩沖存儲器。
解決Cache不命中的情況:
-
不按寫分配法:在寫Cache不命中時,只把所要寫的字寫入主存,不需要將這個字所在的塊讀入到Cache中,在寫直達法中采用。
-
按寫分配法:在寫Cache不命中時,除了把所要寫的字寫入主存外,還要把包括所寫字在內的一個塊從主存讀入Cache,在寫回法中采用。
那為什么寫直達采用不按寫分配的方式呢?
寫回法采用按寫分配的方式呢?
在多機系統中解決不一致性:
1.共享cache法
2. 共享數據不放私有cache中
為了解決多核以及多處理器的多個緩存之間的數據不一致提出來的,緩存一致性協議分為兩種,第一種是基于窺探的協議(snoop-based),第二種是基于目錄的協議(directory-based)
3. 監視法Snooping
4.目錄法
總結
以上是生活随笔為你收集整理的Cache超清晰逻辑详解----不一致性(待更)的全部內容,希望文章能夠幫你解決所遇到的問題。