精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MMU、TLB、TWU深度剖析:打破砂鍋問到底

存儲 存儲架構(gòu)
MMU是Memory Management Unit的縮寫,中文名是內(nèi)存管理單元,有時稱作分頁內(nèi)存管理單元(英語:paged memory management unit,縮寫為PMMU)。

在計算機的世界里,內(nèi)存管理就像是一場精密的舞蹈,每一個環(huán)節(jié)都至關(guān)重要。而其中,地址轉(zhuǎn)換則是這場舞蹈的核心舞步,它負責(zé)將程序中使用的虛擬地址精準(zhǔn)地轉(zhuǎn)換為物理內(nèi)存地址。這一過程對于實現(xiàn)內(nèi)存隔離、共享和保護起著決定性的作用。要是沒有地址轉(zhuǎn)換,每個進程就得直接操作物理地址,編程難度會大幅增加,系統(tǒng)也無法同時運行多個程序,還缺乏內(nèi)存保護,一個程序出錯就可能導(dǎo)致整個系統(tǒng)崩潰。

而在地址轉(zhuǎn)換這個關(guān)鍵環(huán)節(jié)中,MMU(內(nèi)存管理單元)、TLB(旁路轉(zhuǎn)換緩沖)和 TWU(可能是特定場景下與內(nèi)存管理相關(guān)的概念,這里先按下不表,后續(xù)詳細展開)就像是三位緊密合作的舞者,各自發(fā)揮著獨特而關(guān)鍵的作用,共同保障著內(nèi)存管理的高效運行。它們的協(xié)同工作,不僅提升了系統(tǒng)的性能和穩(wěn)定性,還為多任務(wù)處理、內(nèi)存保護等重要功能奠定了堅實基礎(chǔ)。接下來,就讓我們一同深入探索 MMU、TLB 和 TWU 的神秘世界,揭開它們在計算機內(nèi)存管理中那令人驚嘆的運作機制。

Part1.MMU:內(nèi)存管理的幕后大管家

1.1MMU概述

MMU是Memory Management Unit的縮寫,中文名是內(nèi)存管理單元,有時稱作分頁內(nèi)存管理單元(英語:paged memory management unit,縮寫為PMMU)。它是一種負責(zé)處理中央處理器(CPU)的內(nèi)存訪問請求的計算機硬件。它的功能包括虛擬地址到物理地址的轉(zhuǎn)換(即虛擬內(nèi)存管理)、內(nèi)存保護、中央處理器高速緩存的控制,在較為簡單的計算機體系結(jié)構(gòu)中,負責(zé)總線的仲裁以及存儲體切換(bank switching,尤其是在8位的系統(tǒng)上)。

內(nèi)存管理單元(MMU)的一個重要功能是使系統(tǒng)能夠運行多個任務(wù),作為獨立程序在自己的私有虛擬內(nèi)存空間中運行。它們不需要了解系統(tǒng)的物理內(nèi)存映射,即硬件實際使用的地址,也不需要了解可能同時執(zhí)行的其他程序。

圖片圖片

打個比方,我們可以把計算機的內(nèi)存想象成一個大型的倉庫,里面存放著各種各樣的物資(數(shù)據(jù)和程序)。而運行在計算機上的眾多程序,就如同一個個前來領(lǐng)取物資的客戶。如果沒有一個有效的管理機制,這些客戶可能會在倉庫里隨意翻找,不僅效率低下,還可能會出現(xiàn)混亂,導(dǎo)致物資的損壞或丟失。

而 MMU 就像是這個倉庫的大管家,它制定了一套嚴格而有序的管理規(guī)則。每個客戶(程序)在訪問倉庫(內(nèi)存)時,都需要通過 MMU 這個大管家進行 “登記” 和 “授權(quán)”,然后由大管家將客戶的 “需求指令”(虛擬地址)準(zhǔn)確無誤地轉(zhuǎn)換為倉庫中實際的 “物資存放位置”(物理地址),這樣客戶就能順利地獲取到自己需要的物資,同時也保證了倉庫的秩序和物資的安全。

從專業(yè)的角度來說,MMU 是一種負責(zé)處理中央處理器(CPU)的內(nèi)存訪問請求的計算機硬件。它的出現(xiàn),讓計算機系統(tǒng)能夠更加高效、穩(wěn)定地運行多個任務(wù),仿佛為每個任務(wù)都打造了一個屬于它們自己的獨立小世界,互不干擾,各自精彩。

1.2MMU起源

在計算機發(fā)展的早期階段,硬件資源十分有限,就像是一個狹小的倉庫,內(nèi)存空間非常小,而且程序?qū)?nèi)存的訪問是直接而簡單粗暴的,就如同在一個小房間里隨意堆放物品,沒有任何管理規(guī)則。程序員需要手動分配和釋放內(nèi)存,這就要求他們對內(nèi)存的使用有深入的了解,稍有不慎就可能出現(xiàn)內(nèi)存泄漏或其他錯誤,就像在小房間里找東西時,不小心把東西放錯地方或者弄丟了一樣。那個時候,程序直接訪問物理內(nèi)存,操作系統(tǒng)也只是簡單地 “加載”“運行” 或 “卸載” 應(yīng)用程序。

隨著計算機技術(shù)的飛速發(fā)展和軟件的不斷膨脹,計算機需要處理的任務(wù)越來越復(fù)雜,內(nèi)存需求也越來越大。就好比一個小倉庫要容納越來越多的物資,單任務(wù)批處理的模式已經(jīng)無法滿足需求,多任務(wù)處理的需求應(yīng)運而生。同時,應(yīng)用程序所需的內(nèi)存量也不斷增加,甚至超過了物理內(nèi)存的大小。這就像小倉庫已經(jīng)裝不下所有的物資了,怎么辦呢?

