TWI648625B - 管理位址獨立的頁面屬性 - Google Patents
管理位址獨立的頁面屬性 Download PDFInfo
- Publication number
- TWI648625B TWI648625B TW104113191A TW104113191A TWI648625B TW I648625 B TWI648625 B TW I648625B TW 104113191 A TW104113191 A TW 104113191A TW 104113191 A TW104113191 A TW 104113191A TW I648625 B TWI648625 B TW I648625B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- access level
- page
- class information
- physical 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]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1054—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- 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/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1021—Hit rate improvement
-
- 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/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- 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/60—Details of cache memory
- G06F2212/608—Details relating to cache mapping
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
至少一個CPU被配置為在第一存取級處運行管理程式並且在第二存取級處運行至少一個來賓作業系統。在第二存取級處,使用第一頁表中的映射進行轉換;並且,在第二存取級處,基於虛擬位址的分類確定用於由第一頁表映射的記憶體頁面的類資訊。在第一存取級處,使用第一頁表中的映射進行轉換;並且,在第二存取級處,基於中間物理位址的分類確定用於由第二頁表映射的記憶體頁面的類資訊。在任一存取級處確定的類資訊獨立於用於指示位址的某些位。在不同存取級處確定的類資訊使用動態處理規則被處理以針對記憶體頁面確定所處理的類資訊。
Description
本描述涉及管理位址獨立的頁面屬性。
很多現代處理器支援‘虛擬記憶體(virtual memory)’,其允許被CPU執行的程式指令引用比由主記憶體的大小限定的‘物理位址空間(virtual address space)’更大的‘虛擬位址空間’內的虛擬位址。虛擬記憶體涉及從一個或者多個這樣的虛擬位址空間到物理位址空間中的位址轉換。使用‘頁表’執行轉換,該‘頁表(page table)’以通常由很多快取記憶體行(cache line)構成的記憶體頁面(或者簡單地‘頁面(pages)’)的細微性來存儲虛擬位址和物理位址之間的映射。
很多現代處理器支援具有多級快取記憶體的分層快取記憶體系統,多級快取記憶體包括在處理器內或者在多核處理器的每個核心內的一級或者多級,以及在處理器或者核心外部的一級或者多級,一直到就在主記憶體被存取之前被存取的最後一級快取記憶體(last level cache,LLC)。在分層結構的每級處,快取記憶體存儲資料的子集的副本以相對於較高級快取記憶體的速度(或者相對於用於LLC的主記憶體的速度)加速通過處理器對該資料的存取。較低級快取記憶體更靠近處理器(或者核心),而較高級快取記憶體更遠離處理器(或者核心)。LLC通常由多核處理器的核心中的全部核心共用。在每級處,快取記憶體系統將以‘快取記憶體行’(也稱為‘快取記憶體塊(cache block)’)為單位把資料塊
載入到條目中並且從條目中逐出資料塊。每個快取記憶體行包括若干‘字(words)’的資料,每個字由預定數目的位元組構成。記憶體頁面通常具有來自很多快取記憶體行的資料。
一種稱為‘頁面著色(cache coloring)’的技術涉及管理其中來自不同的記憶體頁面的資料被映射到快取記憶體行的方式。具體地,虛擬位址的特定部分可以與特定‘顏色’相關聯使得具有不同顏色的虛擬位址被保證不在快取記憶體中重疊(例如,通過將每個顏色限制到組相聯快取記憶體的一個或者多個‘組(sets)’)。
在一個方面,總體上講,一種方法包括:回應於在從外部記憶體系統的主記憶體的物理位址空間獲取第一記憶體頁面中的資料的嘗試之後發出的分頁錯誤,從存放裝置獲取所述第一記憶體頁面;以及通過處理器管理記憶體頁面,所述處理器包括(1)至少一個記憶體管理單元,所述至少一個記憶體管理單元耦合到所述外部記憶體系統,以及(2)至少一個中央處理單元,所述至少一個中央處理單元被配置為在第一存取級處運行管理程式和在第二存取級處運行至少一個來賓作業系統。所述管理包括:在所述第二存取級處,使用由所述來賓作業系統存取的第一頁表中的映射從虛擬位址空間中的虛擬位址向中間物理位址空間中的中間物理位址進行轉換;在所述第二存取級處,基於所述虛擬位址空間內的虛擬位址的分類確定用於由所述第一頁表映射的第二記憶體頁面的類資訊,其中在所述第二存取級處確定的所述類資訊獨立於:(1)用於指示虛擬位址的任何位元,和(2)用於指示中間物理位址的任何位元;在所述第一存取級處,使用由所述管理程式存取的第二頁表中的映射從所述中間物理位址向所述主記憶體的所述物理位址空間中的物理位址進行轉換;在所述第一存取級處,基於所述中間物理位址空間內的中間物理位址的分類確定用於由所述第二頁
表映射的所述第二記憶體頁面的類資訊,其中在所述第一存取級處確定的所述類資訊獨立於:(1)用於指示中間物理位址的任何位元,和(2)用於指示物理位址的任何位元;以及使用動態處理規則處理在不同存取級處確定的用於所述第二記憶體頁面的類資訊以確定用於所述第二記憶體頁面的經處理的類資訊。
方面可以包括以下特徵中的一個或者多個特徵。
該方法進一步包括回應於在從所述外部記憶體系統的第一快取記憶體的第一快取記憶體行獲取所述第一記憶體頁面中的所述資料的嘗試之後發出的快取記憶體未命中,發出獲取所述第一記憶體頁面中的所述資料的所述嘗試。
所述管理進一步包括使用所述經處理的類資訊將快取記憶體行存儲在所述第一快取記憶體的選擇的部分中。
所述第一存取級具有比所述第二存取級更高的許可權。
所述中央處理單元被配置為在第三安全級處管理所述主記憶體的所述物理位址空間中的物理位址的安全,所述第三安全級具有比所述第一存取級更高的許可權。
處理在不同存取級處確定的用於所述第二記憶體頁面的類資訊包括處理在三個或者更多不同的存取級處確定的類資訊。
基於根據所述第二記憶體頁面內的資料塊的屬性的位址分類確定在所述第一存取級處確定的所述類資訊或者在所述第二存取級處確定的所述類資訊中的至少一個。
所述第二記憶體頁面內的資料塊的所述屬性包括所述第二記憶體頁面內的所述資料塊的估計的重用。
所述第二記憶體頁面內的所述資料塊的所述估計的重用包括所述第二記憶體頁面內的所述資料塊的估計的未命中率。
所述動態處理規則包括基於在所述第一存取級處確
定的所述類資訊和在所述第二存取級處確定的所述類資訊中的一個或者兩個的內容,在所述第一存取級處確定的所述類資訊和在所述第二存取級處確定的所述類資訊之間進行選擇。
所述動態處理規則包括根據預定函數來組合在所述第一存取級處確定的所述類資訊和在所述第二存取級處確定的所述類資訊。
所述動態處理規則在由所述來賓作業系統或者所述管理程式運行時被改變。
所述第一快取記憶體包括最後一級快取記憶體。
在所述第一存取級處確定的所述類資訊或者在所述第二級處確定的所述類資訊中的至少一個包括存儲在頁表條目內的一個或者多個位,所述頁表條目被快取記憶體存儲在轉換後備緩衝器中。
在另一方面,總體上講,一種裝置包括:存放裝置,所述存放裝置被配置為存儲包括第一記憶體頁面的記憶體頁面,所述第一記憶體頁面回應於在從物理位址空間獲取所述第一記憶體頁面中的資料的嘗試之後發出的頁錯誤而從所述存放裝置獲取;外部記憶體系統,包括主記憶體控制器,所述主記憶體控制器耦合到具有所述物理位址空間的主記憶體;以及處理器,包括(1)至少一個記憶體管理單元,所述至少一個記憶體管理單元耦合到所述外部記憶體系統,以及(2)至少一個中央處理單元,所述至少一個中央處理單元被配置為在第一存取級處運行管理程式並且在第二存取級處運行至少一個來賓作業系統。所述處理器被配置為:在所述第二存取級處,使用由所述來賓作業系統存取的第一頁表中的映射從虛擬位址空間中的虛擬位址向中間物理位址空間中的中間物理位址進行轉換;在所述第二存取級處,基於所述虛擬位址空間內的虛擬位址的分類確定用於由所述第一頁表映射的第二記憶體頁面的類資訊,其中在所述第二存取級處確定的所述類資訊獨立於:
(1)用於指示虛擬位址的任何位元,和(2)用於指示中間物理位址的任何位元;在所述第一存取級處,使用由所述管理程式存取的第二頁表中的映射從所述中間物理位址向所述主記憶體的所述物理位址空間中的物理位址進行轉換;在所述第一存取級處,基於所述中間物理位址空間內的中間物理位址的分類確定用於由所述第二頁表映射的所述第二記憶體頁面的類資訊,其中在所述第一存取級處確定的所述類資訊獨立於:(1)用於指示中間物理位址的任何位元,和(2)用於指示物理位址的任何位元;以及使用動態處理規則處理在不同存取級處確定的用於所述第二記憶體頁面的類資訊以確定用於所述第二記憶體頁面的經處理的類資訊。
方面可以包括以下特徵中的一個或者多個特徵。
回應於快取記憶體未命中,從所述物理位址空間獲取所述第一記憶體頁面中的所述資料的所述嘗試被發出,並且所述外部記憶體系統進一步包括第一快取記憶體,所述第一快取記憶體被配置為存儲多個快取記憶體行並且在從所述快取記憶體行中的至少一個快取記憶體行獲取所述第一記憶體頁面中的所述資料的嘗試之後發出所述快取記憶體未命中。
所述處理被進一步被配置為使用所述經處理的類資訊將快取記憶體行存儲在所述第一快取記憶體的選擇的部分中。
所述第一存取級具有比所述第二存取級更高的許可權。
所述中央處理單元被配置為在第三安全級處管理所述主記憶體的所述物理位址空間中的物理位址的安全,所述第三安全級具有比所述第一存取級更高的許可權。
處理在不同存取級處確定的用於所述第二記憶體頁面的類資訊包括處理在三個或者更多不同的存取級處確定的類資訊。
基於根據所述第二記憶體頁面內的資料塊的屬性的
位址分類確定在所述第一存取級處確定的所述類資訊或者在所述第二存取級處確定的所述類資訊中的至少一個。
所述第二記憶體頁面內的資料塊的所述屬性包括所述第二記憶體頁面內的所述資料塊的估計的重用。
所述第二記憶體頁面內的所述資料塊的所述估計的重用包括所述第二記憶體頁面內的所述資料塊的估計的未命中率。
所述動態處理規則包括基於在所述第一存取級處確定的所述類資訊和在所述第二存取級處確定的所述類資訊中的一個或者兩個的內容,在所述第一存取級處確定的所述類資訊和在所述第二存取級處確定的所述類資訊之間進行選擇。
所述動態處理規則包括根據預定函數來組合在所述第一存取級處確定的所述類資訊和在所述第二存取級處確定的所述類資訊。
所述動態處理規則在由所述來賓作業系統或者所述管理程式運行時被改變。
所述第一快取記憶體包括最後一級快取記憶體。
在所述第一存取級處確定的所述類資訊或者在所述第二級處確定的所述類資訊中的至少一個包括存儲在頁表條目內的一個或者多個位,所述頁表條目被快取記憶體存儲在轉換後備緩衝器中。
方面可以具有以下優點中的一個或者多個優點。
使用“頁面分類”技術,用於特定頁面的各種不同類型的頁面屬性中的任何頁面屬性可以在用於該頁面的頁表條目內被動態地管理。例如,通過將適合的類位元存儲在用於不同存取級的不同的頁表內,分離的頁類資訊可以被提供在不同的存取級處。類位元可以被用於對類資訊進行編碼,類資訊將頁面分為不同的性能類,例如,其可以可行地由處理器使用以增強性能。因為類位於用於特定頁面的映射的位址位元分離,所有類資訊可以獨立於針對
該頁面所執行的轉換被確定。用於頁面內的特定位址的類資訊可以使用動態處理規則從不同存取級處確定的類資訊被動態地處理(例如,在運行時)。可以基於各種因素做出動態決定以使用類資訊作為性能提示(例如,管理快取記憶體或者合併寫入緩衝器),或者在某些情況下簡單地忽略類資訊。用於減輕快取記憶體污染的技術可以利用該動態處理和位址獨立性以提供顯式使用資訊用於任何存取級處的頁面。
從以下描述中,並且從權利要求書中,本發明的其他特徵和優點將變得容易理解。
100‧‧‧計算系統
102‧‧‧處理器
104‧‧‧流水線
106‧‧‧寄存器堆
108‧‧‧處理器記憶體系統
110‧‧‧處理器匯流排
112‧‧‧外部記憶體系統
114‧‧‧I/O橋
116‧‧‧I/O匯流排
118A‧‧‧存放裝置
118B-118D‧‧‧I/O設備
120‧‧‧LLC
122‧‧‧主記憶體控制器
124‧‧‧記憶體模組
200A-200D‧‧‧虛擬位址空間
202A-202D‧‧‧中間物理
位址空間
204‧‧‧物理位址空間
300‧‧‧MMU
302A-302B‧‧‧頁表
304‧‧‧TLB
306‧‧‧L1快取記憶體
308‧‧‧主記憶體
310‧‧‧PTE
312‧‧‧中間物理頁號
314‧‧‧物理頁號
316‧‧‧狀態資訊
318‧‧‧類位元
320‧‧‧LLC
320’‧‧‧LLC
322‧‧‧快取記憶體行
330‧‧‧主快取記憶體
332‧‧‧污染緩衝器
第一圖是計算系統的示意圖。
第二圖是圖示了不同級的位址空間的示意圖。
第三A圖和第三B圖是圖示了用於管理類資訊的程式的示意圖。
一些處理器支持涉及‘虛擬機器’(VM)的各種種類的虛擬化。這些種類的虛擬化包括‘核心虛擬化’和‘I/O虛擬化’,核心虛擬化使得多個來賓作業系統均能夠運行在其自身單獨的VM中同時共用相同的物理系統硬體,並且在I/O虛擬化中多個I/O流被耦合到並且來自不同的VM。‘管理程式’(也稱為虛擬機器監視器(VMM))運行在物理系統上以管理虛擬化系統的所有來賓作業系統。管理程式運行在比來賓作業系統更高的許可權的存取級處。因此,只有管理程式可以存取物理位址空間。因此,每個來賓作業系統被提供其自身的‘中間物理位址空間’,一個或者多個虛擬位址空間被轉換到中間物理位址空間中,並且管理程式將中間物理位址轉換成物理位址。虛擬記憶體和VM虛擬化方案的組合針對減輕可以在快取記憶體中出現的稱為‘快取記憶體污染’的潛在的問題的一些方法引起問題。
快取記憶體污染指其中具有較低再使用性的快取記憶體行代替具有較高可用性的快取記憶體行的情況。再使用性指特定快取記憶體行中的資料在被載入到快取記憶體中之後並且在被逐出之前將被再次存取的可能性。一種用於減輕該快取記憶體污染問題的方案是使用‘污染緩衝器’,污染緩衝器是快取記憶體的一部分,用於存儲具有低再使用性的快取記憶體行,保留快取記憶體的大部分用於具有高再使用性的快取記憶體行。在一些虛擬化方案中,頁面著色已經被用於減輕快取記憶體污染。然而,由於頁面著色依賴於快取記憶體行的位址的一部分,因此它不能獨立於位址轉換被執行。下文更加詳細地描述的頁面分類技術將以可以獨立於位址轉換執行的方式使得能夠減輕快取記憶體污染。
為了進一步地理解虛擬記憶體和這些虛擬化方案如何影響快取記憶體管理,理解快取記憶體系統的操作是有說明的。有效的快取記憶體性能依賴於資料存取模式的兩個性質:關於剛剛被存取的資料的時間局部性和空間局部性。時間局部性意指相同資料很可能很快被再次存取。空間局部性意指定位元在附近位址中的資料很可能被很快存取。遺憾的是,某些資料集不呈現顯著的時間或者空間局部性。當具有這樣的資料的快取記憶體行被存儲在快取記憶體條目中時,它代替可能具有更高時間和/或空間局部性的另一快取記憶體行。具有更高時間/空間局部性的資料比具有更低時間和/或空間局部性的資料更可重用。
在一些快取記憶體污染減輕方案中,使用快取記憶體錯失率估算再使用性。虛擬位址的快取記憶體錯失率被採樣,並且然後含具有高錯失率的虛擬位址的資料被映射到存儲在稱為污染緩衝器的快取記憶體的相對較小的區域中的物理位址空間的一部分。通過將高錯失率資料限制到污染緩衝器,由對於該資料的頻繁錯失引起的逐出將僅影響也具有高錯失率的其他資料,這將具有低錯失率的資料保存在污染緩衝器外的快取記憶體的另一區域中。一
種將虛擬位址映射到保證被限制到快取記憶體的特定區域的物理位址的方法是限制所使用的物理位址的‘索引’部分以選擇組相聯快取記憶體的特定‘組’。該機制在其中作業系統具有機器的物理位址佈局的直接控制的非虛擬化系統中有效。然而,該機制在來賓作業系統可能不具有主控機器的物理位址佈局的直接控制的虛擬化系統中可能無效。用於提供用於虛擬化系統的污染緩衝器的備選技術涉及提供獨立於位址的並且可以使用頁面分類在來賓作業系統和管理程式的多個存取級處被有效地管理的重用資訊。
第一圖示出了其中可以使用頁面分類技術的計算系統100的示例。系統100包括至少一個處理器102,其可以是單個中央處理單元(CPU)或者多核架構的多個處理器核心的佈置。在該示例中,處理器102包括流水線104、一個或者多個寄存器堆106和處理器記憶體系統108。處理器102被連接到處理器匯流排110,處理器匯流排110使得能夠與外部記憶體系統112和輸入/輸出(I/O)橋114進行通信。I/O橋114使得能夠通過I/O匯流排116與包括存放裝置118A和其他I/O設備118B-118D(例如,網路介面、顯示器適配器和/或諸如鍵盤或者滑鼠之類的使用者輸入裝置)的各種不同的I/O設備進行通信。諸如硬碟驅動器或者其他大容量(通常非揮發性的)存放裝置之類的存放裝置118A可以留出一些空間用作虛擬記憶體方案中的用於(通常揮發性的)主記憶體的次存儲裝置(或者‘後備存儲庫’),正如下文更加詳細地描述的。
處理器記憶體系統108和外部記憶體系統112一起形成分層快取記憶體系統,包括處理器記憶體系統108內的至少第一級(L1)快取記憶體和外部記憶體系統112內的任何數目的更高級(L2、L3、…)快取記憶體。外部記憶體系統112內的最高級快取記憶體(如果層級中只有兩級,其可以是L2快取記憶體)是就在主記憶體之前被存取的LLC 120。當然,這僅是示例。在哪些級快取記憶體在處理器記憶體系統108內和哪些在外部記憶體系統112之
間的精確區分在其他示例中可以不同。例如,L1快取記憶體和L2快取記憶體可以都在處理器102內部,並且L3(和更高)快取記憶體可以在處理器102外部。如果處理器102是多核處理器,則每個核心可以具有其自身的內部L1快取記憶體,並且核心可以共用L2快取記憶體。外部記憶體系統112還包括主記憶體控制器122,其被連接到用作主記憶體的任何數目的記憶體模組124(例如,動態隨機存取記憶體模組)。
在層級結構的任一級的特定快取記憶體中,每個快取記憶體條目包括用於存儲特定快取記憶體行的資料字和用於標籤(其包含位址的對於該條目的字公共的若干最重要的位)的位的空間和用於其他資訊(例如,有效位元和任何標誌或者錯誤校正碼位元)的空間。對於組相聯快取記憶體,在比較所期望的資料的記憶體位址的標籤部分之前,快取記憶體系統比較位址的索引部分以確定包含該資料的快取記憶體行可以被存儲在多個組中的哪個組中。對於N路(N-way)組相聯快取記憶體,標籤比較被執行N次(有可能並行地),針對其中可以存儲包含資料的快取記憶體行的N‘路’中的每一路執行一次。地址的最低序的位(也稱為‘塊偏移’)被用於從在快取記憶體中找到(即,‘快取記憶體命中(cache hit)’)的快取記憶體行中選擇特定字。如果快取記憶體行未在快取記憶體中找到(即,‘快取記憶體未命中(cache miss)’),則快取記憶體系統嘗試從更高級快取記憶體中或者從主記憶體(在LLC的情況下)中獲取快取記憶體行。
第二圖圖示了具有虛擬記憶體的虛擬化系統的示例中的不同位址空間之間的關係。如上文所描述,有三種類型的地址:虛擬位址(VA)、中間物理位址(IPA)和物理位址(PA)。一個或者多個來賓作業系統(OS)運行在管理程式內,管理程式直接運行在諸如計算系統100之類的主機上。在該示例中,有四個來賓OS:來賓OS A、來賓OS B、來賓OS C和來賓OS D。每個來賓OS
提供用於運行在該來賓OS上的程式的一個或者多個虛擬位址空間,並且管理這些虛擬位址空間內的VA向中間物理位址空間內的IPA的轉換。在該示例中,來賓OS A提供虛擬位址空間200A,並且管理向中間物理位址空間202A的轉換;來賓OS B提供虛擬位址空間200B,並且管理向中間物理位址空間202B的轉換;來賓OS C提供虛擬位址空間200C,並且管理向中間物理位址空間202C的轉換;並且來賓OS D提供虛擬位址空間200D,並且管理向中間物理位址空間202D的轉換。運行在每個來賓作業系統之下的管理程式管理中間物理位址空間中的所有中間物理位址空間內的IPD向對應於主記憶體內的實際物理存儲位置的物理位址空間204內的PA的轉換。PA的部分被用作標籤、索引和偏移以存取諸如LLC 120之類的快取記憶體系統中的快取記憶體中的資料。對於其中來賓OS使用VA至IPA轉換以基於IPA的一部分將高錯失率資料限制到‘軟體污染緩衝器’的快取記憶體污染減輕技術,將需要一種機制,該機制讓管理程式確定軟體污染緩衝器被映射到用於由來賓OS執行的對於基於PA的部分優化硬體污染緩衝器有用的任何軟體優化的特定IPA區域。
作為使用位址的部分將某些資料映射到污染緩衝器的備選,用於存儲映射的頁表可以被增加有一個或者多個‘類位’,類位元被用於根據各種頁面屬性中的任何頁面屬性對頁進行分類。再使用性是這樣的頁面屬性的一個示例。這些類位元可以被用於存儲對特定頁的再使用性的定量估計進行編碼的顯式重用資訊,其然後用於將某些頁上的快取記憶體行轉移到用作污染緩衝器的快取記憶體的選擇的部分。類位元可以備選地用於頁的其他屬性。例如,類位可以被用於提供向頁寫入多大量(即,多少存儲指令與該頁中的位址被發出)的定量估計。處理器102可以然後將該類資訊解釋為用於優化合併寫入緩衝器的操作的性能提示,合併寫入緩衝器在它從快取記憶體回寫至主記憶體之前暫時存儲資料。這
樣的寫入緩衝器可以被包括在緩衝直寫式快取記憶體系統內。來自由類位指示為‘重寫’頁的頁的資料可以通常比由類位指示為‘輕寫’頁的頁被保持在寫入緩衝器中更長的時間段。
第三A圖和第三B圖圖示了用於使用類位來管理和應用重用資訊的程式的示例。處理器記憶體系統108包括記憶體管理單元(MMU)300,管理程式使用MMU 300用於IPA至PA的轉換。在虛擬化系統中,通過來賓OS的VA至IPA的轉換可以完全在軟體中被處理,或者來賓OS可以從MMU 300得到一些硬體協助。不論哪種情況,都會有含存儲VA至IPA的映射的條目的用於由來賓OS使用的頁表,以及含存儲IPA至PA的映射的條目的用於由管理程式使用的單獨的頁表。頁表302A是用於由管理程式使用用於轉換IPA的這樣的頁表的示例,頁表302A通常連同包括頁表302B的若干附加的頁表一起被存儲在主記憶體308中,頁表302B可以由來賓OS使用用於轉換VA。
處理器記憶體系統108還包括轉換後備緩衝器(TLB)304,TLB 304用於快取記憶體存儲來自一個或者多個頁表的經常使用的頁表條目。這使得轉換能夠在不需要必須存取主記憶體以獲取頁表條目的情況下被執行。處理器記憶體系統108還包括L1快取記憶體306和用於處理TLB 304或者L1快取記憶體中的錯失的各種其他電路裝置。當載入或者存儲指令被執行時,TLB 304被用於轉換該指令的記憶體位址(從VA至IPA至PA)。處理器102還確定來自該記憶體位址的資料的副本是否在層級快取記憶體系統的級中的任何級中,如果必要從L1快取記憶體306一直到LLC 320。如果是這樣,該指令可以從快取記憶體系統中被執行。如果不是這樣,該指令可以由錯失電路系統處理使得它可以在直接存取主記憶體308之後被執行。
在該示例中,頁表302A的頁表條目(PTE)310存儲中間物理頁號312和物理頁號314,中間物理頁號312和物理頁號314
用作IPA和PA之間的映射。因為對於IPA及其映射的PA,包括頁偏移的低序位是相同的,所以這只留下包括頁號的高序位來指定映射。同樣地,頁表302B的PTE存儲用作VA和IPA之間的映射的虛擬頁號和中間物理頁號。PTE 310還存儲狀態資訊316,諸如指示頁面是駐留在主記憶體中還是需要從次存儲裝置(例如,存放裝置118A)中獲取的資訊。當PTE 310被存儲在TLB 304中時,也可以有附加的資訊用於管理全頁表和TLB 304之間的PTE的傳遞。
PTE 310中的一個或者多個類位元318的附加的組被提供用於對頁進行分類。當類位元318存儲重用資訊時,它提供允許來賓OS向L1快取記憶體306和LLC 320之間的任何級處的底層快取記憶體系統傳達存儲在特定頁上的資料的再使用性的定量估計的機制。在一些實現方式中,可用資訊是二進位的,並且可以因此使用單個‘重用位元’被編碼(例如,0=低再使用性,或者1=高再使用性)。在二進位情況下,閾值可以被選擇以在低和高再使用性之間進行區分。如果用於特定頁面內的快取記憶體行的平均未命中率高於閾值,則重用位被設置為0(即,高未命中率=低再使用性)。如果用於特定頁面內的快取記憶體行的平均未命中率低於閾值,則重用位被設置為1(即,低未命中率=高再使用性)。如果附加的位元被用於對重用資訊進行編碼,則更細粒的定量估計可以被編碼(例如,2位元提供使用3個閾值確定的4個重用級)。
在一些實現方式中,每個來賓OS負責維護用於VA至IPA頁表中的頁的重用資訊,並且管理程式負責維護用於IPA至PA頁表中的頁的重用資訊。對於兩種類型的頁表,當PTE被緩存在TLB304中時,重用資訊可以與整個PTE一起被複製在類位元318內。對於快取記憶體系統中的基於重用資訊配置有污染緩衝器的任一級快取記憶體,快取記憶體系統使用用於來自一個或者兩個頁表的類位元318的特定頁的重用資訊以選擇該快取記憶體的一部分用於存取落入該特定頁內的快取記憶體行322。第三A圖和第三B圖圖示了
其中LLC 320被配置有污染緩衝器的示例。包含特定快取記憶體行的頁可以通過使用用於對應於用於頁號的位址位元的標籤和索引的合適的部分被確定。
來賓OS和管理程式可以潛在地估計用於相同頁的重用資訊的不同的定量值。快取記憶體系統可以被配置為使用動態處理規則以各種方式中的任何方式處理來自兩個反應階段(即,來自兩個頁表)的重用資訊或者其他類資訊。例如,快取記憶體系統可以使用用於在來賓OS類資訊和管理程式類資訊之間進行選擇的規則。用於作為類資訊的二進位重用資訊的一個這樣的規則可以是:如果來賓OS指示‘低再使用性’並且管理程式指示‘高再使用性’,則選擇‘低再使用性’作為重用資訊。備選地,快取記憶體系統可以使用動態處理規則,動態處理規則使用預定函數結合來自二個轉換階段的類資訊,潛在地導致更細粒的估計作為組合的重用資訊。不管它是來自基於動態處理規則選擇的任意轉換階段的類資訊的值之一還是它是用於組合類資訊並且獲得可以與任意階段的類資訊不同的得到的類資訊的預定函數,動態處理可以通過存儲用於兩個階段的可能值和對應的值之間的映射被實現。在一些實現方式中,動態處理規則可以在運行時由來賓作業系統或者管理程式改變。例如,管理程式可以配置快取記憶體系統以動態地覆蓋該表並且使用來自轉換階段或者存取級中的任何的重用資訊,或者基於軟體和/或硬體的某些屬性關閉污染緩衝器並且忽略重用資訊。這樣的動態處理也可以由經由其頁表條目動態地改變用於頁的類位的能力促進。下表是用於具有兩個階段和二進位重用資訊的系統的映射表的示例。
在一些處理器架構中,存在用於來賓OS和管理程式的存取級之外的附加的存取級。例如,可以存在用於運行在來賓OS中的使用者程式的最低許可權的存取級L0、用於來賓OS的存取級L1、用於管理程式的存取級L2和用於管理主記憶體內的安全和非安全頁的安全系統的最高許可權存取級L3。一些實現方式可以使得每個存取級能夠維護用於頁的其自身的類資訊,並且快取記憶體系統可以處理來自級的任何組合的類資訊以確定用於存取LLC 320或者用於其他任何目的的最終類資訊。
存在各種技術用於在快取記憶體的所選擇的部分中存儲快取記憶體行以便提供污染緩衝器。在第三A圖的示例中,LLC 320是4路組相聯快取記憶體。快取記憶體系統可以使用各路中的一路(例如,路4)作為用於具有‘低再使用性’的頁面上的快取記憶體行的污染緩衝器,並且可以使用其他路(路1-3)作為用於具有‘高再使用性’的頁面上的快取記憶體行的主快取記憶體。在第三B圖的示例中,LLC 320’是具有單獨的專用主快取記憶體330和污染緩衝器332的物理分離的快取記憶體。快取記憶體系統仍然使用來自一個或者兩個轉換階段的重用資訊以在主快取記憶體330和污染緩衝器332之間進行選擇。
其他實施例可以落入以下申請專利範圍內,申請專利範圍不一定包括上文所描述的實施例的特徵或者優點中的所有特徵或者優點。
Claims (28)
- 一種方法,包括:回應於在從外部記憶體系統的主記憶體的物理位址空間獲取第一記憶體頁面中的資料的嘗試之後發出的分頁錯誤,從存放裝置獲取所述第一記憶體頁面;以及通過處理器管理記憶體頁面,所述處理器包括(1)至少一個記憶體管理單元,所述至少一個記憶體管理單元耦合到所述外部記憶體系統,以及(2)至少一個中央處理單元,所述至少一個中央處理單元被配置為在第一存取級處運行管理程式和在第二存取級處運行至少一個來賓作業系統,所述管理包括:在所述第二存取級處,使用由所述來賓作業系統存取的第一頁表中的映射從虛擬位址空間中的虛擬位址向中間物理位址空間中的中間物理位址進行轉換;在所述第二存取級處,基於所述虛擬位址空間內的虛擬位址的分類確定用於由所述第一頁表映射的第二記憶體頁面的類資訊,其中在所述第二存取級處確定的所述類資訊獨立於:(1)用於指示虛擬位址的任何位元,和(2)用於指示中間物理位址的任何位元;在所述第一存取級處,使用由所述管理程式存取的第二頁表中的映射從所述中間物理位址向所述主記憶體的所述物理位址空間中的物理位址進行轉換;在所述第一存取級處,基於所述中間物理位址空間內的中間物理位址的分類確定用於由所述第二頁表映射的所述第二記憶體頁面的類資訊,其中在所述第一存取級處確定的所述類資訊獨立於:(1)用於指示中間物理位址的任何位元,和(2)用於指示物理位址的任何位元;以及使用動態處理規則處理在不同存取級處確定的用於所述第二記憶體頁面的類資訊以確定用於所述第二記憶體頁面的經處 理的類資訊。
- 如申請專利範圍第1項所述的方法,進一步包括回應於在從所述外部記憶體系統的第一快取記憶體的第一快取記憶體行獲取所述第一記憶體頁面中的所述資料的嘗試之後發出的快取記憶體未命中,發出獲取所述第一記憶體頁面中的所述資料的所述嘗試。
- 如申請專利範圍第2項所述的方法,其中所述管理進一步包括使用所述經處理的類資訊將快取記憶體行存儲在所述第一快取記憶體的選擇的部分中。
- 如申請專利範圍第1項所述的方法,其中所述第一存取級具有比所述第二存取級更高的許可權。
- 如申請專利範圍第4項所述的方法,其中所述中央處理單元被配置為在第三安全級處管理所述主記憶體的所述物理位址空間中的物理位址的安全,所述第三安全級具有比所述第一存取級更高的許可權。
- 如申請專利範圍第5項所述的方法,其中處理在不同存取級處確定的用於所述第二記憶體頁面的類資訊包括處理在三個或者更多不同的存取級處確定的類資訊。
- 如申請專利範圍第1項所述的方法,其中基於根據所述第二記憶體頁面內的資料塊的屬性的位址分類確定在所述第一存取級處確定的所述類資訊或者在所述第二存取級處確定的所述類資訊中的至少一個。
- 如申請專利範圍第7項所述的方法,其中所述第二記憶體頁面內的資料塊的所述屬性包括所述第二記憶體頁面內的所述資料塊的估計的重用。
- 如申請專利範圍第8項所述的方法,其中所述第二記憶體頁面內的所述資料塊的所述估計的重用包括所述第二記憶體頁面內的所述資料塊的估計的未命中率。
- 如申請專利範圍第1項所述的方法,其中所述動態處理規則包 括基於在所述第一存取級處確定的所述類資訊和在所述第二存取級處確定的所述類資訊中的一個或者兩個的內容,在所述第一存取級處確定的所述類資訊和在所述第二存取級處確定的所述類資訊之間進行選擇。
- 如申請專利範圍第1項所述的方法,其中所述動態處理規則包括根據預定函數來組合在所述第一存取級處確定的所述類資訊和在所述第二存取級處確定的所述類資訊。
- 如申請專利範圍第1項所述的方法,其中所述動態處理規則在由所述來賓作業系統或者所述管理程式運行時被改變。
- 如申請專利範圍第1項所述的方法,其中所述第一快取記憶體包括最後一級快取記憶體。
- 如申請專利範圍第1項所述的方法,其中在所述第一存取級處確定的所述類資訊或者在所述第二級處確定的所述類資訊中的至少一個包括存儲在頁表條目內的一個或者多個位,所述頁表條目被快取記憶體存儲在轉換後備緩衝器中。
- 一種裝置,包括:存放裝置,所述存放裝置被配置為存儲包括第一記憶體頁面的記憶體頁面,所述第一記憶體頁面回應於在從物理位址空間獲取所述第一記憶體頁面中的資料的嘗試之後發出的頁錯誤而從所述存放裝置獲取;外部記憶體系統,包括主記憶體控制器,所述主記憶體控制器耦合到具有所述物理位址空間的主記憶體;以及處理器,包括(1)至少一個記憶體管理單元,所述至少一個記憶體管理單元耦合到所述外部記憶體系統,以及(2)至少一個中央處理單元,所述至少一個中央處理單元被配置為在第一存取級處運行管理程式並且在第二存取級處運行至少一個來賓作業系統;其中所述處理器被配置為:在所述第二存取級處,使用由所述來賓作業系統存取的第 一頁表中的映射從虛擬位址空間中的虛擬位址向中間物理位址空間中的中間物理位址進行轉換;在所述第二存取級處,基於所述虛擬位址空間內的虛擬位址的分類確定用於由所述第一頁表映射的第二記憶體頁面的類資訊,其中在所述第二存取級處確定的所述類資訊獨立於:(1)用於指示虛擬位址的任何位元,和(2)用於指示中間物理位址的任何位元;在所述第一存取級處,使用由所述管理程式存取的第二頁表中的映射從所述中間物理位址向所述主記憶體的所述物理位址空間中的物理位址進行轉換;在所述第一存取級處,基於所述中間物理位址空間內的中間物理位址的分類確定用於由所述第二頁表映射的所述第二記憶體頁面的類資訊,其中在所述第一存取級處確定的所述類資訊獨立於:(1)用於指示中間物理位址的任何位元,和(2)用於指示物理位址的任何位元;以及使用動態處理規則處理在不同存取級處確定的用於所述第二記憶體頁面的類資訊以確定用於所述第二記憶體頁面的經處理的類資訊。
- 如申請專利範圍第15項所述的裝置,其中回應於快取記憶體未命中,從所述物理位址空間獲取所述第一記憶體頁面中的所述資料的所述嘗試被發出,並且所述外部記憶體系統進一步包括第一快取記憶體,所述第一快取記憶體被配置為存儲多個快取記憶體行並且在從所述快取記憶體行中的至少一個快取記憶體行獲取所述第一記憶體頁面中的所述資料的嘗試之後發出所述快取記憶體未命中。
- 如申請專利範圍第16項所述的裝置,其中所述處理被進一步被配置為使用所述經處理的類資訊將快取記憶體行存儲在所述第一快取記憶體的選擇的部分中。
- 如申請專利範圍第15項所述的裝置,其中所述第一存取級具有 比所述第二存取級更高的許可權。
- 如申請專利範圍第18項所述的裝置,其中所述中央處理單元被配置為在第三安全級處管理所述主記憶體的所述物理位址空間中的物理位址的安全,所述第三安全級具有比所述第一存取級更高的許可權。
- 如申請專利範圍第19項所述的裝置,其中處理在不同存取級處確定的用於所述第二記憶體頁面的類資訊包括處理在三個或者更多不同的存取級處確定的類資訊。
- 如申請專利範圍第15項所述的裝置,其中基於根據所述第二記憶體頁面內的資料塊的屬性的位址分類確定在所述第一存取級處確定的所述類資訊或者在所述第二存取級處確定的所述類資訊中的至少一個。
- 如申請專利範圍第21項所述的裝置,其中所述第二記憶體頁面內的資料塊的所述屬性包括所述第二記憶體頁面內的所述資料塊的估計的重用。
- 如申請專利範圍第22項所述的裝置,其中所述第二記憶體頁面內的所述資料塊的所述估計的重用包括所述第二記憶體頁面內的所述資料塊的估計的未命中率。
- 如申請專利範圍第15項所述的裝置,其中所述動態處理規則包括基於在所述第一存取級處確定的所述類資訊和在所述第二存取級處確定的所述類資訊中的一個或者兩個的內容,在所述第一存取級處確定的所述類資訊和在所述第二存取級處確定的所述類資訊之間進行選擇。
- 如申請專利範圍第15項所述的裝置,其中所述動態處理規則包括根據預定函數來組合在所述第一存取級處確定的所述類資訊和在所述第二存取級處確定的所述類資訊。
- 如申請專利範圍第15項所述的裝置,其中所述動態處理規則在由所述來賓作業系統或者所述管理程式運行時被改變。
- 如申請專利範圍第15項所述的裝置,其中所述第一快取記憶體包括最後一級快取記憶體。
- 如申請專利範圍第15項所述的裝置,其中在所述第一存取級處確定的所述類資訊或者在所述第二級處確定的所述類資訊中的至少一個包括存儲在頁表條目內的一個或者多個位,所述頁表條目被快取記憶體存儲在轉換後備緩衝器中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/662,405 US9471509B2 (en) | 2015-03-19 | 2015-03-19 | Managing address-independent page attributes |
US14/662,405 | 2015-03-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201635147A TW201635147A (zh) | 2016-10-01 |
TWI648625B true TWI648625B (zh) | 2019-01-21 |
Family
ID=56924940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104113191A TWI648625B (zh) | 2015-03-19 | 2015-04-24 | 管理位址獨立的頁面屬性 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9471509B2 (zh) |
TW (1) | TWI648625B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102013022169A1 (de) | 2013-03-14 | 2014-09-18 | Nvidia Corporation | Fehlerpuffer zur verfolgung von seitenfehlern in einem vereinheitlichten virtuellen speichersystem |
US10031856B2 (en) * | 2013-03-14 | 2018-07-24 | Nvidia Corporation | Common pointers in unified virtual memory system |
US10007614B2 (en) * | 2016-02-02 | 2018-06-26 | Cavium, Inc. | Method and apparatus for determining metric for selective caching |
KR20180085107A (ko) * | 2017-01-17 | 2018-07-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US20200409740A1 (en) * | 2019-06-27 | 2020-12-31 | Shih-Wei Li | Systems, methods, and media for trusted hypervisors |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7010633B2 (en) * | 2003-04-10 | 2006-03-07 | International Business Machines Corporation | Apparatus, system and method for controlling access to facilities based on usage classes |
US20120011504A1 (en) * | 2010-07-12 | 2012-01-12 | Vmware, Inc. | Online classification of memory pages based on activity level |
TW201227301A (en) * | 2010-09-13 | 2012-07-01 | Ibm | Real address accessing in a coprocessor executing on behalf of an unprivileged process |
TW201423402A (zh) * | 2012-12-12 | 2014-06-16 | Paneve Llc | 通用目的數位資料處理器、系統及方法 |
US8838914B2 (en) * | 2009-03-27 | 2014-09-16 | Vmware, Inc. | Virtualization system using hardware assistance for shadow page table coherence |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7461210B1 (en) | 2006-04-14 | 2008-12-02 | Tilera Corporation | Managing set associative cache memory according to entry type |
US9063866B1 (en) * | 2010-07-12 | 2015-06-23 | Vmware, Inc. | Page table data structure for online classification of memory pages based on activity level |
US9208103B2 (en) * | 2013-09-26 | 2015-12-08 | Cavium, Inc. | Translation bypass in multi-stage address translation |
US9501422B2 (en) * | 2014-06-11 | 2016-11-22 | Vmware, Inc. | Identification of low-activity large memory pages |
-
2015
- 2015-03-19 US US14/662,405 patent/US9471509B2/en active Active
- 2015-04-24 TW TW104113191A patent/TWI648625B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7010633B2 (en) * | 2003-04-10 | 2006-03-07 | International Business Machines Corporation | Apparatus, system and method for controlling access to facilities based on usage classes |
US8838914B2 (en) * | 2009-03-27 | 2014-09-16 | Vmware, Inc. | Virtualization system using hardware assistance for shadow page table coherence |
US20120011504A1 (en) * | 2010-07-12 | 2012-01-12 | Vmware, Inc. | Online classification of memory pages based on activity level |
TW201227301A (en) * | 2010-09-13 | 2012-07-01 | Ibm | Real address accessing in a coprocessor executing on behalf of an unprivileged process |
TW201423402A (zh) * | 2012-12-12 | 2014-06-16 | Paneve Llc | 通用目的數位資料處理器、系統及方法 |
Also Published As
Publication number | Publication date |
---|---|
US20160275016A1 (en) | 2016-09-22 |
US9471509B2 (en) | 2016-10-18 |
TW201635147A (zh) | 2016-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI641947B (zh) | 用於管理位址轉換和快取記憶體儲存的方法及裝置 | |
US10802987B2 (en) | Computer processor employing cache memory storing backless cache lines | |
KR101614865B1 (ko) | I/o 및 계산 오프로드를 위해 복수레벨 어드레스 변환을 포함하는 i/o 메모리 관리 유닛 | |
KR101575827B1 (ko) | 주변장치 상호연결에서 i/o 및 계산 오프로드 디바이스들을 위해 2-레벨 어드레스 변환을 사용하는 iommu | |
US20160259732A1 (en) | Managing reuse information for memory pages | |
US6789156B1 (en) | Content-based, transparent sharing of memory units | |
US9747221B2 (en) | Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform | |
US7613898B2 (en) | Virtualizing an IOMMU | |
US8028341B2 (en) | Providing extended memory protection | |
CN102460400B (zh) | 基于管理程序的本地和远程虚拟内存页面管理 | |
US8996814B2 (en) | System and method for providing stealth memory | |
US9465748B2 (en) | Instruction fetch translation lookaside buffer management to support host and guest O/S translations | |
US9772962B2 (en) | Memory sharing for direct memory access by a device assigned to a guest operating system | |
US10013360B2 (en) | Managing reuse information with multiple translation stages | |
TWI648625B (zh) | 管理位址獨立的頁面屬性 | |
US20130227248A1 (en) | System and method for supporting finer-grained copy-on-write page sizes | |
US20140108701A1 (en) | Memory protection unit in a virtual processing environment | |
US9892060B2 (en) | Identifying stale entries in address translation cache | |
JP5583274B2 (ja) | コンピュータ・メモリを管理する方法、対応するコンピュータ・プログラム製品、およびそのためのデータ・ストレージ・デバイス | |
US20130031292A1 (en) | System and method for managing memory pages based on free page hints | |
US20150220436A1 (en) | Power Efficient Level One Data Cache Access With Pre-Validated Tags | |
US10459852B1 (en) | Memory utilization analysis for memory management systems | |
KR20120088370A (ko) | 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법 | |
CN118113635A (zh) | 一种tlb目录的插入方法、装置及系统 | |
Bhattacharjee et al. | Advanced VM Hardware |