CN100430907C - 用于减小高速缓存架构中的延迟和窥探代价的方法 - Google Patents

用于减小高速缓存架构中的延迟和窥探代价的方法 Download PDF

Info

Publication number
CN100430907C
CN100430907C CNB2006100059354A CN200610005935A CN100430907C CN 100430907 C CN100430907 C CN 100430907C CN B2006100059354 A CNB2006100059354 A CN B2006100059354A CN 200610005935 A CN200610005935 A CN 200610005935A CN 100430907 C CN100430907 C CN 100430907C
Authority
CN
China
Prior art keywords
cache memory
cache
data
communication buffer
piece
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.)
Expired - Fee Related
Application number
CNB2006100059354A
Other languages
English (en)
Other versions
CN1855070A (zh
Inventor
阿尔泊·布约克托苏诺格鲁
胡志刚
裘德·A.·瑞沃斯
约翰·T.·鲁宾逊
沈晓卫
维加雅拉克施米·斯里尼瓦桑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1855070A publication Critical patent/CN1855070A/zh
Application granted granted Critical
Publication of CN100430907C publication Critical patent/CN100430907C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/27Using a specific cache architecture
    • G06F2212/271Non-uniform cache access [NUCA] architecture

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

用于减小高速缓存架构中的延迟和窥探代价的方法
技术领域
本发明一般涉及多处理器系统中的高速缓冲存储器的管理和存取。更具体地说,本发明涉及多核心非均匀高速缓冲存储器系统(multiplecore non-uniform cache memory system)中的数据查询。
背景技术
高性能通用架构正在朝着以单个芯片上的多个处理核心为特征的设计的方向发展。这样的设计具有提供较高的峰值吞吐量、较容易的设计伸缩性、以及较高的性能/功率比的潜能。具体地说,这些新出现的多核心芯片将以这样的事实为特征,即这些核心一般必须多少有些共享第二级(L2)高速缓存架构但却具有非均匀的存取延迟。L2高速缓冲存储器结构在芯片上的多个核心之间可以是私有的或共享的。即使在它们被共享的情况下,为了实现最优设计,必须在多个核心之间分配L2高速缓存的片断(slice)。因此,在共享或私有的L2高速缓存的情况下,每个核心将拥有在物理上近的L2高速缓存分区和在物理上远的L2高速缓存分区,从而导致非均匀延迟的高速缓存架构。因此,可以将具有非均匀延迟的高速缓存架构的这些多核心芯片称作多核心NUCA芯片。
由于将多个核心放到管芯(die)上的发展趋势,因此已经认识到有关提供这样的技术的需要,其中该技术用于优化多核心NUCA芯片中的多个核心之间的互连、多个NUCA芯片之间的互连框架、以及特别地,每个核心如何与多核心NUCA架构的其余部分交互。对于给定数目的核心,给定多核心环境中的“最佳”互连架构取决于多种因素,包括性能目标、功率/面积预算、带宽要求、技术、以及甚至是系统软件。然而,通过L2高速缓存架构的组织和存取方式较好地解决了大量的性能、面积以及功率问题。在没有必要的优化的情况下,由多核心NUCA芯片构建的系统可能受到以下困扰:
高的内部L2高速缓存带宽和存取延迟要求;
高的L2到L3高速缓存带宽和存取延迟要求;
高的窥探要求和代价(cost);
不确定的L2、L3存取延迟。
因此,已经认识到有关解决和克服诸如上面概述的缺陷和缺点的普遍需要。
发明内容
根据本发明的至少一个优选实施例,主要考虑了这样的方法和装置,其用于在基于多核心非均匀高速缓存架构的系统中实现降低的L2/L3高速缓冲存储器带宽要求、较低的窥探要求和代价、减小的L2/L3高速缓冲存储器存取延迟、远L2高速缓冲存储器分区查询存取时间的节省、以及针对L2高速缓冲存储器数据的相当确定的延迟。
在具体实施例中,假定在多核心非均匀第二级(L2)高速缓冲存储器(多核心NUCA)系统的数据查询中与带宽和存取延迟相关联的代价、以及不确定的代价可能是非常高的,在此主要考虑了提供减少的存储器带宽要求、较低的窥探要求和代价、减少的第二级(L2)和第三级(L3)高速缓冲存储器存取延迟、远L2高速缓冲存储器的查询存取时间的节省、以及针对L2高速缓冲存储器的数据的相当确定的延迟。
根据本发明的至少一个实施例,在多核心非均匀高速缓冲存储器系统中引入了L2/L3通信缓冲器(L2/L3通信缓冲器)。该缓冲器(其在L2高速缓冲存储器分区之间是分布或集中的)保留从L3高速缓冲存储器或从多核心NUCA L2芯片之外到L2高速缓冲存储器中的进入数据的记录,以便当处理器核心需要来自L2高速缓冲存储器的数据时,它能够简单地指出哪个L2高速缓存分区具有该数据并且以更确定的方式进行通信以获取该数据。理想地,近L2高速缓冲存储器目录和L2/L3通信缓冲器之中的并行搜索将会提供关于对应的数据块当前是否存在于L2高速缓冲存储器结构中的答案。
总而言之,本发明的一方面提供了一种用于提供高速缓存管理的设备,该设备包括:缓冲器装置;该缓冲器装置被适配成:记录从第二高速缓冲存储器到第一高速缓冲存储器中的进入数据;如果在第一高速缓冲存储器中发生命中(hit),则一旦提示对应的数据,就传达在第一高速缓冲存储器中的数据位置;以及如果在第一高速缓冲存储器中发生缺失(miss),则引用(refer to)第二高速缓冲存储器。
本发明的另一方面提供了一种用于提供高速缓存管理的方法,该方法包括以下步骤:记录从第二高速缓冲存储器到第一高速缓冲存储器中的进入数据;如果在第一高速缓冲存储器中发生命中,则一旦提示对应的数据,就传达在第一高速缓冲存储器中的数据位置;以及如果在第一高速缓冲存储器中发生缺失,则引用第二高速缓冲存储器。
此外,本发明的另一方面提供了一种可由机器读取的程序存储装置,其有形地包含了可由机器执行的指令程序,以便执行用于提供高速缓存管理的方法步骤,该方法包括以下步骤:记录从第二高速缓冲存储器到第一高速缓冲存储器中的进入数据;如果在第一高速缓冲存储器中发生命中,则一旦提示对应的数据,就传达在第一高速缓冲存储器中的数据位置;以及如果在第一高速缓冲存储器中发生缺失,则引用第二高速缓冲存储器。
为了更好地理解本发明及其其它和更多特征和优点,参考下面结合附图的描述,并且将在所附权利要求中指出本发明的范围。
附图说明
图1a提供了具有共享的L2高速缓冲存储器架构的单芯片多核心架构的示意图。
图1b提供了具有私有的L2高速缓冲存储器架构的单芯片多核心架构的示意图。
图2提供了包括四个处理器核心和对应的L2高速缓冲存储器结构的单芯片多核心架构的示意图。
图3提供了包括四个处理器核心和对应的L2高速缓冲存储器结构的单芯片多核心架构的示意图,其中用分布式L2/L3通信缓冲器来改进每个L2高速缓冲存储器。
图4提供了包括四个处理器核心和对应的L2高速缓冲存储器结构的单芯片多核心架构的示意图,其中用与所有L2高速缓存结构等距离的集中式L2/L3通信缓冲器来改进芯片。
图5提供了在分布式L2/L3通信缓冲器的情况下,多核心NUCA芯片中的L2高速缓冲存储器存取的流程图。
图6提供了在分布式L2/L3通信缓冲器的情况下,从L3高速缓冲存储器到L2高速缓冲存储器中的高速缓存块分配的处理。
图7提供了在集中式L2/L3通信缓冲器的情况下,多核心NUCA芯片中的L2高速缓冲存储器存取的流程图。
图8示出了在集中式L2/L3通信缓冲器的情况下,从L3高速缓冲存储器到L2高速缓冲存储器中的高速缓存块分配的处理。
图9提供了多核心NUCA系统的示意图,其利用L2/L3通信缓冲器来支持高速缓存块的远程供应(sourcing)。
图10提供了针对图9所述的系统,父节点请求以独占/修改模式无效或获取块的流程图。
图11提供了针对图9所述的系统,远程客户端节点请求以独占/修改模式无效或获取块的流程图。
具体实施方式
根据本发明的至少一个优选实施例,涉及了多核心非均匀高速缓冲存储器架构(多核心NUCA),尤其是群集化多处理(CMP)系统,其中如图1所示,芯片包括与多个第二级(L2)高速缓存相关联的多个处理器核心。由这样的多核心NUCA芯片构建的系统还可以包括芯片外的第三级(L3)高速缓存(和/或存储器)。另外,可以假定,L2高速缓存具有一个公共全局空间,但在群集的不同核心之间被近似地划分。在该系统中,可能以非均匀的存取时间完成对驻留在L2中的高速缓存块的存取。一般地,L2对象将距离给定的处理器核心或近或远。因此,在芯片范围的L2高速缓存中搜索数据可能涉及从核心/L2对到获得该数据的不确定跳跃(hop)数。因此,多核心NUCA系统中L2和外部的存取和通信潜在地受到较高的L2/L3带宽要求、较高的L2/L3存取延迟、较高的窥探代价、以及不确定的存取延迟的困扰。
单芯片多核心架构的L2高速缓冲存储器架构可以如图1(a)所示是共享的(120),或者如图1(b)所示是私有的(150),或者是这两者的组合。在这种情况下,共享L2高速缓存架构描述了这样的设置,其中多个处理器核心共享一个均匀L2高速缓存,其被置于公共总线上,具有单个目录/标签存储装置。在该情况下,从任意处理器核心到L2高速缓冲存储器的任意部分的存取延迟对于所有处理器核心是固定的。
共享的高速缓存在共享高速缓存容量方面是高效的,但是要求高带宽和关联性。这是由于一个高速缓存服务多个处理器,并且用于避免潜在的冲突缺失。由于从每个处理器核心到高速缓存的任意部分的存取是固定的,因此即使当所寻找的数据存在于高速缓存中,共享的高速缓存也具有高的存取延迟。私有的L2高速缓存架构是其中在多个处理器核心之间唯一地划分L2高速缓存,每个处理器核心具有它自己的地址空间和目录/标签存储装置,并且相互独立地工作。处理器首先向其私有的L2高速缓冲存储器提出请求,发生针对该私有的L2高速缓冲存储器的目录查询,并且在缺失之后才将该请求转发到该配置中的其它L2高速缓存结构。私有的高速缓存有效地与处理器核心耦接(并且通常没有要仲裁的总线),因此确实提供了快速存取。由于它们的限制特性,私有的高速缓存往往呈现较差的高速缓存效率和较长的通信延迟。具体地说,如果给定的处理器核心没有高效地使用其L2私有高速缓存而其它处理器核心需要更多的L2高速缓存空间,则没有办法利用较少使用的高速缓存空间。
可选的、有吸引力的用于多核心芯片的L2高速缓冲存储器组织是这样的高速缓存NUCA系统,其中正如图1b)的私有高速缓存方案所示,在处理器核心之间分配单地址空间L2高速缓存及其标签。在该情况下,每个高速缓存分区将潜在地拥有地址空间的完全视图,并且因此所有高速缓存分区可以彼此作为镜像。因此,存在相对于处理器核心的近和远高速缓存段的概念。同样地,从处理器核心到芯片上的各个L2高速缓存段存在多个延迟。基本上,给定的块地址应当跨越所有高速缓存分区而映射到对应的位置。
虽然在本发明的讨论中使用了示例性的多核心非均匀高速缓冲存储器(多核心NUCA)系统,但是应当理解,本发明可以应用于在芯片上包括多个处理器的其它芯片多处理器(CMP)和对称多处理器(SMP)系统,和/或一般的多处理器系统。
多核心NUCA系统中的带宽、存取延迟、以及数据查询的不确定代价可以使用传统的方法200,通过如图2所示的L2高速缓冲存储器存取中所涉及的步骤来说明。一个这样的L2高速缓冲存储器存取查询将涉及以下步骤。假定在核心/L2高速缓冲存储器对A 201中发生近L2高速缓冲存储器查询,并且没有找到数据。在A 201中的这种近L2高速缓冲存储器缺失将导致窥探请求顺序地以顺时针方向被发送到核心/L2高速缓冲存储器对B 202、C 203、D 204。假定在C 203中将存在远L2高速缓冲存储器命中,查询仍然会顺序地发生在B 202和C 203中。在这种情况下,以两个跳跃将目标数据从C 203递送到A 201。如果没有远L2高速缓存命中,则随后将把该请求转发到L3控制器205(在A 201、B 202、C 203和D 204中的顺序查询之后),这将执行L3目录查询。另外,如果L2和L3缺失,则外出请求队列206将捕获该地址并且然后放到存储器上。明显地,这个方案需要较多的L2带宽,发出较多的窥探请求,并且使L2高速缓冲存储器的数据存取在延迟和跳跃数上都不确定。
可选地,再次假定在A 201中发生近L2高速缓冲存储器查询,并且没有找到数据。A 201中的近L2高速缓冲存储器缺失将导致将窥探请求置于总线上,以便在B 202、C 203、以及D 204之中进行并行查询。即使将在C 203中发生远L2高速缓冲存储器命中,所有其它的高速缓存也必须查询该数据。尽管这个方案减轻了与所讨论的现有方案相关联的延迟和一定程度的不确定问题,但在该方案中,仍然存在较多的带宽和被置于总线上的窥探请求。具体地说,必须发生的并行查询将受到核心/L2高速缓冲存储器对B 202、C 203和D 204之中最慢的查询时间的限制;并且这会潜在地影响对数据的总体延迟。该方案仍然要求较多的L2带宽和较多的窥探请求。
根据本发明的至少一个优选实施例,其目的是提供减少的L2/L3高速缓冲存储器带宽要求、较低的窥探要求和代价、减少的L2/L3高速缓冲存储器存取延迟、远L2高速缓冲存储器分区查询存取时间的节省、以及针对L2高速缓冲存储器数据的相当确定的延迟。
根据本发明的优选实施例,优选地提供了可以被称作L2/L3通信缓冲器的装置,以下将其简称为“L2/L3通信缓冲器”。L2/L3通信缓冲器是芯片上的集中式L2-L3目录的创新近似。基本上,L2/L3通信缓冲器保留从L3高速缓冲存储器到L2高速缓冲存储器中的进入数据的记录,以便当处理器核心需要来自L2的数据时,其能够简单地指出哪个L2分区具有该数据并且以更确定的方式进行通信以获取该数据。因此,在理想且确切(exact)的场景中,当近L2高速缓存目录和L2/L3通信缓冲器之中的聚合搜索产生缺失时,则必须将请求传递到L3高速缓存目录和用于存取的控制器。该缓冲器可以为分布式300(如图3所示)或集中式400(如图4所示)。
在分布式方案300的情况下,每个L2目录被指派缓冲器301的一部分。当块首先被分配到或被带入(brought into)到芯片上的给定L2高速缓存中时,接收L2(其实际上是进入数据的拥有者或被指派者)将向其它的L2/L3通信缓冲器301传达它拥有给定数据对象或块。可以通过基于环或点对点的广播来实现该通信。其它L2/L3通信缓冲器301将存储该数据块地址和具有该数据的驻留高速缓存的L2/核心ID。如果块的拷贝后来在相同芯片中以共享模式从一个L2高速缓存移到其它L2上,则将不需要更新其它L2/L3通信缓冲器301中的存储状态。然而,如果由另一L2以独占或修改的模式获取块,则需要更新其它L2/L3通信缓冲器中的状态。
在集中式方案400的情况下,一个集中式缓冲器420可以被布置成与该结构中的所有L2目录等距离。该结构420将需要是多端口的并且高度同步,以便确保竞争问题不会不利地影响其性能。当对象或块首先从L3被分配到L2中时,则在L2/L3通信缓冲器420中输入表示哪个L2拥有该数据的条目。同样地,L2/L3通信缓冲器420的条目将包括该数据块地址和驻留L2/核心ID。正如分布式方案一样,当另一L2随后以独占或修改的模式要求(claim)该数据时,则将需要更新L2/L3通信缓冲器420中的该条目,以便反映这一点。
L2/L3通信缓冲器301420中的条目的可接受大小和数目主要取决于资源的可用性,追求性能改进的程度,并且在不保留所有条目的情况下,如何最好地捕获并利用正在运行的工作负载的内在局域性。
为了实现采用L2/L3通信缓冲器的真正优点,可能需要连接单芯片系统中的多个处理器和高速缓存的互连网络,以适应于L2/L3通信缓冲器的使用和操作。根据本发明的至少一个优选实施例的在多核心NUCA系统中L2/L3通信缓冲器的基本使用和操作如下所述。L2/L3通信缓冲器为分布式或集中式;在此考虑了在基于环或点对点的L2高速缓存系统中的互连网络。另外,在远程高速缓存之中的远程数据查询可以是串行或并行的。(注意:这里所采用的术语“远程”或“远”简单地指代相同多核心NUCA芯片上的其它L2高速缓存。)
在具有分布式L2/L3通信缓冲器的多核心NUCA系统中,对L2高速缓存请求的服务(500)可以优选地如下进行:
1.将L2高速缓存请求提供给本地L2高速缓存目录和本地L2通信缓冲器(510)。在两个结构中同时发生并行查询。
2.本地L2高速缓存中的缺失(520)但是L2/L3通信缓冲器中的命中(530)表示远程/远L2高速缓存命中。
2a.对于远L2中的命中,系统互连网络确定请求递送(例如,点对点或基于环)。
2b.基于系统互连网络,将请求直接传送到目标L2高速缓冲存储器分区(540)。这可能是单跳跃或多跳跃。(可以导致减少的窥探、地址广播、以及不必要的串行或并行地址查询)。
3.基于系统互连网络,目标L2高速缓冲存储器分区将返回数据(555)。
3a.对于点对点网络,一旦总线被仲裁,就可以以单跳跃发送数据。
3b.对于基于环的网络,可以基于与请求节点的距离而以多跳跃发送数据。
4.本地L2(520)和L2/L3通信缓冲器(530)中的缺失可以表示整个L2缺失,将请求转发到L3控制器(535),其也并行执行L3目录查询。
5.外出请求队列捕获该地址,并且如果显示出数据不存在于L3高速缓冲存储器中(545),则:
5a.对于单芯片多核心NUCA系统,从存储器获取数据;
5b.对于多芯片多核心NUCA系统,将地址发送到多芯片互连网络。
如下所述,集中式L2/L3通信缓冲器的实际使用和操作不同于如上所述的分布式使用。基本上,如下所述的方案减小了保留L2/L3通信缓冲器的累积信息所需的芯片上的存储器区域。然而,它要求至少n个存储器端口(对于n节点系统)和每个循环的多个查询。
因此,在具有集中式L2/L3通信缓冲器的多核心NUCA系统中,对L2高速缓存请求的服务(700)可以优选地如下进行:
1.将L2高速缓存请求提供给本地L2高速缓存目录和集中式L2/L3通信缓冲器(710)。在两个结构中同时发生并行查询。
2.本地L2高速缓存分区中的命中(720)以及L2/L3通信缓冲器中的命中(730)。总是本地L2高速缓存命中优先,放弃L2/L3通信缓冲器命中,并且将数据递送到请求处理器(725)。
3.本地L2高速缓冲存储器中的缺失(720)但是L2/L3通信缓冲器中的命中(730)表示远程/远L2高速缓存命中(740)。
3a.对于远L2中的命中,系统互连网络确定请求递送(例如,点对点或基于环)。
3b.基于系统互连网络,将请求直接传送到目标L2高速缓冲存储器分区(740)。(可以导致减少的窥探、地址广播、以及不必要的串行或并行地址查询)。
4.基于系统互连网络,目标L2将返回数据(755)。
4a.对于点对点网络,一旦总线被仲裁,就可以以单跳跃发送数据。
4b.对于基于环的网络,可以基于与请求节点的距离而以多跳跃发送数据。
5.L2/L3通信缓冲器中的缺失可以表示整个L2缺失,将请求转发到L3控制器(735),其也并行执行L3目录查询。
6.外出请求队列捕获该地址,并且如果显示出数据不存在于L3高速缓冲存储器中(745),则:
6a.对于单芯片多核心NUCA系统,从存储器获取数据;
6b.对于多芯片多核心NUCA系统,将地址发送到多芯片互连网络。
如上所述,在芯片上的多核心NUCA系统中采用的互连网络可以对L2/L3通信缓冲器的性能具有不同的影响。下面讨论基于环的网络架构或点对点网络架构的预期结果。本领域的技术人员将能够推导出各种其它不同网络架构的效果。
针对基于环的架构,显然地,对于服务L2高速缓冲存储器请求有很多好处,其最少包括以下好处:
-L2/L3通信缓冲器使数据查询问题成为确定性问题。
-减少了必须发生的实际L2高速缓冲存储器查询的次数。
-可能的点对点地址请求递送。
-可能的以多跳跃的数据递送。
-关于数据所在位置的确定性知识提供了延迟知晓的数据存取方案和可能的芯片上的功率节省,并且加速了对L3高速缓冲存储器和外部的存取。
另一方面,如果该架构支持所有L2高速缓存节点之间的单跳跃点对点通信,则在此考虑的方案将因此实现理想的操作。
至少由于以下原因,服务L2高速缓冲存储器请求可能大大受益:
-L2/L3通信缓冲器使数据查询问题成为确定性问题。
-减少了必须发生的实际L2高速缓冲存储器查询的次数。
-可能的点对点地址请求递送。
-可能的点对点或(多跳跃)数据递送。
-关于数据所在位置的确定性知识可以导致芯片上的窥探的减少、知晓延迟的数据查询,并且加速了对L3和外部的存取。
优选地,L2/L3通信缓冲器的大小和容量将取决于期望的性能和可以为该结构分配的芯片面积。该结构可以是确切性(exact)的,即分布式L2/L3通信缓冲器的累计条目或集中式L2/L3通信缓冲器的条目捕获在NUCA芯片L2高速缓冲存储器中驻留的所有块。另一方面,L2/L3通信缓冲器可以是预测性的,其中使用了较小的L2/L3通信缓冲器,以便试图仅仅捕获有关在L2高速缓存系统中有效(actively)使用的高速缓存块的信息。在使用预测性方案的情况下,如前面章节所示的L2/L3通信缓冲器使用/操作过程将必须改变,以便反映这一点。在分布式L2/L3通信缓冲器的情况下,可以如下变更步骤4:
4.本地L2和L2/L3通信缓冲器中的缺失将要求将请求并行转发到远L2高速缓存结构和L3控制器,其也并行执行L3目录查询。
4a.如果远L2以命中响应,则取消L3高速缓存存取。
类似地,在集中式L2/L3通信缓冲器的情况下,可以如下改变步骤5:
5.L2/L3通信缓冲器中的缺失将要求将请求并行转发到远L2和L3控制器,其也并行执行L3目录查询。
5a.如果远L2以命中响应,则取消L3存取。
显然地,与预测性型式相比,能够支持确切性L2/L3通信缓冲器可以极大地提高性能,并且有可能可以极大地节省功率。
在优选实施例中,可以如下构造L2/L3通信缓冲器:
被组织成关联搜索结构;设置关联或完全关联结构,以高速缓存块地址或标签进行索引。
高速缓存块条目的L2/L3通信缓冲器条目由被称作块存在信息的元组条目(块地址或标签、主节点(home node)(核心/L2高速缓存)ID)标识。
仅仅如下改变高速缓存块的条目:
无效,当从NUCA芯片的L2高速缓存系统中完全逐出块时;
修改,当不同节点以独占或修改的模式获取块时。
在确切性L2/L3通信缓冲器方案中,
由于L2/L3通信缓冲器应该能够保存L2高速缓存系统中所有可能的L2块,因此不需要替换策略。
在预测性L2/L3通信缓冲器的方案中,
替换策略是LRU,
可以采用其它过滤技术来帮助块逗留性(stickiness),从而具有高使用和局域性的高速缓存块将倾向于留在缓冲器中。
下面描述根据本发明的至少一个实施例的L2/L3通信缓冲器的条目分配和管理。
对于分布式L2/L3通信缓冲器600,当高速缓存块首先被分配到或被带入到芯片上的给定L2高速缓存中(610)时,接收L2高速缓存结构(其被认为是块的拥有者或父)将把该块安置到该结构的相应组中,并且根据需要更新高速缓存状态(620)。接收L2高速缓存汇编块存在信息(块地址或标签、主节点(核心/L2高速缓存)ID)。然后,接收L2高速缓存将块存在信息发送(630)到其它的L2/L3通信缓冲器301,从而宣告该节点拥有给定数据对象。可以通过基于环或点对点的广播来实现发送块存在信息。接收L2/L3通信缓冲器301将存储块存在信息。如果数据对象的拷贝后来在相同芯片中以共享模式从父L2高速缓存移到其它L2高速缓存上,则将不需要更新其它L2/L3通信缓冲器301中的存储状态。
对于集中式L2/L3通信缓冲器800,当块首先被分配到或被带入到芯片上的给定L2高速缓存中(810)时,接收L2高速缓存结构(其被认为是块的拥有者或父)将把该块安置到该结构的相应组中,并且根据需要更新高速缓存状态(820)。接收L2高速缓存汇编块存在信息(块地址或标签、主节点(核心/L2高速缓存)ID)。然后,接收L2高速缓存将块存在信息发送(830)到中央L2/L3通信缓冲器420,从而宣告该节点拥有给定数据对象。正如分布式方案一样,当另一L2随后以独占或修改的模式要求数据时,将需要更新L2/L3通信缓冲器420中的条目,以反映这一点。
在如上所述的具有多个L2高速缓冲存储器结构的多处理器系统中,以共享状态保存的高速缓存线/块在L2高速缓存系统中可以具有多个拷贝。当节点或处理器中的一个随后以独占或修改的模式请求该块时,则系统通过无效其它L2高速缓存中的拷贝而向请求处理器或节点准予独占或修改状态存取。在L2高速缓存级别的高速缓存块的复制确实潜在地影响各个高速缓存结构容量,从而导致较大的系统范围的带宽和延迟问题。通过L2/L3通信缓冲器的使用,以共享模式请求高速缓存块/行的节点可以决定将高速缓存块直接地远程供应(source)到其第一级(L1)高速缓存中,而无需将高速缓存块的拷贝分配到其L2高速缓存结构中。
图9提供了在分布式L2/L3通信缓冲器909的情况下多核心NUCA系统中的远程高速缓存块供应的优选实施例900。图9描述了形成多核心NUCA系统的多个节点901、902、903。每个节点包括处理器核心905、第一级(L1)高速缓存906、第二级(L2)高速缓存907,它们全都通过适当的互连网络908链接在一起。L1高速缓存中的每个高速缓存块条目具有与其相关联的新位,即远程父位(RPb)913。另外,L2高速缓存中的每个高速缓存块条目具有与其相关联的新位,即远程子位(RCB)915。另外,每个L2高速缓存结构具有与其相关联的L2/L3通信缓冲器909和远程存在缓冲器(RPB)910。远程存在缓冲器910只是针对从其它节点远程供应到保存RPB的L2高速缓存的对应L1高速缓存中的高速缓存块的L2高速缓存块地址或标签的集合。
对于远程供应的操作和管理,假定块i最初被分配到节点B 902内的L1高速缓存916和L2高速缓存914中,如图所示。假定节点A 901的处理器核心905决定以共享模式获取块i。与传统的方案不同,节点B的L2高速缓存将块i的拷贝直接转发到节点A的处理器核心905和L1高速缓存906,而不将拷贝分配并保存在节点A的L2高速缓存907处。另外,节点B的L2高速缓存将把其块i的拷贝的远程子位(RCB)915设为1,从而表示其子远程驻留在L1高速缓存中。当新块i912被分配到节点A的L1高速缓存906中时,将该块的关联远程父位913设为1,从而表示它是在节点A的L2高速缓存中没有直接父的高速缓存块。另外,在节点A的远程存在缓冲器910中,输入块i的地址/标签作为该缓冲器中的条目。节点A的处理器905然后可以前进并且根据需要使用块i中的数据。应当认识到,按照如上所述的步骤,多核心NUCA系统中的其它节点也可以请求并获取进入到其L1高速缓存中的块i的拷贝。
从在节点B和节点A之间涉及块i的事务的前面描述中,可以认为节点A是客户端。节点B保留块i的父,并且在该事务中可以被描述为服务器。现在,假定服务器或客户端需要以独占或修改的状态无效块i或者获取块i。
图10中的事件流1000描述了如果节点B以独占/修改的模式无效或获取块i(1005),如何实现块i的状态一致。节点B的L2高速缓存首先将检查块的远程子位(1010)。如果RCB被设置(1015),从而暗示在远程L1高速缓存中存在子拷贝,则将向其它节点的远程存在缓冲器发出块地址的搜索(1020)。当在RPB 1030中找到匹配块地址时,则将直接无效命令发送到相应节点的L1高速缓存,以强制地无效其拷贝(1035)。在RCB位检查和/或RPB查询为否定的情况下,系统采取传统的方案,其中向每个L2高速缓存1025发出无效请求。
图11中的事件流1100描述了如果节点A决定以独占/修改的模式无效或获取块i(1105),如何使块i的状态一致。注意,根据远程父位(RPb)检查,节点A将使用块i的地址在其L2/L3通信缓冲器中搜索块的父位置(1110)。记住,该系统应当不允许块的副本驻留在L2高速缓存系统中。如果从L2/L3通信缓冲器中找到块的父位置(1115),则将无效命令发送到该节点以便无效(1120)。为了以独占/修改模式获取块,首先将块的拷贝移到被请求节点的L2高速缓存,在无效原始父的同时,相应地更新L2/L3通信缓冲器(1120)。另外,将对块的无效请求放到网络上,其中在所有RPB中发生搜索(1130),并且只要找到(1135),就在L1高速缓存中发生块的强制无效(1140)。
应当理解,根据至少一个优选实施例,本发明包括缓冲器装置,其被适配成记录进入数据,传达数据位置,并且引用高速缓冲存储器,这可以在至少一个运行适当软件程序的通用计算机上实现。这还可以在至少一个集成电路或至少一个集成电路的一部分上实现。因此,应当理解,本发明可以以硬件、软件或其组合来实现。
除非另外指明,否则假定将在此提及和引用的所有专利、专利申请、专利出版物以及其它出版物(包括基于网络的出版物)的全文引作参考。
虽然在此参照附图描述了本发明的说明性实施例,但是应当理解,本发明不局限于这些具体实施例,并且在不脱离本发明的范围或精神的情况下,本领域的技术人员可以对其进行各种其它改变和修改。

Claims (9)

1.一种用于提供高速缓存管理的方法,所述方法包括以下步骤:
记录从第二高速缓冲存储器到第一高速缓冲存储器中的进入数据;
如果在第一高速缓冲存储器中发生命中,则一旦提示对应的数据,就传达在第一高速缓冲存储器中的数据位置;以及
如果在第一高速缓冲存储器中发生缺失,则引用第二高速缓冲存储器。
2.根据权利要求1所述的方法,其中第一高速缓冲存储器是L2高速缓冲存储器,并且第二高速缓冲存储器是L3高速缓冲存储器。
3.根据权利要求2所述的方法,其中所传达的数据位置是L2高速缓冲存储器中的分区。
4.根据权利要求2所述的方法,其中L2高速缓冲存储器是非均匀L2高速缓冲存储器。
5.根据权利要求2所述的方法,其中L2高速缓冲存储器和L3高速缓冲存储器被布置在多核心高速缓冲存储器架构中。
6.根据权利要求2所述的方法,其中L3高速缓冲存储器包括芯片外的高速缓冲存储器。
7.根据权利要求2所述的方法,其中L2高速缓冲存储器包括共享的L2高速缓冲存储器。
8.根据权利要求2所述的方法,其中L2高速缓冲存储器包括私有的L2高速缓冲存储器。
9.根据权利要求2所述的方法,还包括以下步骤:当对应的数据未被分配到L2高速缓冲存储器时,将数据远程供应到L1高速缓冲存储器中。
CNB2006100059354A 2005-04-29 2006-01-19 用于减小高速缓存架构中的延迟和窥探代价的方法 Expired - Fee Related CN100430907C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/118,130 2005-04-29
US11/118,130 US20060248287A1 (en) 2005-04-29 2005-04-29 Methods and arrangements for reducing latency and snooping cost in non-uniform cache memory architectures