為了解決這些問題,聰明的計算機科學(xué)家們提出了虛擬內(nèi)存的思想。虛擬內(nèi)存就像是給計算機內(nèi)存這個小倉庫加了一個 “虛擬擴展空間”,程序所需的內(nèi)存可以遠超物理內(nèi)存的大小,操作系統(tǒng)會把當(dāng)前需要執(zhí)行的部分留在內(nèi)存中,而不需要執(zhí)行的部分留在磁盤中,就像把暫時不用的物資存放到倉庫外面的臨時存儲區(qū)。這樣,就可以滿足多個應(yīng)用程序同時駐留內(nèi)存并并發(fā)執(zhí)行,就好像在小倉庫有限的空間里,通過合理調(diào)配物資,讓多個客戶都能順利拿到自己需要的東西。

在這樣的背景下,MMU 應(yīng)運而生,它就像是專門為管理這個復(fù)雜的內(nèi)存 “倉庫” 而聘請的高級大管家。MMU 接替了操作系統(tǒng)內(nèi)存管理中比較復(fù)雜的部分,比如地址翻譯,將虛擬地址翻譯成物理地址,就像大管家能夠準(zhǔn)確地把客戶的 “虛擬需求位置” 轉(zhuǎn)換為實際的 “物資存放位置”。同時,內(nèi)存訪問效率則交給了 cache(高速緩存)去做,或者通過提高內(nèi)存總線的帶寬來實現(xiàn),就像給倉庫配備了快速通道,讓物資的搬運更加高效。

1.3MMU 架構(gòu)探秘

MMU 的架構(gòu)設(shè)計精妙絕倫,它主要由幾個關(guān)鍵部分組成,其中虛擬地址空間和物理地址空間是理解 MMU 工作原理的核心概念。虛擬地址空間是程序運行時所看到的地址范圍,它為程序員提供了一個連續(xù)、獨立且方便編程的地址環(huán)境。而物理地址空間則是實際內(nèi)存芯片上的地址范圍,它反映了內(nèi)存的真實物理布局。

以 32 位操作系統(tǒng)為例,虛擬地址空間通常為 4GB(2 的 32 次方),而物理地址空間則取決于實際安裝的物理內(nèi)存大小,可能小于 4GB,比如常見的 2GB、4GB 等。這兩者之間存在著一種映射關(guān)系,就像一個城市的地圖,虛擬地址空間是游客手中的旅游地圖,上面標(biāo)注的景點位置(虛擬地址)方便游客規(guī)劃行程,而物理地址空間則是城市的實際地理布局,景點的真實位置(物理地址)需要通過一定的轉(zhuǎn)換才能對應(yīng)上旅游地圖上的標(biāo)注。

當(dāng)程序訪問內(nèi)存時,MMU 會執(zhí)行虛實地址轉(zhuǎn)化過程。具體來說,MMU 會通過查詢頁表(一種存儲虛擬地址到物理地址映射關(guān)系的數(shù)據(jù)結(jié)構(gòu))來完成地址轉(zhuǎn)換。假設(shè)虛擬地址為 VA,MMU 首先會根據(jù) VA 中的頁號部分,在頁表中查找對應(yīng)的頁表項(PTE),每個頁表項記錄了該虛擬頁對應(yīng)的物理頁框號以及一些訪問權(quán)限等控制信息。

找到對應(yīng)的頁表項后,MMU 會將物理頁框號與虛擬地址中的頁內(nèi)偏移部分組合起來,從而得到最終的物理地址 PA,這樣就完成了從虛擬地址到物理地址的轉(zhuǎn)換,就像通過旅游地圖上的景點編號(頁號)在城市地理信息系統(tǒng)(頁表)中找到對應(yīng)的實際地理位置(物理頁框號),再結(jié)合景點內(nèi)部的具體位置信息(頁內(nèi)偏移),最終確定游客要去的準(zhǔn)確地點(物理地址)。

1.4MMU的核心功能

在計算機的內(nèi)存世界里,存在著兩種重要的地址概念:虛擬地址和物理地址。虛擬地址是程序在運行時所使用的地址,就像是我們在地圖上規(guī)劃的一條虛擬路線,它并不直接對應(yīng)實際的物理內(nèi)存位置。而物理地址則是內(nèi)存芯片上實實在在的地址,是數(shù)據(jù)真正存儲的地方,就如同地圖上的實際地點。

那么,MMU 是如何將虛擬地址轉(zhuǎn)換為物理地址的呢?這就要借助頁表這個神奇的工具了。頁表就像是一本詳細的地址翻譯字典,記錄著虛擬地址和物理地址之間的映射關(guān)系。當(dāng) CPU 發(fā)出一個虛擬地址請求時,MMU 就會像查字典一樣,在頁表中查找對應(yīng)的物理地址。

具體來說,虛擬地址會被劃分成頁號和頁內(nèi)偏移兩部分。頁號就像是字典的索引,通過它可以快速定位到頁表中對應(yīng)的條目,而這個條目里就存儲著對應(yīng)的物理頁號。然后,將物理頁號和頁內(nèi)偏移組合起來,就得到了最終的物理地址,從而能夠準(zhǔn)確地訪問到內(nèi)存中的數(shù)據(jù)。

舉個例子,假設(shè)我們有一個程序要訪問虛擬地址 0x12345678。MMU 首先會提取出頁號,比如是 0x1234,然后在頁表中查找這個頁號對應(yīng)的條目。假設(shè)找到的條目顯示對應(yīng)的物理頁號是 0x5678,而頁內(nèi)偏移是 0x9ABC,那么最終的物理地址就是 0x56789ABC。通過這樣的轉(zhuǎn)換,程序就能夠順利地訪問到它所需要的數(shù)據(jù),就好像我們通過地圖上的路線規(guī)劃找到了實際的目的地一樣。

mmu開啟以后會有以下特點:

  1. 多個程序獨立運行
  2. 虛擬地址是連續(xù)的(物理內(nèi)存可以有碎片)
  3. 允許操作系統(tǒng)管理內(nèi)存

