CN108885587B - 具有系统高速缓存和本地资源管理的功率降低存储器子系统 - Google Patents

具有系统高速缓存和本地资源管理的功率降低存储器子系统 Download PDF

Info

Publication number
CN108885587B
CN108885587B CN201780019650.2A CN201780019650A CN108885587B CN 108885587 B CN108885587 B CN 108885587B CN 201780019650 A CN201780019650 A CN 201780019650A CN 108885587 B CN108885587 B CN 108885587B
Authority
CN
China
Prior art keywords
memory
ddr
cache
dram
subsystem
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
CN201780019650.2A
Other languages
English (en)
Other versions
CN108885587A (zh
Inventor
Y·李
D·T·全
A·阿尔蒂耶里
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 CN108885587A publication Critical patent/CN108885587A/zh
Application granted granted Critical
Publication of CN108885587B publication Critical patent/CN108885587B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0653Monitoring storage devices or 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40607Refresh operations in memory devices with an internal cache or data buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • 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
    • G06F2212/1021Hit rate 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/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile 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/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • 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/6026Prefetching based on access pattern detection, e.g. stride based prefetch
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Power Sources (AREA)

Abstract

针对用于降低存储器子系统功率的方法,公开了系统、方法和计算机程序。在一种示例性方法中,系统资源管理器向双数据速率(DDR)子系统提供多个存储器客户端的存储器性能要求。所述DDR子系统和所述系统资源管理器存在在被电气地耦合到动态随机存取存储器(DRAM)的片上系统(SoC)上。确定与存在在所述DDR子系统上的系统高速缓存相关联的所述多个存储器客户端中的每个存储器客户端的高速缓存命中率。所述DDR子系统基于从所述系统资源管理器接收的所述存储器性能要求和所述多个存储器客户端的所述高速缓存命中率来对DDR时钟频率进行控制。

Description

具有系统高速缓存和本地资源管理的功率降低存储器子系统
技术领域
概括地说,本公开内容涉及计算设备中的存储器子系统,并且更具体地,本公开内容涉及用于降低存储器子系统功率的改进的方法和系统。
背景技术
便携式计算设备(例如,蜂窝电话、智能电话、平板型计算机、便携式数字助理(PDA)、便携式游戏控制台、可穿戴设备和其它的电池供电的设备)和其它的计算设备继续提供不断扩张的系列的特征和服务,并且为用户提供前所未有的水平的对信息、资源和通信的访问。为了跟上这些服务增强的步伐,这样的设备已经变得更强大和更复杂。便携式计算设备现在通常包括片上系统(SoC),SoC包括被嵌入在单个衬底上的多个存储器客户端(例如,一个或多个中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)等)。存储器客户端可以从经由双数据速率(DDR)总线被电气地耦合到SoC的动态随机存取存储器(DRAM)存储器系统读数据和在其中存储数据。
DDR系统功率正在日益变成总电池使用的重大部分。DDR系统功率的大部分是由去往DRAM的读/写业务产生的。随着系统变得更复杂,它们需要更高的业务带宽,并且业务模式变得更复杂和随机,产生增加的能量支出。合并末级系统高速缓存可以减少DDR业务的量。然而,甚至在具有由系统高速缓存提供的好处的情况下,因为DDR子系统必须以为不可预测的业务提供服务所需的最坏情况下的电压和频率操作,所以其仍然可能浪费功率。现有的解决方案尝试通过使用对DDR时钟频率的开环调整来节约DDR功率。然而,因为为了避免性能下降而调整必须是保守的,所以这些解决方案是次优的。尽管存在一些功率节省,但进一步的调整可以损害端用户体验。
相应地,存在对于用于降低存储器子系统功率的改进了的系统和方法的需求。
发明内容
公开了用于降低存储器子系统功率的系统、方法和计算机程序。在一种示例性方法中,系统资源管理器向双数据速率(DDR)存储器子系统提供多个存储器客户端的存储器性能要求。所述DDR子系统和所述系统资源管理器存在在被电气地耦合到动态随机存取存储器(DRAM)的片上系统(SoC)上。确定与存在在所述DDR子系统上的系统高速缓存相关联的所述多个存储器客户端中的每个存储器客户端的高速缓存命中率。所述DDR子系统基于从所述系统资源管理器接收的所述存储器性能要求和所述多个存储器客户端的所述高速缓存命中率来调整对所述DRAM的访问。
一种用于降低存储器子系统功率的系统的另一个实施例包括动态随机存取存储器(DRAM)和经由DDR总线被电气地耦合到所述DRAM的片上系统(SoC)。所述SoC包括经由SoC总线被电气地耦合的多个存储器客户端、系统资源管理器和DDR子系统。所述系统资源管理器被配置为确定所述多个存储器客户端的存储器性能要求。所述DDR子系统包括系统高速缓存。所述DDR子系统被配置为执行以下操作:确定与所述系统高速缓存相关联的所述多个存储器客户端中的每个存储器客户端的高速缓存命中率;以及基于从所述系统资源管理器接收的所述存储器性能要求和所述多个存储器客户端的所述高速缓存命中率来调整对所述DRAM的访问。
附图说明
在附图中,除非另外指出,否则相似的标号贯穿各种视图指相似的部分。对于诸如是“102A”或者“102B”这样的具有字母字符名称的标号,字母字符名称可以区分出现在相同的图中的两个相似的部分或者元素。在预期标号包括全部图中的具有相同的标号的全部部分时,可以省略标号的字母字符名称。
图1是用于降低存储器子系统功率的系统的一个实施例的方框图。
图2是说明用于降低图1的DDR子系统的功耗的方法的一个实施例的流程图。
图3是说明用于基于预定的用例调整预取大小的方法的一个示例性实施例的表。
图4是说明图1的DDR子系统中的系统高速缓存的一个实施例的组合的方框/流图。
图5是说明图4的系统高速缓存中的写子高速缓存的操作的一个实施例的流程图。
图6是说明图4的系统高速缓存中的写子高速缓存的操作的另一个实施例的流程图。
图7是说明在图4的调度器中被实现的QoS算法的操作的一个实施例的组合的方框/流图。
图8是用于合并图1的系统的便携式通信设备的一个实施例的方框图。
具体实施方式
词语“示例性”在本文中被用于意指“充当示例、实例或者说明”。任何在本文中被描述为“示例性”的方面不必被解释为是优选的或者比其它的方面有利的。
在本说明书中,术语“应用”可以也包括具有可执行的内容的文件,诸如:目标代码、脚本、字节码、标记语言文件和补丁。另外,本文中提到的“应用”可以也包括本质上不可执行的文件,诸如可能需要被打开的文档或者其它的需要被访问的数据文件。
术语“内容”可以也包括具有可执行的内容的文件,诸如:目标代码、脚本、字节码、标记语言文件和补丁。另外,本文中提到的“内容”可以也包括本质上不可执行的文件,诸如可能需要被打开的文档或者其它的需要被访问的数据文件。
如本说明书中使用的,术语“部件”、“数据库”、“模块”、“系统”等旨在指计算机相关的实体,不论其是硬件、固件、硬件与软件的组合、软件还是执行中的软件。例如,部件可以是但不限于是在处理器上运行的进程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。作为说明,在计算设备上运行的应用和计算设备两者可以是部件。一个或多个部件可以存在在一个进程和/或执行的线程内,并且一个部件可以被局限在一个计算机上和/或被分布在两个或多个计算机之间。另外,这些部件可以从具有被存储在其上的各种数据结构的各种计算机可读介质执行。部件可以诸如根据具有一个或多个数据分组(例如,来自与本地系统、分布式系统中的另一个组件进行交互,和/或跨越诸如互联网的网络通过信号的方式与其它系统进行交互的一个部件的数据)的信号通过本地和/或远程过程进行通信。
在本说明书中,可互换地使用术语“通信设备”、“无线设备”、“无线电话”、“无线通信设备”和“无线手机”。伴随着第三代(“3G”)无线技术和第四代(“4G”)的出现,更大的带宽可用性已经使更多的便携式计算设备能够具有更多样的无线能力。因此,便携式计算设备可以包括蜂窝电话、寻呼机、PDA、智能电话、导航设备或者具有无线连接或者链路的手持型计算机。
图1说明了用于降低存储器子系统功率的系统100的一个实施例。系统100可以在包括个人计算机、工作站、服务器或者便携式计算设备(PCD)(诸如蜂窝电话、智能电话、便携式数字助理(PDA)、便携式游戏控制台、平板型计算机或者其它的电池供电的可穿戴设备)的任意计算设备中被实现。
如在图1中说明的,系统100包括经由存储器总线被电气地耦合到存储器系统的片上系统(SoC)102。在图1的实施例中,存储器系统包括经由随机存取存储器(RAM)总线148(例如,双数据速率(DDR)总线)被耦合到SoC 102的动态随机存取存储器(DRAM)104。SoC102包括各种片上部件,这样的片上部件包括经由SoC总线118被互连的多个存储器客户端、存储装置控制器140、系统资源管理器120和存储器子系统(例如,DDR子系统122)。存储器客户端可以包括请求对存储器系统的读/写访问的一个或多个处理单元(例如,中央处理单元(CPU)106、图形处理单元(GPU)108、数字信号处理器(DSP)110或者其它的存储器客户端)。系统100进一步包括高级操作系统(HLOS)116。
存储装置控制器140控制去往诸如是非易失性存储器设备136这样的存储设备的数据传输。如在图1中进一步说明的,SoC 102可以包括片上存储器设备(诸如静态随机存取存储器(SRAM)112和只读存储器(ROM)114)。
如在下面更加详细描述的,系统100提供用于使DDR子系统122能够集成复杂的存储器业务模式和对DDR时钟频率和/或电压电平进行控制以提供用于各种用例的总性能要求的改进了的架构。在操作中,存储器客户端中的每个存储器客户端可以经由接口142向系统资源管理器120发送性能水平投票。如本领域中已知的,客户端投票向DDR子系统122指示期望的存储器带宽能力。系统资源管理器120包括用于管理诸如是例如时钟、调压器、总线频率、服务质量、优先级等这样的系统资源的各种功能块。系统资源管理器120使系统100中的每个部件能够对于系统资源的状态进行投票。系统资源管理器120可以组合客户端投票中的全部客户端投票,并且对用例性能要求进行估计。系统资源管理器120可以经由接口144将用例性能要求转发给DDR子系统122。DDR子系统122基于处于其控制下的各种本地条件对其自己的时钟频率和电压进行控制。
如在图1中说明的,DDR子系统122包括从系统资源管理器120接收用例性能要求的本地DDRSS资源管理器126。在一个实施例中,本地DDRSS资源管理器126包括位于DDR子系统内的硬件时钟。应当认识到,本地DDRSS资源管理器126可以包括由例如位于DDR子系统122内的一个或多个块实现的一项或多项功能。本地DDRSS资源管理器126可以经由DDR时钟控制器124对DDR频率进行控制。本地DDRSS资源管理器126可以通过与经由连接146被电气地耦合到SoC 102的功率管理器集成电路(IC)138通信来控制DDR电压。在一个实施例中,可以基于存储器客户端的性能要求和每个客户端的高速缓存命中率对DDR频率和/或电压进行调整。
如在图1中说明的,DDR子系统122可以包括系统高速缓存128、一个或多个高速缓存性能监视器134和DRAM控制器130。系统高速缓存128被电气地耦合到DRAM控制器130。DRAM控制器130经由RAM总线148被电气地耦合到离片式DRAM 104。系统高速缓存128可以包括具有写缓冲器132的共享式或者末级高速缓存。系统高速缓存128是对数据进行存储以使得可以更快地为对于该数据的未来的请求提供服务的部件。在一个实施例中,系统高速缓存128可以在外部存在在SoC 102之外,并且经由I/O总线连接到SoC 102。
在另一个实施例中,DDR子系统122可以基于特定于客户端的性能监视器134和/或每个存储器客户端的高速缓存命中率对DDR电压和/或频率进行控制。应当认识到,DDR和系统高速缓存128的时钟频率和电压可以被单独地控制。如在下面更加详细描述的,DDR子系统122可以使用写缓冲器132来聚合和更有效地调度对DRAM 104的写访问。此外,DDR子系统122可以应用各种高速缓存预取策略来在DRAM 104正在以相对低的频率(例如,位于预定的或者可编程的水平以下)操作时对读访问进行聚合和缓解时延。
应当认识到,DDR子系统122可以使用高速缓存命中率以及客户端投票作为用于计算DDR时钟频率的输入元素,以及因此将DDR时钟频率维持在更优化的水平处。此外,降低时钟频率还允许电压被降低,这导致产生总能量节省。
图2是说明在系统100中被实现的用于对DDR频率进行调整的方法200的一个实施例的流程图。可以对于各种不同的用例执行方法200。在方框202处,可以启动或者恢复用例。在方框204处,系统100可以初始地具有用于系统高速缓存128和DRAM 104的缺省的频率和/或电压电平。系统资源管理器120从存储器客户端(例如,CPU 106、GPU 108、DSP 110等)接收初始的性能水平投票。在方框206处,系统资源管理器120基于从存储器客户端接收的性能水平投票确定存储器性能要求。在一个实施例中,系统资源管理器120对性能要求进行估计。系统资源管理器120使用服务质量(QoS)信息对性能估计进行更新。在方框208处,将存储器性能要求发送给DDR子系统122。可以经由接口144(图1)将存储器性能要求转发给本地DDRSS资源管理器126。在方框210处,本地DDRSS资源管理器126可以基于存储器客户端的高速缓存命中率计算和调整用于DDR时钟控制器124和系统高速缓存128的频率和/或电压。如在上面提到的,可以由一个或多个性能监视器确定高速缓存命中率。本地DDRSS资源管理器126可以还基于高速缓存命中率和存储器性能要求对系统高速缓存预取大小进行调整。在一个示例性实施例中,可以为多个存储器客户端(例如,客户端0-客户端n)中的每个存储器客户端的时钟频率分配预定的权重(Wn)。可以对于具有唯一的带宽要求(BWn)和命中率(HRn)的每个客户端对预定的权重(Wn)进行预校准。对系统高速缓存128的总带宽要求包括通过相对应的客户端的权重和高速缓存命中率被归一化的全部客户端的带宽要求(BWn)的和。可以通过将系统高速缓存的总带宽要求除以系统高速缓存的数据路径的宽度来确定系统高速缓存频率。
可以如在下面的方程1和2中示出的那样以类似的方式取代高速缓存命中率而通过高速缓存未命中率来计算DDR频率。
F_cache=sum(W0*BW0*HR0+W1*BW1*HR1+...+Wn*BWn*HRn)/interfeace_width
方程1
F_ddr=sum(W0*BW0*(1-HR0)+W1*BW1*(1-HR1)+...+Wn*BWn*(1-HRn))/interface_width
方程2
在方程1和2中,“Wn”代表在频率决策制定时的每个客户端的相对重要性或者权重。例如,更大的值的Wn可以使具体的客户端的带宽要求具有与具有更低的值的Wn的其它客户端相比更大的对频率的影响。全部Wn值的和是100%。在一个实施例中,对于给定的类型的用例,跨全部客户端的加权分布可以遵循预定的轮廓。用例类型之间的变更可以涉及对加权分布的调整。“BWn”代表该客户端的唯一的带宽要求,其可以用字节/秒来度量。带宽要求可以甚至在相同的用例内持续地变更。“HRn”代表针对该客户端被测量的系统高速缓存命中率,并且可以取从0到100%的值。命中率可以甚至在相同的用例内变更。(1-HRn)的值包括针对该客户端的系统高速缓存未命中率。“interface_width”代表在为1/F_cache或者1/F_ddr的单个时钟周期中被传输的字节的数量。
在这种简化的设计中,DDR频率可以包括固定的值,而不考虑多个存储器客户端带宽要求和高速缓存命中率。可以从假设最坏情况下的高速缓存命中率和并发条件的预定义的频率的集合中选择固定的值。
应当认识到,DDR子系统122可以基于例如多个存储器客户端的高速缓存命中率、DDR操作频率和客户端的访问模式调整对DRAM 104的存储器访问模式。参考图3,在一个实施例中,DDR子系统122可以基于一个或多个用例对系统高速缓存预取大小进行调整。表300在列302中说明了三个示例性用例。第一用例310包括照相机用例。第二用例312包括GPU用例。第三用例包括CPU用例。可以通过子高速缓存分区或者通过来自每个事务的主ID来识别用例人。DDR子系统122然后可以基于用例的业务模式进行预取。列304、306和308分别说明了用于预取加权、访问模式和延迟容限的相对应的值。应当认识到,这些可以是DDR子系统122中的可配置的参数,可以针对每个用例将这些可配置的参数设置为预调谐的值。预取加权值包括代表在访问模式被检测时预取将被多么激进地应用于高速缓存预取函数的值(例如,值“0”是最不激进的,以及值“10”是最激进的)。
访问模式306(图3)定义来自相对应的用例的业务请求模式。这代表被用于检测和启用预取的模式和将被用于对数据进行预取的模式。对于照相机用例310,预取模式是针对每个256字节地址颗粒的(即,预取前64字节,跳过接下来的192字节,然后预取来自下一个256字节单元的前64字节)。延迟容限308代表为了请求获得响应,用例可以处置多长的时序窗口。该信息可以是有助于对DDR子系统122进行引导(例如,控制其可以多么多地使去往DRAM的I/O请求滞留以及尽可能久地将DRAM和I/O保持在低功率状态下)的。一旦对于用例来说需要预取动作,则可以根据方程3确定用于该用例的预取大小。
Prefetch_size_n=Size_pfch_max*Wn*(F_ddr_max-F_ddr)/((F_ddr_max-F_ddr_min)*10)
方程3
对于每个客户端“n”,Wn是用百分比来度量的该客户端的相对重要性或者权重。例如,更大的值的Wn将使客户端具有与具有更低的值的Wn的其它客户端相比更大的对预取长度的影响。“Size_pfch_max”是将从DDR子系统122被发出的可编程的最大预取大小。“Prefetch_size_n”是在具体的用例中用于用例的预取大小,其可以是基于例如高速缓存操作的最小粒度的。
在另一个实施例中,DDR子系统122可以基于DDR频率对系统高速缓存预取大小进行调整。例如,可以在DRAM 104处在相对较低的频率处时增大预取大小以减少时延。可以在DDR频率到达预定的或者可编程的门限时禁用预取功能。此外,DDR子系统122可以根据例如最小大小(例如,256字节)和最大大小(例如,4K字节)对预取大小进行预配置。DDR子系统122可以基于业务模式、DDR频率和预取命中率对预取大小进行控制。
在一个进一步的实施例中,DDR子系统122可以调整系统高速缓存预取大小,存储器客户端的高速缓存命中率。DDR子系统122可以保持跟踪由预取引擎分配的高速缓存行。在对用例命中率进行监视时,DDR子系统122可以为通过预取和非预取被分配的高速缓存行提供单独的计数器。可以在对于被预取的行的高速缓存命中率提高时增大预取大小。
图4是说明系统高速缓存128的一个实施例的组合的方框/流图。系统高速缓存128包括写子高速缓存402(例如,示例性写缓冲器132)、写请求流水线403和读未命中流水线404。写子高速缓存402和写请求流水线403被耦合到写队列406。读未命中方框404被耦合到读队列408。写队列406和读队列408与被耦合到DRAM控制器130的存储器调度器410通信。应当认识到,图4说明了一个频率点内的流。在DRAM 104仅支持一个频率点时的情况下,可以在活动模式与自刷新模式之间切换DRAM 104。DRAM控制器130可以在时钟被选通和未被选通操作之间进行切换。
图5说明了在图4的系统400中被实现的方法500。在引导期间,在方框502处,DDR子系统122可以被配置为包括缺省频率和缺省超时的缺省状况。缺省状况可以具有写子高速缓存402中的零占用。在方框504处,DDR子系统122可以基于用例要求对DDR频率和/或预取大小进行调整。在方框506和508处,定时器可以被用于在缺少读/写活动时将DRAM 104置于自刷新模式下。在方框516处,对于写请求,写子高速缓存402可以被用于延长将DRAM 104保持在自刷新模式下的持续时间以节约功率。写请求可以在写队列中等待,直到队列满为止,并且然后,可以一起发出这些请求。在方框510、512和514处,如果存在高速缓存命中,则系统400可以为来自系统高速缓存128的读请求提供服务。在读未命中时,可以将请求临时地放入读请求队列中。为了对读访问进行聚合,请求可以在队列中等待,直到队列满为止,并且然后,可以一起发出这些读请求。然而应当认识到,在请求具有例如高于可配置的门限的QoS优先级时,可以为请求提供服务而不在读队列中等待。在方框518处,可以将DRAM 104带出自刷新模式以便为请求(诸如读未命中)提供服务,或者在写子高速缓存402不再可以收容写请求时,可以冲刷读队列和写队列中的请求。
图6是说明系统高速缓存128的操作的另一个实施例的流程图。图6示出了一个频率点内的或者在DRAM 104仅支持一个频率点时的情况下的关于如何为写请求提供服务以便在实践上尽量长地将DRAM 104保持在自刷新模式下的细节。写子高速缓存402包括系统高速缓存操作。未被用作写子高速缓存402的高速缓存行可以被用作用于用例的正常高速缓存。方框602、604、606、608和610说明了在DRAM 104处在活动模式或者自刷新下时被接收的非可高速缓存的请求。如果写队列406不是满的,则请求可以被放入队列中以便针对DDRI/O被调度。如果DRAM 104处在自刷新模式下或者队列是满的,则其将在决策方框620处检查写子高速缓存402。可以通过正常高速缓存操作对可高速缓存的写请求进行处理,正常高速缓存操作可以具有与写缓冲器子高速缓存不同的操作条件。在方框614、616和626处,系统确定是否存在高速缓存命中或者其它的高速缓存行是否需要被替代。在方框618处,如果存在高速缓存未命中,并且牺牲品是脏的行,则其转到与上面相同的路径以决定要将请求发送到写子高速缓存402还是直接发送到写队列406。方框620、622、624和626示出了用于分配系统高速缓存128中的高速缓存行作为写子高速缓存402以便在数据被写入DRAM 104之前临时地对数据进行缓冲的流程。在方框620和624处,在缓冲器是满的或者不再有合适的高速缓存行可用于被分配用于写子高速缓存402时,将DRAM 104带出自刷新模式。
图7是说明在图4的调度器中被实现的QoS算法的操作的一个实施例的组合的方框/流图。如在图7中说明的,读请求701和写请求703可以带着QoS指示(诸如优先级级别)到达DDR子系统122。可以从系统高速缓存128为请求提供服务,在这种情况下,不生成去往DDRI/O的事务。如果存在未命中,则将请求转发给DDR IO。可以将请求分配在系统高速缓存128中。可以将脏的高速缓存行驱逐(线条702)到去往DDR I/O的不同地址。因此,输入到DDR子系统122的请求的地址可以不是精确地是DDR I/O上的地址。输入的读/写请求701和703中的地址可以不是将被用于向DRAM CTRL 130调度业务的正确的信息。在这个示例中,系统高速缓存控制器710接收具有地址0x1234ABCD的写请求703。系统高速缓存控制器710可以确定将为该写请求分配新的高速缓存行。如在线条702处说明的,系统高速缓存控制器710可以根据替代策略选择将被驱逐的牺牲品高速缓存行。方框704示出了具有不同于原始的写请求的地址的牺牲品高速缓存行(例如,0x5555FFFF将被驱逐到DDR)。在方框132处,驱逐生成对于地址0x5555FFFF的写请求。请求或者被放入写队列406中(如果队列不是满的),或者被放入写子高速缓存402中。由于写子高速缓存,DDR业务调度器410现在具有包括例如以下各项的更大的将被调度的池:(a)具有该请求的QoS优先级级别的读队列中的全部请求;(b)具有该请求的QoS优先级级别的读队列中的全部请求;以及(c)写缓冲器中的全部请求。具有对更多输入的业务的可见性允许调度器进行更好的调度,其中,调度准则考虑请求的QoS优先级级别、DRAM页打开和空白命中、超过写优先级的读优先级等,以及将请求发送给DRAM控制器130。用这种方式,应当认识到,系统可以通过为调度器提供更大的用于调度的池来具有更好的QoS和DDR使用。
如在上面提到的,可以将系统100并入任何期望的计算系统。图8说明了被并入在一个示例性便携式计算设备(PCD)800中的系统100。应当容易认识到,系统100的特定的部件(例如,RPM 116)被包括在SoC 322(图8)上,而其它的部件(例如,DRAM 104)是被耦合到SoC 322的外部的部件。SoC 322可以包括多核CPU 802。多核CPU 802可以包括第零核810、第一核812和第N核814。这些核中的一个核可以包括例如图形处理单元(GPU),而其它的核中的一个或多个核包括CPU。
显示器控制器328和触摸屏控制器330可以被耦合到CPU 802。继而,位于片上系统322的外部的触摸屏显示器606可以被耦合到显示器控制器328和触摸屏控制器330。
图8进一步示出视频编码器334(例如,逐行倒相(PAL)编码器、顺序彩色记忆(SECAM)编码器或者国家电视系统委员会(NTSC)编码器)被耦合到多核CPU 802。进一步地,视频放大器336被耦合到视频编码器334和触摸屏显示器806。此外,视频端口338被耦合到视频放大器336。如在图8中示出的,通用串行总线(USB)控制器340被耦合到多核CPU 802。此外,USB端口342被耦合到USB控制器340。存储器104和用户身份模块(SIM)卡346可以也被耦合到多核CPU 802。
进一步地,如在图8中示出的,数字照相机348可以被耦合到多核CPU 802。在一个示例性方面中,数字照相机348是电荷耦合设备(CCD)照相机或者互补金属氧化物半导体(CMOS)照相机。
如在图8中进一步说明的,立体声音频编码器-解码器(编解码器)350可以被耦合到多核CPU 802。此外,音频放大器352可以被耦合到立体声音频编解码器350。在一个示例性方面中,第一立体声扬声器354和第二立体声扬声器356被耦合到音频放大器352。图8示出麦克风放大器358可以也被耦合到立体声音频编解码器350。额外地,麦克风360可以被耦合到麦克风放大器358。在一个具体的方面中。调频(FM)无线电调谐器362可以被耦合到立体声音频编解码器350。此外,FM天线364被耦合到FM无线电调谐器362。进一步地,立体声耳机366可以被耦合到立体声音频编解码器350。
图8进一步说明射频(RF)收发机368可以被耦合到多核CPU 802。RF开关370可以被耦合到RF收发机368和RF天线372。小键盘204可以被耦合到多核CPU 802。此外,具有麦克风376的单声道耳机可以被耦合到多核CPU 802。进一步地,振动器设备378可以被耦合到多核CPU 802。
图8还示出电源380可以被耦合到片上系统322。在一个具体的方面中,电源380是向需要电力的PCD 800的各种部件提供电力的直流(DC)电源。进一步地,在一个具体的方面中,电源是可再充电的DC电池或者从被连接到交流(AC)电源的AC到DC变压器被导出的DC电源。
图8进一步指示PCD 800可以还包括可以用于接入数据网络(例如,局域网、个域网或者任何其它的网络)的网卡388。网卡388可以是蓝牙网卡、WiFi网卡、个域网(PAN)卡、个域网超低功率技术(PeANUT)网卡、电视/有线电视/卫星调谐器或者本领域中公知的任何其它的网卡。进一步地,可以将网卡388并入到芯片中,即,网卡388可以是芯片中的完整解决方案,并且可以不是单独的网卡388。
如在图8中描绘的,触摸屏显示器806、视频端口338、USB端口342、照相机348、第一立体声扬声器354、第二立体声扬声器356、麦克风360、FM天线364、立体声耳机366、RF开关370、RF天线372、小键盘374、单声道耳机376、振动器378和电源380可以是位于片上系统322的外部的。
应当认识到,本文中描述的方法步骤中的一个或多个方法步骤可以作为计算机程序指令(诸如上面描述的模块)被存储在存储器中。这些指令可以被任何合适的处理器结合或者呼应相对应的模块地执行以执行本文中描述的方法。
为了本发明如所描述的那样起作用,本说明书中描述的过程或者过程流中的特定的步骤自然地出现在其它的步骤之前。然而,本发明不限于所描述的步骤的次序(如果这样的次序或者顺序不改变本发明的功能的话)。即,应当认识到,一些步骤可以在其它的步骤之前、之后或者与其它的步骤并行地(在顺序上与之同时地)被执行,而不脱离本发明的范围和精神。在一些情况下,可以省略或者不执行特定的步骤,而不脱离本发明。进一步地,诸如是“其后”、“然后”、“接下来”等这样的术语不旨在限制步骤的次序。这些术语被简单地用于引导读者通过对示例性方法的描述。
额外地,编程领域的技术人员能够基于例如本说明书中的流程图和相关联的描述内容没有困难地编写计算机代码或者识别合适的硬件和/或电路以实现所公开的发明。
因此,不认为对程序代码指令或者详细的硬件设备的具体的集合的公开是对于足够地理解如何制作和使用本发明来说必要的。在上面的描述内容中并且结合可以说明各种过程流的图详细阐述了所要求保护的计算机实现的过程的发明性功能。
在一个或多个示例性方面中,所描述的功能可以用硬件、软件、固件或者其任意组合来实现。如果用软件来实现,则功能可以作为计算机可读介质上的一个或多个指令或者代码被存储或者发送。计算机可读介质包括计算机存储介质和通信介质两者,通信介质包括任何促进计算机程序从一个地方向另一个地方的传输的介质。存储介质可以是任何可以被计算机访问的可用介质。作为示例而非限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、NAND闪存、NOR闪存、M-RAM、P-RAM、R-RAM、CD-ROM或者其它光盘存储装置、磁盘存储装置或者其它磁性存储设备、或者任何其它的可以被用于携带或者存储采用指令或者数据结构的形式的期望的程序代码并且可以被计算机访问的介质。
此外,任何连接被恰当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线(“DSL”)或者诸如是红外线、无线电和微波这样的无线技术从网站、服务器或者其它远程源发送软件,则同轴线缆、光纤线缆、双绞线、DSL或者诸如是红外线、无线电和微波这样的无线技术被包括在介质的定义中。
如本文中使用的磁盘和光盘包括压缩盘(“CD”)、激光盘、光盘、数字多功能光盘(“DVD”)、软盘和蓝光盘,其中,磁盘通常磁性地复制数据,而光盘利用激光在光学上复制数据。以上各项的组合也应当被包括在计算机可读介质的范围内。
替换的实施例对于本发明所属领域技术人员将变得显而易见,而不脱离其精神和范围。因此,尽管已经说明和详细地描述了经选择的方面,但应当理解,可以在其中作出各种替换和改变,而不脱离如由以下权利要求定义的本发明的精神和范围。

