TWI641946B - 使用統一頁面表走查器快取記憶體來對tlb轉換進行快取記憶體的裝置及方法 - Google Patents
使用統一頁面表走查器快取記憶體來對tlb轉換進行快取記憶體的裝置及方法 Download PDFInfo
- Publication number
- TWI641946B TWI641946B TW104110648A TW104110648A TWI641946B TW I641946 B TWI641946 B TW I641946B TW 104110648 A TW104110648 A TW 104110648A TW 104110648 A TW104110648 A TW 104110648A TW I641946 B TWI641946 B TW I641946B
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- entry
- page table
- memory
- virtual address
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/683—Invalidation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
核執行記憶體指令。被耦合到核的記憶體管理單元(MMU)包括儲存層級頁面表的多個最終映射的第一快取記憶體、遍歷頁面表的級別以提供與相應級別關聯的用於確定最終映射的中間結果的頁面表走查器和儲存由頁面表走查器提供的有限數目的中間結果的第二快取記憶體。MMU回應於來自核的用於對第一虛擬位址進行無效化的請求來基於匹配標準比較第一虛擬位址的部分與第二快取記憶體中的條目的部分並且去除第二快取記憶體中的滿足匹配標準的任何條目,匹配標準依賴於與在第二快取記憶體中的條目中儲存的每個中間結果關聯的級別。
Description
本發明涉及管理計算系統中的記憶體位址轉換。
許多計算系統利用虛擬記憶體系統以允許程式設計師存取記憶體位址而無需考慮記憶體位址在計算系統的實體記憶體層級中駐留於何處。為了這樣做,虛擬記憶體系統維護由程式設計師使用的虛擬記憶體位址到儲存由虛擬記憶體位址引用的實際資料的實體記憶體位址的映射。實體記憶體位址可以在任何類型的儲存裝置(例如,SRAM、DRAM、磁片等)中駐留。
在程式存取虛擬記憶體位址時,虛擬記憶體系統執行位址轉換以確定哪個實體記憶體位址由虛擬記憶體位址引用。從作為在記憶體頁面內的偏移的實體記憶體位址讀取在確定的實體記憶體位址處儲存的資料並將其返回用於由程式使用。在“頁面表”中儲存虛擬到實體位址映射。在一些情況下,虛擬記憶體位址位於大型虛擬位址空間的頁面中,該頁面轉換成當前未在主記憶體中駐留的實體記憶體頁面(即分頁錯誤),從而使得然後向主記憶體中拷貝該頁面。
現代計算系統包括一個或者多個轉譯後備緩衝區(TLB),該一個或者多個TLB是用於頁面表的快取記憶體,這些快取記憶體由虛擬記憶體系統用來提高虛擬到實體記憶體位址轉
換的速度。一般而言,TLB包括來自頁面表的多個條目,每個條目包括從虛擬位址到實體位址的映射。一般而言,TLB的條目僅覆蓋總記憶體的可用於計算系統的部分。在一些示例中,維護TLB的條目從而使得總可用記憶體的由TLB覆蓋的部分包括總可用記憶體的最近期地存取的、最普遍地存取的或者最可能存取的部分。一般而言,無論虛擬記憶體系統何時改變在虛擬記憶體位址與實體記憶體位址之間的映射都需要管理TLB的條目。
在一個方面中,一般而言,一種裝置包括:被配置為執行記憶體指令的核,記憶體指令基於虛擬位址存取在實體記憶體中儲存的資料,虛擬位址基於具有多個級別的層級頁面表而被轉換成實體位址,每個級別儲存用於確定在虛擬位址與實體位址之間的最終映射的不同中間結果;以及耦合到核的記憶體管理單元(MMU),MMU包括儲存頁面表的多個最終映射的第一快取記憶體、遍歷頁面表的級別以提供與相應級別關聯的用於確定最終映射的中間結果的頁面表走查器(walker)和儲存由頁面表走查器提供的有限數目的中間結果的第二快取記憶體;其中MMU被配置為回應於來自核的用於對第一虛擬位址進行無效化的請求來比較第一虛擬位址的部分與第二快取記憶體中的條目的部分;其中比較基於匹配標準,匹配標準依賴於與在第二快取記憶體中的條目中儲存的每個中間結果關聯的級別;以及其中MMU被配置為去除第二快取記憶體中的滿足匹配標準的任何條目。
各方面可以包括以下特徵中的一個或者多個特徵。
與第一虛擬位址的部分比較的第二快取記憶體中的條目的部分是與在條目中儲存的中間結果關聯的虛擬位址的連續位元序列。
比較基於匹配標準,匹配標準依賴於與在第二快取記
憶體中的條目中儲存的每個中間結果關聯的級別並且依賴於包含與中間結果關聯的虛擬位址的頁面的細微性大小。
比較包括將位元遮罩應用於第二快取記憶體中的條目以確定第二快取記憶體中的條目的部分,以及將位元遮罩應用於第一虛擬位址以確定第一虛擬位址的部分。
回應於來自核的用於對第一虛擬位址進行無效化的請求來計算遮罩。
遮罩被儲存在第二快取記憶體中的條目中。
第二快取記憶體包括儲存與頁面表的多個不同級別關聯的中間結果的條目。
第一快取記憶體包括儲存由層級頁面表的少於所有最終映射構成的子集的轉譯後備緩衝區。
該裝置還包括被配置為存取實體記憶體的儲存由實體位址空間的實體位址引用的資料的第一部分和儲存層級頁面表的至少一個級別的第二部分的實體記憶體介面。
該裝置還包括儲存由虛擬位址空間的虛擬位址引用的資料的儲存裝置。
第二快取記憶體中的條目的第一子集與層級頁面表的多個級別中的第一級別關聯,第二快取記憶體中的條目的第二子集與層級頁面表的多個級別中的第二級別關聯,並且與第一虛擬位址的部分與第二子集中的條目的比較並行地執行第一虛擬位址的部分與第一子集中的條目的比較。
第一虛擬位址的部分與第二快取記憶體中的條目的部分的比較花費3個處理器週期。
在另一方面中,一般而言,一種方法包括:在核中執行記憶體指令,記憶體指令基於虛擬位址存取在實體記憶體中儲存的資料,虛擬位址基於具有多個級別的層級頁面表而被轉換成實體
位址,每個級別儲存用於確定在虛擬位址與實體位址之間的最終映射的不同中間結果;以及在被耦合到核的記憶體管理單元(MMU)中管理儲存頁面表的多個最終映射的第一快取記憶體、遍歷頁面表的級別以提供與相應級別關聯的用於確定最終映射的中間結果的頁面表走查器和儲存由頁面表走查器提供的有限數目的中間結果的第二快取記憶體;其中MMU回應於來自核的用於對第一虛擬位址進行無效化的請求來比較第一虛擬位址的部分與第二快取記憶體中的條目的部分;其中比較基於匹配標準,匹配標準依賴於與在第二快取記憶體中的條目中儲存的每個中間結果關聯的級別;以及其中MMU去除第二快取記憶體中的滿足匹配標準的任何條目。
各方面可以包括以下特徵中的一個或者多個特徵。
與第一虛擬位址的部分比較的第二快取記憶體中的條目的部分是與在條目中儲存的中間結果關聯的虛擬位址的連續位元序列。
比較基於匹配標準,匹配標準依賴於與在第二快取記憶體中的條目中儲存的每個中間結果關聯的級別並且依賴於包含與中間結果關聯的虛擬位址的頁面的細微性大小。
比較包括將位元遮罩應用於第二快取記憶體中的條目以確定第二快取記憶體中的條目的部分,以及將位元遮罩應用於第一虛擬位址以確定第一虛擬位址的部分。
回應於來自核的用於對第一虛擬位址進行無效化的請求來計算遮罩。
遮罩被儲存在第二快取記憶體中的條目中。
第二快取記憶體包括儲存與頁面表的多個不同級別關聯的中間結果的條目。
第一快取記憶體包括儲存由層級頁面表的少於所有最終映射構成的子集的轉譯後備緩衝區。
該方法還包括被配置為存取實體記憶體的儲存由實體位址空間的實體位址引用的資料的第一部分和儲存層級頁面表的至少一個級別的第二部分的實體記憶體介面。
該方法還包括儲存由虛擬位址空間的虛擬位址引用的資料的儲存裝置。
第二快取記憶體中的條目的第一子集與層級頁面表的多個級別中的第一級別關聯,第二快取記憶體中的條目的第二子集與層級頁面表的多個級別中的第二級別關聯,並且與第一虛擬位址的部分與第二子集中的條目的比較並行地執行第一虛擬位址的部分與第一子集中的條目的比較。
第一虛擬位址的部分與第二快取記憶體中的條目的部分的比較花費3個處理器週期。
各方面可以具有以下優點中的一個或者多個優點。
除了其它優點之外,各方面還包括單個統一走查器快取記憶體,該走查器快取記憶體包括用於多個頁面表級別的條目。
這有利地允許向不同頁面表級別動態分配條目而未對向每個頁面表級別分配的條目的數目施加不必要限制(如在一些常規方式中所做的那樣)。
使用TLB無效化指令來無縫地處置走查器快取記憶體中的條目的翻譯管理。
本發明的其它特徵和優點將從以下描述和從申請專利範圍變得清楚。
102‧‧‧處理單元
104‧‧‧L2快取記憶體
106‧‧‧主記憶體
108‧‧‧輔助儲存裝置
110‧‧‧I/O設備
112‧‧‧處理匯流排
114‧‧‧記憶體匯流排
118‧‧‧橋接器
116‧‧‧I/O匯流排
202‧‧‧處理單元
220‧‧‧處理器核
222‧‧‧L1資料快取記憶體
224‧‧‧L1指令快取記憶體
227‧‧‧頁面表走查器
228‧‧‧匯流排介面
230‧‧‧TLB
232‧‧‧走查器快取記憶體
336‧‧‧虛擬位址
348‧‧‧基底位址
462‧‧‧表級別
Index‧‧‧索引
Offset‧‧‧偏移
第一圖是計算系統。
第二圖是被耦合到處理器匯流排的處理單元。
第三圖圖示頁面表行走(walk)。
第四圖是走查器快取記憶體。
第五圖圖示使用走查器快取記憶體結果的頁面表行走。
第六圖圖示走查器快取記憶體條目無效化。
1.概述
回應於轉譯後備緩衝區未命中來對多級別頁面表進行行走可能消耗數量大到不希望的時間。這裡描述的方式在頁面表行走期間對中間頁面位址進行快取記憶體並且使用快取記憶體的中間頁面位址以增加將來行走的速度。各方式也高效地管理中間頁面位址的快取記憶體中的轉換改變。
2.計算系統
參照第一圖,計算系統100包括多個處理單元102、級別2(L2)快取記憶體104(例如,SRAM)、主記憶體106(例如,DRAM)、輔助儲存裝置(例如,磁片)108和一個或者多個輸入/輸出(I/O)設備110(例如,鍵盤或者滑鼠)。處理單元102和L2快取記憶體104被連接到處理器匯流排112,主處理器106被連接到記憶體匯流排114,並且I/O設備110和輔助儲存裝置108被連接到I/O匯流排116。處理器匯流排112、記憶體匯流排114和I/O匯流排116經由橋接器118被相互連接。
2.1記憶體層級
一般而言,處理單元102執行一個或者多個電腦程式的指令、包括從在計算系統100中包括的記憶體讀取處理器指令和資料。如在本領域中熟知的,計算系統100中的各種記憶體或者儲存裝置基於記憶體或者儲存裝置的相對延時而被組織成記憶體層級。這樣的記憶體層級的一個示例在最頂級具有處理器寄存器(未示出)、繼而是級別1(L1)快取記憶體(未示出)、繼而是L2快取記憶體104、繼而是主記憶體106並且最終繼而是輔助儲存裝置
108。在給定的處理單元102試著存取記憶體位址時,按照從記憶體層級的最高級向下的順序校驗記憶體層級中的每個記憶體或者儲存裝置,以確定用於記憶體位址的資料是否被儲存在儲存裝置或者記憶體設備中。
例如,為了處理單元102中的第一處理單元存取用於僅在輔助儲存裝置108中儲存的資料的記憶體位址,處理單元先確定記憶體位址和資料是否被儲存在它的L1快取記憶體中。由於記憶體位址和資料未被儲存在它的L1快取記憶體中,所以快取記憶體未命中出現,從而使處理器經由處理器匯流排112與L2快取記憶體140通信以確定記憶體位址和資料是否被儲存在L2快取記憶體140中。由於記憶體位址和資料未被儲存在L2快取記憶體中,所以另一快取記憶體未命中出現,從而使處理器經由處理器匯流排112、橋接器110和記憶體匯流排118與主記憶體106通信以確定記憶體位址和資料是否被儲存在主記憶體106中。由於記憶體位址和資料未被儲存在主記憶體106中,所以另一未命中出現(也被稱為“分頁錯誤”),從而使處理器經由處理器匯流排、橋接器118和I/O匯流排116與輔助儲存裝置108通信以確定記憶體位址和資料是否被儲存在輔助儲存裝置108中。由於記憶體位址和資料被儲存在輔助儲存裝置108中,所以從輔助儲存裝置108取回並且經由I/O匯流排116、橋接器118和處理器匯流排112向處理單元返回資料。記憶體位址和資料可以被快取記憶體在記憶體層級中的任何數目的記憶體或者儲存裝置中,從而使得將來可以更容易地存取它。
2.2處理單元
參照第二圖,第一圖的處理單元102中的處理單元202的一個示例被連接到處理器匯流排112。處理單元202包括處理器核220、L1資料快取記憶體222、L1指令快取記憶體224、記憶體管理單元(MMU)226和匯流排介面228。處理器核220(也
被簡稱為“核”)是與其它處理器核一起協調以形成多核處理器的個別處理器(也被稱為中央處理單元(CPU))。MMU 226包括以下各自更具體地被描述的頁面表走查器227、走查器快取記憶體232和轉譯後備緩衝區(TLB)230。
2.2.1資料記憶體存取
在處理器核220需要存取與資料關聯的虛擬記憶體位址時,處理器核220向L1資料快取記憶體222發送對於虛擬記憶體位址的記憶體存取請求。L1資料快取記憶體222儲存由其虛擬記憶體位址標記的有限數目的近期地或者普遍地使用的資料值。如果L1資料快取記憶體222具有用於虛擬記憶體位址的條目(即,快取記憶體命中),則向處理器核220返回與虛擬記憶體位址關聯的資料而無需記憶體層級中的任何進一步的記憶體存取操作。備選地,在一些實現方式中,L1資料快取記憶體222將條目用它們的實體記憶體位址標記,這即使對於快取記憶體命中仍然需要位址轉換。
如果L1資料快取記憶體222不具有用於虛擬記憶體位址的條目(即,快取記憶體未命中),則向MMU 226發送記憶體存取請求。一般而言,MMU 226使用TLB 230以將虛擬記憶體位址轉換成對應的實體記憶體位址並且經由匯流排介面228向記憶體層級的其它單元從處理器202發送出對於實體記憶體位址的記憶體存取請求。頁面表走查器227通過存取在一個或者多個記憶體級別中(可能分層級地)儲存的全頁面資料來處置對未在TLB 230中儲存的映射的取回。頁面表儲存在虛擬記憶體位址與頁面表走查器227存取的實體記憶體位址之間的完整映射集合以將虛擬記憶體位址轉換成對應的實體記憶體位址。
為了加速將虛擬記憶體位址轉換成實體記憶體位址的過程,TLB 230包括在虛擬記憶體位址與實體記憶體位址之間的
多個近期地或者普遍地使用的映射。如果TLB 230具有用於虛擬記憶體位址的映射,則經由匯流排介面228從處理器202發送出對於(如從在TLB 230中儲存的映射而確定的)與虛擬記憶體位址關聯的實體記憶體位址的記憶體存取請求。
如果TLB 230不具有用於虛擬記憶體位址的映射(即,TLB未命中),則頁面表走查器227遍歷(或者“行走”)頁面表的級別以確定與虛擬記憶體位址關聯的實體記憶體位址,並且經由匯流排介面228從處理器202發送出對於(如從在頁面表中儲存的映射而確定的)實體記憶體位址的記憶體請求。如以下更具體地描述的那樣,在一些示例中,頁面表被實施為多級別頁面表,並且頁面表走查器227使用走查器快取記憶體232以減少為了確定與虛擬記憶體位址關聯的實體記憶體位址而需要的時間量。
在一些示例中,並行地存取TLB 230和頁面表以保證在TLB未命中出現時未引發附加時間懲罰。
由於L1資料快取記憶體222和TLB 230僅能儲存有限數目的條目,所以需要快取記憶體管理演算法以保證在L1資料快取記憶體222和TLB 230中儲存的條目是很可能被多次重用的條目。這樣的演算法基於標準(比如近期地最少使用標準)驅逐和替換在L1資料快取記憶體222和TLB 230中儲存的條目。
2.2.2指令記憶體存取
在處理器核220需要存取與處理器指令關聯的虛擬記憶體位址時,處理器核220向L1指令快取記憶體224發送對於虛擬記憶體位址的記憶體存取請求。L1指令快取記憶體224儲存由其虛擬記憶體位址標記的有限數目的處理器指令。如果L1指令快取記憶體224具有用於虛擬記憶體位址的條目(即,快取記憶體命中),則向處理器核220返回與虛擬記憶體位址關聯的處理器指令而無需記憶體層級中的任何進一步的記憶體存取操作。備選地,
在一些實現方式中,L1指令快取記憶體224用其實體記憶體位址標記條目,這即使對於快取記憶體命中仍然需要位址轉換。
然而,如果L1指令快取記憶體224不具有用於虛擬記憶體位址的條目(即,快取記憶體未命中),則向MMU 226發送記憶體存取請求。一般而言,MMU 226使用指令TLB以將虛擬記憶體位址轉換成對應的實體記憶體位址,並且經由匯流排介面228向記憶體層級的其它單元從處理器202發送出對於實體記憶體位址的記憶體存取請求。如以上指出的那樣,使用頁面表走查器227來實現這一轉換,該頁面表走查器227處置從頁面表對在虛擬記憶體位址與實體記憶體位址之間的映射的取回。
為了加速將虛擬記憶體位址轉換成實體記憶體位址的過程,TLB 230包括在虛擬記憶體位址與實體記憶體位址之間的多個近期地或者普遍地使用的映射。如果TLB 230具有用於虛擬記憶體位址的映射,則經由匯流排介面228從處理器202發送出對於(如從在TLB 230中儲存的映射而確定的)與虛擬記憶體位址關聯的實體記憶體位址的記憶體存取請求。
如果TLB 230不具有用於虛擬記憶體位址的映射(即,TLB未命中),則頁面表走查器227行走頁面表以確定與虛擬記憶體位址關聯的實體記憶體位址,並且經由匯流排介面228從處理器202發送出對於(如從在頁面表中存儲的映射而確定的)實體記憶體位址的記憶體請求。如以下更具體地描述的那樣,在一些示例中,頁面表被實施為多級別頁面表,並且頁面表走查器227使用走查器快取記憶體232以減少為了確定與虛擬記憶體位址關聯的實體記憶體位址而需要的時間量。
在一些示例中,並行地存取TLB 230和頁面表以保證在TLB未命中出現時未引發附加時間懲罰。
由於L1指令快取記憶體224和TLB 230僅能儲存有
限數目的條目,所以需要快取記憶體管理演算法以保證在L1指令快取記憶體224和TLB 230中儲存的映射是很可能被多次重用的映射。這樣的演算法基於標準(比如近期地最少使用標準)驅逐和替換在L1指令快取記憶體224和TLB 230中儲存的條目。
2.2.3頁面表走查器
如以上提到的,在TLB未命中對於虛擬記憶體位址而出現時,頁面表走查器227行走頁面表以確定與虛擬記憶體位址關聯的實體記憶體位址。
參照第三圖,多級頁面表334包括第一頁面表級別334-1、第二頁面表級別334-2、第三頁面表級別334-3、第四頁面表級別334-4和第五頁面表級別334-5。每個頁面表級別可以包括多個頁面表。一般而言,每個頁面表包括多個條目,每個條目包括中間實體頁面編號。每個中間實體頁面編號對應於與虛擬記憶體位址關聯的實體記憶體位址的部分並且用來對下一頁面表級別中的適當頁面表進行定址。在一些示例中,使用其它分解方案來分解頁面表。在一些示例中,使用不同頁面表結構。
在TLB未命中對於虛擬記憶體位址336而出現時,頁面表走查器227行走多級別頁面表334以確定與虛擬記憶體位址336關聯的實體位址。
為了這樣做,頁面表走查器227先將虛擬記憶體位址336分解成索引的序列和偏移。在第三圖中,虛擬記憶體位址336被分解成級別1索引338(例如,虛擬記憶體位址的位元47:39)、級別2索引340(例如,虛擬記憶體位址的位元38:30)、級別3索引342(例如,虛擬記憶體位址的位元29:21)、級別4索引344(例如,虛擬記憶體位址的位元20:12)和偏移346(例如,虛擬記憶體位址的位元11-0)。頁面表走查器227然後使用基底位址348(可以被儲存在處理單元的寄存器中)以對在第一頁面表級別
334-1的對應的級別1頁面表350進行定位。
在級別1頁面表350被定位時,頁面表走查器227使用級別1索引338來索引到級別1頁面表350中以標識與級別1索引338對應的頁面表條目。頁面表走查器227從標識的條目提取級別1中間頁面位址IPAL1。IPAL1用來對在第二頁面表級別334-2處的對應的級別2頁面表352進行定位。
在級別2頁面表352被定位時,頁面表走查器227使用級別2索引340來索引到級別2頁面表352中以標識與級別2索引340對應的頁面表條目。頁面表走查器227從標識的條目提取級別2中間頁面位址IPAL2。IPAL2用來對在第三頁面表級別334-3處的對應的級別3頁面表354進行定位。
在級別3頁面表354被定位時,頁面表走查器227使用級別3索引342來索引到級別3頁面表354中以標識與級別3索引342對應的頁面表條目。頁面表走查器227從標識的條目提取級別3中間頁面位址IPAL3。IPAL3用來對在第四頁面表級別334-4處的對應的級別4頁面表356進行定位。
在級別4頁面表356被定位時,頁面表走查器227使用級別4索引344來索引到級別4頁面表356中以標識與級別4索引344對應的頁面表條目。頁面表走查器227從標識的條目提取級別4中間頁面位址IPAL4。IPAL4用來對在第五頁面表級別334-5處的對應的級別5頁面表358進行定位。
在級別5頁面表358被定位時,頁面表走查器227使用偏移346來索引到級別5頁面表358中以標識與偏移346對應的頁面表條目。頁面表走查器227從標識的條目提取實體位址PAL5的最後部分。
在從標識的條目提取實體記憶體位址PAL5的最後部分之後,虛擬記憶體位址336到實體記憶體位址的轉換完成。
在一些示例中,用來分解虛擬記憶體位址的位元範圍不同於以上描述的位範圍並且可以基於多種系統組態和基於多級別頁面表的配置而變化。
2.2.3.1走查器快取記憶體
參照第四圖,在一些示例中,頁面表走查器227使用走查器快取記憶體232以增加虛擬到實體記憶體位址轉換的速度。一般而言,走查器快取記憶體232維護近期地或者普遍地使用的中間轉換(即,從虛擬記憶體位址的部分到中間頁面位址的轉換)的集合。在某些情形中,使用走查器快取記憶體232可以通過從在走查器快取記憶體232中儲存的中間轉換之一開始行走來縮短為了確定實體記憶體位址而需要的行走。
走查器快取記憶體232包括多個條目460(在第四圖中被表示為行)。每個條目代表中間轉換並且包括表級別值462、快取記憶體的虛擬記憶體位址部分(VA)464和與快取記憶體的虛擬記憶體位址部分464對應的中間頁面位址(IPA)466。
對於給定的條目,表級別值462代表多級別頁面表中的與條目關聯的級別。在第三圖的示例中,存在三個可能的表級別值:1、2、3和4。注意,頁面表級別5未被包括在快取記憶體中,因為最後頁面表級別實質上由TLB 230覆蓋。另外,在一些示例中,用於更高編號的表級別(例如,級別4)的中間轉換未被快取記憶體,因為它們不可能被普遍地使用。
快取記憶體的虛擬記憶體位址部分464是與由條目460維護的中間轉換關聯的虛擬記憶體位址的子集。快取記憶體的虛擬記憶體位址部分464中的位元數依賴于與條目關聯的表級別而變化。在第三圖的示例中,如果表級別是1,則快取記憶體的虛擬記憶體位址部分464包括虛擬記憶體位址的9位元(即,位<47:39>)。如果表級別是2,則快取記憶體的虛擬記憶體位址部分464
包括18位元(即,虛擬記憶體位址的位元<47:30>)。如果表級別是3,則快取記憶體的虛擬記憶體位址部分464包括27位元(即,虛擬記憶體位址的位元<47:21>)。
中間頁面位址466包括與快取記憶體的虛擬記憶體位址部分464關聯的一個或者多個其它中間頁面位址的級聯(concatenation)。例如,對於具有表級別值3的條目,中間頁面位址466包括從級別1頁面表確定的中間頁面位址、從級別2頁面表確定的中間頁面位址和從級別3頁面表確定的中間頁面位址的級聯。在一些示例中,中間頁面位址466具有與快取記憶體的虛擬記憶體位址部分464相同的位元數。一般而言,中間頁面位址466代表部分地轉換的實體記憶體位址。
2.2.3.1.1走查器快取記憶體管理
在頁面表走查器227行走多級別頁面表時,走查器快取記憶體232的條目460被更新以反映遇到的中間轉換。
例如,在頁面表走查器227行走到用於虛擬記憶體位址VAE的頁面表的級別2時,向走查器快取記憶體232添加走查器快取記憶體條目,該走查器快取記憶體條目包括表級別值‘2’、VAE<47:30>的虛擬記憶體位址值的部分和與虛擬記憶體位址的部分對應的IPAL2E的中間頁面位址。
一般而言,由於走查器快取記憶體232包括有限數目的條目,因而快取記憶體管理演算法用來保證在走查器快取記憶體232中儲存的條目是很可能被多次重用的條目。這樣的演算法基於標準(比如近期地最少使用標準)驅逐和替換在走查器快取記憶體232中儲存的條目。
2.2.3.1.2走查器快取記憶體使用
一旦被填充,則走查器快取記憶體232的條目460可以由頁面表走查器227用來快速地獲得用於先前轉換的虛擬記憶
體位址的中間頁面位址而無需行走頁面表。
參照第四圖的示例,為了這樣做,在頁面表走查器227接收用於轉換的輸入虛擬記憶體位址VAN時,它先標識與有走查器快取記憶體232快取記憶體的最高頁面表級別(即,L3)對應的VAN的部分。在這一示例中,與L3對應的VAN的部分是VAN<47:21>。然後,對於具有與最高表級別值L3匹配的表級別值462的每個條目,頁面走查器227比較VAN<47:21>與條目的快取記憶體的虛擬記憶體位址部分464。參照第五圖,如果發現了具有與快取記憶體的虛擬記憶體位址部分464匹配的VAN<47:21>的條目(例如,VAH<47:21>),則頁面表走查器227可以從與條目關聯的中間頁面位址466(例如,IPAL3H)而不是從頁面表的開始來開始它的行走。
再次參照第四圖,如果未發現匹配條目,則頁面表走查器227標識與多級別頁面表的層級中的向上一個頁面表級別(即,L2)對應的VAN的部分。在這一示例中,與L2對應的VAN的部分是VAN<47:30>。然後,對於走查器快取記憶體232中的具有與L2匹配的表級別值462的每個條目,頁面表走查器227比較VAN<47:30>與條目的快取記憶體的虛擬記憶體位址部分464。如果發現了具有與快取記憶體的虛擬記憶體位址部分464匹配的VAN<47:30>的條目(例如,VAE<47:30>),則頁面表走查器227可以從與條目關聯的中間頁面位址466(例如,IPAL2E)開始它的行走。
同樣,如果未發現匹配條目,則頁面表走查器227標識與多級別頁面表的層級中的向上另一頁面表級別(即,L1)對應的VAN的部分。在這一示例中,與L1對應的VAN的部分是VAN<47:39>。然後,對於走查器快取記憶體232中的具有與L1匹配的表級別值462的每個條目,頁面表走查器227比較VAN<47:39>與條目的快取記憶體的虛擬記憶體位址部分464。如果發現了具有與快
取記憶體的虛擬記憶體位址部分464匹配的VAN<47:39>的條目(例如,VAA<47:39>),則頁面表走查器227可以從與條目關聯的中間頁面位址466(例如,IPAL1A)開始它的行走。
同樣,如果未發現匹配條目,則需要全頁面表行走。
儘管在第四圖中未示出,但是在一些示例中,走查器快取記憶體232包括用於頁面表的更高級別(例如,級別4、VAX<47:12>)的條目。
2.3轉譯後備緩衝區無效化(TLBI)指令
在一些示例中,計算系統的虛擬記憶體系統可以改變它的在虛擬記憶體位址與實體記憶體位址之間的映射。在這樣的情況下,向計算系統中的TLB發佈(例如,由作業系統或者由硬體實體)用於虛擬記憶體位址的轉譯後備緩衝區無效化指令(TLBI)(即,每個處理單元202的TLB 230和指令TLB 232)。一般而言,TLBI指令包括虛擬記憶體位址並且引起對與虛擬記憶體位址關聯的任何TLB條目的無效化。也就是說,在TLB接收用於給定的虛擬記憶體位址的TLBI時,TLB中的儲存在給定的虛擬記憶體位址與實體記憶體位址之間的映射的任何條目被無效化。
2.3.1走查器快取記憶體條目無效化
在一些示例中,在發佈用於虛擬記憶體位址的TLBI指令時,TLBI指令也使走查器快取記憶體中的與虛擬記憶體位址關聯的條目被無效化。
參照第六圖,為了這樣做,在發佈用於虛擬記憶體位址的TLBI VATLBI時,標識與由走查器快取記憶體232快取記憶體的最高頁面表級別(即,L3)對應的VATLBI的部分。在這一示例中,與L3對應的VATLBI的部分是VATLBI<47:21>。然後,對於走查器快取記憶體232中的具有與最高表級別值L3匹配的表級別值462的每個條目,比較VATLBI<47:21>與條目的快取記憶體的虛擬記憶
體位址部分464。如果VATLBI<47:21>與條目的快取記憶體的虛擬記憶體位址部分464匹配,則條目被無效化(例如,通過刪除條目或者設置無效位)。例如,在第六圖中,VATLBI<47:21>與VAA<47:21>的比較產生匹配,並且包括VAA<47:21>的條目被無效化。
無論是否在L3的條目中發現匹配條目,都標識與多級別頁面表的層級中的向上一個表級別(即,L2)對應的VATLBI的部分。在這一示例中,與L2對應的VATLBI的部分是VATLBI<47:30>。然後,對於走查器快取記憶體232中的具有與L2匹配的表級別值462的每個條目,比較VATLBI<47:30>與條目的快取記憶體的虛擬記憶體位址部分646。如果VATLBI<47:30>與條目的快取記憶體的虛擬記憶體位址部分646匹配,則條目被無效化(例如,通過刪除條目或者設置無效位)。例如,在第六圖中,VATLBI<47:30>與VAA<47:30>的比較產生匹配,並且包括VAA<47:30>的條目被無效化。
無論是否在L3的條目中發現匹配條目,都標識與多級別頁面表的層級中的向上一個表級別(即,L1)對應的VATLBI的部分。在這一示例中,與L1對應的VATLBI的部分是VATLBI<47:39>。然後,對於走查器快取記憶體232中的具有與L1匹配的表級別值462的每個條目,比較VATLBI<47:39>與條目的快取記憶體的虛擬記憶體位址部分646。如果VATLBI<47:39>與條目的快取記憶體的虛擬記憶體位址部分646匹配,則條目被無效化(例如,通過刪除條目或者設置無效位)。例如,在第六圖中,VATLBI<47:39>與VAA<47:39>的比較產生匹配,並且包括VAA<47:39>的條目被無效化。
3.備選
在一些示例中,走查器快取記憶體條目包括其它資訊,比如級(虛擬到中間或者中間到實體)、遮罩位元和上下文識別字。
在一些示例中,頁面表走查器227在它查詢走查器高速環存232的相同時間行走頁面表以如果走查器快取記憶體未命中出現則減少引起時間懲罰。
在一些示例中,取代回應於用於虛擬記憶體位址的TLBI指令來無效化與虛擬記憶體位址關聯的所有走查器快取記憶體條目,基於匹配標準有選擇地無效化與虛擬記憶體位址關聯的走查器快取記憶體條目。例如,可以基於與走查器快取記憶體條目關聯的報表級別值對條目進行無效化(例如,無效化具有大於2的頁面級別的所有條目)。在一些示例中,關於無效化哪些走查器快取記憶體條目的判決基於頁面表的細微性。例如,架構可以指定將用作轉換單位的最小細微性大小。在以上呈現的示例中,最小細微性大小是4KB。這將意味著位址位<11:0>將覆蓋在4KB細微性內被定址的所有比特。為了對細微性進行定址,將使用位址位<47:12>。對於64KB的細微性大小,將使用位<47:16>。可以從那些細微性構造更大大小的塊。
在一些示例中,使用位元遮罩來實現對位範圍的比較。
在一些示例中,走查器快取記憶體條目可以包括用於多個不同頁面表級別的中間轉換。
其它實施例在所附申請專利的範圍內。
Claims (24)
- 一種裝置,包括:核,所述核被配置為執行記憶體指令,所述記憶體指令基於虛擬位址存取在實體記憶體中儲存的資料,所述虛擬位址基於具有多個級別的層級頁面表而被轉換成實體位址,每個級別儲存用於確定在虛擬位址與實體位址之間的最終映射的不同中間結果;以及記憶體管理單元(MMU),所述記憶體管理單元被耦合到所述核,所述MMU包括儲存所述頁面表的多個所述最終映射的第一快取記憶體、遍歷所述頁面表的所述級別以提供與相應級別關聯的用於確定所述最終映射的中間結果的頁面表走查器和儲存由所述頁面表走查器提供的有限數目的中間結果的第二快取記憶體;其中所述MMU被配置為回應於來自所述核的用於對第一虛擬位址進行無效化的請求來比較所述第一虛擬位址的部分與所述第二快取記憶體中的條目的部分;其中所述比較基於匹配標準,所述匹配標準依賴於與在所述第二快取記憶體中的條目中儲存的每個中間結果關聯的所述級別;以及其中所述MMU被配置為去除所述第二快取記憶體中的滿足所述匹配標準的任何條目。
- 根據申請專利範圍第1項所述的裝置,其中與所述第一虛擬位址的所述部分比較的所述第二快取記憶體中的條目的所述部分是與在所述條目中儲存的中間結果關聯的虛擬位址的連續位元序列。
- 根據申請專利範圍第2項所述的裝置,其中所述比較基於匹配標準,所述匹配標準依賴於與在所述第二快取記憶體中的條目中儲存的每個中間結果關聯的所述級別,並且依賴於包含與所述中間結果關聯的所述虛擬位址的頁面的細微性大小。
- 根據申請專利範圍第2項所述的裝置,其中所述比較包括將位元遮罩應用於所述第二快取記憶體中的所述條目以確定所述第二快取記憶體中的所述條目的所述部分,以及將位元遮罩應用於所述第一虛擬位址以確定所述第一虛擬位址的所述部分。
- 根據申請專利範圍第4項所述的裝置,其中回應於來自所述核的用於對第一虛擬位址進行無效化的所述請求來計算所述遮罩。
- 根據申請專利範圍第4項所述的裝置,其中所述遮罩被儲存在所述第二快取記憶體中的所述條目中。
- 根據申請專利範圍第1項所述的裝置,其中所述第二快取記憶體包括儲存與所述頁面表的多個不同級別關聯的中間結果的條目。
- 根據申請專利範圍第1項所述的裝置,其中所述第一快取記憶體包括儲存由所述層級頁面表的少於所有所述最終映射構成的子集的轉譯後備緩衝區。
- 根據申請專利範圍第1項所述的裝置,還包括實體記憶體介面,所述實體記憶體介面被配置為存取所述實體記憶體的儲存由實體位址空間的實體位址引用的資料的第一部分和儲存所述層級頁面表的至少一個級別的第二部分。
- 根據申請專利範圍第9項所述的裝置,還包括儲存由虛擬位址空間的虛擬位址引用的資料的儲存裝置。
- 根據申請專利範圍第1項所述的裝置,其中所述第二快取記憶體中的所述條目的第一子集與所述層級頁面表的所述多個級別中的第一級別關聯,所述第二快取記憶體中的所述條目的第二子集與所述層級頁面表的所述多個級別中的第二級別關聯,並且與所述第一虛擬位址的部分與所述第二子集中的所述條目的所述比較並行地執行所述第一虛擬位址的部分與所述第一子集中的所述條 目的所述比較。
- 根據申請專利範圍第1項所述的裝置,其中所述第一虛擬位址的部分與所述第二快取記憶體中的條目的部分的所述比較花費3個處理器週期。
- 一種方法,包括:在核中執行記憶體指令,所述記憶體指令基於虛擬位址存取在實體記憶體中儲存的資料,所述虛擬位址基於具有多個級別的層級頁面表而被轉換成實體位址,每個級別儲存用於確定在虛擬位址與實體位址之間的最終映射的不同中間結果;以及在被耦合到所述核的記憶體管理單元(MMU)中管理儲存所述頁面表的多個所述最終映射的第一快取記憶體、遍歷所述頁面表的所述級別以提供與相應級別關聯的用於確定所述最終映射的中間結果的頁面表走查器和儲存由所述頁面表走查器提供的有限數目的中間結果的第二快取記憶體;其中所述MMU回應於來自所述核的用於對第一虛擬位址進行無效化的請求來比較所述第一虛擬位址的部分與所述第二快取記憶體中的條目的部分;其中所述比較基於匹配標準,所述匹配標準依賴於與在所述第二快取記憶體中的條目中儲存的每個中間結果關聯的所述級別;以及其中所述MMU去除所述第二快取記憶體中的滿足所述匹配標準的任何條目。
- 根據申請專利範圍第13項所述的方法,其中與所述第一虛擬位址的所述部分比較的所述第二快取記憶體中的條目的所述部分是與在所述條目中儲存的中間結果關聯的虛擬位址的連續位元序列。
- 根據申請專利範圍第14項所述的方法,其中所述比較基 於匹配標準,所述匹配標準依賴於與在所述第二快取記憶體中的條目中儲存的每個中間結果關聯的所述級別並且依賴於包含與所述中間結果關聯的所述虛擬位址的頁面的細微性大小。
- 根據申請專利範圍第14項所述的方法,其中所述比較包括將位元遮罩應用於所述第二快取記憶體中的所述條目以確定所述第二快取記憶體中的所述條目的所述部分,以及將位元遮罩應用於所述第一虛擬位址以確定所述第一虛擬位址的所述部分。
- 根據申請專利範圍第16項所述的方法,其中回應於來自所述核的用於對第一虛擬位址進行無效化的所述請求來計算所述遮罩。
- 根據申請專利範圍第16項所述的方法,其中所述遮罩被儲存在所述第二快取記憶體中的所述條目中。
- 根據申請專利範圍第13項所述的方法,其中所述第二快取記憶體包括儲存與所述頁面表的多個不同級別關聯的中間結果的條目。
- 根據申請專利範圍第13項所述的方法,其中所述第一快取記憶體包括儲存由所述層級頁面表的少於所有所述最終映射構成的子集的轉譯後備緩衝區。
- 根據申請專利範圍第13項所述的方法,還包括實體記憶體介面,所述實體記憶體介面被配置為存取所述實體記憶體的儲存由實體位址空間的實體位址引用的資料的第一部分和儲存所述層級頁面表的至少一個級別的第二部分。
- 根據申請專利範圍第21項所述的方法,還包括儲存裝置,所述儲存裝置儲存由虛擬位址空間的虛擬位址引用的資料。
- 根據申請專利範圍第13項所述的方法,其中所述第二快取記憶體中的所述條目的第一子集與所述層級頁面表的所述多個級別中的第一級別關聯,所述第二快取記憶體中的所述條目的第二 子集與所述層級頁面表的所述多個級別中的第二級別關聯,並且與所述第一虛擬位址的部分與所述第二子集中的所述條目的所述比較並行地執行所述第一虛擬位址的部分與所述第一子集中的所述條目的所述比較。
- 根據申請專利範圍第13項所述的方法,其中所述第一虛擬位址的部分與所述第二快取記憶體中的條目的部分的所述比較花費3個處理器週期。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/541,616 US9405702B2 (en) | 2014-11-14 | 2014-11-14 | Caching TLB translations using a unified page table walker cache |
US14/541,616 | 2014-11-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201617885A TW201617885A (zh) | 2016-05-16 |
TWI641946B true TWI641946B (zh) | 2018-11-21 |
Family
ID=55961807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104110648A TWI641946B (zh) | 2014-11-14 | 2015-04-01 | 使用統一頁面表走查器快取記憶體來對tlb轉換進行快取記憶體的裝置及方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9405702B2 (zh) |
TW (1) | TWI641946B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9892058B2 (en) * | 2015-12-16 | 2018-02-13 | Advanced Micro Devices, Inc. | Centrally managed unified shared virtual address space |
US9846553B2 (en) * | 2016-05-04 | 2017-12-19 | Exablox Corporation | Organization and management of key-value stores |
US10402340B2 (en) * | 2017-02-21 | 2019-09-03 | Micron Technology, Inc. | Memory array page table walk |
US10970118B2 (en) | 2017-08-02 | 2021-04-06 | Advanced Micro Devices, Inc. | Shareable FPGA compute engine |
CN110765156A (zh) | 2018-07-09 | 2020-02-07 | 慧荣科技股份有限公司 | 链表搜索装置及方法 |
US11023374B2 (en) | 2018-07-09 | 2021-06-01 | Silicon Motion, Inc. | Apparatus and method and computer program product for controlling data access |
TWI727185B (zh) * | 2018-07-09 | 2021-05-11 | 慧榮科技股份有限公司 | 鏈結串列搜索裝置及方法 |
US10997083B2 (en) * | 2018-09-04 | 2021-05-04 | Arm Limited | Parallel page table entry access when performing address translations |
US11954026B1 (en) * | 2018-09-18 | 2024-04-09 | Advanced Micro Devices, Inc. | Paging hierarchies for extended page tables and extended page attributes |
US11210232B2 (en) * | 2019-02-08 | 2021-12-28 | Samsung Electronics Co., Ltd. | Processor to detect redundancy of page table walk |
KR20200098354A (ko) * | 2019-02-08 | 2020-08-20 | 삼성전자주식회사 | 페이지 테이블 워크의 리던던시를 검출하는 프로세서 |
US11216385B2 (en) * | 2019-05-15 | 2022-01-04 | Samsung Electronics Co., Ltd. | Application processor, system-on chip and method of operating memory management unit |
US11422812B2 (en) | 2019-06-25 | 2022-08-23 | Advanced Micro Devices, Inc. | Method and apparatus for efficient programmable instructions in computer systems |
US11176055B1 (en) | 2019-08-06 | 2021-11-16 | Marvell Asia Pte, Ltd. | Managing potential faults for speculative page table access |
US11061820B2 (en) * | 2019-08-30 | 2021-07-13 | Microsoft Technology Licensing, Llc | Optimizing access to page table entries in processor-based devices |
US11232042B2 (en) * | 2019-11-15 | 2022-01-25 | Microsoft Technology Licensing, Llc | Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system |
CN114238176B (zh) * | 2021-12-14 | 2023-03-10 | 海光信息技术股份有限公司 | 处理器、用于处理器的地址翻译方法、电子设备 |
CN114238167B (zh) * | 2021-12-14 | 2022-09-09 | 海光信息技术股份有限公司 | 信息预取方法、处理器、电子设备 |
CN114116540B (zh) * | 2022-01-26 | 2022-04-12 | 广东省新一代通信与网络创新研究院 | 一种用于提高处理器页表缓冲性能的方法及系统 |
US11853228B1 (en) * | 2022-06-10 | 2023-12-26 | Arm Limited | Partial-address-translation-invalidation request |
KR20240103793A (ko) | 2022-12-27 | 2024-07-04 | 리벨리온 주식회사 | 뉴럴 프로세싱 장치 및 그의 tlb 업데이트 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6490671B1 (en) * | 1999-05-28 | 2002-12-03 | Oracle Corporation | System for efficiently maintaining translation lockaside buffer consistency in a multi-threaded, multi-processor virtual memory system |
US20130326143A1 (en) * | 2012-06-01 | 2013-12-05 | Broadcom Corporation | Caching Frequently Used Addresses of a Page Table Walk |
TW201428482A (zh) * | 2010-12-22 | 2014-07-16 | Via Tech Inc | 多核心微處理器之共享電源的分散式管理 |
TW201432562A (zh) * | 2007-08-10 | 2014-08-16 | Kernelon Silicon Inc | 虛擬佇列處理電路及工作處理裝置 |
-
2014
- 2014-11-14 US US14/541,616 patent/US9405702B2/en active Active
-
2015
- 2015-04-01 TW TW104110648A patent/TWI641946B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6490671B1 (en) * | 1999-05-28 | 2002-12-03 | Oracle Corporation | System for efficiently maintaining translation lockaside buffer consistency in a multi-threaded, multi-processor virtual memory system |
TW201432562A (zh) * | 2007-08-10 | 2014-08-16 | Kernelon Silicon Inc | 虛擬佇列處理電路及工作處理裝置 |
TW201428482A (zh) * | 2010-12-22 | 2014-07-16 | Via Tech Inc | 多核心微處理器之共享電源的分散式管理 |
US20130326143A1 (en) * | 2012-06-01 | 2013-12-05 | Broadcom Corporation | Caching Frequently Used Addresses of a Page Table Walk |
Also Published As
Publication number | Publication date |
---|---|
TW201617885A (zh) | 2016-05-16 |
US9405702B2 (en) | 2016-08-02 |
US20160140048A1 (en) | 2016-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI641946B (zh) | 使用統一頁面表走查器快取記憶體來對tlb轉換進行快取記憶體的裝置及方法 | |
KR102448124B1 (ko) | 가상 주소들을 사용하여 액세스된 캐시 | |
CN110998549B (zh) | 地址转换缓存 | |
KR102665339B1 (ko) | 변환 색인 버퍼 축출 기반 캐시 교체 | |
CN104346294B (zh) | 基于多级缓存的数据读/写方法、装置和计算机系统 | |
KR102531261B1 (ko) | 캐시 메인터넌스 명령 | |
US20160140042A1 (en) | Instruction cache translation management | |
US9697137B2 (en) | Filtering translation lookaside buffer invalidations | |
EP3497577B1 (en) | Updating least-recently-used data for greater persistence of higher-generality cache entries | |
US11803482B2 (en) | Process dedicated in-memory translation lookaside buffers (TLBs) (mTLBs) for augmenting memory management unit (MMU) TLB for translating virtual addresses (VAs) to physical addresses (PAs) in a processor-based system | |
CN108459975B (zh) | 用于有效使用地址转换缓存的技术 | |
US20130326143A1 (en) | Caching Frequently Used Addresses of a Page Table Walk | |
US11392508B2 (en) | Lightweight address translation for page migration and duplication | |
TWI664571B (zh) | 用於進行中操作的指令排序 | |
TW201633144A (zh) | 管理快取記憶體中的重用資訊 | |
US9442856B2 (en) | Data processing apparatus and method for handling performance of a cache maintenance operation | |
US11507515B1 (en) | Memory management unit with address translation cache | |
Qiu et al. | Tag-Sharer-Fusion Directory: A Scalable Coherence Directory With Flexible Entry Formats | |
TW202324108A (zh) | 位址變換快取的變換標籤 | |
Bhattacharjee et al. | Modern VM Hardware Stack |