下圖顯示的系統(tǒng)說明了內(nèi)存的虛擬和物理視圖。單個系統(tǒng)中的不同處理器和設(shè)備可能具有不同的虛擬地址映射和物理地址映射。操作系統(tǒng)編寫程序,使MMU在這兩個內(nèi)存視圖之間進行轉(zhuǎn)換:

圖片圖片

要做到這一點,虛擬內(nèi)存系統(tǒng)中的硬件必須提供地址轉(zhuǎn)換,即將處理器發(fā)出的虛擬地址轉(zhuǎn)換為主內(nèi)存中的物理地址。MMU使用虛擬地址中最重要的位來索引轉(zhuǎn)換表中的條目,并確定正在訪問哪個塊。MMU將代碼和數(shù)據(jù)的虛擬地址轉(zhuǎn)換為實際系統(tǒng)中的物理地址。該轉(zhuǎn)換將在硬件中自動執(zhí)行,并且對應(yīng)用程序是透明的。除了地址轉(zhuǎn)換之外,MMU還可以控制每個內(nèi)存區(qū)域的內(nèi)存訪問權(quán)限、內(nèi)存順序和緩存策略。

MMU對執(zhí)行的任務(wù)或應(yīng)用程序可以不了解系統(tǒng)的物理內(nèi)存映射,也可以不了解同時運行的其他程序。每個程序可以使用相同的虛擬內(nèi)存地址空間。即使物理內(nèi)存是碎片化的,還可以使用一個連續(xù)的虛擬內(nèi)存映射。此虛擬地址空間與系統(tǒng)中內(nèi)存的實際物理映射分開的。應(yīng)用程序被編寫、編譯和鏈接,以在虛擬內(nèi)存空間中運行。

圖片圖片

如上圖所示,TLB是MMU中最近訪問的頁面翻譯的緩存。對于處理器執(zhí)行的每個內(nèi)存訪問,MMU將檢查轉(zhuǎn)換是否緩存在TLB中。如果所請求的地址轉(zhuǎn)換在TLB中導(dǎo)致命中,則該地址的翻譯立即可用。TLB本質(zhì)是一塊高速緩存。數(shù)據(jù)cache緩存地址(虛擬地址或者物理地址)和數(shù)據(jù)。TLB緩存虛擬地址和其映射的物理地址。TLB根據(jù)虛擬地址查找cache,它沒得選,只能根據(jù)虛擬地址查找。所以TLB是一個虛擬高速緩存。

每個TLB entry通常不僅包含物理地址和虛擬地址,還包含諸如內(nèi)存類型、緩存策略、訪問權(quán)限、地址空間ID(ASID)和虛擬機ID(VMID)等屬性。如果TLB不包含處理器發(fā)出的虛擬地址的有效轉(zhuǎn)換,稱為TLB Miss,則將執(zhí)行外部轉(zhuǎn)換頁表查找。MMU內(nèi)的專用硬件使它能夠讀取內(nèi)存中的轉(zhuǎn)換表。

然后,如果翻譯頁表沒有導(dǎo)致頁面故障,則可以將新加載的翻譯緩存在TLB中,以便進行后續(xù)的重用。簡單概括一下就是:硬件存在TLB后,虛擬地址到物理地址的轉(zhuǎn)換過程發(fā)生了變化。虛擬地址首先發(fā)往TLB確認是否命中cache,如果cache hit直接可以得到物理地址。否則,一級一級查找頁表獲取物理地址。并將虛擬地址和物理地址的映射關(guān)系緩存到TLB中。

如果操作系統(tǒng)修改了可能已經(jīng)緩存在TLB中的轉(zhuǎn)換的entry,那么操作系統(tǒng)就有責(zé)任使這些未更新的TLB entry invaild。當(dāng)執(zhí)行A64代碼時,有一個TLBI,它是一個TLB無效的指令:

TLBI <type><level>{IS} {, <Xt>}

TLB可以保存固定數(shù)量的entry??梢酝ㄟ^由轉(zhuǎn)換頁表遍歷引起的外部內(nèi)存訪問次數(shù)和獲得高TLB命中率來獲得最佳性能。ARMv8-A體系結(jié)構(gòu)提供了一個被稱為連續(xù)塊entry的特性,以有效地利用TLB空間。轉(zhuǎn)換表每個entry都包含一個連續(xù)的位。當(dāng)設(shè)置時,這個位向TLB發(fā)出信號,表明它可以緩存一個覆蓋多個塊轉(zhuǎn)換的單個entry。查找可以索引到連續(xù)塊所覆蓋的地址范圍中的任何位置。因此,TLB可以為已定義的地址范圍緩存一個entry從而可以在TLB中存儲更大范圍的虛擬地址。

Part2.TLB:加速地址轉(zhuǎn)換的高速緩存

2.1 TLB 是什么

TLB,即 Translation Lookaside Buffer,通常被譯為地址轉(zhuǎn)換后備緩沖器 ,它是 MMU 中一個至關(guān)重要的高速緩存組件。簡單來說,TLB 就像是頁表的 “快捷緩存”,專門用于存儲虛擬地址到物理地址的映射關(guān)系。在虛擬內(nèi)存機制下,程序運行時產(chǎn)生的虛擬地址需要轉(zhuǎn)換為物理地址才能訪問實際內(nèi)存,而頁表正是存儲這種映射關(guān)系的數(shù)據(jù)結(jié)構(gòu)。然而,頁表通常存放在內(nèi)存中,內(nèi)存訪問速度相對較慢,如果每次地址轉(zhuǎn)換都要訪問內(nèi)存中的頁表,系統(tǒng)性能將會受到極大影響。