Claims (30)

1.一种用于降低存储器子系统功率的方法,所述方法包括:
系统资源管理器确定多个存储器客户端的存储器性能要求并且向双数据速率DDR子系统提供所述存储器性能要求,所述DDR子系统和所述系统资源管理器存在在被电气地耦合到动态随机存取存储器DRAM的片上系统SoC上;
利用所述DDR子系统确定与存在在所述DDR子系统上的系统高速缓存相关联的所述多个存储器客户端中的每个存储器客户端的高速缓存命中率;以及
所述DDR子系统基于从所述系统资源管理器接收的所述存储器性能要求和所述多个存储器客户端的所述高速缓存命中率来调整对所述DRAM的访问。
2.根据权利要求1所述的方法,其中,所述DDR子系统调整对所述DRAM的访问包括:基于DDR时钟频率来对系统高速缓存预取大小进行调整。
3.根据权利要求2所述的方法,其中,所述DDR子系统调整对所述DRAM的访问包括:在所述DDR时钟频率到达可编程的门限时增大系统高速缓存预取大小以缓解时延。
4.根据权利要求1所述的方法,其中,所述DDR子系统调整对所述DRAM的访问包括:基于所述多个存储器客户端中的至少一个存储器客户端的所述高速缓存命中率来对系统高速缓存预取大小进行调整。
5.根据权利要求1所述的方法,还包括:
指示所述DRAM进入自刷新模式;以及
通过使用存在在所述系统高速缓存中的写子高速缓存延长所述自刷新模式的持续时间。
6.根据权利要求1所述的方法,其中,所述存储器客户端包括经由SoC总线被电气地耦合的中央处理单元(CPU)、图形处理单元(GPU)和数字信号处理器(DSP)中的一项或多项。
7.根据权利要求1所述的方法,其中,所述DDR子系统还包括用于确定所述多个存储器客户端中的每个存储器客户端的所述高速缓存命中率的一个或多个性能监视器。
8.一种用于降低存储器子系统功率的系统,所述系统包括:
用于确定多个存储器客户端的存储器性能要求并且向双数据速率DDR子系统提供所述存储器性能要求的单元,所述DDR子系统存在在被电气地耦合到动态随机存取存储器DRAM的片上系统SoC上;
用于在所述DDR子系统处确定与存在在所述DDR子系统上的系统高速缓存相关联的所述多个存储器客户端中的每个存储器客户端的高速缓存命中率的单元;以及
用于基于所接收的存储器性能要求和所述多个存储器客户端的所述高速缓存命中率来调整对所述DRAM的访问的单元。
9.根据权利要求8所述的系统,其中,所述用于调整对所述DRAM的访问的单元包括:用于基于DDR时钟频率来对系统高速缓存预取大小进行调整的单元。
10.根据权利要求9所述的系统,其中,所述用于调整对所述DRAM的访问的单元包括:用于在所述DDR时钟频率到达可编程的门限时增大系统高速缓存预取大小以缓解时延的单元。
11.根据权利要求8所述的系统,其中,所述用于调整对所述DRAM的访问的单元包括:用于基于所述多个存储器客户端中的至少一个存储器客户端的所述高速缓存命中率来对系统高速缓存预取大小进行调整的单元。
12.根据权利要求8所述的系统,还包括:
用于将所述DRAM置于自刷新模式下的单元;以及
用于通过使用存在在所述系统高速缓存中的写子高速缓存延长所述自刷新模式的持续时间的单元。
13.根据权利要求8所述的系统,其中,所述存储器客户端包括经由SoC总线被电气地耦合的中央处理单元(CPU)、图形处理单元(GPU)和数字信号处理器(DSP)中的一项或多项。
14.根据权利要求8所述的系统,其中,所述DDR子系统还包括用于确定所述多个存储器客户端中的每个存储器客户端的所述高速缓存命中率的一个或多个性能监视器。
15.一种被体现在存储器中并且可由处理器执行以实现用于降低存储器子系统功率的方法的计算机程序,所述方法包括:
利用系统资源管理器确定多个存储器客户端的存储器性能要求并且向双数据速率DDR子系统提供所述存储器性能要求,所述DDR子系统存在在被电气地耦合到动态随机存取存储器DRAM的片上系统SoC上;
利用所述DDR子系统确定与存在在所述DDR子系统上的系统高速缓存相关联的所述多个存储器客户端中的每个存储器客户端的高速缓存命中率;以及
基于从所述系统资源管理器接收的所述存储器性能要求和所述多个存储器客户端的所述高速缓存命中率来调整对所述DRAM的访问。
16.根据权利要求15所述的计算机程序,其中,所述调整对所述DRAM的访问包括:基于DDR时钟频率来对系统高速缓存预取大小进行调整。
17.根据权利要求16所述的计算机程序,其中,所述调整对所述DRAM的访问包括:在所述DDR时钟频率到达可编程的门限时增大系统高速缓存预取大小以缓解时延。
18.根据权利要求15所述的计算机程序,其中,所述调整对所述DRAM的访问包括:基于所述多个存储器客户端中的至少一个存储器客户端的所述高速缓存命中率来对系统高速缓存预取大小进行调整。
19.根据权利要求15所述的计算机程序,其中,所述方法还包括:
指示所述DRAM进入自刷新模式;以及
通过使用存在在所述系统高速缓存中的写子高速缓存延长所述自刷新模式的持续时间。
20.根据权利要求15所述的计算机程序,其中,所述存储器客户端包括经由SoC总线被电气地耦合的中央处理单元(CPU)、图形处理单元(GPU)和数字信号处理器(DSP)中的一项或多项。
21.根据权利要求15所述的计算机程序,其中,所述DDR子系统还包括用于确定所述多个存储器客户端中的每个存储器客户端的所述高速缓存命中率的一个或多个性能监视器。
22.一种用于降低存储器子系统功率的系统,所述系统包括:
动态随机存取存储器DRAM;以及
经由DDR总线被电气地耦合到所述DRAM的片上系统SoC,所述SoC包括:
经由SoC总线被电气地耦合的多个存储器客户端;
系统资源管理器,其被配置为确定所述多个存储器客户端的存储器性能要求并且向双数据速率DDR子系统提供所述存储器性能要求;
包括系统高速缓存的所述DDR子系统,所述DDR子系统被配置为执行以下操作:确定与所述系统高速缓存相关联的所述多个存储器客户端中的每个存储器客户端的高速缓存命中率;以及基于从所述系统资源管理器接收的所述存储器性能要求和所述多个存储器客户端的所述高速缓存命中率来调整对所述DRAM的访问。
23.根据权利要求22所述的系统,其中,所述DDR子系统通过以下操作来调整对所述DRAM的访问:基于DDR时钟频率来对系统高速缓存预取大小进行调整。
24.根据权利要求23所述的系统,其中,所述DDR子系统通过以下操作来调整对所述DRAM的访问:在所述DDR时钟频率到达可编程的门限时增大系统高速缓存预取大小以缓解时延。
25.根据权利要求22所述的系统,其中,所述DDR子系统通过以下操作来调整对所述DRAM的访问:基于所述多个存储器客户端中的至少一个存储器客户端的所述高速缓存命中率来对系统高速缓存预取大小进行调整。
26.根据权利要求22所述的系统,其中,所述DDR子系统还被配置为执行以下操作:
指示所述DRAM进入自刷新模式;以及
通过使用存在在所述系统高速缓存中的写子高速缓存延长所述自刷新模式的持续时间。
27.根据权利要求22所述的系统,其中,所述存储器客户端包括经由SoC总线被电气地耦合的中央处理单元(CPU)、图形处理单元(GPU)和数字信号处理器(DSP)中的一项或多项。
28.根据权利要求22所述的系统,其中,所述DDR子系统还包括用于确定所述多个存储器客户端中的每个存储器客户端的所述高速缓存命中率的一个或多个性能监视器。
29.根据权利要求22所述的系统被并入到便携式计算设备中。
30.根据权利要求29所述的系统,其中,所述便携式计算设备包括智能电话或者平板型设备。
CN201780019650.2A 2016-03-27 2017-03-03 具有系统高速缓存和本地资源管理的功率降低存储器子系统 Active CN108885587B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/081,915 2016-03-27
US15/081,915 US9785371B1 (en) 2016-03-27 2016-03-27 Power-reducing memory subsystem having a system cache and local resource management
PCT/US2017/020811 WO2017172268A1 (en) 2016-03-27 2017-03-03 Power-reducing memory subsystem having a system cache and local resource management

