CN104541256A - 智能远存储器带宽缩放 - Google Patents

智能远存储器带宽缩放 Download PDF

Info

Publication number
CN104541256A
CN104541256A CN201380044969.2A CN201380044969A CN104541256A CN 104541256 A CN104541256 A CN 104541256A CN 201380044969 A CN201380044969 A CN 201380044969A CN 104541256 A CN104541256 A CN 104541256A
Authority
CN
China
Prior art keywords
far away
memory
bandwidth
storer
utilization factor
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.)
Granted
Application number
CN201380044969.2A
Other languages
English (en)
Other versions
CN104541256B (zh
Inventor
D.G.费克斯
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104541256A publication Critical patent/CN104541256A/zh
Application granted granted Critical
Publication of CN104541256B publication Critical patent/CN104541256B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1673Details of memory controller using buffers
    • 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
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • 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/0806Multiuser, multiprocessor or multiprocessing cache 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
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0669Configuration or reconfiguration with decentralised address assignment
    • G06F12/0676Configuration or reconfiguration with decentralised address assignment the address being position dependent
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0692Multiconfiguration, e.g. local and global addressing
    • 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/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/652Page size control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/16Memory access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Power Sources (AREA)

Abstract

存储器带宽管理。在两级存储器(2LM)系统中,监测至少远存储器的远存储器带宽利用率并且基于监测的远存储器带宽利用率来动态地修改可用的远存储器带宽可用性。响应于可用的远存储器带宽的修改来动态地修改至少一个处理核的操作状态。

Description

智能远存储器带宽缩放
技术领域
本发明的实施例涉及存储器带宽管理。更特别地,本发明的实施例涉及用于管理多级存储器子系统中的带宽的技术。
背景技术
计算系统和装置典型地包含由动态随机存取存储器(DRAM)组成的适当的主存储器,来存储系统非易失性盘存储的内容的子集。主存储器用于减少等待时间并且增加系统处理器的带宽来存储并且从盘存储取回存储器操作数。
DRAM封装件(例如,双列直插存储器模块(DIMM))受限于它们的存储器密度方面,并且还典型地比非易失性存储器存储贵。最近,为增加系统的大小,主存储器需要多个DIMM,这增加了系统的成本和体积。增加系统体积不利地影响系统的形状因子(例如,大的DIMM存储器等级在移动客户空间中是不理想的)。
附图说明
在附图的图中以示例的方式而不以限制的方式来图示本发明的实施例,其中相似的参考标号指代类似元件。
图1是两级系统主存储器系统的一个实施例的框图。
图2是在2LM架构中管理存储器带宽的技术的一个实施例的框图。
图3在具有2LM存储器的片上系统(SoC)架构的一个实施例的框图。
图4是用于在2LM架构中管理存储器带宽的技术的一个实施例的流程图。
具体实施方式
在下文的描述中,阐述了许多具体细节。然而,没有这些具体细节也可实践本发明的实施例。在其它实例中,没有详细地示出熟知的电路、结构和技术以便不模糊此描述的理解。
本文描述用于带宽管理的技术。在一个实施例中,带宽管理针对包括两级存储器(备选地在本文称作为“2LM”)的系统主存储器,两级存储器包含系统盘级存储的高速缓存子集(例如,除运行时间数据以外)。此主存储器包含第一级(备选地在本文称作为“近存储器(near memory)”)和第二级(备选地在本文称作为“远存储器(far memory)”),该第一级是由例如DRAM构成的较小、较快的存储器,并且该第二级包含(相对于近存储器)较大、较慢的易失性存储器(例如,DRAM)或非易失性存储器存储(例如,闪速存储器)。
在一个实施例中,远存储器被呈现为主机操作系统(OS)的“主存储器”,而近存储器是对OS透明的用于远存储器的高速缓存,因此将以下描述的实施例渲染为显得与现有技术主存储器解决方案相同。两级存储器的管理可由经由主机处理核执行的逻辑和模块的组合来完成。近存储器可经由用于有效率的处理的高带宽、低等待时间的互连而耦合到主机处理核。远存储器可经由较低带宽、较高等待时间的互连(相比于近存储器的互连)而耦合到处理核。
图1是两级系统主存储器系统的一个实施例的框图。系统主存储器100向处理器110提供运行时间数据存储以及系统盘存储存储器(未示出)的内容的访问。在一些实施例中,处理器110可包含高速缓存存储器,它可存储主存储器100的内容的子集。
在一个实施例中,主存储器100包含示为近存储器120(例如,DRAM)的易失性存储器级、以及示为远存储器130的存储器级。远存储器可包括易失性或非易失性存储器。在本实施例中,近存储器120用作远存储器130的低等待时间和高带宽(即,对于处理器110访问而言)的高速缓存,远存储器130可具有较低的带宽和较高的等待时间(即,对于处理器110访问而言)。
在一个实施例中,近存储器120由近存储器控制器(NMC)125管理,而远存储器130由远存储器控制器(FMC)135管理。FMC 135将远存储器130作为主存储器报告给主机操作系统(OS)(即,主机OS将远存储器130的大小认作系统主存储器100的大小)。主机OS和系统应用“没有意识到”近存储器120的存在,因为它是远存储器130的“透明”高速缓存。
在一个实施例中,处理器110还包含2LM引擎模块/逻辑140。“2LM引擎”是可包括硬件和/或微代码扩展来支持两级主存储器100的逻辑构造。例如,2LM控制器140可保持追踪远存储器130的所有架构可见元件的状态的完整标签表。
例如,当处理器110尝试访问主存储器100中的特定数据片段时,2LM控制器140确定所述数据片段是否包含在近存储器120中;如果不包含,则2LM控制器140取得远存储器130中的数据片段并且随后将数据片段写入近存储器120(类似于高速缓存缺失)。因为近存储器120充当远存储器130的“高速缓存”,所以2LM引擎140还可执行数据预取或在本领域中已知的类似高速缓存效率过程。
2LM控制器140可管理远存储器130的其它方面。例如,在远存储器130包括非易失性存储器的实施例中,由于大量读/写,非易失性存储器(例如,闪速或相变存储器)遭受存储器片段的退化。因此,2LM控制器140可以用对系统软件透明的方式来执行包含磨损均衡、坏块回避等功能。例如,执行磨损均衡逻辑可包含从具有相对低的擦除循环计数的远存储器130中的干净非映射片段的空闲池中选择片段。
近存储器120的大小比远存储器130更小,虽然精确比例可例如基于预期的系统使用而不同。在本实施例中,因为远存储器130包括更致密、更便宜的非易失性存储器,所以可便宜并且高效地增加主存储器100并且独立于系统中的DRAM(即,近存储器120)的量。
具有用于第一级存储器(近存储器)的减少的DRAM大小和用于第二级的相变存储器(远存储器)的2LM存储器子系统的功率和性能建模示出:当远存储器的带宽超过给定带宽阈值时,2LM存储器子系统架构的功率优势丢失。这发生在当在远存储器交互中消耗的功率超过配置有产生相等性能的存储器大小的1LM架构与2LM架构之间的功率差别时。为了消除这些无关情况的影响,描述技术来动态地缩放近存储器大小和带宽到远存储器以便持续地产生优于传统的1LM存储器架构的功耗。
在一些实施例中,将元数据添加到所有存储器交互来识别存储器请求的来源。2LM控制器保持用于作出请求的每个装置的近存储器缺失的记录。这允许2LM存储器控制器识别导致过量的远存储器带宽消耗的任何装置的来源。
图2是在2LM架构中管理存储器带宽的技术的一个实施例的框图。图2的示例包含特定数量的处理核;然而,可支持任何数量的处理核。另外,可以支持许多不同类型的存储器来用作近或远存储器。
在一个实施例中,系统包含两个高功率核(例如,HP核210、HP核215)和两个低功率核(LP核220、LP核225)。核耦合于核电源管理单元230。2LM请求队列240收集来自核的存储器请求,2LM请求队列240与2LM控制器250一起操作来管理到近和远存储器(分别是260和270)的存储器请求。在一个实施例中,2LM控制器250包含远存储器带宽监测器255,它与核电源管理单元230通信来管理到远存储器270的带宽利用率。
在一个实施例中,通知请求核(例如,210、215、220、225)它将经历用于存储器请求的完成的增加的等待时间。通过增加存储器等待时间,请求核可以处于较低性能模式中,其中性能更好地匹配到提供给远存储器的带宽和对应的较高等待时间。
在一个实施例中,远存储器带宽监测器255分析来自核电源管理单元230的存储器请求(例如,标记)中的元数据以确定期望的读取等待时间。这允许核电源管理单元230确定是否将请求过程从高功率核(例如,210、215)移动到较低功率核(例如,220、225)来更好地匹配核的操作与远存储器的带宽和等待时间。
在一个实施例中,使用装置标识符元数据,2LM控制器250可以最优化远存储器请求的调度以便最小化生成过量的远存储器业务的劣质线程/装置的影响。存在生成近存储器缺失的过多量的处理核的可能性,使得其它表现良好的装置/线程具有由远存储器控制器延迟或耽误的近存储器缺失。结果是增加的读取等待时间。在一个实施例中,通过提供更高的优先级利用(例如,排序或优先规则)来最优化调度,以有益于不生成高的近存储器缺失的装置/线程。
在一个实施例中,考虑到验证可重复模式数据的远存储器写入的压缩,提供元数据。例如,在使用相变存储器的2LM系统中,在写入相变存储器中消耗的功率远高于写入DRAM并且可以从最小化写入相变存储器来实现节能。
在一个实施例中,有可能保持存储器的扇区和页面(其中数据驻留是重复的)。在远存储器控制器中添加模式标签或其它数据结构来识别用于写入操作的这些模式,而不是将全部数据模式写入扇区/页面。这允许远存储器控制器来只写入模式,不是全部扇区/页面。这特别有益于操作系统或应用将结构初始化成已知状态的情况。
初始化的状态经常是存在用于跨扇区和页面的所有常见数据结构的可重复模式。例如,远存储器控制器可以接收用于三个双字{00000001h、00000012h、0000000ch}的存储器写入。在一个实施例中,远存储器接口报头可以包含写入将要重复特定(例如,1000)次数的信息。然后,远存储器控制器可以标记页面(其中数据将要被写为具有重复的数据的页面)并且只将数据模式写入远存储器页面。在此示例中,然后可以将3000双字写入压缩成到远存储器的简单的三个双字写入。
在一个实施例中,远存储器带宽监测器驻留在宣布运行的远存储器带宽的2LM控制器中,例如,驻留在可由处理核访问的状态寄存器中。可以提供附加的电路/逻辑来考虑到当远存储器带宽超过给定的时间段上的可编程阈值(例如,一段时间上的平均带宽)时,生成中断。这允许操作系统以最适合当前操作的方式来对过量的带宽作出反应。
在许多情况下,操作系统可具有关于应用/线程(它们是坏的参与者并且生成不平衡的带宽利用率)的附加信息。这些应用/线程可以由操作系统来重新配置、缩减规模或除去。还可提供硬件支持来支持此功能性而没有操作系统交互。在一个实施例中,2LM控制器可以检测过量的远带宽使用并且减少广告的可用的远存储器带宽来使操作系统或其它主机系统实体修改应用/线程行为。
下文的技术中的一个或多个可以用来减少广告到操作系统的远存储器的大小以动态地缩放远存储器带宽利用率。在一个实施例中,可以移除或添加信道并且可以重新映射近存储器内容来支持可用的信道。在一个实施例中,可以将近存储器DRAM配置为减少的页面大小。然后可以将近存储器映射到新的页面大小。2LM控制器可以包含用于通过实现页面年龄字段来提取近存储器利用率的标签高速缓存。当页面年龄逻辑检测到近存储器利用率下降低于阈值(例如,一半、三分之二、三分之一)时,可减少并且重新映射近存储器大小。
图3是在具有2LM存储器的片上系统(SoC)架构的一个实施例的框图。SoC 300只是可利用如本文所描述的远存储器带宽管理的系统的一个示例。SoC 300可以是移动计算/通信平台的一部分(例如,平板计算装置、移动电话/智能电话或其它电子系统)。
SoC 300可以包含任何数量的处理核。图3的示例包含四个处理核(例如,305、315、325、335)和两个通用处理单元(例如,345、355)。处理核和通用处理单元由总线310互连,总线310可以是在本领域中已知的任何类型的互连机制。一个或多个处理核和/或一个或多个通用处理单元可以耦合到输入/输出(I/O)装置390。I/O装置390可以包含触摸屏装置、监测器或其它显示器、任何类型的光标控制装置、照相机、麦克风等中的一个或多个。
总线310将处理核和/或处理单元耦合到系统代理320,它操作来至少将接口提供到存储器子系统。在一个实施例中,系统代理320耦合到2LM控制器330,它操作来控制到易失性存储器(例如,DRAM 370)和非易失性存储器(例如,380)的存储器访问。在一个实施例中,2LM控制器330包含远存储器带宽监测逻辑340,它操作来监测到至少非易失性存储器380的带宽和带宽利用率。
在一个实施例中,2LM控制器330与远存储器控制器360耦合,远存储器控制器360操作为用于非易失性存储器380和涉及非易失性存储器380的访问的存储器控制器。在一个实施例中,2LM控制器330也与近存储器控制器350耦合,近存储器控制器350操作为用于易失性存储器370和涉及易失性存储器370的访问的存储器控制器。
在一个实施例中,远存储器带宽监测器340操作来将反馈提供到处理代理(例如,305、315、325、335、345、355),处理代理作出存储器请求来指示可以期望由于近存储器缺失而增加的等待时间。这允许处理代理进入较低性能状态(它通常是较低功率消耗状态),并且更佳地平衡系统的性能和带宽。
在一个实施例中,经由例如包含状态寄存器、中断、存储器广告、控制信号等一个或多个机制来传递远存储器带宽信息。此信息可以用来从较低功率状况变成较高功率状况以及从较高功率状况变成较低功率状况。
图4是用于在2LM架构中管理存储器带宽的技术的一个实施例的流程图。在一个实施例中,管理远存储器带宽包含在两级存储器(2LM)系统中监测至少远存储器的远存储器带宽利用率(410)。基于监测的远存储器带宽利用率来动态地修改可用的远存储器带宽可用性(420)。响应于可用的远存储器带宽的修改,动态地修改至少一个处理核的操作状态(430)。
在一个实施例中,远存储器包括相变存储器。在备选实施例中,其它类型的非易失性存储器可用于提供远存储器,例如包含纳米线存储器、铁电晶体管(FeTran)存储器、层叠相变存储器/相变存储器和开关(PCMS)。在一个实施例中,动态地修改至少一个处理核的操作状态包括改变处理核的功率状态。
在一个实施例中,系统还利用过量的带宽来选择性地修改线程的执行状态。在一个实施例中,选择性地修改线程的执行状态包括操作系统终止线程。
在一个实施例中,基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括修改广告的可用的远存储器带宽。在一个实施例中,基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括将多个信道变成可用于传送到/来自远存储器的数据。
在一个实施例中,基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括修改用于近存储器的页面大小。在一个实施例中,响应于近存储器利用率超过预选的近存储器利用率阈值,增加用于近存储器的页面大小。在一个实施例中,在一个实施例中,压缩将要被写入远存储器的数据。
在一个实施例中,系统包含能够在具有不同功耗级别的至少两个操作状态中操作的多个处理核、易失性存储器装置、非易失性存储器装置、以及耦合到多个处理核、易失性存储器装置和非易失性存储器装置的存储器系统控制器。存储器系统控制器将易失性存储器装置和非易失性存储器装置管理为两级存储器(2LM)。易失性存储器操作为近存储器并且非易失性存储器操作为远存储器,用于监测至少远存储器的远存储器带宽利用率,并且用于基于监测的远存储器带宽利用率来动态地修改可用的远存储器带宽可用性。响应于可用的远存储器带宽的修改而动态地修改至少一个处理核的操作状态。
在一个实施例中,系统还包含触摸屏接口,其耦合来响应于来自至少一个处理核的命令而提供输出。在一个实施例中,远存储器包括相变存储器。在一个实施例中,存储器系统控制器还利用过量的带宽来选择性地修改线程的执行状态。在一个实施例中,系统选择性地修改线程的执行状态包括操作系统终止线程。
在一个实施例中,基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括修改广告的可用的远存储器带宽。在一个实施例中,基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括将多个信道变成可用于传送到/来自远存储器的数据。在一个实施例中,基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括修改用于近存储器的页面大小。在一个实施例中,存储器系统控制器响应于近存储器利用率超过预选的近存储器利用率阈值来增加用于近存储器的页面大小。在一个实施例中,存储器系统控制器压缩将要被写入远存储器的数据。
在一个实施例中,设备包含能够在具有不同功耗级别的至少两个操作状态中操作的多个处理核、和耦合到多个处理核的存储器系统控制器,该存储器系统控制器控制与易失性存储器装置和非易失性存储器装置的通信。存储器系统控制器将易失性存储器装置和非易失性存储器装置管理为两级存储器(2LM)。易失性存储器操作为近存储器并且非易失性存储器操作为远存储器,用于监测至少远存储器的远存储器带宽利用率,并且用于基于监测的远存储器带宽利用率来动态地修改可用的远存储器带宽可用性。响应于可用的远存储器带宽的修改而动态地修改至少一个处理核的操作状态。
在一个实施例中,远存储器包括相变存储器。在一个实施例中,存储器系统控制器还利用过量的带宽来选择性地修改线程的执行状态。在一个实施例中,选择性地修改线程的执行状态包括操作系统终止线程。
在一个实施例中,基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括修改广告的可用的远存储器带宽。在一个实施例中,基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括将多个信道变成可用于传送到/来自远存储器的数据。在一个实施例中,基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括修改用于近存储器的页面大小。在一个实施例中,存储器系统控制器响应于近存储器利用率超过预选的近存储器利用率阈值来增加用于近存储器的页面大小。在一个实施例中,存储器系统控制器压缩将要被写入远存储器的数据。
在说明书中对“一个实施例”或“一实施例”的提及意味着结合该实施例描述的特定特征、结构或特性包含在本发明的至少一个实施例中。在说明书中的各处的短语“在一个实施例中”的出现不一定全部涉及相同的实施例。
虽然在若干实施例方面描述了本发明,但是本领域技术人员将认识到本发明不限于描述的实施例,而是可以用所附的权利要求的精神和范围内的修改和变更来实践。因此,描述被视为是说明性的而不是限制性的。

Claims (20)

1. 一种方法,包括:
在两级存储器(2LM)系统中监测至少远存储器的远存储器带宽利用率;
基于监测的远存储器带宽利用率来动态地修改可用的远存储器带宽可用性;以及
响应于可用的远存储器带宽的修改来动态地修改至少一个处理核的操作状态。
2. 如权利要求1所述的方法,其中所述远存储器包括相变存储器。
3. 如权利要求1所述的方法,其中动态地修改至少一个处理核的操作状态包括改变所述处理核的功率状态。
4. 如权利要求1所述的方法,还包括利用过量的带宽来选择性地修改线程的执行状态。
5. 如权利要求4所述的方法,其中选择性地修改线程的执行状态包括操作系统终止所述线程。
6. 如权利要求1所述的方法,其中基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括修改广告的可用的远存储器带宽。
7. 如权利要求1所述的方法,其中基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括将多个信道变成可用于传送到/来自所述远存储器的数据。
8. 如权利要求1所述的方法,其中基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括修改用于近存储器的页面大小。
9. 如权利要求8所述的方法,还包括响应于近存储器利用率超过预选的近存储器利用率阈值,增加用于所述近存储器的所述页面大小。
10. 如权利要求1所述的方法,还包括压缩将要被写入所述远存储器的数据。
11. 一种系统,包括:
触摸屏接口;
多个处理核,能够在具有不同功耗级别的至少两个操作状态中操作,所述多个处理核至少在所述触摸屏接口上提供图形用户接口;
易失性存储器装置;
非易失性存储器装置;
存储器系统控制器,耦合到所述多个处理核、所述易失性存储器装置和所述非易失性存储器装置,所述存储器系统控制器将所述易失性存储器装置和所述非易失性存储器装置管理为两级存储器(2LM),其中所述易失性存储器操作为近存储器并且所述非易失性存储器操作为远存储器,用于监测至少所述远存储器的远存储器带宽利用率,并且用于基于监测的远存储器带宽利用率来动态地修改可用的远存储器带宽可用性;
其中响应于可用的远存储器带宽的修改而动态地修改至少一个处理核的操作状态。
12. 一种设备,包括:
多个处理核,能够在具有不同功耗级别的至少两个操作状态中操作;
存储器系统控制器,耦合到所述多个处理核,所述存储器系统控制器控制与易失性存储器装置和非易失性存储器装置的通信,所述存储器系统控制器将所述易失性存储器装置和所述非易失性存储器装置管理为两级存储器(2LM),其中所述易失性存储器操作为近存储器并且所述非易失性存储器操作为远存储器,用于监测至少所述远存储器的远存储器带宽利用率,并且用于基于监测的远存储器带宽利用率来动态地修改可用的远存储器带宽可用性;
其中响应于可用的远存储器带宽的修改而动态地修改至少一个处理核的操作状态。
13. 如权利要求12所述的设备,其中所述远存储器包括相变存储器。
14. 如权利要求12所述的设备,其中所述存储器系统控制器还利用过量的带宽来选择性地修改线程的执行状态。
15. 如权利要求14所述的设备,其中选择性地修改线程的执行状态包括操作系统终止所述线程。
16. 如权利要求12所述的设备,其中基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括修改广告的可用的远存储器带宽。
17. 如权利要求12所述的设备,其中基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括将多个信道变成可用于传送到/来自所述远存储器的数据。
18. 如权利要求12所述的设备,其中基于监测的远存储器带宽利用率来修改可用的远存储器带宽可用性包括修改用于近存储器的页面大小。
19. 如权利要求18所述的设备,其中所述存储器系统控制器响应于近存储器利用率超过预选的近存储器利用率阈值来增加用于所述近存储器的所述页面大小。
20. 如权利要求12所述的设备,其中所述存储器系统控制器压缩将要被写入所述远存储器的数据。
CN201380044969.2A 2012-09-29 2013-06-14 智能远存储器带宽缩放 Expired - Fee Related CN104541256B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/631938 2012-09-29
US13/631,938 US8830716B2 (en) 2012-09-29 2012-09-29 Intelligent far memory bandwith scaling
PCT/US2013/045983 WO2014051750A1 (en) 2012-09-29 2013-06-14 Intelligent far memory bandwidth scaling

Publications (2)

Publication Number Publication Date
CN104541256A true CN104541256A (zh) 2015-04-22
CN104541256B CN104541256B (zh) 2017-05-17

Family

ID=50385045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380044969.2A Expired - Fee Related CN104541256B (zh) 2012-09-29 2013-06-14 智能远存储器带宽缩放

Country Status (5)

Country Link
US (1) US8830716B2 (zh)
EP (2) EP3361386B1 (zh)
JP (1) JP5947463B2 (zh)
CN (1) CN104541256B (zh)
WO (1) WO2014051750A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304288A (zh) * 2018-01-26 2018-07-20 北京松果电子有限公司 获取带宽利用率的方法、装置及存储介质
TWI735529B (zh) * 2016-03-22 2021-08-11 美商英特爾公司 多階層記憶體之管理的技術
WO2022012312A1 (zh) * 2020-07-17 2022-01-20 华为技术有限公司 一种监控内存带宽的方法及装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135195B2 (en) * 2012-07-24 2015-09-15 Freescasle Semiconductor, Inc. Prediction of electronic component behavior in bus-based systems
KR20140113117A (ko) * 2013-03-15 2014-09-24 삼성전자주식회사 비대칭 액세스 타임을 가진 반도체 메모리 장치
US9740621B2 (en) 2014-05-21 2017-08-22 Qualcomm Incorporated Memory controllers employing memory capacity and/or bandwidth compression with next read address prefetching, and related processor-based systems and methods
US10838862B2 (en) * 2014-05-21 2020-11-17 Qualcomm Incorporated Memory controllers employing memory capacity compression, and related processor-based systems and methods
US10503661B2 (en) * 2014-05-21 2019-12-10 Qualcomm Incorporated Providing memory bandwidth compression using compressed memory controllers (CMCs) in a central processing unit (CPU)-based system
US10776378B2 (en) 2014-07-09 2020-09-15 Oracle Interntional Corporation System and method for use of immutable accessors with dynamic byte arrays
US9880938B2 (en) * 2014-09-26 2018-01-30 Oracle International Corporation System and method for compacting pseudo linear byte array
US20160224252A1 (en) * 2015-01-30 2016-08-04 Intel Corporation Hybrid memory architecture
WO2016144362A1 (en) 2015-03-12 2016-09-15 Hewlett Packard Enterprise Development Lp Memory device write based on mapping
US10156999B2 (en) 2016-03-28 2018-12-18 Seagate Technology Llc Dynamic bandwidth reporting for solid-state drives
US10191850B2 (en) 2016-03-31 2019-01-29 Qualcomm Incorporated Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system
US10176090B2 (en) 2016-09-15 2019-01-08 Qualcomm Incorporated Providing memory bandwidth compression using adaptive compression in central processing unit (CPU)-based systems
US20210073151A1 (en) * 2020-11-18 2021-03-11 Intel Corporation Page-based remote memory access using system memory interface network device
KR20230021199A (ko) 2021-08-04 2023-02-14 삼성전자주식회사 모드 설정을 지원하는 니어-메모리를 포함하는 전자 장치, 및 이의 동작 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1507058A (zh) * 2002-12-13 2004-06-23 ����ʿ�뵼�����޹�˾ 具有可调节输入/输出带宽的半导体存储器件
CN1930554A (zh) * 2004-03-08 2007-03-14 米克伦技术公司 具有可编程巷宽的存储器集线器结构
WO2009060567A1 (ja) * 2007-11-09 2009-05-14 Panasonic Corporation データ転送制御装置、データ転送装置、データ転送制御方法及び再構成回路を用いた半導体集積回路
US20100023790A1 (en) * 2000-12-30 2010-01-28 Barnes Cooper Cpu power management based on utilization with lowest performance mode at the mid-utilization range
US20110314231A1 (en) * 2010-06-22 2011-12-22 O'connor James Michael Bandwidth adaptive memory compression
US20120166891A1 (en) * 2010-12-22 2012-06-28 Dahlen Eric J Two-level system main memory

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0512127A (ja) * 1991-06-28 1993-01-22 Nippon Steel Corp キヤツシユメモリ制御装置
US5905889A (en) * 1997-03-20 1999-05-18 International Business Machines Corporation Resource management system using next available integer from an integer pool and returning the integer thereto as the next available integer upon completion of use
US7065763B1 (en) * 2000-09-29 2006-06-20 Emc Corporation Method of reducing contention of a highly contended lock protecting multiple data items
US7975108B1 (en) * 2004-03-25 2011-07-05 Brian Holscher Request tracking data prefetcher apparatus
JP4982971B2 (ja) * 2004-09-29 2012-07-25 ソニー株式会社 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
KR100609621B1 (ko) * 2005-07-19 2006-08-08 삼성전자주식회사 메모리 블락별로 레이턴시 제어가 가능한 동기식 반도체메모리 장치
JP4262233B2 (ja) * 2005-10-18 2009-05-13 株式会社半導体理工学研究センター 半導体装置とその制御方法
US8074034B2 (en) * 2007-07-25 2011-12-06 Agiga Tech Inc. Hybrid nonvolatile ram
US7966455B2 (en) * 2008-03-04 2011-06-21 International Business Machines Corporation Memory compression implementation in a multi-node server system with directly attached processor memory
US8689508B2 (en) * 2008-05-28 2014-04-08 Steeltec Supply, Inc. Extra strength backing stud having notched flanges
EP2323036A4 (en) * 2008-08-04 2011-11-23 Fujitsu Ltd MULTIPROCESSOR SYSTEM, ADMINISTRATION DEVICE FOR A MULTIPROCESSOR SYSTEM AND COMPUTER READABLE RECORDING MEDIUM IN WHICH AN ADMINISTRATIVE PROGRAM FOR A MULTIPROCESSOR SYSTEM IS RECORDED
US8214599B2 (en) * 2008-11-04 2012-07-03 Gridiron Systems, Inc. Storage device prefetch system using directed graph clusters
US8214608B2 (en) * 2008-11-04 2012-07-03 Gridiron Systems, Inc. Behavioral monitoring of storage access patterns
US8285961B2 (en) * 2008-11-13 2012-10-09 Grid Iron Systems, Inc. Dynamic performance virtualization for disk access
JP2010191895A (ja) * 2009-02-20 2010-09-02 Konica Minolta Business Technologies Inc 情報処理装置
US8402198B1 (en) * 2009-06-03 2013-03-19 Violin Memory, Inc. Mapping engine for a storage device
US8612809B2 (en) * 2009-12-31 2013-12-17 Intel Corporation Systems, methods, and apparatuses for stacked memory
JP5159817B2 (ja) * 2010-03-25 2013-03-13 株式会社東芝 メモリシステム
JP2013527516A (ja) * 2010-03-26 2013-06-27 バーチャルメトリックス・インコーポレイテッド コンピュータシステムの細粒度パフォーマンスリソース管理
US9009384B2 (en) * 2010-08-17 2015-04-14 Microsoft Technology Licensing, Llc Virtual machine memory management in systems with asymmetric memory
US8788757B2 (en) * 2011-12-09 2014-07-22 International Business Machines Corporation Dynamic inclusive policy in a hybrid cache hierarchy using hit rate
US9141560B2 (en) * 2012-06-29 2015-09-22 Intel Corporation Multi-level storage apparatus

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100023790A1 (en) * 2000-12-30 2010-01-28 Barnes Cooper Cpu power management based on utilization with lowest performance mode at the mid-utilization range
CN1507058A (zh) * 2002-12-13 2004-06-23 ����ʿ�뵼�����޹�˾ 具有可调节输入/输出带宽的半导体存储器件
CN1930554A (zh) * 2004-03-08 2007-03-14 米克伦技术公司 具有可编程巷宽的存储器集线器结构
WO2009060567A1 (ja) * 2007-11-09 2009-05-14 Panasonic Corporation データ転送制御装置、データ転送装置、データ転送制御方法及び再構成回路を用いた半導体集積回路
US20110314231A1 (en) * 2010-06-22 2011-12-22 O'connor James Michael Bandwidth adaptive memory compression
US20120166891A1 (en) * 2010-12-22 2012-06-28 Dahlen Eric J Two-level system main memory

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI735529B (zh) * 2016-03-22 2021-08-11 美商英特爾公司 多階層記憶體之管理的技術
CN108304288A (zh) * 2018-01-26 2018-07-20 北京松果电子有限公司 获取带宽利用率的方法、装置及存储介质
CN108304288B (zh) * 2018-01-26 2021-09-07 北京小米松果电子有限公司 获取带宽利用率的方法、装置及存储介质
WO2022012312A1 (zh) * 2020-07-17 2022-01-20 华为技术有限公司 一种监控内存带宽的方法及装置

Also Published As

Publication number Publication date
EP2901293B1 (en) 2018-02-21
EP2901293A4 (en) 2016-07-27
EP3361386A1 (en) 2018-08-15
CN104541256B (zh) 2017-05-17
EP2901293A1 (en) 2015-08-05
JP5947463B2 (ja) 2016-07-06
WO2014051750A1 (en) 2014-04-03
US20140092678A1 (en) 2014-04-03
EP3361386B1 (en) 2019-08-21
US8830716B2 (en) 2014-09-09
JP2015524595A (ja) 2015-08-24

Similar Documents

Publication Publication Date Title
CN104541256A (zh) 智能远存储器带宽缩放
US9417794B2 (en) Including performance-related hints in requests to composite memory
US11709623B2 (en) NAND-based storage device with partitioned nonvolatile write buffer
US9727267B1 (en) Power management and monitoring for storage devices
CN104346290A (zh) 存储装置、计算机系统及其操作方法
CN103946826A (zh) 用于在公共存储器通道上实现多级存储器层级的设备和方法
US8286015B2 (en) Storage array power management using lifecycle information
US8341434B2 (en) Optimizing voltage on a power plane using a networked voltage regulation module array
CN104115129A (zh) 用于从处理器到存储器子系统智能刷新数据的系统和方法
CN103988183A (zh) 2级存储器分级结构中的存储器侧高速缓存的动态部分断电
CN103946811A (zh) 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
US20210373799A1 (en) Method for storing data and method for reading data
US10095432B2 (en) Power management and monitoring for storage devices
CN102637147A (zh) 利用固态硬盘作为计算机写缓存的存储系统以及相应的管理调度方法
CN101861573A (zh) 用于存储器分层优化的统计计数
CN107408018A (zh) 用于在固态驱动器中适应垃圾收集资源分配的机制
JP2017519294A (ja) フラッシュメモリベースストレージデバイスのマルチホスト電力コントローラ(mhpc)
US9087561B2 (en) Hybrid cache
CN107592927A (zh) 管理扇区高速缓存
JP2021034052A (ja) 異種メモリを有するメモリシステム、これを含むコンピュータシステム及びそのデータ管理方法
US8433873B2 (en) Disposition instructions for extended access commands
CN113569508A (zh) 基于id进行数据索引与访问的数据库模型构建方法及设备
KR20170132483A (ko) 메모리 장치의 구동 방법
US11422702B2 (en) Managing utilization of storage class memory (SCM) resources
CN105653468B (zh) 一种使用mram的存储设备

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170517

Termination date: 20210614