為了理解 TLB 的作用,我們可以把計算機系統(tǒng)想象成一個龐大的圖書館,頁表就像是圖書館的藏書索引總表,存放在圖書館的檔案室(內(nèi)存)里。而 TLB 則像是每個閱覽室里的快速檢索小目錄,它緩存了總索引表中近期最常被查詢的部分書籍索引(虛擬地址到物理地址的映射關(guān)系)。當(dāng)讀者(CPU)想要查找某本書(訪問內(nèi)存)時,會先查看所在閱覽室的快速檢索小目錄(TLB),如果能在小目錄中找到對應(yīng)的索引(TLB 命中),就能快速得知書籍的實際位置(物理地址),無需再跑到檔案室去查閱總索引表(訪問內(nèi)存中的頁表),大大提高了查找效率(地址轉(zhuǎn)換速度) 。

2.2 TLB工作機制剖析

TLB 的工作機制精巧而高效。它通常采用組相連或全相連的緩存組織方式 ,以實現(xiàn)快速的地址查找。當(dāng) CPU 發(fā)出一個虛擬地址訪問請求時,TLB 的工作流程如下:首先,TLB 會接收這個虛擬地址,并根據(jù)其內(nèi)部的緩存組織方式,快速定位到可能存儲該虛擬地址映射關(guān)系的緩存條目。在這個過程中,如果采用組相連方式,TLB 會根據(jù)虛擬地址的部分位(通常是索引位)確定它屬于哪個緩存組,然后在該組內(nèi)通過比較虛擬地址的其他位(通常是標(biāo)記位)來查找是否存在匹配的映射條目;如果是全相連方式,則會直接將虛擬地址與 TLB 中的所有緩存條目進行比較。

一旦 TLB 中存在與該虛擬地址匹配的緩存條目,即發(fā)生 TLB 命中(TLB Hit),TLB 會迅速將緩存條目中對應(yīng)的物理頁號取出,并與虛擬地址中的頁內(nèi)偏移部分組合,生成最終的物理地址,然后將這個物理地址返回給 CPU,CPU 就可以使用這個物理地址直接訪問內(nèi)存,整個地址轉(zhuǎn)換過程在極短的時間內(nèi)完成,極大地提高了內(nèi)存訪問效率,就像在閱覽室的快速檢索小目錄中快速找到了書籍的位置,直接去書架取書即可。

若 TLB 中沒有找到與該虛擬地址匹配的緩存條目,即發(fā)生 TLB 未命中(TLB Miss),此時就需要通過訪問內(nèi)存中的頁表來完成地址轉(zhuǎn)換。這個過程相對復(fù)雜,需要 MMU 按照前面介紹的查詢頁表的方式,逐級查找虛擬地址對應(yīng)的物理地址。在找到物理地址后,MMU 會將這個新的映射關(guān)系緩存到 TLB 中,以便后續(xù)對相同虛擬地址的訪問能夠直接從 TLB 中獲取物理地址,提高未來的地址轉(zhuǎn)換效率,就像在快速檢索小目錄中沒找到書籍索引,只能去檔案室查閱總索引表,找到后為了方便下次查找,將這個索引記錄到快速檢索小目錄中 。

TLB的原理如下:

  1. 當(dāng)CPU訪問一個虛擬地址時,首先檢查TLB中是否有對應(yīng)的頁表項。
  2. 如果TLB中有對應(yīng)的頁表項(即命中),則直接從TLB獲取物理地址。
  3. 如果TLB中沒有對應(yīng)的頁表項(即未命中),則需要訪問內(nèi)存來獲取正確的頁表項。
  4. 在未命中情況下,操作系統(tǒng)會進行相應(yīng)處理,從主存中獲取正確的頁表項,并將其加載到TLB中以供后續(xù)使用。
  5. 一旦正確的頁表項加載到TLB中,CPU再次訪問相同虛擬地址時就可以直接在TLB中找到映射關(guān)系,提高了轉(zhuǎn)換效率。

TLB具有快速查找和高效緩存機制,能夠極大地減少查詢頁表所需的時間。然而,由于TLB是有限容量的,在大型程序或多任務(wù)環(huán)境下可能無法完全覆蓋所有需要轉(zhuǎn)換的頁面。當(dāng)發(fā)生TLB未命中時,則會導(dǎo)致額外的內(nèi)存訪問開銷;操作系統(tǒng)會負責(zé)管理和維護TLB,包括緩存策略、TLB的刷新機制等。常見的緩存策略有全相聯(lián)、組相聯(lián)和直接映射等。

2.3 TLB 的類型與特性

在現(xiàn)代計算機系統(tǒng)中,TLB 通常分為不同的類型,以滿足不同的性能和功能需求。其中,L1 TLB 和 L2 TLB 是較為常見的分類。L1 TLB 位于 CPU 內(nèi)部,是距離 CPU 核心最近的一級 TLB,它的訪問速度極快,幾乎與 CPU 的處理速度相當(dāng),但容量相對較小,一般只能緩存幾十到幾百個頁表條目。L1 TLB 又進一步細分為指令 TLB(ITLB)和數(shù)據(jù) TLB(DTLB) ,指令 TLB 專門用于緩存指令相關(guān)的虛擬地址到物理地址的映射關(guān)系,數(shù)據(jù) TLB 則專注于數(shù)據(jù)訪問的地址映射緩存。

這種細分方式可以讓 CPU 在同時進行指令讀取和數(shù)據(jù)訪問時,能夠更高效地進行地址轉(zhuǎn)換,避免了指令和數(shù)據(jù)在地址轉(zhuǎn)換過程中的沖突,就像圖書館設(shè)置了不同類型的快速檢索小目錄,分別用于查找不同類別的書籍,提高了檢索效率。

L2 TLB 則位于 L1 TLB 和主存之間,它的容量比 L1 TLB 大,可以緩存更多的頁表條目,但訪問速度相對 L1 TLB 略慢。L2 TLB 起到了一個補充和緩沖的作用,當(dāng) L1 TLB 未命中時,L2 TLB 可以提供額外的緩存查找機會,減少對內(nèi)存頁表的訪問次數(shù),從而提高整體的地址轉(zhuǎn)換性能。

