TW200813719A - Avoiding cache line sharing in virtual machines - Google Patents

Avoiding cache line sharing in virtual machines Download PDF

Info

Publication number
TW200813719A
TW200813719A TW096122364A TW96122364A TW200813719A TW 200813719 A TW200813719 A TW 200813719A TW 096122364 A TW096122364 A TW 096122364A TW 96122364 A TW96122364 A TW 96122364A TW 200813719 A TW200813719 A TW 200813719A
Authority
TW
Taiwan
Prior art keywords
memory
visitor
cache
memory pages
host
Prior art date
Application number
TW096122364A
Other languages
English (en)
Inventor
Brandon S Baker
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW200813719A publication Critical patent/TW200813719A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/80Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
    • G06F21/805Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors using a security table for the storage sub-system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/653Page colouring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

200813719 九、發明說明: 【發明所屬之技術領域】 本發明係關於避免虛擬機器中之快取線分享。 【先前技術】 近來許多文章,像是 Daniel Bernstein 的「 • (2005)、Colin Percival 的「CacAe Mbs以g ζ \ for Fun and /Vo/"」(2005),和 Dag Arne Osvik、Adi
Shamir Eran Tromer measures: the Case of AES 八2 ⑽5),以反 Joseph Bonneau、 Ilya Mironov 的▽ Cache-Collision Timing Attacks Against 乂五S」(20 06)顯露出一項潛在的安全弱點而可能會對運行虛 擬機器的系統造成影響。簡言之,在一多個訪客作業系統 分享一單一或多重處理器而該等又共享一記憶體匯流排的 情境下’惡意訪客是有可能發現到一或更多其他訪客的私 有鍵值。 (., 這可藉由如下方式而達成:ι·載入一具有資料之快 取’2.令該受害訪客運行會按某一方式殖居於記憶體的程 式碼,以及3 ·接著嘗試擷取經載入至該快取内的資料, • 而同時測量如此進行所需要的時間。藉由測量擷取經載入 • 至該快取内之資料所需要的時間,該惡意訪客可發現此資 料實際上是否仍在該快取内。若該資料並不在該快取内, 則會耗費較夕時間進行擷取。若該資料並不在該快取内, 則可推定該受害訪客使用過該快取位置。而藉由決定出由 5 200813719 該受害訪客所使用過的快取位置,該惡意訪客即可習 些關於該受害者操作的情形,並且足夠潛在地影響到 害者的安全性。 現有對於快取線加密分析的推薦解決方案,即如 引述之參考文件中所提供者,是建議更改加密演算法 蔽記憶體存取。這會有多項限制。首先,這會要求重 密演算法,而其執行成本昂貴。其次,這是假定能夠 算法具有分析抗阻性。第三,重寫演算法可能顯著地 到其效能。 而其他的解決方式,像是隔絕一作業系統中的記 來保護加密處理程序,在當運行於一虛擬機器上時亦 地承受風險。這是由於一虛擬化訪客作業系統或將無 制究係如何對其而配置其記憶體,以及是如何地將其 記憶體配置予其他潛在敵意分割的事實之故。 在當今的技術版圖裡,虛擬機器技術日漸重要。仓 可能會出現其中是由一商業主持服務來主持多個訪客 系統的企業模型。而在此一設定情況下是無法容忍安 脅。本發明係針對解決上述弱點,並亦提供效能增益 可確保也能針對於非安全性相關之目的而運用本發明 【發明内容】 有鑒於先前技藝的上述缺點,本發明可提供用以 在虛擬機器中之快取線分享的系統及方法。例如,在 行一主持及多個訪客作業系統的系統裡,該主持可協 知一 該受 前文 以遮 寫加 令演 影響 憶體 潛在 法控 他的 1如, 作業 全威 ,這 避免 一運 助一 6 200813719 訪客作業系統的硬體存取。尤其是,該主持可監督該訪客 作業系統的記憶體存取。由於快取線係與按一規則性間距 所相隔的記憶體分頁相關聯,因此該主持可將訪客記憶體 存取導引至僅選定的記憶體分頁,並藉以將訪客快取使用 限制在一或更多的快取線。其他的訪客則可藉由將記憶體 存取導引至一另異的記憶體分頁集合而限制在不同的快取 線。後文中將說明本發明的其他優點及特性。 【實施方式】 在後文說明及圖式中列述一些特定細節以供通徹地暸 解本發明的各式具體實施例。然於後文揭示中並未陳述出 通常與計算及軟體技術相關聯的部分眾知細節點,藉以避 免不必要地模糊本發明的各式具體實施例。此外,熟諳相 關技藝之人士將能暸解,無須後述細節的一或更多者,該 等仍可實作出本發明的其他具體實施例。最後,各式方法 雖係參照於後文揭示中的步驟與序列所描述,然此一描述 係為供以清晰地實作本發明具體實施例,並且不應將步驟 及步驟之序列視為實作本發明所必要者。 第1圖代表一經簡化快取模型。第1圖考量到一示範 性系統,其中含有一處理器,此者具有四條快取線1 5 0及 十六個實體記憶體分頁1 00。在此有三個訪客分割110、 1 2 0、1 3 0,各者具有四個經指配予該等的記憶體分頁。一 主持具有一個經指配予其之分頁1 40。 第1圖說明傳統的快取線配置方式,這會造成如前「發 7 200813719 明背景」乙節中所討論的安全弱點,以及負面的效能影響。 將可暸解現有的電腦處理器,有時稱為「中央處理單元 (CPU)」,含有内部記憶體快取,藉以改善資料存取與指令 取得的效能。這些快取通常是内部專屬於特定的記憶體區 段,藉以限制其在處理器晶粒之内的大小及複雜度。此一 排置通常稱為「關聯性」:一給定快取緩衝器僅可關聯,或 可被用以快取,經預先定義的記憶體位址。例如,若一 cPU 位址記憶體為4k位元組分頁,並且該CPU含有四個快取 線;則每1 6k位元级的記憶體將關聯黾相同的快取線。這 意味著自記憶體位址 0K處的讀取將會填入第一快取線 内。而排除該先前讀取,亦即在此範例中為自位址0K處 的讀取,任何自記憶體位址16K、32K、48K等等的後續讀 取亦或將填入該第一快取線之内。
在第1圖裡,一假設性處理器是將資訊儲存在四條稱 為1、2、3及4的快取線1 5 0之内。在此範例裡,各條快 取線具有四個由位於各條快取線下方之四個方盒所表示的 「字組」。各條快取線係經關聯於該系統實體記憶體分頁 10 0裡的複數個記憶體分頁。例如,即如可自第1圖中所 用之陰影部分推論出,在該快取線1内之第一字組稱為該 系統實體記憶體分頁1 〇〇裡的〇κ記憶體分頁。在該快取 線1内之第二字組稱為該系統實體記憶體分頁1 〇 〇裡的 1 6K記憶體分頁。在該快取線1内之第三字組稱為該系統 實體記憶體分頁1 〇〇裡的3 2K記憶體分頁。而在該快取線 1内之第四字組稱為該系統實體記憶體分頁1 〇 〇裡的4 8 K 8 200813719 記憶體分頁。 同樣地,在快取線2内的字組是指在系統實體記憶體 分頁100内的4K、20K ' 3 6K及5 2K記憶體分頁。在快取 線3内的字組是指在系統實體記憶體分頁1 〇 〇内的8 K、 2 4K、4 0K及5 6K記憶體分頁。而在快取線4内的字組是 指在系統實體記憶體分頁1〇〇内的12K、28K、44K及60K 記憶體分頁。此排置方式係一熟諳該項技藝之人士將能暸 解的已知且標準化硬體實作。 應注意到該等快取線1 5 0可為第一層(L 1)快取、第二 層(L2)快取、第三層(L3)快取,或是任何進一步層級的快 取。本發明雖不限於在任何特定快取層級處的操作,然在 此所討論之示範性實作是針對於L2及/或L3快取。這是因 為L2及L3快取通常是以相同的η向集合關聯性及快取線 大小所組態設定,而這可導通至本發明之具體實施例的操 作。 現回返至第1圖,右方縱行說明用以將快取線配置於 一應用程式,包含訪客作業系統及/或相關的模擬軟體,的 傳統方式。這種方式牽涉到配置快取線以藉由一特定應用 程式將連續記憶體分頁的運用性最大化。由於一訪客作業 系統之硬體資源通常是稱為一「分割」,因此第1圖說明對 三個假設性訪客分割11 〇、1 20及1 3 0,以及一「虛擬機器 監視(VMM)」分割140,的記憶體配置方式。 一般說來,虛擬機器技術是將一電腦内之硬體資源配 置予與訪客作業系統相關聯的分割裡。有些資訊是專屬於 9 200813719 個別分割。其他則為共享;通常是按一時間切分方式。硬 體資源的配置選擇最終地是由一即如 VMM的主持所強 化。該詞彙「主持」在此廣泛地指稱可主要存取並控制該 實體裝置硬體的軟體。一 VMM係一主持,即如一監督者, 主持作業系統等等。而主系統記憶體係一由該 VMM所管 理的硬體資源。可由該VMM本身,或一代表此項任務之 服務分割,來選擇將哪些記憶體分頁配置予哪些分割。在 任一情況下,皆由該VMM來強化此配置方式。 即如第1圖中所示,可對各個訪客配置一分割,其中 含有一連續的記憶體分頁集合。例如,分割A 1 1 0包含0K、 4K、8K及12K記憶體分頁。分割B 120包含16K、20K、 24K及2 8K記憶體分頁。分割C 130包含32K、36K、40K 及44K記憶體分頁。而VMM記憶體140包含48K記憶體 分頁。即如可自將記憶體分頁與快取線相關聯的陰影所導 知,由於記憶體配置之結果,各個訪客作業系統使用全部 四條快取線1、2、3及4。而該VMM僅使用快取線1,因 為在此範例裡該者僅利用一單一記憶體分頁。不過,由該 VMM所使用的快取線仍被該訪客作業系統所分享,因而將 該VMM暴露在本「發明背景」乙節中所述之威脅下。 因此,第1圖展現出系統實體分頁對於多個分割及該 VMM本身的傳統、循序指配方式。利用此一技術,在分割 A内的記憶體存取可排除來自分割B、C以及該VMM的快 取。若分割B將加密表留存在記憶體之内,則分割A能夠 推論出存取。這會暴露出在「發明背景」乙節中所述之威 10
200813719 脅,亦即一分割可觀察另一分割或一主持的記憶體存 為,並且推論出關於其加密處理的資訊,而潛在地顯 私有鍵值的位元。 一如第1圖所述之快取線分享的額外結果即為, 具有多個執行上下文的系統上,處理器是必須將快取 加以籤註,俾獲知對於該上下文哪些入點為有效。當 理器決定一快取線是否與其目前的執行上下文相關時 者會對各快取線利用一標籤,而具有一與該快取線為 之分頁目錄的參考。若是兩個執行上下文具有衝突性 籤,則對一執行上下文而言,一快取或會在當不應被 有效時卻被視為有效。 與第1圖之快取模型相關的負面效能影響在於, 重處理器系統必須提供一種用以將各式處理器之快取 同步化的方式。這對於當一處理器既已讀取一記憶體 並快取其内容,而另一處理器寫至該位置處並將該第 理器之内容無效化時確為必要。 同時,第1圖裡是在多個分割與一主持之間同時 地分享快取線,這是因為多個處理器可在同一時間於 以上的分割之内執行。而其記憶體讀取或寫入可將彼 快取線無效化。由於分割可同時地執行於多個真實 上,因此該等可連續地排除彼此的快取。這會導致快 亂情況,據以各分割因冷快取之故而必須從主系統記 讀取,因此將其他分割對於相同快取線的使用無效化 該等分割亦必須自主記憶體讀取並排除先前的讀取者 取行 露出 在一 入點 一處 ,該 相關 的標 視為 一多 加以 位置 一處 有效 兩個 此的 CPU 取滚 憶體 ,而 。若 11 200813719 未將此一程序加以解決’則將會顯著地影響到系統; 即如可自第2及3圖獲知’本發明可藉由提供 方法以提供一種對參照於第1圖及在發明背景乙節 論之問題與潛在效能增益量值的解決方案’而其中 2 0 3 (第2圖内的VΜ Μ)’或一經授權以標定記憶體 分割之代表,可檢視系統C P U 2 1 0、2 2 0的記憶體 置,並且將記憶體2 3 0配置予多個分割,藉以最小 完全避免,多個訪客作業系統201、202及/或該主 的饮取線分享處理。 現簡略參照第3圖,藉由將記憶體策略性地指 割以避免快取線分享,所有分割Α之記憶體存取3 : 屬於一條快取線,即快取線1。快取線1可為單一 成一組快取線。因此’分割A讀取及寫入並不會將《 C或該VMM的快取效能劣化。分割A也無法推論 分割或該VMM的記憶體存取行為。 第2圖提供一種用以提供硬體存取對複數個訪 系統20 1、202的系統,此系統含有一記憶體23 0 ; 矣少兩條快取線之快取,即如2 2 1、2 2 2,而其中各 線係關聯於複數個按一規則性間距所相隔的記憶體 在第2圖裡,快取線2 2 1係關聯於記憶體分頁2 3 2 23 6及23 8。快取線222則為關聯於記憶體分頁23 1 2 3 5及2 3 7。因此,對於與該快取線2 2 1相關聯之記 貢的規則性間距為二,因為在記憶體23 0裡,每兩 言己憶體分頁係與該快取線2 2 1相關聯。同樣地,該 吹能。 系統及 中所討 該主持 配置予 快取佈 化,或 持203 配予分 I 0皆歸 快取線 卜割B、 出其他 客作業 一含有 條快取 分頁。 、234、 、233 ' 憶體分 個快取 快取線 12 200813719 222係與複數個按一規則間距二所相隔的記憶 聯,因為在記憶體2 3 0裡,每兩個快取記憶體 快取線222相關聯。因而,在此所用的「規則 指一與一先前或後續間距相同的間距。 第2圖進一步包含至少一訪客201及一主 者係經組態設定以指配由該等至少一訪客2 0 1 該規則性間距的記憶體分頁,因此所有由該等 20 1的分頁皆關聯於該等至少兩條快取線22 1 受限子集合。例如,若該主持2 0 3從2 3 0按一 二指配記憶體分頁由該訪客2 0 1使用,則該訪 如分頁232、234、236或238進行讀寫。從而 訪客2 0 1所使用的記憶體分頁皆會關聯於快写 222之一受限子集合-在此範例裡,該受限子集 取線221。在此所使用的「受限子集合」是指 整個可用快取線之數量的子集合。 快取線221及222係經敘述為位在一 L2 即如前述,本發明並不受限於任何特定的快取 快取亦可被視為是特別地適合於本發明的一 例。 在一其中快取線221及222關聯於處理器 實施例裡,可執行一上下文切換以讓至少一第 能夠執行於該等至少一處理器220上。該主持 態設定以指配一另異的記憶體分頁集合,即如 23 5及237,而由該第二訪客202使用。這將類 體分頁相關 分頁係與該 性間距」是 持203 ,後 所使用而按 至少一訪客 或222之一 規則性間距 客將僅對例 ,所有由該 si線 2 2 1及 合僅含有快 一具有低於 快取内,然 層級。一 L 3 些具體實施 220的具體 二訪客 202 2 0 3可經組 231 、 233 、 似地獲致由 13 200813719 該第二訪客202所使用的全部記憶體分頁被關聯於該至少 兩條快取線22 1或222之一受限子集合。在此情況下,訪 客2 0 2被限制為該快取線2 2 2,此係一不同於由訪客2 0 1 所使用者的快取線。可在裝置 2 0 0上主持任意數量的訪 客,並且該主持2 0 3可經組態設定以指配一另異的記憶體 分頁集合而由各訪客使用。 指配記憶體而使得該訪客202使用一與訪客20 1者不 同的快取線2 2 2之一效能益處,即在於該訪客2 0 2將無法 覆寫由該2 0 1所快取的資訊,並1同樣地將無法覆寫由該 2 0 1放置在記憶體之内的資訊。可更快速地且按較少快取 漏失的方式完成上下文切換處理。而安全益處則在於能夠 解決「發明背景」乙節中所討論的弱點。 在一組態中,除該處理器220以外,該裝置200可進 一步包含複數個處理器,即如處理器 2 1 0。即如圖示,關 聯於該處理器2 1 0的快取線21卜212可類似地關聯於複數 個按規則性間距所放置的記憶體分頁。例如,即如前述, 快取線2 1 1可關聯於記憶體分頁2 3 1、2 3 3、2 3 5及2 3 7, 而快取線2 1 2則可關聯於記憶體分頁2 3 2、2 3 4、2 3 6及2 3 8。 此一多重處理器具體實施例可讓一訪客2 0 1能夠自一 第一處理器220傳移至一第二處理器210。當完成後,該 主持203可確保該訪客201是使用與當經指配予處理器 220時相同的一般記憶體分頁集合,即如 232、234、236 及2 3 8。如此,在一多重處理器系統裡,一像是2 21的訪 客即可無論是被傳移至哪一處理器,皆能夠有效地具有一 14 200813719 保留快取線以及相對應的記憶體分頁集合。這可獲致效能 增益而按較少的快取漏失及較低的記憶體漏失。亦可減少 安全弱點。 所應強調者為在於,即如可對各式訪客2 1 0、2 0 2指配 來自2 3 0的記憶體,從而將該等限制在一受限的快取線子 集合,該主持 203可類似地指配其本身的記憶體使用方 式。如此,亦可在一牽涉到該主持的上下文切換裡實現效 能及安全增益。因而,該主持2 0 3可經組態設定以按一適 當的規則性問距從230指配由該主持203所使用的記憶體 分頁,因此由該主持2 0 3所使用的所有記憶體分頁皆被關 聯於該等至少兩條快取線22 1或222的至少一者。 在另一可能具體實施例裡,可對相關的複數個訪客指 配予記憶體,因此能夠在相關的複數個訪客之間,然不與 任何該等相關複數者之外的訪客,分享快取線。例如,考 慮一對於由數個銀行所擁有之訪客的主持服務。一第一銀 行或不在意其作業系統是否彼此分享快取線,然可能並不 希望與一競爭銀行分享快取線。在此一情況下,可將一另 異而由各相關訪客所使用的記憶體分頁集合關聯於一經保 留之複數條快取線的至少一者。例如,考慮一其中共同擁 有訪客201及202的情境。同時,想像有數個額外快取線 為可獲用,而該等快取線並未於第2圖中繪出,並且參照 至一些亦未經繪示的假設性記憶體分頁。訪客2 0 1及2 0 2 可經指配以使用任何記憶體分頁2 3 1 -2 3 8,並藉此在當將 該等自處理器210上下文切換至220時,且若必要可為反 15 200813719 是,即可分享快取線2 1 1、2 1 2、2 2 1及2 2 2。該等亦可經 確保將不會有附連訪客侵入其快取線或記憶體分頁内。 第3圖係經設計以提供一在本發明之快取模型與第1 圖所示之傳統快取模型間的清晰同置。即如前述,可將來 自於該300之記憶體策略性地指配予訪客/分割,藉以避免 快取線分享。如此,一第一訪客係經指配以使用於 0K、 16K、32K及48K處的記憶體分頁。因此,該第一訪客在 3 5 0裡被限制於快取線之一受限子集合,在此為一含有快 取線 1的子集合。同樺地,一第二訪客可被限制於分頁 4K、20K、36K及52K,一第三訪客被限制於分頁8K、24K、 40Κ及5 6Κ,並且可對一主持指配關聯於一第四快取線, 在此為12Κ及/或28Κ、44Κ及60Κ的分頁。 第4圖說明一種管理由一第一訪客之記憶體存取的方 法,包含決定與一快取線相關聯的複數個記憶體分頁 40 1 ;重新對映一訪客記憶體存取402 ;以及將該訪客記憶 體存取導引至該等複數個記憶體分頁之至少一者,因此所 有由該第一訪客所使用的記憶體分頁皆關聯於該快取線 403。亦說明一選擇性步驟,其中包含當執行一上下文切換 處理時刷淨一快取線及/或記憶體分頁404。 在一具體實施例裡,可由一主持來執行第4圖的所有 步驟。當啟動或傳移一訪客以運行於一處理器上時,該主 持可決定由該訪客所使用的記憶體分頁。若是首次啟動該 訪客,則該主持可選擇與一單一快取線,或與一受限之快 取線子集合,相關聯的任何分頁。或另者’該主持可根據 16 快取 相關 切換 使用 繼續 記憶 且將 訪客 組態 訪客 部。 取線 404 ‘ 該快 述之 至一 的記 502 驟: 頁; 存取 200813719 線/記憶體分頁群組,選擇記憶體分頁而由一或更多 訪客所使用。若該訪客先前已啟動過且僅為經上下 至一處理器,則該主持可參照至一有關於該訪客先 過之受限記憶體分頁/快取線子集合的所存資訊,並 使用該受限子集合。 當該訪客正在執行時,該主持或一在主持控制之下 體子系統可將訪客記憶體存取予以重新對映 4 0 2, 其重新導引至所決定的複數個記憶體分頁。如此, 可完全不知正在重新導引其記憶體存取。該主持可 設定以對該訪客呈現一經造製之記憶體視圖,從而 僅看到與其所指配之快取線子集合相關聯的記憶體 可例如在當一主持經強制而讓多個不相關訪客分享 時,執行該刷淨快取線或記憶體分頁的選擇性步 a刷淨處理是指排除及/或覆寫在一記憶體位置,像 取或相關的記憶體分頁,之内的所有資訊。 可由第5、6及7圖中所述之方法步驟來擴大第4圖 方法。例如,參照於第5圖,可執行一自一第一訪 第二訪客的第一上下文切換。然後,可將該第二訪 憶體存取導引至與一第二快取線相關聯的記憶體分 ,即如藉由大致上重複第 4圖裡對於該第二訪客之 決定一與一第二快取線相關聯的第二複數個記憶體 重新對映一第二訪客記憶體存取;以及將訪客記憶 重新導引至該等複數個記憶體分頁的至少一者,因 的 文 前 且 的 並 該 經 該 局 快 驟 是 所 客 客 頁 步 分 體 此 17 200813719 由該第二訪客所使用的全部記憶體分頁皆關聯於該第二快 取線。 在另一具體實施裡,即如第6圖所述,該第一(現有) 訪客被傳移至一不同處理器。一現有訪客是指一目前正在 活動中且運行的訪客。此一訪客可經上下文切換至一第二 ^ 處理器 60 1,並且可亦將訪客記憶體存取導引至關聯於一 . 與先前者相同之快取線的分頁602。 亦可由第7圖内的步驟來擴大第4圖,像是對於相關 f -- 的複數個訪客,例如由一相同實體所擁有的複數個訪客, 保留複數個記憶體分頁,並且讓該等相關訪客之任者使用 任何保留快取線或記憶體分頁7 〇 2。在此,「保留」應被解 釋為意指,在當該等記憶體分頁或快取線係經維持為保留 時,該等記憶體分頁及快取線是無法由任何不相關訪客所 運用。然依據具體實施例而定,可准允或不准允該主持使 用經保留的記憶體分頁及快取線。 除在此所明確陳述之特定實作以外,熟諳本項技藝之 { 人士將亦能自本揭所述規格加以考量而顯知其他的特點及 實作。所欲者係僅將該等規格及所述實作視為範例,而具 備有如後載之申請專利範圍的真實範域與精神。 < 【圖式簡單說明】 後文中將參照於隨附圖式以進一步描述根據本發明而 用以在虛擬機器中避免快取線分享之系統及方法,其中: 第1圖說明一將記憶體指配予複數個訪客分割的先前 18 200813719 技藝方式。一第一訪客或為使用即如在分割A 110 記憶體,此者係一與快取線1、2、3及4相關聯的 憶體分頁區塊。若執行一上下文切換,則另一訪客 相同的快取線及記憶體分頁。 第2圖說明一裝置200,其中含有處理器210, 快取線 211、212、221、222; — 主持 203;訪客 201 以及記憶體 2 3 0。訪客記憶體存取會被導引至與部 取線,而非其他者,相關聯之記憶體分頁。而其他 可使羯輿不同快取線相關聯的記憶體分頁。 第3圖說明,根據本發明之一具體實施例,將 指配予訪客分割。一第一訪客可使用一分割 A 3 1 0 係一按一規則間距所相隔之多個記憶體分頁的非 塊,因此該等僅與該快取線1相關聯。若執行一上 換,則另一訪客可使用與一不同快取線,像是該快I 相關聯的記憶體分頁。 第4圖說明一用以管理一訪客之記憶體存取的 第5圖說明一用於自一第一訪客至一第二訪客 文切換處理的方法。 第6圖說明一用於將一訪客自一第一處理器傳 第二處理器的方法。 第7圖說明一用以對於一相關之訪客群組,即 由一共同實體所擁有的訪客,保留快取線及/或記憶 的方法。 之内的 連續記 可使用 • 220 ; 、201 ; 分的快 訪客則 記憶體 1,此者 連續區 下文切 K線2, 方法。 之上下 送至一 如一組 體位址 19 200813719 【主要元件符號說明】 100 實體記憶體分頁 110 訪客分割記憶體 120 訪客分割記憶體 130 訪客分割記憶體 140 VMM記憶體 150 快取線
200 裝置 201 訪客 202 訪客 203 VMM主持
210 系統CPU
220 系統CPU 211 快取 212 快取 221 快取 222 快取 230 記憶體 231 分頁 232 分頁 23 3 分頁 234 分頁 23 5 分頁 236 分頁 20 200813719 237 分頁 238 分頁 300 系統實體記憶體分頁 310 分割Α記憶體 320 分割B記憶體 ' 330 分割C記憶體 _ 340 VMM記憶體 350 處理器快取線 ί 21

Claims (1)

  1. 200813719 十、申請專利範圍: 1 · 一種用以提供對於複數個訪客作業系統之硬體存 系統,其中包含: 一記憶體; 一快取,此者含有至少兩條快取線,其中各快取 經關聯於複數個按一規則性間距所相隔的記憶體分頁 至少一訪客; 一主持,此者係經組態設定以按該規則性間距指 該等至少一訪客所使用之各記憶體分頁,因此由該至 訪客所使用的全部記憶體分頁皆關聯於該等至少兩條 線之一受限子集合。 2. 如申請專利範圍第1項所述之系統,其中該快取 第二層快取(level two chache)。 3. 如申請專利範圍第1項所述之系統,進一步包含 一處理器,其中可執行一上下文切換處理,以允許至 第二訪客能夠執行於該至少一處理器上,並且其中該 係經組態設定以指配一分離的記憶體分頁集合,俾由 二訪客使用。 4. 如申請專利範圍第1項所述之系統,進一步包含 個處理器,其中可將該至少一訪客自一第一處理器傳 取的 線係 配由 少.— 快取 係一 至少 少一 主持 該第 複數 移至 22 200813719 一第二處理器。 5 · 如申請專利範圍第1項所述之系統,其中該至少一訪 客包含複數個訪客,並且該主持係經組態設定以指配一分 離的記憶體分頁集合以由各訪客使用。 6. 如申請專利範圍第5項所述之系統,其中該等複數個 訪客係經相關聯的複數個訪客,並且該供由各經相關聯訪 客所使用之分離的記憶體分頁集合係關聯於經保留之複數 條快取線的至少一者。 7. 如申請專利範圍第1項所述之系統,其中該主持進一 步經組態設定以按該規則性間距指配記憶體分頁而由該主 持使用,因此所有由該主持所使用的記憶體分頁皆關聯於 該等至少兩條快取線的一受限子集合。 8· —種用以管理由一第一訪客之記憶體存取的方法,其 中包含: 決定關聯於一受限之快取線子集合的複數個記憶體分 頁; 重新對映一訪客記憶體存取; 將該訪客記憶體存取導引至該等複數個記憶體分頁之 至少一者,因此由該第一訪客所使用的所有記憶體分頁皆 23 200813719 經關聯於該受限之快取線子集合。 9. 如申請專利範圍第8項所述之系統,進一步包含執行 一自該第一訪客至一第二訪客的第一上下文切換。 10 ·如申請專利範圍第9項所述之方法,進一步包含: 決定關聯於一第二受限之快取線子集合的一第二複數 個記憶體分頁; 重新對映一第二訪客記憶體存取; 將該第二訪客記憶體存取導引至該等第二複數個記憶 體分頁之至少一者,因此由該第二訪客所使用的所有記憶 體分頁皆經關聯於該第二受限之快取線子集合。 11 ·如申請專利範圍第9項所述之方法,進一步包含在一 不同於該第一上下文切換之處理器上執行一第二上下文切 換,藉此將該第一訪客傳移至該不同處理器。 12.如申請專利範圍第11項所述之方法,進一步包含將該 訪客記憶體存取導引至一相同複數個記憶體位址,因此由 該第一訪客所使用的所有記憶體分頁維持關聯於該受限之 快取線子集合。 1 3.如申請專利範圍第8項所述之方法,其中該受限快取 24 200813719 線子集合係在第二層快取内。 14.如申請專利範圍第8項所述之方法,進一步包含對於 相關之複數個訪客保留複數個記憶體分頁。 1 5 ·如申請專利範圍第1 4項所述之方法,其中該等相關複 數個訪客是藉由被一相同實體所擁有之功效(virtue )而 關聯。 16·如申請專利範圍第14項所述之方法,其中該等對於相 關之複數個訪客的複數個記憶體分頁是關聯於複數條快取 線0 1 7 ·如申請專利範圍第1 6項所述之方法,其中與該等複數 條快取線之任者相關聯的記憶體分頁可由該等相關之複數 個訪客之任者所使用。 18.如申請專利範圍第8項所述之方法,進一步包含在執 行一上下文切換前,刷淨該等受限之快取線子集合。 19·如申請專利範圍第8項所述之方法,進一步包含在執 行一上下文切換之前,先刷淨該等複數個記憶體分頁。 25 200813719 2 0. —種用以提供對於複數個訪客作業系統之硬體存取的 系統,其中包含: 複數個處理器; 一第二層快取,此者含有複數條快取線,其中各快取 線係關聯於複數個按規則性間距而相隔的記憶體分頁; 一記憶體; 複數個訪客作業系統; 一主持,此者係經組態設定以按規則性間距指配記憶 體分頁而由一訪客作業系統使用,因此該訪客作業系統所 使用的所有記憶體分頁皆經關聯於一單一快取線。 26
TW096122364A 2006-07-21 2007-06-21 Avoiding cache line sharing in virtual machines TW200813719A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/490,785 US7549022B2 (en) 2006-07-21 2006-07-21 Avoiding cache line sharing in virtual machines

Publications (1)

Publication Number Publication Date
TW200813719A true TW200813719A (en) 2008-03-16

Family

ID=38957085

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096122364A TW200813719A (en) 2006-07-21 2007-06-21 Avoiding cache line sharing in virtual machines

Country Status (5)

Country Link
US (1) US7549022B2 (zh)
KR (1) KR20090035523A (zh)
CN (1) CN101490654B (zh)
TW (1) TW200813719A (zh)
WO (1) WO2008011135A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7984240B2 (en) * 2008-03-04 2011-07-19 International Business Machines Corporation Memory compression implementation in a system with directly attached processor memory
US8380916B2 (en) 2009-06-04 2013-02-19 Micron Technology, Inc. Control of page access in memory
CN101825153A (zh) * 2010-03-26 2010-09-08 北京工业大学 无轴防泄漏粘滞阻尼器
US8738962B2 (en) 2010-11-17 2014-05-27 International Business Machines Corporation Memory mirroring with memory compression
US20120137062A1 (en) * 2010-11-30 2012-05-31 International Business Machines Corporation Leveraging coalesced memory
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US8996807B2 (en) 2011-02-15 2015-03-31 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a multi-level cache
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US9336147B2 (en) * 2012-06-12 2016-05-10 Microsoft Technology Licensing, Llc Cache and memory allocation for virtual machines
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US8838902B2 (en) * 2012-10-15 2014-09-16 International Business Machines Corporation Cache layer optimizations for virtualized environments
US9015523B2 (en) 2012-12-20 2015-04-21 Intel Corporation Memory allocation for virtual machines using memory map
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
WO2015139195A1 (en) * 2014-03-18 2015-09-24 Dalian University Of Technology Countering attacks on cache
US9767041B2 (en) * 2015-05-26 2017-09-19 Intel Corporation Managing sectored cache
US10423418B2 (en) 2015-11-30 2019-09-24 International Business Machines Corporation Method for maintaining a branch prediction history table
US9846652B2 (en) * 2016-03-31 2017-12-19 Intel Corporation Technologies for region-biased cache management
US10489296B2 (en) 2016-09-22 2019-11-26 International Business Machines Corporation Quality of cache management in a computer
US10733096B2 (en) 2017-11-22 2020-08-04 Samsung Electronics Co., Ltd. System and method for frame buffer
US10684857B2 (en) 2018-02-01 2020-06-16 International Business Machines Corporation Data prefetching that stores memory addresses in a first table and responsive to the occurrence of loads corresponding to the memory addresses stores the memory addresses in a second table

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675763A (en) 1992-07-15 1997-10-07 Digital Equipment Corporation Cache memory system and method for selectively removing stale aliased entries
US6195674B1 (en) * 1997-04-30 2001-02-27 Canon Kabushiki Kaisha Fast DCT apparatus
US6901493B1 (en) * 1998-02-24 2005-05-31 Adaptec, Inc. Method for protecting data of a computer system
JP2003036169A (ja) * 2001-07-25 2003-02-07 Nec Software Tohoku Ltd 複数の小規模プロセッサによって並列処理を行なうシングルチップマイクロプロセッサ
US6944719B2 (en) 2002-05-15 2005-09-13 Broadcom Corp. Scalable cache coherent distributed shared memory processing system
EP1503284A1 (en) * 2003-08-01 2005-02-02 Hewlett-Packard Development Company, L.P. Data processing system and method
US7506198B2 (en) * 2003-08-11 2009-03-17 Radix Israel, Ltd. Protection and recovery system and automatic hard disk drive (HDD) instant recovery
US7136967B2 (en) * 2003-12-09 2006-11-14 International Business Machinces Corporation Multi-level cache having overlapping congruence groups of associativity sets in different cache levels
US20050132364A1 (en) * 2003-12-16 2005-06-16 Vijay Tewari Method, apparatus and system for optimizing context switching between virtual machines
US7421533B2 (en) * 2004-04-19 2008-09-02 Intel Corporation Method to manage memory in a platform with virtual machines

Also Published As

Publication number Publication date
CN101490654A (zh) 2009-07-22
US20080022048A1 (en) 2008-01-24
US7549022B2 (en) 2009-06-16
CN101490654B (zh) 2013-06-19
KR20090035523A (ko) 2009-04-09
WO2008011135A1 (en) 2008-01-24

Similar Documents

Publication Publication Date Title
TW200813719A (en) Avoiding cache line sharing in virtual machines
US10706147B1 (en) Mitigating side-channel attacks via shared cache
CN109901911B (zh) 一种信息设置方法、控制方法、装置及相关设备
CN109002706B (zh) 一种基于用户级页表的进程内数据隔离保护方法和系统
US7565492B2 (en) Method and apparatus for preventing software side channel attacks
Lee et al. Stealing webpages rendered on your browser by exploiting GPU vulnerabilities
Ren et al. Design space exploration and optimization of path oblivious ram in secure processors
US11121853B2 (en) Techniques for preventing memory timing attacks
US7870336B2 (en) Operating system protection against side-channel attacks on secrecy
US7571294B2 (en) NoDMA cache
KR20160085884A (ko) 중복 제거 기반 데이터 보안
US20090031142A1 (en) System, Method and Computer Program Product for Processing a Memory Page
US10860215B2 (en) Delay masking action for memory access requests
WO2015139195A1 (en) Countering attacks on cache
CN107430671A (zh) 用于在缓存中保护对安全重要的数据的方法
Zhang et al. Memory forensic challenges under misused architectural features
WO2017005761A1 (en) Method for managing a distributed cache
Aga et al. InvisiPage: oblivious demand paging for secure enclaves
Briongos et al. Modeling side-channel cache attacks on aes
US8751724B2 (en) Dynamic memory reconfiguration to delay performance overhead
Zhang et al. Implicit hammer: Cross-privilege-boundary rowhammer through implicit accesses
CN114710263A (zh) 密钥管理方法、密钥管理装置、密钥管理设备及存储介质
Zhang et al. Now you see me: Hide and seek in physical address space
JP3485940B2 (ja) 仮想記憶制御装置及び方法
CN112214805A (zh) 基于混合dram-nvm内存的安全oram内存及其访问方法