Publications (2)

Publication Number Publication Date
CN1855070A CN1855070A (zh) 2006-11-01
CN100430907C true CN100430907C (zh) 2008-11-05

Family

ID=37195253

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100059354A Expired - Fee Related CN100430907C (zh) 2005-04-29 2006-01-19 用于减小高速缓存架构中的延迟和窥探代价的方法

Country Status (2)

Country Link
US (1) US20060248287A1 (zh)
CN (1) CN100430907C (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1820093B1 (de) * 2004-10-25 2018-08-15 Robert Bosch Gmbh Verfahren und einrichtung zum umschalten in einem computersystem mit mindestens zwei ausführungseinheiten
US7890700B2 (en) * 2008-03-19 2011-02-15 International Business Machines Corporation Method, system, and computer program product for cross-invalidation handling in a multi-level private cache
US8223650B2 (en) * 2008-04-02 2012-07-17 Intel Corporation Express virtual channels in a packet switched on-chip interconnection network
US8667227B2 (en) * 2009-12-22 2014-03-04 Empire Technology Development, Llc Domain based cache coherence protocol
US9817700B2 (en) * 2011-04-26 2017-11-14 International Business Machines Corporation Dynamic data partitioning for optimal resource utilization in a parallel data processing system
EP2771721A4 (en) 2011-10-28 2017-03-29 The Regents of The University of California Multiple-core computer processor for reverse time migration
US9424194B2 (en) * 2012-05-01 2016-08-23 International Business Machines Corporation Probabilistic associative cache
CN103794240B (zh) * 2012-11-02 2017-07-14 腾讯科技(深圳)有限公司 在线音频数据的存储方法及装置
US9703707B2 (en) * 2012-12-04 2017-07-11 Ecole polytechnique fédérale de Lausanne (EPFL) Network-on-chip using request and reply trees for low-latency processor-memory communication
US20140201326A1 (en) * 2013-01-16 2014-07-17 Marvell World Trade Ltd. Interconnected ring network in a multi-processor system
CN104424142B (zh) * 2013-08-26 2019-09-10 南京中兴新软件有限责任公司 一种多核处理器系统中访问共享资源的方法与装置
KR102161689B1 (ko) * 2013-12-10 2020-10-05 삼성전자 주식회사 L2 캐시 특성을 조절할 수 있는 멀티-코어 cpu 시스템, 이의 동작 방법, 및 이를 포함하는 장치들
US9667528B2 (en) 2014-03-31 2017-05-30 Vmware, Inc. Fast lookup and update of current hop limit
CN106156255A (zh) * 2015-04-28 2016-11-23 天脉聚源(北京)科技有限公司 一种数据缓存层实现方法及系统
US10255190B2 (en) * 2015-12-17 2019-04-09 Advanced Micro Devices, Inc. Hybrid cache
US10592451B2 (en) * 2017-04-26 2020-03-17 International Business Machines Corporation Memory access optimization for an I/O adapter in a processor complex
US11134030B2 (en) * 2019-08-16 2021-09-28 Intel Corporation Device, system and method for coupling a network-on-chip with PHY circuitry
US11366750B2 (en) * 2020-09-24 2022-06-21 EMC IP Holding Company LLC Caching techniques

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1181544A (zh) * 1996-10-28 1998-05-13 国际商业机器公司 通过去除二级超高速缓冲存储器中的过时行增强处理器的存储器性能
CN1499382A (zh) * 2002-11-05 2004-05-26 华为技术有限公司 廉价冗余磁盘阵列系统中高效高速缓存的实现方法
US20040117555A1 (en) * 2002-12-17 2004-06-17 Intel Corporation Method and system to overlap pointer load cache misses

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530832A (en) * 1993-10-14 1996-06-25 International Business Machines Corporation System and method for practicing essential inclusion in a multiprocessor and cache hierarchy
US6226722B1 (en) * 1994-05-19 2001-05-01 International Business Machines Corporation Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing
US5895487A (en) * 1996-11-13 1999-04-20 International Business Machines Corporation Integrated processing and L2 DRAM cache
US6314500B1 (en) * 1999-01-11 2001-11-06 International Business Machines Corporation Selective routing of data in a multi-level memory architecture based on source identification information
US6493800B1 (en) * 1999-03-31 2002-12-10 International Business Machines Corporation Method and system for dynamically partitioning a shared cache
US6405290B1 (en) * 1999-06-24 2002-06-11 International Business Machines Corporation Multiprocessor system bus protocol for O state memory-consistent data
US6651143B2 (en) * 2000-12-21 2003-11-18 International Business Machines Corporation Cache management using a buffer for invalidation requests
US20020138698A1 (en) * 2001-03-21 2002-09-26 International Business Machines Corporation System and method for caching directory information in a shared memory multiprocessor system
US20060143384A1 (en) * 2004-12-27 2006-06-29 Hughes Christopher J System and method for non-uniform cache in a multi-core processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1181544A (zh) * 1996-10-28 1998-05-13 国际商业机器公司 通过去除二级超高速缓冲存储器中的过时行增强处理器的存储器性能
CN1499382A (zh) * 2002-11-05 2004-05-26 华为技术有限公司 廉价冗余磁盘阵列系统中高效高速缓存的实现方法
US20040117555A1 (en) * 2002-12-17 2004-06-17 Intel Corporation Method and system to overlap pointer load cache misses

Also Published As

Publication number Publication date
US20060248287A1 (en) 2006-11-02
CN1855070A (zh) 2006-11-01

Similar Documents

Publication Publication Date Title
CN100430907C (zh) 用于减小高速缓存架构中的延迟和窥探代价的方法
CN104106061B (zh) 多处理器数据处理系统以及其中的方法、高速缓存存储器和处理单元
US6738868B2 (en) System for minimizing directory information in scalable multiprocessor systems with logically independent input/output nodes
JP3644587B2 (ja) 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム
US7467323B2 (en) Data processing system and method for efficient storage of metadata in a system memory
CN100428195C (zh) 数据处理系统和方法
US6622217B2 (en) Cache coherence protocol engine system and method for processing memory transaction in distinct address subsets during interleaved time periods in a multiprocessor system
US6675265B2 (en) Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants
US6751710B2 (en) Scalable multiprocessor system and cache coherence method
US7584329B2 (en) Data processing system and method for efficient communication utilizing an Ig coherency state
TWI463318B (zh) 快取一致性處理系統、快取記憶體,及其方法
US6748498B2 (en) Scalable multiprocessor system and cache coherence method implementing store-conditional memory transactions while an associated directory entry is encoded as a coarse bit vector
US6925537B2 (en) Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants
US7480772B2 (en) Data processing system and method for efficient communication utilizing an Tn and Ten coherency states
US8214600B2 (en) Data processing system and method for efficient coherency communication utilizing coherency domains
JP2004505346A (ja) 多重プロセッサアーキテクチャのためのキャッシュコヒーレンシシステムおよび方法
WO1995025306A2 (en) Distributed shared-cache for multi-processors
CN103365794A (zh) 数据处理方法和系统
US7774555B2 (en) Data processing system and method for efficient coherency communication utilizing coherency domain indicators
US7174430B1 (en) Bandwidth reduction technique using cache-to-cache transfer prediction in a snooping-based cache-coherent cluster of multiprocessing nodes
US7469322B2 (en) Data processing system and method for handling castout collisions
US7149852B2 (en) System and method for blocking data responses
US7315919B1 (en) Bandwidth reduction technique in a snooping-based cache-coherent cluster of multiprocessing nodes
JP4335298B2 (ja) スヌープ制御方法および情報処理装置
US20070073919A1 (en) Data processing system and method that permit pipelining of I/O write operations and multiple operation scopes

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081105

Termination date: 20100219