除了分級結(jié)構(gòu),TLB 還具有一些獨特的特性。例如,每個 CPU 核心通常都擁有自己獨立的 TLB,這使得每個核心在進行地址轉(zhuǎn)換時都能獨立快速地進行,避免了多 CPU 核心之間對 TLB 的競爭,提高了系統(tǒng)的并行處理能力,就像每個閱覽室都有自己獨立的快速檢索小目錄,讀者在各自的閱覽室查找書籍時互不干擾。同時,TLB 還采用了一系列優(yōu)化策略,如合理的替換算法(如隨機替換算法、近似 LRU 算法等),以確保在有限的緩存空間內(nèi),始終緩存著最常用的頁表條目,提高 TLB 的命中率,充分發(fā)揮其加速地址轉(zhuǎn)換的作用 。

Part3.TWU:頁表查詢的硬件先鋒

3.1 TWU是什么?

TWU,即 Table Walk Unit ,可譯為頁表遍歷單元,是 MMU 中一個至關(guān)重要的子模塊,主要負責(zé)硬件級的頁表查找工作。在虛擬內(nèi)存系統(tǒng)中,頁表存儲在物理內(nèi)存里,當(dāng) TLB 未命中時,就需要查詢頁表來完成虛擬地址到物理地址的轉(zhuǎn)換。而 TWU 的作用就是承擔(dān)起這一關(guān)鍵的頁表查詢?nèi)蝿?wù),它能夠按照一定的規(guī)則和流程,高效地在內(nèi)存中遍歷頁表,找到虛擬地址對應(yīng)的物理地址。

打個比方,我們繼續(xù)以圖書館為例,當(dāng)讀者在閱覽室的快速檢索小目錄(TLB)中找不到書籍索引時,就需要一個專門的工作人員(TWU)去檔案室的總索引表(頁表)中查找。這個工作人員熟悉檔案室的布局和索引表的查找規(guī)則,能夠快速準(zhǔn)確地在總索引表中找到書籍的實際位置信息,然后將其反饋給讀者,就像 TWU 將查找到的物理地址返回給 MMU,以便完成地址轉(zhuǎn)換 。通過 TWU 進行頁表查詢,大大減少了 CPU 直接參與頁表遍歷的工作,降低了 CPU 資源的消耗,提高了系統(tǒng)的整體性能和效率。

3.2 TWU工作流程詳述

TWU 的工作流程嚴謹而有序。以常見的 x86 架構(gòu)為例,當(dāng) CPU 發(fā)出一個虛擬地址訪問請求且 TLB 未命中時,TWU 便開始工作。首先,TWU 會從 CR3 寄存器(在 x86 架構(gòu)中,CR3 寄存器存儲著頁目錄表的物理基地址)中獲取頁目錄表的物理基地址 。然后,根據(jù)虛擬地址的特定位(通常是高幾位)作為索引,在頁目錄表中查找對應(yīng)的頁目錄項(PDE)。每個頁目錄項記錄了下一級頁表(可能是頁上級目錄表,對于多級頁表結(jié)構(gòu)而言)的物理地址等信息。

找到對應(yīng)的頁目錄項后,TWU 會根據(jù)該項中的地址信息,訪問下一級頁表。接著,再依據(jù)虛擬地址的其他位作為索引,在這一級頁表中查找對應(yīng)的頁表項,如此逐級進行,直到找到最終的頁表項,該頁表項中存儲著虛擬地址對應(yīng)的物理頁框號。最后,TWU 將這個物理頁框號與虛擬地址中的頁內(nèi)偏移部分組合起來,生成完整的物理地址,返回給 MMU,完成虛擬地址到物理地址的轉(zhuǎn)換。

在這個過程中,如果 TWU 在查詢頁表時發(fā)現(xiàn)所需的頁表項不存在,即發(fā)生缺頁情況,就會觸發(fā)缺頁中斷。缺頁中斷是一個重要的機制,它會通知操作系統(tǒng)進行處理。操作系統(tǒng)會暫停當(dāng)前進程的執(zhí)行,然后根據(jù)具體的情況,從磁盤等外存中讀取缺失的頁面到內(nèi)存中,并更新頁表,建立虛擬地址到物理地址的映射關(guān)系。完成這些操作后,操作系統(tǒng)會恢復(fù)被中斷的進程的執(zhí)行,讓其繼續(xù)訪問內(nèi)存 。整個 TWU 的工作流程以及缺頁中斷的處理過程,確保了虛擬內(nèi)存系統(tǒng)中地址轉(zhuǎn)換的準(zhǔn)確性和高效性,是計算機內(nèi)存管理中不可或缺的環(huán)節(jié)。

Part4.MMU、TLB、TWU協(xié)同工作

4.1協(xié)同機制總覽

MMU、TLB 和 TWU 在計算機內(nèi)存管理系統(tǒng)中,就像是一個緊密協(xié)作的團隊,各自承擔(dān)著獨特而關(guān)鍵的職責(zé),共同保障虛擬地址到物理地址的轉(zhuǎn)換過程高效、準(zhǔn)確地進行。其中,MMU 是整個內(nèi)存管理的核心樞紐,全面負責(zé)虛擬地址到物理地址的轉(zhuǎn)換工作,同時兼顧內(nèi)存訪問權(quán)限的精細控制、內(nèi)存訪問順序的合理安排以及緩存策略的有效制定 。

TLB 則像是 MMU 的 “高速助手”,通過緩存最近使用的虛擬地址到物理地址的映射關(guān)系,大大加快了地址轉(zhuǎn)換的速度,顯著減少了 MMU 查詢頁表的次數(shù),提高了系統(tǒng)性能。而 TWU 在這個團隊中扮演著 “頁表探索者” 的角色,當(dāng) TLB 無法命中所需的地址轉(zhuǎn)換信息時,TWU 便迅速行動起來,按照既定的規(guī)則和流程,在內(nèi)存中有條不紊地遍歷頁表,準(zhǔn)確找到虛擬地址對應(yīng)的物理地址,為 MMU 提供關(guān)鍵支持 。

