旁觀緩衝區 (Look aside Buffer)


什麼是旁觀緩衝區?

旁觀緩衝區 (LAB) 是一種用於計算機系統中儲存頻繁訪問資料的快取記憶體。LAB 位於 CPU 和主記憶體之間,充當高速緩衝區以提高系統性能。

LAB 的工作原理是快取主記憶體中 CPU 頻繁訪問的部分資料。當 CPU 請求主記憶體中的資料時,LAB 首先檢查緩衝區中是否存在該資料。如果在 LAB 中找到資料,則立即將其檢索併發送到 CPU,這與從主記憶體中提取資料相比,可以顯著減少訪問時間。

旁觀緩衝區在哪裡使用?

LAB 通常用於主記憶體訪問時間較慢的計算機系統(例如硬碟驅動器)中,以提高系統的整體效能。它也用於虛擬記憶體系統中,在其中儲存頻繁訪問的頁面以減少頁面錯誤並提高效能。

轉換旁觀緩衝區 (TLB)

轉換旁觀緩衝區 (TLB) 是一種特殊的快取型別,可以幫助處理器快速訪問最近使用的資料。它儲存最近訪問的頁表條目,並幫助處理器在給定虛擬地址時快速檢索幀號並形成實際地址。

當處理器在 TLB 中查詢虛擬地址時,它要麼找到頁表條目(稱為 TLB 命中),要麼找不到(稱為 TLB 未命中)。如果是命中,處理器將檢索幀號並形成實際地址。如果是未命中,則在處理頁表時將頁號用作索引。TLB 首先檢查所需頁面是否已存在於主記憶體中。如果不存在,則發出頁面錯誤,並更新 TLB 以包含新的頁面條目。

TLB 比主記憶體更快更小,但比暫存器更便宜更大。它用作高速關聯快取,用於減少有效記憶體訪問時間 (EMAT)。EMAT 使用 TLB 的命中率、記憶體訪問時間和 TLB 訪問時間計算。

在場景 1 中,TLB 找到相關虛擬地址的頁表條目,並返回相應的物理地址供 CPU 訪問主記憶體。這是 TLB 命中。

在場景 2 中,TLB 未找到相關虛擬地址的頁表條目,因此它將頁號傳送到 CPU 以在頁表中查詢。如果頁面不存在於主記憶體中,則會發生頁面錯誤,並且 TLB 將使用新的頁面條目進行更新。這是 TLB 未命中。

區域性性原理

  • TLB 只包含頻繁訪問頁面的條目

  • 遵循區域性性原理

作業系統轉換旁觀緩衝區

  • TLB 使用標籤和鍵進行對映

  • 當在 TLB 中找到所需條目時發生 TLB 命中

  • 如果發生 TLB 命中,CPU 可以訪問主記憶體中的實際位置

  • 如果發生 TLB 未命中,CPU 必須訪問主記憶體中的頁表,然後訪問實際幀

  • TLB 命中率會影響有效訪問時間 (EAT)

  • 可以透過提高 TLB 命中率來降低 EAT

分頁的缺點

  • 頁表大小可能非常大,浪費主記憶體

  • CPU 從主記憶體讀取單個字需要更多時間

  • 可以透過增加頁面大小來減小頁表大小,但這會導致內部碎片和頁面浪費

  • 多級分頁會增加有效訪問時間

  • 使用儲存在內部的頁表的暫存器可以減少訪問時間,但與頁表大小相比,暫存器價格昂貴且空間小

轉換旁觀命中和未命中的訪問時間

有效訪問時間 (EAT)

TLB 用作高速關聯快取,用於減少有效記憶體訪問時間。

  • TLB 可以透過減少訪問頁表的時間來降低 EAT

  • EAT 公式:EAT = P(t + m) + (1 - P)(t + k.m + m)

  • P = TLB 命中率,t = 訪問 TLB 的時間,m = 訪問主記憶體的時間,k = 單級分頁為 1

  • 提高 TLB 命中率會降低 EAT

  • 多級分頁會增加 EAT

結論

分頁是作業系統中的一種記憶體管理技術,它將記憶體劃分為頁面,並將程序劃分為塊。但是,頁表的大小可能會變得非常大,從而浪費記憶體並增加訪問時間。轉換旁觀緩衝區 (TLB) 充當常用頁表條目的快取記憶體,從而減少頁表的有效訪問時間。TLB 命中率會影響有效訪問時間,提高它會減少訪問時間。TLB 比主記憶體更快更小,但比暫存器更便宜更大。總的來說,TLB 在減少記憶體訪問時間和提高系統性能方面起著至關重要的作用。

更新於:2023年7月25日

311 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.