Publications (2)

Publication Number Publication Date
CN108885587A CN108885587A (zh) 2018-11-23
CN108885587B true CN108885587B (zh) 2022-05-13

Family

ID=58387893

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780019650.2A Active CN108885587B (zh) 2016-03-27 2017-03-03 具有系统高速缓存和本地资源管理的功率降低存储器子系统

Country Status (4)

Country Link
US (1) US9785371B1 (zh)
EP (1) EP3436956B1 (zh)
CN (1) CN108885587B (zh)
WO (1) WO2017172268A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230195644A1 (en) * 2021-12-20 2023-06-22 Advanced Micro Devices, Inc. Last level cache access during non-cstate self refresh

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120317364A1 (en) * 2011-06-13 2012-12-13 Loh Gabriel H Cache prefetching from non-uniform memories
US20140089592A1 (en) * 2012-09-27 2014-03-27 Apple Inc. System cache with speculative read engine
CN105027211A (zh) * 2013-01-31 2015-11-04 惠普发展公司,有限责任合伙企业 自适应粒度行缓冲器高速缓存

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5860106A (en) 1995-07-13 1999-01-12 Intel Corporation Method and apparatus for dynamically adjusting power/performance characteristics of a memory subsystem
US6334167B1 (en) 1998-08-31 2001-12-25 International Business Machines Corporation System and method for memory self-timed refresh for reduced power consumption
JP4555145B2 (ja) * 2005-04-28 2010-09-29 富士通株式会社 バッチスケジューリングプログラム、バッチスケジューリング方法およびバッチスケジューリング装置
US20070043965A1 (en) 2005-08-22 2007-02-22 Intel Corporation Dynamic memory sizing for power reduction
JP4837456B2 (ja) 2006-06-28 2011-12-14 パナソニック株式会社 情報処理装置
US20090204837A1 (en) 2008-02-11 2009-08-13 Udaykumar Raval Power control system and method
US8589707B2 (en) 2008-12-05 2013-11-19 Stmicroelectronics International N.V. System and method for optimizing electrical power consumption by changing CPU frequency including steps of changing the system to a slow mode, changing a phase locked loop frequency register and changing the system to a normal mode
US8656198B2 (en) 2010-04-26 2014-02-18 Advanced Micro Devices Method and apparatus for memory power management
US8339891B2 (en) 2010-05-25 2012-12-25 Lsi Corporation Power savings and/or dynamic power management in a memory
US8438410B2 (en) 2010-06-23 2013-05-07 Intel Corporation Memory power management via dynamic memory operation states
JP2012150529A (ja) * 2011-01-17 2012-08-09 Sony Corp メモリアクセス制御回路、プリフェッチ回路、メモリ装置および情報処理システム
US20120095607A1 (en) 2011-12-22 2012-04-19 Wells Ryan D Method, Apparatus, and System for Energy Efficiency and Energy Conservation Through Dynamic Management of Memory and Input/Output Subsystems
US8713256B2 (en) 2011-12-23 2014-04-29 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including dynamic cache sizing and cache operating voltage management for optimal power performance

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120317364A1 (en) * 2011-06-13 2012-12-13 Loh Gabriel H Cache prefetching from non-uniform memories
US20140089592A1 (en) * 2012-09-27 2014-03-27 Apple Inc. System cache with speculative read engine
CN105027211A (zh) * 2013-01-31 2015-11-04 惠普发展公司,有限责任合伙企业 自适应粒度行缓冲器高速缓存

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于两级存储流跟踪管理器的业务识别系统;郭潇宇等;《计算机工程与设计》;20131116(第11期);全文 *