4.2工作流程深度解析

當(dāng) CPU 發(fā)出一個虛擬地址訪問請求時,一場緊張而有序的地址轉(zhuǎn)換之旅便正式開啟。首先,TLB 會迅速對這個虛擬地址進行查找 。如果 TLB 中緩存了該虛擬地址對應(yīng)的映射條目,即發(fā)生 TLB 命中,那么 TLB 會在極短的時間內(nèi)將對應(yīng)的物理頁號取出,并與虛擬地址中的頁內(nèi)偏移部分精準(zhǔn)組合,快速生成最終的物理地址,然后將這個物理地址直接返回給 CPU,CPU 就可以使用這個物理地址直接訪問內(nèi)存,整個過程如同在便捷的高速通道上行駛,快速而高效。

若 TLB 中沒有找到與該虛擬地址匹配的映射條目,即發(fā)生 TLB 未命中,此時 TWU 就會 “閃亮登場” 。TWU 會依據(jù)虛擬地址的相關(guān)信息,從特定寄存器(如 x86 架構(gòu)中的 CR3 寄存器,存儲著頁目錄表的物理基地址)中獲取頁表的起始地址,然后按照多級頁表的查找規(guī)則,逐級在內(nèi)存中查找對應(yīng)的頁表項。在這個過程中,TWU 就像一位經(jīng)驗豐富的探險家,在復(fù)雜的頁表 “迷宮” 中準(zhǔn)確找到目標(biāo)頁表項,從中提取出虛擬地址對應(yīng)的物理頁框號。找到物理頁框號后,TWU 將其與虛擬地址中的頁內(nèi)偏移部分巧妙組合,生成完整的物理地址,并將這個物理地址返回給 MMU 。

MMU 在收到物理地址后,還會對內(nèi)存訪問權(quán)限進行嚴格檢查 。它會查看頁表項中的訪問權(quán)限位,判斷當(dāng)前進程對該物理地址所指向的內(nèi)存區(qū)域是否具有相應(yīng)的訪問權(quán)限,如可讀、可寫、可執(zhí)行等。只有當(dāng)訪問權(quán)限合法時,MMU 才會允許 CPU 對該內(nèi)存區(qū)域進行訪問;若發(fā)現(xiàn)訪問權(quán)限違規(guī),MMU 會立即觸發(fā)一個內(nèi)存訪問異常,通知操作系統(tǒng)進行處理,就像嚴格的安保人員,堅決守護內(nèi)存的安全訪問。

在地址轉(zhuǎn)換完成后,CPU 會根據(jù)得到的物理地址訪問內(nèi)存中的數(shù)據(jù) 。此時,數(shù)據(jù)緩存(Cache)也會參與到這個過程中。如果數(shù)據(jù)已經(jīng)被緩存到 Cache 中,即發(fā)生 Cache 命中,CPU 可以直接從 Cache 中快速讀取數(shù)據(jù),大大提高了數(shù)據(jù)訪問速度;若 Cache 中沒有緩存該數(shù)據(jù),即發(fā)生 Cache 未命中,CPU 則需要從主存中讀取數(shù)據(jù),并將讀取到的數(shù)據(jù)同時存儲到 Cache 中,以便后續(xù)對相同數(shù)據(jù)的訪問能夠直接從 Cache 中獲取,提高未來的數(shù)據(jù)訪問效率 。

整個 MMU、TLB 和 TWU 協(xié)同工作的過程,以及與 Cache 的交互過程,緊密配合、環(huán)環(huán)相扣,確保了計算機內(nèi)存管理系統(tǒng)的高效運行,為計算機的穩(wěn)定運行和高性能表現(xiàn)提供了堅實的基礎(chǔ)。

責(zé)任編輯:武曉燕 來源: 深度Linux
相關(guān)推薦

2018-09-27 12:38:46

Python同步異步

2023-11-07 07:39:56

Java集合數(shù)據(jù)結(jié)構(gòu)

2022-07-24 09:50:22

數(shù)據(jù)庫MongoDB

2024-02-05 19:06:04

DartVMGC流程

2022-09-27 18:56:28

ArrayList數(shù)組源代碼

2025-06-04 08:30:00

seata分布式事務(wù)開發(fā)

2010-02-02 15:25:35

Python語法

2010-02-04 15:38:39

Android 手機

2020-04-01 10:28:12

Apache HBas數(shù)據(jù)結(jié)構(gòu)算法

2010-03-05 16:38:30

2010-02-01 13:34:59

Python 腳本

2014-10-17 09:30:38

2010-02-03 16:56:24

Python包

2010-03-01 14:50:06

Python 工具

2010-03-01 18:33:30

2023-01-10 13:48:50

ContainerdCRI源碼

2011-05-23 14:20:59

WordPress

2009-09-15 14:52:15

linq級聯(lián)刪除

2025-01-13 00:30:17

2020-06-02 07:55:31

SpringBoot多數(shù)據(jù)源
點贊
收藏

51CTO技術(shù)棧公眾號

