有幾個高速緩存一致性協議在附近,如MSI,MESI,MOSI,MOESI等是否可以從一個不同的核心中的L1緩存線協議獲取狀態信息?
讓我們假設這樣的場景:一個CPU包含四核與L1專用高速緩存(L1高速緩存大小在這裏並不重要)。這裏的內存地址是說明性的。
核 - 0請求的存儲器訪問處理0x1111,從而該值將被加載到從主存儲器其L1高速緩存行。
核心-1請求存儲器訪問,以解決0x2222,從而該值將被加載到從主存儲器其L1高速緩存行。
核 - 2請求存儲器訪問,以解決0x1111(由核 - 0先前訪問)。該引用已經加載到Core-0的緩存行中,因此,緩存一致性協議將複製包含引用的Core-0的緩存行,並最終將其存儲到Core-2的緩存行中。
問題1:是否核心2知道,內存訪問已經被內核-0的緩存行,而不是主內存提供?或者高速緩存一致性協議對於檢索數據的位置是透明的?
問題2:核 - 0,和芯2有步驟3。但是在後其高速緩存線的共享狀態,能夠核 - 2從獲取當前狀態從不同的內核給出內存參考?在這種情況下,有可能Core-2知道對於此內存引用0x1111 Core-0緩存行在共享狀態?