Also Published As

Publication number Publication date
EP3436956B1 (en) 2021-04-14
US20170277461A1 (en) 2017-09-28
WO2017172268A1 (en) 2017-10-05
US9785371B1 (en) 2017-10-10
EP3436956A1 (en) 2019-02-06
CN108885587A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN109074331B (zh) 具有系统高速缓存和本地资源管理的功率降低存储器子系统
US9626295B2 (en) Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring
US9697124B2 (en) Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture
US9703493B2 (en) Single-stage arbiter/scheduler for a memory system comprising a volatile memory and a shared cache
US9292068B2 (en) Controlling a turbo mode frequency of a processor
US20170199814A1 (en) Non-volatile random access system memory with dram program caching
EP3440550A1 (en) Reducing memory access bandwidth based on prediction of memory request size
US20170212581A1 (en) Systems and methods for providing power efficiency via memory latency control
US11620243B2 (en) Way partitioning for a system-level cache
US10140219B2 (en) Multi-port shared cache apparatus
US9892054B2 (en) Method and apparatus for monitoring system performance and dynamically updating memory sub-system settings using software to optimize performance and power consumption
US9489305B2 (en) System and method for managing bandwidth and power consumption through data filtering
CN108885587B (zh) 具有系统高速缓存和本地资源管理的功率降低存储器子系统
KR20160018204A (ko) 전자 장치, 온 칩 메모리 장치 및 온 칩 메모리의 운영 방법
US20230418753A1 (en) Allocation control for cache
WO2017146864A1 (en) System and method for improved memory performance using cache level hashing

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