一本一道精品欧美中文字幕| 中文字幕精品久久久| 免费a级人成a大片在线观看| 久久99久久99| 久久精品视频在线| 国产高潮失禁喷水爽到抽搐| 国产精选在线| 国产亚洲精品资源在线26u| 国产欧美亚洲精品| 久久免费视频99| 美女毛片一区二区三区四区| 欧美日韩一二三区| 成人在线观看毛片| 国产视频第一区| 国产成人高清在线| 日韩免费观看视频| 老司机成人免费视频| 国产精品白浆| 欧美猛男男办公室激情| 日本福利视频在线观看| 欧美美女搞黄| 国产高清在线精品| 国产成人综合精品在线| 玖玖爱免费视频| 日韩精品久久久久久久电影99爱| 日韩午夜在线播放| 黑人糟蹋人妻hd中文字幕| 又爽又大又黄a级毛片在线视频| 福利91精品一区二区三区| 国产精品h片在线播放| 欧美成人aaa片一区国产精品| 中文字幕av一区二区三区人| 欧美一区二区成人6969| 日韩中文字幕免费在线| bl在线肉h视频大尺度| 国产精品久久国产精麻豆99网站| 久久精品国产精品青草色艺 | 国产精品久久久久久久久久久久久| 亚洲最大的黄色网址| 成人动漫免费在线观看| 亚洲精品中文字| 久久久久99人妻一区二区三区| 成人国产一区二区三区精品麻豆| 欧美日韩国产一区在线| 少妇久久久久久被弄到高潮| 黄色网址免费在线观看| 亚洲国产成人在线| 久久99精品久久久久久久青青日本| 一级黄色片在线| 日韩**一区毛片| 欧美在线精品免播放器视频| 天海翼一区二区| 伊人蜜桃色噜噜激情综合| 久久精品91久久香蕉加勒比| 中文字幕第二区| 精品国产精品| 亚洲男子天堂网| 亚洲综合自拍网| 国产精品网站在线看| 精品剧情v国产在线观看在线| 亚洲综合婷婷久久| 国产91欧美| 欧美日韩高清一区| 亚洲一二三不卡| 四虎国产精品免费久久5151| 欧美影视一区在线| 午夜激情av在线| 国内精品伊人| 在线视频一区二区三区| 手机看片福利盒子久久| 成人软件在线观看| 欧美撒尿777hd撒尿| 中文字幕av专区| 亚洲ww精品| 日韩欧美国产电影| 久久久久亚洲无码| 免费av一区二区三区四区| 亚洲人成电影网站| 18啪啪污污免费网站| 国产精品videosex性欧美| www.国产一区| 久久久精品99| 先锋a资源在线看亚洲| 啪一啪鲁一鲁2019在线视频| 亚洲精品国产欧美在线观看| 久99久精品视频免费观看| 亚洲一区二区三区777| 亚洲第九十九页| 99在线视频精品| 日韩欧美99| 国产精品实拍| 亚洲成人av一区| 亚洲视频在线a| 成人在线分类| 亚洲男人第一网站| 成人免费精品动漫网站| 最新日韩av| 国产精品视频专区| 亚洲免费成人在线| 中文字幕欧美国产| 国产在线视频在线| www.成人在线视频| 欧美精品一区二区三区久久久| 亚洲色成人网站www永久四虎| 国产精品国产一区| 欧美制服第一页| 国产精品乱码一区二区| 99久久精品国产观看| 亚洲人一区二区| 爱草tv视频在线观看992| 欧美日韩一区二区在线观看视频| 中文字幕无人区二| 欧美男gay| 欧美激情国内偷拍| 在线观看毛片av| 91在线观看免费视频| 天天综合五月天| 欧美日韩大片| 精品国产成人系列| 亚洲精品自拍视频在线观看| 999亚洲国产精| 91在线视频一区| 国产私人尤物无码不卡| 亚洲成精国产精品女| 中文字幕 欧美日韩| 岳的好大精品一区二区三区| 国内精久久久久久久久久人| 国产一区二区在线不卡| 久久久久久影视| 欧日韩免费视频| 国内不卡的一区二区三区中文字幕| 亚洲欧美日韩国产中文| 国产一级片免费| 国产在线播放一区二区三区 | 成人系列视频| 日本最新高清不卡中文字幕| 欧洲精品久久一区二区| 一区二区在线观看免费视频播放| 色综合色综合色综合色综合| 久久99国产成人小视频| 97视频国产在线| 亚洲精品喷潮一区二区三区 | 久久亚洲av午夜福利精品一区| 麻豆国产精品官网| 视频一区国产精品| 国产超碰精品| 亚洲天堂av女优| 成年人免费高清视频| 成人免费高清在线观看| 久久99久久久久久| 爱爱精品视频| 久久久中精品2020中文| 成人精品在线播放| 亚洲影院久久精品| 免费看三级黄色片| 激情偷拍久久| 九九九热999| 蜜桃视频www网站在线观看| 亚洲成人xxx| 毛片视频网站在线观看| 久久精品亚洲精品国产欧美| 99视频在线免费| 全球成人免费直播| 国产日产欧美精品| a级毛片免费观看在线 | 亚洲日本香蕉视频| 日韩欧美大尺度| 国产三级av在线播放| 秋霞国产午夜精品免费视频| 亚洲午夜在线观看| 看亚洲a级一级毛片| 国模吧一区二区| 午夜视频www| 欧美午夜影院一区| 亚洲一区电影在线观看| 国产乱码精品一区二区三区av | 好吊色欧美一区二区三区四区 | 国产精品v日韩精品| 日本在线视频观看| 日韩午夜激情免费电影| 日本中文字幕在线免费观看| 91色视频在线| 自拍偷拍21p| 黑人一区二区三区四区五区| 久久99精品国产一区二区三区| 欧美日一区二区三区| 久久精品视频一| 亚洲人成色777777老人头| 欧美三级资源在线| 久久久久久久久久久网 | 久久av一区| 国产一区二区视频在线观看| 久久综合之合合综合久久| 欧美成人精精品一区二区频| 在线永久看片免费的视频| 国产精品成人免费| 无码精品一区二区三区在线播放| 日韩成人一级大片| 国产aaa免费视频| 精品久久影视| 国产日韩在线一区二区三区| 日韩天堂在线| 久久久亚洲网站| 精品美女在线观看视频在线观看 | 国产免费视频在线| 日韩免费一区二区| 日韩久久久久久久久久| 亚洲综合免费观看高清在线观看| 91中文字幕永久在线| 国产精品综合在线视频| av丝袜天堂网| 香蕉视频成人在线观看| 永久免费看av| 不卡在线一区| 欧美久久久久久久| **爰片久久毛片| 成人激情综合网| 三上悠亚亚洲一区| 97精品免费视频| bt在线麻豆视频| 啊v视频在线一区二区三区| 神马久久精品| 精品国产乱码久久久久久浪潮| 一本色道久久综合无码人妻| 91黄视频在线观看| 亚洲一区欧美在线| 亚洲最大的成人av| 日韩在线观看视频一区二区| 久久精品亚洲麻豆av一区二区| 超碰97在线资源站| 国产 日韩 欧美大片| 天天爽夜夜爽视频| 激情成人综合网| 热久久久久久久久| 久久精品国产99| 污网站免费在线| 石原莉奈在线亚洲二区| 久久久久久久久久福利| 国产精品试看| 131美女爱做视频| 一区福利视频| www.日本在线播放| 亚洲视频精品| 成人黄色大片网站| 狠狠综合久久av一区二区老牛| 欧洲xxxxx| 欧美精品偷拍| 国产a级黄色大片| 国产一区二区三区自拍| 丁香色欲久久久久久综合网| 欧美日本一区| 人体内射精一区二区三区| 亚洲无吗在线| 久色视频在线播放| 丝袜美腿亚洲色图| 色七七在线观看| 欧美aaa在线| 成人不卡免费视频| 国产高清不卡二三区| 久久人妻少妇嫩草av蜜桃| 成人免费高清在线观看| 狠狠人妻久久久久久综合蜜桃| 99re6这里只有精品视频在线观看| 精品中文字幕在线播放| 91麻豆精品在线观看| 国产精品扒开腿做爽爽| 中文字幕乱码亚洲精品一区| 国产3级在线观看| 亚洲欧美日韩中文字幕一区二区三区| 91高清免费观看| 亚洲h动漫在线| 久久精品无码av| 欧美日韩精品高清| 亚洲第一色网站| 亚洲精品自拍视频| 91社区在线| 欧美疯狂性受xxxxx另类| 9999热视频在线观看| 国产成人av在线播放| 二区三区精品| 国内精品视频免费| 日韩不卡一区| 国产乱子伦精品无码专区| 欧美专区一区二区三区| 潘金莲激情呻吟欲求不满视频| 国产伦理精品不卡| 免费成人深夜夜行p站| 国产精品亲子伦对白| 欧美日韩国产精品综合| 欧美午夜激情小视频| 亚洲一区二区影视| 亚洲国产精品va在线观看黑人| 国产私拍精品| 欧美激情视频免费观看| 成人看片在线观看| 成人情视频高清免费观看电影| 校花撩起jk露出白色内裤国产精品 | 欧美2区3区4区| 欧美人与性禽动交精品| 综合天堂av久久久久久久| 激情五月开心婷婷| 国产精品一级二级三级| 精品人伦一区二区三电影| 一区二区三区产品免费精品久久75| 日韩中文字幕在线观看视频| 7777精品伊人久久久大香线蕉完整版 | 久久精品午夜一区二区福利| 天堂美国久久| 不要播放器的av网站| 粉嫩av一区二区三区粉嫩| 神马久久久久久久久久久| 亚洲成人一区在线| 国产三级按摩推拿按摩| 亚洲欧美日韩精品久久| 欧美videossex另类| 国产精品视频99| 天天操综合520| 成人短视频在线观看免费| 热久久国产精品| 久久精品国产亚洲AV熟女| 午夜精品视频一区| 国产叼嘿视频在线观看| 亚洲区一区二区| 岛国av在线播放| 高清av免费一区中文字幕| 97视频精品| 少妇网站在线观看| 国产欧美综合在线| 天堂中文在线网| 日韩av综合网| av福利导福航大全在线| 91日韩久久| 亚洲综合专区| www.五月天色| 成人欧美一区二区三区黑人麻豆| 中文在线字幕av| 亚洲视频精品在线| 韩国成人动漫| 欧美成ee人免费视频| 日韩激情毛片| 你懂的av在线| 99精品视频一区| 日韩av电影网| 亚洲国内精品在线| 韩日毛片在线观看| 久久精品国产综合精品| 日韩天天综合| 免费观看av网站| 一本到不卡精品视频在线观看| 国产精品国产高清国产| 91国产美女视频| 亚洲婷婷影院| 日韩精品免费播放| 亚洲国产高清aⅴ视频| 又骚又黄的视频| 日韩资源在线观看| 国产精品一区二区美女视频免费看| 一本一本久久a久久精品综合妖精| 麻豆freexxxx性91精品| 麻豆明星ai换脸视频| 日韩精品一区二区三区在线观看 | www.成人精品| 欧美精品成人91久久久久久久| 91蝌蚪精品视频| 免费国产a级片| 国产亚洲1区2区3区| 在线视频 91| 欧美成人精品一区| av一级亚洲| 国产男女在线观看| 国产精品每日更新在线播放网址| 国产精品久久久久久69| 欧美激情二区三区| 久久91精品| 久久精品无码一区二区三区毛片| 亚洲成人在线观看视频| 国产福利小视频在线观看| 成人羞羞国产免费| 亚洲国产日本| 亚洲天堂av中文字幕| 日韩视频免费直播| 9i看片成人免费高清| 在线不卡日本| 成人免费视频免费观看| 亚洲视频 欧美视频| 久久伊人免费视频| 希岛爱理av免费一区二区| 99re精彩视频| 天天色天天操综合| 免费在线视频欧美| 久久久免费看| 韩国女主播成人在线| 午夜毛片在线观看| 久久精品国产综合| 亚洲激情77| 香蕉视频色在线观看| 一本大道av伊人久久综合| av在线网址观看| 欧美性xxxx69| 国产成人综合视频|