TW201814539A - 使用在一以處理器為基礎的系統中之空間服務品質標示提供異質記憶體系統之彈性管理 - Google Patents
使用在一以處理器為基礎的系統中之空間服務品質標示提供異質記憶體系統之彈性管理 Download PDFInfo
- Publication number
- TW201814539A TW201814539A TW106127867A TW106127867A TW201814539A TW 201814539 A TW201814539 A TW 201814539A TW 106127867 A TW106127867 A TW 106127867A TW 106127867 A TW106127867 A TW 106127867A TW 201814539 A TW201814539 A TW 201814539A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- cache
- qos policy
- qosid
- main table
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 491
- 238000000034 method Methods 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 5
- 230000001413 cellular effect Effects 0.000 claims description 2
- 230000036541 health Effects 0.000 claims description 2
- 230000004044 response Effects 0.000 claims 4
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 7
- 235000019580 granularity Nutrition 0.000 description 6
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000001360 synchronised effect 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/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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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
- 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
-
- 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/20—Employing a main memory using a specific memory technology
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Logic Circuits (AREA)
Abstract
本發明揭示使用在以處理器為基礎的系統中之空間服務品質(QoS)標示提供異質記憶體系統之彈性管理。在一態樣中,一以處理器為基礎的系統的一異質記憶體系統包括一第一記憶體及一第二記憶體。該異質記憶體系統被分成複數個記憶體區,各記憶體區與一QoS識別符(QoSID)相關聯,該QoS識別符可藉由軟體設定且更新。該異質記憶體系統的一記憶體控制器提供一QoS策略表,該QoS策略表操作以將各QoSID與一QoS策略狀態相關聯,且該QoS策略表亦可經軟體組態。在接收到包括一記憶體區之一記憶體位址的一記憶體存取請求之後,該記憶體控制器便識別與該記憶體位址相關聯之一可經軟體組態的QoSID,且使用該QoS策略表將該QoSID與一QoS策略狀態相關聯。該記憶體控制器接著應用該QoS策略狀態以執行記憶體存取操作。
Description
本發明的技術大體上係關於記憶體管理,且詳言之,係關於管理異質記憶體系統。
異質記憶體系統為以處理器為基礎的系統的記憶體系統,其併入有兩個或更多個不同類型之具有相對不同效能特性(例如,容量、頻寬、存取潛時、功率消耗及/或類似物)的記憶體。作為非限制性實例,異質記憶體系統可包括提供非典型寬之通信通道的高頻寬記憶體(HBM)及提供常規大小之通信通道的動態隨機存取記憶體(DRAM)。異質記憶體系統的其他態樣可包括DRAM及相變記憶體、處理器晶粒上的DRAM及三階(L3)快取記憶體及/或此項技術中已知之不同記憶體類型的其他組合。 習知的異質記憶體系統可提出關於記憶體管理的有限的選項。在一些態樣中,一種類型的記憶體(例如,HBM)可經組態以充當異質記憶體系統之全部記憶體位址空間的快取記憶體。部署該等態樣相對簡單且容易,且可藉由硬體透明地管理該等態樣。然而,因為關於資料之置放或記憶體之分配的所有決策藉由硬體處理,所以在資料置放或分配記憶體上不採用軟體輸入或影響。 或者,異質記憶體系統可使用不相交的位址區,且可允許動態記憶體管理及再分配操作藉由軟體而不是硬體執行。通常,此方法對於排他的硬體控制較佳,此係因為軟體可存取與記憶體分配相關的資料(例如,工作負荷、程式語義及/或相對優先級),但該資料無法藉由硬體存取或透明地推斷。然而,該動態記憶體管理可需要極其複雜的資料遷移決策,及能夠管理該等決策以及其他必需的花費處理器及時間之操作的軟體,該軟體可難以開發及維護。因此,需要提供用於異質記憶體系統之彈性管理之硬體支援及軟體控制的記憶體管理機制。
詳細描述中揭示的態樣包括使用在以處理器為基礎的系統中之空間服務品質(QoS)標示提供異質記憶體系統之彈性管理。在一態樣中,以處理器為基礎的系統的異質記憶體系統包括第一記憶體(作為非限制性實例例如,高頻寬記憶體(HBM))及第二記憶體(作為非限制性實例例如,動態隨機存取記憶體(DRAM))。異質記憶體系統被分成複數個記憶體區,作為非限制性實例諸如各自具有四(4)千位元組之大小的記憶體頁。異質記憶體系統經組態以使用在本文中被稱作「空間服務品質(QoS)標示」者,其中複數個記憶體區中之每一者與QoS識別符(QoSID)相關聯,該QoS識別符可藉由軟體設定且更新。異質記憶體系統的記憶體控制器提供QoS策略表,該QoS策略表操作以將各QoSID映射至QoS策略狀態(作為非限制性實例諸如配額、優先權、比例共用權重及/或機率),且該QoS策略表亦可經軟體組態。在接收到包括記憶體區之記憶體位址的記憶體存取請求之後,記憶體控制器便識別與記憶體位址相關聯之可經軟體組態的QoSID,且使用QoS策略表將QoSID與QoS策略狀態相關聯。記憶體控制器接著應用QoS策略狀態以執行記憶體存取操作。舉例而言,在第一記憶體經組態為用於第二記憶體之透明快取記憶體的態樣中,記憶體控制器可在執行自第一記憶體的快取收回或第一記憶體的快取填充時應用QoS策略狀態。以此方式,藉由指定用於複數個記憶體區中之每一者的QoSID且藉由將QoSID與由記憶體控制器強加的QoS策略狀態相關聯,軟體處理程序可間接影響記憶體分配及資料置放。 在另一態樣中,提供用於提供以處理器為基礎的系統之異質記憶體系統之彈性管理的記憶體控制器。記憶體控制器以通信方式耦接至具有不同效能特性的第一記憶體及第二記憶體。記憶體控制器包括提供複數個QoS策略項目之可經軟體組態的QoS策略表。各QoS策略項目包括QoS策略狀態且與一或多個QoSID中的一QoSID相關聯,各QoSID與複數個記憶體區中之一者相關聯。複數個記憶體區駐存於第一記憶體、第二記憶體或兩者內。記憶體控制器經組態以接收包含對應於複數個記憶體區中之一記憶體區的記憶體位址的記憶體存取請求。記憶體控制器進一步經組態以識別與記憶體位址相關聯之可經軟體組態的QoSID。記憶體控制器亦經組態以使用QoS策略表將與記憶體位址相關聯的QoSID與QoS策略狀態相關聯。記憶體控制器另外經組態以應用QoS策略狀態以對第一記憶體及第二記憶體中之一者執行記憶體存取操作。 在另一態樣中,提供用於提供以處理器為基礎的系統之異質記憶體系統之彈性管理的記憶體控制器。 記憶體控制器包含用於接收包含記憶體位址之記憶體存取請求的構件,該記憶體位址對應於具有不同效能特性之第一記憶體及第二記憶體中之一或多者的複數個記憶體區中的一記憶體區。記憶體控制器進一步包含用於識別與記憶體位址相關聯之可經軟體組態的QoSID的構件。記憶體控制器亦包含用於使用可經軟體組態的QoS策略表將與記憶體位址相關聯的QoSID與QoS策略狀態相關聯的構件。記憶體控制器進一步包含用於應用QoS策略狀態以對第一記憶體及第二記憶體中之一者執行記憶體存取操作的構件。 在另一態樣中,提供用於提供以處理器為基礎的系統之異質記憶體系統之彈性管理的方法。方法包含藉由記憶體控制器接收包含記憶體位址之記憶體存取請求,該記憶體位址對應於具有不同效能特性之第一記憶體及第二記憶體中之一或多者的複數個記憶體區中之一記憶體區。方法進一步包含識別複數個QoSID中之可經軟體組態的QoSID,其中QoSID與記憶體位址相關聯。方法亦包含使用記憶體控制器之可經軟體組態的QoS策略表將與記憶體位址相關聯的QoSID與QoS策略狀態相關聯。方法另外包含應用QoS策略狀態以對第一記憶體及第二記憶體中之一者執行記憶體存取操作。
現參考圖式,描述本發明之若干例示性態樣。字組「例示性」在本文中用以意謂「充當實例、例項或說明」。不必將本文中描述為「例示性」的任何態樣解釋為較佳或優於其他態樣。 詳細描述中揭示的態樣包括使用在以處理器為基礎的系統中之空間服務品質(QoS)標示提供異質記憶體系統之彈性管理。在描述經組態以使用空間QoS標示彈性地管理記憶體的記憶體控制器之前,首先描述以處理器為基礎的系統之異質記憶體系統的例示性元件及操作。 在此方面,圖1說明提供異質記憶體系統102的例示性以處理器為基礎的系統100。在一些態樣中,以處理器為基礎的系統100可涵蓋已知數位邏輯元件、半導體電路、處理核心及/或記憶體結構及其他元件或其組合中之任一者。本文中所描述的態樣不限於元件的任何特定配置,且所揭示技術可容易地延伸至半導體晶粒或封裝上的各種結構及佈局。應瞭解以處理器為基礎的系統100可包括為清楚起見未在本文中說明的額外的元件。 如圖1中所見,異質記憶體系統102包括第一記憶體104及第二記憶體106。根據一些態樣,作為非限制性實例,第一記憶體104可包括高頻寬記憶體(HBM),且第二記憶體106可包括動態隨機存取記憶體(DRAM)。對第一記憶體104及第二記憶體106的存取藉由記憶體控制器108管理,該記憶體控制器108可自包含正由以處理器為基礎的系統100執行之指令的軟體處理程序110接收記憶體存取請求。應瞭解軟體處理程序110可與一或多個其他軟體處理程序並行執行,且作為非限制性實例可包括應用程式、超管理器、虛擬機、作業系統及/或容器。 一些態樣可規定記憶體控制器108可經組態以將第一記憶體104操作為第二記憶體106的透明快取記憶體。在該等態樣中,第二記憶體106可用於儲存主表112。主表112含有複數個主表項目114(0)至114(M),該等主表項目中之每一者將第二記憶體106之記憶體區118(0)至118(X)的一系列一或多個記憶體位址116(0)至116(M)與快取通路識別符(「WAY ID」)120(0)至120(M)相關聯。因此,為判定第二記憶體106的給定記憶體區118(0)至118(X)可儲存於第一記憶體104的哪個快取通路,記憶體控制器108可對主表112執行查找操作。雖然圖1中主表112被說明為第二記憶體106的部分,但應瞭解主表112可儲存為可藉由包括(例如)第一記憶體104之記憶體控制器108存取的其他記憶體元件的部分。在一些態樣中,記憶體區118(0)至118(X)中之每一者可為記憶體頁(例如,四(4)千位元組(kB)記憶體頁),但一些態樣可規定記憶體區118(0)至118(X)中之每一者為第二記憶體106之較大或較小的細分。一些態樣可規定記憶體區118(0)至118(X)可具有不均勻的大小。 圖2說明提供記憶體控制器202用於使用空間QoS標示執行圖1之異質記憶體系統102之彈性管理的以處理器為基礎的系統200。在圖2的實例中,記憶體控制器202包括QoS策略表204,該QoS策略表204含有複數個QoS策略項目206(0)至206(Y)。複數個QoS策略項目206(0)至206(Y)中之每一者將QoSID 208(0)至208(Y)與相對應的QoS策略狀態210(0)至210(Y)相關聯。在一些態樣中,如圖2中所示QoS策略表204可以不顯式地儲存各QoSID 208(0)至208(Y)的值,而是可隱式地將QoSID 208(0)至208(Y)中之每一者定義為相對應之QoS策略狀態210(0)至210(Y)的QoS策略表204中的列索引。QoS策略狀態210(0)至210(Y)中之每一者可表示可由記憶體控制器202強加的任何可適用的QoS屬性(作為非限制性實例諸如配額、優先權、比例共用權重及/或機率)。QoS策略表204可藉由軟體處理程序110更新。因此,軟體處理程序110可指定用於與各QoSID 208(0)至208(Y)相關聯的各QoS策略狀態210(0)至210(Y)的QoS屬性。 在一些態樣中,主表112可經擴展以將QoSID 212(0)至212(M)包括為主表項目114(0)至114(M)的部分。以此方式,主表項目114(0)至114(M)可用於識別與一系列記憶體位址116(0)至116(M)中之一或多者相關聯及/或與第二記憶體106的全部記憶體區118(0)至118(X)相關聯的QoSID 212(0)至212(M)。在一些態樣中,主表112可經組織為具有不同定址粒度的兩個(2)單獨結構(例如,一結構可提供記憶體位址至通路的映射以提供快取行粒度,而另一結構可提供記憶體位址至QoSID的映射以提供較粗糙的頁粒度)。或者,一些態樣可提供單一主表112,其中兩個(2)單獨結構的內容經組合或交錯。根據一些態樣,主表112可以不特意儲存記憶體位址116,而是可使用記憶體位址116的高階位元作為至主表112之索引。 主表112的QoSID 212(0)至212(M)可藉由軟體處理程序110更新,因此允許軟體處理程序110選擇性設定指派至記憶體區118(0)至118(X)之QoSID 212(0)至212(M)的值。在一些態樣中,QoSID 208(0)至208(Y)中之一者可標定為指定「預設」QoSID 208(0)至208(Y),該QoSID 208(0)至208(Y)用於判定待應用於不顯式地指派至QoSID 208(0)至208(Y)之記憶體區118(0)至118(X)的QoS策略狀態210(0)至210(Y)。一些態樣可規定QoSID 208(0)至208(Y)可與表示多個粒度之不同大小的記憶體區118(0)至118(X)相關聯,使得與最特定之粒度相關聯的QoSID 208(0)至208(Y)得以應用。舉例而言,第一QoSID 208(0)至208(Y)可與較大的二(2)兆位元組記憶體區118(0)至118(X)相關聯,而第二QoSID 208(0)至208(Y)可與較大記憶體區118(0)至118(X)內較小的四(4)千位元組記憶體區118(0)至118(X)相關聯。在該種狀況下,第一QoSID 208(0)至208(Y)將應用於除較小的四(4)千位元組記憶體區118(0)至118(X)以外的整個二(2)兆位元組記憶體區118(0)至118(X),該較小的四(4)千位元組記憶體區118(0)至118(X)將位於第二QoSID 208(0)至208(Y)下。 一些態樣可規定記憶體控制器202亦包括用於自主表112快取最近讀取的主表項目114(0)至114(M)的主表快取記憶體214。主表快取記憶體214提供儲存快取記憶體位址116'(0)至116'(Z)的複數個主表快取項目216(0)至216(Z)、快取通路識別符(「WAY ID」)120'(0)至120'(Z)及快取QoSID 212'(0)至212'(Z)。當試圖識別與記憶體區118(0)至118(X)之記憶體位址範圍及/或記憶體區相關聯的QoSID時,記憶體控制器202可在第二記憶體106中的主表112中執行查找之前存取主表快取記憶體214。若主表快取記憶體214產生快取命中,則記憶體控制器202可自主表快取記憶體214讀取快取QoSID 212'(0)至212'(Z),其減少記憶體存取潛時且藉由避免至主表112之不必要的讀取而節省記憶體頻寬。根據第一記憶體104用作用於第二記憶體106的透明快取記憶體的一些態樣,亦可藉由在第一記憶體104內儲存QoSID 218(0)至218(Q)(例如,以及用於各快取行(圖上未示)的快取標籤(圖上未示))而避免對主表112的存取。在該等態樣中,來自主表112之快取行粒度資料的子集可併入至由第一記憶體104提供的快取記憶體中。 在例示性操作中,記憶體控制器202可自軟體處理程序110接收包括記憶體位址222的記憶體存取請求220。記憶體控制器202識別對應於記憶體位址222的QoSID(例如,QoSID 212(0))(例如,藉由使用記憶體位址222或記憶體位址222的高階位元執行在主表112及/或主表快取記憶體214中的查找)。一旦QoSID 212(0)經識別,記憶體控制器202便使用QoS策略表204將QoSID 212(0)與QoS策略狀態(例如,QoS策略狀態210(0))相關聯。記憶體控制器202接著在進行記憶體存取請求220時應用QoS策略狀態210(0)。舉例而言,在第一記憶體104經組態以操作為用於第二記憶體106之透明快取記憶體的態樣中,記憶體存取請求220可指明對第二記憶體106中記憶體位址222的記憶體讀取操作或記憶體寫入操作。在接收到記憶體存取請求220之後,記憶體控制器202便識別對應於記憶體位址222的QoSID 212(0),且判定適用於第二記憶體106之彼區的QoS策略狀態210(0)(例如,第一記憶體104中有多少快取記憶體可被佔用等)。記憶體控制器202可根據QoS策略狀態210(0)對該第一記憶體104執行快取收回操作或快取填充操作。 以此方式,記憶體控制器202提供透明定址及透明快取的權益,此係因為軟體處理程序110不需作出關於記憶體分配或重定位的決策。然而,軟體處理程序110仍能夠藉由更新QoSID 212(0)至212(M)及/或QoS策略表204影響資料置放及分配。此態樣提供用於未管理快取記憶體及軟體管理分區兩者的彈性支援。舉例而言,當使用第一記憶體104作為快取記憶體時,軟體處理程序110可實施基於配額的記憶體管理方案,從而第二記憶體106(例如,記憶體區118(0))之記憶體區118(0)至118(X)中之給定的一者藉由指派QoS策略狀態210(0)以指定大於記憶體區118(0)至118(X)之大小的配額而被鎖在第一記憶體104中。因此,由於配額將不會被滿足,記憶體區118(0)的資料將不會自第一記憶體104收回。類似地,軟體處理程序110可藉由指派QoS策略狀態210(0)以指定零(0)的配額而實施快取略過。軟體處理程序110亦可藉由指派QoS策略狀態210(0)以指定小於第一記憶體104之大小的配額而實施部分快取方案。注意由QoS策略狀態210(0)指派的配額將應用於與相對應的QoSID 212(0)至212(M)相關聯的第二記憶體106之所有記憶體區118(0)至118(X)的總大小。舉例而言,假定QoSID 212(0)與第二記憶體106的四個(4)記憶體區118(0)至118(3)相關聯,記憶體區118(0)至118(3)中之每一者的大小為四(4)千位元組。只要由與QoSID 212(0)相關聯的QoS策略狀態210(0)指定的配額至少為16千位元組,記憶體區118(0)至118(3)將繼續鎖在第一記憶體104中。 當將QoS策略狀態210(0)至210(Y)應用於第一記憶體104經組態以操作為用於第二記憶體106之透明快取記憶體的態樣時,記憶體控制器202可使用不同策略用於第一記憶體104的分配。舉例而言,當判定自第一記憶體104收回的快取行時,記憶體控制器202可隨機採集多個快取行的樣本,且選擇與超過配額最多的QoSID相關聯的快取行作為收回對象。或者,若待寫入至第一記憶體104的快取行超過配額最多,則記憶體控制器202可選擇完全略過第一記憶體104或收回具有相同QoSID的另一快取行。當執行快取填充時,記憶體控制器202可使快取填充操作基於由與新資料的QoSID相關聯之QoS策略狀態指明的配額或機率。最後,在一些態樣中,記憶體控制器202可藉由有意使第一記憶體104的一些記憶體容量處於未使用狀態而提高第一記憶體104及第二記憶體106的總頻寬。此可藉由標定用於第一記憶體104中無效行的配額而實現,其允許指定數量的行在第一記憶體104中保持閒置。 為說明用於彈性地管理異質記憶體系統102之圖2的記憶體控制器202的例示性操作,提供圖3A至圖3C。為清楚起見,描述圖3A至圖3C時參考圖2的元件。在圖3A中,操作視異質記憶體系統102的特定實施而定可以不同方式開始。在一些態樣中,記憶體控制器202可將第一記憶體104操作為用於第二記憶體106的透明快取記憶體,其中複數個記憶體區118(0)至118(X)包含第二記憶體106的複數個記憶體區118(0)至118(X) (區塊300)。記憶體控制器202接收包含記憶體位址222的記憶體存取請求220,該記憶體位址222對應於具有不同效能特性之第一記憶體104及第二記憶體106中之一或多者的複數個記憶體區118(0)至118(X)中的記憶體區118(0)(區塊302)。在此方面,記憶體控制器202在本文中可被稱作「用於接收包含記憶體位址的記憶體存取請求的構件,該記憶體位址對應於具有不同效能特性之第一記憶體及第二記憶體中之一或多者的複數個記憶體區中的一記憶體區」。處理接著在圖3B中的區塊304處恢復。 現參考圖3B,記憶體控制器202隨後識別複數個QoSID 208(0)至208(Y)中之可經軟體組態的QoSID 208(0),其中QoSID 208(0)與記憶體位址222相關聯(區塊304)。因此,記憶體控制器202在本文中可被稱作「用於識別與記憶體位址相關聯之可經軟體組態的QoSID的構件」。一些態樣,諸如第一記憶體104經組態以操作為用於第二記憶體106之透明快取記憶體的態樣,可規定用於識別與記憶體位址222相關聯之QoSID 208(0)的區塊304的操作可包括判定記憶體控制器202之主表快取記憶體214之複數個主表快取項目216(0)至216(Z)中的主表快取項目216(0)是否對應於記憶體位址222(區塊308)。若是,則記憶體控制器202可存取主表快取項目216(0)(區塊310)。然而,若複數個主表快取項目216(0)至216(Z)中的主表快取項目216(0)不對應於記憶體位址222,則記憶體控制器202可存取第二記憶體106中的主表112,主表112包括複數個主表項目114(0)至114(M),該等主表項目114(0)至114(M)中之每一者對應於與複數個QoSID 212(0)至212(M)的QoSID 212(0)相關聯的記憶體位址222(區塊312)。在識別與記憶體位址222相關聯的QoSID 212(0)之後,處理在圖3C中的區塊314處恢復。 現轉向圖3C,記憶體控制器202使用記憶體控制器202之可經軟體組態的QoS策略表204將與記憶體位址222相關聯的QoSID 208(0)與QoS策略狀態210(0)相關聯(區塊314)。記憶體控制器202因此在本文中可被稱作「用於使用可經軟體組態的QoS策略表將與記憶體位址相關聯的QoSID與QoS策略狀態相關聯的構件」。記憶體控制器202接著應用QoS策略狀態210(0)以對第一記憶體104及第二記憶體106中之一者執行記憶體存取操作(區塊316)。在此方面,記憶體控制器202在本文中可被稱作「用於應用QoS策略狀態以對第一記憶體及第二記憶體中之一者執行記憶體存取操作的構件」。在一些態樣中,諸如第一記憶體104經組態以操作為用於第二記憶體106的透明快取記憶體的態樣,用於應用QoS策略狀態210(0)以執行記憶體存取操作之區塊316的操作可包含基於QoS策略狀態210(0)執行自第一記憶體104之快取收回及第一記憶體104之快取填充中之一者(區塊318)。一些態樣亦可規定記憶體控制器202可自在以處理器為基礎的系統200上執行的軟體處理程序110接收對QoS策略表204之複數個QoS策略項目206(0)至206(Y)中的QoS策略項目206(0)的更新(區塊320)。 根據本文中揭示的態樣使用在以處理器為基礎的系統中之空間服務品質(QoS)標示提供異質記憶體系統之彈性管理可提供於或整合於任何以處理器為基礎的裝置中。實例(不限於)包括機上盒、娛樂單元、導航裝置、通信裝置、固定位置資料單元、行動位置資料單元、全球定位系統(GPS)裝置、行動電話、蜂巢式電話、智慧型電話、會話起始協定(SIP)電話、平板電腦、平板手機、伺服器、電腦、攜帶型電腦、行動計算裝置、穿戴式計算裝置(例如,智慧型手錶、保健或健康追蹤器、眼用佩戴品等)、桌上型電腦、個人數位助理(PDA)、監視器、電腦監視器、電視、調諧器、無線電、衛星無線電、音樂播放機、數位音樂播放機、攜帶型音樂播放機、數位視訊播放機、視訊播放機、數位視訊光碟(DVD)播放機、攜帶型數位視訊播放機、汽車、車輛組件、航空電子系統、無人飛機及多旋翼飛行器。 在此方面,圖4說明可對應於圖2之以處理器為基礎的系統200且可使用圖2中說明之記憶體控制器202的以處理器為基礎的系統400的實例。在此實例中,以處理器為基礎的系統400包括一或多個中央處理單元(CPU)402,每一中央處理單元包括一或多個處理器404。CPU 402可為主裝置。CPU 402可具有耦接至處理器404以用於快速存取暫時經儲存之資料的快取記憶體406。CPU 402耦接至系統匯流排408,且可與包括於以處理器為基礎的系統400中的主裝置及從屬裝置相互耦接。眾所周知,CPU 402藉由經由系統匯流排408交換位址、控制及資料資訊而與此等其他裝置通信。舉例而言,CPU 402可將匯流排異動請求傳達至作為從屬裝置之實例的記憶體控制器202。 其他主裝置及從屬裝置可連接至系統匯流排408。如圖4中所說明,作為實例,此等裝置可包括記憶體系統410、一或多個輸入裝置412、一或多個輸出裝置414、一或多個網路介面裝置416及一或多個顯示控制器418。輸入裝置412可包括任何類型的輸入裝置,包括但不限於輸入鍵、切換器、語音處理器等。輸出裝置414可包括任何類型的輸出裝置,包括但不限於音訊、視訊、其他視覺指示器等。網路介面裝置416可為經組態以允許至網路420及自網路420之資料交換的任何裝置。網路420可為任何類型的網路,包括但不限於有線或無線網路、專用或公用網路、區域網路(LAN)、廣域網路(WLAN)及網際網路。網路介面裝置416可經組態以支援任何類型之所要通信協定。記憶體系統410可包括一或多個記憶體單元422(0)至422(Z),該等記憶體單元的子集可包含異質記憶體。 CPU 402亦可經組態以經由系統匯流排408存取顯示控制器418以控制發送至一或多個顯示器424的資訊。顯示控制器418經由一或多個視訊處理器426發送要被顯示的資訊至顯示器424,該等視訊處理器426將要被顯示的資訊處理為適合顯示器424的格式。顯示器424可包括任何類型的顯示器,其包括但不限於陰極射線管(CRT)、液晶顯示器(LCD)、電漿顯示器等。 熟習此項技術者將進一步瞭解,結合本文所揭示之態樣所描述的各種說明性邏輯區塊、模組、電路及演算法可實施為電子硬體、儲存於記憶體中或另一電腦可讀媒體中且由處理器或其他處理裝置執行的指令或此兩者的組合。作為實例,可在任何電路、硬體組件、積體電路(IC)或IC晶片中使用本文中描述的記憶體控制器。本文中揭示的記憶體可為任何類型及大小的記憶體,且可經組態以儲存所要的任何類型的資訊。為了清楚地說明此可互換性,上文已大體上在其功能性方面描述各種說明性組件、區塊、模組、電路及步驟。如何實施此功能性視特定應用、設計選擇及/或強加於整個系統之設計約束而定。對於每一特定應用而言,熟習此項技術者可以各種方式實施所描述之功能性,但不應將該等實施決策解釋為導致脫離本發明之範疇。 有關本文中揭示的態樣所描述之各種說明性記憶體控制器、邏輯區塊、模組及電路可利用處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)或其他可程式化邏輯裝置、離散閘或電晶體邏輯、離散硬體組件或經設計以執行本文中所描述之功能的其任何組合而實施或執行。處理器可為微處理器,但在替代方案中,處理器可為任何習知之處理器、控制器、微控制器或狀態機。處理器亦可實施為計算裝置的組合,例如DSP及微處理器的組合、複數個微處理器、結合DSP核心的一或多個微處理器,或任何其他該組態。 本文中揭示的態樣可實施於硬體中及儲存於硬體中的指令中,且可駐存於(例如)隨機存取記憶體(RAM)、快閃記憶體、唯讀記憶體(ROM)、電子可程式化ROM (EPROM)、電子可抹除可程式化ROM (EEPROM)、暫存器、動態RAM (DRAM)、同步DRAM (SDRAM)、硬碟、抽取式磁碟、CD-ROM或此項技術中已知的任何其他形式的電腦可讀媒體。例示性儲存媒體耦接至處理器,使得處理器可自儲存媒體讀取資訊且將資訊寫入至儲存媒體。在替代方案中,儲存媒體可與處理器成一整體。處理器及儲存媒體可駐存於ASIC中。ASIC可駐存於遠端台中。在替代方案中,處理器及儲存媒體可作為離散組件駐存於遠端台、基地台或伺服器中。 亦應注意,本文中的例示性態樣中之任一者中所描述的操作步驟經描述以提供實例及論述。可以除所說明之組以外的眾多不同組執行所描述的操作。另外,描述於單一操作步驟中的操作可實際上以數個不同步驟執行。另外,可組合例示性態樣中論述的一或多個操作步驟。應瞭解,對於熟習此項技術者而言顯而易見,流程圖中所說明的操作步驟可經受眾多不同修改。熟習此項技術者亦將瞭解,可使用各種不同技術及技法中之任一者表示資訊及信號。舉例而言,可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合表示在整個以上描述中可能參考的資料、指令、命令、資訊、信號、位元、符號及碼片。 提供本發明的先前描述以允許任何熟習此項技術者製造或使用本發明。對本發明的各種修改對於熟習此項技術者而言將顯而易見,且本文中所定義的通用原理可在不背離本發明之精神或範疇的情況下應用於其他變化體。因此,本發明並不意欲限於本文中所描述的實例及設計,而應符合與本文中所揭示之原理及新穎特徵相一致的最廣泛範疇。
100‧‧‧以處理器為基礎的系統
102‧‧‧異質記憶體系統
104‧‧‧第一記憶體
106‧‧‧第二記憶體
108‧‧‧記憶體控制器
110‧‧‧軟體處理程序
112‧‧‧主表
114(0)‧‧‧主表項目
114(M)‧‧‧主表項目
116(0)‧‧‧記憶體位址
116(M)‧‧‧記憶體位址
116'(0)‧‧‧快取記憶體位址
116'(Z)‧‧‧快取記憶體位址
118(0)‧‧‧記憶體區
118(X)‧‧‧記憶體區
120(0)‧‧‧快取通路識別符
120(M)‧‧‧快取通路識別符
120'(0)‧‧‧快取通路識別符
120'(Z)‧‧‧快取通路識別符
200‧‧‧以處理器為基礎的系統
202‧‧‧記憶體控制器
204‧‧‧QoS策略表
206(0)‧‧‧QoS策略項目
206(Y)‧‧‧QoS策略項目
208(0)‧‧‧QoSID
208(Y)‧‧‧QoSID
210(0)‧‧‧QoS策略狀態
210(Y)‧‧‧QoS策略狀態
212(0)‧‧‧QoSID
212(M)‧‧‧QoSID
212'(0)‧‧‧快取QoSID
212'(Z)‧‧‧快取QoSID
216(0)‧‧‧主表快取項目
216(Z)‧‧‧主表快取項目
218(0)‧‧‧QoSID
218(Q)‧‧‧QoSID
220‧‧‧記憶體存取請求
222‧‧‧記憶體位址
300‧‧‧區塊
302‧‧‧區塊
304‧‧‧區塊
308‧‧‧區塊
310‧‧‧區塊
312‧‧‧區塊
314‧‧‧區塊
316‧‧‧區塊
318‧‧‧區塊
320‧‧‧區塊
400‧‧‧以處理器為基礎的系統
402‧‧‧中央處理單元(CPU)
404‧‧‧處理器
406‧‧‧快取記憶體
408‧‧‧系統匯流排
410‧‧‧記憶體系統
412‧‧‧輸入裝置
414‧‧‧輸出裝置
416‧‧‧網路介面裝置
418‧‧‧顯示控制器
420‧‧‧網路
422(0)‧‧‧記憶體單元
422(Z)‧‧‧記憶體單元
424‧‧‧顯示器
426‧‧‧視訊處理器
圖1為提供異質記憶體系統之例示性以處理器為基礎的系統的方塊圖; 圖2為包括用於使用空間服務品質(QoS)標示提供異質記憶體系統之彈性管理之記憶體控制器的以處理器為基礎的系統的方塊圖; 圖3A至圖3C為說明用於使用空間QoS標示彈性地管理異質記憶體系統之圖2之記憶體控制器的例示性操作的流程圖;及 圖4為可包括異質記憶體系統及圖2之記憶體控制器的例示性以處理器為基礎的系統的方塊圖。
Claims (25)
- 一種用於提供一以處理器為基礎的系統之一異質記憶體系統之彈性管理的一記憶體控制器,該記憶體控制器以通信方式耦接至具有不同效能特性的一第一記憶體及一第二記憶體; 該記憶體控制器包含提供複數個QoS策略項目的一可經軟體組態的服務品質(QoS)策略表,各QoS策略項目包含一QoS策略狀態且與一或多個QoS識別符(QoSID)中的一QoSID相關聯,該QoSID與複數個記憶體區中的一或多者相關聯,其中該複數個記憶體區駐存於該第一記憶體、該第二記憶體或兩者內;及 該記憶體控制器經組態以: 接收包含對應於該複數個記憶體區中之一記憶體區的一記憶體位址的一記憶體存取請求; 識別與該記憶體位址相關聯的一可經軟體組態的QoSID; 使用該QoS策略表將與該記憶體位址相關聯的該QoSID與一QoS策略狀態相關聯;及 應用該QoS策略狀態以對該第一記憶體及該第二記憶體中之一者執行一記憶體存取操作。
- 如請求項1之記憶體控制器,其進一步經組態以將該第一記憶體操作為用於該第二記憶體的一透明快取記憶體; 其中該複數個記憶體區包含該第二記憶體的複數個記憶體區。
- 如請求項2之記憶體控制器,其經組態以應用該QoS策略狀態以藉由經組態以基於該QoS策略狀態執行自該第一記憶體之一快取收回及該第一記憶體之一快取填充中之一者而執行該記憶體存取操作。
- 如請求項3之記憶體控制器,其經組態以基於該QoS策略狀態執行自該第一記憶體的該快取收回,此係藉由經組態以: 隨機採集對應於該第一記憶體之複數個快取行的該複數個QoSID的樣本;及 選擇該複數個快取行中的與超過用於自該第一記憶體之收回的配額最多的一QoSID相關聯之一快取行。
- 如請求項2之記憶體控制器,其經組態以藉由經組態以存取該第二記憶體中的一主表而識別與該記憶體位址相關聯的該QoSID,該主表包含複數個主表項目,各主表項目對應於與該一或多個QoSID中之一QoSID相關聯的一系列一或多個記憶體位址。
- 如請求項5之記憶體控制器,其進一步經組態以自在該以處理器為基礎的系統上執行之一軟體處理程序接收對該主表之該複數個主表項目中之一主表項目的一更新。
- 如請求項5之記憶體控制器,其進一步包含一主表快取記憶體,該主表快取記憶體包含複數個主表快取項目,各主表快取項目經組態以快取該主表的一主表項目; 該記憶體控制器經組態以藉由經組態以在存取該第二記憶體中的該主表之前進行以下操作而識別與該記憶體位址相關聯的該QoSID: 判定該主表快取記憶體之該複數個主表快取項目中的一主表快取項目是否對應於該記憶體位址;及 回應於判定該複數個主表快取項目中的一主表快取項目對應於該記憶體位址,存取該主表快取項目; 其中該記憶體控制器經組態以回應於判定該複數個主表快取項目中的一主表快取項目不對應於該記憶體位址而存取該第二記憶體中的該主表。
- 如請求項2之記憶體控制器,其經組態以藉由經組態以存取由與該記憶體位址相關聯之該第一記憶體儲存的該QoSID而識別與該記憶體位址相關聯的該QoSID。
- 如請求項1之記憶體控制器,其進一步經組態以自在該以處理器為基礎的系統上執行的一軟體處理程序接收對該QoS策略表之該複數個QoS策略項目中之一QoS策略項目的一更新。
- 如請求項1之記憶體控制器,其中該複數個QoS策略項目中之每一者的一QoS策略狀態表明一配額、一優先權、一比例共用權重及一機率中的一或多者。
- 如請求項1之記憶體控制器,其以通信方式耦接至作為該第一記憶體的一高頻寬記憶體(HBM)且耦接至作為該第二記憶體的一動態隨機存取記憶體(DRAM)。
- 如請求項1之記憶體控制器,其經整合於一積體電路(IC)中。
- 如請求項1之記憶體控制器,其整合於選自由以下組成之群的一裝置中:一機上盒;一娛樂單元;一導航裝置;一通信裝置;一固定位置資料單元;一行動位置資料單元;一全球定位系統(GPS)裝置;一行動電話;一蜂巢式電話;一智慧型電話;一會話起始協定(SIP)電話;一平板電腦;一平板手機;一伺服器;一電腦;一攜帶型電腦;一行動計算裝置;一穿戴式計算裝置(例如,一智慧型手錶、一保健或健康追蹤器、眼用佩戴品等);一桌上型電腦;一個人數位助理(PDA);一監視器;一電腦監視器;一電視;一調諧器;一無線電;一衛星無線電;一音樂播放機;一數位音樂播放機;一攜帶型音樂播放機;一數位視訊播放機;一視訊播放機;一數位視訊光碟(DVD)播放機;一攜帶型數位視訊播放機;一汽車;一車輛組件;航空電子系統;一無人飛機;及一多旋翼飛行器。
- 一種用於提供一以處理器為基礎的系統之一異質記憶體系統之彈性管理的記憶體控制器,其包含: 用於接收包含一記憶體位址之一記憶體存取請求的一構件,該記憶體位址對應於具有不同效能特性之一第一記憶體及一第二記憶體中之一或多者的複數個記憶體區中的一記憶體區; 用於識別與該記憶體位址相關聯之一可經軟體組態的服務品質(QoS)識別符(QoSID)的一構件; 用於使用一可經軟體組態的QoS策略表將與該記憶體位址相關聯的該QoSID與一QoS策略狀態相關聯的一構件;及 用於應用該QoS策略狀態以對該第一記憶體及該第二記憶體中之一者執行一記憶體存取操作的一構件。
- 一種用於提供一以處理器為基礎的系統之一異質記憶體系統之彈性管理的方法,其包含: 藉由一記憶體控制器接收包含一記憶體位址的一記憶體存取請求,該記憶體位址對應於具有不同效能特性之一第一記憶體及一第二記憶體中之一或多者的複數個記憶體區中的一記憶體區; 識別複數個服務品質(QoS)識別符(QoSID)中之一可經軟體組態的QoSID,其中該QoSID與該記憶體位址相關聯; 使用該記憶體控制器之一可經軟體組態的QoS策略表將與該記憶體位址相關聯的該QoSID與一QoS策略狀態相關聯;及 應用該QoS策略狀態以對該第一記憶體及該第二記憶體中之一者執行一記憶體存取操作。
- 如請求項15之方法,其進一步包含將該第一記憶體操作為用於該第二記憶體的一透明快取記憶體; 其中該複數個記憶體區包含該第二記憶體的複數個記憶體區。
- 如請求項16之方法,其中應用該QoS策略狀態以執行該記憶體存取操作包含基於該QoS策略狀態執行自該第一記憶體的一快取收回及該第一記憶體的一快取填充中之一者。
- 如請求項17之方法,其中基於該QoS策略狀態執行自該第一記憶體的該快取收回包含: 隨機採集對應於該第一記憶體之複數個快取行的該複數個QoSID的樣本;及 選擇該複數個快取行中的與超過用於自該第一記憶體之收回的配額最多的QoSID相關聯之一快取行。
- 如請求項16之方法,其中識別與該記憶體位址相關聯的該QoSID包含在該第二記憶體中存取一主表,該主表包含複數個主表項目,各主表項目對應於與該複數個QoSID中之一QoSID相關聯的一系列一或多個記憶體位址。
- 如請求項19之方法,其進一步包含自在該以處理器為基礎的系統上執行的一軟體處理程序接收對該主表之該複數個主表項目中之一主表項目的一更新。
- 如請求項19之方法,其中: 該記憶體控制器包含一主表快取記憶體,該主表快取記憶體包含複數個主表快取項目,各主表快取項目經組態以快取該主表的一主表項目; 識別與該記憶體位址相關聯的該QoSID包含在存取該第二記憶體中的該主表之前進行以下操作: 判定該主表快取記憶體之該複數個主表快取項目中的一主表快取項目是否對應於該記憶體位址;及 回應於判定該複數個主表快取項目中的一主表快取項目對應於該記憶體位址,存取該主表快取項目;及 在該第二記憶體中存取該主表係回應於判定該複數個主表快取項目中的一主表快取項目不對應於該記憶體位址。
- 如請求項16之方法,其中識別與該記憶體位址相關聯的該QoSID包含存取由與該記憶體位址相關聯之該第一記憶體儲存的該QoSID。
- 如請求項15之方法,其進一步包含自在該以處理器為基礎的系統上執行的一軟體處理程序接收對該QoS策略表之複數個QoS策略項目中之一QoS策略項目的一更新。
- 如請求項15之方法,其中該QoS策略狀態表明一配額、一優先權、一比例共用權重及一機率中之一或多者。
- 如請求項15之方法,其中該第一記憶體包含一高頻寬記憶體(HBM)且該第二記憶體包含一動態隨機存取記憶體(DRAM)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/272,951 US10055158B2 (en) | 2016-09-22 | 2016-09-22 | Providing flexible management of heterogeneous memory systems using spatial quality of service (QoS) tagging in processor-based systems |
US15/272,951 | 2016-09-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201814539A true TW201814539A (zh) | 2018-04-16 |
TWI655545B TWI655545B (zh) | 2019-04-01 |
Family
ID=59762104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106127867A TWI655545B (zh) | 2016-09-22 | 2017-08-17 | 用於提供異質記憶體系統之彈性管理之記憶體控制器及方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10055158B2 (zh) |
EP (1) | EP3516523B1 (zh) |
JP (1) | JP7116047B2 (zh) |
KR (1) | KR102545726B1 (zh) |
CN (1) | CN109690500B (zh) |
BR (1) | BR112019005235A2 (zh) |
CA (1) | CA3034273A1 (zh) |
TW (1) | TWI655545B (zh) |
WO (1) | WO2018057231A1 (zh) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11586627B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Partitioning and reducing records at ingest of a worker node |
US11281706B2 (en) | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
US11874691B1 (en) | 2016-09-26 | 2024-01-16 | Splunk Inc. | Managing efficient query execution including mapping of buckets to search nodes |
US11243963B2 (en) | 2016-09-26 | 2022-02-08 | Splunk Inc. | Distributing partial results to worker nodes from an external data system |
US11663227B2 (en) | 2016-09-26 | 2023-05-30 | Splunk Inc. | Generating a subquery for a distinct data intake and query system |
US10956415B2 (en) | 2016-09-26 | 2021-03-23 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US10977260B2 (en) | 2016-09-26 | 2021-04-13 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
US11580107B2 (en) | 2016-09-26 | 2023-02-14 | Splunk Inc. | Bucket data distribution for exporting data to worker nodes |
US10353965B2 (en) | 2016-09-26 | 2019-07-16 | Splunk Inc. | Data fabric service system architecture |
US11567993B1 (en) | 2016-09-26 | 2023-01-31 | Splunk Inc. | Copying buckets from a remote shared storage system to memory associated with a search node for query execution |
US11604795B2 (en) | 2016-09-26 | 2023-03-14 | Splunk Inc. | Distributing partial results from an external data system between worker nodes |
US11232100B2 (en) | 2016-09-26 | 2022-01-25 | Splunk Inc. | Resource allocation for multiple datasets |
US11023463B2 (en) | 2016-09-26 | 2021-06-01 | Splunk Inc. | Converting and modifying a subquery for an external data system |
US11550847B1 (en) | 2016-09-26 | 2023-01-10 | Splunk Inc. | Hashing bucket identifiers to identify search nodes for efficient query execution |
US11321321B2 (en) | 2016-09-26 | 2022-05-03 | Splunk Inc. | Record expansion and reduction based on a processing task in a data intake and query system |
US11416528B2 (en) | 2016-09-26 | 2022-08-16 | Splunk Inc. | Query acceleration data store |
US11314753B2 (en) | 2016-09-26 | 2022-04-26 | Splunk Inc. | Execution of a query received from a data intake and query system |
US11461334B2 (en) | 2016-09-26 | 2022-10-04 | Splunk Inc. | Data conditioning for dataset destination |
US11250056B1 (en) | 2016-09-26 | 2022-02-15 | Splunk Inc. | Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system |
US11294941B1 (en) | 2016-09-26 | 2022-04-05 | Splunk Inc. | Message-based data ingestion to a data intake and query system |
US11126632B2 (en) | 2016-09-26 | 2021-09-21 | Splunk Inc. | Subquery generation based on search configuration data from an external data system |
US20180089324A1 (en) | 2016-09-26 | 2018-03-29 | Splunk Inc. | Dynamic resource allocation for real-time search |
US11163758B2 (en) | 2016-09-26 | 2021-11-02 | Splunk Inc. | External dataset capability compensation |
US10984044B1 (en) | 2016-09-26 | 2021-04-20 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system |
US11599541B2 (en) | 2016-09-26 | 2023-03-07 | Splunk Inc. | Determining records generated by a processing task of a query |
US11615104B2 (en) | 2016-09-26 | 2023-03-28 | Splunk Inc. | Subquery generation based on a data ingest estimate of an external data system |
US11222066B1 (en) | 2016-09-26 | 2022-01-11 | Splunk Inc. | Processing data using containerized state-free indexing nodes in a containerized scalable environment |
US11106734B1 (en) | 2016-09-26 | 2021-08-31 | Splunk Inc. | Query execution using containerized state-free search nodes in a containerized scalable environment |
US11860940B1 (en) | 2016-09-26 | 2024-01-02 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets |
US11620336B1 (en) * | 2016-09-26 | 2023-04-04 | Splunk Inc. | Managing and storing buckets to a remote shared storage system based on a collective bucket size |
US11003714B1 (en) | 2016-09-26 | 2021-05-11 | Splunk Inc. | Search node and bucket identification using a search node catalog and a data store catalog |
US11269939B1 (en) | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
US11562023B1 (en) | 2016-09-26 | 2023-01-24 | Splunk Inc. | Merging buckets in a data intake and query system |
US11442935B2 (en) | 2016-09-26 | 2022-09-13 | Splunk Inc. | Determining a record generation estimate of a processing task |
US11593377B2 (en) | 2016-09-26 | 2023-02-28 | Splunk Inc. | Assigning processing tasks in a data intake and query system |
KR20180104830A (ko) * | 2017-03-14 | 2018-09-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이의 동작 방법 |
US11989194B2 (en) | 2017-07-31 | 2024-05-21 | Splunk Inc. | Addressing memory limits for partition tracking among worker nodes |
US11921672B2 (en) | 2017-07-31 | 2024-03-05 | Splunk Inc. | Query execution at a remote heterogeneous data store of a data fabric service |
US20190057045A1 (en) * | 2017-08-16 | 2019-02-21 | Alibaba Group Holding Limited | Methods and systems for caching based on service level agreement |
US11151137B2 (en) | 2017-09-25 | 2021-10-19 | Splunk Inc. | Multi-partition operation in combination operations |
US10896182B2 (en) | 2017-09-25 | 2021-01-19 | Splunk Inc. | Multi-partitioning determination for combination operations |
US11334543B1 (en) | 2018-04-30 | 2022-05-17 | Splunk Inc. | Scalable bucket merging for a data intake and query system |
WO2020220216A1 (en) | 2019-04-29 | 2020-11-05 | Splunk Inc. | Search time estimate in data intake and query system |
US11715051B1 (en) | 2019-04-30 | 2023-08-01 | Splunk Inc. | Service provider instance recommendations using machine-learned classifications and reconciliation |
US11343176B2 (en) * | 2019-06-24 | 2022-05-24 | Amazon Technologies, Inc. | Interconnect address based QoS regulation |
US11494380B2 (en) | 2019-10-18 | 2022-11-08 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
US11237731B2 (en) | 2019-10-24 | 2022-02-01 | Micron Technology, Inc. | Quality of service for memory devices using suspend and resume of program and erase operations |
US11687244B2 (en) * | 2019-10-24 | 2023-06-27 | Micron Technology, Inc. | Quality of service for memory devices using weighted memory access operation types |
US11620053B2 (en) * | 2019-10-24 | 2023-04-04 | Micron Technology, Inc. | Quality of service for the multiple functions in memory devices |
US11922222B1 (en) | 2020-01-30 | 2024-03-05 | Splunk Inc. | Generating a modified component for a data intake and query system using an isolated execution environment image |
US11704313B1 (en) | 2020-10-19 | 2023-07-18 | Splunk Inc. | Parallel branch operation using intermediary nodes |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6260127B1 (en) | 1998-07-13 | 2001-07-10 | Compaq Computer Corporation | Method and apparatus for supporting heterogeneous memory in computer systems |
US20030135609A1 (en) * | 2002-01-16 | 2003-07-17 | Sun Microsystems, Inc. | Method, system, and program for determining a modification of a system resource configuration |
US8259566B2 (en) * | 2005-09-20 | 2012-09-04 | Qualcomm Incorporated | Adaptive quality of service policy for dynamic networks |
US7646636B2 (en) | 2007-02-16 | 2010-01-12 | Mosaid Technologies Incorporated | Non-volatile memory with dynamic multi-mode operation |
US20080270483A1 (en) * | 2007-04-30 | 2008-10-30 | Hewlett-Packard Development Company, L.P. | Storage Management System |
US20110055495A1 (en) * | 2009-08-28 | 2011-03-03 | Qualcomm Incorporated | Memory Controller Page Management Devices, Systems, and Methods |
US20130046934A1 (en) | 2011-08-15 | 2013-02-21 | Robert Nychka | System caching using heterogenous memories |
US8751746B2 (en) | 2011-12-15 | 2014-06-10 | Apple Inc. | QoS management in the L2 cache |
US9100321B2 (en) * | 2012-11-28 | 2015-08-04 | International Business Machines Corporation | Dynamic network traffic management in response to non-network conditions input |
US9092327B2 (en) * | 2012-12-10 | 2015-07-28 | Qualcomm Incorporated | System and method for allocating memory to dissimilar memory devices using quality of service |
US9201777B2 (en) * | 2012-12-23 | 2015-12-01 | Advanced Micro Devices, Inc. | Quality of service support using stacked memory device with logic die |
US9224452B2 (en) * | 2013-01-17 | 2015-12-29 | Qualcomm Incorporated | Heterogeneous memory systems, and related methods and computer-readable media for supporting heterogeneous memory access requests in processor-based systems |
US9880773B2 (en) * | 2013-03-27 | 2018-01-30 | Vmware, Inc. | Non-homogeneous disk abstraction for data oriented applications |
WO2015101827A1 (en) | 2013-12-31 | 2015-07-09 | Mosys, Inc. | Integrated main memory and coprocessor with low latency |
US20150286571A1 (en) * | 2014-04-04 | 2015-10-08 | Qualcomm Incorporated | Adaptive cache prefetching based on competing dedicated prefetch policies in dedicated cache sets to reduce cache pollution |
US10838862B2 (en) * | 2014-05-21 | 2020-11-17 | Qualcomm Incorporated | Memory controllers employing memory capacity compression, and related processor-based systems and methods |
US10282100B2 (en) * | 2014-08-19 | 2019-05-07 | Samsung Electronics Co., Ltd. | Data management scheme in virtualized hyperscale environments |
US10437479B2 (en) | 2014-08-19 | 2019-10-08 | Samsung Electronics Co., Ltd. | Unified addressing and hierarchical heterogeneous storage and memory |
US9627072B2 (en) * | 2014-11-25 | 2017-04-18 | Macronix International Co., Ltd. | Variant operation sequences for multibit memory |
US9678875B2 (en) * | 2014-11-25 | 2017-06-13 | Qualcomm Incorporated | Providing shared cache memory allocation control in shared cache memory systems |
US9697126B2 (en) * | 2014-11-25 | 2017-07-04 | Qualcomm Incorporated | Generating approximate usage measurements for shared cache memory systems |
US9575881B2 (en) * | 2014-12-04 | 2017-02-21 | Qualcomm Incorporated | Systems and methods for providing improved latency in a non-uniform memory architecture |
-
2016
- 2016-09-22 US US15/272,951 patent/US10055158B2/en active Active
-
2017
- 2017-08-17 TW TW106127867A patent/TWI655545B/zh not_active IP Right Cessation
- 2017-08-25 CN CN201780054540.XA patent/CN109690500B/zh active Active
- 2017-08-25 BR BR112019005235A patent/BR112019005235A2/pt unknown
- 2017-08-25 CA CA3034273A patent/CA3034273A1/en active Pending
- 2017-08-25 EP EP17761422.9A patent/EP3516523B1/en active Active
- 2017-08-25 JP JP2019514121A patent/JP7116047B2/ja active Active
- 2017-08-25 KR KR1020197007982A patent/KR102545726B1/ko active IP Right Grant
- 2017-08-25 WO PCT/US2017/048561 patent/WO2018057231A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
EP3516523A1 (en) | 2019-07-31 |
CN109690500B (zh) | 2023-06-20 |
TWI655545B (zh) | 2019-04-01 |
US10055158B2 (en) | 2018-08-21 |
CN109690500A (zh) | 2019-04-26 |
KR20190049742A (ko) | 2019-05-09 |
US20180081579A1 (en) | 2018-03-22 |
KR102545726B1 (ko) | 2023-06-19 |
EP3516523B1 (en) | 2021-09-15 |
JP2019532412A (ja) | 2019-11-07 |
BR112019005235A2 (pt) | 2019-06-04 |
WO2018057231A1 (en) | 2018-03-29 |
CA3034273A1 (en) | 2018-03-29 |
JP7116047B2 (ja) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI655545B (zh) | 用於提供異質記憶體系統之彈性管理之記憶體控制器及方法 | |
US10169246B2 (en) | Reducing metadata size in compressed memory systems of processor-based systems | |
US10678690B2 (en) | Providing fine-grained quality of service (QoS) control using interpolation for partitioned resources in processor-based systems | |
CN104919439A (zh) | 用于支持基于处理器的系统中的异构存储器存取请求的异构存储器系统以及相关方法和计算机可读媒体 | |
US20170212840A1 (en) | Providing scalable dynamic random access memory (dram) cache management using tag directory caches | |
US9824015B2 (en) | Providing memory management unit (MMU) partitioned translation caches, and related apparatuses, methods, and computer-readable media | |
US20180173623A1 (en) | Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compressed memory system to avoid stalling write operations | |
JP2017522645A (ja) | フラッシュメモリベースのストレージデバイスの入力/出力仮想化(iov)ホストコントローラ(hc)(iov−hc) | |
EP3224727B1 (en) | Generating approximate usage measurements for shared cache memory systems | |
CN115210697A (zh) | 用于转换后备缓冲器中的多个页面大小的灵活存储和优化搜索 | |
US10228991B2 (en) | Providing hardware-based translation lookaside buffer (TLB) conflict resolution in processor-based systems | |
US10176096B2 (en) | Providing scalable dynamic random access memory (DRAM) cache management using DRAM cache indicator caches | |
US10754795B2 (en) | MMU assisted address sanitizer | |
US11755498B2 (en) | Emulating scratchpad functionality using caches in processor-based devices | |
US10896041B1 (en) | Enabling early execution of move-immediate instructions having variable immediate value sizes in processor-based devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |