CN109690500B - 使用空间服务质量(QoS)标记提供异质存储器系统的弹性管理 - Google Patents

使用空间服务质量(QoS)标记提供异质存储器系统的弹性管理 Download PDF

Info

Publication number
CN109690500B
CN109690500B CN201780054540.XA CN201780054540A CN109690500B CN 109690500 B CN109690500 B CN 109690500B CN 201780054540 A CN201780054540 A CN 201780054540A CN 109690500 B CN109690500 B CN 109690500B
Authority
CN
China
Prior art keywords
memory
qos policy
cache
qosid
master
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
CN201780054540.XA
Other languages
English (en)
Other versions
CN109690500A (zh
Inventor
C·B·韦里利
C·A·瓦德斯伯格
N·瓦伊德亚纳坦
M·C·A·A·黑德斯
K·巴塔查里亚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN109690500A publication Critical patent/CN109690500A/zh
Application granted granted Critical
Publication of CN109690500B publication Critical patent/CN109690500B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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
    • 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/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
    • 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

使用空间服务质量(QoS)标记提供异质存储器系统的弹性 管理
优先权要求
本申请要求2016年9月22日提交且标题为“使用在以处理器为基础的系统中的空间服务质量(QoS)标记提供异质存储器系统的弹性管理(PROVIDING FLEXIBLEMANAGEMENTOF HETEROGENEOUS MEMORY SYSTEMS USING SPATIALQUALITY OF SERVICE(QoS)TAGGINGIN PROCESSOR-BASED SYSTEMS)”的第15/272,951号美国专利申请的优先权,所述美国专利申请的内容以全文引用的方式并入本文中。
技术领域
本公开的技术大体上涉及存储器管理,且具体地说,涉及管理异质存储器系统。
背景技术
异质存储器系统为以处理器为基础的系统的存储器系统,其并入有两个或更多个不同类型的具有相对不同性能特性(例如,容量、带宽、访问延迟、功率消耗等等)的存储器。作为非限制性实例,异质存储器系统可包含提供非典型宽的通信通道的高带宽存储器(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策略状态以对第一存储器及第二存储器中的一个执行存储器访问操作。
附图说明
图1为提供异质存储器系统的示范性以处理器为基础的系统的框图;
图2为包含用于使用空间服务质量(QoS)标记提供异质存储器系统的弹性管理的存储器控制器的以处理器为基础的系统的框图;
图3A到3C为说明用于使用空间QoS标记弹性地管理异质存储器系统的图2的存储器控制器的示范性操作的流程图;及
图4为可包含异质存储器系统及图2的存储器控制器的示范性以处理器为基础的系统的框图。
具体实施方式
现参考图式,描述本公开的若干示范性方面。“示范性”一词在本文中用以意谓“充当实例、例子或说明”。不必将本文中描述为“示范性”的任何方面解释为较佳或优于其它方面。
详细描述中揭示的方面包含使用在以处理器为基础的系统中的空间服务质量(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可指定用于与每个QoSID208(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)中的一个可标定为指定“默认”QoSID208(0)到208(Y),所述QoSID 208(0)到208(Y)用于确定待应用于不显式地指派到QoSID 208(0)到208(Y)的存储器区118(0)到118(X)的QoS策略状态210(0)到210(Y)。一些方面可规定QoSID208(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)、高速缓存通路识别符(“WAYID”)120'(0)到120'(Z)及高速缓存QoSID 212'(0)到212'(Z)。当试图识别与存储器区118(0)到118(X)的存储器地址范围及/或存储器区相关联的QoSID时,存储器控制器202可在第二存储器106中的主表112中执行查找之前访问主表高速缓存214。如果主表高速缓存214产生高速缓存命中,那么存储器控制器202可从主表高速缓存214读取高速缓存QoSID212'(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)指派的配额将应用于与相对应的QoSID212(0)到212(M)相关联的第二存储器106的所有存储器区118(0)到118(X)的总大小。举例来说,假定QoSID 212(0)与第二存储器106的四个(4)存储器区118(0)到118(3)相关联,存储器区118(0)到118(3)中的每一个的大小为四(4)千字节。只要由与QoSID212(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可驻存于远程站中。在替代方案中,处理器及存储媒体可作为离散组件驻存于远程站、基站或服务器中。
也应注意,本文中的示范性方面中的任一个中所描述的操作步骤经描述以提供实例及论述。可以除所说明的组以外的众多不同组执行所描述的操作。另外,描述于单个操作步骤中的操作可实际上以数个不同步骤执行。另外,可组合示范性方面中论述的一或多个操作步骤。应了解,对于所属领域的技术人员来说显而易见,流程图中所说明的操作步骤可经受众多不同修改。所属领域的技术人员也将了解,可使用各种不同技术及技法中的任一个表示信息及信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合表示在整个以上描述中可能参考的数据、指令、命令、信息、信号、位、符号及码片。
提供本公开的先前描述以允许任何所属领域的技术人员制造或使用本公开。对本公开的各种修改对于所属领域的技术人员来说将显而易见,且本文中所定义的通用原理可在不背离本公开的精神或范围的情况下应用于其它变化体。因此,本公开并不意欲限于本文中所描述的实例及设计,而应符合与本文中所揭示的原理及新颖特征相一致的最广泛范围。

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。
CN201780054540.XA 2016-09-22 2017-08-25 使用空间服务质量(QoS)标记提供异质存储器系统的弹性管理 Active CN109690500B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/272,951 2016-09-22
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
PCT/US2017/048561 WO2018057231A1 (en) 2016-09-22 2017-08-25 Providing flexible management of heterogeneous memory systems using spatial quality of service (qos) tagging in processor-based systems

Publications (2)

Publication Number Publication Date
CN109690500A CN109690500A (zh) 2019-04-26
CN109690500B true CN109690500B (zh) 2023-06-20

Family

ID=59762104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780054540.XA Active CN109690500B (zh) 2016-09-22 2017-08-25 使用空间服务质量(QoS)标记提供异质存储器系统的弹性管理

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 (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US10977260B2 (en) 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
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
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
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
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US12013895B2 (en) 2016-09-26 2024-06-18 Splunk Inc. Processing data using containerized nodes in a containerized scalable environment
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for 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
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
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
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
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
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
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
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
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US11163758B2 (en) 2016-09-26 2021-11-02 Splunk Inc. External dataset capability compensation
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
KR20180104830A (ko) * 2017-03-14 2018-09-27 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US11989194B2 (en) 2017-07-31 2024-05-21 Splunk Inc. Addressing memory limits for partition tracking among worker nodes
US20190057045A1 (en) * 2017-08-16 2019-02-21 Alibaba Group Holding Limited Methods and systems for caching based on service level agreement
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in 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
US11687244B2 (en) 2019-10-24 2023-06-27 Micron Technology, Inc. Quality of service for memory devices using weighted memory access operation types
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
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751746B2 (en) * 2011-12-15 2014-06-10 Apple Inc. QoS management in the L2 cache

Family Cites Families (21)

* 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
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
US10437479B2 (en) 2014-08-19 2019-10-08 Samsung Electronics Co., Ltd. Unified addressing and hierarchical heterogeneous storage and memory
US10282100B2 (en) * 2014-08-19 2019-05-07 Samsung Electronics Co., Ltd. Data management scheme in virtualized hyperscale environments
US9697126B2 (en) * 2014-11-25 2017-07-04 Qualcomm Incorporated Generating approximate usage measurements for shared cache memory systems
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
US9575881B2 (en) * 2014-12-04 2017-02-21 Qualcomm Incorporated Systems and methods for providing improved latency in a non-uniform memory architecture

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751746B2 (en) * 2011-12-15 2014-06-10 Apple Inc. QoS management in the L2 cache

Also Published As

Publication number Publication date
KR20190049742A (ko) 2019-05-09
CA3034273A1 (en) 2018-03-29
KR102545726B1 (ko) 2023-06-19
CN109690500A (zh) 2019-04-26
BR112019005235A2 (pt) 2019-06-04
EP3516523B1 (en) 2021-09-15
WO2018057231A1 (en) 2018-03-29
TW201814539A (zh) 2018-04-16
JP2019532412A (ja) 2019-11-07
JP7116047B2 (ja) 2022-08-09
US20180081579A1 (en) 2018-03-22
TWI655545B (zh) 2019-04-01
US10055158B2 (en) 2018-08-21
EP3516523A1 (en) 2019-07-31

Similar Documents

Publication Publication Date Title
CN109690500B (zh) 使用空间服务质量(QoS)标记提供异质存储器系统的弹性管理
CN111033480B (zh) 使用以处理器为基础的系统中用于分区资源的内插而提供精细度的服务质量控制
US20180329830A1 (en) Reducing metadata size in compressed memory systems of processor-based systems
EP3224728B1 (en) Providing shared cache memory allocation control in shared cache memory systems
US9823854B2 (en) Priority-based access of compressed memory lines in memory in a processor-based system
CN107667355B (zh) 一种用于提供分区的转换高速缓存器的方法及其设备
US20170212840A1 (en) Providing scalable dynamic random access memory (dram) cache management using tag directory caches
EP3224727B1 (en) Generating approximate usage measurements for shared cache memory systems
US10198362B2 (en) Reducing bandwidth consumption when performing free memory list cache maintenance in compressed memory schemes of processor-based systems
CN110998547A (zh) 筛选被预测为到达即死(doa)的经逐出高速缓冲条目到高速缓冲存储器系统的最后层级高速缓冲(llc)存储器中的插入
CN115210697A (zh) 用于转换后备缓冲器中的多个页面大小的灵活存储和优化搜索
US10228991B2 (en) Providing hardware-based translation lookaside buffer (TLB) conflict resolution in processor-based systems
EP3420460B1 (en) Providing scalable dynamic random access memory (dram) cache management using dram cache indicator caches

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant