CN101504628A - 用于干预共享高速缓存线的方法和系统 - Google Patents
用于干预共享高速缓存线的方法和系统 Download PDFInfo
- Publication number
- CN101504628A CN101504628A CNA2008101781313A CN200810178131A CN101504628A CN 101504628 A CN101504628 A CN 101504628A CN A2008101781313 A CNA2008101781313 A CN A2008101781313A CN 200810178131 A CN200810178131 A CN 200810178131A CN 101504628 A CN101504628 A CN 101504628A
- Authority
- CN
- China
- Prior art keywords
- memory
- cache
- temperature
- power dissipation
- request
- 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
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- 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
技术领域
本发明一般涉及数据处理系统领域。在一方面,本发明涉及多处理器系统内部的高速缓冲存储器管理。
背景技术
多处理器计算机系统在每个处理器处具有一级或者多级高速缓冲存储器,在这样的多处理器计算机系统中,通常使用snoop协议或者基于目录的协议来在此类系统之间维护高速缓存的一致性。在使用snoop协议对现有多处理器系统的高速缓存线提供系统一致性的情况下,存在大量的高速缓存线的共享,在某些情况下高达所有请求的30%。这可以通过参考诸如POWER 5/6(该系统使用snoop协议来维护一致性)的多核系统来理解。在此类系统中,已经由第二核访问(或者用于读取或者先前用于写入)的、由第一核所请求用于读取操作的线在第二核中可以被标记为共享,并且被转发或者干预(intervene)至第一核,并且也可以在第一核中被标记为共享。然后,这两个核为了读取而并行地访问此共享线,不需要进一步通信。此协议可导致多个核共享相同的线,从而当另一核尝试访问(用于读取共享或者独占式)已经由两个或者更多核所共享的线时,必须做出哪个核提供共享的副本的选择。常规的高速缓存分配模式基于某种中央化控制试探器来提供线,诸如,例如确定在物理上靠近请求核的核将提供线。在某些实现中,共享线的特定核的版本被标记为共享副本,该共享副本将针对将来的请求而提供,由此降低了访问高速缓存线所需要的时间。
尽管在历史上,存储器访问速度是关键的设计目标,但是在当今的多处理器中,功率耗散是必须考虑的越来越重要的设计因素,尤其是当功率耗散在多个异构核系统中的每个核处有所不同、或者异构的核不能优选地被均匀利用的情况下,功率耗散在每个核处会有所不同。另外,当高速缓存层级(hierarchy)的某些级别(例如,在第一处理单元中的L2高速缓存)被访问以将共享线干预到其他核、或者干预到另一处理单元中的L2高速缓存时,功率耗散(以及由此核的温度)会升高。应该理解,当对高速缓存的子阵列或者控制加电、当读取高速缓存以外的线、以及当跨过总线将该线转发至请求核时,出现此类功率耗散。在某些情况下,一个或者多个核及其相关联的高速缓存层级可以耗散大量功率,并且还可以是这样的情况,当所有的核都在耗散大量功率时,它们都非常“热”。
尽管已经尝试控制“热核”问题,诸如对“热”核断电或者将任务或线程移至“冷”核(即,没有消耗过多功率的核),这些方案没有提供针对将高速缓存线一致地供给至请求核的机制,并且由于对热核断电而对于处理能力施加了不适当的限制。由此,需要一种通过有效地和快速地向请求核提供高速缓存线而在多处理器系统中控制功率耗散效应的系统和方法。另外,需要一种考虑到各个核的功率消耗状态从而针对高速缓存线请求提供系统一致性的多核系统和方法。在结合附图以及下文的详细描述而阅读了本应用的其他部分之后,传统高速缓存提供方案的其他限制和缺点对于本领域技术人员是易见的。
发明内容
针对使用基于目录一致性协议的多处理器系统提供了一种功率感知线干预系统和方法,其中基于在每个存储器源处所感测的温度或者功率耗散来从多个存储器源提供所请求的高速缓存线。通过在共享所请求的线的多个存储器源(例如,在核、高速缓冲存储器、存储器控制器等位置)中的每一个处提供温度或者功率耗散传感器,控制逻辑通过使用功率传感器信号确定哪个存储器源将供给所述高速缓存线,从而仅向具有可接受功率耗散的存储器源发信号通知以向请求者提供所述高速缓存线。在所选择的实施方式中,诸如二极管的核温度传感器放置并集成在各个存储器源内部,以便在不必对高功率核断电的情况下,向控制试探器提供信号来指示特定核或者存储器控制器将丧失向请求核提供线的资格。例如,如果两个核在其各自的高速缓冲存储器中分别共享被请求的线,则仅当在物理上靠近请求者的核没有到达功率的最大阈值的情况下,由该核提供线的副本。否则,将由其他共享核或者存储器控制器缓存器来提供线。当使用基于目录的一致性协议系统来维护高速缓存一致性时,功率传感器信号可以用于表示请求核希望线被共享还是被独占。在基于目录一致性协议系统的所选择实现中,针对独占访问高速缓存线的请求被发送至中央化目录,这导致高功率的核将其线的副本无效,从而将从低功率核或者存储器控制器来供给所请求的高速缓存线。
根据各种实施方式,在多处理器数据处理系统中,可以使用在此描述的方法和/或装置来在软件的控制下干预所请求的高速缓存线,所述方法和/或装置可以在包括计算机可执行指令的计算机程序代码的数据处理系统中实现。无论以何种形式实现,在多处理器数据处理系统的操作期间生成针对第一高速缓存线的请求。作为响应,识别存储有所请求的第一高速缓存线的副本的一个或者多个存储器源(例如,核、高速缓冲存储器、存储器控制器等)。另外,采集针对该多个存储器源中每一个的温度或者功率耗散值,诸如通过监控在每个存储器源处的传感器以测量与所述存储器源相关联的温度或者功率耗散值。基于所采集的温度或者功率耗散值,从该多个存储器源中选择第一存储器源来干预所请求的第一高速缓存线,其中至少部分地基于具有可接受温度或者功率耗散值来选择第一存储器源。例如,可以通过选择如下存储器源来选择第一存储器源:所述存储器源具有的第一温度或者功率耗散值低于与其他存储器源相关联的第二温度或者功率耗散值。通过将与第一存储器源相关联的第一温度或者功率耗散值和与一个或者多个其他存储器源相关联的一个或者多个其他温度或者功率耗散值进行比较,从而选择冷存储器源。另一方面,如果多个高速缓冲存储器中的任何一个都不具有可接受的温度或者功率耗散值,则选择具有可接受温度或者功率耗散值的存储器控制器来干预所请求的第一高速缓存线。为了实现基于目录的协议,通过在中央化目录处维护针对多个存储器源的每一个的线状态信息以及温度或者功率耗散值来选择第一存储器源;选择第一存储器源来干预所请求的第一高速缓存线,其中至少部分地基于具有可接受温度或者功率耗散值来选择第一存储器源;以及从该中央化目录发送选择消息以指示第一存储器源来干预所请求的第一高速缓存线。
附图说明
当结合下文的附图考虑下文的详细描述时,可以理解本发明的所选实施方式、及其所获得的各种目的、特征和优点,其中:
图1示出了其中可以实现本发明的所选实施方式的对称多处理器计算机架构;
图2示出了在多处理器系统中的各个核之间的信号流程的简化形式,其中所述多处理器系统在用于监控高速缓存一致性的基于目录一致性协议中实现功率感知的线干预;
图3是响应于来自多处理器系统中请求核的读取或者写入请求而对请求核和发送核进行的目录响应的示例列表,其中所述多处理器系统实现本发明所选的基于目录一致性协议实施方式中的功率感知的线干预;以及
图4是基于目录一致性协议步骤的逻辑流程图,该步骤用以基于与存储器源相关联的功率或热量条件而在多处理器系统中从多个存储器源来向请求核供给高速缓存线。
具体实施方式
公开了一种基于目录的一致性协议方法、系统和程序,用于基于在多个源(其中所述多个源的每个共享所请求的高速缓存线)中的每个源处感测的温度和/或功率信号,来从多个源向请求核以一致性方式供给高速缓存线,从而仅向具有可接受功率耗散或者温度的源发信号通知以提供所请求的线。为了在多核芯片的每个核处感测温度或者功率耗散,在芯片上的每个核处放置二极管用作温度传感器。其中二极管的输出电压对于20-100℃的典型温度范围将在0.5-1.0V间变化,对输出电压进行监控并可以将其存储在寄存器中以由控制试探器使用,以便从具有低于预定阈值的温度的核中选择源核。可以结合基于目录的一致性协议使用所公开的技术,以便在多处理器芯片上供给高速缓存线。在多处理器中的基于目录一致性协议中,来自核的请求被发送至中央化目录,该中央化目录通常位于存储器控制器附近并保持具有线副本的所有核以及线状态的列表。中央化目录逻辑基于在每个核处感测到的温度和/或功率信号来选择哪个核将返回线,并且向所述核发信号通知以将该线干预至请求者,从而仅向具有可接受功率耗散或者温度的核发信号通知以提供所请求的线。如下文中更全面地描述,在此使用的术语“核”是指单独的处理器的核逻辑、以及与其相关联的L1高速缓存、L2高速缓存和/或L3高速缓存。
现在将参考所附附图详细描述本发明的各种示意性实施方式。应该理解,在此描述的流程图图示和/或框图可以全部或者部分地由专用硬件电路、固件和/或计算机程序指令来实现,其中所述计算机程序指令提供至通用计算机、专用计算机或者其他可编程数据处理系统装置的处理器以实现一种机器,从而此指令(经由计算机或者其他可编程数据处理装置的处理器来执行)实现在流程图或者在框图的一个或者多个框中所指定的功能/动作。另外,尽管在下文中的描述中阐明了各种细节,应该理解,本发明可以在没有这些特定细节的情况下实现,并且可以对在此描述的本发明进行各种特定实现的决定,以实现设备设计者的特定目标,诸如符合技术或者设计相关的约束,这可以根据实现不同而有所变化。尽管此类开发努力可能是复杂并且耗时的,然而,受益于此公开的本领域技术人员可以采取此例程。例如,以框图形式而不是细节的形式示出了所选择的方面,以避免对本发明进行限制或者混淆。另外,在此提供的详细描述的某些部分是以对计算机存储器内数据的算法或者操作的形式呈现。本领域技术人员可以使用此类描述以及表示来描述他们工作的实质并将其传递给本领域的其他技术人员。现在,在下文中将参考附图详细描述本发明的各种示意性实施方式。
参考图1,该图示描绘了其中可以实现本发明的所选实施方式的对称多处理器计算机系统100的示例架构。计算机系统100具有设置在一个或者多个处理器组中的一个或者多个处理单元,并且如所绘出,在处理器组10中包括四个处理单元11、21、31、41。处理单元经由系统或者架构(fabric)总线50来与系统100的其他组件进行通信。架构总线50连接至一个或者多个服务处理器60A、60B、系统存储器设备61、存储器控制器62、共享的或者L3系统高速缓存66和/或各种外围设备69。可选地,处理器桥70用以将其他处理器组进行互联。尽管没有示出,但是应该理解,计算机系统100也可以包括固件,该固件存储系统的基本输入/输出逻辑,并且当该计算机系统第一次被开启(引导)时从外围设备之一搜索并且装载操作系统。
一旦装载,则系统存储器设备61(随机访问存储器或者RAM)以易失(临时)状态存储由处理单元使用的程序指令和操作数数据,其中包括操作系统61A和应用程序61B。另外,可以使用任意期望的总线连接机制来将任意外围设备69连接至架构总线50,所述总线连接机制诸如使用PCI主桥的外围组件互联(PCI)局部总线。PCI桥提供低等待时间的路径,处理单元11、21、31、41通过该路径可以访问在总线存储器或者I/O地址空间内任何位置映射的PCI设备。PCI主桥互联外围设备69还提供高带宽路径以允许PCI设备访问系统存储器61。此类PCI设备可以包括例如网络适配器、小型计算机系统接口(SCSI)适配器(其向永久性存储设备(例如,硬盘)提供互联)以及扩展总线桥,诸如用于连接输入/输出设备的工业标准架构(ISA)扩展总线,其中所述输入/输出设备包括键盘、连接到显示器设备的图形适配器和/或用于与显示设备一起使用的图形化指示设备(例如,鼠标)。备选地,服务处理器60可以驻留在修改的PCI插槽中,该PCI插槽包括直接存储器访问(DMA)路径。
在对称多处理器(SMP)计算机中,所有处理单元11、21、31、41通常是相同的,即,这些处理器单元均使用指令和协议的公共集合或者子集进行操作,并且通常具有相同的架构。如由处理单元11所示,每个处理单元可以包括一个或者多个处理器核16a、16b,该处理器核执行程序指令以便操作计算机。一个示例性处理单元可以是由Intel公司生产的处理器产品,该产品包括单个集成的电路超标量体系结构微处理器,其中具有均由集成电路形成的各种执行单元、寄存器、缓存器、存储器以及其他功能单元。处理器核可以根据精简指令集合计算(RISC)技术来操作,并且可以使用流水线以及乱序指令执行来进一步改进超标量体系结构架构的性能。
如所绘出,每个处理器核16a、16b包括由高速存储器设备构造的板载(on-board)(L1)高速缓冲存储器18a、18b(典型的是,独立的指令高速缓存和数据高速缓存)。高速缓存通常用以临时性存储可能由处理器反复访问的值,以便通过避免从系统存储器61装载该值的较长步骤来加速处理。处理单元可以包括其他高速缓存,诸如二级(L2)高速缓存12,该高速缓存12与高速缓冲存储器控制器14一起支持作为核16a和16b各自的一部分的L1高速缓存18a、18b两者。还可以提供其他级别的高速缓存,诸如可经由架构总线50访问的L3高速缓存66。从最高级(L1)至最低级(L3)的每个高速缓存级别相继可以存储更多信息,但是访问延迟更长。例如,处理器核(例如16a)中的板载L1高速缓存(例如,18a)可以具有128千字节存储器的存储容量,L2高速缓存12可以具有4兆字节的存储容量,而L3高速缓存66可以具有32兆字节的存储容量。为了便于维修/替换有缺陷的处理单元组件,每个处理单元11、21、31、41可以以可替换电路板、可插拔模块或者类似的域可替换单元(FRU)的形式来构造,这些形式的处理单元易于以模块化方式来进行替换、安装进入系统100或者易于从系统100替换出。
如本领域技术人员将理解的那样,高速缓冲存储器具有多个存储器块,所述存储器块独立地存储各种指令和数据值。任何高速缓存中的块被划分成为块的组,其称作集合或者同余类(congruenceclass)。集合是其中可以驻留给定存储器块的一组高速缓存块。对于任何给定的存储器块,在高速缓存中存在唯一的集合,块可以根据预设的映射函数而映射至该唯一的集合中。在集合中块的数量是指高速缓存的关联性。由此,存储在高速缓冲存储器中的信息是以高速缓存线或者块的形式,其中示例性高速缓存线(块)包括地址域、状态位域、包含性位域以及用于存储实际程序指令以及操作数数据的值域。状态位域和包含性位域用以通过指示高速缓存中所存储的值的有效性来在多处理器计算机系统中维护高速缓存的一致性。地址域是相应存储器块的完整地址的子集。进入地址与地址域之一(当状态域位指明此线当前在高速缓存中有效)的比较匹配指示高速缓存“命中(hit)”。在高速缓存中的所有地址域的集合(以及有时状态位和包含性位域)被称作目录,并且所有值域的集合是高速缓存条目阵列。
如图1中所绘出,计算机系统100包括多个存储器源,其中包括在每个相应核(例如,16a、16b、46a、46b)处的L1高速缓冲存储器(例如,18a、18b、48a、48b)、在每个相应处理单元(例如,11、41)处的L2高速缓冲存储器(例如,12、42)、共享的L3高速缓存66以及在存储器控制器62处的缓冲存储器64。为了使用温度或者功率状况来供给共享高速缓存线,每个存储器源包括温度或者功率耗散传感器,该传感器用于用信号发送其温度或者功率状况。由此,功率/温度传感器(例如,17a、47a)放置在每个L1高速缓存(例如,18a、48a)处或者其内部。附加或者备选的是,功率/温度传感器(例如,13、43)放置在每个L2高速缓存(例如,12、42)处或者其内部;功率/温度传感器(例如,67)放置在每个L3高速缓存66处或者其内部;和/或功率/温度传感器(例如,63)放置在每个存储器控制器62处或者其内部。在一个示例实施方式中,每个功率/温度传感器形成为二极管,放置所述二极管以感测存储器源的温度,其中所述二极管的输出电压对于20-100℃的典型温度范围会在0.5-1.0V间变化。为了监控给定存储器源的温度,每个存储器源可以包括用于存储二极管输出电压的存储设备(例如,寄存器),或者可以连续地将存储器源是否超过温度或者功率耗散阈值的判断用信号发送至中央化目录65(将在下文详述)。由此,每个核(例如,16a、16b)监控由其相关联的功率/温度传感器(例如,17a、17b)所提供的功率或者温度状况信息。附加地或者备选地,每个处理单元(例如,11、41)监控由L2高速缓存功率/温度传感器(例如,13、43)所提供的功率或者温度状况信息,L3高速缓存66监控由L3功率/温度传感器67所提供的功率或者温度状况信息,和/或存储器控制器62监控由存储器控制器的功率/温度传感器63所提供的功率或者温度状况信息。
根据所选实施方式,功率耗散或者温度状态信息用以在多处理器系统中提供或者干预共享的高速缓存线,所述多处理器系统使用基于目录的一致性协议。为此,计算机系统100在存储器控制器62处包括中央化目录65,其通过维护具有线副本的所有高速缓冲存储器以及线状态的列表而协调高速缓冲存储器的访问。中央化目录65包括目录逻辑,该目录逻辑选择哪个核将返回线,并且向那个核发信号通知以使得该线干预至请求者。中央化目录65还包括控制逻辑,控制逻辑使用从每个存储器源获取的功率耗散或温度状态信息来选择“冷”存储器源,以便提供由两个或者更多存储器源所共享的被请求的高速缓存线,由此避免出现存储器源“过热”的情况。
为了进一步示出根据本发明的所选实施方式、在实现基于目录的一致性协议的多处理器系统中使用功率耗散或温度状况信息来提供或者干预共享高速缓存线,现在参考图2,在图2中描绘了在多处理器系统200中的不同核之间的示例信号流,其中多处理器系统200在用于监控高速缓存一致性的、基于目录的一致性协议中实现功率感知的线干预。在系统200中,多个核201、202、203、204可通信地耦合至存储器控制器211。在多处理器的基于目录的一致性协议中,来自第一核(例如,201)的针对高速缓存线的请求被发送至中央化目录210,该中央化目录210可以位于存储器控制器211中或者位于其他位置。中央化目录结构210保持具有该线副本的所有核以及线状态的列表。另外,中央化目录结构210采集来自每个核201、202、203、204的表明每个核功率耗散或者温度状况的热信号信息。响应于高速缓存线请求,中央化目录逻辑使用来自目录210的热信号信息和线状态信息来选择哪个核将返回线,以便通过选择“冷”核或者存储器控制器作为源来选择针对所请求的高速缓存线的源。所选择的源被目录210指示以发送所请求的线,并且相应地,目录中相应的线状态信息以及受影响的核被更新。
在图2示出的示例信号流中,第一核201通过将发起请求221发送至中央化目录210来请求高速缓存线。在该发起请求中,第一核201被视为请求方核。在接收到发起请求221后,中央化目录210具有先前维护的针对在核201、202、203、204中的每个高速缓冲存储器的线目录状态信息、以及针对每个核的热信号信息。例如,如果第二核202包含所请求的高速缓存线的无效的或者已修改的副本,则中央化目录210存储的状况信息标识特定核及其高速缓存线状况(例如,“i”或者“m”,其中“i”表示“无效”,而“m”表示已修改)。同样地,如果第三核203包含所请求的高速缓存线的共享副本,则中央化目录210存储的状况信息标识特定核及其高速缓存线状况(例如,核203:s),其中“s”表示“共享”。以类似方式,如果第四核204包含所请求的高速缓存线的独占副本,则中央化目录210存储的状况信息标识特定核及其高速缓存线状况(例如,核204:e),其中“e”表示“独占”。当然,两个或者更多的核(例如,核203和204)可以包含所请求的高速缓存线的共享副本,在此情况下,中央化目录210存储的状况信息标识这些核具有共享的或者“s”的高速缓存线状况。
如上所述,每个核可以向中央化目录210提供针对其相关联存储器源的热信号信息(T),诸如通过向中央化目录210发送热信号222-225。另外,存储器控制器211还可以向目录210提供其自身的热信号信息。在一个示例性实施方式中,多处理器中的每个核201-204以及存储器控制器211可以连续地或者定期地向目录210发送其是否已经超过功率耗散阈值的信号。这可以通过使用任何期望的监控机制以及报告机制来实现,诸如将来自功率/热二极管传感器的输出电压与预定的阈值电压进行比较,以便检测两种状态中的一种,这两种状态诸如H或者L来表示“高”或者“低”温度。在此情况下,在中央化目录210中可以使用单个位来存储热信号信息,如果需要额外的热或者功率耗散级别(即,很热、热、温和冷),则还可以使用附加位。
当接收到高速缓存线请求(例如,来自核201)时,中央化目录210使用控制逻辑来选择存储器源202、203、204、211中的哪个将向请求核201干预线。例如,热信号位可以馈送至位于中央目录210处的确定哪个共享核向请求主核提供线的控制逻辑/等效设置中。如果两个核(例如,203、204)共享该线,并且一个核“冷”而一个核“热”,则冷核(例如,203)将供给线。一旦选择了存储器源,则中央化目录210生成并发送指令至所选择的存储器源,以向请求核提供所请求的高速缓存线、以及用于提供的核和请求的核的新的线状态信息。在所请求的高速缓存线由两个核(例如,203和204)共享的示例中,中央化目录210可以向冷核203发送数据传输指令226,该数据传输指令226可以包括针对所请求的高速缓存线的新的线状态信息。作为响应,源核203将向目录210提供所请求的高速缓存线(例如,数据消息227),继而目录210向请求核201转发所请求的高速缓存线数据228以及用于被请求高速缓存线的新的线状态信息。应该理解,其他核也可以接收指令并传输数据,如229、230处所指示的。应该理解,如果存在可以供给共享线的两个或者更多“冷”核,则可以使用任何期望的平局决胜规则来选择线的源。如果所有共享核均为“热”并且数据在存储器控制器211的缓存器中,则存储器控制器211可以供给该线。
响应于目录响应指令226,提供核更新其针对所请求的高速缓存线的线目录状态以反映由于针对所请求的高速缓存线的源的选择而导致的任何状况变化。以类似方式,请求核处的线目录状态也进行更新以响应于目录的数据传输消息228。例如,如果针对高速缓存线的读取请求被当前存储有该高速缓存线的无效副本的存储器源接收,则此存储器源将不会被选择为源,并且线目录状态保持“无效”。代替的是,将从存储器控制器获取所请求的线,在此情况下,针对请求核的目录状态更新为“独占”。然而,如果针对高速缓存线的读取请求被当前存储有高速缓存线的已修改副本的存储器源接收,并且基于热信息选择该存储器源来干预高速缓存线,则在提供者核中的针对高速缓存线的线目录状态被更新为“无效”,并且针对请求核的线目录状态更新为“已修改”。如果针对高速缓存线的读取请求被当前存储有高速缓存线的共享副本或者独占副本的存储器源接收,并且基于热信息选择该存储器源来干预高速缓存线,则在提供者核中的针对高速缓存线的线目录状态被更新为“共享”(或者备选地,“无效”),并且针对请求核的线目录状态更新为“共享”(如果从“共享”提供者核获取)、或者更新为“独占”(如果从“独占”提供者核获取)。
当对高速缓存线的写入请求没有以共享的、独占的或者已修改的形式存储在请求核中时,提供核中的高速缓存线的线目录状态被更新为“无效”以响应于数据传输消息,同时请求核中的高速缓存线的线目录状态被更新为“独占”以响应于数据传输消息,除非从“已修改”提供者核获取,在此情况下,请求核中的高速缓存线的线目录状态更新为“已修改”。如果将被写入的线在请求核中已经是“共享”的,则向目录发出解除(Dclaim),这使得在其他共享者中的线无效,并且此线在请求核和目录中被更新为“已修改”。如果线在请求核中作为“独占”而存在,则在请求核中将其升级至“已修改”,并且通知目录。如果线在请求核中已经是“已修改”,则不需要发布解除或者升级请求。
应该理解,上述信号发送机制的实质可以利用各种命令结构和控制逻辑等效设置来实现,并且还可以在用于监控高速缓存一致性的基于目录的一致性协议中提供功率感知的线干预的益处。作为示例实现,图3提供了对于请求核和发送核的目录响应的示例表格列表300,以此响应于来自多处理器系统中的请求核的读取或者写入请求,其中所述多处理器系统在本发明所选的基于目录的一致性协议中实现功率感知的线干预。在表的第一列中,指定了高速缓存线请求的类型(例如,读取或者写入)。在第二列中,将每个存储器源处的被请求的高速缓存线的当前状态指定为无效(i)、共享(s)、已修改(m)或者独占(e)。另外,第二列指定了在每个存储器源处检测到的当前的热或者功率耗散状况:或者为低(L)温度或者为高(H)温度,当然还可以指定其他热条件。在第三列中,基于在第二列中所包含的值而生成的目录响应表示为提供被请求数据以及更新适当的线目录状态信息的指令。最后,第四列指定了在已经提供所请求的高速缓存线之后针对提供核(N)的新的线目录状态(i、s、m、e),而第五列指定了在提供所请求的高速缓存线之后的请求核(R)的新的线目录状态(i、s、m、e)。
为了进一步示出本发明的所选实施方式,图4是基于目录的一致性协议的步骤400的逻辑流程图,该步骤用以在多处理器系统中基于与存储器源相关联的功率或热条件来从多个存储器源向请求核供给高速缓存线。处理在步骤401处开始,诸如当请求核或者处理器正在运行需要来自存储器的数据的程序时。当需要访问存储器时,请求核/处理器向中央目录发送读取或者写入请求(步骤402),该中央目录可以位于存储器控制器的中央。作为响应,中央目录将针对每个核的热信号信息(先前从其他核所采集)以及线状态信息进行结合,以便通过使用热信号信息从“冷”核之中进行选择,来选择哪个响应核将提供所请求的高速缓存线。例如,目录响应可以采取目录响应消息的形式,诸如在表列表300的第三列中列出的。当接收到目录响应时,被选择的提供者核向请求核发送所请求的高速缓存线,并且针对每个核的目录线状态在请求核和提供核处以及在中央化目录处进行更新(步骤404),继而处理结束(步骤405),直到需要下一次存储器访问。
如在此所述,用于从低功率或者“冷”存储器源供给被请求的高速缓存线的程序指令或者代码可以在每个核处执行,其中存储器源定位和/或定位于中央化位置中,诸如存储器控制器。例如,多处理器系统中的每个高速缓冲存储器(例如,L1、L2、L3)和存储器控制器可以具有其自身的程序指令或者代码以用于监控其热或功率耗散状况、以及用于将该状况信息分发至适当的控制逻辑,用于在选择被请求数据的低功率源时使用。控制逻辑可以在单个位置处(诸如,存储器控制器)集中装载,或者可以分布在整个多处理器系统,从而该控制逻辑是共享的。
在此公开的用于多处理器数据处理系统的功率感知的线干预技术使用基于目录的一致性协议,以便基于每个高速缓冲存储器的温度和/或功率状况来供给高速缓存线。通过使用基于中央化目录的一致性方法,功率感知的线干预可以容易地适应于附加处理器,并且可以在使用较小带宽的情况下实现,而不需要比snoop一致性协议所需的更多的额外总线位。
本领域技术人员应该理解,本发明还可全部或者部分地实现为方法、系统或者计算机程序产品。由此,本发明可以采取完全硬件实施方式、完全软件实施方式(包括固件、驻留软件、微代码等)、或者软件和硬件方面相结合的实施方式,在此可以将其全部统称为“电路”、“模块”或者“系统”。此外,本发明可以采取计算机可用存储介质上的计算机程序产品的形式来实现,该计算机可用存储介质具有在介质中实现的计算机可用程序代码。例如,选择低功率或者低温度的存储器源来干预被请求的高速缓存线(该被请求的高速缓存线由多个存储器源来共享)的功能可以在存储在每个候选存储器源中的软件中实现,或者可以在集中存储在单个位置处的软件中实现。
针对示出和描述的目的而呈现了上文的描述。这并非旨在穷尽本发明或者将本发明限制于所公开的精确形式。根据上面的教导,可以进行各种修改和变化。旨在并非由此详细描述限制本发明的范围,而是通过所附权利要求书来限定本发明的范围。上文的说明书和示例实现提供了本发明构成的制造和使用的完整描述。由于在不脱离本发明的精神和范围的情况下可以实现本发明的多种实施方式,因而本发明由下文所附权利要求书来限定。
Claims (12)
1.一种用于在多处理器数据处理系统中干预共享高速缓存线的方法,包括:
在所述多处理器数据处理系统的操作期间,从请求处理器核生成针对第一高速缓存线的请求;
响应于接收到针对所述第一高速缓存线的请求,在中央化目录处识别存储有所请求的第一高速缓存线的副本的多个存储器源;
在所述中央化目录处,维护所述多个存储器源的每一个的线状态信息以及温度或者功率耗散值;
从所述多个存储器源中选择第一存储器源,以干预所述请求的第一高速缓存线,其中至少部分地基于具有可接受的温度或者功率耗散值,来选择所述第一存储器源;以及
从所述中央化目录发送选择消息,以指示所述第一存储器源干预所述请求的第一高速缓存线。
2.根据权利要求1所述的方法,其中选择第一存储器源包括:选择具有第一温度或者功率耗散值的第一存储器源,所述第一温度或者功率耗散值低于与第二存储器源相关联的第二温度或者功率耗散值。
3.根据权利要求1所述的方法,其中选择第一存储器源包括:至少部分地基于第一温度或者功率耗散值与一个或者多个其他的温度或者功率耗散值的比较,来选择冷存储器源,所述第一温度或者功率耗散值与所述第一存储器源相关联,而所述一个或者多个其他的温度或者功率耗散值与一个或者多个其他的存储器源相关联。
4.根据权利要求1所述的方法,其中所述多个存储器源包括多个高速缓冲存储器。
5.根据权利要求1所述的方法,其中所述多个存储器源的每一个包括传感器,所述传感器用于测量与所述存储器源相关联的温度或者功率耗散值。
6.根据权利要求4所述的方法,其中选择第一存储器源包括:如果所述多个高速缓冲存储器中任何一个都不具有可接受的温度或者功率耗散值,则选择具有可接受温度或者功率耗散值的存储器控制器来干预所述请求的第一高速缓存线。
7.根据权利要求1所述的方法,其中在所述中央化目录处维护线状态信息以及温度或者功率耗散值包括:从每个存储器源发送指示该存储器源是否已经超过预定义功率或者热阈值的信号。
8.根据权利要求1所述的方法,进一步包括:当来自所述请求处理器核的所述请求包括对所述第一高速缓存线的独占访问的请求时,使得所述中央化目录中针对所述多个存储器源的线状态信息无效。
9.一种多处理器数据处理系统,包括:
多个处理器,每个所述处理器包括一个或者多个高速缓冲存储器;
耦合至所述多个处理器的数据总线;
实现计算机程序代码的计算机可用介质,所述计算机可用介质耦合至所述数据总线,所述计算机程序代码包括用于在多处理器数据处理系统中干预共享高速缓存线的指令,所述指令执行步骤:
在所述多处理器数据处理系统的操作期间,从请求处理器核生成针对第一高速缓存线的请求;
响应于接收到针对所述第一高速缓存线的请求,在中央化目录处识别存储有所请求的第一高速缓存线的副本的多个存储器源;
在所述中央化目录处,维护针对所述多个高速缓冲存储器的每一个的线状态信息以及温度或者功率耗散值;
从所述多个高速缓冲存储器中选择第一高速缓冲存储器,以干预所述请求的第一高速缓存线,其中至少部分地基于具有可接受的温度或者功率耗散值,来选择所述第一高速缓冲存储器;以及
从所述中央化目录发送选择消息,以指示所述第一高速缓冲
存储器干预所述请求的第一高速缓存线。
10.根据权利要求9所述的数据处理系统,其中选择第一高速缓冲存储器包括:选择具有第一温度或者功率耗散值的第一高速缓冲存储器,所述第一温度或者功率耗散值低于与第二高速缓冲存储器相关联的第二温度或者功率耗散值。
11.根据权利要求9所述的数据处理系统,进一步包括位于每个高速缓冲存储器的传感器,所述传感器用于测量与所述高速缓冲存储器相关联的温度或者功率耗散值。
12.根据权利要求9所述的数据处理系统,其中所述传感器包括二极管。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/946,551 | 2007-11-28 | ||
US11/946,551 US20090138220A1 (en) | 2007-11-28 | 2007-11-28 | Power-aware line intervention for a multiprocessor directory-based coherency protocol |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101504628A true CN101504628A (zh) | 2009-08-12 |
CN101504628B CN101504628B (zh) | 2012-09-05 |
Family
ID=40670471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101781313A Expired - Fee Related CN101504628B (zh) | 2007-11-28 | 2008-11-24 | 用于干预共享高速缓存线的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20090138220A1 (zh) |
JP (1) | JP5315017B2 (zh) |
CN (1) | CN101504628B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105122226A (zh) * | 2013-03-15 | 2015-12-02 | 美光科技公司 | 基于存储器系统的热信息的存储器系统管理的系统及方法 |
WO2016201998A1 (zh) * | 2015-06-18 | 2016-12-22 | 华为技术有限公司 | 一种缓存分配、数据访问、数据发送方法、处理器及系统 |
CN107111557A (zh) * | 2014-11-25 | 2017-08-29 | 高通股份有限公司 | 在共享高速缓存存储器系统中提供共享高速缓存存储器分配控制 |
CN108027776A (zh) * | 2015-09-24 | 2018-05-11 | 高通股份有限公司 | 在多个主要装置间使用有条件干预维持高速缓存同调性 |
CN110168510A (zh) * | 2017-01-12 | 2019-08-23 | 国际商业机器公司 | 用于延长私有高速缓存中的高速缓存行的独占持有的设施 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4945611B2 (ja) * | 2009-09-04 | 2012-06-06 | 株式会社東芝 | マルチプロセッサ |
US9417794B2 (en) * | 2011-07-26 | 2016-08-16 | Apple Inc. | Including performance-related hints in requests to composite memory |
KR101840852B1 (ko) * | 2011-10-10 | 2018-03-22 | 삼성전자주식회사 | 모바일 장치의 표면 온도 관리 방법 및 멀티칩 패키지의 메모리 열관리 방법 |
US9122286B2 (en) | 2011-12-01 | 2015-09-01 | Panasonic Intellectual Property Management Co., Ltd. | Integrated circuit apparatus, three-dimensional integrated circuit, three-dimensional processor device, and process scheduler, with configuration taking account of heat |
US9275096B2 (en) | 2012-01-17 | 2016-03-01 | Apple Inc. | Optimized b-tree |
US9213643B2 (en) * | 2013-03-13 | 2015-12-15 | Applied Micro Circuits Corporation | Broadcast messaging and acknowledgment messaging for power management in a multiprocessor system |
US20150074357A1 (en) * | 2013-09-09 | 2015-03-12 | Qualcomm Incorporated | Direct snoop intervention |
US10318428B2 (en) | 2016-09-12 | 2019-06-11 | Microsoft Technology Licensing, Llc | Power aware hash function for cache memory mapping |
US20180210836A1 (en) * | 2017-01-24 | 2018-07-26 | Microsoft Technology Licensing, Llc | Thermal and reliability based cache slice migration |
US10241561B2 (en) | 2017-06-13 | 2019-03-26 | Microsoft Technology Licensing, Llc | Adaptive power down of intra-chip interconnect |
US11036413B1 (en) * | 2019-12-17 | 2021-06-15 | Micron Technology, Inc. | Memory sub-system temperature regulation |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5502838A (en) * | 1994-04-28 | 1996-03-26 | Consilium Overseas Limited | Temperature management for integrated circuits |
US5732215A (en) * | 1995-06-07 | 1998-03-24 | International Business Machines Corporation | System for equalizing operating temperature by allocating infrequently accessed data to the high temperature DASD and allocating frequently accessed data to the low temperature DASD |
US6014751A (en) * | 1997-05-05 | 2000-01-11 | Intel Corporation | Method and apparatus for maintaining cache coherency in an integrated circuit operating in a low power state |
US6438652B1 (en) * | 1998-10-09 | 2002-08-20 | International Business Machines Corporation | Load balancing cooperating cache servers by shifting forwarded request |
US6996491B2 (en) * | 2002-02-19 | 2006-02-07 | Sun Microsystems, Inc. | Method and system for monitoring and profiling an integrated circuit die temperature |
WO2003090089A1 (fr) * | 2002-04-22 | 2003-10-30 | Fujitsu Limited | Dispositif de memoire cache |
US6868485B1 (en) * | 2002-09-27 | 2005-03-15 | Advanced Micro Devices, Inc. | Computer system with integrated directory and processor cache |
JP2004126968A (ja) * | 2002-10-03 | 2004-04-22 | Fujitsu Ltd | 並列計算機のジョブスケジューリング装置 |
US7233880B2 (en) * | 2003-09-11 | 2007-06-19 | Intel Corporation | Adaptive cache algorithm for temperature sensitive memory |
US7676637B2 (en) * | 2004-04-27 | 2010-03-09 | International Business Machines Corporation | Location-aware cache-to-cache transfers |
JP3914230B2 (ja) * | 2004-11-04 | 2007-05-16 | 株式会社東芝 | プロセッサシステム及びその制御方法 |
JP2006285317A (ja) * | 2005-03-31 | 2006-10-19 | Tokyo Electric Power Co Inc:The | 負荷判定システム、負荷分散システムおよび異常検出システム |
JP4476876B2 (ja) * | 2005-06-10 | 2010-06-09 | 三菱電機株式会社 | 並列計算装置 |
US7535020B2 (en) * | 2005-06-28 | 2009-05-19 | Kabushiki Kaisha Toshiba | Systems and methods for thermal sensing |
US7784050B2 (en) * | 2006-03-09 | 2010-08-24 | Harris Technology, Llc | Temperature management system for a multiple core chip |
US7840821B2 (en) * | 2007-05-18 | 2010-11-23 | Globalfoundries Inc. | Method and apparatus for monitoring energy consumption of an electronic device |
-
2007
- 2007-11-28 US US11/946,551 patent/US20090138220A1/en not_active Abandoned
-
2008
- 2008-11-13 JP JP2008290605A patent/JP5315017B2/ja not_active Expired - Fee Related
- 2008-11-24 CN CN2008101781313A patent/CN101504628B/zh not_active Expired - Fee Related
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10089221B2 (en) | 2013-03-15 | 2018-10-02 | Micron Technology, Inc. | Systems and methods for memory system management based on information of a memory system |
US11119908B2 (en) | 2013-03-15 | 2021-09-14 | Micron Technology, Inc. | Systems and methods for memory system management |
US10713156B2 (en) | 2013-03-15 | 2020-07-14 | Micron Technology, Inc. | Systems and methods for memory system management |
TWI594183B (zh) * | 2013-03-15 | 2017-08-01 | 美光科技公司 | 基於記憶體系統熱資訊之記憶體系統管理之系統及方法 |
CN105122226A (zh) * | 2013-03-15 | 2015-12-02 | 美光科技公司 | 基于存储器系统的热信息的存储器系统管理的系统及方法 |
US9767012B2 (en) | 2013-03-15 | 2017-09-19 | Micron Technology, Inc. | Systems and methods for memory system management based on thermal information of a memory system |
CN105122226B (zh) * | 2013-03-15 | 2018-02-02 | 美光科技公司 | 基于存储器系统的热信息的存储器系统管理的系统及方法 |
CN107111557A (zh) * | 2014-11-25 | 2017-08-29 | 高通股份有限公司 | 在共享高速缓存存储器系统中提供共享高速缓存存储器分配控制 |
CN107111557B (zh) * | 2014-11-25 | 2018-09-14 | 高通股份有限公司 | 在共享高速缓存存储器系统中提供共享高速缓存存储器分配控制 |
CN106326143B (zh) * | 2015-06-18 | 2019-08-27 | 华为技术有限公司 | 一种缓存分配、数据访问、数据发送方法、处理器及系统 |
CN106326143A (zh) * | 2015-06-18 | 2017-01-11 | 华为技术有限公司 | 一种缓存分配、数据访问、数据发送方法、处理器及系统 |
WO2016201998A1 (zh) * | 2015-06-18 | 2016-12-22 | 华为技术有限公司 | 一种缓存分配、数据访问、数据发送方法、处理器及系统 |
CN108027776A (zh) * | 2015-09-24 | 2018-05-11 | 高通股份有限公司 | 在多个主要装置间使用有条件干预维持高速缓存同调性 |
CN108027776B (zh) * | 2015-09-24 | 2021-08-24 | 高通股份有限公司 | 在多个主要装置间使用有条件干预维持高速缓存同调性 |
CN110168510A (zh) * | 2017-01-12 | 2019-08-23 | 国际商业机器公司 | 用于延长私有高速缓存中的高速缓存行的独占持有的设施 |
CN110168510B (zh) * | 2017-01-12 | 2023-05-26 | 国际商业机器公司 | 用于延长私有高速缓存中的高速缓存行的独占持有的设施 |
Also Published As
Publication number | Publication date |
---|---|
CN101504628B (zh) | 2012-09-05 |
US20090138220A1 (en) | 2009-05-28 |
JP5315017B2 (ja) | 2013-10-16 |
JP2009134716A (ja) | 2009-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101504628B (zh) | 用于干预共享高速缓存线的方法和系统 | |
US7870337B2 (en) | Power-aware line intervention for a multiprocessor snoop coherency protocol | |
US6591321B1 (en) | Multiprocessor system bus protocol with group addresses, responses, and priorities | |
US6571322B2 (en) | Multiprocessor computer system with sectored cache line mechanism for cache intervention | |
US6018791A (en) | Apparatus and method of maintaining cache coherency in a multi-processor computer system with global and local recently read states | |
US5940856A (en) | Cache intervention from only one of many cache lines sharing an unmodified value | |
KR100318104B1 (ko) | 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템 | |
JP5078396B2 (ja) | 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法 | |
KR100293136B1 (ko) | Smp버스의최근판독상태에서의캐시라인들의공유개입방법 | |
US5940864A (en) | Shared memory-access priorization method for multiprocessors using caches and snoop responses | |
US6662275B2 (en) | Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with store-through data cache | |
US10423528B2 (en) | Operation processing device, information processing apparatus, and control method for operation processing device | |
US20130205099A1 (en) | Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration | |
US7958309B2 (en) | Dynamic selection of a memory access size | |
US5943685A (en) | Method of shared intervention via a single data provider among shared caches for SMP bus | |
US6574714B2 (en) | Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with write-back data cache | |
EP2224343B1 (en) | Data processing system | |
CN101853227A (zh) | 基于空间要求的目标报告的mmio请求处理的机会改进 | |
US20070168620A1 (en) | System and method of multi-core cache coherency | |
KR20210041485A (ko) | 데이터 신호 경로 및 태그 신호 경로를 갖는 메모리 인터페이스 | |
US6615321B2 (en) | Mechanism for collapsing store misses in an SMP computer system | |
US7464227B2 (en) | Method and apparatus for supporting opportunistic sharing in coherent multiprocessors | |
US8397029B2 (en) | System and method for cache coherency in a multiprocessor system | |
JPH09128346A (ja) | 階層バスシステム | |
CA2286364A1 (en) | Read operations in multiprocessor computer system |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120905 Termination date: 20181124 |