什麼是翻譯後備緩衝區?

CPU 是極其複雜的野獸。有大量相互連接的部件,它們都必須完美協同工作才能達到我們所看到的性能水平。內存性能是現代 CPU 性能的關鍵因素,特別是作為限制因素。

為什麼內存速度如此重要?

CPU 的速度快得令人難以置信,最新一代在充分冷卻的情況下運行速度為 5.7GHz。這使他們每秒可以完成 57 億次操作。許多這些操作對需要存儲在內存中的某種類型的數據執行操作。

稱為 RAM 的主系統內存也非常快。不幸的是,與 CPU 以外的任何東西相比,它的速度都非常快。現代高端 RAM 的絕對延遲約為 60 納秒。不幸的是,這相當於大約 342 個 CPU 週期。為了加速內存訪問,使用了動態緩存數據的 CPU 緩存。該緩存位於 CPU 芯片本身上,並使用 SRAM 單元而不是 DRAM 單元,使其速度更快。不幸的是,CPU 緩存也比系統 RAM 小很多,通常總計不到 100MB。儘管如此,儘管它的體積很小,但分層 CPU 緩存系統極大地提高了系統性能。

虛擬內存來搞亂一切

現代計算機使用稱為虛擬內存的系統。不是為進程分配物理內存地址,而是使用虛擬內存地址。每個進程都有自己的虛擬內存地址空間。這有兩個好處。首先,它提供了屬於一個進程的內存和屬於另一個進程的內存之間的簡單分離。這有助於防止惡意軟件從其他軟件的內存中讀取數據從而可能訪問敏感信息的攻擊。它還對進程隱藏了物理內存結構。這允許 CPU 將很少使用的內存位移動到存儲上的頁面文件,而不必從虛擬 RAM 中卸載它。這允許計算機溫和地管理需要比物理內存更多 RAM 的場景。沒有虛擬內存,

不幸的是,如果您使用虛擬內存地址,計算機需要實際將這些虛擬內存地址轉換為物理內存地址才能讀取數據。這就需要一個表來存儲所有虛擬內存地址到物理內存地址的轉換。它的大小直接取決於使用的​​ RAM 量。它通常相當小,至少與系統 RAM 的容量相比是這樣。不幸的是,如果您將虛擬地址和物理地址之間的轉換存儲在 RAM 中,則需要為每個對 RAM 的請求向 RAM 發出兩次請求。一個找到要請求的物理地址,然後另一個實際訪問該位置。

輸入翻譯後備緩衝區

這個問題的解決方案是將翻譯表存儲在更快的地方。至少從速度的角度來看,CPU 緩存很適合這個要求。然而,這樣做的問題是 CPU 緩存很小,而且已經被大量使用。該表不僅不適合緩存,而且這樣做會破壞其已經決定性能的使用。

當然,如果緩存的原理已經適用於內存訪問,為什麼不重複一下翻譯表呢?這正是翻譯後備緩衝器 (Translation Lookaside Buffer, TLB) 的含義。它是最近地址轉換的高速緩存。它不足以存儲整個表,但它的小尺寸意味著它可以在單個時鐘週期內非常快速地響應。

任何內存請求都通過 TLB。如果有 TLB 命中,它可以為實際請求提供物理內存地址,通常會增加一個延遲週期。如果有 TLB 未命中,則必須從主內存執行查找。大約 5 個週期的 TLB 未命中會造成很小的性能損失,這種損失超過了內存訪問延遲。一旦從系統 RAM 中檢索到地址轉換,它就會被推入 TLB,然後立即通過 TLB 命中重複請求。

注意:TLB 驅逐有不同的方案。有些可能使用先進先出或 FIFO 方案。其他人可能會使用最不常用或 LFU 方案。

在地址轉換錶中沒有條目的極少數情況下,會導致頁面錯誤,因為請求的數據不在 RAM 中。然後操作系統必須處理故障並將數據從存儲器傳輸到 RAM,然後請求才能繼續。

結論

Translation Lookaside Buffer(TLB)是一種高速 CPU 高速緩存,專用於緩存系統 RAM 中頁面文件的最新地址轉換。這是必要的,因為在所有現代計算機中實現的虛擬內存系統都需要對 RAM 的每個請求兩次請求 RAM。一個將虛擬內存地址轉換為物理內存地址,另一個實際訪問物理地址。通過緩存最近的翻譯,內存延遲可以大大減少 TLB 命中。

必須注意確保緩存的翻譯與當前活動的進程相關。由於每個進程都有不同的虛擬地址空間,因此它們不能被重用。沒有嚴格限制這是 Meltdown 漏洞背後的原因。



Leave a Comment

如何克隆硬碟

如何克隆硬碟

在資料是寶貴資產的現代數位時代,在 Windows 上複製硬碟對許多人來說可能是一個至關重要的過程。這份綜合指南

如何修復驅動程式 WUDFRd 在 Windows 10 上載入失敗?

如何修復驅動程式 WUDFRd 在 Windows 10 上載入失敗?

您在啟動電腦時是否遇到錯誤訊息,提示驅動程式 WUDFRd 無法在電腦上載入?

如何修復 NVIDIA GeForce Experience 錯誤代碼 0x0003

如何修復 NVIDIA GeForce Experience 錯誤代碼 0x0003

您是否在桌面上遇到 NVIDIA GeForce 錯誤代碼 0x0003?如果是,請閱讀部落格以了解如何快速輕鬆地修復此錯誤。

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

如何在 2023 年從 Windows PC 中移除 GPU

如何在 2023 年從 Windows PC 中移除 GPU

您需要從 PC 上卸下 GPU 嗎?和我一起在這個分步指南中解釋如何從您的 PC 中刪除 GPU。

如何在台式機和筆記本電腦中安裝 NVMe SSD

如何在台式機和筆記本電腦中安裝 NVMe SSD

買了新的 NVMe M.2 SSD 但不知道如何安裝?繼續閱讀以了解如何在筆記本電腦或台式機上安裝 NVMe SSD。

什麼是邏輯炸彈?

什麼是邏輯炸彈?

邏輯炸彈是一種安全事件,攻擊者會在其中設置延遲操作。繼續閱讀以了解更多信息。

什麼是震網?

什麼是震網?

Stuxnet 是一種自我傳播的蠕蟲病毒。這是第一次使用網絡武器,也是第一個惡意軟件實例。

什麼是道德黑客?

什麼是道德黑客?

道德黑客是在法律約束下行事的黑客。繼續閱讀以了解有關該主題的更多信息。

什麼是對稱加密?

什麼是對稱加密?

密碼學有很多不同的部分。如果你想加密一些數據,你可以使用兩種類型的算法: symmetric