TW202340930A - 針對生產者-消費者流程的快取替換策略最佳化 - Google Patents
針對生產者-消費者流程的快取替換策略最佳化 Download PDFInfo
- Publication number
- TW202340930A TW202340930A TW112104540A TW112104540A TW202340930A TW 202340930 A TW202340930 A TW 202340930A TW 112104540 A TW112104540 A TW 112104540A TW 112104540 A TW112104540 A TW 112104540A TW 202340930 A TW202340930 A TW 202340930A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- retention
- cache
- cache line
- time
- Prior art date
Links
- 238000005457 optimization Methods 0.000 title 1
- 230000014759 maintenance of location Effects 0.000 claims abstract description 222
- 230000015654 memory Effects 0.000 claims abstract description 65
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims abstract description 37
- 238000004519 manufacturing process Methods 0.000 abstract description 5
- 238000006073 displacement reaction Methods 0.000 abstract description 3
- 238000003860 storage Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003993 interaction Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/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
- 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/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory 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/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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- 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/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本案之實施例包括用於處理單元中的快取記憶體替換的技術。在第一時間偵測將第一資料儲存至快取記憶體的第一快取列的第一資料產生操作。作為該第一資料產生操作的結果,將該第一快取列的保持狀態更新至第一保持級別。基於該第一保持級別,增加對該第一快取列中的第一資料的移位的保護。在第一時間之後的第二時間偵測從第一快取列擷取第一資料的第一資料消費操作。作為該第一資料消費操作的結果,將該第一快取列的該保持狀態更新至第二保持級別,該第二保持級別是比第一保持級別低的一保持級別。
Description
本案係關於計算系統。更特定言之,本案係關於用於管理快取記憶體使用的技術。
在現代電腦系統架構中,資料流的串流可包括在生產者與消費者之間對資料的涉及電腦系統的快取記憶體的頻繁交互。快取記憶體為可耦接至處理器並且可形成為製造該處理器的製程的一部分的高速記憶體,例如,使用相同晶粒或其中插座可在單個封裝中包含多個晶粒的插座來形成。快取記憶體中可用的資料儲存量可小於其他類型的電腦系統記憶體,但具有較低的讀寫潛時及更高的讀寫頻寬。作為與快取記憶體相關聯的空間約束的結果,對資料輸入及資料輸出的控制可經良好特性化以防止資料交易與資料損失之間的衝突。此類操作可能帶來某些挑戰。例如,在某些情況下,涉及快取記憶體的資料交易經控制以促進資料的主機消費,同時最小化涉及使用其他類型的記憶體儲存或存取資料的交互。
在以下描述中,為達解釋的目的,闡述了眾多實例及特定細節以提供對本案的透徹理解。該等實例及細節不應被解釋為對申請專利範圍的要素或所主張之標的的整體進行不當限制。基於不同申請專利範圍的語言,對熟習該項技術者顯而易見的是,所主張標的可單獨或組合包括該等實例中的一些或所有特徵,並且可進一步包括本文描述的特徵及技術的修改與等同物。
本文之實施例係關於在電腦系統的快取記憶體中的資料替換。本文揭示的特徵減少了處理器系統的快取記憶體中儲存的資料將在消費該經儲存資料之前被永久替換的可能性。本文的一或多個實施例揭示了實施用於儲存資料的快取記憶體的分段的保持狀態。保持狀態係基於電腦系統的元件與記憶體分段的交易來調整。結果,儲存於快取記憶體的分段中的資料可經隔離,以防止過早地替換為其他資料。
第1圖圖示根據一或多個實施例的電腦系統100。電腦系統100包含:處理單元102,其包括一組處理器核心104;快取記憶體106;及控制器108,其控制涉及快取記憶體106的資料交易。在一些實施例中,處理單元102可為系統單晶片,其包括未圖示的額外元件。在一些實施例中,圖示為處理單元100的一部分的元件為在相同插座或相同封裝上的分解矽元件。電腦系統100可進一步包含一或多個硬體加速器110-1、110-2……110-N(統稱為「加速器110」)、一或多個資料源112,及主機記憶體114。
該組處理器核心104的各個核心經配置以獨立於該組處理器核心104的其他核心處理資料。硬體加速器110為硬體模組,其經配置以卸載、預處理、解密或執行其他操作以提高該組處理器核心104的效率。在一些實施例中,硬體加速器110中的一或多者經包括在處理單元102中,例如,硬體加速器110中的一或多者可經形成為其中形成處理單元102的相同製造製程的一部分。在一些實施例中,硬體加速器110中的一或多者可與處理單元102分離。硬體加速器110中的一或多者可經特定地配置(例如,硬連線)以執行一或多個加速程序。加速器110中的一或多者可包括軟體及/或韌體,作為執行的結果,該軟體及/或韌體使得一或多個硬體加速器110如本文所述執行。硬體加速器110與處理單元102通信地耦合,並且在一些實施例中經配置以從快取記憶體106及/或一或多個資料源112擷取資料。
作為非限制性實例,一或多個資料源112可包括網路介面控制器(network interface controller; NIC)、輸入/輸出(input/output; I/O)裝置(例如,滑鼠、鍵盤)、埠及/或周邊裝置。一或多個資料源112可為具有或不具有固有加速能力的I/O裝置。作為非限制性實例,一或多個資料源112可包括儲存裝置,該儲存裝置包含一或多種類型非揮發性(例如,唯讀)記憶體,諸如固態記憶體、硬碟驅動器、電可抹除可程式化唯讀記憶體,及快閃記憶體。主機記憶體114為隨機存取或揮發性記憶體的一區域,該區域由處理單元102可存取或主要對處理單元102可見。
第2圖圖示根據一或多個實施例的,其中電腦系統100之元件管理快取記憶體的第一示例性流程圖200。流程圖200包括涉及一或多個資料源202、快取記憶體204、一或多個處理器核心206,及主機記憶體208的資料交易。主機記憶體208包括涉及參考第1圖所述的主機記憶體114的資料交易。如本文所使用的用語「資料交易」是指資料經產生至快取204或從快取204產生或被另一實體從快取204消費的操作。資料的產生涉及將資料分配至記憶體,而資料的消費涉及從記憶體讀取資料。資料的消費涉及由另一元件讀取快取204的列的請求。然而,並非所有的讀取操作皆為與特殊可替換性屬性相關聯的消費操作,如上所述。
參看第2圖,資料源202執行寫入操作210(例如,寫入-64B),其中向快取204的一列產生資料。處理器核心206發出請求212(例如,讀取-64B)以讀取在寫入操作210中向其產生資料源202的快取204的列。請求212為消費操作,其可包括識別要在快取204中讀取的特定列的資訊。快取204存取與所請求的快取列相關聯的資訊,並確定快取列正在儲存經分配的資料(例如,來自寫入操作210)。結果,快取204暫存快取命中213,並使處理器核206能夠執行讀取操作214,產生從快取204的列到處理器核心206的資料。
在讀取操作214之後,資料源202執行寫入操作216,產生要儲存在快取204的列中的資料。在快取204的列未經另一元件讀取的時間段之後,儲存在快取204的列中的資料可作為由第1圖的控制器108實施的快取替換策略的結果而被逐出。此快取替換策略的非限制性實例是最近最少使用(Least-Recently Used; LRU)策略,其中快取204的未使用列經替換為新資料或被標記為可用於寫入。例如,可執行驅逐操作218,其中產生儲存在快取204的列中的資料或將其寫入主機記憶體208(例如,RAM、ROM)。
此後,處理器核心206發出請求220,以讀取或消費儲存在快取204的列中的資料,資料源202在寫入操作216中寫入該列。快取204確定先前在寫入操作216中產生的資料在快取204的列中不可用,並暫存快取未中222。快取204(例如,經由控制器108)向主機記憶體208發出讀取操作224以擷取在寫入操作216中產生的資料。如第2圖中所示,讀取操作224對應於流程圖200中的消費操作。回應於成功地從主機記憶體208獲得所請求的資料,執行讀取操作226,其中處理器核心206從主機記憶體208讀取資料。
從主機記憶體208讀取資料涉及比從快取204讀取資料更大量的時間和計算資源的使用。由於快取未中220和後續的讀取操作224和226,快取分配的效率顯著降低。在一些情況下,儲存在快取204的列中的資料可能被覆寫或損壞,使得快取分配無效。
第3圖圖示根據一或多個實施例的,其中電腦系統100之元件管理快取記憶體的第二示例性流程圖300。在流程圖300中操作的電腦系統經配置為與在流程圖200中操作的電腦系統不同。更特定言之,流程圖300的電腦系統經配置以實現快取記憶體的各個列的保持狀態。流程圖300資料交易涉及一或多個資料源302、快取記憶體304、一或多個處理器核心306及/或記憶體308。流程圖300的各種特徵大體上類似於關於流程圖200和本文其他處所述的特徵,因此為了簡潔起見省略了對其的進一步描述。
在流程圖300中,資料源302執行寫入操作310(例如,寫入-64B),其中向快取304的一列產生資料。作為寫入操作310的執行的結果,實現了對快取304的列的保持狀態的保持狀態更新312。在保持狀態更新312中,快取列的保持狀態經更新至第一級別,其中儲存在快取304的列中的資料具有增加的保持級別或保護級別,以防止覆寫或刪除快取304的列中資料的內容。例如,與快取304的列相關聯的資料可指示與儲存在快取304的列中的資料相關聯的保持級別。快取記憶體控制器(例如,控制器108)可基於保持級別來控制與快取記憶體304的列的資料交互。
處理器核心306發出請求314(例如,讀取-64B)以讀取在寫入操作310中向其產生資料源302的快取304的列。請求314為消費操作,其可包括識別要在快取304中讀取的特定列的資訊。快取304存取與所請求的快取列相關聯的資訊,並確定快取列正在儲存經分配的資料(例如,來自寫入操作310)。快取304暫存快取命中316並且作為消費操作的結果,實現對快取列的保持狀態的保持狀態更新318。更特定地,保持狀態更新318為減少至快取列的第二保持級別,該第二保持級別低於第一保持級別。保持狀態更新318可由快取記憶體304的控制器(諸如控制器108)執行。
回應於快取命中318,處理器核心306藉由從快取304的列接收相應的讀取資料320來完成讀取操作。在接收到讀取資料320之後,資料源302執行寫入操作322,產生要儲存在快取304的列中的資料。回應於寫入操作322,針對快取304的列的保持狀態級別實施保持狀態更新324,該級別經更新為第一級別,該第一級別是針對快取列中儲存的資料的覆寫或刪除的增加的保持級別。
在快取304的列未經另一元件讀取的時間段之後,處理器核心306發出請求326(例如,讀取-64B)以讀取在寫入操作322中產生資料源302的快取304的列。請求326為消費操作,其可包括識別要在快取304中讀取的特定列的資訊。快取304存取與所請求的快取列相關聯的資訊,並確定快取列正在儲存經分配的資料(例如,來自寫入操作322)。快取304暫存快取命中328,並且作為消費操作的結果,快取304對快取列的保持狀態執行保持狀態更新330。保持狀態更新330為減少至快取列的第二保持級別,該第二保持級別低於第一保持級別。
回應於快取命中328,處理器核心306藉由從快取304的列接收相應的讀取資料328來完成讀取操作。在接收到讀取資料320之後,處理器核心306發出請求334(例如,讀取-64B)以讀取在寫入操作322中向其產生資料源302的快取304的列。請求334為消費操作,其可包括識別要在快取304中讀取的特定列的資訊。快取304存取與所請求的快取列相關聯的資訊,並確定快取列正在儲存經分配的資料(例如,來自寫入操作322)。
快取304暫存快取命中336,並作為消費操作的結果對快取列的保持狀態執行保持狀態更新338。保持狀態更新338為進一步減少至快取列的第三保持級別,該第三保持級別低於第二保持級別。在一些實施例中,第三保持級別是一保持級別,其中儲存在快取列中的資料經指定用於逐出或以其他方式不被隔離以免移除或覆寫。在一些實施例中,可有多於三個保持級別,每一後續級別具有比先前級別更低的保持級別。
在一些實施例中,具有第三保持級別的快取列經轉換至不同的快取替換策略。例如,快取列可經包括在快取記憶體304的快取列集合中,對於該快取列,實現了不同的快取替換策略。該快取替換策略的非限制性實例包括LRU、最近使用的、最不頻繁使用的、後進先出及/或先進先出。回應於快取命中336,處理器核心306藉由從快取304的列接收相應的讀取資料320來完成讀取操作。
第4圖圖示根據一或多個實施例的在電腦系統400中實施的一組資料交易。電腦系統400的元件對應於關於電腦系統100所描述的元件,因此為了簡潔起見省略了對其的進一步描述。電腦系統400中涉及的資料交易包括產生操作和消費操作,如關於流程圖200和300所描述。雖然未示出,但是電腦系統400可包括主機記憶體,諸如關於第1圖論述的主機記憶體114。
在第4圖中,執行寫入操作402,其中資料源404向處理單元408的快取記憶體406的列產生資料。處理單元408的控制器414回應於寫入操作402將快取列的保持狀態410更新至第一保持級別412,如關於第3圖所論述的。保持狀態410可對應於處理單元408的暫存器中的一組位元,該組位元定義應用於快取記憶體406的區域的替換策略。在一些實施例中,處理單元408的控制器414可維持快取記憶體406的各個列的保持狀態410。諸如寫入操作402之類的產生操作的執行可使控制器414設定保持狀態410的經定義狀態。例如,控制器414可回應於對快取列執列的產生操作,將定義的值注入至保持狀態410中。
一些消費操作可能不影響保持狀態410。一些資料可包括相關聯的元資料,其消費操作可不影響保持狀態410。作為非限制性實例,經網路傳輸的資料封包可包括標頭,該標頭指示例如源位址、目的地位址、封包長度和協定識別符。寫入操作402可包括向快取記憶體406的一或多個列產生網路資料封包。處理器核心416可執行讀取操作418,以獲取或消費與網路資料封包相關聯的元資料。讀取操作418可能不影響保持狀態410的第一保持級別412。與電腦系統400相關聯的後續資料交易的執行可基於由處理器核心416經由讀取操作418處理的元資料。
執行讀取操作420,其中在寫入操作402中寫入的資料係由參考第1圖所述的一組加速器422-1、422-2……422-N中的加速器422-2所消費。作為讀取操作420的結果,快取列的保持狀態410經更新為低於第一保持級別412的第二保持級別424。加速器422-2處理在讀取操作420中讀取的資料,諸如藉由使用加速器422-2可存取的密碼金鑰來解密資料以產生經解密資料。執行寫入操作426,其中經處理的資料被產生至快取記憶體406的快取列。對於儲存在寫入操作426中產生的資料的快取列,將保持狀態410更新為第一保持級別412。讀取操作420和寫入操作426可分別去往和來自具有不同記憶體位址的獨立快取列。
處理單元408的第二核心428執行讀取操作430,該讀取操作430消費儲存在快取記憶體406的快取列上的資料。作為讀取操作430的結果,快取列的保持狀態410經更新至第二保持級別424。執行另一讀取操作432,其中儲存在快取列中的資料係由耦合到處理單元408的記憶體436消費。讀取操作432使保持狀態410得以更新到低於第二保持級別434的第三保持級別434。然後,控制器414可將快取列轉換到不同的快取替換策略,諸如本文所述的LRU策略。然後,資料源404可執行寫入操作438,向快取列產生資料並覆寫在讀取操作430和432中消費的資料。
對於本文所述的快取替換策略,具有作為保持狀態410的第二保持級別424的快取記憶體406的快取列可與經由其他快取替換策略(諸如本文所述LRU或MRU策略)的資料寫入隔離。若例如請求額外的快取記憶體空間以完成另一替換策略的資料寫入操作,則儲存在具有第二保持級別424的快取列中的資料可經覆寫、逐出或以其他方式被替換。
具有第一保持級別412作為保持狀態410的快取記憶體406的快取列可與具有第二保持級別424的快取列上的資料寫入隔離。因此,若請求額外的快取記憶體空間來完成另一替換策略的資料寫入操作,並且具有第二保持級別424的所有快取記憶體已經利用,則儲存在具有第一保持級別412的快取列中的資料可經隔離而不被移位。
根據這裡描述的快取替換程序,具有第三保持級別434的快取記憶體406的快取列可經包括在未隔離的快取列集合中。涉及此類快取列的資料交易係根據不同的快取替換程序或策略(例如,LRU、MRU、LIFO)來實現。作為向快取列產生資料的結果,可將此類快取列的保持狀態410更新到第一保持級別412。
在一些實施例中,可能存在多於三個的保持級別。控制器414可回應於偵測到快取列的資料產生而將快取列保持狀態410更新到最高保持級別(例如,第一保持級別412)。對於快取列的某些消費操作(例如,讀取操作),控制器414可減小或減少保持狀態410,直至保持狀態410達到最低保持級別(例如,第三保持級別434)。
第5圖圖示根據一或多個實施例的,用於降低儲存於處理器系統的快取記憶體中的資料將被永久替換的機率的方法500。方法500可由本文所述的一或多個適當實體(諸如電腦系統100的控制器108)執行。方法500包括在502處,偵測將第一資料儲存至複數個快取列中的第一快取列的第一資料產生操作。在502中,控制器108可偵測例如資料源404對快取記憶體406的第一快取列的寫入操作402的執行。
方法500亦包括在504處,作為在502中偵測到的第一資料產生操作的結果,將第一快取列的保持狀態更新到第一保持級別。在504中將第一快取列的保持狀態更新為第一保持級別可包括將控制器414的暫存器設定為定義的值。例如,在504中更新保持狀態可包括由控制器414將分配給保持狀態410的一組位元設定為經定義的值,諸如指示為對應於第4圖中的第一保持級別412的二元值「11」。第一保持級別412為高保持級別,其中在502中產生並儲存於第一快取列中的資料得以保存。
在506處,方法500包括基於將保持狀態更新至第一保持級別來增加對第一快取行中的第一資料的移位的保護。在506中增加對位移的保護可包括增加對覆寫、逐出、刪除或以其他方式改變第一快取行的內容的保護。在一些實施例中,在510中增加對第一資料的移位的保護可包括防止第一快取列中的第一資料的移位。作為實例,控制器414可接收儲存由資料源402獲得的第二資料的請求。控制器414可觀察到第一快取列具有第一保持級別412,並且將第一快取列排除在作為儲存第二資料的候選的考慮之外。控制器414可從具有較低保持級別的另一快取列中逐出資料,如關於第2圖的逐出操作218所討論的。在一些實施例中,增加對移位的保護可包括修改與第一快取列相關聯的數值或標誌。
方法500進一步包括在508處偵測第一資料消費操作以從第一快取列擷取第一資料。508中的第一資料消費操作的偵測可在502中的第一資料產生操作的偵測之後的時間執行。在508中偵測第一資料消費操作可對應於偵測第4圖中的消費操作420或430。
方法500進行以在510處,作為在508中偵測到的第一資料消費操作的結果,將第一快取列的保持狀態更新至第二保持級別。第二保持級別為比第一保持級別低的保持級別,諸如第4圖的第二保持級別424或第三保持級別434。在510中將保持狀態更新為第二保持級別可包括將保持狀態410(例如,處理單元408的暫存器)的值調整定義的量。例如,控制器414可將第一保持級別412的值減少一定義的量(諸如1),以達成具有二元值「01」的第二保持級別424。
在一些實施例中,在510中更新保持狀態可包括將第一資料從第一LRU佇列移動至第二LRU佇列。例如,在508中偵測到第一資料消費操作之後的第一時間,可以將第一資料從用於已寫入但未讀取的資料的專用LRU移動至另一LRU佇列的頂部。然後,在第一時間之後的第二時間,將第一快取列的保持狀態更新為第二保持級別。在該等實施例中,在510中以及在第一時間和第二時間之間的中間時段期間,第一快取列中的第一資料的保持狀態可暫時不同於第二保護級別。
方法500可包括,在512處,基於第二保持級別允許儲存在第一快取列上的第一資料移位。512中的允許可包括基於第二保持級別為第一快取列實施不同的快取替換策略。不同的快取替換策略可為LRU快取替換策略或本文論述的或本領域技藝人士已知的其他此類策略。
第6圖圖示根據一或多個實施例的,用於降低儲存於處理器系統的快取記憶體中的資料將被永久替換的機率的方法。方法600可由本文所述的一或多個適當實體(諸如電腦系統100的控制器108)執行。方法600可在方法500之後或作為方法500的一部分執行。
方法600包括在602處偵測第二資料消費操作以從第一快取列擷取第一資料。在一些實施例中,在602中的第二資料消費操作的偵測是在512中允許儲存在第一快取列上的第一資料移位之前執行。例如,602中的第二資料消費的偵測可在510中更新保持狀態之後並且在512中允許第一資料的移位之前執行。作為另一實例,602中的第二資料消費的偵測可在506中增加對位移的保護之後,但在508中偵測第一資料消費操作之前執行。
方法600進一步包括在604處,作為在602中偵測到的第二資料消費操作的結果,將保持狀態更新至低於第二保持級別的第三保持級別。在604中更新保持狀態可包括將保持狀態410(例如,處理單元408的暫存器)的值調整定義的量。例如,控制器414可將第二保持級別424的值減少一定義的量(諸如1),以達成具有二元值「00」的第三保持級別434。
方法600還包括在606處接收儲存第二資料的請求。該請求可由控制器414藉由電腦系統400中的另一實體(諸如資料源402、加速器422之一者或處理單元408的核心之一者)接收。方法600包括在608處允許第二資料產生操作將接收到的第二資料儲存至第一快取列。作為快取記憶體406的第一快取列的第三保持級別434的結果,控制器414可允許第二資料產生操作。方法600進行以在610處,作為第二資料產生操作的結果,將第一快取列的保持狀態更新至第一保持級別。更特定言之,控制器414將第一快取列的保持狀態410更新為定義的值,諸如與第4圖中的第一保持級別412相對應的二元值「10」。
示例性電腦系統
第7圖圖示根據某些實施例的示例性電腦系統700的簡化方塊圖。電腦系統700可用於實現前述揭示內容中描述的計算設備、系統或伺服器中的任一者。如第7圖中所示,電腦系統700包括一或多個處理器702,該一或多個處理器經由互連子系統704與多個周邊設備通訊。該等周邊設備包括儲存子系統706(包含記憶體子系統708和檔案儲存子系統170)、使用者介面輸入裝置712、使用者介面輸出裝置714及網路介面子系統716。
互連子系統704可提供一種機制,用於使電腦系統700的各種元件及子系統按預期相互通訊。儘管互連子系統704示意性地顯示為單個匯流排,但是匯流排子系統的替代實施例可利用多個匯流排。
網路介面子系統716可用作在電腦系統700與其他電腦系統或網路之間傳遞資料的介面。網路介面子系統716的實施例可包括例如,乙太網路卡、Wi-Fi及/或蜂巢配接器、數據機(電話、衛星、電纜、ISDN等)、數位用戶線(digital subscriber line; DSL)單元,及/或類似者。
使用者介面輸入裝置712可包括鍵盤、指標裝置(例如,滑鼠、軌跡球、觸控板等)、併入顯示器中的觸控式螢幕、音訊輸入裝置(例如語音辨識系統、麥克風等)及其他類型的輸入裝置。通常,術語「輸入裝置」的使用意欲包括用於將資訊輸入電腦系統700的所有可能類型的裝置和機構。
使用者介面輸出裝置714可包括顯示子系統、印表機或諸如音訊輸出裝置等非視覺顯示器。顯示子系統可為例如平板設備,諸如液晶顯示器(liquid crystal display; LCD)或有機發光二極體(organic light-emitting diode; OLED)顯示器。通常,術語「輸出裝置」的使用意欲包括用於從電腦系統700輸出資訊的所有可能類型的裝置和機構。
儲存記憶體706包括記憶體子系統708及檔案/磁碟儲存子系統710。子系統718與720表示非暫時性電腦可讀儲存媒體,該非暫時性電腦可讀儲存媒體可儲存提供本案的實施例的功能的程式碼及/或資料。
記憶體子系統708包括多個記憶體,包括用於在程式執行期間儲存指令和資料的主隨機存取記憶體(random access memory; RAM)718及其中儲存固定指令的唯讀記憶體(read-only memory; ROM)720。檔案儲存子系統710可為程式及資料檔案提供持久性(亦即,非揮發性)儲存,並且可包括磁性或固態硬碟驅動器、光驅以及相關的可移除媒體(例如,CD-ROM、DVD、Blu-Ray等)、基於可移除快閃記憶體的驅動器或卡,及/或本領域已知的其他類型的儲存媒體。處理器702包括可通信地耦合至處理器702的處理器核心的快取記憶體722。
應當瞭解,電腦系統700為說明性的,並且具有比系統700更多或更少的元件的許多其他配置是可能的。
進一步實施例
本案的實施例包括一種處理單元,該處理單元包含包括複數個快取列的快取記憶體。該控制器進一步包含控制器,該控制器耦合至該快取記憶體並且經配置以在第一時間偵測第一資料產生操作,以將第一資料儲存至該複數個快取列中的第一快取列;作為該第一資料產生操作的結果,將該第一快取列的保持狀態更新至第一保持級別;基於該第一保持級別增加對該第一快取列中的該第一資料的移位的保護或防止該第一快取列中的該第一資料的移位;在該第一時間之後的第二時間,偵測從該第一快取列擷取該第一資料的第一資料消費操作;以及作為第一資料消費操作的結果,將第一快取列的保持狀態更新至第二保持級別,該第二保持級別是比該第一保持級別低的保持級別。
在一些實施例中,控制器經配置以基於第二保持級別允許儲存在第一快取列上的第一資料的移位。在一些實施例中,控制器經配置以在第二時間之後的第三時間,偵測從第一快取列擷取第一資料的第二資料消費操作;並且作為該第二資料消費操作的結果,將第一快取列的保持狀態更新至低於第二保持級別的第三保持級別。在一些實施例中,控制器經配置以基於第二保持級別為第一快取列實施不同的快取替換策略。
在一些實施例中,將保持狀態更新至第一保持級別包括將處理單元的暫存器設定為定義的值,並且將保持狀態更新至第二保持級別包括以定義的量調整暫存器中的值。在一些實施例中,控制器經配置以在第二時間之後的第三時間偵測第二資料產生操作,以將第二資料儲存到第一快取列;並且作為第二資料產生操作的結果,將該第一快取列的保持狀態更新到第一保持級別。在一些實施例中,控制器經配置以在第一時間之後和第二時間之前的第三時間接收儲存第二資料的請求;作為第一快取列的第一保持級別的結果,允許第二資料產生操作將第二資料儲存到該複數個快取列中的第二快取列;並且作為第二資料產生操作的結果,將第二快取列的保持狀態更新到第一保持級別。
本案的實施例包括一種方法,該方法包含在第一時間,偵測第一資料產生操作以將第一資料儲存到處理單元的第一快取列;作為第一資料產生操作的結果,將第一快取列的保持狀態更新到第一保持級別;基於該第一保持級別增加對第一快取列中的第一資料的移位的保護或防止第一快取列中的第一資料的移位;在第一時間之後的第二時間,偵測從第一快取列擷取第一資料的第一資料消費操作;以及作為第一資料消費操作的結果,將第一快取列的保持狀態更新到第二保持級別,該第二保持級別是比第一保持級別低的保持級別。
在一些實施例中,該方法包含基於第二保持級別允許儲存在第一快取列上的第一資料的移位。在一些實施例中,該方法包含在第二時間之後的第三時間,偵測從第一快取列擷取第一資料的第二資料消費操作;以及將第一快取列的保持狀態更新到低於第二保持級別的第三保持級別。在一些實施例中,該方法包含基於第二保持級別為第一快取列實施不同的快取替換策略。在一些實施例中,將保持狀態更新為第一保持級別包括將處理單元的暫存器設定為定義的值,並且將保持狀態更新為第二保持級別包括以定義的量調整暫存器中的值。
在一些實施例中,該方法包含在第二時間之後的第三時間,偵測將第二資料儲存到第一快取列的第二資料產生操作;以及作為第二資料產生操作的結果,將該第一快取列的保持狀態更新到第一保持級別。在一些實施例中,該方法包括在第一時間之後和第二時間之前的第三時間,接收儲存第二資料的請求;基於該第一快取列的第一保持級別,允許第二資料產生操作將第二資料儲存到該複數個快取列中的第二快取列;以及作為第二資料產生操作的結果,將第二快取列的保持狀態更新到第一保持級別。
本案的實施例包括一種包含處理單元的電腦系統,該處理單元包括處理器核心、快取記憶體及控制器。電腦系統進一步包括通信地耦合到處理單元的資料源,該控制器經配置以在第一時間偵測第一資料產生操作,以將由資料源提供的第一資料儲存到快取記憶體的第一快取列;作為第一資料產生操作的結果,將第一快取列的保持狀態更新到第一保持級別;基於該第一保持級別,增加對第一快取列中的第一資料的移位的保護或防止第一快取列中的第一資料的移位;在第一時間之後的第二時間,偵測從第一快取列擷取第一資料的第一資料消費操作;以及作為第一資料消費操作的結果,將該第一快取列的保持狀態更新到第二保持級別,該第二保持級別是比第一保持級別低的保持級別。
在一些實施例中,控制器經配置以在第一時間之後和第二時間之前的第三時間,偵測涉及儲存在第一快取列上的第一資料的第二資料消費操作;以及作為第二資料消費操作的結果,維持第一快取列的第一保持級別。在一些實施例中,第二資料消費操作涉及第一資料的元資料的讀取操作。在一些實施例中,控制器經配置以在第二時間之後的第三時間偵測第二資料消費操作,在該操作中第一處理器核心從第一快取列讀取第一資料;並且作為該第二資料消費操作的結果,將第一快取列的保持狀態更新到低於第二保持級別的第三保持級別。
在一些實施例中,控制器經配置以基於第二保持級別允許儲存在第一快取列上的第一資料的移位。在一些實施例中,控制器經配置以在第一時間之後和第二時間之前的第三時間接收儲存第二資料的請求;作為第一快取列的第一保持級別的結果,允許第二資料產生操作將第二資料儲存到該複數個快取列中的第二快取列;並且作為第二資料產生操作的結果,將第二快取列的保持狀態更新到第一保持級別。
上文描述說明本案的各種實施例以及該等實施例的態樣可如何實施的實例。上述實例及實施例不應被認為是唯一的實施例,並且經呈現以說明如以下申請專利範圍所定義的本案的靈活性及優點。例如,儘管已經針對特定的製程流程和步驟描述了某些實施例,但是本領域技藝人士應當清楚,本案的範圍並不嚴格限於所描述的流程和步驟。描述為順序的步驟可並列執行,步驟的順序可變化,並且步驟可經修改、組合、添加或省略。作為另一實例,儘管已經使用硬體及軟體的特定組合來描述了某些實施例,但應當認識到,硬體和軟體之間的其他組合亦是可能的,並且經描述為在軟體中實現的特定操作亦可在硬體中實現,反之亦然。
因此,說明書及附圖被認為是說明性的而非限制性的。其他佈置、實施例、實現及等同物對於本領域技藝人士而言將是顯而易見的,並且可在不脫離如以下申請專利範圍中闡述的本案的精神和範圍的情況下使用。
100:電腦系統
102:處理單元
104:處理器核心
106:快取記憶體
108:控制器
110-1:硬體加速器
110-2:硬體加速器
110-N:硬體加速器
112:資料源
200:流程圖
202:資料源
204:快取記憶體
206:處理器核心
208:主機記憶體
210:行寫入操作
212:請求
213:快取命中
214:讀取操作
216:寫入操作
218:驅逐操作
220:請求
222:快取未中
224:讀取操作
226:讀取操作
300:流程圖
302:資料源
304:快取記憶體
306:處理器核心
308:記憶體
310:寫入操作
312:保持狀態更新
314:請求
316:快取命中
318:保持狀態更新
320:讀取資料
322:寫入操作
324:保持狀態更新
326:請求
328:快取命中
330:保持狀態更新
334:請求
336:快取命中
338:保持狀態更新
400:電腦系統
402:寫入操作
404:資料源
406:快取記憶體
408:處理單元
410:保持狀態
412:第一保持級別
414:控制器
416:處理器核心
418:讀取操作
420:讀取操作
422-1:加速器
422-2:加速器
422-N:加速器
424:第二保持級別
426:寫入操作
428:第二核心
430:讀取操作
432:讀取操作
434:第三保持級別
436:記憶體
438:寫入操作
500:方法
502:步驟
504:步驟
506:步驟
508:步驟
510:步驟
512:步驟
600:方法
602:步驟
604:步驟
606:步驟
608:步驟
610:步驟
700:電腦系統
702:處理器
704:互連子系統
706:儲存子系統
708:記憶體子系統
710:檔案儲存子系統
712:使用者介面輸入裝置
714:使用者介面輸出裝置
716:網路介面子系統
718:子系統
720:子系統
第1圖圖示根據一或多個實施例的示例性電腦系統。
第2圖圖示根據一或多個實施例的,其中第1圖的電腦系統之元件管理快取記憶體的第一示例性流程圖。
第3圖圖示根據一或多個實施例的,其中第1圖的電腦系統之元件管理快取記憶體的第二示例性流程圖。
第4圖圖示根據一或多個實施例的,在第1圖的電腦系統中實施的一組資料交易。
第5圖圖示根據一或多個實施例的,用於降低儲存於處理器系統的快取記憶體中的資料將被永久替換的機率的方法。
第6圖圖示根據一或多個實施例的,用於降低儲存於處理器系統的快取記憶體中的資料將被永久替換的機率的方法。
第7圖圖示根據一或多個實施例的示例性電腦系統的簡化方塊圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記)
無
300:流程圖
302:資料源
304:快取記憶體
306:處理器核心
308:記憶體
310:寫入操作
312:保持狀態更新
314:請求
316:快取命中
318:保持狀態更新
320:讀取資料
322:寫入操作
324:保持狀態更新
326:請求
328:快取命中
330:保持狀態更新
334:請求
336:快取命中
338:保持狀態更新
Claims (20)
- 一種處理單元,包含: 快取記憶體,包括複數個快取列;以及 一控制器,耦接至該快取記憶體並且經配置以: 在一第一時間,偵測將第一資料儲存至該複數個快取列中的一第一快取列的一第一資料產生操作; 作為該第一資料產生操作的結果,將該第一快取列的一保持狀態更新至一第一保持級別; 基於該第一保持級別,增加對該第一快取列中的該第一資料的移位的保護; 在該第一時間之後的一第二時間,偵測從該第一快取列擷取該第一資料的一第一資料消費操作;以及 作為該第一資料消費操作的結果,將該第一快取列的該保持狀態更新至一第二保持級別,該第二保持級別是比該第一保持級別低的一保持級別。
- 如請求項1所述之處理單元,該控制器經配置以: 基於該第二保持級別,允許儲存在該第一快取列上的該第一資料的移位。
- 如請求項1所述之處理單元,該控制器經配置以: 在該第二時間之後的一第三時間,偵測從該第一快取列擷取該第一資料的一第二資料消費操作;以及 作為該第二資料消費操作的結果,將該第一快取列的該保持狀態更新至與該第二保持級別不同的一第三保持級別。
- 如請求項1所述之處理單元,該控制器經配置以: 基於該第二保持級別為該第一快取列實施一不同的快取替換策略。
- 如請求項1所述之處理單元,其中將保持狀態更新至該第一保持級別包括將該處理單元的一暫存器設定為一定義的值,並且將該保持狀態更新至該第二保持級別包括以一定義的量調整該暫存器中的該值。
- 如請求項5所述之處理單元,該控制器經配置以: 在該第二時間之後的一第三時間,偵測儲存第二資料至該第一快取列的一第二資料產生操作;以及 作為該第二資料產生操作的結果,將該第一快取列的該保持狀態更新至該第一保持級別。
- 如請求項1所述之電腦系統,該控制器經配置以: 在第一時間之後和該第二時間之前的一第三時間,接收儲存第二資料的一請求; 作為該第一快取列的該第一保持級別的結果,允許一第二資料產生操作將該第二資料儲存到該複數個快取列中的一第二快取列;以及 作為該第二資料產生操作的結果,將該第二快取列的一保持狀態更新到該第一保持級別。
- 一種方法,包含以下步驟: 在一第一時間,偵測將第一資料儲存至一處理單元的一第一快取列的一第一資料產生操作; 作為該第一資料產生操作的結果,將該第一快取列的一保持狀態更新至一第一保持級別; 基於該第一保持級別,增加對該第一快取列中的該第一資料的移位的保護; 在該第一時間之後的一第二時間,偵測從該第一快取列擷取該第一資料的一第一資料消費操作;以及 作為該第一資料消費操作的結果,將該第一快取列的該保持狀態更新至一第二保持級別,該第二保持級別是比該第一保持級別低的一保持級別。
- 如請求項8所述之方法,包含以下步驟: 基於該第二保持級別,允許儲存在該第一快取列上的該第一資料的移位。
- 如請求項8所述之方法,包含以下步驟: 在該第二時間之後的一第三時間,偵測從該第一快取列擷取該第一資料的一第二資料消費操作;以及 將該第一快取列的該保持狀態更新至與該第二保持級別不同的一第三保持級別。
- 如請求項10所述之方法,其中該第三保持級別低於該第二保持級別。
- 如請求項8所述之方法,其中將該保持狀態更新至該第一保持級別之步驟包括以下步驟:將該處理單元的一暫存器設定為一定義的值,並且將該保持狀態更新至該第二保持級別之步驟包括以下步驟:以一定義的量調整該暫存器中的該值。
- 如請求項8所述之方法,包含以下步驟: 在該第二時間之後的一第三時間,偵測儲存第二資料至該第一快取列的一第二資料產生操作;以及 作為該第二資料產生操作的結果,將該第一快取列的該保持狀態更新至該第一保持級別。
- 如請求項8所述之方法,包含以下步驟: 在該第一時間之後和該第二時間之前的一第三時間,接收儲存第二資料的一請求; 基於該第一快取列的該第一保持級別,允許一第二資料產生操作將該第二資料儲存到該複數個快取列中的一第二快取列;以及 作為該第二資料產生操作的結果,將該第二快取列的一保持狀態更新到該第一保持級別。
- 一種電腦系統,包含: 一處理單元,包括一處理器核心、快取記憶體及一控制器;以及 一資料源,通信地耦合到該處理單元,該控制器經配置以: 在一第一時間,偵測將由該資料源提供的第一資料儲存至該快取記憶體的一第一快取列的一第一資料產生操作; 作為該第一資料產生操作的結果,將該第一快取列的一保持狀態更新至一第一保持級別; 基於該第一保持級別,增加對該第一快取列中的該第一資料的移位的保護; 在該第一時間之後的一第二時間,偵測從該第一快取列擷取該第一資料的一第一資料消費操作;以及 作為該第一資料消費操作的結果,將該第一快取列的該保持狀態更新至一第二保持級別,該第二保持級別是比該第一保持級別低的一保持級別。
- 如請求項15所述之電腦系統,該控制器經配置以: 在該第一時間之後和該第二時間之前的一第三時間,偵測涉及儲存在該第一快取列上的該第一資料的一第二資料消費操作;以及 作為該第二資料消費操作的結果,維持該第一快取列的該第一保持級別。
- 如請求項16所述之電腦系統,其中該第二資料消費操作涉及該第一資料的元資料的一讀取操作。
- 如請求項15所述之電腦系統,該控制器經配置以: 在該第二時間之後的一第三時間,偵測其中一第一處理器核心從該第一快取列讀取該第一資料的一第二資料消費操作;以及 作為該第二資料消費操作的結果,將該第一快取列的該保持狀態更新至與該第二保持級別不同的一第三保持級別。
- 如請求項15所述之電腦系統,該控制器經配置以: 基於該第二保持級別,允許儲存在該第一快取列上的該第一資料的移位。
- 如請求項15所述之電腦系統,該控制器經配置以: 在第一時間之後和該第二時間之前的一第三時間,接收儲存第二資料的一請求; 作為該第一快取列的該第一保持級別的結果,允許一第二資料產生操作將該第二資料儲存到該複數個快取列中的一第二快取列;以及 作為該第二資料產生操作的結果,將該第二快取列的一保持狀態更新到該第一保持級別。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/706,044 US20230305968A1 (en) | 2022-03-28 | 2022-03-28 | Cache replacement policy optimization for producer-consumer flows |
US17/706,044 | 2022-03-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202340930A true TW202340930A (zh) | 2023-10-16 |
Family
ID=85283810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW112104540A TW202340930A (zh) | 2022-03-28 | 2023-02-09 | 針對生產者-消費者流程的快取替換策略最佳化 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230305968A1 (zh) |
TW (1) | TW202340930A (zh) |
WO (1) | WO2023191934A1 (zh) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542966B1 (en) * | 1998-07-16 | 2003-04-01 | Intel Corporation | Method and apparatus for managing temporal and non-temporal data in a single cache structure |
GB0603552D0 (en) * | 2006-02-22 | 2006-04-05 | Advanced Risc Mach Ltd | Cache management within a data processing apparatus |
US8583874B2 (en) * | 2010-12-14 | 2013-11-12 | Lsi Corporation | Method and apparatus for caching prefetched data |
US9477600B2 (en) * | 2011-08-08 | 2016-10-25 | Arm Limited | Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode |
US20140115260A1 (en) * | 2012-10-18 | 2014-04-24 | Oracle International Corporation | System and method for prioritizing data in a cache |
US10445253B2 (en) * | 2016-04-20 | 2019-10-15 | International Business Machines Corporation | Cost effective service level agreement data management |
US10289565B2 (en) * | 2017-05-31 | 2019-05-14 | Apple Inc. | Cache drop feature to increase memory bandwidth and save power |
US10353829B2 (en) * | 2017-06-30 | 2019-07-16 | Dell Products, Lp | System and method to account for I/O read latency in processor caching algorithms |
KR20200116372A (ko) * | 2019-04-01 | 2020-10-12 | 에스케이하이닉스 주식회사 | 저장 장치, 컨트롤러 및 컨트롤러의 동작 방법 |
US11169927B2 (en) * | 2019-11-22 | 2021-11-09 | EMC IP Holding Company LLC | Efficient cache management |
-
2022
- 2022-03-28 US US17/706,044 patent/US20230305968A1/en active Pending
-
2023
- 2023-01-17 WO PCT/US2023/010885 patent/WO2023191934A1/en unknown
- 2023-02-09 TW TW112104540A patent/TW202340930A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023191934A1 (en) | 2023-10-05 |
US20230305968A1 (en) | 2023-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7091203B2 (ja) | メモリシステムおよび制御方法 | |
US7380065B2 (en) | Performance of a cache by detecting cache lines that have been reused | |
US6393525B1 (en) | Least recently used replacement method with protection | |
JP2017138852A (ja) | 情報処理装置、記憶装置およびプログラム | |
US8583874B2 (en) | Method and apparatus for caching prefetched data | |
US20110173393A1 (en) | Cache memory, memory system, and control method therefor | |
US8112589B2 (en) | System for caching data from a main memory with a plurality of cache states | |
US20120246410A1 (en) | Cache memory and cache system | |
US20110320720A1 (en) | Cache Line Replacement In A Symmetric Multiprocessing Computer | |
US10185619B2 (en) | Handling of error prone cache line slots of memory side cache of multi-level system memory | |
US20110167224A1 (en) | Cache memory, memory system, data copying method, and data rewriting method | |
JP6630449B2 (ja) | 他のキャッシュでのエントリの可用性に基づくキャッシュエントリの置換 | |
CN110018971B (zh) | 缓存替换技术 | |
TWI652576B (zh) | Memory system and processor system | |
US20180095884A1 (en) | Mass storage cache in non volatile level of multi-level system memory | |
JP4888839B2 (ja) | キャッシュメモリを備えるベクトル計算機システム、及びその動作方法 | |
US20210056030A1 (en) | Multi-level system memory with near memory capable of storing compressed cache lines | |
JP7072573B2 (ja) | 非割り当てキャッシュポリシー | |
US20080052467A1 (en) | System for restricted cache access during information transfers and method thereof | |
CN107506139A (zh) | 一种面向相变存储器的写请求优化装置 | |
TW202340930A (zh) | 針對生產者-消費者流程的快取替換策略最佳化 | |
JP2011248389A (ja) | キャッシュメモリ、キャッシュメモリシステム | |
JP6093322B2 (ja) | キャッシュメモリおよびプロセッサシステム | |
US9760488B2 (en) | Cache controlling method for memory system and cache system thereof | |
JP2010176305A (ja) | 情報処理装置およびデータ記憶装置 |