CN110574014B - 节能的高速缓存存储器使用 - Google Patents
节能的高速缓存存储器使用 Download PDFInfo
- Publication number
- CN110574014B CN110574014B CN201880028903.7A CN201880028903A CN110574014B CN 110574014 B CN110574014 B CN 110574014B CN 201880028903 A CN201880028903 A CN 201880028903A CN 110574014 B CN110574014 B CN 110574014B
- Authority
- CN
- China
- Prior art keywords
- memory
- cache
- cache memory
- supplemental
- functional
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3225—Monitoring of peripheral devices of memory devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0835—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Memory System Of A Hierarchy Structure (AREA)
- Power Sources (AREA)
Abstract
描述了实现节能的高速缓存存储器使用的技术和装置。使用所描述的技术和装置,可以将使用例如DRAM构造的主存储器置于诸如自刷新模式的低功率模式中更长的时间段。分层存储器系统包括以可操作的方式耦合在较高级别的高速缓存存储器和主存储器之间的补充高速缓存存储器。可以响应于选择性地激活补充高速缓存存储器而将主存储器置于自刷新模式。可以用比较高级别的高速缓存存储器小的高度关联的或完全关联的高速缓存存储器来实施补充高速缓存存储器。因此,补充高速缓存存储器可以处理由于过多的存储块被映射到单个高速缓存行而引起的较高级别的高速缓存存储器的那些高速缓存未中。以这种方式,可以将主存储器的DRAM实施方式保持在自刷新模式中更长的时间段。
Description
背景技术
电子设备在制造、通信、医疗保健、商业、社交互动和娱乐中起着不可或缺的作用。例如,电子设备为服务器场提供动力,这些服务器场为商业和通信提供基于云的分布式计算功能。具有计算能力的设备还嵌入到许多不同类型的现代设备中,从医疗设备到家用电器,并且从车辆到工业工具。此外,一种电子设备(智能手机)已成为随时随地携带的必需品。随着电子设备变得如此普遍,电子设备消耗的功率已经成为问题。
因此,制造商在设计电子设备时考虑了预期的功耗水平。降低功耗的动机包括降低使用成本和最小化对环境的影响。此外,便携式电子设备由电池供电,电池在需要充电之前提供能量的能力有限。因此,通过减少功耗,便携式电子设备可以在需要充电之前使用更长的时间。较低的功耗率还可以使得能够使用较小的电池来减小便携式电子设备的尺寸。
在电子设备中,集成电路和印刷电路基板,例如印刷电路板(PCB)或薄膜,会导致很大一部分功耗。通过随着时间减少电路所消耗的能量,可以减少整个电子设备的功耗,并且可以延长电池寿命。减少电路能耗(energy usage)的一种方法是间歇地使电路掉电。不幸的是,使电路掉电会影响其功能,因此可能会影响对应的电子设备的能力或影响由该对应的电子设备所提供的用户体验。
例如,考虑动态随机存取存储器(DRAM)。由于DRAM大小、速度和成本的独特结合,因此在许多电子设备中都使用DRAM来存储信息,例如计算机代码和数据。然而,DRAM的负面特性是,在用于存储此类信息时,DRAM消耗大量的功率。因此,使得DRAM模块掉电可以节省大量电量并延长电池寿命。不幸的是,使DRAM完全掉电会导致存储的信息丢失。因此,为了减少能量消耗并延长电池寿命,设计人员在寻找可以使DRAM掉电而又不会丢失存储信息的技术。
提供该背景描述以大体呈现本公开的上下文。除非本文以其它方式指出,否则本节中描述的材料既不明确也不暗示地被允许是本公开或所附权利要求的现有技术。
发明内容
描述了实现节能的高速缓存存储器使用的技术和装置。这些技术和装置使得使用动态随机存取存储器(DRAM)构造的主存储器能够被置于低功率模式(例如自刷新模式)中更长的时间段或较少中断(所述中断导致DRAM重新上电)。为此,分层存储器系统包括以可操作的方式耦合在较高级别的高速缓存存储器和主存储器之间的补充高速缓存存储器。如果补充高速缓存存储器是活动的,则可以选择性地激活补充高速缓存存储器,并且可以将主存储器置于自刷新模式。可以使用比较高级别的高速缓存存储器小的高度关联或完全关联的高速缓存存储器来实施补充高速缓存存储器。因此,即使在较高级别的高速缓存存储器未满的情况中,补充高速缓存存储器也可以处理由于太多存储器块被映射到单个高速缓存行而引起的较高级别的高速缓存存储器的那些高速缓存未中(miss)。以这种方式,主存储器的DRAM可以在自刷新模式中保持更长的时间段。
因此,本发明通过下述方式解决了减少能量使用和延长电池寿命的问题:减少要求使主存储器离开自刷新模式的高速缓存未中的频率,主存储器并因此允许主存储器在低功率模式中操作更长的时间。
以下描述的方面包括一种电子设备,该电子设备包括处于第一层次级别的第一高速缓存存储器、处于第二层次级别的补充高速缓存存储器、处于第三层次级别的主存储器以及控制电路。第二层次级别低于第一层次级别,并且第三层次级别低于第二层次级别。补充高速缓存存储器通信地耦合到第一高速缓存存储器,并且被配置为尝试处理第一高速缓存存储器的高速缓存未中。主存储器通信地耦合到第一高速缓存存储器和补充高速缓存存储器。控制电路耦合到补充高速缓存存储器和主存储器,并且被配置为引起在两个或更多个功能存储器状态之间的转换。所述两个或更多个功能存储器状态包括第一功能存储器状态和第二功能存储器状态。在第一功能存储器状态中,补充高速缓存存储器处于非活动操作模式,而主存储器处于常规功率模式。在第二功能存储器状态中,补充高速缓存存储器处于活动操作模式,而主存储器处于低功率模式。
非活动操作模式可以对应于针对第一高速缓存存储器中未中的存储器请求而绕过补充高速缓存存储器。活动操作模式可以对应于补充高速缓存存储器存储信息以处理在第一高速缓存存储器中未中的存储器请求。常规功率模式可以对应于在主存储器中的信息被保留并且可访问以处理在第一高速缓存存储器中未中的存储器请求。低功率模式可以对应于主存储器中的信息被保留但在唤醒主存储器之前不可访问。
所述两个或更多个功能存储器状态可以进一步包括第三功能存储器状态,其中,所述补充高速缓存存储器处于监视操作模式,而主存储器处于常规功率模式。补充高速缓存存储器可以被配置为在监视操作模式中高速缓存第一高速缓存存储器的信息,以准备从第一功能存储器状态到第二功能存储器状态的转换。
所述两个或更多个功能存储器状态可以进一步包括第四功能存储器状态,其中,补充高速缓存存储器处于清理(scrub)操作模式,而主存储器处于常规功率模式。补充高速缓存存储器可以被配置为在清理操作模式中将脏信息写回到主存储器,以准备经由第四功能存储器状态从第二功能存储器状态到第一功能存储器状态的转换。
第一高速缓存存储器可以更大,并且可以被配置为存储比补充高速缓存存储器更多的信息。
第一高速缓存存储器可以包括N路集关联高速缓存存储器,其中,“N”代表正整数。补充高速缓存存储器可以包括关联高速缓存存储器,该关联高速缓存存储器是完全关联或M路集关联中的至少一个,其中,“M”表示大于“N”的正整数的另一个正整数。
补充高速缓存存储器可以被配置为在第二功能存储器状态中可用作第一高速缓存存储器的较低级别的高速缓存资源,而在第一功能存储器状态中不可用作第一高速缓存存储器的较低级别的高速缓存资源。
电子设备可以进一步包括能够由软件访问的寄存器。寄存器可以被配置为保持可设定值以启用第二功能存储器状态。
控制电路可以被配置为基于主存储器的活动的影响来发起在所述两个或更多个功能存储器状态之间的转换。
控制电路可以被配置为通过跟踪高速缓存未中或通过监视耦合到主存储器的互连的利用来估计主存储器的活动的影响。
以下描述的方面还包括一种方法,该方法包括操作包括有第一高速缓存存储器、补充高速缓存存储器和主存储器的存储器系统,其中,补充高速缓存存储器被配置为选择性地处理第一高速缓存存储器的高速缓存未中。该方法还包括确定补充高速缓存存储器的操作模式,其中,操作模式包括非活动操作模式或活动操作模式。该方法还包括响应于补充高速缓存存储器处于非活动操作模式,对于与第一高速缓存存储器的高速缓存未中相关联的存储器请求绕过补充高速缓存存储器,并将该存储器请求路由到主存储器。该方法还包括响应于补充高速缓存存储器处于活动操作模式:确定存储器请求的目标信息被存储在补充高速缓存存储器中,并且响应于确定该目标信息被存储在补充高速缓存存储器中,从补充高速缓存存储器提供该目标信息。
该方法可以进一步包括确定目标信息没有存储在补充高速缓存存储器中。该方法可以进一步包括响应于确定该目标信息未存储在补充高速缓存存储器中,将主存储器从低功率模式唤醒,并且从主存储器提供该目标信息。
该方法可以进一步包括以多个功能存储器状态中的一个功能存储器状态操作该存储器系统。多个功能存储器状态可以包括第一功能存储器状态和第二功能存储器状态,在第一功能存储器状态中,补充高速缓存存储器处于非活动操作模式,而主存储器处于常规功率模式;在第二功能存储器状态中,补充高速缓存存储器处于活动操作模式,并且主存储器处于低功率模式中。该方法可以进一步包括估计主存储器的活动的影响;以及基于所估计的主存储器的活动的影响,在多个功能存储器状态中的两个或更多个功能存储器状态之间进行转换。
估计可以包括以下中的至少一个:跟踪第一高速缓存存储器或补充高速缓存存储器的高速缓存未中或高速缓存溢出;监视被路由到主存储器的存储器请求;或分析代码的执行属性。
转换可以包括响应于估计的活动的影响超过阈值量,从第二功能存储器状态转换到第一功能存储器状态。转换可以包括将脏信息从补充高速缓存存储器写回到主存储器,并使补充高速缓存存储器掉电。
以功能存储器状态操作存储器系统可以包括以第三功能存储器状态操作存储器系统,在第三功能存储器状态中,补充高速缓存存储器被加电并且主存储器处于常规功率模式,包括响应于存储器请求将数据加载到补充高速缓存存储器中。
转换可以包括:响应于在第三功能存储器状态中操作存储器系统时,估计的活动的影响低于阈值量,从第三功能存储器状态转换到第二功能存储器状态。转换可以包括将主存储器置于低功率模式。
该方法可以进一步包括响应于在第二功能存储器状态中操作存储器系统,将直接存储器访问(DMA)请求路由到第一高速缓存存储器或补充高速缓存存储器中的至少一个。
以下描述的方面包括另一电子设备,该另一电子设备包括一个或多个处理器和一个或多个计算机可读存储介质。所述一个或多个计算机可读存储介质包括第一高速缓存存储器、主存储器、可通信地耦合在第一高速缓存存储器和主存储器之间的补充高速缓存存储器以及被配置为保持可设定值的寄存器。所述一个或多个计算机可读存储介质还包括存储在其上的指令。响应于由所述一个或多个处理器执行指令,指令使多个操作被执行。这些多个操作包括:使代码在一个或多个处理器上执行;以及,基于该代码调整可设定值,以选择性地使补充高速缓存存储器相对于第一高速缓存存储器作为较低级别的高速缓存资源进行操作。
调整可以包括确立可设定值以允许硬件选择性地激活补充高速缓存存储器。该调整可以包括确立可设定值,以指示硬件将补充高速缓存存储器置于监视操作模式以激活该补充高速缓存存储器,并尝试将主存储器置于低功率模式。
响应于由所述一个或多个处理器的指令执行而执行的多个操作可以进一步包括分析代码。分析代码可以包括确定代码的大小和/或在执行期间观察代码的存储器使用模式。可设定值的调整可以基于代码的分析。
以下描述的各方面还包括一种系统,该系统包括处于第一层次级别的第一高速缓存存储器、处于第二层次级别的补充高速缓存存储器以及处于第三层次级别的主存储器。第二层次级别低于第一层次级别,并且第三层次级别低于第二层次级别。该系统还包括控制装置,用于引起在包括有第一功能存储器状态和第二功能存储器状态的两个或更多个功能存储器状态之间的转换。为了实例化第一功能存储器状态,控制装置使补充高速缓存存储器转换为非活动操作模式,并且使主存储器以常规功率模式操作。为了实例化第二功能存储器状态,控制装置使补充高速缓存存储器转换为活动操作模式,并且使主存储器以低功率模式操作。
还提供了一种计算机可读存储介质或计算机程序,该计算机可读存储介质或计算机程序包括指令,所述指令当由处理器执行时使处理器执行上述任何方法。
在分层存储器系统的上下文中,“较低”和“较高”的层次级别或操作级别是指用于访问不同的存储器的相对优先顺序,并且是指不同的存储器与存储器所服务的处理器的逻辑接近度。从逻辑上讲,更高的级别通常更接近处理器。对于较低级别,访问时间通常较慢,并且因此优选使用较高级别来服务于存储器操作。在给定数字的情况中,存储器层次中的较低的级别通常由较大的数字表示。例如,从L2.5高速缓存负责处理L2高速缓存的高速缓存未中的意义上说,L2高速缓存在比L2.5高速缓存更高的级别上部署。如果L2高速缓存存储器包含存储器请求的目标信息,则L2高速缓存存储器通常会比较低级别的存储器更快地提供所需的信息。另一方面,如果L2高速缓存存储器不包含目标信息,则在L2高速缓存级别处发生了高速缓存未中,并且L2高速缓存存储器可以将存储器请求传递到较低的存储器级别(例如,L2.5高速缓存)。
在本申请的上下文中,在两个其他存储器源“之间”的存储器源可以表示该存储器源在存储器系统层次中的那两个其他存储器源之间和/或该存储器源在沿着为处理器的存储器操作提供服务的通信路径上的两个其他存储器源之间。
附图说明
参照以下附图描述了能够启用节能的高速缓存存储器使用的装置和技术。在整个附图中使用相同的数字来引用相似的功能部件和组件:
图1示出了包括有集成电路的示例环境,在该集成电路中可以实施节能的高速缓存存储器使用。
图2示出了可以实施节能的高速缓存存储器使用的示例环境的其他方面。
图3示出了存储器位置到两个高速缓存存储器的不同行的示例映射。
图4示出了包括有第一高速缓存存储器、补充高速缓存存储器和主存储器的示例集成电路。
图5示出了与补充高速缓存存储器和主存储器相对应的多个功能存储器状态(包括第一至第四功能存储器状态)的示例。
图6示出了处于示例第一功能存储器状态的集成电路。
图7示出了处于示例第三功能存储器状态的集成电路,该第三功能存储器状态可以用作从第一功能存储器状态到第二功能存储器状态的转换状态。
图8示出了处于示例第二功能存储器状态的集成电路。
图9示出了处于示例第四功能存储器状态的集成电路,该第四功能存储器状态可以用作从第二功能存储器状态到第一功能存储器状态的转换状态。
图10示出了用于节能的高速缓存存储器使用的示例方法。
图11示出了可以根据一种或多种实施方式来实施节能的高速缓存存储器使用的示例电子设备的各个组件。
具体实施方式
总览
电子设备的电路在操作期间消耗大量功率。降低这种功耗可以降低能源成本,减少对环境的负面影响,并延长电池寿命。消耗大量功率的一种电路类型是动态随机存取存储器(DRAM)。为了减少由DRAM块消耗的功率量,可以使DRAM块掉电。但是,使DRAM完全掉电会导致存储的信息丢失。为了避免丢失DRAM块的存储的内容,可以相反将DRAM块部分掉电。一种用于使DRAM块部分掉电的方案被称为自刷新模式。如果DRAM块处于自刷新模式,则所存储的存储器内容将保持不变,而功率会降低。
不幸的是,当DRAM块以自刷新模式操作时,通常无法对其访问。为了访问存储器的内容,需要唤醒DRAM模块,这通常需要花费大量时间。如果正在执行的程序在访问到存储器内容之前无法继续执行,则该程序在唤醒时间期间停顿,并且用户被迫等待,或以其它方式会遇到设备缓慢和用户体验差的情况。因此,如果降低DRAM唤醒的频率,则程序执行速度会更快,并且用户体验会得到改善。为了降低唤醒休眠的DRAM块的频率,可以采用高速缓存存储器。
最初,当处理器正在访问存储器以获得指令或数据时,主要采用高速缓存存储器来提供更快的响应时间。通常使用比DRAM更快但更昂贵的存储器类型(例如静态随机存取存储器(SRAM))来创建高速缓存存储器。因此,系统中的高速缓存存储器的数量小于主存储器的数量,并且高速缓存存储器存储由主存储器保持的存储器内容的子集。因此,高速缓存存储器负责存储处理器很可能很快或重复使用的信息(指令或数据)。
然而,也可以使用高速缓存存储器以节省功率。例如,高速缓存存储器可以使DRAM进入低功耗的自刷新模式。通过将DRAM芯片置于自刷新模式中来使DRAM掉电可以节省可观的电量(例如,每千兆字节(GB)的存储器约60毫瓦(mW))。当高速缓存存储器满足处理器发出的存储器访问请求时,DRAM可以继续以自刷新模式运行。不幸的是,高速缓存存储器最终将无法响应或以其它方式容纳存储器访问请求,这被称为读操作的高速缓存未中或写操作的高速缓存溢出,而DRAM将被唤醒。由于唤醒过程需要时间并消耗功率,因此,如果高速缓存未中可以延迟或更少地被呈现,则电子设备的能量效率和计算性能通常会更好。因此,通过减少高速缓存未中的发生,可以提高能量效率并且可以加快程序执行。减少高速缓存未中的影响的一种方法是增加在无需依赖主存储器的情况中可以使用高速缓存存储器执行程序的时间长度。在本文中,这被称为执行高速缓存驻留程序。
在某些情况中,操作系统可以作为高速缓存驻留程序运行。例如,当操作系统运行时,电子设备(例如,智能手机、智能手表或平板手机)可能会运行相对较长的时间,但是执行的代码被本地化为操作系统的总代码和相关数据的一小部分,无论是否还运行一个或多个应用。操作系统的这种使用级别在本文中称为维护模式。为了延长电池寿命,在给定当前性能要求的情况中,使尽可能多的芯片或其内核掉电是有益的。在操作系统的维护模式期间,如果将DRAM长时间保持在自刷新模式中,则可以降低功率。
中央处理单元(CPU)通常具有多个高速缓存级别,例如L1高速缓存和L2高速缓存。CPU尝试首先通过L1高速缓存来服务存储器请求,然后L2高速缓存尝试处理L1高速缓存未中。某些CPU的L2高速缓存足够大以存储用于操作系统的维护模式的大部分指令和数据。但是,如果存在L2高速缓存未中,则会访问DRAM,这涉及唤醒该存储器。与正常的预期的程序执行速度相比,从自刷新模式唤醒DRAM需要很长时间。刚刚半满的L2高速缓存可能会遇到某些高速缓存未中,例如1%的存储器访问,其大约是每微秒(ms)一次。这些高速缓存未中可能会在L2高速缓存中剩余有大量空间时发生,因为太多的存储器地址在同一高速缓存行上重叠,即使使用相当高的N路集设置关联高速缓存(例如,“N”最多为16)也是如此。因此,对于每个L2高速缓存未中而唤醒DRAM,就功率和时间是无法承受的。
理论上可以采用若干方法来减少在处于维护模式时操作系统经历高速缓存未中的频率。作为第一个示例,可以部署完全关联的L2高速缓存,该完全关联的L2高速缓存使任何存储器位置都可以高速缓存到任何行。然而,由于存储在高速缓存存储器中的信息的每字节门数较高,全关联的高速缓存存储器相对较慢并且更昂贵。作为第二示例,可以重新整理支持维护模式的代码和数据信息,以将该信息适配到L2高速缓存中,该L2高速缓存对集关联的高速缓存存储器采用典型数目的路(例如,N≤16)。不幸的是,改变代码和数据的存储器布局以使其更紧密地封装通常是难以承受的复杂的,并且在这种情况中节省功率是不可行的。第三种示例方法是将L2高速缓存存储器的大小增加至四倍,但这在芯片面积方面非常昂贵,而芯片面积与成本和功耗成正比。由于存在这些难以为继的选择,因此,当今的计算系统会在操作系统运行时将DRAM置于活动模式,即使操作系统处于维护模式也是如此。
相反,本文描述的一些实施方式使得DRAM能够在例如操作系统处于维护模式时进入自刷新模式。为此,部署了一个补充高速缓存存储器,其负责处理使得上级高速缓存溢出的那些高速缓存行。对于相当大范围的高速缓存加载(例如,在高速缓存的大约1/8和1/2之间),即使地址冲突的总数相对于高速缓存的大小较小,在至少一个高速缓存行中发生溢出的可能性也相对较高。为了利用这种现象,将相对较小且高度关联的补充高速缓存存储器(例如,每组具有超过16路,例如每组64或128个路)或完全关联的补充高速缓存存储器在至少一个较高的高速缓存存储器级别下方耦合到CPU。补充高速缓存存储器存储了溢出最大片上高速缓存的相对较少的行。该补充高速缓存存储器会显著增加在DRAM处于自刷新模式中(并且因此在唤醒DRAM之前操作系统无法对其使用)的情况中可以完全驻留在高速缓存中运行的程序的大小和复杂性。因此,部署补充高速缓存存储器可以使更多程序能够在高速缓存驻留模式中运行,这可以通过使DRAM能够更频繁地掉电或掉电更长时间来减少功耗。
接下来,在CPU方面描述示例实施方式,其中,最大的片上高速缓存是L2高速缓存。在这种情况中,补充高速缓存存储器称为L2.5高速缓存。L2和L2.5高速缓存均被配置为写回而不是直写高速缓存。在此,从L2.5高速缓存负责处理L2高速缓存的高速缓存未中的意义上说,L2.5高速缓存被部署在低于L2高速缓存的操作级别处。但是,就门数较少且占用的芯片面积较少或存储的信息字节较少而言,L2.5高速缓存可以显著小于L2高速缓存。由于其相对较小的大小,因此L2.5高速缓存可以被构造为比L2高速缓存更高地关联(这涉及到每个高速缓存行构建更多的门)。此外,由于由L2高速缓存服务大多数存储器访问,因此L2.5高速缓存的响应时间比L2高速缓存慢。与单独工作的L2高速缓存相比,L2和L2.5高速缓存共同使一个更大且更复杂的程序能够完全驻留在高速缓存中。因此,以对于总的高速缓存门数的相对较小的增加,可以使能够以高速缓存驻留模式运行的程序的大小增加大约2倍到4倍,在某些情况中可以达到几乎一个数量级。
就功率管理而言,只要对应的处理器通电并处于活动状态,L2.5高速缓存就可以通电并运行。可替代地,L2.5高速缓存可以是适时介入的,并且因此可以部分时间活动。通常,如果处理器运行的代码库太大而无法容纳在L2高速缓存中,则L2.5高速缓存不会起到节能的作用,因为DRAM仍保持供电状态。由于L2.5高速缓存会消耗功率,因此L2.5高速缓存通常可以处于关闭状态,但是如果操作系统进入维护模式,则其可以由操作系统启动。当启动时,L2.5高速缓存可能会影响DRAM的读取和缓冲写入,直到对DRAM的访问变得相对罕见。对DRAM的这种罕见访问指示,代码库的当前活动的部分完全驻留在L2高速缓存和L2.5高速缓存的组合中。此时,将DRAM置入低功耗自刷新模式中。在L2高速缓存和L2.5高速缓存中的高速缓存都未中的情况中,则DRAM被唤醒。唤醒的效果类似于长的总线停顿。唤醒后,可以将DRAM保持一段时间,在此期间,可以将L2.5高速缓存中的脏线适时地写回到DRAM。当操作系统发出它退出维护模式的信号,或存储器管理硬件检测到较高的L2.5高速缓存未中率时,L2.5高速缓存中的所有剩余脏行都将写出到DRAM,然后L2.5高速缓存可以掉电。
在操作系统处于维护模式且DRAM处于低功率模式中的情况中使用直接存储器访问(DMA)的系统中,DMA被定向为经过L2高速缓存或L2.5高速缓存到DRAM,而不是直接到DRAM。例如,如果DMA路径涉及包括CPU和L2.5高速缓存的集成电路芯片(例如,在片上系统(SoC)环境中),则可以实现这一点。因此,两个高速缓存的组合可以处理少量的DMA数据,而不会使DRAM溢出或唤醒。此外,在操作系统以维护模式执行时,可以进行DMA操作。
下面参考相关附图讨论各种详细程度的示例实施方式。下面的讨论首先描述示例操作环境,然后描述示例方案和硬件,然后描述示例方法,并以示例电子设备和相关示例方面结束。
示例环境
图1示出了包括有集成电路104的示例环境100,在其中,可以实施节能的高速缓存存储器使用。如图所示,环境100包括电子设备102。下面参考图2描述电子设备102的不同示例。电子设备102包括至少一个集成电路104。集成电路104包括多个不同的部分或核心。这些包括至少一个处理器106、控制电路108、第一高速缓存存储器112、补充高速缓存存储器114和主存储器116。如下面参考图4和图5所述的,不同的存储器(例如,补充高速缓存存储器114或主存储器116)可以在一个或多个功能存储器状态110中操作。
在示例实施方式中,处理器106通信地耦合到第一高速缓存存储器112,并且第一高速缓存存储器112通信地耦合到主存储器116。第一高速缓存存储器112包括N路集关联的高速缓存存储器,其中,“N”代表一个正整数。可以将补充高速缓存存储器114选择性地介入以用作用于第一高速缓存存储器112的较低级别的高速缓存资源。因此,可以将补充高速缓存存储器114通信地耦合到第一高速缓存存储器112,并且可以同样地耦合到主存储器116。补充高速缓存存储器114包括例如完全关联的高速缓存存储器或M路集关联的高速缓存存储器,其中,“M”代表另一个大于正整数“N”的正整数。可以使用例如刷新以维护存储器内容的动态随机存取存储器(DRAM)来实现主存储器116。换句话说,可以使用被保留(例如,刷新)的存储器类型来实施主存储器116,以便保持存储器内容。更一般地,主存储器116可以使用以如下两种模式操作的存储器类型来实施:一种模式,其中,存储器易于使用并且消耗一种功率量;另一种模式,其中,存储器不易于使用但是消耗另一种较低的功率量(包括零功耗,无论是否涉及刷新)。例如,主存储器可以在后一种操作模式中关闭,并且主存储器甚至可以放弃所存储的信息,只要在其恢复前一种操作模式时其他某个存储器可以恢复被放弃的信息即可。
多个存储器根据多个存储器层次级别118进行布置。如图1左侧的竖直箭头所示,存储器层次级别118在集成电路104的顶部附近变得更高(H)并且在集成电路104的底部附近变得更低(L)。如图所示,第一高速缓存存储器112比补充高速缓存存储器114在更高的存储器层次级别118上。具体地说,第一高速缓存存储器112被配置在第一存储器层次级别118(或第一层次级别)处,补充高速缓存存储器114被配置在第二存储器层次级别118(或第二层次级别)处,并且主存储器116被配置在第三存储器层次级别118(或第三层次级别)处。然而,各种存储器可以被布置在不同的存储器层次级别118处,并且集成电路104可以具有多于三个的存储器层次级别118。
在示例操作实施方式中,第一高速缓存存储器112尝试服务于来自处理器106的存储器访问请求。如果存在高速缓存未中并且补充高速缓存存储器114不活动,则主存储器116提供所请求的信息。然而,如果补充高速缓存存储器114是活动的,则补充高速缓存存储器114尝试处理第一高速缓存存储器112的高速缓存未中。在这种情况中,主存储器116可以处于降低功耗的低功率模式,例如以自刷新模式。在下面参考图4进一步描述示例存储器访问操作。
在图1中,在被布置在诸如芯片上系统(SoC)的单个集成电路104上的方面描述了处理器106和处于不同存储器层次级别118的各种存储器。但是,节能的高速缓存存储器使用的原理能够适用于其他环境,其中,图示的组件可以分布在多个集成电路芯片上。例如,补充高速缓存存储器114可以是与处理器106分离的集成电路芯片的一部分,或者甚至可以是分离的封装的一部分。作为另一示例,主存储器116可以设置在不同的集成电路芯片上。在这种情况中,与SoC的一部分相反,包括有例如用作主存储器116的DRAM的芯片可以进入低功率自刷新模式。
此外,虽然在图1中描绘了单个组件,但是可以实施多个组件。例如,可以有多个主存储器116。另外地或可替代地,第一高速缓存存储器112可以包括两个高速缓存存储器,例如,一个高速缓存存储器用于指令信息,而另一个高速缓存存储器用于数据信息。如果是这样,则补充高速缓存存储器114同样可以被划分成两个高速缓存存储器或两个高速缓存存储器部分,其中,每个高速缓存存储器部分分别与指令信息或数据信息相关联,或者补充高速缓存存储器114仍可以被实施为一起存储指令和数据信息的统一高速缓存。作为另一个示例,每个示出的组件可以包括多个组件。例如,虽然第一高速缓存存储器112被描绘为一体单元,但是第一高速缓存存储器112可以使用具有不同大小、速度或架构的两级、三级或更多级高速缓存来实施。
图2示出了示例环境200的其他方面,其中,可以实施节能的高速缓存存储器使用。用下述各种非限制性示例设备示出了电子设备102:智能电话102-1、膝上型计算机102-2、电视102-3、台式计算机102-4、平板电脑102-5和可穿戴设备102-6。如图中右侧所示,电子设备102包括一个或多个处理器106和计算机可读介质204。计算机可读介质204包括存储器介质206和存储介质208,存储器介质206和存储介质208中的一个或者两者可以存储、保持或以其他方式包括指令202、数据、代码和其他信息等等。虽然在图2中未示出,但是计算机可读介质204可以包括第一高速缓存存储器112、补充高速缓存存储器114和/或主存储器116。被实现为计算机可读介质204上的计算机可读指令202的应用(未示出)或操作系统210可以由处理器106执行以提供本文描述的一些功能。
如图所示,操作系统210包括功率管理模块212和代码分析模块214,其可以被存储为计算机可读介质204的一部分。功率管理模块212监视并调整由一个或多个集成电路芯片或其部分使用的功率。功率管理模块212可以命令集成电路掉电,例如通过写入寄存器以切换操作模式。代码分析模块214估计至少一个代码块(例如,应用或操作系统210的一部分)是否足够小,以便能够在驻留在高速缓存中时执行。代码分析模块214可以通过预测代码块的执行行为、通过观察代码块的执行行为、它们的某种组合等等来执行这种估计。在某些情况中,代码分析模块214能够估计多个代码块能够以高速缓存驻留模式被共同执行的可能性。
电子设备102还包括控制电路108。控制电路108包括功率管理器216和存储器管理器218。存储器管理器218包括高速缓存管理器220。如图1中所描绘的集成电路104所指示的,控制电路108可以至少部分地以硬件例如在至少一个集成电路芯片上实施。在一些实施方式中,功率管理器216和存储器管理器218被集成在同一芯片上。在其他实施方式中,功率管理器216和存储器管理器218被集成在不同的芯片上。例如,功率管理器216可以集成在功率管理集成电路(PMIC)芯片上,而存储器管理器218以及至少处理器和高速缓存存储器被集成在另一芯片上。附加地或可替代地,控制电路108可以以软件、固件、硬件、固定逻辑电路、它们的某种组合等来实施。下面参考图4描述功率管理器216和存储器管理器218的各方面。
图3示出了存储器位置到两个高速缓存存储器的行的示例映射300。图3描绘了第一高速缓存存储器112、补充高速缓存存储器114和主存储器116。在每个存储器中,对包含有存储的信息的存储器位置加阴影。如图所示,映射300属于第一高速缓存存储器112和补充高速缓存存储器114。第一高速缓存存储器112以示例性的4路集关联的布置来组织,如由四列表示。
第一高速缓存存储器112包括多个高速缓存集或行302。明确引用了三个高速缓存行:行302-1、行302-2和行302-3。在两个高速缓存中还示出了多个高速缓存行或块304。明确引用了三个高速缓存块:块304-1,块304-2和块304-3。每个高速缓存块304被填充信息(例如,像块304-1一样带阴影的灰色)或为空(例如,描绘为像块304-2的白色或空白)。在来自主存储器116的能够映射到给定行302的所有块中,该四路集关联的第一高速缓存存储器112可以在任何时间点映射不超过四个不同的块。
考虑第一高速缓存存储器112的当前状态,如多个被加阴影的所占据的高速缓存块304所指示的。假设由省略号所隐含的高速缓存行302以与明确描绘的那些相似的水平被填充,则第一高速缓存存储器112仅略微超过一半地被填充。然而,由于填充的行,第一高速缓存存储器112仍然会遇到高速缓存未中。行302-2和行302-3都被填满,因为行302-2和行302-3中的每一行的全部四路都具有被有效信息占据的块。因此,如果任何其他存储器请求映射到这两行中的一行,则第一高速缓存存储器112替换被映射到的那行(例如行302-2)中的被占据的块中的一个块。如果补充高速缓存存储器114不存在(或当前不活动),则即使第一高速缓存存储器112仅约一半满,存储器系统也将唤醒主存储器116以满足该存储器请求。
相反,如果补充高速缓存存储器114存在并且在操作上是活动的,则可以使用补充高速缓存存储器114来满足该存储器请求。虽然可以采用其他级别的关联,但是在图3的所示示例中,补充高速缓存存储器114被实施为完全关联的高速缓存存储器。因此,任何存储器块都可以被存储在补充高速缓存存储器114的任何位置处。如箭头306所指示的,映射到行302-3的块已经在补充高速缓存存储器114中占据了三个空间。如箭头308所指示的,映射到行302-2的块已经在补充高速缓存存储器114中占据了两个空间。结果,与第一高速缓存存储器112中的行302-2相对应的未中的存储器请求可以由补充高速缓存存储器114来处理。
以这种方式,相对小的补充高速缓存存储器114可以容纳第一高速缓存存储器112的例如在第一高速缓存存储器112整体上仅部分被填充时溢出的行302。此方案增加了可以完全驻留在高速缓存中运行的代码块的大小。因此,该方案增加了可以允许主存储器116进入低功率自刷新模式的频率,或者增加了可以允许主存储器116保持在低功率自刷新模式的持续时间。因此,通过采用如参考图4和图5进一步描述的补充高速缓存存储器114可以节省功率。
示例组件和技术
图4示出了具有包括第一高速缓存存储器112、补充高速缓存存储器114和主存储器116的多级分层存储器系统的示例集成电路104。图4进一步示出了处理器106和补充高速缓存存储器114或主存储器116的功能存储器状态110的指示。集成电路104可以包括来自图2的功率管理器216和存储器管理器218。功率管理器216或存储器管理器218可以是(图1的)控制电路108的一部分。图4中的集成电路104的描绘另外包括有:第二高速缓存存储器402;互连404;控制信号406、408、410和412;存储器请求414;以及寄存器416。
如图所示,第二高速缓存存储器402耦合到处理器106,并且第一高速缓存存储器112耦合到第二高速缓存存储器402。这里,第二高速缓存存储器402耦合在处理器106和第一高速缓存存储器112之间。第一高速缓存存储器112经由互连404耦合到主存储器116。补充高速缓存存储器114通过互连404耦合到第一高速缓存存储器112和主存储器116。存储器管理器218负责控制在主存储器116和其他组件(例如第一高速缓存存储器112)之间的交互。功率管理器216负责使不同的组件(例如补充高速缓存存储器114或主存储器116)进入不同的功率状态,例如唤醒、休眠和自刷新等。
分层存储器系统具有多个存储器级别,例如一个或多个级别的高速缓存存储器和至少一个主存储器。通常相对于处理器确立(图1的)存储器层次级别118。因此,在图4中,第二高速缓存存储器402用作第一存储器层次级别118;因此,第二高速缓存存储器402被指定为“L1”高速缓存。第一高速缓存存储器112用作第二存储器层次级别118;因此,第一高速缓存存储器112被指定为“L2”高速缓存。补充高速缓存存储器114可以用作在第一高速缓存存储器112和主存储器116之间耦合的部分时间的或选择性激活的第三存储器层次级别118。因此,补充高速缓存存储器114被指定为“L2.5”高速缓存。在该分层存储器系统示例中,主存储器116通常用作第三存储器层次级别118,如果补充高速缓存存储器114临时作为第三存储器层次级别118活动,则主存储器116可以进入低功率模式。
然而,节能的高速缓存存储器使用的实施方式能够应用于其他硬件环境。例如,在第一高速缓存存储器112和处理器106之间可以定位有零个或多个高速缓存存储器。此外,在补充高速缓存存储器114和主存储器116之间可以可操作地耦合有一个或多个高速缓存存储器。此外,相对于一个或多个其他较低级别的存储器,主存储器116可以包括或用作高速缓存存储器。其他较低级别的存储器的示例包括速度较慢或较大的固态存储器和基于磁盘的存储器。
在操作中,处理器106执行代码(未示出)。作为代码执行的一部分,处理器106发出存储器请求414以获得其他信息,例如要执行的指令或作为指令对象的数据。每个存储器请求414通常经由对应的存储器地址位置来标识目标信息。存储器请求414被提供给分层存储器系统,其最终用来自分层存储器系统的至少一级的存储器来满足请求414。例如,如果第二高速缓存存储器402包含目标信息,则第二高速缓存存储器402提供所需的信息,并且通常比除处理器106内的操作寄存器之外的任何其他存储器更快地提供该所需的信息。另一方面,如果第二高速缓存存储器402不包含目标信息,则在L1高速缓存级别处发生了高速缓存未中,并且第一高速缓存存储器112尝试响应于存储器请求414。
如果第一高速缓存存储器112包含存储器请求414的目标信息,则第一高速缓存存储器112通常比较低级别的存储器快地提供所需的信息。另一方面,如果第一高速缓存存储器112不包含目标信息,则在L2高速缓存级别处发生了高速缓存未中,并且第一高速缓存存储器112将存储器请求414传递到较低的存储器级别。可替代地,可以在第一高速缓存存储器112确定目标信息是否存在于第一高速缓存存储器112的同时,将存储器请求414提供给一个或多个较低级别的存储器。下面描述了两种情况以用于处理第一高速缓存存储器112的高速缓存未中。在第一种情况中,主存储器116作为主要选项被访问,但是在第二种情况中,主存储器116作为次要选项被访问。
在第一种情况中,补充高速缓存存储器114是不活动的,因此主存储器116是用于响应存储器请求414的主要选项。为清楚起见,在示出的架构的不同位置处描绘了并且用不同的扩展名(例如,存储器请求414-1)指示了不同版本的存储器请求414。第一高速缓存存储器112经由通过存储器管理器218控制的互连404将存储器请求414-1转发到主存储器116。主存储器116通过将所请求的信息经由互连404提供给处理器106来响应存储器请求414-1。在一种方法中,所请求的信息通过第一高速缓存存储器112和第二高速缓存存储器402从主存储器116转发到处理器106。可替代地,因为所请求的信息被提供给处理器106,所以可以绕过一个或多个高速缓存。
在第二种情况中,补充高速缓存存储器114是活动的,因此主存储器116是用于响应存储器请求414的次要选项。因此,第一高速缓存存储器112将存储器请求414-2转发到补充高速缓存存储器114。如果补充高速缓存存储器114具有所请求的信息,则补充高速缓存存储器114将所请求的信息提供给处理器106。所请求的信息可以通过第一高速缓存存储器112和第二高速缓存存储器402或直接地转发给处理器106。另一方面,如果补充高速缓存存储器114不具有所请求的信息,则存储器系统求助于访问主存储器116。然而,在某些情况中,主存储器116正处于低功率模式中,例如自刷新模式。为了使得能够访问主存储器116,功率管理器216唤醒主存储器116。补充高速缓存存储器114经由互连404将存储器请求414-3转发到主存储器116。可替代地,存储器管理器218或第一高速缓存存储器器存储器112可以经由互连404将存储器请求414-1提供给主存储器116。在被唤醒之后,主存储器116通过经由互连404向处理器106提供所请求的信息来对存储器请求414-1或414-3做出响应。
通常,主存储器116或补充高速缓存存储器114可以根据多个功能存储器状态110以不同的功率模式或操作模式进行操作,以在响应于存储器请求414的同时节省功率。下面参考图5描述了四个示例功能存储器状态110。图6至图9描绘了图4中所示的架构的在图5所示的四个示例功能存储器状态110中的相应一个功能存储器状态中的示例。
图5在500处总体示出了对应于补充高速缓存存储器114和主存储器116的多个功能存储器状态110-1至110-4。对于每个功能存储器状态110,补充高速缓存存储器114对应于操作模式510或者以操作模式510工作。从图5的顶部处开始,并围绕状态图顺时针移动,示例性操作模式包括:非活动操作模式510-1、监视操作模式510-3、活动操作模式510-2和清理操作模式510-4。类似地,如下所述,对于每个功能存储器状态110,主存储器116对应于功率模式518或以功率模式518工作。
在第一功能存储器状态110-1中,补充高速缓存存储器114处于非活动操作模式510-1中,而主存储器116处于常规功率模式518-1中。在常规功率模式518-1中,主存储器116是唤醒的,并且可访问以用于存储器读取和写入操作。在图6中示出了并且在下面描述了第一功能存储器状态110-1的示例。如箭头502所示,存储器系统可以从第一功能存储器状态110-1转换到第三功能存储器状态110-3。在可替代的实施方式中,补充高速缓存存储器114可以连续地或长时间地处于活动状态,即使当主存储器116处于常规功率模式518-1时也是如此。补充高速缓存存储器114可以通过以下述实施方式保持活动状态:在该实施方式中,例如,补充高速缓存存储器114可以比主存储器116更快地响应存储器请求。在这种情况中,增加的处理通过量的能力可能超过补充高速缓存存储器114的额外功耗,特别是对于涉及随机访问的数据的存储器访问模式而言更是如此。
在第三功能存储器状态110-3中,补充高速缓存存储器114处于监视操作模式510-3中,并且主存储器116继续以常规功率模式518-1操作。在图7中示出了并且在下面描述了第三功能存储器状态110-3的示例。当补充高速缓存存储器114处于监视操作模式510-3中时,控制电路108通过跟踪高速缓存未中或通过监视互连404的利用来估计主存储器116的活动的影响。基于主存储器116的活动的估计的影响超过了阈值量(例如,存储器访问的频率或连续的存储器访问之间的时间),存储器系统可以如箭头504所示从第三功能存储器状态110-3转换到第二功能存储器状态110-2。可替代地,对于软件控制的实施方式,可以通过跟踪存储器使用和通过预测要执行的代码的信息本地性等来触发向第二功能存储器状态110-2的转换。
在第二功能存储器状态110-2中,补充高速缓存存储器114处于活动操作模式510-2中,而主存储器116已经转换成以低功率模式518-2操作。在低功率模式518-2中,存储器请求无法访问主存储器116,直到存储器被唤醒。与常规功率模式518-1相比,主存储器116在低功率模式518-2中使用更少的功率。低功率模式518-2的示例是自刷新模式。在图8中示出了并且在下面描述了第二功能存储器状态110-2的示例。例如,由于高速缓存未中或高速缓存溢出,如箭头506所示,存储器系统可以从第二功能存储器状态110-2转换到第四功能存储器状态110-4。
在第四功能存储器状态110-4中,补充高速缓存存储器114处于清理操作模式510-4中,并且主存储器116再次以常规功率模式518-1操作。在图9中描绘了并在下面描述了第四功能存储器状态110-4的示例。如箭头508所示,存储器系统可以从第四功能存储器状态110-4转换到第一功能存储器状态110-1。或者,存储器系统可以如箭头512所示转换回第二功能存储器状态110-2,或如箭头520所示转换回第三功能存储器状态110-3,如下所述。
一些硬件控制的实施方式可以包括寄存器416,其可以保持可设定值516。可设定值516可以包括至少一比特的中断指示和字母数字变量等。在示例操作中,可设定值516控制功能存储器状态110,其中,存储器系统将进行操作,或者确定是否授权硬件来控制功能存储器状态110之间的切换。如果存在,则操作系统210或一个应用可以调整可设定值516。操作系统210可以被实施为能够由一个或多个处理器(例如,处理器106(例如,图4的处理器106))执行的指令202。
在一些实施方式中,操作系统210使得代码在处理器106上执行。基于该代码(例如,处理器可执行指令202),操作系统210调整(或其他指令202调整)可设定值516,以选择性地使补充高速缓存存储器114充当相对于第一高速缓存存储器112的较低级别的高速缓存资源。操作系统210可以通过例如确定代码的大小或观察在执行期间的代码的存储器使用模式来分析代码。存储器使用模式可以例如涉及信息本地性,例如,用于存储器访问的代码本地性或数据本地性。因此,可设定值516的调整可以基于分析代码。
在一种方法中,操作系统210确定可设定值516以允许硬件选择性地激活补充高速缓存存储器114。例如,可以设定一个值,该值使功率管理器216能够基于硬件可检测活动向/从第二功能存储器状态110-2转换。能够由硬件检测的活动包括例如在互连404上的流量。在另一种方法中,操作系统210确定可设定值516,以指示硬件将存储器系统转换为第三功能存储器状态110-3,并将补充高速缓存存储器114置于监视操作模式510-3中。这通过向补充高速缓存存储器114加载信息,部分激活了补充高速缓存存储器114,以准备补充高速缓存存储器114以用于将主存储器116置于低功率模式518-2中。后一种手段可以由操作系统210基于信息本地性(例如,代码本地性或数据本地性)来触发。操作系统210可以通过清除在虚拟存储器页面上的“启用的”比特并监视在给定时间段内命中了多少页面来估计信息本地性。例如,可以使用使用神经网络的机器学习来预测信息本地性是否足以保证激活补充缓存存储器114并转换到不同的功能存储器状态110。
图6在600处总体示出了在第一功能存储器状态110-1中操作的集成电路的示例。功率管理器216使用控制信号406将补充高速缓存存储器114置于非活动操作模式510-1中,并且使用控制信号408将主存储器116置于常规功率模式518-1中。在第一功能存储器状态110-1中,由主存储器116处理第一高速缓存存储器112的高速缓存未中。因此,存储器管理器218经由互连404向主存储器116提供存储器请求414-1,并且主存储器116以所请求的信息来响应存储器请求414-1。在示例实施方式中,补充高速缓存存储器114不被计时/供电,不包含脏条目,并且不包含针对第一功能存储器状态110-1的有效条目。
在第一功能存储器状态110-1期间,主存储器116以常规功率模式518-1操作,并且因此消耗功率。为了通过使主存储器116能够在不同的功能存储器状态中能够掉电来用补充高速缓存存储器114节省功率,操作系统210(例如,图2和图5的操作系统)可以例如通过调整可设定值516来通知集成电路硬件该操作系统210正在进入维护模式或正在执行的应用预测了较小的信息本地性。可替代地,硬件可以通过监视存储器操作或互连流量来做出此决定。作为响应,可以将补充高速缓存存储器114转换到第三功能存储器状态110-3的监视操作模式510-3。
图7在700处总体示出了在第三功能存储器状态110-3中操作的集成电路的示例。功率管理器216使用控制信号406将补充高速缓存存储器114置于监视操作模式510-3中,并且主存储器116继续以常规功率模式518-1工作。如在上面参考图6所描述的,在第三功能存储器状态110-3中,主存储器116最初是主要负责处理第一高速缓存存储器112的高速缓存未中的存储实体。然而,存储器系统正试图准备将主存储器116转换到低功率模式518-2(例如,图5和图8)。为此,补充高速缓存存储器114如由存储器请求414-3所表示的存储或读取用于高速缓存未中的信息,并且如由存储器请求414-2所表示的将更新写入已存在的信息。因此,如上面参考图3所描述的那样,补充高速缓存存储器114逐渐地加载溢出第一高速缓存存储器112的某些行的信息。随着在该准备的监视操作模式510-3期间的时间流逝,补充高速缓存存储器114最终成为主要负责处理第一高速缓存存储器112的高速缓存未中的存储实体。在此期间,可以将作为在第一高速缓存存储器112处的高速缓存未中的存储器请求414首先路由到补充高速缓存存储器114,以减少在互连404上的活动。因此,存储器管理器218可以监视互连404以检测主存储器116的存储器访问活动是否足够慢,以保证将使主存储器116置于休眠状态,或者操作系统或应用可以基于预测性的执行分析来指示存储器系统使主存储器116置于休眠状态。
因此,在监视操作模式510-3期间,补充高速缓存存储器114可以影响对主存储器116的访问。存储器管理器218随时间跟踪访问主存储器116的频率以服务于第一高速缓存存储器112和补充高速缓存存储器114两者的读取未中或写入溢出。更具体地,作为第三功能存储器状态110-3的一部分,写入可以经过主存储器116以及补充高速缓存存储器114。可以从补充高速缓存存储器114或主存储器116(例如,基于更快的一个)提供写入。读取可以被流水线化到补充高速缓存存储器114中。因为对于补充高速缓存存储器114可见的那些读取未中和写入溢出是已经通过了第一高速缓存存储器112的那些,所以在监视操作模式510-3中的补充高速缓存存储器114可以相对于主存储器116起到直接写入高速缓存存储器的作用,以使主存储器116保持最新。
可替代地,补充高速缓存存储器114可以以回写方式操作,其中,当互连404上的带宽或流量允许时(或者如果补充高速缓存存储器114的写入溢出发生),则适时地将写入操作写到主存储器116。同时,存储器管理器218可以维持“监视计时器”以跟踪从补充高速缓存存储器114的上次读取未中或写入溢出以来所经过的时间。如果硬件检测到例如已经过的时间量相对于用于将主存储器116从自刷新模式唤醒的时间段很长,则功率管理器216可以将补充高速缓存存储器114转换到第二功能存储器状态110-2的活动操作模式510-2,并且可以将主存储器116置于休眠。在实施监视操作模式510-3的另一种方法中,可以基于由操作系统或应用对代码的分析,将预期要(例如,预测)使用的值主动地加载到补充高速缓存存储器114中。在又一方法中,可以使用组合方法为补充高速缓存存储器114准备第二功能存储器状态110-2,在该组合方法中,基于从当前执行的代码产生的实际存储器请求来加载一些值,而基于预期使用来加载其他值,该预期使用源自分析代码(例如响应于先前或模拟的代码执行)。
图8在800处总体示出了在第二功能存储器状态110-2中操作的集成电路的示例。功率管理器216使用控制信号406将补充高速缓存存储器114置于活动操作模式510-2中,并且使用控制信号408将主存储器116置于低功率模式518-2中。功率管理器216可以例如命令DRAM进入自刷新模式。在第二功能存储器状态110-2中,如果目标信息存在于补充高速缓存存储器114中或者如果空间可用于新的写入数据,则由补充高速缓存存储器114来处理第一高速缓存存储器112的读取操作的高速缓存未中和写入操作的高速缓存溢出。为了确定是否存在目标信息,将(例如,在硬件中)广播用于读取或写入存储器请求414的期望地址,并将其并行地(例如,如果完全关联的)与补充高速缓存存储器114中的每个标签条目进行比较。如果针对读取访问存储器请求存在请求的信息,则存储器管理器218基于存储器请求414-2访问补充高速缓存存储器114,并且补充高速缓存存储器114以所请求的信息响应存储器请求414-2。对于写入访问存储器请求,确定目标地址是否存在于补充高速缓存存储器114中。如果存在,则将写入定向到对应的高速缓存块。如果不存在,则可以使用任何可用的(例如,空的)块来存储写入数据。
在第二功能存储器状态110-2期间,写入被延迟,并且补充高速缓存存储器114中的对应条目被标记为脏。因此,补充高速缓存存储器114可以在该存储器状态中可以起到回写高速缓存的作用。响应于补充高速缓存存储器114的高速缓存未中或高速缓存溢出(例如,读取存储器请求414上的未中,或写入存储器请求414上的没有匹配地址的完全高速缓存状态),功率管理器216使用控制信号408作为停顿操作的一部分唤醒主存储器116。存储器管理器218使主存储器116对于读取操作提供请求的信息,或对于写入操作存储写入信息。补充高速缓存存储器114的高速缓存未中或高速缓存溢出促使转换到第四功能存储器状态110-4。因此,除了高速缓存读取未中之外,在经历读取未中之前,补充高速缓存存储器114变得充满脏条目(例如,如果是完全关联的话,则总体充满脏条目,或者,如果在集关联的情况中,则在给定集内充满脏条目)这样的不太可能的情况中,存储器管理器218可以唤醒主存储器116以容纳高速缓存写入溢出事件。
同样在第二功能存储器状态110-2期间,即使主存储器116保持在低功率模式518-2中的同时,也可以执行直接存储器访问(DMA)操作。换句话说,可以在不唤醒主存储器116的情况中处理当操作系统210处于维护模式时很可能发生的DMA操作。在这种情况中,存储器管理器218将DMA操作定向到第一高速缓存存储器112或补充高速缓存存储器114。为此,存储器管理器218并行或顺序地检查每个高速缓存(至少直到定位),以找到用于读取访问DMA操作的目标地址。对于写入访问DMA操作,存储器管理器218搜索合适的(例如,可用的)位置以存储源于DMA的数据。对于DMA写入操作,处理器106通常读取输入信息,因此可以将此类信息写入高速缓存(例如,第一高速缓存存储器112)。对于DMA读取操作(其对应于传出信息),处理器将会事先将信息写到其中一个高速缓存中。因此,在第二功能存储器状态110-2期间保持了对信息的访问和这种信息的一致性。
图9在900处总体示出了在第四功能存储器状态110-4中操作的集成电路的示例。功率管理器216使用控制信号406将补充高速缓存存储器114置于清理操作模式510-4中,并且使用控制信号408将主存储器116置于常规功率模式518-1中。在第四功能存储器状态110-4中,主存储器116响应于促使主存储器116唤醒的存储器请求414。主存储器116保持可用于处理第一高速缓存存储器112或补充高速缓存存储器114的将来的高速缓存未中。此外,由于主存储器116现在被唤醒,所以脏的高速缓存块,特别是补充高速缓存存储器114的脏的高速缓存块可以被适时地写回到主存储器116。如下所述,功率管理器216还可以确定接下来要转换为哪个功能存储器状态110(第一功能存储器状态110-1、第二功能存储器状态110-2或第三功能存储器状态110-3)。。
清理操作模式510-4可以在下述意义上类似于第三功能存储器状态110-3的监视操作模式510-3起作用:主存储器116和补充高速缓存存储器114均唤醒,并且补充高速缓存存储器114可以影响主存储器116的存储器操作。但是,在清理模式中,补充高速缓存存储器114可能具有脏条目。因此,在目标块在补充高速缓存存储器114内有效且脏的情况中,存储器管理器218将读取存储器请求路由至补充高速缓存存储器114。为了节省时间,可以在补充高速缓存存储器114处与主存储器116并行地发起提取,并且如果补充高速缓存存储器114首先响应,则可以例如取消或丢弃对主存储器116的读取请求。此外,监视计时器可以是活动的并且像在监视操作模式510-3中那样进行计数,同时适时地执行从补充高速缓存存储器114的脏条目的延迟写入。
如果在清理模式中仍有剩余脏条目时,监视计时器到期(其指示建议转换回到第二功能存储器状态110-2),则功率管理器216仍可以转换至第二功能存储器状态110-2,无需等待所有脏条目被写回。通常,如果操作系统210决定返回较重的工作负载(这超出了维护模式的范围),而存储器系统处于第二功能存储器状态110-2或第三功能存储器状态110-3时,操作系统210可以命令存储器系统进入第四功能存储器状态110-4(例如,使用可设定值516或中断)。当在这样的命令下在第四功能存储器状态110-4中操作时,可以关闭或忽略监视计时器,并且在补充高速缓存存储器114不再包含脏条目之后,功率管理器216可以转换到第一功能存储器状态110-1。
已经总体描述了在其中可以实现用于节能的高速缓存存储器使用的技术和装置的环境,该讨论现在转向示例方法。
示例方法
以下讨论描述了用于节能的高速缓存存储器使用的方法。这些方法可以利用先前描述的示例来实施,例如图1和图2中所示的电子设备102和集成电路104以及图11中描绘的电子设备1100。在图10中说明了这些方法的各个方面,将所述各个方面示出为由一个或多个实体执行的操作1002-1016。其中示出和/或描述这些方法的操作的顺序不意图被理解为限制,并且所描述的任何数量或组合的方法操作可以以任何顺序组合以实施方法或替代方法。
图10示出了例如通过采用补充高速缓存存储器114的用于节能的高速缓存存储器使用的示例方法1000。在1002处,操作以下存储器系统,该存储器系统包括第一高速缓存存储器、补充高速缓存存储器和主存储器的。补充高速缓存存储器被配置为选择性地处理第一高速缓存存储器的高速缓存未中或高速缓存溢出。例如,操作系统210或控制电路108可以操作集成电路104的存储器系统。该存储器系统可以包括彼此通信地耦合的第一高速缓存存储器112、补充高速缓存存储器114和主存储器116。补充高速缓存存储器114在逻辑上位于比第一高速缓存存储器112低的存储器层次级别118处,并且被配置为选择性地处理第一高速缓存存储器112的高速缓存未中。
在1004处,确定了补充高速缓存存储器的操作模式,其中,该操作模式包括非活动操作模式或活动操作模式。例如,控制电路108的功率管理器216或存储器管理器218可以确定(例如,检测、确立或激活)补充高速缓存存储器114的操作模式510。操作模式510可以包括例如非活动操作模式510-1或活动操作模式510-2。补充地或可替代地,操作系统210可以启动在两个或更多个功能存储器状态110之间的转换,以结合硬件确立操作模式510。
在1004处的操作之后,方法1000在1014处或1016处分支。如1014处所指示的,响应于补充高速缓存存储器114处于第一功能存储器状态110-1的非活动操作模式510-1中,执行在1006处和1008处的操作。在1006处,对于与第一高速缓存存储器的高速缓存未中或高速缓存溢出相关联的存储器请求,绕过补充高速缓存存储器。例如,存储器管理器218可以利用与第一高速缓存存储器112的高速缓存未中或高速缓存溢出相关联的存储器请求414绕过补充高速缓存存储器114。在1008处,存储器请求被路由到主存储器。例如,存储器管理器218可以经由互连404将存储器请求414-1路由到主存储器116。
如在1016处所指示的,响应于补充高速缓存存储器114处于第二功能存储器状态110-2的活动操作模式510-2中,执行操作1010和1012。在1010处,确定由存储器请求作为目标的信息被存储在补充高速缓存存储器中。例如,补充高速缓存存储器114的控制部可以将与存储器请求414-2相关联的存储器地址与补充高速缓存存储器114的用于有效信息的多个标签的相应存储器地址进行比较。匹配指示了目标信息存储在补充高速缓存存储器114中。如果未检测到匹配(其对应于补充高速缓存存储器114的高速缓存未中)或补充高速缓存存储器没有可用块(其对应于补充高速缓存存储器114的高速缓存溢出事件),则功率管理器216可以唤醒主存储器116以将存储器系统转换到第四功能存储器状态110-4。在第四功能存储器状态110-4中,功率管理器216将补充高速缓存存储器114置于清理操作模式510-4中。主存储器116被唤醒至少足够长的时间以服务于补充高速缓存存储器114无法容纳的读取或写入储器访问操作。
另一方面,响应于在1010处确定目标信息存储在补充高速缓存存储器中,在1012处从补充高速缓存存储器提供目标信息。例如,补充高速缓存存储器114可以通过将请求的信息转发到第一高速缓存存储器112、较高级别的高速缓存存储器或处理器106而使用所请求的信息响应于存储器请求414-2。
前面的讨论描述了与节能的高速缓存存储器使用有关的方法。这些方法的各方面可以以硬件(例如,固定逻辑电路)、固件、软件或其任何组合来实施。可以使用图1至图9和图11中所示的一个或多个实体或组件来实施这些技术(在下面的图11中描述了电子设备1100),其可以被进一步划分和组合等等。因此,这些图示出了能够采用所描述的技术的许多可能的系统或装置中的一些。这些图的实体和组件通常代表软件、固件、硬件、整个设备或网络或它们的组合。
示例电子设备
图11示出了示例性电子设备的各种组件,该示例性电子设备可以根据如上参照先前图1至图10中的任何一个所描述的一种或多种实施方式来实施节能的高速缓存存储器使用。电子设备可以被实施为以消费者、计算机、便携式设备、用户、服务器、通信、电话、导航、游戏、音频、相机、消息传递、媒体回放和/或其他类型的电子设备102(例如图1所描绘的智能手机)的形式的固定或移动设备的任何一种或组合。
电子设备1100可以包括一个或多个通信收发器1102,其使得能够进行设备数据1104(例如,如上所述的接收数据、发送数据或其他信息)的有线和/或无线通信。示例通信收发器1102包括NFC收发器、符合各种IEEE 802.15(BluetoothTM)标准的WPAN无线电装置、符合各种IEEE 802.11(WiFiTM)标准中的任何一种的WLAN无线电装置、用于蜂窝电话的WWAN(符合3GPP的)无线电装置、符合各种IEEE802.16((WiMAXTM)标准的无线城域网(WMAN)无线电装置、符合红外数据协会(IrDA)协议的红外(IR)收发器以及有线局域网(LAN)以太网收发器。
电子设备1100还可以包括一个或多个数据输入端口1106,经由该数据输入端口1106可以接收任何类型的数据、媒体内容和/或其他输入,例如用户可选输入、消息、应用、音乐、电视内容、录制的视频内容以及从任何内容和/或数据源接收到的任何其他类型的音频、视频和/或图像数据。数据输入端口1106可以包括USB端口、同轴电缆端口、用于光纤互连或电缆连接的光纤端口以及用于闪存、DVD和CD等的其他串行或并行连接器(包括内部连接器)。这些数据输入端口1106可以用于将电子设备耦合至组件、外围设备或附件,诸如键盘、麦克风或照相机。
该示例的电子设备1100包括至少一个处理器1108(例如,应用处理器、微处理器、数字信号处理器(DSP)和控制器等中的任何一个或多个),其可以包括组合处理器和存储器系统(例如,作为SoC的一部分实施),其处理(例如,执行)计算机可执行指令202以控制设备的操作。处理器1108可以被实施为应用处理器、嵌入式控制器和微控制器等。通常,处理器或处理系统可以至少部分地以硬件实施,该硬件可以包括集成电路或片上系统的组件、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅和/或其他硬件中的其他实施方式。
可替代地或另外地,电子设备1100可以用电子电路中的任何一种或组合来实施,该电子电路可以包括结合处理和控制电路而实施的软件、硬件、固件或固定逻辑电路,其通常在1110处被指示(作为电子电路1110)。该电子电路1110可以例如通过存储在计算机可读介质上的处理/计算机可执行指令202,通过逻辑电路和/或硬件(例如,FPGA)等等来实施可执行或基于硬件的模块(未示出)。
虽然未示出,但是电子设备1100可以包括系统总线、互连、交叉开关或数据传输系统,其耦合设备内的各种组件。系统总线或互连可以包括不同总线结构中的任何一种或它们的组合,例如存储器总线或存储器控制器、外围总线、通用串行总线和/或利用多种总线架构中的任何一种的处理器或本地总线。
电子设备1100还包括一个或多个能够进行数据存储的存储器设备1112,其示例包括随机存取存储器(RAM)、非易失性存储器(例如,只读存储器(ROM)、闪存、EPROM和EEPROM)以及磁盘存储设备。因此,一个或多个存储器设备1112可以分布在系统的不同逻辑存储级别上以及在不同的物理组件处。存储器设备1112提供数据存储机制以存储设备数据1104、其他类型的代码和/或数据以及各种设备应用1120(例如,软件应用或程序)。例如,操作系统1114可以作为软件指令被保存在存储器设备1112内并且由处理器1108执行。
在一些实施方式中,电子设备1100还包括音频和/或视频处理系统1116,其处理音频数据和/或将音频和视频数据传递到音频系统1118和/或显示系统1122(例如,智能手机或相机的视频缓冲区或屏幕)。音频系统1118和/或显示系统1122可以包括处理、显示和/或以其它方式呈现音频、视频、显示和/或图像数据的任何设备。显示数据和音频信号可以经由RF(射频)链路、S-video链路、HDMI(高清多媒体接口)、复合视频链路、分量视频链路、DVI(数字视频接口)、模拟音频连接或其他类似的通信链路(例如媒体数据端口1124)被传送到音频组件和/或显示组件。在一些实施方式中,音频系统1118和/或显示系统1122是电子设备1100的外部或独立组件。可替代地,显示系统1122可以是示例电子设备1100的集成组件,例如集成触摸界面的一部分。
图11的电子设备1100是图1的电子设备102的示例实施方式。因此,处理器1108是处理器106(例如,图1和图4的处理器106)的示例,并且操作系统1114是操作系统210(例如,图2和图5的操作系统210)的示例。功率管理模块212或代码分析模块214(两者都是图2的)因此可以使用电子设备1100来实施。在图11中,第一高速缓存存储器112、补充高速缓存存储器114和主存储器116被描绘为例如通过成为一个或多个存储器设备1112的一部分而形成存储器系统的至少一部分。如上所述,这些存储器组件中的一个或多个可以是与处理器1108相同的集成电路的一部分(例如,第一高速缓存存储器112和补充高速缓存存储器114可以用处理器1108作为SoC的一部分来实施,如虚线所示),或者替代地位于单独的裸片上,或者甚至设置在不同的印刷电路板上。虽然未明确示出,但是电子设备1100还可以包括控制电路108,并且因此包括功率管理器216或存储器管理器218(例如,图2和图4的)。因此,可以通过图11的电子设备1100或结合图11的电子设备1100来实施如本文所述的节能的高速缓存存储器使用的原理。
虽然已经以特定于某些特征和/或方法的语言描述了节能的高速缓存存储器使用的实施方式,但是所附权利要求的主题不必限于所描述的特定特征或方法。而是,公开了特定的特征和方法作为用于节能的高速缓存存储器使用的示例实施方式。
Claims (20)
1.一种电子设备,所述电子设备包括:
在第一层次级别处的第一高速缓存存储器;
在第二层次级别处的补充高速缓存存储器,所述补充高速缓存存储器通信地耦合到所述第一高速缓存存储器,并且被配置为尝试处理所述第一高速缓存存储器的高速缓存未中,所述第二层次级别低于所述第一层次级别;
在第三层次级别处的主存储器,所述主存储器通信地耦合到所述第一高速缓存存储器和所述补充高速缓存存储器,所述第三层次级别低于所述第二层次级别;以及
控制电路,所述控制电路耦合到所述补充高速缓存存储器和所述主存储器,所述控制电路被配置为引起两个或更多个功能存储器状态之间的转换,所述两个或更多个功能存储器状态包括:
第一功能存储器状态,其中,所述补充高速缓存存储器处于非活动操作模式,并且所述主存储器处于常规功率模式;以及
第二功能存储器状态,其中,所述补充高速缓存存储器处于活动操作模式,并且所述主存储器处于低功率模式;其中:
所述非活动操作模式对应于对于在所述第一高速缓存存储器中未中的存储器请求所述补充高速缓存存储器被绕过;
所述活动操作模式对应于所述补充高速缓存存储器存储信息以处理在所述第一高速缓存存储器中未中的所述存储器请求;
所述常规功率模式对应于在所述主存储器中的信息被保留并且可访问以处理在所述第一高速缓存存储器中未中的所述存储器请求;以及
所述低功率模式对应于在所述主存储器中的信息被保留,但是在所述主存储器被唤醒之前,所述信息不可访问。
2.根据权利要求1所述的电子设备,其中,所述两个或更多个功能存储器状态还包括第三功能存储器状态,在所述第三功能存储器状态中,所述补充高速缓存存储器处于监视操作模式中,并且所述主存储器处于所述常规功率模式中,并且所述补充高速缓存存储器被配置为在所述监视操作模式中高速缓存所述第一高速缓存存储器的信息,以为从所述第一功能存储器状态到所述第二功能存储器状态的转换做准备。
3.根据权利要求2所述的电子设备,其中,所述两个或更多个功能存储器状态还包括第四功能存储器状态,在所述第四功能存储器状态中,所述补充高速缓存存储器处于清理操作模式中,并且所述主存储器处于所述常规功率模式中,并且所述补充高速缓存存储器被配置为在所述清理操作模式中将脏信息写回到所述主存储器,以准备从所述第二功能存储器状态经由所述第四功能存储器状态转换到所述第一功能存储器状态。
4.根据权利要求1所述的电子设备,其中,与所述补充高速缓存存储器相比,所述第一高速缓存存储器更大并且被配置为存储更多的信息。
5.根据权利要求4所述的电子设备,其中,所述第一高速缓存存储器包括N路集关联的高速缓存存储器,其中,“N”表示正整数,并且所述补充高速缓存存储器包括关联的高速缓存存储器,所述关联的高速缓存存储器是全关联或M路集关联,其中,“M”表示大于所述正整数“N”的另一个正整数。
6.根据权利要求4所述的电子设备,其中,所述补充高速缓存存储器被配置为在所述第二功能存储器状态中可用于作为所述第一高速缓存存储器的较低级别的高速缓存存储器资源操作,而在所述第一功能存储器状态中不可用于作为所述第一高速缓存存储器的较低级别的高速缓存存储器资源操作。
7.根据权利要求1所述的电子设备,进一步包括:
由软件可访问的寄存器,所述寄存器被配置为保持可设定值以启用所述第二功能存储器状态。
8.根据权利要求1-7中任一项所述的电子设备,其中,所述控制电路被配置为基于所述主存储器的活动的影响来发起在所述两个或更多个功能存储器状态之间的转换。
9.根据权利要求8所述的电子设备,其中,所述控制电路被配置为通过跟踪高速缓存未中或通过监视耦合到所述主存储器的互连的利用来估计所述主存储器的活动的所述影响。
10.一种用于存储器使用的方法,包括:
操作存储器系统,所述存储器系统包括第一高速缓存存储器、补充高速缓存存储器和主存储器,所述补充高速缓存存储器被配置为选择性地处理所述第一高速缓存存储器的高速缓存未中或高速缓存溢出;
确定所述补充高速缓存存储器的操作模式,所述操作模式是非活动操作模式和活动操作模式中的一项;
响应于所述补充高速缓存存储器处于所述非活动操作模式中,
对于与所述第一高速缓存存储器的高速缓存未中或高速缓存溢出相关联的存储器请求,绕过所述补充高速缓存存储器;以及
将所述存储器请求路由到所述主存储器;以及
响应于所述补充高速缓存存储器处于所述活动操作模式中,
确定由所述存储器请求作为目标的信息被存储在所述补充高速缓存存储器中;以及
响应于确定目标信息被存储在所述补充高速缓存存储器中,从所述补充高速缓存存储器提供所述目标信息。
11.根据权利要求10所述的方法,还包括:
确定所述目标信息未被存储在所述补充高速缓存存储器中;以及
响应于确定所述目标信息未被存储在所述补充高速缓存存储器中,
将所述主存储器从低功率模式唤醒;以及
从所述主存储器中提供所述目标信息。
12.根据权利要求10所述的方法,还包括:
在多个功能存储器状态中的功能存储器状态中操作所述存储器系统,所述多个功能存储器状态包括:
第一功能存储器状态,在所述第一功能存储器状态中,所述补充高速缓存存储器处于所述非活动操作模式中,并且所述主存储器处于常规功率模式中;以及
第二功能存储器状态,在所述第二功能存储器状态中,所述补充高速缓存存储器处于所述活动操作模式中,并且所述主存储器处于低功率模式中;
估计所述主存储器的活动的影响;以及
基于所述主存储器的活动的所估计的影响,在所述多个功能存储器状态中的两个或更多个功能存储器状态之间进行转换。
13.根据权利要求12所述的方法,其中,所述估计包括以下中的至少一个:
跟踪所述第一高速缓存存储器或所述补充高速缓存存储器的高速缓存未中或高速缓存溢出;
监视被路由到所述主存储器的存储器请求;以及
分析代码的执行属性。
14.根据权利要求12所述的方法,其中所述转换包括:
响应于活动的所估计的影响超过了阈值量,从所述第二功能存储器状态到所述第一功能存储器状态的转换,包括:
将脏信息从所述补充高速缓存存储器写回到所述主存储器;以及
将所述补充高速缓存存储器掉电。
15.根据权利要求12所述的方法,其中:
在所述多个功能存储器状态中的功能存储器状态中操作所述存储器系统包括:在第三功能存储器状态中操作所述存储器系统,在所述第三功能存储器状态中,所述补充高速缓存存储器被加电,并且所述主存储器处于常规功率模式中,包括响应于存储器请求将数据加载到所述补充高速缓存存储器中;以及
所述转换包括:响应于当在所述第三功能存储器状态中操作所述存储器系统时活动的所估计的影响低于阈值量,从所述第三功能存储器状态转换到所述第二功能存储器状态,包括:
将所述主存储器置于所述低功率模式中。
16.根据权利要求12至15中任一项所述的方法,还包括:
响应于所述存储器系统在所述第二功能存储器状态中被操作,将直接存储器访问(DMA)请求路由到所述第一高速缓存存储器以及所述补充高速缓存存储器中的至少一个。
17.一种电子设备,包括:
一个或多个处理器;以及
一个或多个计算机可读存储介质,所述一个或多个计算机可读存储介质存储指令并且包括:
第一高速缓存存储器;
主存储器;
补充高速缓存存储器,所述补充高速缓存存储器在所述第一高速缓存存储器和所述主存储器之间通信地耦合;以及
寄存器,所述寄存器被配置为保持可设定值;
其中所述指令在由所述一个或多个处理器执行时使得所述一个或多个处理器执行操作,所述操作包括:
使得代码在所述一个或多个处理器上被执行;以及
基于所述代码来调整所述可设定值,以选择性地启用所述补充高速缓存存储器以相对于所述第一高速缓存存储器作为较低级别的高速缓存资源进行操作,包括:基于所述补充高速缓存存储器处于活动操作模式并且所述主存储器处于低功率模式,启用所述补充高速缓存存储器作为所述较低级别的高速缓存资源进行操作;并且基于所述补充高速缓存存储器处于非活动操作模式并且所述主存储器处于常规功率模式,禁用所述补充高速缓存存储器作为所述较低级别的高速缓存资源进行操作。
18.根据权利要求17所述的电子设备,其中,所述调整包括以下中的至少一个:
确立所述可设定值以允许硬件选择性地激活所述补充高速缓存存储器;以及
确立所述可设定值以指示所述硬件将所述补充高速缓存存储器置于监视操作模式中,以激活所述补充高速缓存存储器并尝试将所述主存储器置于低功率模式中。
19.根据权利要求17或权利要求18所述的电子设备,其中,所述指令进一步包括:
分析所述代码,所述分析包括以下中的至少一个:
确定所述代码的大小;以及
在执行期间观察所述代码的存储器使用模式,
其中,所述可设定值的所述调整基于对所述代码的所述分析。
20.一种包括指令的计算机可读存储介质,所述指令当被处理器执行时使得所述处理器执行根据权利要求10至16中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/824,744 | 2017-11-28 | ||
US15/824,744 US10705590B2 (en) | 2017-11-28 | 2017-11-28 | Power-conserving cache memory usage |
PCT/US2018/047120 WO2019108280A1 (en) | 2017-11-28 | 2018-08-20 | Power-conserving cache memory usage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110574014A CN110574014A (zh) | 2019-12-13 |
CN110574014B true CN110574014B (zh) | 2023-08-11 |
Family
ID=63638334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880028903.7A Active CN110574014B (zh) | 2017-11-28 | 2018-08-20 | 节能的高速缓存存储器使用 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10705590B2 (zh) |
EP (1) | EP3602310B1 (zh) |
CN (1) | CN110574014B (zh) |
TW (1) | TWI670602B (zh) |
WO (1) | WO2019108280A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10705590B2 (en) | 2017-11-28 | 2020-07-07 | Google Llc | Power-conserving cache memory usage |
KR20200114481A (ko) * | 2019-03-28 | 2020-10-07 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 |
KR20200142219A (ko) * | 2019-06-12 | 2020-12-22 | 삼성전자주식회사 | 전자 장치 및 그의 저장 공간 이용 방법 |
KR20210128073A (ko) * | 2020-04-16 | 2021-10-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 |
CN112433960B (zh) * | 2020-12-08 | 2022-06-21 | 四川长虹电器股份有限公司 | 一种异步基于版本控制的刷新级联缓存的方法 |
US20230195644A1 (en) * | 2021-12-20 | 2023-06-22 | Advanced Micro Devices, Inc. | Last level cache access during non-cstate self refresh |
CN116909943B (zh) * | 2023-09-08 | 2023-12-19 | 飞腾信息技术有限公司 | 一种缓存访问方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1612113A (zh) * | 2003-10-14 | 2005-05-04 | 国际商业机器公司 | 节能高速缓存及其运行方法 |
CN1910538A (zh) * | 2003-12-18 | 2007-02-07 | 英特尔公司 | 改变高速缓存策略的方法和系统 |
CN101246389A (zh) * | 2006-09-29 | 2008-08-20 | 英特尔公司 | 提供从休眠状态瞬时接通恢复的计算系统节电方法和装置 |
CN104781753A (zh) * | 2012-12-14 | 2015-07-15 | 英特尔公司 | 功率选通高速缓存存储器的一部分 |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6105109A (en) * | 1998-02-19 | 2000-08-15 | International Business Machines Corporation | System speed loading of a writable cache code array |
US6519682B2 (en) * | 1998-12-04 | 2003-02-11 | Stmicroelectronics, Inc. | Pipelined non-blocking level two cache system with inherent transaction collision-avoidance |
US20050071564A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Reduction of cache miss rates using shared private caches |
US7228388B2 (en) * | 2004-11-19 | 2007-06-05 | International Business Machines Corporation | Enabling and disabling cache bypass using predicted cache line usage |
US7237065B2 (en) * | 2005-05-24 | 2007-06-26 | Texas Instruments Incorporated | Configurable cache system depending on instruction type |
US7899990B2 (en) * | 2005-11-15 | 2011-03-01 | Oracle America, Inc. | Power conservation via DRAM access |
TWI352906B (en) | 2005-11-15 | 2011-11-21 | Montalvo Systems Inc | Method, microprocessor system, medium, memory elem |
ATE548696T1 (de) | 2005-11-15 | 2012-03-15 | Oracle America Inc | Energieeinsparung über dram-zugang |
US8527709B2 (en) | 2007-07-20 | 2013-09-03 | Intel Corporation | Technique for preserving cached information during a low power mode |
US7865669B2 (en) * | 2007-08-02 | 2011-01-04 | International Machines Business Corporation | System and method for dynamically selecting the fetch path of data for improving processor performance |
US20090327609A1 (en) | 2008-06-30 | 2009-12-31 | Bruce Fleming | Performance based cache management |
US8966181B2 (en) * | 2008-12-11 | 2015-02-24 | Seagate Technology Llc | Memory hierarchy with non-volatile filter and victim caches |
US8706966B1 (en) * | 2009-12-16 | 2014-04-22 | Applied Micro Circuits Corporation | System and method for adaptively configuring an L2 cache memory mesh |
US8364904B2 (en) * | 2010-06-21 | 2013-01-29 | International Business Machines Corporation | Horizontal cache persistence in a multi-compute node, symmetric multiprocessing computer |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8656106B2 (en) * | 2010-12-16 | 2014-02-18 | International Business Machines Corporation | Managing unforced injections of cache lines into a cache utilizing predetermined address ranges |
US8838897B2 (en) * | 2011-06-29 | 2014-09-16 | New Jersey Institute Of Technology | Replicating tag entries for reliability enhancement in cache tag arrays |
WO2013063484A1 (en) * | 2011-10-28 | 2013-05-02 | The Regents Of The University Of California | Multiple-core computer processor |
US9110810B2 (en) * | 2011-12-06 | 2015-08-18 | Nvidia Corporation | Multi-level instruction cache prefetching |
WO2013089686A1 (en) | 2011-12-13 | 2013-06-20 | Intel Corporation | A method and system for providing instant responses to sleep state transitions with non-volatile random access memory |
US9058269B2 (en) * | 2012-06-25 | 2015-06-16 | Advanced Micro Devices, Inc. | Method and apparatus including a probe filter for shared caches utilizing inclusion bits and a victim probe bit |
US9122612B2 (en) * | 2012-06-25 | 2015-09-01 | Advanced Micro Devices, Inc. | Eliminating fetch cancel for inclusive caches |
US8868841B2 (en) * | 2012-09-04 | 2014-10-21 | Facebook, Inc. | Statistical cache promotion |
GB2507758A (en) * | 2012-11-08 | 2014-05-14 | Ibm | Cache hierarchy with first and second level instruction and data caches and a third level unified cache |
US20140143498A1 (en) * | 2012-11-21 | 2014-05-22 | Advanced Micro Devices, Inc. | Methods and apparatus for filtering stack data within a cache memory hierarchy |
US9342461B2 (en) * | 2012-11-28 | 2016-05-17 | Qualcomm Incorporated | Cache memory system and method using dynamically allocated dirty mask space |
US9348752B1 (en) * | 2012-12-19 | 2016-05-24 | Amazon Technologies, Inc. | Cached data replication for cache recovery |
US9251069B2 (en) * | 2012-12-21 | 2016-02-02 | Advanced Micro Devices, Inc. | Mechanisms to bound the presence of cache blocks with specific properties in caches |
US8984230B2 (en) | 2013-01-30 | 2015-03-17 | Hewlett-Packard Development Company, L.P. | Method of using a buffer within an indexing accelerator during periods of inactivity |
JP5989574B2 (ja) * | 2013-02-28 | 2016-09-07 | 株式会社東芝 | 計算機、メモリ管理方法およびプログラム |
WO2015047348A1 (en) | 2013-09-27 | 2015-04-02 | Intel Corporation | Cache operations for memory management |
WO2015136655A1 (ja) * | 2014-03-13 | 2015-09-17 | 株式会社日立製作所 | ストレージシステム及び制御方法 |
US11620220B2 (en) * | 2014-07-14 | 2023-04-04 | Via Alliance Semiconductor Co., Ltd. | Cache system with a primary cache and an overflow cache that use different indexing schemes |
US9600442B2 (en) * | 2014-07-18 | 2017-03-21 | Intel Corporation | No-locality hint vector memory access processors, methods, systems, and instructions |
US9465938B2 (en) * | 2014-09-22 | 2016-10-11 | Qualcomm Incorporated | Integrated circuit and method for detection of malicious code in a first level instruction cache |
WO2016055828A1 (en) * | 2014-10-08 | 2016-04-14 | Via Alliance Semiconductor Co., Ltd. | Cache system with primary cache and overflow fifo cache |
US10114692B2 (en) * | 2015-01-27 | 2018-10-30 | Quantum Corporation | High/low energy zone data storage |
US9836399B2 (en) * | 2015-03-27 | 2017-12-05 | Intel Corporation | Mechanism to avoid hot-L1/cold-L2 events in an inclusive L2 cache using L1 presence bits for victim selection bias |
US20170300427A1 (en) * | 2016-04-18 | 2017-10-19 | Mediatek Inc. | Multi-processor system with cache sharing and associated cache sharing method |
US10705590B2 (en) | 2017-11-28 | 2020-07-07 | Google Llc | Power-conserving cache memory usage |
-
2017
- 2017-11-28 US US15/824,744 patent/US10705590B2/en active Active
-
2018
- 2018-06-06 TW TW107119411A patent/TWI670602B/zh active
- 2018-08-20 WO PCT/US2018/047120 patent/WO2019108280A1/en unknown
- 2018-08-20 EP EP18772980.1A patent/EP3602310B1/en active Active
- 2018-08-20 CN CN201880028903.7A patent/CN110574014B/zh active Active
-
2020
- 2020-07-06 US US16/921,197 patent/US11320890B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1612113A (zh) * | 2003-10-14 | 2005-05-04 | 国际商业机器公司 | 节能高速缓存及其运行方法 |
CN1910538A (zh) * | 2003-12-18 | 2007-02-07 | 英特尔公司 | 改变高速缓存策略的方法和系统 |
CN101246389A (zh) * | 2006-09-29 | 2008-08-20 | 英特尔公司 | 提供从休眠状态瞬时接通恢复的计算系统节电方法和装置 |
CN104781753A (zh) * | 2012-12-14 | 2015-07-15 | 英特尔公司 | 功率选通高速缓存存储器的一部分 |
Non-Patent Citations (1)
Title |
---|
Cache结构的低功耗可重构技术研究;华仔;《华强电子网》;20160810;全文 * |
Also Published As
Publication number | Publication date |
---|---|
EP3602310B1 (en) | 2023-05-03 |
CN110574014A (zh) | 2019-12-13 |
US20190163252A1 (en) | 2019-05-30 |
WO2019108280A1 (en) | 2019-06-06 |
US10705590B2 (en) | 2020-07-07 |
TW201926060A (zh) | 2019-07-01 |
US11320890B2 (en) | 2022-05-03 |
US20200348746A1 (en) | 2020-11-05 |
TWI670602B (zh) | 2019-09-01 |
EP3602310A1 (en) | 2020-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110574014B (zh) | 节能的高速缓存存储器使用 | |
CN1321362C (zh) | 包括器件使用评估和功率状态控制的功率管理方法和系统 | |
JP6197196B2 (ja) | 電力効率の優れたプロセッサアーキテクチャ | |
US8725953B2 (en) | Local cache power control within a multiprocessor system | |
US9015396B2 (en) | Reducing latency in a peripheral component interconnect express link | |
US20070011421A1 (en) | Method and system for decreasing power consumption in memory arrays having usage-driven power management | |
US20130036270A1 (en) | Data processing apparatus and method for powering down a cache | |
US20110047316A1 (en) | Solid state memory device power optimization | |
CN102495756A (zh) | 操作系统在不同的中央处理器之间切换的方法及系统 | |
GB2484204A (en) | Power management of processor cache during processor sleep | |
CN115509342B (zh) | 一种多核集群之间的切换方法及系统 | |
US8484418B2 (en) | Methods and apparatuses for idle-prioritized memory ranks | |
EP2808758B1 (en) | Reduced Power Mode of a Cache Unit | |
US7944770B2 (en) | Static random access memory system and control method for static random access memory system | |
EP2804075B1 (en) | Controlling power consumption of a processor using interrupt-mediated on-off keying | |
US20060026297A1 (en) | Computer system with multiple data access channels and control method thereof | |
US20140136748A1 (en) | System and method for performance optimization in usb operations | |
KR20160077151A (ko) | 동적 백라이트 제어 기능을 갖는 적응적 부분 스크린 업데이트 | |
US10430096B2 (en) | Hybrid storage device, computer, control device, and power consumption reduction method | |
US20140156941A1 (en) | Tracking Non-Native Content in Caches | |
US20230086149A1 (en) | Reducing memory power usage in far memory | |
JP6409218B2 (ja) | 電力効率の優れたプロセッサアーキテクチャ | |
JP2017021811A (ja) | 電力効率の優れたプロセッサアーキテクチャ |
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 |