什麼是計算機體系結構中基於軟體的協議的設計空間?


基於軟體的方法定義了一種良好且具有競爭力的方案,因為它們幾乎不需要硬體支援,並且與基於硬體的協議相比,它們會導致同樣數量有限的失效故障。所有基於軟體的協議都依賴於編譯器支援。基於軟體的協議的設計空間如圖所示。

最簡單的方法是**無差別失效**,其中在每個程式設計方法結束時使整個快取失效。此方案只需要一個硬體結構來傳遞或關閉並使快取失效。

選擇性失效方案可以根據程式方法的生成進行分類:

關鍵方法方案依賴於這樣的假設:共享讀寫變數總是由軟體同步工具保護的關鍵方法建立。當關鍵方法完成後,這些變數將被區分失效。它可以共享屬於相同關鍵方法的變數位於同一頁面上,並且每個頁面都與一個一次性識別符號相關聯。載入快取行也將定位快取中相關的的一次性識別符號。失效依賴於一次性識別符號。

提出了三種並行的for迴圈選擇性失效方案來消除無差別失效的缺點:

**快速選擇性失效**方案依賴於直寫快取策略,並引入三個指令來控制快取訪問:記憶體讀取、快取讀取和快取失效。當確認變數已固定在快取中時,使用快取讀取訪問變數;否則,將應用記憶體讀取命令。

一個額外的位,稱為更改位,被插入到每個快取行中。快取失效命令將所有更改位設定為真。嘗試讀取更改位設定為真的變數將導致從記憶體讀取。

**時間戳方案**為每個資料結構分配一個時鐘,併為每個快取行分配一個時間戳條目。當資料結構被重新整理時,與資料結構相關的時鐘在每個程式設計方法結束時重新整理。當塊在快取中重新整理時,快取目錄中的時間戳設定為相應時鐘+1的值。

為了防止不必要的失效,提出了相同的方法,稱為**版本控制方案**。此技術的核心思想是,程式方法中只有一個程序被允許寫入變數,並且此寫入會建立變數的新版本。當寫入程序退出其程式方法時,新版本將成為可供其他處理器使用的當前版本。

首先,每個處理器為其可使用的每個變數維護一個稱為當前版本號 (CVN) 的計數器。其次,每個快取行都擴充套件了一個稱為出生版本號 (BVN) 的標籤。

CVN表示處理器必須使用的變數版本,而BVN表示快取副本所屬的特定版本。當 CVN 大於 BVN 時發生快取未命中,否則可以從快取訪問變數。

更新於:2021年7月23日

748 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始
廣告