TWI606340B - 用於資料快取之方法、電腦可讀取儲存媒體及系統 - Google Patents

用於資料快取之方法、電腦可讀取儲存媒體及系統 Download PDF

Info

Publication number
TWI606340B
TWI606340B TW105113569A TW105113569A TWI606340B TW I606340 B TWI606340 B TW I606340B TW 105113569 A TW105113569 A TW 105113569A TW 105113569 A TW105113569 A TW 105113569A TW I606340 B TWI606340 B TW I606340B
Authority
TW
Taiwan
Prior art keywords
cache
data
memory
target
determining
Prior art date
Application number
TW105113569A
Other languages
English (en)
Other versions
TW201706854A (zh
Inventor
誠垣 柳
程立群
班傑明C 瑟里布林
帕泰莎瑞西 阮嘉納森
瑞瑪 克瑞許納 葛維達瑞竹
Original Assignee
谷歌有限責任公司
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 谷歌有限責任公司 filed Critical 谷歌有限責任公司
Publication of TW201706854A publication Critical patent/TW201706854A/zh
Application granted granted Critical
Publication of TWI606340B publication Critical patent/TWI606340B/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
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Photoreceptors In Electrophotography (AREA)
  • Holo Graphy (AREA)
  • Surgical Instruments (AREA)

Description

用於資料快取之方法、電腦可讀取儲存媒體及系統
本說明書係關於快取資料。
裝置可包含用於儲存最近存取資料或期望存取資料之一快取記憶體。例如,一處理器可包含一或多個快取階。一最高快取階(例如一L1快取記憶體)可為一快取階階層中之最快快取記憶體及最小快取記憶體(例如,相較於定位於該快取階階層之較低階中之一較大且較慢L3快取記憶體)。
在一些實施方案中,一系統可指定將巢套頁表(例如,用於虛擬機)或其他非頻繁存取資料儲存於何種快取階處。快取階可經即時改變以減小快取未命中率。將巢套頁表及其他非頻繁存取資料儲存於一特定快取階處可允許一處理器存取一較慢記憶體(例如一L3快取記憶體)中之非頻繁存取記憶,同時不將非頻繁存取資料上移至一快取階階層中且排除儲存於更可能被存取之一較快記憶體中之資料。
一般而言,本說明書中所描述之標的之一發明態樣可體現於包含以下動作之方法中:自一裝置之一組件接收一資料請求;判定該資料滿足一非頻繁條件;回應於判定該資料滿足該非頻繁條件而判定一目標快取階(其界定將在該處儲存非頻繁存取資料之一特定快取記憶體之一快取階階層內之一快取階,該目標快取階低於該快取階階層中之一最高快取階),向並非為該裝置之一快取記憶體之一記憶體請求 該資料及接收該資料,且將該資料儲存於等於或低於該快取階階層中之該目標快取階之該特定快取記憶體之一階中;及將該資料提供至該組件。此態樣之其他實施例包含對應電腦系統、設備及記錄於一或多個電腦儲存裝置上之電腦程式,其等各經組態以執行該等方法之該等動作。
一般而言,本說明書中所描述之標的之一發明態樣可體現於包含以下動作之方法中:自一裝置之一組件接收一資料請求;判定該資料滿足一非頻繁條件;回應於判定該資料滿足該非頻繁條件而判定一目標快取階(其界定將在該處儲存非頻繁存取資料之一特定快取記憶體之一快取階階層內之一快取階,該目標快取階低於該快取階階層中之一最高快取階),向並非為該裝置之一快取記憶體之一記憶體請求該資料及接收該資料,將該資料儲存於等於或低於該快取階階層中之該目標快取階之該特定快取記憶體之一階中,在高於該快取階階層中之該目標快取階之該特定快取記憶體之一特定階中,將該資料儲存於該特定階之一最近最少使用快取行中,且不更新用於該最近最少使用快取行之一最近最少使用位元;及將該資料提供至該組件。此態樣之其他實施例包含對應電腦系統、設備及記錄於一或多個電腦儲存裝置上之電腦程式,其等各經組態以執行該等方法之該等動作。
一般而言,本說明書中所描述之標的之一發明態樣可體現於包含以下動作之方法中:由一快取記憶體自一裝置之一組件接收一資料請求;判定該資料滿足一特定型樣;回應於判定該資料滿足該特定型樣而判定一目標快取階(其界定將在該處儲存資料之該快取記憶體之一快取階階層內之一快取階),向並非為該裝置之一快取記憶體之一記憶體請求該資料及接收該資料,且將該資料儲存於該目標快取階中,而非將該資料儲存於該快取記憶體之所有快取階中;及將該資料提供至該組件。此態樣之其他實施例包含對應電腦系統、設備及記錄 於一或多個電腦儲存裝置上之電腦程式,其等各經組態以執行該等方法之該等動作。
一或多個電腦之一系統可經組態以藉由將軟體、韌體、硬體或其等之一組合安裝於該系統上而執行特定操作或動作,該軟體、該韌體、該硬體或其等之該組合在操作中引起該系統執行該等動作。一或多個電腦程式可經組態以藉由包含指令而執行特定操作或動作,該等指令在由資料處理設備執行時引起該設備執行該等動作。
前述及其他實施例可各視情況單獨或組合地包含以下特徵之一或多者。在一些實施方案中,自該裝置之該組件接收該資料請求可包含自一裝置之一處理器接收該資料請求且將該資料提供至該組件可包含將該資料提供至該處理器。自該裝置之該組件接收該資料請求可包含自一裝置之一記憶體控制器接收該資料請求,且將該資料提供至該組件可包含將該資料提供至該記憶體控制器。自該裝置之該組件接收該資料請求可包含自一裝置之一記憶體管理單元接收該資料請求,且將該資料提供至該組件可包含將該資料提供至該記憶體管理單元。自該裝置之該組件接收該資料請求可包含自一裝置之一輸入/輸出單元接收該資料請求,且將該資料提供至該組件可包含將該資料提供至該輸入/輸出單元。
在一些實施方案中,該方法可包含判定該資料請求包含對一巢套頁表之一請求。判定該資料滿足該非頻繁條件包含回應於判定該資料請求包含對一巢套頁表之一請求而判定該資料滿足該非頻繁條件。該方法可包含接收指示該目標快取階之一識別符之輸入。接收指示該目標快取階之該識別符之該輸入可包含自一基本輸入/輸出系統或一統一可擴展韌體介面接收該輸入。接收指示該目標快取階之該識別符之該輸入可包含自一管理者接收該輸入之一指示。
在一些實施方案中,判定該目標快取階可包含使用該特定快取 記憶體之一快取未命中率來自動判定該目標快取階。使用該特定快取記憶體之該快取未命中率來自動判定該目標快取階可包含:判定該特定快取記憶體之該快取未命中率不滿足一臨限未命中率,且回應於判定該特定快取記憶體之該快取未命中率不滿足該臨限未命中率而將該目標快取階改變至該快取階階層中之一較低快取階。使用該特定快取記憶體之該快取未命中率來自動判定該目標快取階可包含:判定該特定快取記憶體之該快取未命中率滿足一臨限未命中率,且回應於判定該該特定快取記憶體之該快取未命中率滿足該臨限未命中率而將該目標快取階改變至該快取階階層中之一較高快取階。該方法可包含:自該處理器接收對第二資料之一第二請求;判定該第二資料滿足該非頻繁條件;判定一更新目標快取階,該更新目標快取階界定將在該處儲存非頻繁存取資料之該特定快取記憶體之該快取階階層內之一快取階,該更新目標快取階低於該快取階階層中之該最高快取階;向並非為該裝置之一快取記憶體之另一記憶體請求該第二資料及接收該第二資料;將該第二資料儲存於等於或低於該快取階階層中之該更新目標快取階之該特定快取記憶體之一階中;及將該第二資料提供至該處理器。
在一些實施方案中,自該處理器接收該資料請求可包含在執行一第一虛擬機期間自該處理器接收該請求,且判定該目標快取階可包含判定專針對該第一虛擬機之一第一目標快取階。該方法可包含:在執行一第二虛擬機期間自該處理器接收對第二資料之一第二請求;判定該第二資料滿足一第二非頻繁條件;判定專針對該第二虛擬機之一第二目標快取階,該第二目標快取階界定將在該處儲存非頻繁存取資料之該特定快取記憶體之該快取階階層內之一快取階,該第二目標快取階低於該快取階階層中之該最高快取階;向並非為該裝置之一快取記憶體之另一記憶體請求該第二資料及接收該第二資料;將該第二資 料儲存於等於或低於該快取階階層中之該第二目標快取階之該特定快取記憶體之一階中;及將該第二資料提供至該處理器。判定專針對該第一虛擬機之該第一目標快取階可包含使用儲存於該裝置之一第一暫存器中之資料來判定該第一目標快取階,且判定專針對該第二虛擬機之該第二目標快取階可包含使用儲存於該裝置之一第二不同暫存器中之資料來判定該第二目標快取階。
在一些實施方案中,判定該目標快取階可包含:在自該記憶體接收該資料之後識別該資料之一屬性,且使用該屬性來判定該資料滿足該非頻繁條件及判定將在該處儲存該資料之該目標快取階。該方法可包含:自該處理器接收對第二資料之一第二請求;判定該第二資料滿足一第二非頻繁條件;向並非為該裝置之一快取記憶體之一第二記憶體請求該第二資料及接收該第二資料;在自該第二記憶體接收該第二資料之後使用該第二資料之一第二屬性來判定一第二目標快取階,該第二目標快取階界定將在該處儲存非頻繁存取資料之該特定快取記憶體之該快取階階層內之一快取階,該目標快取階低於該快取階階層中之該最高快取階;將該第二資料儲存於等於或低於該快取階階層中之該目標快取階之該特定快取記憶體之一階中;及將該第二資料提供至該處理器。該方法包含:接收對該資料之一第二請求,且自其中儲存該資料之該特定快取記憶體之該階擷取該資料,同時確保該資料不儲存於高於該快取階階層中之該目標快取階之該快取記憶體之另一階中。在一些實施方案中,此具有以下技術效應:滿足該非頻繁條件之一資料請求不會導致自高於該目標快取階之一快取記憶體收回其他資料且因此使該其他資料可在較高快取階中取得以用於將來請求中之有效率存取。
本說明書中所描述之標的可實施於特定實施例中且可導致以下優點之一或多者。在一些實施方案中,下文將描述之系統及方法可使 用一非頻繁條件來決定何種資料將儲存於一目標快取階處,使得非頻繁使用資料儲存於一較大、較慢快取階中而非儲存於一較小、較快快取階中(例如,其可引起不久將被使用之資料自該較小、較快快取階收回)。在一些實施方案中,下文將描述之系統及方法可導致高於該目標快取階之快取階中之該快取未命中率減小。在一些實施方案中,下文將描述之系統及方法可使用一頻繁條件或資料之一型樣來判定將在該處儲存資料之一目標快取階,例如,將該頻繁使用資料儲存於一較小、較快快取階中而非儲存於一較大、較慢快取階或一特定快取階中。在一些實施方案中,將非頻繁存取資料儲存於一些快取階中、動態調整一目標快取階或進行以上兩者之一系統可改良其他資料之快取命中率。例如,當未將用於一虛擬機之巢套頁表儲存於L1快取記憶體中時或當未更新用於其中儲存該等巢套頁表之一L1快取行之一最近最少使用位元時,該系統可增大用於執行該虛擬機之一快取命中率。下文將描述之系統及方法可能已比不實施此快取管理之系統減少功率消耗。
下文將描述之系統及方法可抑制來自惡意虛擬機之拒絕服務攻擊。例如,當一系統自一虛擬機接收對非頻繁存取且不儲存於快取記憶體中之資料之多個請求時,該系統可藉由將該請求資料僅儲存於一較低階快取記憶體(例如一L3快取記憶體)中而抑制一拒絕服務攻擊,提供更有效率快取、更公平快取或此等之兩者或兩者以上。可在無顯著硬體變化或無任何硬體變化之情況下實施下文將描述之系統及方法。
附圖及[實施方式]中陳述本說明書之標的之一或多項實施例之細節。將自[實施方式]、圖式及申請專利範圍明白標的之其他特徵、態樣及優點。
100‧‧‧系統
102‧‧‧中央處理單元
104‧‧‧處理器
106‧‧‧快取記憶體
108a‧‧‧L1快取記憶體/快取階
108b‧‧‧L2快取記憶體/快取階
108c‧‧‧L3快取記憶體/快取階
110‧‧‧快取控制器
112‧‧‧記憶體
200‧‧‧程序
202‧‧‧接收指示一目標快取階之一識別符之輸入
204‧‧‧接收一資料請求
206‧‧‧判定資料滿足一非頻繁條件
208‧‧‧判定目標快取階
210‧‧‧向一記憶體請求資料及接收資料
212‧‧‧將資料儲存於目標快取階中
214‧‧‧提供資料
216‧‧‧使用一特定快取記憶體之一快取未命中率來更新目標快取階
218‧‧‧接收對第二資料之一第二請求
220‧‧‧判定第二資料滿足一第二非頻繁條件
222‧‧‧判定一第二目標快取階
224‧‧‧向一記憶體請求第二資料及接收第二資料
226‧‧‧將第二資料儲存於第二目標快取階中
300‧‧‧系統
310‧‧‧處理器/組件
320‧‧‧記憶體/組件
330‧‧‧儲存裝置/組件
340‧‧‧輸入/輸出裝置/組件
350‧‧‧系統匯流排
圖1係一系統之一實例,其中一中央處理單元包含將在該處儲存特定資料之一目標快取階。
圖2係用於將資料儲存於一目標快取階中之一程序之一流程圖。
圖3係可與本發明中所描述之電腦實施方法一起使用之一計算系統之一方塊圖。
各種圖式中之相同元件符號及標識指示相同元件。
一些作業系統(諸如Linux)使用作業系統將其映射至實體位址之虛擬記憶體且允許應用程式在虛擬位址上操作。一作業系統可維持對應用程式隱藏之頁表中之一虛擬位址至實體位址映射以提供一應用程式擁有記憶體之一連接塊、所有記憶體或兩者之錯覺。執行一作業系統之一實體機可快取(例如)一轉譯後備緩衝器(TLB)中之一頁表之部分且自動補充該快取記憶體(例如該TLB)中之該頁表以加速此虛擬至實體轉譯。
在一虛擬化環境(例如一雲端環境)中,虛擬機將另一層新增至此轉譯。例如,一虛擬機使用實體機會將其轉譯成一虛擬機實體位址且接著轉譯成主機實體位址(例如,用於實體機)之一虛擬機虛擬位址。為加速此轉譯,在一TLB未命中之後,一頁查詢器可執行巢套頁查詢以使用虛擬機虛擬位址至主機實體位址映射來補充TLB。有時,使用巢套頁表來判定虛擬機虛擬位址至主機實體位址映射會非有意地收回儲存於一快取記憶體中之有用資料,例如,實體硬體將在執行虛擬機期間使用該有用資料。
在一些實施方案中,一系統可派定將在該處儲存巢套頁表及其他非頻繁存取資料之一目標快取階且在將資料儲存於一快取記憶體中時實施該目標快取階派定。例如,該系統可使用一基本輸入/輸出系統(BIOS)設定來判定該目標快取階,該BIOS設定允許一使用者(例如 一管理者)派定一特定快取階(例如L1、L2、L3等等)作為將在該處儲存非頻繁存取資料之該目標快取階。該系統可在啟動時判定該目標快取階且在執行該作業系統期間將該目標快取階應用於非頻繁存取資料,例如,不論由請求該非頻繁存取資料之一虛擬機或一應用程式使用之一位址範圍如何。
在一些實例中,該系統可將該非頻繁存取資料儲存於等於及低於該目標快取階之所有階中且不將該非頻繁存取資料儲存於高於該目標快取階之任何快取階中。例如,當一處理器包含三階快取階層且該目標快取階係L2時,該系統可將非頻繁存取資料儲存於L2快取記憶體及L3快取記憶體中,但不儲存於L1快取記憶體中。
例如,該快取階階層將該快取記憶體之一最高階(例如L1快取記憶體)界定為該快取記憶體之最小或最快階或最小及最快階。該快取階階層將其他快取階(例如L2快取記憶體及L3快取記憶體)界定為比該快取記憶體之最高階更慢或更大或更慢且更大之較低快取階。例如,該快取記憶體之最高階(例如L1快取記憶體)高於該快取記憶體之較低階且該快取記憶體之較低階(例如L2快取記憶體及L3快取記憶體)低於該快取階階層中之最高快取階。一中間快取階(例如L2快取記憶體)低於最高快取階(例如L1快取記憶體)且高於最低快取階(例如L3快取記憶體)。在一些實例中,當該快取階階層包含三個快取階時,該目標快取階係中間快取階或最低快取階。
下文將更詳細描述此等特徵及額外特徵。
圖1係一系統100之一實例,其中一中央處理單元102包含將在該處儲存特定資料之一目標快取階。特定資料可為非頻繁存取資料,諸如巢套頁表。例如,一處理器104可在時間TA時將對一巢套頁表之一請求提供至快取記憶體106。快取記憶體106接收請求且判定該求之巢套頁表是否位於快取記憶體106之一特定快取階108a至108c中。例 如,一快取控制器110在時間TB時判定請求之巢套頁表不儲存於快取記憶體106中。
快取記憶體106(例如快取控制器110)在時間TC時自一記憶體112(例如一隨機存取記憶體)請求巢套頁表。在時間TD時,快取記憶體106自記憶體112接收巢套頁表。
快取控制器110在時間TE時判定巢套頁表滿足一非頻繁條件。滿足非頻繁條件指示:依使得資料應僅儲存於不高於一目標快取階之快取記憶體中之一階處之一非頻繁速率存取資料。可藉由使資料屬於一特定類型或來自一特定源或依小於一臨限速率之一速率存取資料而达成非頻繁條件。例如,快取控制器110(例如)使用資料之一或多個屬性來判定接收資料係一巢套頁表或另一類型之非頻繁存取資料。資料係巢套頁表滿足非頻繁條件。
快取控制器110(例如)使用資料之屬性或識別目標快取階之一系統變數來判定非頻繁存取資料之一目標快取階且在時間TF時將巢套頁表儲存於一些快取階中。例如,快取記憶體106判定目標快取階係L2快取記憶體108b且將接收之巢套頁表儲存於L2快取記憶體108b及L3快取記憶體108c中,但不儲存於L1快取記憶體108a中。
在時間TG時,快取記憶體106將請求之巢套頁表提供至處理器104。例如,快取記憶體106將資料自L2快取記憶體108b提供至處理器104以執行一應用程式(例如一虛擬機)。
當處理器104隨後請求(例如)相同於在時間TA時請求之巢套頁表的巢套頁表且該巢套頁表仍儲存於快取記憶體106之至少一快取階(例如L3快取記憶體108c或L2快取記憶體108b及L3快取記憶體108c兩者)中時,快取記憶體106將巢套頁表提供至處理器104且不將巢套頁表儲存於高於目標快取階之快取階階層之一階中,例如,不將巢套頁表儲存於L1快取記憶體108a中。例如,快取記憶體106可判定巢套頁表儲 存於L3快取記憶體108c中,將巢套頁表儲存於L2快取記憶體108b中,且將巢套頁表提供至處理器104,例如,不將巢套頁表儲存於L1快取記憶體108a中。
在一些實施方案中,系統100依循序順序(例如TA、TB等等)執行動作。在一些實施方案中,系統100可依不同於此處所描述之順序的一順序執行動作之一或多者。例如,快取控制器110可判定巢套頁表不位於快取記憶體中且接著判定巢套頁表滿足非頻繁條件。
在一些實施方案中,系統100可將非頻繁存取資料儲存於高於目標快取階之一快取階中(例如,可將非頻繁存取資料儲存於L1快取記憶體之一快取行中)且不更新指示非頻繁存取資料儲存於該快取階中之資料。例如,系統100可不更新L2快取記憶體中之最近最少使用(LRU)位元以(例如)減小時間複用之可能性。系統100可依正常方式(例如,藉由更新LRU位元)將資料儲存於一快取階階層中之目標快取階及低於目標快取階之任何階中。
在一些實例中,系統100可將非頻繁存取資料儲存於一特定快取階之一LRU位置中。在一些實例中,系統100可將非頻繁存取資料儲存於一特定快取記憶體之一最近最多使用位置中。在一些實例中,系統100可使用一可靜態組態或動態之最近用過N次位置來儲存非頻繁存取資料。系統100可使用一不同方法來判定將在該處儲存非頻繁存取資料之各快取階之一位置,例如,將非頻繁存取資料儲存於各快取階之一快取行中。
系統100可判定將在該處儲存非頻繁存取資料之各段資料之位置。例如,快取記憶體106可判定一第一快取行係第一非頻繁存取資料之一最近最少使用快取行且接著隨後判定一第二快取行係第二非頻繁存取資料之一最近最少使用快取行。快取記憶體106可將特定非頻繁存取資料儲存於對應快取行中。
在一些實施方案中,系統100可包含各用於一特定位址範圍之多個目標快取階。例如,中央處理單元102可提供一指令來設定該位址範圍及相關聯快取階。一虛擬機監測器可接收該指令且使用該指令來將不同目標快取階應用於各位址範圍。在一些實例中,快取控制器110可儲存此範圍資訊。當快取控制器110接收對一巢套頁表之一資料請求時,快取控制器110可判定該巢套頁表之一位址是否落於該位址範圍內。若快取控制器110判定該位址落於該位址範圍內,則快取控制器110使用目標快取階(例如在該處儲存該巢套頁表之一或若干快取階)來實施該請求。
在一些實施方案中,系統100可使用識別一記憶體類型之請求資料之一屬性(例如元資料)來識別目標快取階。例如,中央處理單元102可使用「WC_L2」作為一記憶體類型以指示一L2快取記憶體係目標快取階。例如,當不同請求資料具有識別不同目標快取階之不同記憶體類型時,系統100可基於請求資料之記憶體類型(例如儲存巢套頁表之一頁)而改變目標快取階。
在一些實施方案中,系統100可將目標快取階儲存於(例如)快取記憶體106或處理器104之一暫存器中。快取記憶體106可存取該暫存器以判定目標快取階。中央處理單元102之處理器104或另一組件可(例如)在處理器104開始執行一虛擬機時依據由處理器104執行之各應用程式而更新該暫存器之值,或回應於快取記憶體106之一快取未命中率而動態更新該暫存器之值。
在一些實施方案中,快取記憶體106中之所有快取條目(例如不同快取階108a至108c中之快取行)具有相同大小。例如,系統100可基於資料之大小而至少部分判定或不判定資料不被頻繁使用。在一些實例中,系統100將資料儲存於具有相同於非頻繁存取資料之大小之最高快取階(例如L1快取記憶體)中。
在一些實施方案中,系統100可(例如)基於快取記憶體106之一快取未命中率而動態判定一目標快取階。當一快取未命中率不滿足(例如,高於)一臨限快取未命中率時,系統100可將目標快取階移動至一快取階階層中之一較低階。例如,當臨限快取未命中率係3%且快取未命中率係5%時,系統100可將目標快取階移動至快取階階層中之一較低階。當一快取未命中率滿足(例如,等於或低於)一臨限快取未命中率時,系統100可將目標快取階移動至一快取階階層中之一較高階。例如,當臨限快取未命中率係3%且快取未命中率係3%或2%時,系統100可將目標快取階移動至快取階階層中之一較高階。系統100可使用任何適當方法來自動判定及動態判定快取記憶體106之目標快取階。
在一些實施方案中,系統100可判定頻繁使用資料之一目標快取階。該目標快取階可為將在該處儲存該頻繁存取資料之一最低快取階。例如,可將該頻繁存取資料儲存於一L1快取記憶體而非一L2快取記憶體或一L3快取記憶體中。
在一些實施方案中,系統100可判定資料是否滿足(例如,匹配)一特定型樣,且若該資料滿足該特定型樣,則判定將在該處儲存該資料之一目標快取階。該資料可為由一型樣界定之一特定類型,該資料之存取可滿足一型樣,或該資料可依另一適當方式滿足一型樣。例如,系統100可使用該特定型樣來判定該資料係串流資料(例如,基於該資料之一屬性或存取該資料之一應用程式或裝置)。該資料之該屬性可為(例如)該資料之一位址,且系統100可判定多個循序位址由處理器104依序存取。系統100可使用一特定型樣或多個型樣來判定該資料是否歸於一威脅類別(例如偽造一使用者之身份、篡改、一否認、諸如一侵犯隱私權或資料洩露之一資訊揭露、一拒絕服務或一特權提升)內。在一些實例中,系統100可使用一特定型樣來判定該資料是否 為散集(scatter-gather)資料存取之部分,例如,其中一裝置將資料自多個緩衝器寫入至一單一資料串流中或將資料自一資料串流讀取至多個緩衝器中。系統100可使用該資料之一源位址或一目的位址來判定該資料是否滿足該型樣。
在此等實施方案中,系統100可將資料儲存於一快取階階層中之目標快取階及一或多個更低階中,將資料儲存於該快取階階層中之目標快取階及一或多個更高階中,或僅將資料儲存於目標快取階中。系統100可使用(例如)藉由一管理者或資料分析而預定之特定型樣或使用(例如)使用一機器學習程序來判定之動態型樣。系統100可使用任何適當方法、型樣或方法及型樣兩者來判定是否將資料儲存於一目標快取階中。
圖2係用於將資料儲存於一目標快取階中之一程序200之一流程圖。例如,程序200可由來自系統100之快取記憶體106使用。
一快取記憶體接收指示一目標快取階之一識別符之輸入(202),該目標快取階界定將在該處儲存非頻繁存取資料之一特定快取記憶體之一快取階階層內之一快取階。例如,一系統可自一管理者接收該識別符且將該識別符提供至該快取記憶體。該識別符可用於一特定應用程式或一類型之應用程式或用於所有應用程式。例如,該識別符可應用於所有虛擬機或一特定虛擬機。
在一些實施方案中,一系統可對一管理者呈現允許該管理者界定目標快取階之一使用者介面。該使用者介面可包含允許該管理者指定特定應用程式、應用程式類型或應用程式群組及對應目標快取階之一或多個欄位。
快取記憶體接收一資料請求(204)。例如,快取記憶體自一處理器接收(例如)執行一虛擬機之請求。在一些實例中,快取記憶體自一記憶體控制器、一記憶體管理單元、一輸入/輸出單元、一整合輸入/ 輸出單元(例如,在一晶粒上)或一裝置之另一組件接收該請求。
快取記憶體判定資料滿足一非頻繁條件(206)。例如,快取記憶體判定資料之一類型及判定資料之該類型滿足該非頻繁條件。在一些實例中,快取記憶體可(例如)基於儲存於快取記憶體中之該類型之資料之存取而自動判定不同類型之資料之頻率值。此處,該非頻繁條件可為一存取頻率值臨限值,且若資料之頻率值低於該頻率值臨限值,則判定滿足該非頻繁條件。
快取記憶體判定目標快取階(208)。例如,快取記憶體專針對在處理器上執行且被資料請求之一特定應用程式或一類型之應用程式而判定目標快取階。
快取記憶體向一記憶體請求資料及接收資料(210)。該記憶體可為任何適當類型之記憶體,諸如一隨機存取記憶體。
快取記憶體將資料儲存於目標快取階中(212)。快取記憶體可將資料儲存於低於目標快取階之一或多個階中(例如,使用一快取階階層)。例如,快取記憶體可將資料僅儲存於一L2快取記憶體中。在一些實例中,快取記憶體可將資料儲存於一L2快取記憶體及一L3快取記憶體中且視情況將資料儲存於任何額外較低快取階中。快取記憶體可將資料儲存於目標快取階中而非將資料儲存於一快取階階層中之高於目標快取階之一快取階中。
在一些實施方案中,快取記憶體將非頻繁存取資料儲存於一快取階階層中之高於目標快取階之一快取階中。在此等實施方案中,快取記憶體不更新一位元,其指示:已在該快取階階層中之高於目標快取階之該快取階中更新其中儲存非頻繁存取資料之一快取行。例如,快取記憶體不更新一最近最少使用(LRU)位元,但或更新一最近最多使用(MRU)位元。
在一些實施方案中,快取記憶體可判定接著將在一特定快取階 中覆寫何種快取行且將非頻繁存取資料儲存於該快取行中。快取記憶體可不更新指示該快取行被覆寫之一位元。快取記憶體可使用任何適當方法來判定接著將覆寫何種快取行。
快取記憶體提供資料(214)。例如,快取記憶體可將資料提供至處理器。在一些實例中,(例如)當將快取記憶體包含於諸如一硬碟機之一記憶體中時,快取記憶體將資料提供至一請求組件。
快取記憶體使用一特定快取記憶體之一快取未命中率來更新目標快取階(216)。例如,快取記憶體可動態及自動判定該快取未命中率且依據一特定應用程式、一類型之應用程式或在一裝置上執行之所有應用程式而更新目標快取階。
目標快取階專針對一特定中央處理單元。例如,當一裝置包含兩個中央處理單元時,該裝置包含用於該等中央處理單元之各者之一目標快取階。在一些實例中,一單一中央處理單元之各處理器核心可具有一不同目標快取階。在一些實例中,一單一中央處理單元上之一或多個處理器核心可使用相同目標快取階。例如,兩個處理器核心可共用相同目標快取階,使得當目標快取階因該兩個處理器核心之一者而改變時,目標快取階會因該兩個處理器核心之另一者而改變。
快取記憶體接收對第二資料之一第二請求(218)。該第二資料可用於執行相同於步驟204中所請求之資料之應用程式或可用於一不同應用程式。在一些實例中,步驟204中所請求之資料用於一第一虛擬機且該第二資料用於一第二虛擬機。
快取記憶體判定第二資料滿足一第二非頻繁條件(220)。該第二非頻繁條件可相同於步驟206中所使用之非頻繁條件或可為一不同非頻繁條件。例如,快取記憶體可具有用於不同虛擬機之不同條件或臨限值,或具有用於所有虛擬機或多個虛擬機之相同條件或臨限值。
快取記憶體判定一第二目標快取階(222)。該第二目標快取階可 不同於或相同於目標快取階。
快取記憶體向一記憶體請求第二資料及接收第二資料(224)。例如,快取記憶體可自步驟210中所存取之相同記憶體或一不同記憶體請求第二資料。
快取記憶體將第二資料儲存於第二目標快取階中(226)。快取記憶體可將第二資料提供至一請求裝置(例如一處理器)。
上文所描述之程序200中之步驟順序僅供說明,且可依不同順序執行將資料儲存於目標快取階中。例如,快取記憶體可接收一資料請求,向一記憶體請求該資料及接收該資料,且接著判定該資料是否滿足一非頻繁條件及在該資料滿足該非頻繁條件時判定目標快取階。
在一些實施方案中,程序200可包含額外步驟、較少步驟,或可將一些步驟分成多個步驟。例如,快取記憶體自記憶體請求資料且不自記憶體接收資料。在一些實例中,快取記憶體可僅執行步驟204至212或步驟202至214,或執行程序200之步驟之另一子集。
可將本說明書中所描述之標的及功能操作之實施例實施於以下各者中:數位電子電路、有形體現之電腦軟體或韌體、電腦硬體(其包含本說明書中所揭示之結構及其結構等效物)或上述之一或多者之組合。可將本說明書中所描述之標的之實施例實施為一或多個電腦程式,即,用於由資料處理設備執行或用於控制資料處理設備之操作之編碼於一有形非暫時性程式載體上之電腦程式指令之一或多個模組。替代地或另外,可將程式指令編碼於一人工產生之傳播信號(例如一機器產生之電、光學或電磁信號)上,該信號經產生以編碼用於傳輸至適合接收器設備以由一資料處理設備執行之資訊。電腦儲存媒體可為一機器可讀儲存裝置、一機器可讀儲存基板、一隨機或串列存取記憶體裝置或上述之一或多者之一組合。
術語「資料處理設備」係指資料處理硬體且涵蓋用於處理資料 之各種設備、裝置及機器,其包含(例如)一可程式化處理器、一電腦或多個處理器或電腦。設備亦可為或進一步包含專用邏輯電路,例如一FPGA(場可程式化閘陣列)或一ASIC(專用積體電路)。設備除包含硬體之外,亦可視情況包含建立電腦程式之一執行環境之程式碼,例如構成處理器韌體、一協定堆疊、一資料庫管理系統、一作業系統或上述之一或多者之一組合之程式碼。
可以任何形式之程式設計語言(其包含編譯或解譯語言、或宣告或程序語言)撰寫一電腦程式(其亦可指稱或被描述為一程式、軟體、一軟體應用程式、一模組、一軟體模組、一指令碼或程式碼),且可以任何形式部署電腦程式,其包含作為一獨立程式或作為一模組、組件、子常式或適合用於一計算環境中之其他單元。一電腦程式可(但非必需)對應於一檔案系統中之一檔案。可將一程式儲存於保存其他程式或資料之一檔案之一部分中,例如,將一或多個指令碼儲存於一標記語言文件、專用於所論述程式之一單一檔案、或多個協調檔案(例如儲存一或多個模組、子程式或程式碼之部分之檔案)中。一電腦程式可經部署以在一個電腦上執行或在位於一個地點處或分佈於多個地點中且由一通信網路互連之多個電腦上執行。
可一或多個可程式化電腦執行本說明書中所描述之程序及邏輯流程,該一或多個可程式化電腦執行一或多個電腦程式以藉由操作輸入資料且產生輸出而執行功能。亦可由專用邏輯電路(例如一FPGA(場可程式化閘陣列)或一ASIC(專用積體電路))執行程序及邏輯流程,且亦可將設備實施為該專用邏輯電路。
適合用於執行一電腦程式之電腦包含(例如)通用微處理器或專用微處理器或通用微處理器及專用微處理器兩者、或任何其他種類之中央處理單元。一般而言,一中央處理單元將自一唯讀記憶體或一隨機存取記憶體或一唯讀記憶體及一隨機存取記憶體兩者接收指令及資 料。一電腦之基本元件係用於執行指令之一中央處理單元及用於儲存指令及資料之一或多個記憶體裝置。一般而言,一電腦亦將包含用於儲存資料之一或多個大容量儲存裝置(例如磁碟、磁光碟或光碟)或經可操作地耦合以自該一或多個大容量儲存裝置接收資料或將資料傳送至該一或多個大容量儲存裝置或進行上述兩者。然而,一電腦未必具有此等裝置。此外,可將一電腦嵌入於例如以下各者之另一裝置中:一行動電話、一個人數位助理(PDA)、一行動音訊或視訊播放器、一遊戲控制台、一全球定位系統(GPS)接收器或一可攜式儲存裝置,例如一通用串列匯流排(USB)快閃硬碟等等。
適合用於儲存電腦程式指令及資料之電腦可讀媒體包含所有形式之非揮發性記憶體、媒體及記憶體裝置,其包含(例如)半導體記憶體裝置(例如EPROM、EEPROM及快閃記憶體裝置)、磁碟(例如內部硬碟或可抽換式磁碟)、磁光碟、及CD-ROM及DVD-ROM磁碟。處理器及記憶體可由專用邏輯電路補充或併入專用邏輯電路中。
圖3中展示此一類型之電腦之一實例,圖3展示一通用電腦系統300之一示意圖。系統300可用於結合先前根據一實施方案而描述之電腦實施方法之任何者來描述之操作。系統300包含一處理器310、一記憶體320、一儲存裝置330及一輸入/輸出裝置340。使用一系統匯流排350來使組件310、320、330及340之各者互連。處理器310能夠處理用於在系統300內執行之指令。在一實施方案中,處理器310係一單執行緒處理器。在另一實施方案中,處理器310係一多執行緒處理器。處理器310能夠處理儲存於記憶體320中或儲存於儲存裝置330上之指令以在輸入/輸出裝置340上顯示一使用者介面之圖形資訊。
記憶體320儲存系統300內之資訊。在一實施方案中,記憶體320係一電腦可讀媒體。在一實施方案中,記憶體320係一揮發性記憶體單元。在另一實施方案中,記憶體320係一非揮發性記憶體單元。
儲存裝置330能夠對系統300提供大容量儲存。在一實施方案中,儲存裝置330係一電腦可讀媒體。在各種不同實施方案中,儲存裝置330可為一軟碟裝置、一硬碟裝置、一光碟裝置或一磁帶裝置。
輸入/輸出裝置340對系統300提供輸入/輸出操作。在一實施方案中,輸入/輸出裝置340包含一鍵盤及/或指標裝置。在另一實施方案中,輸入/輸出裝置340包含用於顯示圖形使用者介面之一顯示單元。
雖然本說明書含有諸多特定實施方案細節,但此等不應被解釋為對所主張內容之範疇之限制,而應被解釋為可專針對特定實施例之特徵之描述。亦可在一單一實施例中組合實施本說明書之單獨實施例之內文中所描述之某些特徵。相反地,亦可在多項實施例中單獨地或依任何適合子組合方式實施一單一實施例之內文中所描述之各種特徵。此外,雖然特徵可在上文中被描述為依某些組合起作用且甚至最初本身被主張,但在一些情況中,來自一所主張組合之一或多個特徵可自該組合去除且該所主張組合可針對一子組合或一子組合之變動。
類似地,雖然在圖式中依一特定順序描繪操作,但此不應被理解為需要:依展示之特定順序或依循序順序執行此等操作或執行所有繪示操作來達成所要結果。在某些情形中,多重任務處理及並行處理可為有利的。此外,上文所描述之實施例中之各種系統模組及組件之分離不應被理解為在所有實施例中需要此分離,且應瞭解,所描述之程式組件及系統一般可一起整合於一單一軟體產品中或封裝至多個軟體產品中。
本發明已描述標的之特定實施例。其他實施例係在以下申請專利範圍之範疇內。例如,申請專利範圍中所敘述之動作可依一不同順序執行且仍達成所要結果。作為一實例,附圖中所描繪之程序未必需要所展示之特定順序或循序順序來達成所要結果。在一些情況中,多重任務處理及並行處理可為有利的。在一些實施方案中,一個組件、 組件之一子集或所有上述硬體組件可由實施相同功能之等效軟體或混合組件替換。
100‧‧‧系統
102‧‧‧中央處理單元
104‧‧‧處理器
106‧‧‧快取記憶體
108a‧‧‧L1快取記憶體/快取階
108b‧‧‧L2快取記憶體/快取階
108c‧‧‧L3快取記憶體/快取階
110‧‧‧快取控制器
112‧‧‧記憶體

Claims (20)

  1. 一種電腦實施方法,其包括:自一裝置之一組件接收對資料之一請求;判定存取該資料小於一臨限速率且應僅儲存該資料於一快取記憶體中在不高於一目標快取階之一階處;回應於判定存取該資料小於該臨限速率且應僅儲存該資料於該快取記憶體中在不高於該目標快取階之該階處而:判定該目標快取階,該目標快取階界定一特定快取記憶體之一快取階階層內之一快取階,將小於該臨限速率而存取之資料儲存於該快取階處,該目標快取階低於該快取階階層中之一最高快取階;向並非為該裝置之一快取記憶體之一記憶體請求該資料及接收該資料;將該資料儲存於等於或低於該快取階階層中之該目標快取階之該特定快取記憶體之一階中;及在高於該快取階階層中之該目標快取階之該特定快取記憶體之一特定階中,將該資料儲存於該特定階之一特定快取線中,該特定快取線係由針對在該快取階階層中之該特定階之一最近最少使用位元所識別之一最近最少使用快取線,且不更新該最近最少使用位元,使得該最近最少使用位元不指示已經更新該特定快取線以包含該資料;及將該資料提供至該組件。
  2. 如請求項1之方法,其中:自該裝置之該組件接收資料之該請求包括自一裝置之一處理器接收該資料之該請求;及 將該資料提供至該組件包括將該資料提供至該處理器。
  3. 如請求項1之方法,其中:自該裝置之該組件接收該資料之該請求包括自一裝置之一記憶體控制器接收該資料之該請求;及將該資料提供至該組件包括將該資料提供至該記憶體控制器。
  4. 如請求項1之方法,其中:自該裝置之該組件接收該資料之該請求包括自一裝置之一記憶體管理單元接收該資料之該請求;及將該資料提供至該組件包括將該資料提供至該記憶體管理單元。
  5. 如請求項1之方法,其中:自該裝置之該組件接收該資料之該請求包括自一裝置之一輸入/輸出單元接收該資料之該請求;及將該資料提供至該組件包括將該資料提供至該輸入/輸出單元。
  6. 如請求項1之方法,其包括:自一基本輸入/輸出系統或一統一可擴展韌體介面接收指示一識別符之輸入,該識別符指定該快取階階層中之該目標快取階,且在該目標快取階處儲存小於該臨限速率而存取之資料。
  7. 如請求項1之方法,其包括:自一管理者接收指示一識別符之輸入之一指示,該識別符指定該快取階階層中之該目標快取階,且在該目標快取階處儲存小於該臨限速率而存取之資料。
  8. 如請求項1之方法,其中判定該目標快取階包括:在自該記憶體接收該資料之後識別該資料之一屬性;及使用該屬性來判定存取該資料小於該臨限速率及判定將在該 處儲存該資料之該目標快取階。
  9. 如請求項8之方法,其包括:自該裝置之該組件接收對第二資料之一第二請求;判定存取該第二資料小於一第二臨限速率且應僅儲存該第二資料於一快取記憶體中在不高於一第二目標快取階之一階處,該第二臨限速率係不同於該臨限速率之一臨限速率;向並非為該裝置之一快取記憶體之一第二記憶體請求該第二資料及接收該第二資料;在自該第二記憶體接收該第二資料及使用該第二資料之一第二屬性之後,判定該第二目標快取階,該第二目標快取階界定將在該處儲存小於該第二臨限速率而存取之資料之該特定快取記憶體之該快取階階層內之一快取階,該第二目標快取階低於該快取階階層中之該最高快取階且該第二目標快取階係不同於該目標快取階之一快取階;將該第二資料儲存於等於或低於該快取階階層中之該第二目標快取階之該特定快取記憶體之一階中;及將該第二資料提供至該裝置之該組件。
  10. 如請求項1之方法,其包括:接收對該資料之一第二請求;及自其中儲存該資料之該特定快取記憶體之該階擷取該資料,同時確保該資料不儲存於高於該快取階階層中之該目標快取階之該快取記憶體之另一階中。
  11. 一種電腦實施方法,其包括:自一裝置之一組件接收資料之一請求;判定該資料之該請求包括對一巢套頁表(nested page table)之一請求; 回應於判定該資料之該請求包括對該巢套頁表之該請求而判定存取該資料小於一臨限速率且應僅儲存該資料於一快取記憶體中在不高於一目標快取階之一階處;回應於判定存取該資料小於該臨限速率且應僅儲存該資料於該快取記憶體中在不高於該目標快取階之該階處而:判定該目標快取階,該目標快取階界定一特定快取記憶體之一快取階階層內之一快取階,將小於該臨限速率而存取之資料儲存於該快取階,該目標快取階低於該快取階階層中之一最高快取階;向並非為該裝置之一快取記憶體之一記憶體請求該資料及接收該資料;及將該資料儲存於等於或低於該快取階階層中之該目標快取階之該特定快取記憶體之一階中;及將該資料提供至該組件。
  12. 一種電腦實施方法,其包括:自一裝置之一組件接收資料之一請求;判定存取該資料小於一臨限速率且應僅儲存該資料於一快取記憶體中在不高於一目標快取階之一階處;回應於判定存取該資料小於該臨限速率且應僅儲存該資料於該快取記憶體中在不高於該目標快取階之該階處而:使用對於一特定快取記憶體之一快取未命中率自動地判定該目標快取階,該目標快取階界定一特定快取記憶體之一快取階階層內之一快取階,將小於該臨限速率而存取之資料儲存於該快取階,且該目標快取階低於該快取階階層中之一最高快取階;向並非為該裝置之一快取記憶體之一記憶體請求該資料及 接收該資料;及將該資料儲存於等於或低於該快取階階層中之該目標快取階之該特定快取記憶體之一階中;及將該資料提供至該組件。
  13. 如請求項12之方法,其中使用對於該特定快取記憶體之該快取未命中率自動地判定該目標快取階包括:判定對於該特定快取記憶體之該快取未命中率不滿足一臨限未命中率;及回應於判定對於該特定快取記憶體之該快取未命中率不滿足該臨限未命中率而將該目標快取階改變為該快取階階層中之一較低快取階。
  14. 如請求項12之方法,其中使用對於該特定快取記憶體之該快取未命中率自動地判定該目標快取階包括:判定對於該特定快取記憶體之該快取未命中率滿足一臨限未命中率;及回應於判定對於該特定快取記憶體之該快取未命中率滿足該臨限未命中率而將該目標快取階改變為該快取階階層中之一較高快取階。
  15. 如請求項12之方法,其包括:自該裝置之該組件接收對第二資料之一第二請求;判定存取該第二資料小於該臨限速率且應僅儲存該第二資料於該快取記憶體中在不高於該目標快取階之該階處;判定一更新目標快取階,該更新目標快取階界定該特定快取記憶體之該快取階階層內之一快取階,在該快取階處儲存小於該臨限速率而存取之資料,該更新目標快取階低於該快取階階層中之該最高快取階; 向並非為該裝置之一快取記憶體之另一記憶體請求該第二資料及接收該第二資料;將該第二資料儲存於等於或低於該快取階階層中之該更新目標快取階之該特定快取記憶體之一階中;及將該第二資料提供至該裝置之該組件。
  16. 一種電腦實施方法,其包括:在一第一虛擬機器之執行期間自一裝置之一組件接收第一資料之一第一請求;判定存取該第一資料小於一第一臨限速率且應僅儲存該第一資料於一快取記憶體中在不高於一第一目標快取階之一階處;回應於判定存取該第一資料小於該第一臨限速率且應僅儲存該第一資料於該快取記憶體中在不高於該第一目標快取階之該階處而:判定專對於該第一虛擬機器之該第一目標快取階,該第一目標快取階界定一特定快取記憶體之一快取階階層內之一快取階,將小於該第一臨限速率而存取之資料儲存於該快取階,且該第一目標快取階低於該快取階階層中之一最高快取階;向並非為該裝置之一快取記憶體之一記憶體請求該第一資料及接收該第一資料;及將該第一資料儲存於等於或低於該快取階階層中之該第一目標快取階之該特定快取記憶體之一階中;將該第一資料提供至該組件;在一第二虛擬機器之執行期間自該裝置之該組件接收對第二資料之一第二請求;判定存取該第二資料小於一第二臨限速率且應僅儲存該第二 資料於一快取記憶體中在不高於一第二目標快取階之一階處;判定專對於該第二虛擬機器之該第二目標快取階,該第二目標快取階界定該特定快取記憶體之該快取階階層內之一快取階,在該快取階處儲存小於該第二臨限速率而存取之資料,該第二目標快取階低於該快取階階層中之該最高快取階;向並非為該裝置之一快取記憶體之另一記憶體請求該第二資料及接收該第二資料;將該第二資料儲存於等於或低於該快取階階層中之該第二目標快取階之該特定快取記憶體之一階中;及將該第二資料提供至該裝置之該組件。
  17. 如請求項16之方法,其中:判定專對於該第一虛擬機器之該第一目標快取階包括使用儲存於該裝置之一第一暫存器中之資料來判定該第一目標快取階;及判定專對於該第二虛擬機器之該第二目標快取階包括使用儲存於該裝置之不同的一第二暫存器中之資料來判定該第二目標快取階。
  18. 一種非暫時性電腦可讀儲存媒體,其儲存指令,該等指令可由一資料處理設備執行且在此執行之後引起該資料處理設備執行包括以下各者之操作:自一裝置之一組件接收資料之一請求;判定存取該資料小於一臨限速率且應僅儲存該資料於一快取記憶體中在不高於一目標快取階之一階處;回應於判定存取該資料小於該臨限速率且應僅儲存該資料於該快取記憶體中在不高於該目標快取階之該階處而:判定該目標快取階,該目標快取階界定一特定快取記憶體 之一快取階階層內之一快取階,將小於該臨限速率而存取之資料儲存在該快取階處,該目標快取階低於該快取階階層中之一最高快取階;向並非為該裝置之一快取記憶體之一記憶體請求該資料及接收該資料;將該資料儲存於等於或低於該快取階階層中之該目標快取階之該特定快取記憶體之一階中;及在高於該快取階階層中之該目標快取階之該特定快取記憶體之一特定階中,將該資料儲存於該特定階之一特定快取線中,該特定快取線係由針對在該快取階階層中之該特定階之一最近最少使用位元所識別之一最近最少使用快取線,且不更新該最近最少使用位元,使得該最近最少使用位元不指示已經更新該特定快取線以包含該資料;及將該資料提供至該組件。
  19. 如請求項18之電腦可讀儲存媒體,該等操作包括:自該裝置之一第二組件接收對第二資料之一第二請求;判定該第二資料非儲存於高於該快取階階層之該目標快取階之該特定快取記憶體之該特定階中;判定對於該特定階之該最近最少使用位元識別出該特定快取線;及回應於判定對於該特定階之該最近最少使用位元識別出該特定快取線而將該第二資料儲存於該特定快取記憶體之該特定階之該特定快取線中。
  20. 一種資料快取系統,其包括:一快取記憶體;及一非暫時性電腦可讀儲存媒體,其與該快取記憶體資料通信 且儲存指令,該等指令可由該快取記憶體執行且在此執行之後引起該快取記憶體執行包括以下各者之操作:由該快取記憶體自一裝置之一組件接收資料之一請求;判定該資料滿足一特定型樣及應儲存該資料於該快取記憶體之一快取階階層內之一目標快取階中而不將該資料儲存於該快取階階層之所有快取階中;回應於判定該資料滿足該特定型樣及應儲存該資料於該快取記憶體之該快取階階層內之該目標快取階中而不將該資料儲存於該快取階階層之所有快取階中而:判定該目標快取階,該目標快取階界定該快取記憶體之該快取階階層內之一快取階,將滿足該特定型樣之資料在該快取階處;向並非為該裝置之一快取記憶體之一記憶體請求該資料及接收該資料;將該資料儲存於該目標快取階中,而不將該資料儲存於該快取記憶體之所有快取階中;及在一快取階不同於該快取階階層中之該目標快取階之該快取記憶體之一特定階中,將該資料儲存於該特定階之一特定快取線中,該特定快取線係由針對在該快取階階層中之該特定階之一最近最少使用位元所識別之一最近最少使用快取線,且不更新該最近最少使用位元,使得該最近最少使用位元不指示已經更新該特定快取線以包含該資料;及將該資料提供至該組件。
TW105113569A 2015-04-29 2016-04-29 用於資料快取之方法、電腦可讀取儲存媒體及系統 TWI606340B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/699,014 US9600417B2 (en) 2015-04-29 2015-04-29 Data caching

Publications (2)

Publication Number Publication Date
TW201706854A TW201706854A (zh) 2017-02-16
TWI606340B true TWI606340B (zh) 2017-11-21

Family

ID=56015106

Family Applications (2)

Application Number Title Priority Date Filing Date
TW105113569A TWI606340B (zh) 2015-04-29 2016-04-29 用於資料快取之方法、電腦可讀取儲存媒體及系統
TW106131550A TWI627534B (zh) 2015-04-29 2016-04-29 用於資料快取之方法、電腦可讀取儲存媒體及系統

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW106131550A TWI627534B (zh) 2015-04-29 2016-04-29 用於資料快取之方法、電腦可讀取儲存媒體及系統

Country Status (9)

Country Link
US (3) US9600417B2 (zh)
EP (3) EP3262513B1 (zh)
CN (2) CN107438837B (zh)
DE (1) DE202016107437U1 (zh)
DK (2) DK3657339T3 (zh)
FI (1) FI3657339T3 (zh)
HK (1) HK1245437A1 (zh)
TW (2) TWI606340B (zh)
WO (1) WO2016176551A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3089035A1 (en) * 2015-04-30 2016-11-02 Virtual Open Systems Virtualization manager for reconfigurable hardware accelerators
US10127156B1 (en) * 2016-09-29 2018-11-13 EMC IP Holding Company LLC Caching techniques
CN110020290B (zh) * 2017-09-29 2022-12-13 腾讯科技(深圳)有限公司 网页资源缓存方法、装置、存储介质及电子装置
TWI681293B (zh) * 2018-01-10 2020-01-01 瑞昱半導體股份有限公司 暫存記憶體處理方法、暫存記憶體程式與記憶裝置
US11500674B2 (en) * 2018-06-26 2022-11-15 Intel Corporation Circuitry with adaptive memory assistance capabilities
TWI707272B (zh) 2019-04-10 2020-10-11 瑞昱半導體股份有限公司 可執行指令的電子裝置以及指令執行方法
US11513958B1 (en) 2019-05-29 2022-11-29 Marvell Asia Pte, Ltd. Shared mid-level data cache
CN110716814B (zh) * 2019-09-17 2022-05-13 武汉中海庭数据技术有限公司 一种进程间大数据量通讯的性能优化方法和装置
CN112667847A (zh) * 2019-10-16 2021-04-16 北京奇艺世纪科技有限公司 数据缓存方法、数据缓存装置和电子设备

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802563A (en) * 1996-07-01 1998-09-01 Sun Microsystems, Inc. Efficient storage of data in computer system with multiple cache levels
US6021470A (en) 1997-03-17 2000-02-01 Oracle Corporation Method and apparatus for selective data caching implemented with noncacheable and cacheable data for improved cache performance in a computer networking system
US6115795A (en) * 1997-08-06 2000-09-05 International Business Machines Corporation Method and apparatus for configurable multiple level cache with coherency in a multiprocessor system
US6647466B2 (en) 2001-01-25 2003-11-11 Hewlett-Packard Development Company, L.P. Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy
US7552282B1 (en) * 2004-08-04 2009-06-23 Emc Corporation Method, computer readable medium, and data storage system for selective data replication of cached data
TWI265414B (en) * 2005-07-25 2006-11-01 Ind Tech Res Inst Data caching method and computer program product therefor
US7337276B2 (en) * 2005-08-11 2008-02-26 International Business Machines Corporation Method and apparatus for aging data in a cache
US7984241B2 (en) 2005-09-16 2011-07-19 Hewlett-Packard Development Company, L.P. Controlling processor access to cache memory
US7757045B2 (en) 2006-03-13 2010-07-13 Intel Corporation Synchronizing recency information in an inclusive cache hierarchy
US7596662B2 (en) 2006-08-31 2009-09-29 Intel Corporation Selective storage of data in levels of a cache memory
US7917699B2 (en) * 2007-12-21 2011-03-29 Mips Technologies, Inc. Apparatus and method for controlling the exclusivity mode of a level-two cache
US8151085B2 (en) * 2008-01-17 2012-04-03 International Business Machines Corporation Method for address translation in virtual machines
US8166229B2 (en) 2008-06-30 2012-04-24 Intel Corporation Apparatus and method for multi-level cache utilization
TWI385516B (zh) 2008-08-12 2013-02-11 Phison Electronics Corp 快閃記憶體儲存系統及其資料寫入方法
US8032707B2 (en) * 2008-09-15 2011-10-04 Microsoft Corporation Managing cache data and metadata
US8190823B2 (en) * 2008-09-18 2012-05-29 Lenovo (Singapore) Pte. Ltd. Apparatus, system and method for storage cache deduplication
US8601213B2 (en) * 2008-11-03 2013-12-03 Teradata Us, Inc. System, method, and computer-readable medium for spool cache management
US8606997B2 (en) * 2008-12-23 2013-12-10 Oracle America, Inc. Cache hierarchy with bounds on levels accessed
US7948798B1 (en) * 2009-07-22 2011-05-24 Marvell International Ltd. Mixed multi-level cell and single level cell storage device
US8990506B2 (en) * 2009-12-16 2015-03-24 Intel Corporation Replacing cache lines in a cache memory based at least in part on cache coherency state information
US20110153944A1 (en) * 2009-12-22 2011-06-23 Klaus Kursawe Secure Cache Memory Architecture
US8291172B2 (en) 2010-04-27 2012-10-16 Via Technologies, Inc. Multi-modal data prefetcher
US8838935B2 (en) * 2010-09-24 2014-09-16 Intel Corporation Apparatus, method, and system for implementing micro page tables
US8788742B2 (en) * 2011-05-23 2014-07-22 International Business Machines Corporation Using an attribute of a write request to determine where to cache data in a storage system having multiple caches including non-volatile storage cache in a sequential access storage device
US9098418B2 (en) * 2012-03-20 2015-08-04 Apple Inc. Coordinated prefetching based on training in hierarchically cached processors
CN102841857B (zh) * 2012-07-25 2015-02-25 龙芯中科技术有限公司 缓存预测执行的处理器与装置及方法
US8949544B2 (en) 2012-11-19 2015-02-03 Advanced Micro Devices, Inc. Bypassing a cache when handling memory requests
US20140258628A1 (en) * 2013-03-11 2014-09-11 Lsi Corporation System, method and computer-readable medium for managing a cache store to achieve improved cache ramp-up across system reboots
US9218291B2 (en) 2013-07-25 2015-12-22 International Business Machines Corporation Implementing selective cache injection
CN104346294B (zh) * 2013-07-31 2017-08-25 华为技术有限公司 基于多级缓存的数据读/写方法、装置和计算机系统

Also Published As

Publication number Publication date
TWI627534B (zh) 2018-06-21
CN112905501A (zh) 2021-06-04
EP3657338A1 (en) 2020-05-27
DE202016107437U1 (de) 2017-01-16
US10303604B2 (en) 2019-05-28
US20160321176A1 (en) 2016-11-03
US20170153977A1 (en) 2017-06-01
FI3657339T3 (fi) 2023-01-13
US20190236010A1 (en) 2019-08-01
WO2016176551A1 (en) 2016-11-03
TW201743215A (zh) 2017-12-16
US10884928B2 (en) 2021-01-05
EP3657339B1 (en) 2022-09-28
US9600417B2 (en) 2017-03-21
CN112905501B (zh) 2022-08-12
DK3657339T3 (da) 2022-11-28
CN107438837A (zh) 2017-12-05
EP3262513A1 (en) 2018-01-03
EP3657339A1 (en) 2020-05-27
TW201706854A (zh) 2017-02-16
EP3262513B1 (en) 2020-03-18
CN107438837B (zh) 2021-03-12
DK3262513T3 (da) 2020-06-22
HK1245437A1 (zh) 2018-08-24

Similar Documents

Publication Publication Date Title
TWI606340B (zh) 用於資料快取之方法、電腦可讀取儲存媒體及系統
US9760493B1 (en) System and methods of a CPU-efficient cache replacement algorithm
US9501419B2 (en) Apparatus, systems, and methods for providing a memory efficient cache
US10977192B1 (en) Real-time memory-page state tracking and its applications
GB2516477A (en) Method and system for handling virtual memory address synonyms in a multi-level cache hierarchy structure
US9612975B2 (en) Page cache device and method for efficient mapping
TW201346753A (zh) 於脈絡之間共享轉譯後備緩衝區對映之技術
US9235513B2 (en) Cache management based on physical memory device characteristics
US9720829B2 (en) Online learning based algorithms to increase retention and reuse of GPU-generated dynamic surfaces in outer-level caches
US11138130B1 (en) Nested page tables
US20230102891A1 (en) Re-reference interval prediction (rrip) with pseudo-lru supplemental age information
US9069677B2 (en) Input/output de-duplication based on variable-size chunks
US20170046278A1 (en) Method and apparatus for updating replacement policy information for a fully associative buffer cache
JP2016110636A (ja) メモリ管理
US20130339613A1 (en) Storing data in a system memory for a subsequent cache flush
US11249914B2 (en) System and methods of an efficient cache algorithm in a hierarchical storage system
US11704250B2 (en) Using request class and reuse recording in one cache for insertion policies of another cache
CN114004347A (zh) 用于加速图神经网络属性访问的硬件加速器、系统和方法