TW201814539A - 使用在一以處理器為基礎的系統中之空間服務品質標示提供異質記憶體系統之彈性管理 - Google Patents

使用在一以處理器為基礎的系統中之空間服務品質標示提供異質記憶體系統之彈性管理 Download PDF

Info

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
Application number
TW106127867A
Other languages
English (en)
Other versions
TWI655545B (zh
Inventor
柯林 必頓 維里樂
卡爾 艾倫 瓦爾德斯伯格
納塔拉詹 瓦伊迪安阿坦
馬瑟斯 寇爾奈里斯 安東尼爾斯 安德里亞努斯 赫迪斯
柯斯塔夫 巴哈塔恰里亞
Original Assignee
美商高通公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商高通公司 filed Critical 美商高通公司
Publication of TW201814539A publication Critical patent/TW201814539A/zh
Application granted granted Critical
Publication of TWI655545B publication Critical patent/TWI655545B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration 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)

  1. 一種用於提供一以處理器為基礎的系統之一異質記憶體系統之彈性管理的一記憶體控制器,該記憶體控制器以通信方式耦接至具有不同效能特性的一第一記憶體及一第二記憶體; 該記憶體控制器包含提供複數個QoS策略項目的一可經軟體組態的服務品質(QoS)策略表,各QoS策略項目包含一QoS策略狀態且與一或多個QoS識別符(QoSID)中的一QoSID相關聯,該QoSID與複數個記憶體區中的一或多者相關聯,其中該複數個記憶體區駐存於該第一記憶體、該第二記憶體或兩者內;及 該記憶體控制器經組態以: 接收包含對應於該複數個記憶體區中之一記憶體區的一記憶體位址的一記憶體存取請求; 識別與該記憶體位址相關聯的一可經軟體組態的QoSID; 使用該QoS策略表將與該記憶體位址相關聯的該QoSID與一QoS策略狀態相關聯;及 應用該QoS策略狀態以對該第一記憶體及該第二記憶體中之一者執行一記憶體存取操作。
  2. 如請求項1之記憶體控制器,其進一步經組態以將該第一記憶體操作為用於該第二記憶體的一透明快取記憶體; 其中該複數個記憶體區包含該第二記憶體的複數個記憶體區。
  3. 如請求項2之記憶體控制器,其經組態以應用該QoS策略狀態以藉由經組態以基於該QoS策略狀態執行自該第一記憶體之一快取收回及該第一記憶體之一快取填充中之一者而執行該記憶體存取操作。
  4. 如請求項3之記憶體控制器,其經組態以基於該QoS策略狀態執行自該第一記憶體的該快取收回,此係藉由經組態以: 隨機採集對應於該第一記憶體之複數個快取行的該複數個QoSID的樣本;及 選擇該複數個快取行中的與超過用於自該第一記憶體之收回的配額最多的一QoSID相關聯之一快取行。
  5. 如請求項2之記憶體控制器,其經組態以藉由經組態以存取該第二記憶體中的一主表而識別與該記憶體位址相關聯的該QoSID,該主表包含複數個主表項目,各主表項目對應於與該一或多個QoSID中之一QoSID相關聯的一系列一或多個記憶體位址。
  6. 如請求項5之記憶體控制器,其進一步經組態以自在該以處理器為基礎的系統上執行之一軟體處理程序接收對該主表之該複數個主表項目中之一主表項目的一更新。
  7. 如請求項5之記憶體控制器,其進一步包含一主表快取記憶體,該主表快取記憶體包含複數個主表快取項目,各主表快取項目經組態以快取該主表的一主表項目; 該記憶體控制器經組態以藉由經組態以在存取該第二記憶體中的該主表之前進行以下操作而識別與該記憶體位址相關聯的該QoSID: 判定該主表快取記憶體之該複數個主表快取項目中的一主表快取項目是否對應於該記憶體位址;及 回應於判定該複數個主表快取項目中的一主表快取項目對應於該記憶體位址,存取該主表快取項目; 其中該記憶體控制器經組態以回應於判定該複數個主表快取項目中的一主表快取項目不對應於該記憶體位址而存取該第二記憶體中的該主表。
  8. 如請求項2之記憶體控制器,其經組態以藉由經組態以存取由與該記憶體位址相關聯之該第一記憶體儲存的該QoSID而識別與該記憶體位址相關聯的該QoSID。
  9. 如請求項1之記憶體控制器,其進一步經組態以自在該以處理器為基礎的系統上執行的一軟體處理程序接收對該QoS策略表之該複數個QoS策略項目中之一QoS策略項目的一更新。
  10. 如請求項1之記憶體控制器,其中該複數個QoS策略項目中之每一者的一QoS策略狀態表明一配額、一優先權、一比例共用權重及一機率中的一或多者。
  11. 如請求項1之記憶體控制器,其以通信方式耦接至作為該第一記憶體的一高頻寬記憶體(HBM)且耦接至作為該第二記憶體的一動態隨機存取記憶體(DRAM)。
  12. 如請求項1之記憶體控制器,其經整合於一積體電路(IC)中。
  13. 如請求項1之記憶體控制器,其整合於選自由以下組成之群的一裝置中:一機上盒;一娛樂單元;一導航裝置;一通信裝置;一固定位置資料單元;一行動位置資料單元;一全球定位系統(GPS)裝置;一行動電話;一蜂巢式電話;一智慧型電話;一會話起始協定(SIP)電話;一平板電腦;一平板手機;一伺服器;一電腦;一攜帶型電腦;一行動計算裝置;一穿戴式計算裝置(例如,一智慧型手錶、一保健或健康追蹤器、眼用佩戴品等);一桌上型電腦;一個人數位助理(PDA);一監視器;一電腦監視器;一電視;一調諧器;一無線電;一衛星無線電;一音樂播放機;一數位音樂播放機;一攜帶型音樂播放機;一數位視訊播放機;一視訊播放機;一數位視訊光碟(DVD)播放機;一攜帶型數位視訊播放機;一汽車;一車輛組件;航空電子系統;一無人飛機;及一多旋翼飛行器。
  14. 一種用於提供一以處理器為基礎的系統之一異質記憶體系統之彈性管理的記憶體控制器,其包含: 用於接收包含一記憶體位址之一記憶體存取請求的一構件,該記憶體位址對應於具有不同效能特性之一第一記憶體及一第二記憶體中之一或多者的複數個記憶體區中的一記憶體區; 用於識別與該記憶體位址相關聯之一可經軟體組態的服務品質(QoS)識別符(QoSID)的一構件; 用於使用一可經軟體組態的QoS策略表將與該記憶體位址相關聯的該QoSID與一QoS策略狀態相關聯的一構件;及 用於應用該QoS策略狀態以對該第一記憶體及該第二記憶體中之一者執行一記憶體存取操作的一構件。
  15. 一種用於提供一以處理器為基礎的系統之一異質記憶體系統之彈性管理的方法,其包含: 藉由一記憶體控制器接收包含一記憶體位址的一記憶體存取請求,該記憶體位址對應於具有不同效能特性之一第一記憶體及一第二記憶體中之一或多者的複數個記憶體區中的一記憶體區; 識別複數個服務品質(QoS)識別符(QoSID)中之一可經軟體組態的QoSID,其中該QoSID與該記憶體位址相關聯; 使用該記憶體控制器之一可經軟體組態的QoS策略表將與該記憶體位址相關聯的該QoSID與一QoS策略狀態相關聯;及 應用該QoS策略狀態以對該第一記憶體及該第二記憶體中之一者執行一記憶體存取操作。
  16. 如請求項15之方法,其進一步包含將該第一記憶體操作為用於該第二記憶體的一透明快取記憶體; 其中該複數個記憶體區包含該第二記憶體的複數個記憶體區。
  17. 如請求項16之方法,其中應用該QoS策略狀態以執行該記憶體存取操作包含基於該QoS策略狀態執行自該第一記憶體的一快取收回及該第一記憶體的一快取填充中之一者。
  18. 如請求項17之方法,其中基於該QoS策略狀態執行自該第一記憶體的該快取收回包含: 隨機採集對應於該第一記憶體之複數個快取行的該複數個QoSID的樣本;及 選擇該複數個快取行中的與超過用於自該第一記憶體之收回的配額最多的QoSID相關聯之一快取行。
  19. 如請求項16之方法,其中識別與該記憶體位址相關聯的該QoSID包含在該第二記憶體中存取一主表,該主表包含複數個主表項目,各主表項目對應於與該複數個QoSID中之一QoSID相關聯的一系列一或多個記憶體位址。
  20. 如請求項19之方法,其進一步包含自在該以處理器為基礎的系統上執行的一軟體處理程序接收對該主表之該複數個主表項目中之一主表項目的一更新。
  21. 如請求項19之方法,其中: 該記憶體控制器包含一主表快取記憶體,該主表快取記憶體包含複數個主表快取項目,各主表快取項目經組態以快取該主表的一主表項目; 識別與該記憶體位址相關聯的該QoSID包含在存取該第二記憶體中的該主表之前進行以下操作: 判定該主表快取記憶體之該複數個主表快取項目中的一主表快取項目是否對應於該記憶體位址;及 回應於判定該複數個主表快取項目中的一主表快取項目對應於該記憶體位址,存取該主表快取項目;及 在該第二記憶體中存取該主表係回應於判定該複數個主表快取項目中的一主表快取項目不對應於該記憶體位址。
  22. 如請求項16之方法,其中識別與該記憶體位址相關聯的該QoSID包含存取由與該記憶體位址相關聯之該第一記憶體儲存的該QoSID。
  23. 如請求項15之方法,其進一步包含自在該以處理器為基礎的系統上執行的一軟體處理程序接收對該QoS策略表之複數個QoS策略項目中之一QoS策略項目的一更新。
  24. 如請求項15之方法,其中該QoS策略狀態表明一配額、一優先權、一比例共用權重及一機率中之一或多者。
  25. 如請求項15之方法,其中該第一記憶體包含一高頻寬記憶體(HBM)且該第二記憶體包含一動態隨機存取記憶體(DRAM)。
TW106127867A 2016-09-22 2017-08-17 用於提供異質記憶體系統之彈性管理之記憶體控制器及方法 TWI655545B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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