CN101630287A - 基于性能的高速缓存管理 - Google Patents
基于性能的高速缓存管理 Download PDFInfo
- Publication number
- CN101630287A CN101630287A CN200910139646A CN200910139646A CN101630287A CN 101630287 A CN101630287 A CN 101630287A CN 200910139646 A CN200910139646 A CN 200910139646A CN 200910139646 A CN200910139646 A CN 200910139646A CN 101630287 A CN101630287 A CN 101630287A
- Authority
- CN
- China
- Prior art keywords
- cache memory
- cache
- power management
- management module
- operational 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
Links
Images
Classifications
-
- 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
-
- 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
-
- 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/0864—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
-
- 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- 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
-
- 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/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- 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)
Abstract
公开了用于管理高速缓存存储器的方法和装置。在一个实施例中,电子设备包括第一处理单元、第一高速缓存存储器、第一高速缓存控制器和功率管理模块,其中所述功率管理模块确定用于所述高速缓存存储器的至少一个运行参数并且将用于所述高速缓存存储器的所述至少一个运行参数传递到高速缓存控制器。另外,所述第一高速缓存控制器根据所述至少一个运行参数来管理所述高速缓存存储器,并且所述功率管理模块在所述功率管理模块中评价来自所述高速缓存控制器的用于所述高速缓存存储器的运行数据,并且在所述功率管理模块中基于来自所述高速缓存控制器的用于所述高速缓存存储器的所述运行数据生成用于所述高速缓存存储器的至少一个经修改的运行参数。
Description
技术领域
本公开一般涉及电子领域。更具体地,本发明实施例涉及在电子设备中的基于性能的高速缓存管理。
背景技术
许多电子设备包括典型地通过降低存储器访问延迟,使用高速缓存存储器来改善在该电子设备中的处理器的性能。诸如多核处理器之类的一些电子设备使用多个高速缓存存储器模块。对高速缓存存储器的熟练管理提供了在保持足够的运行参数的同时节省功率的机会。
附图说明
下面参考附图进行详细的描述。在图中,参考数字的最左边的数字标识参考数字首次在其中出现的图。在不同的图中使用相同的参考数字指示类似的或相同的项。
图1是根据实施例的电子装置的示意图。
图2是根据实施例的在电子装置的处理器中的存储器配置的示意图。
图3和4是根据实施例的说明高速缓存管理操作的流程图。
图5和6是计算系统的实施例的示意图,该计算系统可以被用于实现本文讨论的各个实施例。
具体实施方式
在下面的描述中,阐明了许多具体细节以便提供对各个实施例的透彻理解。然而,可以在没有这些具体细节的情况下实施本发明的各个实施例。在其它情形,未详细描述公知的方法、过程、部件和电路等,以避免模糊本发明的特定实施例。
图1是根据实施例的电子装置100的示意图。参考图1,电子装置100可以包括一个或多个处理器110、130。处理器110可以包括处理单元112、高速缓存存储器模块114、输入-输出(I/O)模块116和一致性控制器118。同样地,处理器130可以包括处理单元132、高速缓存存储器模块134、输入-输出(I/O)模块136和一致性控制器138。在一个实施例中,装置100可以是多核处理器。
可以通过一条或多条通信总线120A、120B、120C、120D、120E来耦合处理器110的各个部件,在本文中将这些总线一起指代为参考数字120。可以通过一条或多条通信总线140A、140B、140C、140D、140E来耦合处理器130的各个部件,在本文中将这些总线一起指代为参考数字140。另外,可以通过通信总线150来耦合处理器110、130。电子装置100还包括通过通信总线120E、140E耦合到处理器110、130的存储器模块160。在一个实施例中,通信总线120、130和150可以被实现为点对点总线。
处理器110、130可以是诸如通用处理器、处理在计算机网络上传送的数据的网络处理器或包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC)的其它类型的处理器之类的任意处理器。处理单元112、132可以被实现为诸如算术逻辑单元(ALU)之类的任意类型的中央处理单元(CPU)。
存储器模块160可以是诸如随机存取存储器(RAM)、动态随机存取存储器(DRAM)、随机操作存储器(ROM)、或它们的组合之类的任意存储器。I/O模块116、136可以包括用于管理在各自的通信总线120、130、150和存储器模块160上的一个或多个输入/输出端口的逻辑。
在一个实施例中,高速缓存存储器单元114、134可以被体现为回写式高速缓存模块。高速缓存模块114、134暂时存储由相应的处理器110、130修改的数据值,从而减少需要把数据值写回到存储器模块160的总线事务的数目。在图1描述的实施例中,高速缓存模块114、134被集成到相应的处理器110、130中。在替代的实施例中,高速缓存模块114、134可以位于处理器110、130外部并且通过通信总线进行耦合。
在一些实施例中,一致性控制器118、138管理用于保持在高速缓存模块114、118中的高速缓存一致性的操作。例如,当处理单元112修改数据值时,在将修改后的数据值写回到存储器160之前,该修改后的数据值存在于它的高速缓存模块114中。因此,存储器模块160和其它高速缓存单元(例如高速缓存134)将包含旧的数据值,直到将在高速缓存模块114中的数据值写回到存储器模块160为止。
一致性控制器118、138可以实现一种或多种技术来保持在高速缓存模块114、138和存储器模块160之间的高速缓存一致性。高速缓存一致性技术典型地使用一致性状态信息,其指示在高速缓存单元中的特定数据值是否是无效、经修改、被共享、被独占等。存在许多的高速缓存一致性技术,两个流行的版本包括MESI高速缓存一致性协议和MOESI高速缓存一致性协议。缩略语MESI代表经修改、排他、被共享和无效状态,而缩略语MOESI代表经修改、被拥有、排他、被共享和无效状态。在替代的实施例中,高速缓存控制器118、138可以实现总线广播技术来保持高速缓存一致性。例如,在多总线系统中,在每一条总线上发起的总线事务可以向系统中的其它总线广播。
在替代的实施例中,高速缓存控制器118、138可以实现基于目录的高速缓存一致性方法。在目录技术中,主存储器子系统通过存储关于数据的额外信息来保持存储器一致性。在主存储器子系统中的额外信息可以指示:1)哪个或哪些处理器已经获得了数据值的副本,以及2)数据值的一致性状态。例如,额外信息可以指示多于一个的处理器共享相同的数据值。而在另一个例子中,额外信息可以指示仅仅单个处理器具有修改特定数据值的权限。
在替代的实施例中,高速缓存控制器118、138可以实现总线互连高速缓存一致性技术,其中一致性状态信息关联于存储在各自的高速缓存单元114、134中的数据值。由一致性控制器118、138实现的特定高速缓存一致性技术超出了本公开的范围。
在一个实施例中,一致性控制器118、138可以被实现为逻辑单元,例如可在处理器110、130上执行的软件或固件。在替代的实施例中,一致性控制器可以被实现为在处理器110、130上的逻辑电路。
存储器160包括用于管理装置100的操作的操作系统180。在操作中,在计算机108上执行的一个或多个应用模块162和/或库164调用操作系统180来在计算机的处理器上执行一个或多个命令。操作系统180接着调用处理器110、130和其它系统硬件的服务来执行所述命令。操作系统内核182通常能被认为是负责执行许多操作系统功能的一个或多个软件模块。
各种设备驱动器184与安装在装置100中的硬件连接并通常控制所述硬件。例如在2000操作系统中通过向“驱动器栈”上下传递被称为I/O请求分组(IRP)的消息,驱动器与其它驱动器和操作系统部件(例如,I/O管理器或内核182)进行通信。那些本领域的技术人员将会理解,可以“堆叠(stack)”用于特定硬件设备的驱动器,以便向下指向硬件设备或向上返回到操作系统(或其它程序模块)的消息在到达它们的目的地之前经过在驱动器栈中的驱动器的链。
在一个实施例中,内核182与操作系统功率管理(OSPM)模块186连接。OSPM模块186包括可以被用来修改计算机系统100的某些部件的行为的一个或多个软件模块,其典型地被用来根据预先配置的约束/功率节省设置来管理功耗。
例如,在一个实施例中,OSPM模块186可以实现ACPI功率管理协议来将装置100或连接到装置100的设备在功率管理状态之间转换。高级控制和功率接口(ACPI)是使得硬件状态信息对计算机中的操作系统可用的规范,所述计算机包括膝上型计算机、桌上型计算机、服务器等。关于ACPI的更多详细信息,可以参见由康柏计算机公司、英特尔公司、微软公司、凤凰科技有限公司和东芝公司共同定义的“Advanced Configuration andPower Interface Specification”(2002年3月31日的修订版2.0a)。开发ACPI规范以建立能够实现具鲁棒性的操作系统控制的主板设备配置、以及设备和整个系统的功率管理的工业公共接口。
ACPI规范定义装置100、计算机处理器、或连接到装置100的各种设备可以处于的多个功率管理状态。全局系统功率状态包括:G3(机械关闭)、G2(软件关闭)、G1(休眠)和G0(工作)。设备功率状态包括:D3(关闭)、D0(完全开启)和D1和D2,是依赖于设备的状态。处理器功率状态包括:C0(指令状态)、C1(低延迟)、C2和C3,其中C2和C3是功率节省状态。休眠状态包括:S1(硬件保持系统上下文环境)、S2(CPU和系统高速缓存上下文环境丢失)、S3(CPU、系统高速缓存和芯片组上下文环境丢失)、S4(仅保持平台上下文环境)和S5,其中S5需要系统的完全重启。在ACPI规范中描述了关于各种功率管理状态的详细细节,其超出了本公开的范围。
可以理解,在一些实施例中可以根据与ACPI协议不同的其它协议来实现功率配置。
图2是根据实施例的在电子装置的处理器中的存储器配置的示意图。参考图2,处理器210可以对应于在图1中描述的处理器110、130中的一个处理器。在图2描述的实施例中,处理器210包括耦合到最后一级高速缓存(LLC)控制器230的中央处理单元(CPU)和L1/L2高速缓存220。存储器仲裁和控制模块240将LLC控制器230耦合到外部存储器260。
在图2描述的实施例中,高速缓存性能监视单元(CPMU)232被耦合到LLC控制器230。实际中,CPMU 232可以被实现为可在LLC控制器230上执行的逻辑指令,或可以被简化为硬线电路。在一些实施例中,CPMU 232和LLC控制器230与OSPM模块186协作来管理高速缓存存储器的功率状态,使得高速缓存存储器的一部分是使用的LLC高速缓存250,高速缓存存储器的一部分是未使用的LLC高速缓存252。在一个方面,CPMU 232和LLC控制器230与OSPM模块186协作来最小化或至少减少片外存储器访问的数目,而不牺牲第二和更高级高速缓存的有功和/或漏泄功率。在一些实施例中,CPMU 232和LLC控制器230与OSPM模块186协作来动态地提供最佳的功率有效配置。
返回参考图1,OSPM模块186具有对诸如电子设备100之类的电子设备的给定工作负荷的性能和资源需求的可见性。如上面说描述的,可以从电子设备动态地提取该信息或者可以在OSPM模块186用来为平台功率管理控制配置和策略的表中定义。在一些实施例中,可以结合在电子设备的运行期间动态获得的信息来使用来自表的信息,以管理LLC的功率和性能属性。
图3和4是根据实施例的说明高速缓存管理操作的流程图。参考图3,在操作310,OSPM模块186确定用于高速缓存存储器的运行参数。在一些实施例中,OSPM模块186基于驱动器、服务、以及应用事件和/或信息来确定平台的当前运行模式。一旦OSPM模块186确定了当前运行模式,那么配置各种平台功率管理工具(例如,高速缓存时钟和功率门控、延迟需求和性能需求)。在一些实施例中,OSPM模块186可以从由运行模式索引的ACPI表获得配置信息。在一些实施例中,表项还可以包括LLC配置约束。这些约束是基于给定工作负荷的已知属性,其确定最小和最大的LLC高速缓存大小,以及诸如频率之类的性能属性。
在操作315,例如通过机器特定寄存器(MSR)写入,OSPM模块186将从表获得的运行参数传递到LLC控制器230。在替代的实施例中,可以通过其它机制来传递参数,其包括但不限于输入/输出事务、MMIO和IPC机制。在一些实施例中,CPMU 232包括计数器,其指示LLC命中(hit)、未命中(miss)、停止周期计数(stall cycle count)和侦听周期刷新(snoop cycleflush)的数目。CPMU 232保持上面提到的事件中的每一个的计数。将在CPMU的寄存器中反映该事件计数。在设置最小/最大高速缓存大小后,LLC控制器332将使这些计数器归零(操作320)。
一旦建立了这些约束,OSPM模块186使用CMPU 232来管理LLC的性能。(例如,基于最大大小参数)LLC控制器230管理未使用的任何受影响块和功率门SRAM块的高速缓存一致性。
在一些实施例中,CPMU生成一个或多个事件,其使得OSPM模块186来执行LLC的性能参数和特性的评价。在评价周期期间,OSPM模块186能够基于性能数据来调节LLC的性能状态。例如,OSPM模块能够将高速缓存大小调节到下一个增加的大小(取决于状态提升或下降)和/或调节LLC的频率。可以由在模式改变期间建立的最小/最大大小参数来对所述调节进行约束。
可以使用两种另外的机制来生成事件。一种机制是内部定时器,其可以简单地当定时器期满时生成事件。另一种机制包括访问计数器的耗尽。对LLC的每一个访问(例如,来自核心或侦听)减少访问计数器。当计数器到零时,可以生成事件。两种机制都提供了用于OSPM模块186来进行性能数据的当前集合的评价的手段。访问计数器是优选的方法,因为它提供更有效的基于功率和性能的评价度量。
现在参考图4,当生成了CPMU事件(操作410)时,OSPM模块186从CPMU收集性能数据。如上所述,性能数据可以包括LLC命中、未命中、停止周期计数和侦听周期刷新的数目。在操作420,如果高速缓存命中率超过阈值,那么控制转到操作425,并且减少性能等级或LLC高速缓存大小中的至少一个。当高速缓存被减小时(即,通过集合的禁用),LLC控制器230管理将任何脏行(dirty line)同步到主存储器并且随后时钟门控被解分配的SRAM块。控制随后转到操作430,增加访问计数器的阈值以减少评价/事件频率。
相反,在操作420,如果命中率未超过阈值,那么控制转到操作435。在操作435,如果未命中率超过阈值,那么控制转到操作440,并且增加性能等级或LLC高速缓存大小中的至少一个。当高速缓存被增大时,LLC 230将移除用于给定块的任何时钟门控(clock gating)并打开另外的通路/集合。控制随后转到操作445,减少访问计数器阈值以增加评价/事件频率。在这些动作结束之后,将通知CPMU 232并且复位所有性能计数器。
在实施例中,可以在计算系统中实现图3-4的操作。图5说明了根据本发明的实施例的计算系统500的框图。计算系统500可以包括与互连网络(或总线)504通信的一个或多个中央处理单元(CPU)502或处理器。处理器502可以是诸如通用处理器、(处理通过计算机网络503传送的数据的)网络处理器、或(包括精简指令集计算机(RISC)处理器或复杂指令集计算机(CISC)的)其它类型的处理器之类的任意处理器。另外,处理器502可以具有单核或多核设计。具有多核设计的处理器502可以将不同类型的处理器核心集成到同一集成电路(IC)管芯上。另外,可以将具有多核设计的处理器502实现为对称或非对称多处理器。
芯片组506还可以与互连网络504进行通信。芯片组506可以包括存储器控制中心(MCH)508。MCH 508可以包括与存储器512通信的存储器控制器510。存储器512可以存储数据和被CPU 502或包括在计算系统500中的任何其它设备执行的指令序列。在本发明的一个实施例中,存储器512可以包括一个或多个易失性储存(或存储器)设备,例如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或其它类型的存储器。也可以使用诸如硬盘之类的非易失性存储器。另外的设备可以通过互连网络404进行通信,例如多个CPU和/或多个系统存储器。
MCH 508还可以包括与图形加速器516通信的图形接口514。在本发明的一个实施例中,图形接口514可以经由加速图形端口(AGP)与图形加速器516进行通信。在本发明的实施例中,显示器(例如平板显示器)可以通过例如信号转换器与图形接口514进行通信,该信号转换器将存储在诸如视频存储器或系统存储器之类的储存设备中的图像的数字表示转换为由显示器解释和显示的显示信号。在由显示器解释和随后在显示器上显示由显示设备产生的显示信号之前,该显示信号可以经过各种控制设备。
集线器接口518可以允许MCH 508与输入/输出控制中心(ICH)520进行通信。ICH 520可以提供到与计算系统500进行通信的I/O设备的接口。ICH 520可以通过外围设备桥(或控制器)524与总线522进行通信,该外围设备桥(或控制器)524例如是外围组件互连(PCI)桥、通用串行总线(USB)控制器或其它类型的总线。桥524可以提供在CPU 502和外围设备之间的数据路径。可以使用其它类型的拓扑结构。另外,多个总线可以例如通过多个桥或控制器与ICH 520进行通信。另外,在本发明的各种实施例中,与ICH 520通信的其它外围设备可以包括集成驱动电路(IDE)或小型计算机系统接口(SCSI)硬盘驱动器、USB端口、键盘、鼠标、并口、串口、软盘驱动器、数字输出支持(例如,数字视频接口(DVI))或其它类型的外围设备。
总线522可以与音频设备526、一个或多个盘驱动器528和网络接口设备530(其可以与计算机网络503进行通信)进行通信。其它设备可以通过总线522进行通信。另外,在本发明的一些实施例中,各种部件(例如网络接口设备530)可以与MCH 508进行通信。另外,可以组合处理器502和MCH508以形成单个芯片。另外,在本发明的其它实施例中,可以将图形加速器516包括在MCH 508中。
另外,计算系统500可以包括易失性和/或非易失性存储器(或存储装置)。例如,非易失性存储器可以包括下列中的一个或多个:只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电EPROM(EEPROM)、盘驱动器(例如,528)、软盘、致密盘ROM(CD-ROM)、数字多用途盘(DVD)、闪存、磁光盘、或者能够存储电子指令和/或数据的其它类型的非易失性机器可读介质。
图6说明了根据本发明实施例的以点对点(PtP)配置排列的计算系统600。特别地,图6示出了通过多个点对点接口将处理器、存储器和输入/输出设备互连的系统。
如图6所说明的,系统600可以包括几个处理器,为了清楚起见仅示出了其中的两个处理器602和604。处理器602和604可以各自包括本地存储器控制中心(MCH)606和608,以与存储器610和612进行通信。存储器610和/或612可以存储诸如关于存储器612所讨论的那些数据之类的各种数据。
处理器602和604可以是诸如关于图4的处理器402所讨论的那些处理器之类的任意类型的处理器。处理器602和604可以分别使用PtP接口电路616和618经由点对点(PtP)接口614来交换数据。处理器602和604均可以使用点对点接口电路626、628、630和632经由各自的PtP接口622和624分别与芯片组620交换数据。芯片组620还可以使用PtP接口电路637经由高性能图形接口636与高性能图形电路634交换数据。
可以在处理器602和604内提供本发明的至少一个实施例。而本发明的其它实施例可以存在于其它电路、逻辑单元或在图6的系统600内的设备中。另外,本发明的其它实施例可以分布于遍及在图6中说明的几个电路、逻辑单元或设备中。
芯片组620可以使用PtP接口电路641与总线640进行通行。总线640可以具有与它进行通信的一个或多个设备,例如总线桥642和I/O设备643。总线桥643可以经由总线644与诸如键盘/鼠标645、通信设备646(例如调制解调器、网络接口设备、或可以通过计算机网络603通信的其它类型的通信设备)、音频I/O设备和/或数据存储设备648之类的其它设备进行通信。数据存储设备648可以存储可由处理器602和/或604执行的代码649。
在图5和6中描述的计算机系统是可以用来实现本文讨论的各种实施例的计算系统的实施例的示意图。可以意识到,可以将在图5和6中描述的系统的各种部件组合到片上系统(SoC)体系结构中。
在本发明的各个实施例中,可以将本文(例如,关于图2和3)讨论的操作实现为硬件(例如,逻辑电路)、软件、固件或它们的组合,其可以被提供为计算机程序产品,例如,包括具有存储在其上的指令(或软件过程)的机器可读或计算机可读介质,该指令用于对计算机进行编程来执行本文讨论的过程。机器可读介质可以包括诸如关于图5和6所讨论的那些设备之类的任何类型的存储设备。
另外,这样的计算机可读介质可以作为计算机程序产品被下载,其中可以经由通信链路(例如,调制解调器或者网络连接)以包含于载波或其它传输介质中的数据信号的方式从远程计算机(例如,服务器)将该程序传送到请求计算机(例如,客户端)。因此,本文中载波将被认为包括机器可读介质。
在说明书中提及的“一个实施例”或“实施例”意味着与该实施例关联描述的特定的特征、结构或特性可以被包括在至少一个实现中。在说明书的各个地方中出现的措词“在一个实施例中”可能指代相同的实施例也可能不总是指代相同的实施例。
另外,在说明书和权利要求中可以使用术语“耦合”和“连接”以及它们的派生词。在本发明的一些实施例中,可以使用“连接”来表明两个或更多元件相互之间是直接物理或电连接的。“耦合”可以意味着两个或更多元件是直接物理或电连接的。然而,“耦合”还可以意味着两个或更多元件相互之间可以不是直接连接的,但是仍然可以相互协作或交互。
因此,虽然用具体到结构特征和/或方法动作的语言描述了本发明的实施例,但是可以理解,不应将声明的主题限制到所描述的具体特征或动作。与之形成对比,作为实现声明的主题的示例形式公开了这些具体特征和动作。
Claims (15)
1、一种用于管理电子设备中的高速缓存存储器的方法,包括:
在运行在所述电子设备上的功率管理模块中确定用于所述高速缓存存储器的至少一个运行参数;
将用于所述高速缓存存储器的所述至少一个运行参数传递到高速缓存控制器;
根据所述至少一个运行参数来管理所述高速缓存存储器;
在所述功率管理模块中评价来自所述高速缓存控制器的用于所述高速缓存存储器的运行数据;以及
在所述功率管理模块中基于来自所述高速缓存控制器的用于所述高速缓存存储器的所述运行数据来生成用于所述高速缓存存储器的至少一个经修改的运行参数。
2、根据权利要求1所述的方法,还包括:
将用于所述高速缓存存储器的所述至少一个经修改的运行参数传递到所述高速缓存控制器;以及
根据所述至少一个经修改的运行参数来管理所述高速缓存存储器。
3、根据权利要求1所述的方法,其中,在运行在所述电子设备上的功率管理模块中确定用于所述高速缓存存储器的至少一个运行参数包括下列各项中的至少一项:
根据表来确定用于所述电子设备的工作负荷参数、或根据所述电子设备上的运行状况来实时地确定工作负荷参数。
4、根据权利要求1所述的方法,其中,在运行在所述电子设备上的功率管理模块中确定用于所述高速缓存存储器的至少一个运行参数包括确定下列各项中的至少一项:
最小的高速缓存大小、最大的高速缓存大小或高速缓存频率。
5、根据权利要求1所述的方法,其中,根据所述至少一个运行参数管理所述高速缓存存储器包括下列各项中的至少一项:
时钟门控至少一个高速缓存存储器块;或
功率门控至少一个高速缓存存储器块。
6、根据权利要求1所述的方法,其中,在所述功率管理模块中评价来自所述高速缓存控制器的用于所述高速缓存存储器的运行数据包括评价下列各项中的至少一项:
高速缓存命中计数、高速缓存未命中计数、停止周期计数或侦听周期刷新计数。
7、一种电子设备,包括:
处理单元、高速缓存存储器、高速缓存控制器和功率管理模块,
其中,所述功率管理模块:
确定用于所述高速缓存存储器的至少一个运行参数;以及
将用于所述高速缓存存储器的所述至少一个运行参数传递到高速缓存控制器;以及
其中,所述高速缓存控制器根据所述至少一个运行参数来管理所述高速缓存存储器;以及
其中,所述功率管理模块:
在所述功率管理模块中评价来自所述高速缓存控制器的用于所述高速缓存存储器的运行数据;以及
在所述功率管理模块中基于来自所述高速缓存控制器的用于所述高速缓存存储器的所述运行数据来生成用于所述高速缓存存储器的至少一个经修改的运行参数。
8、根据权利要求7所述的电子设备,其中:
所述功率管理模块还将用于所述高速缓存存储器的所述至少一个经修改的运行参数传递到所述高速缓存控制器;以及
所述高速缓存控制器根据所述至少一个经修改的运行参数来管理所述高速缓存存储器。
9、根据权利要求7所述的电子设备,其中,运行在所述电子设备上的所述功率管理模块执行下列各项中的至少一项:
根据表来确定用于所述电子设备的工作负荷参数、或根据在所述电子设备上的运行状况来实时地确定工作负荷参数。
10、根据权利要求7所述的电子设备,其中,运行在所述电子设备上的所述功率管理模块确定下列各项中的至少一项:
最小的高速缓存大小、最大的高速缓存大小或高速缓存频率。
11、根据权利要求7所述的电子设备,其中,第一高速缓存控制器执行下列各项中的至少一项:
时钟门控至少一个高速缓存存储器块;或
功率门控至少一个高速缓存存储器块。
12、根据权利要求7所述的电子设备,其中,运行在所述电子设备上的所述功率管理模块评价下列各项中的至少一项:
高速缓存命中计数、高速缓存未命中计数、停止周期计数和侦听周期刷新计数。
13、一种系统,包括:
至少一个网络接口卡;以及
处理单元、第一高速缓存存储器、第一高速缓存控制器和功率管理模块,
其中,所述功率管理模块:
确定用于所述高速缓存存储器的至少一个运行参数;以及
将用于所述高速缓存存储器的所述至少一个运行参数传递到高速缓存控制器;以及
其中,所述高速缓存控制器根据所述至少一个运行参数来管理所述高速缓存存储器;以及
其中,所述功率管理模块:
在所述功率管理模块中评价来自所述高速缓存控制器的用于所述高速缓存存储器的运行数据;以及
在所述功率管理模块中基于来自所述高速缓存控制器的用于所述高速缓存存储器的所述运行数据来生成用于所述高速缓存存储器的至少一个经修改的运行参数。
14、根据权利要求13所述的系统,其中:
所述功率管理模块还将用于所述高速缓存存储器的所述至少一个经修改的运行参数传递到所述高速缓存控制器;以及
所述高速缓存控制器根据所述至少一个经修改的运行参数来管理所述高速缓存存储器。
15、根据权利要求13所述的系统,其中,所述功率管理模块执行下列各项中的至少一项:根据表来确定工作负荷参数、或根据运行状况来实时地确定工作负荷参数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/215,914 US20090327609A1 (en) | 2008-06-30 | 2008-06-30 | Performance based cache management |
US12/215,914 | 2008-06-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101630287A true CN101630287A (zh) | 2010-01-20 |
CN101630287B CN101630287B (zh) | 2013-08-28 |
Family
ID=41448945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101396467A Expired - Fee Related CN101630287B (zh) | 2008-06-30 | 2009-06-30 | 基于性能的高速缓存管理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20090327609A1 (zh) |
CN (1) | CN101630287B (zh) |
TW (1) | TW201015318A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102823143A (zh) * | 2010-03-22 | 2012-12-12 | 飞思卡尔半导体公司 | 功率门控控制模块、集成电路设备、信号处理系统、电子设备及其方法 |
CN104781753A (zh) * | 2012-12-14 | 2015-07-15 | 英特尔公司 | 功率选通高速缓存存储器的一部分 |
CN105247498A (zh) * | 2013-06-28 | 2016-01-13 | 英特尔公司 | 通用的基于主机的控制器延迟方法和装置 |
CN105849707A (zh) * | 2014-11-28 | 2016-08-10 | 华为技术有限公司 | 一种多级缓存的功耗控制方法、装置及设备 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9411532B2 (en) * | 2001-09-07 | 2016-08-09 | Pact Xpp Technologies Ag | Methods and systems for transferring data between a processing device and external devices |
US8656115B2 (en) | 2010-08-20 | 2014-02-18 | Intel Corporation | Extending a cache coherency snoop broadcast protocol with directory information |
CN103946765B (zh) | 2011-11-22 | 2017-11-17 | 英特尔公司 | 协同处理器以及系统性能和功率管理 |
CN104335175B (zh) * | 2012-06-29 | 2018-05-11 | 英特尔公司 | 基于系统性能度量在系统节点之间标识和迁移线程的方法和系统 |
US9021207B2 (en) * | 2012-12-20 | 2015-04-28 | Advanced Micro Devices, Inc. | Management of cache size |
US9436604B2 (en) * | 2013-03-13 | 2016-09-06 | Futurewei Technologies, Inc. | System and method for software/hardware coordinated adaptive performance monitoring |
US9378146B2 (en) | 2013-08-20 | 2016-06-28 | Apple Inc. | Operand cache design |
US9459869B2 (en) | 2013-08-20 | 2016-10-04 | Apple Inc. | Intelligent caching for an operand cache |
US9652233B2 (en) | 2013-08-20 | 2017-05-16 | Apple Inc. | Hint values for use with an operand cache |
US9619394B2 (en) | 2015-07-21 | 2017-04-11 | Apple Inc. | Operand cache flush, eviction, and clean techniques using hint information and dirty information |
JP6674085B2 (ja) * | 2015-08-12 | 2020-04-01 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US9785567B2 (en) | 2015-09-11 | 2017-10-10 | Apple Inc. | Operand cache control techniques |
US10613987B2 (en) | 2016-09-23 | 2020-04-07 | Apple Inc. | Operand cache coherence for SIMD processor supporting predication |
US10705590B2 (en) | 2017-11-28 | 2020-07-07 | Google Llc | Power-conserving cache memory usage |
US10628312B2 (en) * | 2018-09-26 | 2020-04-21 | Nxp Usa, Inc. | Producer/consumer paced data transfer within a data processing system having a cache which implements different cache coherency protocols |
US20210182194A1 (en) * | 2020-12-26 | 2021-06-17 | Intel Corporation | Processor unit resource exhaustion detection and remediation |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6766420B2 (en) * | 2001-09-27 | 2004-07-20 | International Business Machines Corporation | Selectively powering portions of system memory in a network server to conserve energy |
US6662272B2 (en) * | 2001-09-29 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Dynamic cache partitioning |
US7127560B2 (en) * | 2003-10-14 | 2006-10-24 | International Business Machines Corporation | Method of dynamically controlling cache size |
JP2006031480A (ja) * | 2004-07-16 | 2006-02-02 | Sony Corp | 情報処理システム及び情報処理方法、並びにコンピュータプログラム |
JP2006139459A (ja) * | 2004-11-11 | 2006-06-01 | Hitachi Global Storage Technologies Netherlands Bv | メディア・ドライブ及びそのパワー・セーブ方法 |
US20070043965A1 (en) * | 2005-08-22 | 2007-02-22 | Intel Corporation | Dynamic memory sizing for power reduction |
US7899990B2 (en) * | 2005-11-15 | 2011-03-01 | Oracle America, Inc. | Power conservation via DRAM access |
-
2008
- 2008-06-30 US US12/215,914 patent/US20090327609A1/en not_active Abandoned
-
2009
- 2009-06-23 TW TW098121007A patent/TW201015318A/zh unknown
- 2009-06-30 CN CN2009101396467A patent/CN101630287B/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102823143A (zh) * | 2010-03-22 | 2012-12-12 | 飞思卡尔半导体公司 | 功率门控控制模块、集成电路设备、信号处理系统、电子设备及其方法 |
CN102823143B (zh) * | 2010-03-22 | 2015-07-08 | 飞思卡尔半导体公司 | 功率门控控制模块、集成电路设备、信号处理系统、电子设备及其方法 |
CN104781753A (zh) * | 2012-12-14 | 2015-07-15 | 英特尔公司 | 功率选通高速缓存存储器的一部分 |
CN104781753B (zh) * | 2012-12-14 | 2017-09-08 | 英特尔公司 | 功率选通高速缓存存储器的一部分 |
CN105247498A (zh) * | 2013-06-28 | 2016-01-13 | 英特尔公司 | 通用的基于主机的控制器延迟方法和装置 |
CN105247498B (zh) * | 2013-06-28 | 2018-08-10 | 英特尔公司 | 通用的基于主机的控制器延迟方法和装置 |
CN105849707A (zh) * | 2014-11-28 | 2016-08-10 | 华为技术有限公司 | 一种多级缓存的功耗控制方法、装置及设备 |
CN105849707B (zh) * | 2014-11-28 | 2019-12-17 | 华为技术有限公司 | 一种多级缓存的功耗控制方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101630287B (zh) | 2013-08-28 |
US20090327609A1 (en) | 2009-12-31 |
TW201015318A (en) | 2010-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101630287B (zh) | 基于性能的高速缓存管理 | |
CN105740169B (zh) | 用于高速缓存一致系统的可配置探听过滤器 | |
US7412570B2 (en) | Small and power-efficient cache that can provide data for background DNA devices while the processor is in a low-power state | |
US7958312B2 (en) | Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state | |
US7516274B2 (en) | Power conservation via DRAM access reduction | |
EP2894542B1 (en) | Estimating scalability of a workload | |
US8954977B2 (en) | Software-based thread remapping for power savings | |
US8914650B2 (en) | Dynamically adjusting power of non-core processor circuitry including buffer circuitry | |
KR102355989B1 (ko) | 다중 노드 시스템 저전력 관리 | |
CN102057344A (zh) | 睡眠处理器 | |
KR20130000326A (ko) | 캐시 블록 코히어런스를 위한 시스템들, 방법들, 및 디바이스들 | |
CN104049715A (zh) | 平台不可知的功率管理 | |
US20030023794A1 (en) | Cache coherent split transaction memory bus architecture and protocol for a multi processor chip device | |
US10860085B2 (en) | Modified sleep state graphics processing system | |
CN101008921A (zh) | 基于总线侦听的嵌入式异构多核缓存一致性方法 | |
CN117546123A (zh) | 基于探针过滤器保持的低功率状态 | |
KR101672357B1 (ko) | 응답 타이밍 최적화에 기초하는 멀티프로세서 시스템에서의 주파수 조정 수행 | |
US9043628B2 (en) | Power management of multiple compute units sharing a cache | |
Anagnostopoulos et al. | Power-aware dynamic memory management on many-core platforms utilizing DVFS | |
Kwa et al. | PCI Express* Architecture Power Management | |
Francisco Lorenzon et al. | Fundamental Concepts | |
Li et al. | Analysis of system reliability for cache coherence scheme in multi-processor | |
CN117581179A (zh) | 低功率状态之后基于需求的探针过滤器初始化 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130828 Termination date: 20160630 |
|
CF01 | Termination of patent right due to non-payment of annual fee |