TW201717040A - 用於具有調適分割之一共用快取之系統及方法 - Google Patents
用於具有調適分割之一共用快取之系統及方法 Download PDFInfo
- Publication number
- TW201717040A TW201717040A TW105133396A TW105133396A TW201717040A TW 201717040 A TW201717040 A TW 201717040A TW 105133396 A TW105133396 A TW 105133396A TW 105133396 A TW105133396 A TW 105133396A TW 201717040 A TW201717040 A TW 201717040A
- Authority
- TW
- Taiwan
- Prior art keywords
- cache
- component
- obsolete
- cache line
- bank
- 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/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/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- 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/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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
- G06F12/127—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning using additional replacement algorithms
-
- 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/0864—Addressing 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
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/1048—Scalability
-
- 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/601—Reconfiguration of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本發明提供一種快取控制器,其調適性地分割一共用快取。該調適性分割快取控制器包括回應於用戶端存取請求及各種參數之標記比較及過時邏輯以及選擇邏輯。向一組件快取指派一目標佔用數,其與一當前佔用數進行比較。對過時快取行之一條件性識別用以管理儲存於該共用快取中之資料。當識別出一衝突或快取遺漏時,選擇邏輯識別用於較佳地在被識別為過時之快取行之間替換的候選者。對於每組件快取之固定數目個儲體,將各快取行指派給一儲體。依據該目標佔用數將所分配快取行指派給一儲體。在填充了所選數目個儲體之後,後續分配使得將最舊快取行標識為過時。在撤銷確證快取行之各別組件快取作用中指示符時,將該等快取行視為過時。
Description
用以服務計算系統中之多個用戶端程序或用戶端應用程式(「用戶端」)的快取分割具有若干益處。分割區大小可變化以匹配用戶端之效能要求。用戶端經歷穩健的效能,此係因為其私用快取中之資料由於由其他用戶端起始之存取而不經受收回。 然而,此等益處由於由實現當前快取分割之方式外加的限制而不會如其可能的那般大。計算裝置之一些習知設計包括具有不同類型之多種處理器(諸如中央處理單元、圖形處理單元、顯示控制器、硬體加速器等)及/或具有多個核心以支援對於特定計算裝置所要之各種主要及周邊功能的處理器。此等設計常常進一步整合類比、數位及射頻電路或其他專用電路以在單個矽基板上實現特定功能,且通常稱作系統單晶片(SoC)。 當前,可僅橫跨快取通路或使用通路分割與集合分割兩者之組合分割快取,該等選項皆為有限的。當僅實施通路分割時,快取分割區數目受到快取通路之數目限制,且向快取分割區添加關聯性以減小快取衝突會減小可能快取分割區之最大數目。最小通路分割區大小係由關聯性判定。舉例而言,具有8個通路(亦即,8通路關聯)之8 MB快取的最小分割區為1 MB。又,使得能夠使用較小快取分割區可能引起快取空間之損失。使用相同實例,儲存於最小1 MB快取分割區中之512 KB的資料將在快取分割區中產生512 KB之未使用空間。 集合分割維持高關聯性且提供較大靈活性,但產生可能需要複雜解決方案以成功地進行管理之資料一致性管理問題,此係因為對集合尺寸中之快取調整大小並非輕而易舉的任務。集合分割與基線集合關聯快取一起工作。然而,集合分割並不與偏斜關聯快取結構一起工作。 在圖1中說明通路分割。快取儲存區1包括可由N個通路及M個集合單獨地定址之可定址記憶體區段的陣列,其中N及M為正整數。如圖1中進一步指示,快取儲存區1包括8個通路及8個集合,且分段成快取分割區2、3及4,其中快取分割區2包括4×8個可定址區段之容量,快取分割區3包括2×8個可定址區段,且快取分割區4包括2×8個可定址區段。 在圖2中說明集合及通路分割。快取儲存區5包括可由N個通路及M個集合單獨地定址之可定址記憶體區段的陣列,其中N及M為正整數。如圖2中進一步指示,快取儲存區5包括8個通路及8個集合,且分段成快取分割區6、7及8,其中快取分割區6包括4×4個可定址區段之容量,快取分割區7包括2×1個可定址區段,且快取分割區8包括1×8個可定址區段。 組合式集合/通路分割方案之有效性為可疑的,其超出相對小數目個粗糙粒度及高度自訂解決方案。當產生、刪除組件快取及對其調整大小時,必須隨時間推移操控且管理經集合/通路分割之快取的複雜幾何表示。因此,集合/通路分割方法不可擴展。 因此,存在對於用於動態地管理快取分割區之改良型機制的需要。
揭示用於調適性地分割一共用快取之計算系統及方法的替代性實施例。實例實施例說明硬體元件,包括儲存暫存器、互連件及可部署於一計算裝置中之一改良型快取控制器中的邏輯電路。 另一實例實施例包括一種計算裝置。該計算裝置包括一處理器、一共用快取,及一共用或調適性分割快取控制器。該共用快取為該處理器提供一資料儲存資源。該調適性分割快取控制器以通信方式耦接至該處理器及該共用快取。該調適性分割快取控制器包括一輸入埠、暫存器、每通路一個標記比較及過時邏輯模組,及一選擇邏輯模組。該輸入埠自在該電腦裝置上執行或與其通信之一用戶端接收存取請求。該等暫存器為該共用快取之所要數目個組件快取或區段提供對操作參數之資料儲存。該標記比較及過時邏輯耦接至該等暫存器且經配置以接收對資訊已儲存於該共用快取中之一特定快取行中的經過時間之一量度、記錄一過時條件且條件性地更新一儲體指標。該選擇邏輯耦接至該標記比較及過時邏輯及該等暫存器。該選擇邏輯經配置以條件性地識別待在該共用快取中替換之一替換候選者。 另一實例實施例為一種用於調適性地分割一共用快取之方法。該方法包含以下步驟:儲存界定該共用快取中之整數數目個組件快取的態樣之參數,其中該整數數目個組件快取中的至少一者與包括一目標佔用數及一佔用數計數之一組參數相關聯;將對應於該整數數目個組件快取內之一組件快取的一唯一識別符應用於用戶端請求;回應於將用戶端資料儲存於該共用快取中之用戶端請求,使用儲存於該組參數中之資訊來進行快取行分配,其中當分配一快取行時,遞增一相關聯佔用數計數;及使用儲存於該組參數中之該資訊來識別用於收回的候選快取行,其中當收回一快取行時,遞減該相關聯佔用數計數。 在另一實施例中,一種調適性分割控制器包括暫存器、標記比較及過時邏輯以及選擇邏輯。該等暫存器儲存一共用快取內之所要數目個組件快取的操作參數。該標記比較及過時邏輯耦接至該等暫存器,且接收一快取位址及識別該共用快取中之一快取行的一唯一組件快取識別符。回應於一操作模式輸入,該標記比較及過時邏輯產生對資訊已儲存於該共用快取中之一特定快取行中的經過時間之一量度、條件性地記錄一過時條件、一有效條件且更新一儲體指標。該選擇邏輯耦接至該標記比較及過時邏輯以及該等暫存器。該選擇邏輯經配置以接收對資訊已儲存於該共用快取中之該特定快取行中的經過時間之該量度、該唯一組件快取識別符及一優先級指示符。該選擇邏輯根據該過時條件、一有效條件及該組件快取識別符而識別待在該共用快取中替換之一候選快取行。 在一替代性實施例中,該新穎快取控制器及方法之部分可由一種非暫時性處理器可讀媒體實現,該非暫時性處理器可讀媒體在其上儲存有當執行時引導一處理器及一調適性分割快取控制器執行操作之處理器可執行指令。該等操作包括:界定組態參數、佔用數參數及時間相關參數,包括一唯一識別符、一目標佔用數、一佔用數計數及儲體指標之一整數數目;自一用戶端應用程式識別一共用快取存取請求;產生對資訊已儲存於一系統快取中之一特定快取行中的經過時間之一量度;記錄一過時條件;條件性地更新一儲體指標;及條件性地識別待在該系統快取中替換之一替換候選者。
本文中使用詞語「例示性」以意謂「充當實例、例子或說明」。在本文中被描述為「例示性」之任何態樣未必應被認作比其他態樣較佳或有利。 在此描述中,術語「應用程式」亦可包括具有可執行內容之檔案,諸如:對象程式碼、指令碼、位元組碼、標示語言檔案以及修補程式。另外,本文中所提及之「應用程式」亦可包括在本質上不可執行之檔案,諸如可能需要打開之文獻或需要存取之其他資料檔案。 將參考附圖來詳細地描述各種態樣。在任何可能之處,貫穿圖式將使用相同參考數字指代相同或類似部分。對特定實例及實施之參考係出於說明性目的,且並不意欲限制本發明之系統及方法或申請專利範圍之範疇。 術語「計算裝置」與「行動裝置」在本文中可互換地使用以指以下各者中之任一者或全部:蜂巢式電話、智慧型電話、個人或行動多媒體播放器、個人資料助理(PDA)、膝上型電腦、平板電腦、智慧筆記型電腦、超級本、掌上型電腦、無線電子郵件接收器、具多媒體網際網路功能之蜂巢式電話、無線遊戲控制器及包括記憶體之類似個人電子裝置,及可程式化處理器。 儘管各種態樣特別適用於行動計算裝置(諸如智慧型電話,其具有有限能量資源),但各態樣大體上適用於實施複數個記憶體裝置且其中能效為關注點之任何電子裝置。因此,調適性分割快取控制器及方法可應用於以桌上型及機架安裝型外觀尺寸所配置之計算裝置中,計算裝置通常僅在其他電源不可用時才使用電池。 術語「系統單晶片」(SoC)在本文中用以指通常(但非排他性地)包括硬體核心、記憶體及通信介面之一組互連的電子電路。硬體核心可包括多種不同類型的處理器,諸如通用處理器、中央處理單元(CPU)、數位信號處理器(DSP)、圖形處理單元(GPU)、加速處理單元(APU)、輔助處理器、單核心處理器及多核心處理器。硬體核心可進一步體現其他硬體及硬體組合,諸如場可程式化閘陣列(FPGA)、特殊應用積體電路(ASIC)、其他可程式化邏輯裝置、離散閘邏輯、電晶體邏輯、效能監視硬體、看門狗硬體及時間參考。積體電路可經組態使得積體電路之組件駐留於單塊半導體材料(諸如矽)上。 術語「內容」在本文中用以描述具有可執行內容之檔案,諸如:目標碼、指令碼、位元組碼、標示語言檔案及修補程式。此外,本文中所提及之「內容」亦可包括在本質上不可執行之檔案,諸如需要存取之資料檔案或資料值。 如在本說明書中所使用,術語「組件」、「模組」、「系統」及類似者意欲指代電腦相關實體,其為硬體、韌體、硬體與軟體之組合、軟體或執行中之軟體中的任一者。舉例而言,組件可為(但不限於)在處理器上執行之處理程序、處理器、物件、可執行體、執行緒、程式及/或電腦。藉助於說明,在計算裝置上執行之應用程式及該計算裝置兩者皆可為組件。一或多個組件可駐留於處理程序及/或執行緒內,且一組件可位於一個電腦上及/或分佈於兩個或多於兩個電腦之間。另外,此等組件可自上面儲存有各種資料結構之各種處理器可讀媒體執行。組件可(諸如)根據具有一或多個資料封包的信號(例如,來自藉助於該信號與在本端系統、分散式系統中的另一組件及/或跨越網路(諸如網際網路)與其他系統互動之一個組件的資料)藉助於本端及/或遠端處理程序而通信。 如在本說明書中所使用,術語「調適性」描述且包括可在多個用戶端之間不存在並行時增長超出目標佔用數但在多個用戶端之間存在並行使用之情況下保持接近目標佔用數的快取。調適性分割快取控制器將保證各組件快取之最小佔用數,不論相對並行性如何。此外,組件快取可在並行性低時機會性地佔用額外儲存空間,從而引起增大之效能。因此,在一些實施例中,調適性分割快取控制器可藉由動態地調整不存在組件快取參數的軟件額外負擔及干預來實現較佳效能。 一實例實施例包括一種調適性分割快取控制器。該調適性分割快取控制器包括暫存器、標記比較及過時邏輯模組以及犧牲者選擇邏輯模組。每通路存在一個標記比較及過時邏輯。該等暫存器經配置以儲存共用快取之所要數目個組件快取的一組操作參數。各狀態邏輯模組以通信方式耦接至暫存器,且經配置以接收與向快取所呈現之異動相關聯的快取位址、唯一組件快取識別符及視情況選用的特定屬性。各標記比較及過時邏輯模組回應於當前儲體指標、溢位位元、作用中位元、優先級層級及替換策略模式而產生對資訊已儲存於共用快取中之特定快取行中的經過時間之量度、記錄過時條件且根據替換策略模式而更新儲體指標。在某些條件下,准許所識別組件快取超出各別所指派目標佔用數。犧牲者選擇邏輯以通信方式耦接至標記比較及過時邏輯模組及暫存器。犧牲者選擇邏輯經配置以並行地自各標記比較及過時邏輯模組接收對資訊已儲存於共用快取中之特定快取行中的經過時間之量度、組件快取識別符、優先級層級、過時及有效條件,且根據犧牲者選擇演算法而識別待在共用快取中替換之候選快取行。選擇演算法將優先選擇非有效候選者,否則選擇過時候選者,否則選擇較低優先級候選者,否則選擇具有相同組件快取識別符之最舊候選者,否則不選擇犧牲者。 圖3說明一系統,其包括與適合於與各種態樣一起使用之遠端電腦50通信之計算裝置10。計算裝置10包括具有處理器14、記憶體16、通信介面18及儲存介面20之SoC 12。計算裝置10進一步包括諸如有線或無線數據機之通信組件22、儲存組件24、用於建立至無線網路30之無線連接32的天線26及/或用於連接到至網際網路40之有線連接44的網路介面28。處理器14可包括多種硬體核心中之任一者以及若干處理器核心。計算裝置10亦可包括一或多個處理器14及兩個或多於兩個SoC 12,藉此增大處理器14及處理器核心之數目。計算裝置10可包括不與SoC 12相關聯之單獨處理器核心14。個別處理器14可為如下文參考圖4所描述之多核心處理器。處理器14可出於特定目的各自組態為可與計算裝置10之其他處理器14相同或不同。處理器14及具有相同或不同組態之處理器核心中的一或多者可一起分組為如下文參考圖5所描述之計算裝置10的一或多個子系統之部分。 SoC 12之記憶體16可為經組態用於儲存資料及處理器可執行碼以供由處理器14存取之揮發性或非揮發性記憶體。在一態樣中,記憶體16可經組態以至少暫時儲存資料結構,諸如用於管理如下文所描述而調適性地分割之快取記憶體的組件快取之表格。如下文進一步詳細論述,處理器核心中之每一者可存取快取記憶體之多個組件快取。 計算裝置10及/或SoC 12可包括經組態以用於各種目的之一或多個記憶體16。在一態樣中,一或多個記憶體16可經組態以專用於以使得資料結構資訊能夠由處理器14存取以用於管理組件快取存取請求之方式儲存用於儲存組件快取資訊之資料結構。當儲存資料結構之記憶體16為非揮發性的時,記憶體16可保持資料結構之資訊,甚至在已切斷計算裝置10之電力之後亦如此。當恢復電力且計算裝置10重啟時,儲存於非揮發性記憶體16中之資料結構的資訊可對計算裝置10可用。 通信介面18、通信組件22、天線26及/或網路介面28可協同工作,以使得計算裝置10能夠經由無線連接32及/或有線網路連接44及包括遠端計算裝置50之網際網路40上的節點而經由無線網路30通信。可使用包括(例如)用於無線通信之射頻頻譜的多種無線通信技術實施無線網路30,以提供連接至網際網路40之計算裝置10,計算裝置10可藉由網際網路與遠端計算裝置50交換資料。 儲存介面20及儲存組件24可協同工作以允許計算裝置10在非揮發性儲存媒體上儲存資料。儲存組件24可經組態成極類似於記憶體16之一態樣,其中儲存組件24可儲存資料結構,使得儲存於資料結構中之資訊可由一或多個處理器14存取。為非揮發性的儲存組件24甚至在已切斷計算裝置10之電力之後亦可保持所儲存資訊。當電力恢復且計算裝置10重啟時,儲存於儲存組件24中之資訊可對計算裝置10可用。儲存介面20可控制對儲存組件24之存取,且允許處理器14自儲存組件24讀取資料及將資料寫入至儲存組件24。 計算裝置10之組件中的一些或全部可以不同方式加以配置及/或組合,同時仍為必要功能提供服務。此外,計算裝置10可不受限於組件中之每一者中的一者,且各組件之多個例項可包括於計算裝置10之各種組態中。 圖4說明適合於實施一態樣之多核心處理器14。多核心處理器14可具有複數個等效處理器核心200、201、202、203。處理器核心200、201、202、203可等效,此係因為單個處理器14的處理器核心200、201、202、203可經組態用於相同目的且具有相同或類似效能特性。舉例而言,處理器14可為通用處理器,且處理器核心200、201、202、203可為等效通用處理器核心。或者,處理器14可為GPU或DSP,且處理器核心200、201、202、203可分別為等效GPU核心或DSP核心。經由製造製程及材料之變化,處理器核心200、201、202、203之效能特性可能在相同多核心處理器14內或在使用相同設計的處理器核心之另一多核心處理器14內在處理器核心之間不同。 在圖4中所說明之實例中,多核心處理器14包括四個處理器核心200、201、202、203 (亦即,處理器核心0、處理器核心1、處理器核心2及處理器核心3)。為易於解釋,本文中之實例可提及圖4中所說明之四個處理器核心200、201、202、203。然而,應注意,圖4中所說明且本文中所描述之四個處理器核心200、201、202、203僅作為一實例而提供,且決不意欲為限制性的。計算裝置10、SoC 12或多核心處理器14可個別地或組合地包括少於或多於本文中所說明且描述之四個處理器核心200、201、202、203。 圖5說明經組態以按自調適性方式將快取記憶體分割成組件快取之SoC 12。SoC 12可包括如上文所描述之多種組件。可使用一些此等組件及額外組件以實施組件快取。舉例而言,經組態以實施組件快取之SoC 12可包括系統集線器300、系統快取302、系統快取控制器304、CPU叢集306、協定轉換器308、GPU 310、數據機DSP 312、應用程式DSP 314、記憶體介面316、相機子系統318、視訊子系統320、顯示子系統322、系統晶片上網路(NoC) 324、記憶體控制器326及隨機存取記憶體(RAM) 328。 系統集線器300為SoC 12之組件,SoC 12管理CPU叢集306經由協定轉換器308以及GPU 310、數據機DSP 312及應用程式DSP 314對各種記憶體之存取。如圖5中所說明,系統集線器300進一步管理相機子系統318、視訊子系統320及顯示子系統322經由系統NoC 324對各種記憶體裝置之存取。子系統中之每一者可經由藉由系統NoC 324、記憶體介面316及系統快取控制器324建立之各種路徑存取系統快取302。RAM 328之多個例項經由記憶體控制器326及系統快取控制器324耦接至系統快取302。類似地,GPU 310、數據機DSP 312及應用程式DSP 314中之每一者可經由記憶體介面316及系統快取控制器324存取系統快取302。在一態樣中,系統集線器300可管理對SoC 12之系統快取302以及對RAM 328的存取。可存取各種記憶體之處理器中之一些可包括於CPU叢集306及各種子系統(諸如相機子系統318、視訊子系統320及顯示子系統322)中,且亦可包括其他專用處理器,諸如GPU 310、數據機DSP 312及應用程式DSP 314。 系統快取302可為SoC 12中之用以替換或補充可與各種處理器及/或子系統相關聯之快取記憶體的共用記憶體裝置。系統快取302可集中化SoC 12之快取記憶體資源,以使得各種處理器及子系統可存取系統快取302以讀取及寫入經指定用於重複及/或快速存取之程式命令及資料。系統快取302可儲存來自各種處理器及子系統以及來自計算裝置之其他記憶體裝置(諸如主記憶體(未展示)、RAM 328或其他儲存裝置(例如,固態記憶體模組、硬碟機))的資料。在一態樣中,倘若因為無法定位自系統快取302所請求之項目而發生快取遺漏,則系統快取302可由此等記憶體及儲存裝置加以補充。在一態樣中,系統快取302可用作各種處理器及子系統之高速暫存記憶體。系統快取302可在儲存空間及實體大小上比具有不使用系統快取302之類似架構的SoC之本端快取記憶體的組合小。然而,如本文中進一步描述,系統快取302之管理可允許較大能量節省及SoC 12之相等或較佳效能速度,儘管系統快取之儲存空間及實體大小較小。 在稱作組件快取之分割區中邏輯地管理系統快取302。各組件快取含有藉由組件快取識別符與彼此相關聯之一組有限的快取行。在計算裝置10上在作用中之處理程序或執行緒可在與系統快取控制器304通信時識別組件快取。可藉由使用用於所有由系統快取控制器304接收的不具有組件快取識別符之快取異動(諸如由CPU發出之快取異動)之預設組件快取識別符來將此等異動指派給同一組件快取。 在啟動組件快取之後,根據計算裝置10上之當前工作負荷而根據需求分配屬於組件快取之快取行。系統快取控制器304藉由分配至組件快取之快取行的計數追蹤組件快取使用或佔用數。快取控制器304將組件快取之目標佔用數應用或指派為整數數目個快取行。各別目標佔用數儲存於暫存器中以供由系統快取控制器304使用。當組件快取超出目標佔用數時,組件快取處於溢出狀態。組件快取可藉由將額外快取行添加至組件快取而繼續增長,但將儲存於組件快取中之最舊快取行標識為過時。因此,溢出組件快取將具有至少兩個部分:一最新部分及一過時部分。在一些條件下,甚至最新部分亦可能超出目標佔用數。 過時快取行或過時處理程序之識別由替換策略用以識別用於自組件快取移除的候選快取行。當衝突遺漏發生時,回應於快取分配請求,系統快取控制器304應用替換策略。 系統快取控制器304及用於調適性地分割系統快取302之方法將各快取行指派給稱作儲體之群組。將固定數目個儲體指派給組件快取。出於說明及解釋的目的,使用整數16。應理解,儲體之數目可小於或大於16,此選擇可基於計算裝置10之預計工作負荷或根據其他準則。將唯一儲體指標指派給16個儲體。在一實例實施例中,儲體指標由數字0至15識別,其可由4個位元表示。此相比於可使用粗糙時戳之先前技術為較低數目個位元。在此先前技術中,必須使用大得多數目個位元以減少由混疊造成之年齡遺漏計算的出現。當前電路及模組使用新機制基於過時位元條件來以顯著較低之硬體成本達成相同目標。 一種用於調適性地分割共用快取之實例方法進一步包括將儲體指標及儲體層級計數指派給整數數目個組件快取中之至少一者的步驟,整數數目個組件快取邏輯地劃分成整數數目個儲體。對於定址特定組件快取之快取行分配操作,遞增指派給特定組件快取之儲體層級計數中的儲體層級值。當儲體層級值達到各別組件快取之目標佔用數的固定分率時,遞增儲體指標且重設儲體層級計數。將與所分配快取行相關聯之儲體指標儲存於共用快取中。 此外,對於定址各別組件快取之存取操作,系統快取控制器304識別用於替換的一組候選快取行,且針對該組候選快取行,藉由比較與候選快取行相關聯之儲體指標中的值與各別組件快取之當前儲體值來計算各別年齡。系統快取控制器304取決於各別年齡而判定過時位元條件,且將過時位元條件儲存於共用快取中。與各別組件快取相關聯之該組參數包括最近最少使用參數,其條件性地識別應在何時將來自較舊儲體之快取行移至當前儲體。當快取行自較舊儲體移至當前儲體時,系統快取控制器304設定或確證再新位元。對於引起命中條件之組件快取存取操作,系統快取控制器304條件性地更新儲體指標、過時位元條件及各別組件快取之儲體層級值。當設定或確證最近最少使用參數且儲體指標不等於組件快取當前儲體指標時,再新儲體指標,重設或撤銷確證過時位元條件,且遞增儲體層級值。 對於引起遺漏條件之組件快取存取操作,系統快取控制器304條件性地識別替換候選者。更確切而言,系統快取控制器304將優先級參數指派給組件快取,且在無過時候選者存在時條件性地識別替換候選者。在較佳序列中,包括自任何過時快取行當中、自具有比傳入快取行低或相等優先級之最低優先級快取行及當識別出多個最新替換候選者時,自存在於共用快取中之最舊快取行選擇替換候選者。當識別出多個替換候選者時,系統快取控制器304應用替代性替換候選者識別準則。在一個實例實施例中,替代性替換候選者準則包括識別共用快取302中的預設通路。系統快取控制器304亦將可選分配參數指派給共用快取302中之各別組件快取,且在所識別組件快取未滿時條件性地分配快取行。或者,系統快取控制器304在各別組件快取已滿且設定或確證可選分配參數時不分配快取行。 圖6為說明圖5之系統快取控制器304的組件之示意圖,該等組件使得能夠調適性地分割與系統快取控制器304通信之系統快取302。用於使得能夠在SoC 12上之各種處理器與系統快取302之間通信的習知緩衝器及邏輯電路為一般熟習此項技術者所熟知。為了易於說明及描述調適性分割快取控制器及相關功能而省略此等習知元件。 系統快取控制器304,其在所說明實施例中為調適性分割快取控制器,包括耦接至通信匯流排之輸入/輸出(I/O)埠610,該匯流排將記憶體介面316、記憶體控制器320及協定轉換器308連接至系統快取控制器304。在通信匯流排610上自CPU叢集306、相機子系統318、視訊子系統320、顯示子系統322、GPU 310、數據機DSP 312或應用程式DSP 314中之執行資源上的執行緒或處理程序接收快取初始化及分配請求。如所說明,I/O埠連接件610a將傳入CCID傳達至組件快取暫存器620及選擇邏輯模組640兩者。更新邏輯模組650自組件快取暫存器620接收傳入CCID。在一替代性實施例(未展示)中,更新邏輯模組650可配置有專用連接件以接收傳入CCID。除了傳入CCID以外,亦沿著連接件610b將快取位址傳達至標記比較及過時邏輯模組630。如圖6中所指示,在共用或系統快取302中對於各所識別通路存在標記比較及過時邏輯模組630之一例項。 如圖6中所指示,調適性分割快取控制器304之I/O埠610接收傳入異動之位址及相關聯組件快取識別符(或CCID)。將CCID傳達至一組組件快取暫存器620及更新邏輯模組650。組件快取暫存器620包括用於快取組態參數、組件快取佔用數參數及儲體參數之儲存位置。在表1中呈現實例組件快取參數。調適性分割快取控制器之一重要態樣為經由諸如定義於表1中之參數的參數的設定界定共用快取302中之不同組件快取的不同行為的能力。可添加新特性且可根據需要對於各組件快取調整舊特性,而不影響組件快取用戶端或SoC基礎結構。實例組件快取佔用數參數包括於表2中。在表3中呈現實例儲體或時序參數。將識別系統快取302之一部分的位址轉遞至標記比較及過時邏輯模組630以及選擇邏輯模組640。標記比較及過時邏輯模組630使標記資訊與儲存於系統快取302中之各快取行相關聯或將標記資訊應用於各快取行。在表4中呈現實例標記資訊。
表1
表2
表3
表4 對於各CCID,在匯流排625上將一組信號自組件快取暫存器620傳達至標記比較及過時邏輯模組630a。該等信號包括當前儲體指標、優先級層級、LRU位元以及溢位及作用中條件位元。如所指示,經由匯流排625之多個連接件傳達當前儲體指標及優先級資訊。標記比較及過時邏輯模組630a至630p使用各種輸入以產生快取行已儲存於系統快取302中之年齡或經過時間的量度,以便判定其是否過時。一旦快取行過時,則其保持過時且年齡計算無影響。可逆轉快取行過時條件之僅有情形為當在讀取命中上存取快取行且相關聯組件快取之LRU參數為真時。此外,標記比較及過時邏輯模組630a至630p回應於系統快取302中之當前條件而產生命中、再新及過時條件位元。將再新及命中狀態資訊轉遞至更新邏輯模組650。 如在圖6中進一步指示,針對每個通路沿著匯流排637將有效及過時條件連同組件快取優先級、組件快取識別符及年齡指示符傳達至選擇邏輯模組640。分別與圖7及圖8相關聯而說明且描述標記比較及過時邏輯模組630之一例項的細節及過時程序之一實施例的操作。 如圖6中進一步指示,匯流排637上之信號由選擇邏輯模組640接收,選擇邏輯模組640經配置以使用優先級層級、相對年齡、CCID以及有效及過時條件指示符來識別用於自系統快取302替換的犧牲者或候選者。如所說明實施例中所示,選擇邏輯模組640轉遞所識別或犧牲者CCID以及有效犧牲者及犧牲者存在指示符、命中及再新條件指示符,以上各者被傳達至更新邏輯模組650。更新邏輯模組650經配置以應用組態參數連同自標記比較及過時邏輯模組630接收之命中及再新條件指示符,來更新犧牲者相關聯組件快取及傳入異動相關聯組件快取佔用數參數,包括當前儲體層級及當前儲體指標。 圖7為說明圖6之標記比較及過時邏輯模組630的一實例實施例之示意圖。標記比較及過時邏輯模組630包括SRAM 710,SRAM 710儲存標記資訊、CCID、儲體指標或識別符(BID)以及寫入至系統快取302之各快取行的有效及過時位元。多工器720可控制地基於CCID而轉遞優先級層級。比較器730回應於標記資訊及自輸入/輸出埠610接收之選擇位址位元而產生至「及」閘(AND gate) 732之輸入。「及」閘732之第二輸入係回應於儲存於SRAM 710中之有效狀態條件或有效位元。「及」閘732之輸出識別命中(HIT)條件(亦即,有效資料已在快取302中)。 多工器722回應於儲存於SRAM 710中之組件快取識別符而轉遞當前儲體指標或識別符。當前儲體識別符耦合至比較器740、SRAM 710中之BID儲存區及模數比較器750之X輸入。SRAM 710中之先前所儲存的BID耦合至比較器740之Y輸入及模數比較器750。模數比較器750之輸出提供快取行已存在於快取中之時間的量度或年齡。此量度轉遞比較器752,比較器752識別何時年齡大於或等於整數八。比較器752之輸出耦合至「及」閘754之第一輸入。多工器724將如由CCID引導之當前溢位條件狀態轉遞至「及」閘754之第二輸入。「或」閘(OR gate) 756自「及」閘754之輸出接收如儲存於SRAM 710中之當前過時位元及如由多工器726轉遞之當前作用中狀態的反相版本,多工器726亦根據各各別CCID之作用中指示符而操作。當撤銷啟動(藉由撤銷確證作用中指示符)快取組件時,接著與快取組件相關聯之所有快取行變得過時。「或」閘756之輸出耦合至「及」閘758之第一輸入。 「及」閘734自「及」閘732之輸出接收命中(HIT)狀態信號,且進一步在「及」閘734之第二輸入處接收關於當前所識別組件快取之操作模式的資訊。如圖7中所說明,多工器733可控制地轉遞識別相對應組件快取何時在最近最少使用或LRU操作模式中操作之信號。「及」閘734之輸出耦合至「及」閘758之反相輸入及「及」閘760之第一輸入。「及」閘758之輸出可控制地更新儲存於SRAM 710中之過時條件或過時位元。比較器740識別何時自多工器722轉遞之當前儲體指標不等於儲存於SRAM 710中之儲體指標。比較器740之輸出耦合至「或」閘742之第一輸入。「或」閘742之第二輸入耦合至SRAM 710中之過時位元指示符。當儲體指標不匹配時或當確證過時位元或條件時,「或」閘742將向「及」閘760之第二輸入發送邏輯高,此舉產生再新條件信號。如標記中所指示,當再新條件信號為真時,再新或更新儲存於SRAM 710中之儲體指標。 圖8為說明由圖7之更新邏輯模組實施之過時程序的一實例實施例之時序圖。根據過時程序,將第一所分配快取行指派給第一儲體(例如,儲體0)。當所分配快取行之量等於目標佔用數之所選分率時,將後續分配快取行指派給下一儲體(例如,儲體1)。此程序隨著系統快取302正由資料填入而繼續。當所分配快取行之量等於目標佔用數時,將後續快取行指派給下一儲體,且可使第一儲體中之快取行「過時」。當將新或最新快取行指派給下一後續儲體指標時,可使儲存有第二儲體之快取行過時。當前儲體界定為正指派傳入分配之儲體。在穩定狀態中,當使用儲體指標0至15時,儲體指標K將根據0 <= K<= 15而變化。 將傳入快取行指派給儲體K。儲體指標K及CCID兩者皆儲存有描述調適性分割快取控制器304中之儲存位置的共用快取302中之條件的標記資訊。在所說明實施例中,N = 8, M = 2,且16為正由快取控制器304使用之儲體的總數目。變數N為表示組件快取中的最新儲體之數目的整數。在此等情形下,具有等於X之指標的儲體中之任何快取行可在(K - X)%16 >= N (其中%表示模數運算)時過時。 當已向儲體K指派等於組件快取目標佔用數之1/N的一定量之快取行時,藉由將儲體指標設定成(K + 1)%16來遞增當前儲體指標。如所指示,過時程序標識用於替換的候選者。當衝突遺漏發生時,在過時快取行當中選擇替換候選者,不論過時快取行已與哪一組件快取相關聯。若無過時快取行候選者存在,則取決於組件快取參數而根據優先級方案來選擇替換候選者。在各快取存取之後,即刻針對過時位元或過時條件之指示檢查集合中之所有有效快取行。將正檢查之快取行的儲體ID X與指派有快取行之組件快取的當前儲體指標K比較。若距離(K - X)%16大於或等於8,則將快取行標識為過時。在兩個條件下,忽略比較之結果。在第一條件中,過時快取行將保持過時,不論比較之結果如何。在第二條件中,僅屬於溢出組件快取之快取行過時。若觸控或存取快取行指派至之集合,則將快取行標識為過時。因此,過時強度或頻率將取決於快取活動。 在圖8之所說明時序圖中,存在由儲體指標0至15橫跨橫座標識別之16個儲體。儲體含有具有相同儲體指標之快取行。如所描述,各儲體填充有目標容量/8快取行,其中「/」為除法運算符。對於新啟動之快取,如在時間上隨縱座標下之各集合數目增大的集合0中所指示,所分配快取行當前填充於儲體0中。如亦所描述,一旦儲體0之佔用數達到該儲體之目標佔用數的1/8,則將後續快取行指派給儲體1,且將儲體0中之快取行視為最新的。此累積或增長繼續,直至儲體7達到為儲體7之目標佔用數的1/8分的當前佔用數為止。彼時,將儲體1至7中之快取行視為最新的,將後續分配指派給儲體8,且可使儲體0中之快取行過時。當儲體8達到其組件快取目標佔用數之1/8時,將儲體2至8中之快取行視為最新的,後續分配指派給儲體9,且可使儲體0及儲體1中之快取行過時。當快取已在作用中足夠久且接收到足夠活動以將儲體15填充至其目標佔用數之1/8時,儲體0中之尚未過時的快取行將變得最新。可將新分配的快取行指派給儲體0,且可使儲體1至儲體8中之快取行過時。當情況如此時,將儲體0及儲體9至儲體15中之快取行視為最新的。當儲體0達到目標佔用數之1/8時,將後續快取行指派給儲體1,且可使儲體2至儲體9中之快取行過時。當情況如此時,將儲體0、儲體1及儲體10至儲體15中之快取行視為最新的。 上述方法可一般化成N×M個儲體之陣列,其中存在N個最新儲體及(N - 1)×M個過時儲體,其中N及M為整數。在穩定狀態中,關係式使得對於當前儲體K,0 <= K <= (N*M - 1),當(K - X)%(N*M) >= N時,可使儲體ID X中之快取行過時。當已向儲體K指派等於組件快取目標佔用數之1/N的一定量之快取行時,將當前儲體指標設定為(K + 1)%(N*M)。模擬展示,N = 8及M = 2提供極佳效能,且較大值將或多或少地以用以儲存各快取行之儲體指標資訊的更多記憶體為代價而改良效能。 圖9為說明圖6之選擇邏輯模組640的一實例實施例之示意圖。選擇邏輯模組640接收CCID、優先級識別符位元及所選快取行已在系統快取302中之時間或年齡之量度以及各候選快取行之過時、有效、再新及命中狀態指示符。作為回應,選擇邏輯模組640回應於所識別犧牲者是否存在且有效而條件性地產生或識別犧牲者快取行以及控制信號。自標記比較及過時邏輯模組630傳達之CCID應用於多工器950及比較器902a至902p。比較器902a至902p進一步接收與傳入異動相關聯之傳入CCID,且識別當匹配存在時被標記為「相同CCID向量」之哪一資訊向量被轉遞至多工器918之第一組輸入。 比較器904a至904p經配置以接收自標記比較及過時邏輯模組630轉遞之優先級資訊,且在三個優先級層級中的中等層級存在時提供各別輸出信號。將標記為「中等優先級CCID向量」之所得資訊向量轉遞至多工器918之第二組輸入。「或」邏輯閘914在具有中等層級優先級之CCID存在時將邏輯高信號轉遞至「及」閘916之第一輸入。當傳入CCID具有高優先級(如由在「及」閘916之第二輸入處標記為「高優先級傳入CCID」之連接上的所確證信號表示)時,確證「及」閘916之輸出,其引導多工器918將中等層級優先級CCID向量轉遞至其輸出。否則,當「及」閘916之輸出並非邏輯高時,多工器918將相同CCID資訊向量轉遞至其輸出。將多工器918之輸出轉遞至多工器924之第一組輸入。 比較器906a至906p經配置以接收自標記比較及過時邏輯模組630轉遞之優先級資訊,且在三個優先級層級中的低層級存在於比較器906a至906p之輸出處時提供各別輸出信號。將標記為「低優先級CCID向量」之所得資訊向量轉遞至多工器924之第二組輸入。「或」邏輯閘920在具有低層級優先級之CCID存在時將邏輯高信號轉遞至「及」閘922之第一輸入。當傳入CCID具有中等或低優先級(如由在「及」閘922之第二輸入處標記為「高或中等傳入CCID優先級」之連接上的所確證信號表示)時,「及」閘922之輸出引導多工器924將低層級優先級CCID向量轉遞至其輸出。否則,當不確證「及」閘922之輸出時,多工器924將多工器924之輸出轉遞至其輸出,其輸出連接至所選最舊候選者邏輯模組926之輸入。 所選最舊候選者邏輯模組926進一步在年齡指示符輸入上自各別標記比較及過時邏輯模組630接收年齡值,且使用該各別年齡資訊來判定如自多工器924所接收的所選快取行候選者中之哪些者最舊。將所得資訊向量轉遞至多工器930之第一組輸入。 將由標記為「過時向量」之向量識別的所有過時候選者傳達至「或」閘928之輸入及多工器930之第二組輸入,當確證基於通路的過時指示符中之至少一者時,該向量轉遞至多工器930之輸出,如由「或」閘928之輸出控制。否則,當無候選者被識別為過時時,多工器930將識別最舊快取行資訊之所得資訊向量轉遞至多工器934之第一組輸入。 在各別反相器932a至932p之輸入處應用自標記比較及過時邏輯模組接收之基於通路的有效指示符中之每一者。反相器932之各別輸出在「或」閘933之輸入處加以應用,且提供應用於多工器934之第二組輸入的「無效向量」。「或」閘933識別候選者中之任一者何時無效,且當情況如此時,將在多工器934之第二組輸入處接收之候選者轉遞至其輸出。否則,當無候選者被識別為無效時,「或」閘938之輸出引導多工器934向其輸出轉遞多工器930之輸出。將多工器934之輸出轉遞至多工器942之第一組輸入。 在「或」閘940之輸入處應用自標記比較及過時邏輯模組接收之基於通路的再新指示符中之每一者。「或」閘940之輸出連接至多工器942之控制輸入,且提供經轉遞至更新邏輯模組650之再新輸出信號。當確證再新信號時,將在多工器942之第一組輸入處所接收的標記為「再新向量」之再新資訊向量轉遞至挑選任何邏輯模組946之輸入。否則,當無再新信號確證時,多工器942將多工器934之輸出轉遞至挑選任何邏輯模組946。在一較佳實施例中,挑選任何邏輯模組946選擇具有所選候選者之最左通路,該所選候選者應用於多工器950之控制輸入。當確證再新條件時,多工器950之輸出處的犧牲者CCID對應於經定址快取行之CCID。再新條件指示更新邏輯650更新儲體參數。 如圖9中進一步指示,在「或」閘944之輸入處應用自標記比較及過時邏輯模組630接收之基於通路的命中條件指示符中之每一者。「或」閘944之輸出提供經轉遞至更新邏輯模組650之命中條件輸出信號。 圖10為說明用於調適性地分割共用或系統快取302之方法800的實例實施例之流程圖。方法800開始於區塊802,其中將界定共用快取之所選數目個組件的參數(包括識別符、目標佔用數、佔用數計數及儲體指標)儲存於(諸如)一組組件快取暫存器620及/或同步隨機存取記憶體中。如區塊804中所示,當自共用快取302之各種用戶端接收到系統快取請求時,調適性分割快取控制器304使用所儲存參數及當前快取條件進行快取分配。當分配快取行時,使儲體指標與快取行相關聯,且遞增佔用數計數。同時,或其後儘可能早,如區塊806中所指示,調適性分割快取控制器304使用所儲存當前儲體指標及佔用數計數來識別用於可能自快取收回的快取行。如在區塊806中進一步指示,當收回快取行或自快取移除快取行時,遞減相關聯佔用數計數。如區塊808中所示,在某些條件下,調適性分割快取控制器304准許所識別組件快取超出各別所指派目標佔用數。 圖11為說明計算裝置1100之一實例實施例的示意圖。在所說明實施例中,計算裝置1100包括處理器14,處理器14以通信方式耦接至處理器可讀媒體1200、系統或共用快取302及調適性分割快取控制器304。調適性分割快取控制器304經由輸入/輸出埠610及匯流排1120與處理器14及系統或共用快取302通信。如圖11中進一步所展示,調適性分割快取控制器304包括用於儲存組態參數、時序參數及佔用數參數之組件快取暫存器620。根據匯流排1120上所傳達之信號而轉遞且再新儲存於組件快取暫存器620中之資訊。標記比較及過時邏輯模組630接收儲存於組件快取暫存器620中之資訊以及來自自處理器14所傳達之用戶端請求的位址資訊。標記比較及過時邏輯模組630針對每個通路將一組信號轉遞至選擇邏輯模組640,其識別用於自共用快取302移除的一或多個過時分割區。標記比較及過時邏輯模組630亦產生再新及命中信號且將其傳達至更新邏輯模組650。更新邏輯模組650使用此等信號及關於用於移除之潛在犧牲者的狀態資訊來更新組件快取暫存器620中之資訊,且按選擇條件自共用快取302移除快取行及/或調整共用快取302中之分割區。 計算裝置1100在配置有如所說明及描述之調適性分割快取控制器304時能夠分割系統共用快取302,使得單獨分割區獨立於集合及通路結構。如所說明實施例中所示,系統共用快取302包括三個所識別組件快取。第一組件快取識別符CCID 0具有為16個快取行之目標佔用數,但已利用當前快取條件及計算裝置1100上之工作負荷以在當前佔用22個快取行。第二組件快取識別符CCID 1具有為2個之目標佔用數,但已利用當前快取條件及計算裝置1100上之工作負荷以佔用該組可用快取行中之4個快取行。此外,第三組件快取識別符CCID 2具有為八個快取行之目標佔用數,且在當前使用八個快取行。 圖12為說明儲存於計算裝置中之記憶體16中的處理器可讀媒體1200之一實例實施例的示意圖。如所指示,處理器可讀媒體1200包括儲存位置及邏輯模組或可執行指令之集合,該等指令在由處理器14執行時執行與用於調適性地分割及管理共用或系統快取302之所描述過時、更新及選擇程序相關聯的各種步驟。如在所說明實施例中所指示,儲存位置包括組件快取組態參數1210、佔用數參數1220及時間相關參數1230。如亦指示,邏輯模組包括共用快取存取識別邏輯1240、儲體識別邏輯1250及替換候選者選擇邏輯1260。共用快取存取識別邏輯1240識別用戶端快取請求。儲體處理邏輯1250向快取行指派儲體指標,且追蹤當前組件快取佔用數及快取行已存在於快取中之時間的量度。替換候選者選擇邏輯1260回應於操作參數及快取之使用而以優先化方案識別用於自快取移除的一或多個候選者。如所描述,儲體識別邏輯1250及替換候選者選擇邏輯1260將將經更新資訊儲存於佔用數參數儲存區1220及時間相關參數儲存區1230中。 為了讓計算裝置如所描述一樣起作用,本說明書中所描述之程序或處理流程中的某些步驟自然地先於其他步驟。然而,若所描述步驟之次序不更改所描述功能性,則計算裝置及所描述方法不限於此次序或順序。亦即,已認識到,可在不背離所主張計算裝置及方法之範疇的情況下在其他步驟之前、之後或與其並行(大體上與其同步)執行一些步驟。在一些情況下,可省略或不執行某些步驟。此外,諸如「其後」、「接著」、「接下來」、「隨後」等之詞語並不意欲限制步驟之次序。此等詞語僅用以指導讀者貫穿對例示性方法之描述。 另外,攜帶型、桌上型或伺服器計算裝置內之能量管理領域的一般技術者能夠識別適當硬體及/或電路及/或識別適當邏輯及判定,以基於本說明書而毫不費力地實施所揭示實施例。因此,對一組特定程式碼指令、決策臨限值或詳細硬體裝置之揭示對於對如何製作及使用所揭示計算裝置及操作方法之充分理解而言不被視為必需的。在以上描述中且結合圖式而更詳細地解釋所主張由處理器實現之程序及電路架構之發明性功能性及態樣,圖式可說明各種處理流程。 在如上文所指示之一或多個例示性態樣中,可以硬體、軟體、韌體或其任何組合實施所描述功能。若以軟體實施,則該等功能可作為一或多個指令或程式碼儲存於電腦可讀媒體(諸如,非暫時性處理器可讀媒體)上。電腦可讀媒體包括資料儲存媒體。 儲存媒體可為可由電腦或處理器存取之任何可用媒體。藉助於實例且非限制,此等電腦可讀媒體可包含RAM、磁抗式RAM (MRAM)、ROM、EEPROM、NAND快閃記憶體、NOR快閃記憶體、自旋力矩MRAM、CD-ROM或其他光碟儲存器、磁碟儲存器或其他磁性儲存裝置,或可用於攜載或儲存呈指令或資料結構形式之所要程式碼且可由電腦存取之任何其他媒體。如本文中所使用,磁碟及光碟包括緊密光碟(「CD」)、雷射光碟、光學光碟、數位多功能光碟(「DVD」)、軟性磁碟及藍光光碟,其中磁碟通常以磁性方式再現資料,而光碟用雷射以光學方式再現資料。以上各者之組合亦應包括於非暫時性電腦可讀媒體之範疇內。 儘管已詳細地說明且描述所選態樣,但應理解,可在本文中在不背離如以下申請專利範圍界定之本發明系統及方法的情況下進行各種替代及變更。
1‧‧‧快取儲存區
2‧‧‧快取分割區
3‧‧‧快取分割區
4‧‧‧快取分割區
5‧‧‧快取儲存區
6‧‧‧快取分割區
7‧‧‧快取分割區
8‧‧‧快取分割區
10‧‧‧計算裝置
12‧‧‧系統單晶片(SoC)
14‧‧‧處理器
16‧‧‧記憶體
18‧‧‧通信介面
20‧‧‧儲存介面
22‧‧‧通信組件
24‧‧‧儲存組件
26‧‧‧天線
28‧‧‧網路介面
30‧‧‧無線網路
32‧‧‧無線連接
40‧‧‧網際網路
44‧‧‧有線連接
50‧‧‧遠端電腦
200‧‧‧處理器核心
201‧‧‧處理器核心
202‧‧‧處理器核心
203‧‧‧處理器核心
300‧‧‧系統集線器
302‧‧‧系統快取/共用快取
304‧‧‧系統快取控制器
306‧‧‧中央處理單元(CPU)叢集
308‧‧‧協定轉換器
310‧‧‧圖形處理單元(GPU)
312‧‧‧數據機數位信號處理器(DSP)
314‧‧‧應用程式數位信號處理器(DSP)
316‧‧‧記憶體介面
318‧‧‧相機子系統
320‧‧‧視訊子系統
322‧‧‧顯示子系統
324‧‧‧系統晶片上網路(NoC)
326‧‧‧記憶體控制器
328‧‧‧隨機存取記憶體(RAM)
610‧‧‧輸入/輸出(I/O)埠
610a‧‧‧輸入/輸出(I/O)埠連接件
610b‧‧‧連接件
620‧‧‧組件快取暫存器
625‧‧‧匯流排
630‧‧‧標記比較及過時邏輯模組
630a‧‧‧標記比較及過時邏輯模組
630b‧‧‧標記比較及過時邏輯模組
630p‧‧‧標記比較及過時邏輯模組
637‧‧‧匯流排
640‧‧‧選擇邏輯模組
650‧‧‧更新邏輯模組
710‧‧‧SRAM
720‧‧‧多工器
722‧‧‧多工器
724‧‧‧多工器
726‧‧‧多工器
730‧‧‧比較器
732‧‧‧「及」閘
733‧‧‧多工器
734‧‧‧「及」閘
740‧‧‧比較器
742‧‧‧「或」閘
750‧‧‧模數比較器
752‧‧‧比較器
754‧‧‧「及」閘
756‧‧‧「或」閘
758‧‧‧「及」閘
760‧‧‧「及」閘
800‧‧‧方法
802‧‧‧區塊
804‧‧‧區塊
806‧‧‧區塊
808‧‧‧區塊
902a‧‧‧比較器
902p‧‧‧比較器
904a‧‧‧比較器
904p‧‧‧比較器
906a‧‧‧比較器
906p‧‧‧比較器
914‧‧‧「或」邏輯閘
916‧‧‧「及」閘
918‧‧‧多工器
920‧‧‧「或」邏輯閘
922‧‧‧「及」閘
924‧‧‧多工器
926‧‧‧所選最舊候選者邏輯模組
928‧‧‧「或」閘
930‧‧‧多工器
932a‧‧‧反相器
932p‧‧‧反相器
933‧‧‧「或」閘
934‧‧‧多工器
938‧‧‧「或」閘
940‧‧‧「或」閘
942‧‧‧多工器
944‧‧‧「或」閘
946‧‧‧挑選任何邏輯模組
950‧‧‧多工器
1100‧‧‧計算裝置
1120‧‧‧匯流排
1200‧‧‧處理器可讀媒體
1210‧‧‧組件快取組態參數
1220‧‧‧佔用數參數
1230‧‧‧時間相關參數
1240‧‧‧共用快取存取識別邏輯
1250‧‧‧儲體識別邏輯
1260‧‧‧替換候選者選擇邏輯
2‧‧‧快取分割區
3‧‧‧快取分割區
4‧‧‧快取分割區
5‧‧‧快取儲存區
6‧‧‧快取分割區
7‧‧‧快取分割區
8‧‧‧快取分割區
10‧‧‧計算裝置
12‧‧‧系統單晶片(SoC)
14‧‧‧處理器
16‧‧‧記憶體
18‧‧‧通信介面
20‧‧‧儲存介面
22‧‧‧通信組件
24‧‧‧儲存組件
26‧‧‧天線
28‧‧‧網路介面
30‧‧‧無線網路
32‧‧‧無線連接
40‧‧‧網際網路
44‧‧‧有線連接
50‧‧‧遠端電腦
200‧‧‧處理器核心
201‧‧‧處理器核心
202‧‧‧處理器核心
203‧‧‧處理器核心
300‧‧‧系統集線器
302‧‧‧系統快取/共用快取
304‧‧‧系統快取控制器
306‧‧‧中央處理單元(CPU)叢集
308‧‧‧協定轉換器
310‧‧‧圖形處理單元(GPU)
312‧‧‧數據機數位信號處理器(DSP)
314‧‧‧應用程式數位信號處理器(DSP)
316‧‧‧記憶體介面
318‧‧‧相機子系統
320‧‧‧視訊子系統
322‧‧‧顯示子系統
324‧‧‧系統晶片上網路(NoC)
326‧‧‧記憶體控制器
328‧‧‧隨機存取記憶體(RAM)
610‧‧‧輸入/輸出(I/O)埠
610a‧‧‧輸入/輸出(I/O)埠連接件
610b‧‧‧連接件
620‧‧‧組件快取暫存器
625‧‧‧匯流排
630‧‧‧標記比較及過時邏輯模組
630a‧‧‧標記比較及過時邏輯模組
630b‧‧‧標記比較及過時邏輯模組
630p‧‧‧標記比較及過時邏輯模組
637‧‧‧匯流排
640‧‧‧選擇邏輯模組
650‧‧‧更新邏輯模組
710‧‧‧SRAM
720‧‧‧多工器
722‧‧‧多工器
724‧‧‧多工器
726‧‧‧多工器
730‧‧‧比較器
732‧‧‧「及」閘
733‧‧‧多工器
734‧‧‧「及」閘
740‧‧‧比較器
742‧‧‧「或」閘
750‧‧‧模數比較器
752‧‧‧比較器
754‧‧‧「及」閘
756‧‧‧「或」閘
758‧‧‧「及」閘
760‧‧‧「及」閘
800‧‧‧方法
802‧‧‧區塊
804‧‧‧區塊
806‧‧‧區塊
808‧‧‧區塊
902a‧‧‧比較器
902p‧‧‧比較器
904a‧‧‧比較器
904p‧‧‧比較器
906a‧‧‧比較器
906p‧‧‧比較器
914‧‧‧「或」邏輯閘
916‧‧‧「及」閘
918‧‧‧多工器
920‧‧‧「或」邏輯閘
922‧‧‧「及」閘
924‧‧‧多工器
926‧‧‧所選最舊候選者邏輯模組
928‧‧‧「或」閘
930‧‧‧多工器
932a‧‧‧反相器
932p‧‧‧反相器
933‧‧‧「或」閘
934‧‧‧多工器
938‧‧‧「或」閘
940‧‧‧「或」閘
942‧‧‧多工器
944‧‧‧「或」閘
946‧‧‧挑選任何邏輯模組
950‧‧‧多工器
1100‧‧‧計算裝置
1120‧‧‧匯流排
1200‧‧‧處理器可讀媒體
1210‧‧‧組件快取組態參數
1220‧‧‧佔用數參數
1230‧‧‧時間相關參數
1240‧‧‧共用快取存取識別邏輯
1250‧‧‧儲體識別邏輯
1260‧‧‧替換候選者選擇邏輯
併入本文中且構成本說明書之部分的附圖說明本發明之實例態樣,且與上文所給出之一般描述及下文說給出之具體描述一起用以解釋新穎系統及方法之特徵。 在圖式中,除非另有指示,否則相同參考標號貫穿各視圖指代相同部分。對於諸如「102A」或「102B」之具有字母字符名稱的參考標號而言,字母字符名稱可區分相同圖中存在之兩個相同部分或元件。當希望參考標號涵蓋所有圖式中具有相同參考標號之所有部分時,可省略參考標號之字母字符名稱。 圖1為說明共用快取之習知通路分割的示意圖。 圖2為說明共用快取之習知集合及通路分割的示意圖。 圖3為說明包括適合於實施改良型快取控制器之計算裝置的計算環境之一實例實施例的功能區塊。 圖4為說明可實施於圖3之計算裝置中的多核心處理器之一實例實施例的示意圖。 圖5為說明圖3之系統單晶片的一實例實施例之示意圖。 圖6為說明圖5之共用快取控制器的組件之示意圖。 圖7為說明圖6之標記比較及過時邏輯模組的一實例實施例之示意圖。 圖8為說明由圖7之過時邏輯模組及更新邏輯模組實施之過時程序的一實例實施例之時序圖。 圖9為說明圖6之選擇邏輯模組的一實例實施例之示意圖。 圖10為說明用於調適性地分割共用快取之方法的一實例實施例之流程圖。 圖11為說明計算裝置之一實例實施例的示意圖。 圖12為說明包括處理器可讀媒體之一實例實施例的計算裝置之示意圖。
304‧‧‧系統快取控制器
610a‧‧‧輸入/輸出(I/O)埠連接件
610b‧‧‧連接件
620‧‧‧組件快取暫存器
625‧‧‧匯流排
630a‧‧‧標記比較及過時邏輯模組
630b‧‧‧標記比較及過時邏輯模組
630p‧‧‧標記比較及過時邏輯模組
637‧‧‧匯流排
640‧‧‧選擇邏輯模組
650‧‧‧更新邏輯模組
Claims (30)
- 一種用於調適性地分割一共用快取之方法,其包含: 儲存界定該共用快取中之整數數目個組件快取的態樣之參數,其中該整數數目個組件快取中的至少一者與包括一目標佔用數及一佔用數計數之一組參數相關聯; 將對應於該整數數目個組件快取內之一組件快取的一唯一識別符應用於用戶端請求; 回應於將用戶端資料儲存於該共用快取中之該等用戶端請求, 使用儲存於該組參數中之資訊來進行快取行分配,其中當分配一快取行時,遞增一相關聯佔用數計數;及 使用儲存於該組參數中之該資訊來識別用於收回的候選快取行,其中當收回一單獨快取行時,遞減該相關聯佔用數計數。
- 如請求項1之方法,其進一步包含: 將一作用中指示符指派給該整數數目個組件快取中之該至少一者,其中存在於該共用快取中之快取行在其各別組件快取使該作用中指示符撤銷確證時按預設與一過時條件相關聯。
- 如請求項2之方法,其進一步包含: 將一儲體指標及一儲體層級計數指派給該整數數目個組件快取中之該至少一者,其中將該整數數目個組件快取中之該至少一者劃分成整數數目個儲體;及 對於定址該整數數目個組件快取中之該至少一者的各快取行分配, 針對該整數數目個組件快取中之該至少一者而遞增該儲體層級計數中的一儲體層級值, 當該儲體層級值達到該整數數目個組件快取中之該至少一者的該目標佔用數的一固定分率時,遞增該儲體指標且重設該儲體層級計數;及 將該儲體指標儲存於與一所分配快取行相關聯之該共用快取中。
- 如請求項3之方法,其進一步包含: 對於定址該整數數目個組件快取中之該至少一者的存取操作,識別用於替換的一組候選快取行;及 對於該組候選快取行中之各候選快取行,藉由比較與一特定候選快取行相關聯之該儲體指標之值與相關聯於該特定候選快取行之該組件快取的一當前儲體指標值來計算一年齡。
- 如請求項4之方法,其進一步包含: 對於該等候選快取行中之每一者,取決於該各別年齡而判定一過時條件,及 將該過時條件儲存於與該特定候選快取行相關聯之該共用快取中。
- 如請求項4之方法,其中該組參數包括一最近最少使用參數,該參數條件性地識別應在何時將來自一較舊儲體之一快取行移至當前儲體。
- 如請求項5之方法,其進一步包含: 對於引起一命中條件之一組件快取存取,條件性地更新該所存取快取行之該儲體指標及該過時條件,且條件性地更新該組件快取之該儲體層級值。
- 如請求項7之方法,其中當設定該組件快取最近最少使用參數且該儲體指標不等於該組件快取當前儲體指標時,再新該儲體指標、重設該過時條件且遞增該儲體層級值。
- 如請求項2之方法,其進一步包含: 對於引起一遺漏條件之一組件快取存取,條件性地識別一替換候選者。
- 如請求項9之方法,其進一步包含: 將一優先級參數指派給該整數數目個組件快取中之該至少一者;及 當無過時候選者存在時,條件性地識別該替換候選者。
- 如請求項10之方法,其中在一較佳序列中,包括自任何過時快取行當中、自具有比一所存取快取組件低之一優先級的最低優先級快取行、自該所存取快取組件及當識別出多個最新替換候選者時,自一最舊快取行選擇該替換候選者。
- 如請求項11之方法,其進一步包含: 當識別出多個替換候選者時,應用一額外替換候選者準則。
- 如請求項12之方法,其中該額外替換候選者準則包括識別一預設通路。
- 如請求項1之方法,其進一步包含: 將一可選分配參數指派給該整數數目個組件快取中之該至少一者;及 條件性地分配一快取行。
- 如請求項14之方法,其中當該各別組件快取已滿且設定該可選分配參數時不分配一快取行。
- 一種調適性分割快取控制器,其包含: 暫存器,其經配置以儲存一共用快取之所要數目個組件快取的一組操作參數; 標記比較及過時邏輯,其耦接至該等暫存器且經配置以接收一快取位址及識別該共用快取中之一快取行的一唯一組件快取識別符,該標記比較及過時邏輯回應於一操作模式輸入而產生對資訊已儲存於該共用快取中之一特定快取行中的經過時間之一量度,條件性地記錄一過時條件、一有效條件,且更新一儲體指標;及 選擇邏輯,其耦接至該標記比較及過時邏輯及該等暫存器,該選擇邏輯經配置以接收對該資訊已儲存於該共用快取中之該特定快取行中的經過時間之該量度、該唯一組件快取識別符及一優先級指示符,且根據該過時條件及該有效條件而識別待在該共用快取中替換之一候選快取行的一組件快取識別符。
- 如請求項16之調適性分割快取控制器,其中該組操作參數包括一目標佔用數及一當前佔用數。
- 如請求項17之調適性分割快取控制器,其中該組操作參數包括一作用中指示符,且存在於該共用快取中之快取行在其各別組件快取使該作用中指示符撤銷確證時按預設與該過時條件相關聯。
- 如請求項18之調適性分割快取控制器,其中該組操作參數包括一優先級值、一當前儲體指標、一當前儲體層級及一最近最少使用參數中的一或多者。
- 如請求項16之調適性分割快取控制器,其中該選擇邏輯經配置以啟用一較佳序列,包括自任何過時快取行當中、自具有比一所存取快取組件低之一優先級的最低優先級快取行、自該所存取快取組件及當識別出多個最新替換候選者時自一最舊快取行識別一替換候選者。
- 如請求項16之調適性分割快取控制器,其中該選擇邏輯經配置以根據至少三個優先級層級而識別替換候選者。
- 一種計算裝置,其包含: 一處理器; 一共用快取,其經組態以為該處理器提供一資料儲存資源; 一調適性分割快取控制器,其以通信方式耦接至該處理器及該共用快取,該調適性分割快取控制器進一步包含: 一輸入埠,其經配置以自一用戶端接收一快取存取請求; 暫存器,其經配置以儲存該共用快取之所要數目個組件快取的一組操作參數; 標記比較及過時邏輯,其耦接至該等暫存器且經配置以接收對資訊已儲存於該共用快取中之一特定快取行中的經過時間之一量度,記錄一過時條件且條件性地更新一儲體指標;及 選擇邏輯,其耦接至該標記比較及過時邏輯及該等暫存器,該選擇邏輯經配置以條件性地識別待在該共用快取中替換之一替換候選者。
- 如請求項22之計算裝置,其中該等暫存器經配置以儲存一目標佔用數及一當前佔用數。
- 如請求項22之計算裝置,其中該等暫存器經配置以儲存組態參數、佔用數參數及時間相關參數。
- 如請求項24之計算裝置,其中該等時間相關參數包括一當前儲體指標及一儲體層級。
- 如請求項24之計算裝置,其中該等佔用數參數包括一當前佔用數及一溢位位元。
- 如請求項24之計算裝置,其中該等組態參數選自由以下各者組成之群:一目標佔用數、一優先級層級、一作用中位元、一最近最少使用參數及一可選分配參數。
- 一種非暫時性處理器可讀媒體,在其上儲存有當執行時引導一處理器及一調適性分割快取控制器執行包含以下各者之操作的處理器可執行指令: 界定組態參數、佔用數參數及時間相關參數,包括一唯一識別符、一目標佔用數、一佔用數計數及儲體指標之一整數數目; 自一用戶端應用程式識別一快取存取請求; 產生對資訊已儲存於一共用快取中之一特定快取行中的經過時間之一量度; 記錄一過時條件; 條件性地更新一儲體指標;及 條件性地識別待在該共用快取中替換之一替換候選者。
- 如請求項28之非暫時性處理器可讀媒體,其中產生對該資訊已儲存於該共用快取中之該特定快取行中的經過時間的該量度係回應於一儲體層級。
- 如請求項28之非暫時性處理器可讀媒體,其進一步包含: 界定包括一作用中指示符之一組操作參數,其中存在於該共用快取中之快取行在其各別組件快取使該作用中指示符確證時按預設與該過時條件相關聯。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/921,468 | 2015-10-23 | ||
US14/921,468 US9734070B2 (en) | 2015-10-23 | 2015-10-23 | System and method for a shared cache with adaptive partitioning |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201717040A true TW201717040A (zh) | 2017-05-16 |
TWI627536B TWI627536B (zh) | 2018-06-21 |
Family
ID=57043042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105133396A TWI627536B (zh) | 2015-10-23 | 2016-10-17 | 用於具有調適分割之一共用快取之系統及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9734070B2 (zh) |
TW (1) | TWI627536B (zh) |
WO (1) | WO2017069907A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10078613B1 (en) | 2014-03-05 | 2018-09-18 | Mellanox Technologies, Ltd. | Computing in parallel processing environments |
US9832277B2 (en) * | 2015-11-13 | 2017-11-28 | Western Digital Technologies, Inc. | Systems and methods for adaptive partitioning in distributed cache memories |
US10366013B2 (en) * | 2016-01-15 | 2019-07-30 | Futurewei Technologies, Inc. | Caching structure for nested preemption |
US10503652B2 (en) | 2017-04-01 | 2019-12-10 | Intel Corporation | Sector cache for compression |
US10424040B2 (en) | 2017-04-21 | 2019-09-24 | Intel Corporation | Dynamic allocation of cache based on instantaneous bandwidth consumption at computing devices |
US10528519B2 (en) | 2017-05-02 | 2020-01-07 | Mellanox Technologies Ltd. | Computing in parallel processing environments |
US10394747B1 (en) | 2017-05-31 | 2019-08-27 | Mellanox Technologies Ltd. | Implementing hierarchical PCI express switch topology over coherent mesh interconnect |
US10789175B2 (en) * | 2017-06-01 | 2020-09-29 | Mellanox Technologies Ltd. | Caching policy in a multicore system on a chip (SOC) |
EP3662376B1 (en) | 2017-08-03 | 2023-04-05 | Next Silicon Ltd | Reconfigurable cache architecture and methods for cache coherency |
US10678690B2 (en) * | 2017-08-29 | 2020-06-09 | Qualcomm Incorporated | Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems |
US10394716B1 (en) * | 2018-04-06 | 2019-08-27 | Arm Limited | Apparatus and method for controlling allocation of data into a cache storage |
US10884959B2 (en) | 2019-02-13 | 2021-01-05 | Google Llc | Way partitioning for a system-level cache |
EP4055487B1 (en) * | 2019-11-05 | 2024-03-06 | Microsoft Technology Licensing, LLC | Eviction mechanism |
CN111143245B (zh) * | 2019-11-15 | 2021-07-13 | 海光信息技术股份有限公司 | 一种缓存数据处理方法、电路、处理器及芯片 |
US11656997B2 (en) | 2019-11-26 | 2023-05-23 | Intel Corporation | Flexible cache allocation technology priority-based cache line eviction algorithm |
US11294808B2 (en) | 2020-05-21 | 2022-04-05 | Micron Technology, Inc. | Adaptive cache |
US11422934B2 (en) | 2020-07-14 | 2022-08-23 | Micron Technology, Inc. | Adaptive address tracking |
US11409657B2 (en) | 2020-07-14 | 2022-08-09 | Micron Technology, Inc. | Adaptive address tracking |
US11507516B2 (en) | 2020-08-19 | 2022-11-22 | Micron Technology, Inc. | Adaptive cache partitioning |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591347B2 (en) * | 1998-10-09 | 2003-07-08 | National Semiconductor Corporation | Dynamic replacement technique in a shared cache |
US6493800B1 (en) * | 1999-03-31 | 2002-12-10 | International Business Machines Corporation | Method and system for dynamically partitioning a shared cache |
US20070143546A1 (en) * | 2005-12-21 | 2007-06-21 | Intel Corporation | Partitioned shared cache |
US7725657B2 (en) * | 2007-03-21 | 2010-05-25 | Intel Corporation | Dynamic quality of service (QoS) for a shared cache |
JP5413001B2 (ja) | 2009-07-09 | 2014-02-12 | 富士通株式会社 | キャッシュメモリ |
US8606999B2 (en) | 2010-08-13 | 2013-12-10 | Advanced Micro Devices, Inc. | Cache partitioning |
US20120144118A1 (en) | 2010-12-07 | 2012-06-07 | Advanced Micro Devices, Inc. | Method and apparatus for selectively performing explicit and implicit data line reads on an individual sub-cache basis |
US9658960B2 (en) | 2010-12-22 | 2017-05-23 | Advanced Micro Devices, Inc. | Subcache affinity |
US20130097387A1 (en) | 2011-10-14 | 2013-04-18 | The Board Of Trustees Of The Leland Stanford Junior University | Memory-based apparatus and method |
US9529719B2 (en) * | 2012-08-05 | 2016-12-27 | Advanced Micro Devices, Inc. | Dynamic multithreaded cache allocation |
US9298626B2 (en) | 2013-09-26 | 2016-03-29 | Globalfoundries Inc. | Managing high-conflict cache lines in transactional memory computing environments |
CN103699497B (zh) | 2013-12-19 | 2017-01-04 | 京信通信***(中国)有限公司 | 一种缓存分配方法及装置 |
-
2015
- 2015-10-23 US US14/921,468 patent/US9734070B2/en not_active Expired - Fee Related
-
2016
- 2016-09-22 WO PCT/US2016/053082 patent/WO2017069907A1/en active Application Filing
- 2016-10-17 TW TW105133396A patent/TWI627536B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US9734070B2 (en) | 2017-08-15 |
WO2017069907A1 (en) | 2017-04-27 |
US20170116118A1 (en) | 2017-04-27 |
TWI627536B (zh) | 2018-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI627536B (zh) | 用於具有調適分割之一共用快取之系統及方法 | |
US9904473B2 (en) | Memory and processor affinity in a deduplicated environment | |
US11163699B2 (en) | Managing least recently used cache using reduced memory footprint sequence container | |
US9996542B2 (en) | Cache management in a computerized system | |
US11487675B1 (en) | Collecting statistics for persistent memory | |
US9798655B2 (en) | Managing a cache on storage devices supporting compression | |
US9934231B2 (en) | System and methods for prioritizing data in a cache | |
US11263149B2 (en) | Cache management of logical-physical translation metadata | |
JP2020046963A (ja) | メモリシステムおよび制御方法 | |
US11150962B2 (en) | Applying an allocation policy to capture memory calls using a memory allocation capture library | |
EP3433742B1 (en) | Using multiple memory elements in an input-output memory management unit for performing virtual address to physical address translations | |
US9501419B2 (en) | Apparatus, systems, and methods for providing a memory efficient cache | |
US10402338B2 (en) | Method and apparatus for erase block granularity eviction in host based caching | |
US20110320720A1 (en) | Cache Line Replacement In A Symmetric Multiprocessing Computer | |
US10061523B2 (en) | Versioning storage devices and methods | |
JP2011258193A (ja) | 持続性メモリのためのキャッシュコヒーレンスプロトコル | |
US11392323B2 (en) | Memory system and method of controlling nonvolatile memory | |
JP2019057151A (ja) | メモリシステムおよび制御方法 | |
US10353829B2 (en) | System and method to account for I/O read latency in processor caching algorithms | |
US9699254B2 (en) | Computer system, cache management method, and computer | |
CN113138851B (zh) | 一种数据管理方法、相关装置及*** | |
US11132128B2 (en) | Systems and methods for data placement in container-based storage systems | |
US11797183B1 (en) | Host assisted application grouping for efficient utilization of device resources | |
JP7337228B2 (ja) | メモリシステムおよび制御方法 | |
WO2016095103A1 (zh) | 存储空间管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |