CN1841342A - 数据处理系统和方法 - Google Patents

数据处理系统和方法 Download PDF

Info

Publication number
CN1841342A
CN1841342A CNA2006100674508A CN200610067450A CN1841342A CN 1841342 A CN1841342 A CN 1841342A CN A2006100674508 A CNA2006100674508 A CN A2006100674508A CN 200610067450 A CN200610067450 A CN 200610067450A CN 1841342 A CN1841342 A CN 1841342A
Authority
CN
China
Prior art keywords
cache
destination address
cache directory
main frame
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
Application number
CNA2006100674508A
Other languages
English (en)
Other versions
CN100428195C (zh
Inventor
G·L·格思里
A·C·索蒂
W·J·斯塔克
J·A·施蒂切利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN1841342A publication Critical patent/CN1841342A/zh
Application granted granted Critical
Publication of CN100428195C publication Critical patent/CN100428195C/zh
Active 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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
    • 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

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

数据处理系统和方法
技术领域
本发明一般地涉及数据处理,具体地说,涉及高速缓存一致数据处理系统中的数据处理。
背景技术
传统的对称多处理器(SMP)计算机系统(如服务器计算机系统)包括多个全部连接到系统互连的处理单元,所述系统互连通常包括一个或多个地址、数据和控制总线。连接到所述系统互连的是系统存储器,其代表所述多处理器计算机系统中的易失性存储器的最低级别并且通常可由所有处理单元进行读和写访问。为了减少对驻留在系统存储器中的指令和数据的访问等待时间,每个处理单元通常都由各自的多级别高速缓存层次结构来进一步支持,所述层次结构的较低级别可由一个或多个处理器核心所共享。
由于多个处理器核心可以请求对数据的同一高速缓存线的写访问并且由于修改后的高速缓存线不会立即与系统存储器同步,所以多处理器计算机系统的高速缓存层次结构通常实现高速缓存一致性(coherency)协议以确保系统存储器内容的各种处理器核心的“视图”之间的一致性的至少最低级别。具体地说,高速缓存一致性至少要求在处理单元访问存储器块的副本并随后访问所述存储器块的更新后的副本之后,所述处理单元不能再次访问所述存储器块的旧副本。
高速缓存一致性协议通常定义一组与每个高速缓存层次结构的高速缓存线关联存储的一致性状态,以及一组用于在高速缓存层次结构之间传送高速缓存状态信息的一致性消息。在一个典型实现中,一致性状态信息采取公知的MESI(修改、独占、共享和无效)协议或其变型的形式,并且一致性消息指示存储器访问请求的请求方和/或接收方的高速缓存层次结构中的协议定义的一致性状态转换。
在传统的多处理器数据处理系统中,在请求存储器块的操作被广播到数据处理系统中的其他高速缓存层次结构之前,高速缓冲存储器层次结构内的高速缓冲存储器的所有级别都被检查以确定它们的一致性状态以响应存储器访问请求。本发明认识到对于在高速缓存层次结构的所有级别中都未命中的存储器访问请求的子集来说,此操作增加了访问等待时间。
发明内容
鉴于本领域中的上述和其他缺点,本发明提供了一种改进的高速缓存一致数据处理系统、高速缓存系统和高速缓存一致数据处理系统中的数据处理方法。
在一个实施例中,响应于主机接收到指示目标地址的存储器访问请求,所述主机访问高速缓存层次结构的高级高速缓存的第一高速缓存目录。响应于所述目标地址在所述第一高速缓存目录中被与具有有效地址标记和第一无效一致性状态的表项关联,所述主机在互连结构上发出指定了所述目标地址的请求,而不考虑所述高速缓存层次结构的低级高速缓存的第二高速缓存目录中与所述目标地址关联的一致性状态。响应于所述目标地址具有相对于所述第一高速缓存目录的第二无效一致性状态,所述主机在确定了所述高速缓存层次结构的低级高速缓存的第二高速缓存目录中与所述目标地址关联的一致性状态后,在互连结构上发出指定了所述目标地址的请求。
本发明的所有目标、特征和优点将在以下详细的书面描述中变得显而易见。
附图说明
在所附权利要求书中说明了被认为是本发明特性的新颖特征。但是,当结合附图阅读时,通过参考以下对示例性实施例的详细说明,可以最佳地理解本发明及其优选使用方式,这些附图是:
图1是根据本发明的示例性数据处理系统的高级方块图;
图2是根据本发明的处理单元的更详细的方块图;
图3是图2中示出的L2高速缓存阵列和目录的更详细的方块图;
图4是图1的数据处理系统的系统互连上的示例性事务的时空图;
图5示出了根据本发明的优选实施例的域指示符;
图6A是根据本发明的在高速缓存层次结构内为存储器访问请求服务的方法的第一示例性实施例的高级逻辑流程图;以及
图6B是根据本发明的在高速缓存层次结构内为存储器访问请求服务的方法的第二示例性实施例的高级逻辑流程图。
具体实施方式
I.示例性数据处理系统
现在参考附图,具体地说,参考图1,其中示出了根据本发明的高速缓存一致对称多处理器(SMP)数据处理系统的一个示例性实施例的高级方块图。如图所示,数据处理系统100包括用于处理数据和指令的多个处理节点102a、102b。处理节点102a、102b与系统互连110相连以便传送地址、数据和控制信息。系统互连110可以被实现为例如总线互连、交换互连或混合互连。
在示出的实施例中,每个处理节点102都被实现为包含四个处理单元104a-104d的多芯片模块(MCM),每个处理单元优选地被实现为相应的集成电路。每个处理节点102内的处理单元104a-104d都通过本地互连114连接以便进行通信,类似于系统互连110,可以使用一个或多个总线和/或交换机来实现本地互连114。
连接到每个本地互连114的设备不仅包括处理单元104,还包括一个或多个系统存储器108a-108d。驻留在系统存储器108中的数据和指令通常可以由数据处理系统100的任何处理节点102中的任何处理单元104中的处理器核心来访问并修改。在本发明的可替代实施例中,一个或多个系统存储器108可以被连接到系统互连110,而不是本地互连114。
本领域的技术人员将理解,SMP数据处理系统100可以包括许多额外的未示出的组件,例如互连桥、非易失性存储装置、用于连接到网络或附加设备的端口等。由于此类额外组件并不是理解本发明所必需的,因此它们并未在图1中示出或在此进一步被讨论。但是,还应当理解,本发明提供的增强可应用于各种体系结构的高速缓存一致数据处理系统并且绝非限于图1中示出的通用数据处理系统体系结构。
现在参考图2,其中示出了根据本发明的示例性处理单元104的更详细的方块图。在所示实施例中,每个处理单元104包括两个用于独立地处理指令和数据的处理器核心200a、200b。每个处理器核心200至少包括用于取回和排序指令以便执行的指令定序单元(ISU)208和一个或多个用于执行指令的执行单元224。由执行单元224执行的指令包括请求访问存储器块或导致生成访问存储器块的请求的加载和存储指令。
每个处理器核心200的操作都由在其最低级别具有共享系统存储器108a-108d并且在其较高级别具有一个或多个级别的高速缓冲存储器的多级别易失性存储器层次结构来支持。在所示实施例中,每个处理单元104都包括集成存储器控制器(IMC)206,集成存储器控制器206控制对其处理节点102内的系统存储器108a-108d中的相应系统存储器的读写访问,以响应从处理器核心200a-200b接收的请求和由窥探器(S)222在本地互连114上窥探的操作。IMC 206通过引用基地址寄存器(BAR)逻辑240来确定其所负责的地址。
在示例性实施例中,处理单元104的高速缓冲存储器层次结构包括每个处理器核心200内的直通存储(store-through)一级(L1)高速缓存226和由处理单元104的所有处理器核心200a、200b共享的二级(L2)高速缓存230和三级(L3)高速缓存250。L2高速缓存230包括L2阵列和目录234以及高速缓存控制器,所述高速缓存控制器包括主机(master)232和窥探器236。主机232启动本地互连114和系统互连110上的事务并响应于从关联的处理器核心200a-200b接收的存储器访问(以及其他)请求而访问L2阵列和目录234。窥探器236窥探本地互连114上的操作、提供适合的响应,并执行所述操作所需的对L2阵列和目录234的任何访问。
如图所示,L3高速缓存250被类似地构建并包括高速缓存控制器252、L3高速缓存阵列260和L3高速缓存阵列260的内容的L3目录254。尽管在某些实施例中,L3高速缓存阵列260可以在芯片上实现,但是在所示出的实施例中,L3高速缓存阵列260在处理单元104外部的存储器DIMM中实现以便允许L3高速缓存阵列260具有更大的容量。在各种实施例中,L3高速缓存250可以被实现为包括、部分包括或不包括L2高速缓存230的内容。此外,L3高速缓存250可以被实现为嵌入或旁视高速缓存。在示出的实施例中,L3高速缓存250被实现为由存储器块驱逐填充或被L2高速缓存230牺牲的“牺牲品”高速缓存。
尽管示出的高速缓存层次结构仅包括三级高速缓存,但是本领域的技术人员将理解,可替代的实施例可以包括其他级别(L4、L5等)的片上或片外嵌入或旁视高速缓存,其可以完全包括、部分包括或不包括较高级别的高速缓存的内容。
每个处理单元104还包括响应逻辑210的实例,该实例实现在数据处理系统100内维持高速缓存一致性的分布式一致性发信号机制的一部分。此外,每个处理单元104包括用于在其本地互连114和系统互连110之间选择性地转发通信的互连逻辑212的实例。最后,每个处理单元104包括支持附加一个或多个I/O设备(如I/O设备216)的集成I/O(输入/输出)控制器214。I/O控制器214可以响应于I/O设备216的请求而在本地互连114和/或系统互连110上发布操作。
现在参考图3,其中示出了L2阵列和目录234的示例性实施例的更详细的方块图。如图所示,L2阵列和目录234包括一组相关的L2高速缓存阵列300和L2高速缓存阵列300的内容的L2高速缓存目录302。如在传统的一组相关高速缓存中,利用系统存储器(真实)地址中的预定索引位将系统存储器108中的存储器单元映射到高速缓存阵列300中的特定一致类。存储在高速缓存阵列300中的特定高速缓存线被记录在高速缓存目录302中,高速缓存目录302包含一个用于高速缓存阵列300中的每个高速缓存线的目录表项。如本领域的技术人员所理解的,高速缓存目录302中的每个目录表项至少包括标记字段304(其利用相应真实地址的标记部分指定了存储在高速缓存阵列300中的特定高速缓存线)、状态字段306(其指示高速缓存线的一致性状态)以及LRU(最近最少使用)字段308(其指示了相对于同一一致类中的其他高速缓存线而言的高速缓存线的替换顺序)。L3目录254可以类似于L2目录302来被构建。
II.示例性操作
现在参考图4,其中示出了图1的数据处理系统100的本地或系统互连110、114上的示例性操作的时空图。当L2高速缓存230的主机232(或其他主机,如I/O控制器214)在本地互连114和/或系统互连110上发出请求402时,所述操作开始。请求402优选地包括事务类型(指示期望的访问类型)和资源标识符(如,真实地址,指示将被所述请求访问的资源)。常见的请求类型优选地包括那些在下表I中说明的类型。
                       表I
  请求   描述
 READ   请求用于查询目的的存储器块的映像的副本
 RWITM(具有修改目的的读)   请求存储器块的映像的唯一副本,其目的是对其进行更新(修改)并要求破坏其他副本(如果有)
 DCLAIM(数据要求)   请求授权以将存储器块的现有只查询副本提升为唯一副本,其目的是对其进行更新(修改)并要求破坏其他副本(如果有)
 DCBZ(数据高速缓存块清零)   请求授权以创建存储器块的与其当前状态无关的新的唯一高速缓存副本并随后修改其内容;要求破坏其他副本(如果有)
 CASTOUT   将存储器块的映像从较高级别的存储器复制到较低级别的存储器,以便为破坏较高级别的副本做准备
 WRITE   请求授权以创建存储器块的与其当前状态无关的新的唯一副本并立即将存储器块的映像从较高级别的存储器复制到较低级别的存储器,以便为破坏较高级别的副本做准备
 PARTIALWRITE   请求授权以创建部分存储器块的与其当前状态无关的新的唯一副本并立即将部分存储器块的映像从较高级别的存储器复制到较低级别的存储器,以便为破坏较高级别的副本做准备
请求402由L2高速缓存230的窥探器236以及存储器控制器206(图1)的窥探器222接收。通常(存在某些例外),由于仅当处理单元104无法内部地为请求402服务时,请求402才在本地互连114和/或系统互连110上传输,所以在与请求402的主机232处于同一L2高速缓存230中的窥探器236不会窥探请求402(即,通常没有自窥探)。每个接收请求402的窥探器222、236都可以提供代表至少该窥探器对请求402的响应的相应部分响应406。存储器控制器206中的窥探器222根据例如窥探器222是否负责请求地址以及其是否具有可用于为所述请求服务的资源来确定部分响应406。L2高速缓存230的窥探器236可以根据例如其L2高速缓存目录302的可用性、窥探器236内处理所述请求的窥探逻辑实例的可用性以及与L2高速缓存目录302中的请求地址关联的一致性状态来确定其部分请求406。
窥探器222和236的部分响应由响应逻辑210的一个或多个实例分步或立即逻辑地组合以确定对请求402的系统范围的组合响应(CR)410。根据下面讨论的范围限制,响应逻辑210通过其本地互连114和/或系统互连110将组合响应410提供给主机232和窥探器222、236以指示对请求402的系统范围的响应(例如,成功、失败、重试等)。如果CR 410指示请求402成功,则CR 410可以指示例如请求的存储器块的数据源、其中将被主机232缓存的所述请求的存储器块的高速缓存状态,以及是否需要无效一个或多个L2高速缓存230中的请求的存储器块的“清空”操作。
响应于接收到组合响应410,一个或多个主机232和窥探器222、236通常执行一个或多个操作以便为请求402服务。这些操作可以包括向主机232提供数据、无效或更新一个或多个L2高速缓存230中缓存的数据的一致性状态、执行驱逐操作、将数据写回系统存储器108等。如以下进一步讨论的,如果请求402需要,在响应逻辑210生成组合响应410之前或之后,请求或目标存储器块可以被传输到主机232或从主机232传输请求或目标存储器块。
在以下描述中,将根据请求指定的请求地址参考窥探器是一致性最高点(HPC)、一致性最低点(LPC)还是两者皆不是来描述窥探器222、236对所述请求的部分响应以及由所述窥探器响应于所述请求和/或其组合响应而执行的操作。LPC在此被定义为用作存储器块的库的存储器设备或I/O设备。在没有用于存储器块的HPC的情况下,LPC持有存储器块的真实映像并具有许可或拒绝生成所述存储器块的附加高速缓存副本的请求的授权。对于图1和2的数据处理系统实施例中的典型请求,所述LPC将是持有所述引用的存储器块的系统存储器108的存储器控制器206。HPC在此被定义为缓存所述存储器块(其与LPC处的相应存储器块可能一致,也可能不一致)的真实映像的唯一标识的设备并具有许可或拒绝修改存储器块的请求的授权。说明性地,HPC还可以响应于不修改所述存储器块的操作而向请求方提供所述存储器块的副本。因此,对于图1和2的数据处理系统实施例中的典型请求,HPC(如果存在)将是L2高速缓存230。如下面参考表II进一步描述的,尽管其他指示符可以被用来为存储器块指定HPC,但是本发明的优选实施例利用L2高速缓存230的L2高速缓存目录302内的选定高速缓存一致性状态(多个)来为存储器块指定HPC(如果存在)。
仍然参考图4,用于在请求402中引用的存储器块的HPC(如果存在),或在没有HPC的情况下,所述存储器块的LPC优选地具有保护存储器块的所有权的转移以响应保护窗口404a期间的请求402的责任。在图4中示出的示例性情况中,窥探器236(其是用于由请求402的请求地址指定的存储器块的HPC)在保护窗口404a期间(从窥探器236确定其部分响应406时延伸到窥探器236接收到组合响应410时为止)保护将所请求的存储器块的所有权转移到主机232。在保护窗口404a期间,窥探器236通过将部分响应406提供给其他请求(指定了相同的请求地址并且阻止其他主机获得所有权直到所有权已被成功地转移到主机232为止)来保护所有权的转移。主机232在接收到组合响应410后同样启动一个保护窗口404b来保护其在请求402中请求的存储器块的所有权。
由于窥探器222、236都具有用于处理上述的CPU和I/O请求的有限资源,所以若干不同级别的部分响应和相应的CR是可能的。例如,如果在负责请求的存储器块的存储器控制器206中的窥探器222具有可用于处理请求的队列,则窥探器222可以响应以指示其能够用作所述请求的LPC的部分响应。另一方面,如果窥探器222没有可用于处理请求的队列,则窥探器222可以响应以指示其是存储器块的LPC,但是当前无法为所述请求服务的部分响应。
类似地,L2高速缓存230中的窥探器236可能需要窥探逻辑的可用实例并访问L2高速缓存目录302以便处理请求。缺少对这些资源中的任一资源(或两者)的访问将导致发信号告知由于缺少所需资源而无法为所述请求服务的部分响应(以及相应的CR)。
此后,提供了指示窥探器具有当前为请求服务所需的全部内部资源的部分响应的窥探器222、236(如果需要)被称为“确认”请求。对于窥探器236,确认了窥探操作的部分响应优选地指示在该窥探器236处的请求或目标存储器块的高速缓存状态。提供了指示窥探器236不具有为请求服务所需的全部内部资源的部分响应的窥探器236可以被称为“可能隐藏”。由于窥探器236因缺少窥探逻辑的可用实例或对L2高速缓存目录302的访问而无法在以上定义的意义上“确认”请求并且从其他主机232和窥探器222、236的角度,具有未知的一致性状态,所以此类窥探器236是“可能隐藏的”。
III.数据传送域
传统的基于广播的数据处理系统通过广播通信来处理高速缓存一致性和数据传送这两者,在传统的系统中,在系统互连上将所述广播通信至少传输到所述系统中的所有存储器控制器和高速缓存层次结构。与具有可替代体系结构和类似规模的系统相比,基于广播的系统倾向于提供降低的访问等待时间和更好的共享存储器块的数据处理和一致性管理。
随着基于广播的系统的规模的扩大,系统互连上的通信量倍增,意味着由于需要更多的带宽用于系统互连上的通信,系统成本随着系统规模而急剧增加。即,具有m个处理器核心(每个处理器核心都具有n个事务的平均通信量)的系统具有m×n的通信量,意味着基于广播的系统中的通信量成倍地而不是累加性地增加。除了对实际更大的互连带宽的要求以外,系统大小的增加具有增加某些访问等待时间的副作用。例如,读取数据的访问等待时间,在最坏的情况下,由持有处于共享一致性状态中的请求存储器块(其可以作为请求的数据的源)的最远低级高速缓存的组合响应等待时间所限制。
为了减少系统互连带宽要求和访问等待时间同时仍然保留基于广播的系统的优点,本发明通过减少发出请求的L2高速缓存230与数据源之间的平均距离来减少数据访问等待时间。用于执行此操作的一种技术是减少发出请求的L2高速缓存230与数据源之间的平均距离,以便允许分布在整个数据处理系统100中的多个L2高速缓存230持有处于“特殊”共享一致性状态中的同一存储器块的副本,所述“特殊”共享一致性状态允许这些高速缓存使用高速缓存到高速缓存干预将所述存储器块提供给发出请求的L2高速缓存230。
为了实现用于SMP数据处理系统(如数据处理系统100)中的共享存储器块的多个并发和分布的源,必须解决两个问题。首先,必须实现某些管理处于以上提到的“特殊”共享一致性状态中的存储器块的副本的创建的规则。其次,必须存在管理哪一个窥探L2高速缓存230(如果存在)例如响应于总线读取操作或总线RWITM操作将共享存储器块提供给发出请求的L2高速缓存230的规则。
根据本发明,这两个问题都通过实现数据源域来解决。具体地说,SMP数据处理系统中的每个域(其中域被定义为包括一个或多个参与响应数据请求的低级(例如,L2)高速缓存)被允许每次只包括一个持有处于“特殊”共享一致性状态中的特定存储器块的高速缓存层次结构。该高速缓存层次结构,如果当同一域中的请求低级高速缓存启动总线读取类型(例如,读取或RWITM)操作时存在,负责将请求的存储器块作为源提供给发出请求的低级高速缓存。尽管可以定义许多不同的域大小,但是在图1的数据处理系统100中,如果每个处理节点102(即,MCM)都被视为数据源域是很方便的。参考表II在下面描述了此类“特殊”共享状态(即,Sr)的一个实例。
IV.一致性域
尽管实现上述数据传送域改进了数据访问等待时间,但是此改进并未解决随着系统规模增加而出现的通信量的m×n倍增。为了减少通信量同时仍然维持基于广播的一致性机制,本发明的优选实施例额外地实现了一致性域,其类似于此前描述的数据传送域,可以方便地(但不是必需的)用每个形成单独的一致性域的处理节点102来实现。数据传送域和一致性域可以(但并不要求)是同延的,并且出于解释数据处理系统100的示例性操作的目的,此后将被假设为具有由处理节点102定义的边界。
通过限制在系统互连110上的域内广播通信,在其中请求可以由少于所有一致性域的域参与提供服务的情况下,一致性域的实现减少了系统通信量。例如,如果处理节点102a的处理单元104a具有总线读取操作要发布,则处理单元104a可以选择首先将所述总线读取操作广播到其自己的一致性域(例如,处理节点102a)内的所有参与者,但是不广播到其他一致性域(例如,处理节点102b)中的参与者。仅传送到那些与操作的主机在同一一致性域中的参与者的广播操作在此被定义为“本地操作”。如果可以在处理单元104a的一致性域中为本地总线读取操作服务,则不执行总线读取操作的进一步广播。但是,如果对本地总线读取操作的部分响应和组合响应指示无法单独在处理单元104a的一致性域中为总线读取操作服务,则广播的范围可以被扩展到包括(除了本地一致性域以外)一个或多个其他一致性域。
在一个基本实现中,采用了两个广播范围:只包括本地一致性域的“本地”范围和包括SMP数据处理系统中的所有其他一致性域的“全局”范围。因此,被传送到SMP数据处理系统中的所有一致性域的操作在此被定义为“全局操作”。重要的是,无论是否采用本地操作或更大扩展范围的操作(例如,全局操作)来为操作服务,都将在SMP数据处理系统中的所有一致性域之间维护高速缓存一致性。
在一个优选实施例中,由本地/全局指示符(信号)指示总线操作中的操作的范围,在一个实施例中,所述指示符可以包括1-位标志。处理单元104中的转发逻辑212优选地根据操作中的本地/全局指示符(信号)的设置来确定是否将通过本地互连114接收到的操作转发到系统互连110上。
V.域指示符
为了限制不需要的本地操作的发布并由此减少操作等待时间并节约本地互连上的附加带宽,本发明优选地实现每存储器块的域指示符,该指示符指示关联存储器块的副本是否被缓存在本地一致性域之外。例如,图5示出了根据本发明的域指示符的第一示例性实现。如图5所示,系统存储器108(其可以以动态随机存取存储器(DRAM)实现)存储了多个存储器块500。系统存储器108与每个存储器块500关联地存储了用来校正存储器块500中的错误(如果存在)的关联错误校正码(ECC)502和域指示符504。尽管在本发明的某些实施例中,域指示符504可以标识特定的一致性域(即,指定一致性域或节点ID),但是此后假设域指示符504是1-位指示符,在关联的存储器块500(如果有)仅被缓存在与用作存储器块500的LPC的存储器控制器206相同的一致性域中的情况下,所述指示符被设置(例如,设置成‘1’以指示‘本地’)。否则,重置域指示符504(例如,重置为‘0’以指示‘全局’)。设置域指示符504以指示“本地”可以被不严密地实现,因为错误设置“全局”将不会引起任何一致性错误,但可能会导致操作的不需要的全局广播。
重要的是,响应于操作而作为存储器块的源的存储器控制器206(和L2高速缓存230)优选地将关联的域指示符504与请求的存储器块一起传送。
VI.示例性一致性协议
本发明优选地实现了高速缓存一致性协议,该协议旨在影响如上所述的数据传送和一致性域的实现。在一个优选实施例中,所述协议中的高速缓存一致性状态除了提供(1)高速缓存是否是存储器块的HPC的指示之外,还指示(2)缓存的副本在该存储器层次结构级别的高速缓存之间是否唯一(即,是系统范围内仅有的缓存副本),(3)所述高速缓存是否以及何时可以将存储器块的副本提供给用于所述存储器块的请求的主机,(4)所述存储器块的缓存的映像与在LPC(系统存储器)处的相应存储器块是否一致,以及(5)远程一致性域(可能)中的其他高速缓存是否持有具有匹配地址的高速缓存表项。这五个属性可以例如在下表II中总结的公知MESI(修改、独占、共享、无效)协议的示例性变型中被表达。
                         表II
  高速缓存状态   HPC? 唯一?   数据源? 与LPC一致?   缓存在本地域外?   法定的并发状态
  M   是   是,在CR前   否   I、Ig、In(&LPC)
 Me   是   是   是,在CR前   是   否   I、Ig、In(&LPC)
 T   是   未知   是,如果在CR前未提供则在CR后   否   未知   Sr、S、I、Ig、In(&LPC)
 Tn   是   未知   是,如果在CR前未提供则在CR后   否   否   Sr、S、I、Ig、In(&LPC)
 Te   是   未知   是,如果在CR前未提供则在CR后   是   未知   Sr、S、I、Ig、In(&LPC)
 Ten   是   未知   是,如果在CR前未提供则在CR后   是   否   Sr、S、I、Ig、In(&LPC)
 Sr   否   未知   是,在CR前   未知   未知   T、Tn、Te、Ten、S、I、Ig、In(&LPC)
 S   否   未知   否   未知   未知   T、Tn、Te、Ten、Sr、S、I、Ig、In(&LPC)
 I   否   n/a   否   n/a   未知   M、Me、T、Tn、Te、Ten、Sr、S、I、Ig、In(&LPC)
 Ig   否   n/a   否   n/a   假设如   M、Me、T、
  此,在缺少其他信息的情况下   Tn、Te、Ten、Sr、S、I、Ig、In(&LPC)
  In   否   n/a   否   n/a   假设不如此,在缺少其他信息的情况下   M、Me、T、Tn、Te、Ten、Sr、S、I、Ig、In(&LPC)
A.Ig状态
为了避免不得不访问LPC以确定存储器块是否将仅本地地被缓存(如果可能),Ig(无效全局)一致性状态被用来在其中没有存储器块的副本保持缓存在一致性域中的情况下维持域指示。所述Ig状态在此被定义为指示以下项的高速缓存一致性状态:(1)高速缓存阵列中的关联存储器块是无效的,(2)高速缓存目录中的地址标志是有效的,以及(3)由地址标志标识的存储器块的副本可能被缓存在另一个一致性域中。所述Ig指示优选地是不精确的,意味着在不违反一致性的情况下其可能是不正确的。
所述Ig状态在低级高速缓存中形成以响应高速缓存将请求的存储器块提供给另一个一致性域中的请求方以响应独占访问请求(例如,总线RWITM操作)。在本发明的某些实施例中,仅在包含用于所述存储器块的LPC的一致性域中形成所述Ig状态是优选的。在此类实施例中,某些机制(例如,LPC的部分响应和随后的组合响应)必须被实现以便向作为请求的存储器块的源的高速缓存指示所述LPC在其本地一致性域中。在不支持传送所述LPC是本地的指示的其他实施例中,可以在高速缓存将存储器块作为源提供给远程一致性域以响应独占访问请求的任何时刻形成所述Ig状态。
由于包括Ig状态的高速缓存目录表项可能携带有用信息,所以至少在某些实现中,希望优选地保留Ig状态中的表项而不是I状态中的表项(例如,通过修改用来选择用于替换的牺牲品高速缓存表项的最近最少使用(LRU)算法)。由于Ig目录表项被保留在高速缓存中,某些Ig表项可能随着时间的推移而变得“失效”,因为高速缓存(其独占访问请求导致了Ig状态的形成)可以解除分配或写回其存储器块的副本,而不通知将存储器块的地址标记保持在Ig状态的高速缓存。在这种情况下,所述“失效”Ig状态(其错误地指示应发布全局操作而不是本地操作)将不会导致任何一致性错误,而只是导致某些操作(可以利用本地操作以其他方式为它们服务)被发布为全局操作。此类低效率的出现将通过最终替换“失效”Ig高速缓存表项来在持续时间上进行限制。
若干规则管理着Ig高速缓存表项的选择和替换。首先,如果高速缓存选择Ig表项作为替换的牺牲品,则执行Ig表项的驱逐(不同于当I表项被选择时的情况)。其次,如果导致存储器块被加载到高速缓存中的请求命中该同一高速缓存中的Ig高速缓存表项,则所述高速缓存将Ig命中视为高速缓存未命中并在将Ig表项作为选定的牺牲品的情况下执行驱逐操作。所述高速缓存因此避免了将同一地址标记的两个副本放置在高速缓存目录中。第三,Ig状态的驱逐优选地被作为本地操作执行,或者如果作为全局操作执行,则被所述驱逐地址的LPC所忽略。如果允许在与用于存储器块的LPC不同的一致性域内的高速缓存中形成Ig表项,则无需更新LPC中的域指示符。第四,Ig状态的驱逐优选地被执行为无数据仅地址操作,其中域指示符被写回LPC(如果对于执行驱逐的高速缓存是本地的)。
根据本发明的Ig状态的实现通过为一致性域中的存储器块维护高速缓存的域指示符(即使没有存储器块的有效副本继续缓存在该一致性域中)来提高通信效率。结果,用于存储器块的HPC可以为来自远程一致性域的独占访问请求(例如,总线RWITM操作)服务,而无需重试所述请求并执行将请求的存储器块推动到LPC。
B.In状态
In状态在此被定义为高速缓存一致性状态,所述高速缓存一致性状态指示(1)高速缓存阵列中的关联存储器块是无效的,(2)高速缓存目录中的地址标记是有效的,以及(3)由所述地址标记标识的存储器块的副本可能仅由本地一致性域中的一个或多个其他高速缓存层次结构来缓存(如果可能)。In指示优选地是不精确的,意味着在不违反一致性的情况下其可能是不正确的。In状态在低级高速缓存中形成以响应该高速缓存将请求的存储器块提供给同一一致性域中的请求方以响应独占访问请求(例如,总线RWITM操作)。
由于包括In状态的高速缓存目录表项可能携带有用信息,所以至少在某些实现中,希望优选地保留In状态中的表项而不是I状态中的表项(例如,通过修改用来选择用于替换的牺牲品高速缓存表项的最近最少使用(LRU)算法)。由于In目录表项被保留在高速缓存中,某些In表项可能随着时间的推移而变得“失效”,因为高速缓存(其独占访问请求导致了In状态的形成)自身可以将存储器块的共享副本提供给远程一致性域,而不通知将存储器块的地址标记保持在In状态的高速缓存。在这种情况下,所述“失效”In状态(其错误地指示应发布本地操作而不是全局操作)将不会导致任何一致性错误,而只是导致某些操作首先错误地被发布为本地操作而非全局操作。此类低效率的出现将通过最终替换“失效”In高速缓存表项来在持续时间上进行限制。在一个优选实施例中,处于In一致性状态的高速缓存表项不会受到驱逐,而只是被替换。因此,与Ig高速缓存表项不同,In高速缓存表项并未被用来更新系统存储器108中的域指示符504。
根据本发明的In状态的实现通过为存储器块(可由主机咨询以便为其操作中的某一操作选择本地范围)维护缓存的域指示符来提高通信效率。结果,节约了其他一致性域中的系统互连110和本地互连114上的带宽。
C.Sr状态
在下面描述的操作中,能够确定持有处于Sr一致性状态的共享请求存储器块的低级高速缓存是否位于与发出请求的主机相同的域中是有用的。在一个实施例中,位于与发出请求的主机相同的域中的“本地”Sr窥探器的存在可以由在持有处于Sr一致性状态的请求存储器块的低级高速缓存处的窥探器的响应行为来指示。例如,假设每个总线操作都包括范围指示符,所述范围指示符指示所述总线操作是否已穿过域边界(例如,主机的显式域标识符或单个本地/非本地范围位),持有处于Sr一致性状态的共享存储器块的低级高速缓存可以提供部分响应(仅为同一数据源域中的主机的请求确认请求处于Sr状态)并提供指示所有其他请求的S状态的部分响应。在此类实施例中,响应行为可以被总结为如表III所示,其中(’)符号被用来指定可能与存储器块的实际高速缓存状态不同的部分响应。
                      表III
  读取类型请求的主机的域   目录中的高速缓存状态  部分响应(足够的资源可用)   部分响应(足够的资源不可用)
  “本地”(即,在同一域中)   Sr  Sr’确认   Sr’可能隐藏
  “远程”(即,不在同一域中)   Sr  S’确认   S’可能隐藏
  “本地”(即,在同一域中)   S  S’确认   S’可能隐藏
  “远程”(即,不在同一域中)   S  S’确认   S’可能隐藏
假设以上在表III中说明了响应行为,通过增加在可用作数据源的SMP数据处理系统中分布的存储器块的共享副本的数量,共享数据的平均数据等待时间可以显著减少。
VII.低级高速缓存状态的选择性考虑
现在参考图6A,其中示出了根据本发明的在高速缓存层次结构内为存储器访问请求服务的方法的第一示例性实施例的高级逻辑流程图。示出的过程开始于方块600,然后进入到方块602,方块602示出了L2高速缓存230的主机232判定其是否从一个或多个其所关联的处理器核心200接收到存储器访问(即,加载或存储)操作。一般来说,存储器访问操作包括对期望的访问类型(即,加载或存储)的指示和目标实地址。如果没有接收到存储器访问操作,则所述过程在方块602重复直到接收到存储器访问操作为止。响应于接收到存储器访问操作,主机232在方块604启动对L2高速缓存目录302的查找以便为所述存储器访问操作所指定的目标地址确定记录在L2高速缓存目录302中的一致性状态(如果存在)。
响应于接收到对L2高速缓存目录302的查找结果,主机232为所述目标地址判定记录在L2高速缓存目录302中的所述一致性状态(如果存在)是否允许在没有首先访问低级存储器层次结构的情况下为所述存储器访问操作服务(方块606)。例如,如果所述存储器访问操作是加载操作并且如果L2高速缓存目录302指示所述目标地址与任何有效的一致性状态(例如,M、Me、T、Tn、Te、Ten、Sr或S)关联,则主机232可以通过只是将存储器块从L2高速缓存阵列300提供给请求处理器核心来在没有首先访问低级存储器层次结构的情况下为所述存储器访问操作服务。对于存储操作来说,只有L2高速缓存目录302指示所述目标地址与M、Me、T、Tn、Te或Ten一致性状态中的某一状态关联,主机232才可以在没有首先访问低级存储器层次结构以获得处于所要求的一致性状态的目标存储器块的情况下,通过对L2高速缓存阵列300执行所指示的更新来为所述操作服务。如果所述目标地址与I、Ig或In一致性状态中的任一状态关联或只是没有(即,未命中)L2高速缓存目录302,则主机232不能在没有首先访问低级存储器层次结构的情况下为加载或存储操作服务。
响应于主机232在方块606判定所述目标地址以允许在没有首先访问低级存储器层次结构的情况下为所述存储器访问操作服务的一致性状态命中L2高速缓存目录302,所述过程从方块606进入到方块624,方块624示出了主机232通过将所请求的存储器块提供给请求处理器核心200或通过更新L2高速缓存阵列300中的所述目标存储器块来为所述加载或存储操作服务。在方块624之后,所述过程在方块626结束。
返回方块606,如果主机232判定所述目标地址没有以允许在没有首先访问低级存储器层次结构的情况下为所述存储器访问操作服务的一致性状态命中L2高速缓存目录302,则所述过程从方块606进入到方块610。方块610示出了主机232判定关于L2高速缓存目录302的所述目标地址的一致性状态是否是这样的一致性状态:在包括本地和系统互连110、114的所述互连结构上发出对所述目标地址的存储器访问请求之前,应执行对L3高速缓存目录254的查找。例如,如果所述目标地址以某一“标记的”I状态(例如,In或Ig)命中L2高速缓存目录302,则如上所述,由于这些一致性状态在与不同的高速缓存层次结构关联的处理单元200成功地在所述互连结构上发出存储器访问请求(例如,RWITM或DClaim)以获得对所述目标存储器块的独占访问时被建立,所以主机232优选地选择在没有首先访问L3目录254的情况下在所述互连结构上发出对所述目标地址的存储器访问请求。因此,优选地在没有首先引起与L3目录254的查找关联的额外等待时间的情况下在所述互连结构上发出所述存储器访问请求,因为L3目录254不太可能持有处于为所述加载或存储操作服务所需的一致性状态中的某一一致性状态的目标地址。类似地,对于存储操作,如果在L2高速缓存目录302中对所述目标地址的查找产生了In、Ig、S或Sr一致性状态中的一个状态,则从等待时间的观点来看,优选地在没有首先引起与L3目录254的查找关联的额外等待时间的情况下在所述互连结构上发出所述存储器访问请求,因为L3目录254不太可能持有处于为所述存储操作服务所需的一致性状态中的某一一致性状态的目标地址。
响应于主机232在方块610判定关于L2高速缓存目录302的目标地址的一致性状态指示在所述互连结构上发出对所述目标地址的存储器访问请求之前不应执行对L3高速缓存目录254的查找,如在方块620示出的,主机232在所述互连结构上发出对所述目标地址的存储器访问请求。如在方块622所指示的,主机232此后等待,直到在所述互连结构上发出的存储器访问请求例如通过提供所述目标存储器块或一致性消息而被服务为止,所述一致性消息指示主机232可以将L2高速缓存目录302中的目标地址的一致性状态更新为执行所述存储器访问操作所需的状态。此后,所述过程进入到已被描述的方块624和626。
将理解,在少数情况下,投机性地绕过L3高速缓存250将被证明是不正确的,因为请求处理单元104的L3高速缓存250持有处于允许所述存储器访问操作被服务的一致性状态的存储器块。为了避免错误,L3高速缓存控制器252因此窥探所述互连结构上的存储器访问请求(包括由其处理单元104所发出的那些请求)并像任何其他窥探器那样通过所述互连结构来响应那些存储器访问请求。以此方式,如果投机性地绕过L3高速缓存250被证明是不正确的,则仍然可以为所述存储器访问操作服务,虽然比如果在所述互连结构上发出所述存储器访问请求之前已由L2高速缓存230直接访问L3高速缓存250将引起的等待时间要长。
返回方块610,响应于主机232判定关于L2高速缓存目录302的目标地址的一致性状态指示在所述互连结构上发出对所述目标地址的存储器访问请求之前应执行对L3高速缓存目录254的查找,如在方块612所示出的,主机232启动对L3目录254的查找。然后,主机232在方块614判定所述目标地址是否以允许没有在所述互连结构上发出请求的情况下为所述存储器访问操作服务的一致性状态命中L3目录254。如果否,则所述过程前进到已被描述的方块620。但是,如果主机232判定所述目标地址以允许没有在所述互连结构上发出请求的情况下为所述存储器访问操作服务的一致性状态命中了L3目录254,则所述过程前进到方块616,方块616示出了L2高速缓存230从L3高速缓存250接收所述目标高速缓存块。此后,如在方块624所示,主机232为所述存储器访问操作服务,并且所述过程在方块626结束。
因此,图6A示出了其中对L3高速缓存250的访问是在L2高速缓存230中的目标地址的一致性状态之后并视其而定的实施例。如将被理解的,在其中L2高速缓存230可以在没有访问低级存储器的情况下为所述存储器访问操作服务或其中必须在所述互连结构上发出请求的情况中,此实施例防止了不必要地利用L3高速缓存目录254。但是,在本发明的其他实施例中,如参考图6B在下面描述的实施例,对L3高速缓存250的访问可以与对L2高速缓存目录302的查找同时进行。
现在参考图6B,其中示出了根据本发明的在高速缓存层次结构内为存储器访问请求服务的方法的第二示例性实施例的高级逻辑流程图。所示出的过程开始于方块630,然后进入到方块632,方块632示出了L2高速缓存230的主机232判定其是否从一个或多个其所关联的处理器核心200接收到存储器访问(即,加载或存储)操作。如上所述,所述存储器访问操作包括对期望的访问类型(即,加载或存储)的指示和标识了目标存储器块的目标实地址。如果没有接收到存储器访问操作,则所述过程在方块632重复直到接收到存储器访问操作为止。响应于接收到存储器访问操作,主机232在方块634启动对L2高速缓存目录302的查找以便为所述存储器访问操作所指定的目标地址确定记录在L2高速缓存目录302中的一致性状态(如果存在)。同时,主机232还启动对L3目录254的查找以便为所述存储器访问操作所指定的目标地址确定记录在L3目录254中的一致性状态(如果存在)。一般来说,主机232将在接收到L3目录查找的结果之前接收到L2目录查找的结果。
响应于接收到对L2高速缓存目录302的查找结果,主机232在方块636为所述目标地址判定记录在L2高速缓存目录302中的所述一致性状态(如果存在)是否允许在没有首先访问低级存储器层次结构的情况下为所述存储器访问操作服务。响应于主机232在方块636判定所述目标地址以允许在没有首先访问低级存储器层次结构的情况下为所述存储器访问操作服务的一致性状态命中L2高速缓存目录302,所述过程从方块636进入到方块638,方块638示出了主机232忽略L3目录254的查找结果。如在方块644所示出的,主机232然后通过将所请求的存储器块提供给请求处理器核心200或通过更新L2高速缓存阵列300中的目标存储器块来为所述加载或存储操作服务。在方块644之后,所述过程在方块646结束。
返回方块636,如果主机232判定所述目标地址没有以允许在没有首先访问低级存储器层次结构的情况下为所述存储器访问操作服务的一致性状态命中L2高速缓存目录302,则所述过程从方块636进入到方块650。方块650示出了主机232判定所述目标地址的所述一致性状态是否是有效的或处于L2高速缓存目录302中的某一“标记的”I状态(例如,In或Ig)。如果所述目标地址以某一“标记的”I状态(例如,In或Ig)或有效状态(其不允许在没有首先访问低级存储器层次结构的情况下为所述存储器访问操作服务)命中L2高速缓存目录302,则如上所述,由于这些一致性状态在与不同的高速缓存层次结构关联的处理单元200成功地在所述互连结构上发出存储器访问请求(例如,RWITM或DClaim)以获得对所述目标存储器块的独占访问时被建立,所以主机232忽略所接收到的L3目录查找的结果(方块652)并在不等待L3目录查找的结果的情况下在所述互连结构上发出对所述目标地址的存储器访问请求(方块654)。因此,优选地在没有引起与等待L3目录254的查找结果关联的额外等待时间的情况下在所述互连结构上发出所述存储器访问请求,因为L3目录254不太可能持有处于为所述加载或存储操作服务所需的一致性状态中的某一一致性状态的目标地址。如在方块656所指示的,主机232此后等待,直到在所述互连结构上发出的存储器访问请求例如通过提供所述目标存储器块或一致性消息而被服务为止,所述一致性消息指示主机232可以将L2高速缓存目录302中的目标地址的一致性状态更新为执行所述存储器访问操作所需的状态。此后,所述过程进入到已被描述的方块644和646。
返回方块650,响应于主机232判定所述目标地址没有以某一“标记的”I状态(例如,In或Ig)或有效状态(其不允许在没有首先访问低级存储器层次结构的情况下为所述存储器访问操作服务)命中L2高速缓存目录302,主机232等待L3目录254的查找结果。响应于接收到L3目录查找的结果,主机232在方块662判定所述目标地址是否以允许主机232在没有在所述互连结构上发出请求的情况下为所述存储器访问操作服务的一致性状态命中L3目录254。如果否,则所述过程前进到已被描述的方块654。但是,如果主机232在方块662判定所述目标地址以允许没有在所述互连结构上发出请求的情况下为所述存储器访问操作服务的一致性状态命中了L3目录254,则所述过程前进到方块664,方块664示出了L2高速缓存230从L3高速缓存250接收所述目标高速缓存块。然后,主机232在方块668判定其是否选择了忽略L3目录状态。如果是,则主机232丢弃从L3高速缓存250直接接收的存储器块(如在方块670示出的),并且等待通过所述互连结构从L3高速缓存250来接收所述目标存储器块。在方块670之后,所示过程的此分支在方块646结束。另一方面,如果主机232判定其没有选择忽略所述目标存储器块的L3目录状态,则如在方块644所示出的,主机232使用由L3高速缓存250提供的数据来为所述存储器访问操作服务。此后,所述过程在方块646结束。
应该再次指出,在少数情况下,投机性地绕过L3高速缓存250将被证明是不正确的,因为请求处理单元104的L3高速缓存250持有处于允许所述存储器访问操作被服务的一致性状态的所需存储器块。为了避免错误,L3高速缓存控制器252窥探所述互连结构上的存储器访问请求(包括由其处理单元104所发出的那些请求)并像任何其他窥探器那样通过所述互连结构来响应那些存储器访问请求。以此方式,如果投机性地绕过L3高速缓存250被证明是不正确的,则仍然可以为所述存储器访问操作服务,虽然比如果L2高速缓存230直接访问L3高速缓存250将引起的等待时间要长。
如已描述的,本发明提供了一种在不等待至少一个低级高速缓存目录的查找结果的情况下通过在连接高速缓存层次结构的互连结构上选择性地发出存储器访问请求来减少存储器访问等待时间的改进的数据处理系统、处理单元、高速缓存层次结构和数据处理方法。至少部分地根据与高速缓存目录中的目标地址关联的一致性状态来做出在不等待低级高速缓存目录的查找结果的情况下在所述互连结构上发出所述存储器访问请求的决定。虽然参考优选实施例具体示出并描述了本发明,但是本领域的技术人员将理解,在不偏离本发明的精神和范围的情况下,可以在其中做出各种形式和细节上的更改。

Claims (18)

1.一种数据处理方法,所述方法包括:
响应于主机接收到指示目标地址的存储器访问请求,所述主机访问高速缓存层次结构的高级高速缓存的第一高速缓存目录;
响应于所述目标地址在所述第一高速缓存目录中被与具有有效地址标记和第一无效一致性状态的表项关联,所述主机在互连结构上发出指定了所述目标地址的请求,而不考虑所述高速缓存层次结构的低级高速缓存的第二高速缓存目录中与所述目标地址关联的一致性状态;以及
响应于所述目标地址具有相对于所述第一高速缓存目录的第二无效一致性状态,所述主机在确定了所述高速缓存层次结构的所述低级高速缓存的所述第二高速缓存目录中与所述目标地址关联的一致性状态后,在所述互连结构上发出指定了所述目标地址的请求。
2.根据权利要求1的方法,还包括:
在访问所述第一高速缓存目录的同时执行对所述第二高速缓存目录的查找。
3.根据权利要求2的方法,还包括当所述目标地址在所述第一高速缓存目录中被与具有有效地址标记和第一无效一致性状态的表项关联时忽略所述第二高速缓存目录的查找结果。
4.根据权利要求1的方法,还包括:
执行对所述第二高速缓存目录的查找以响应判定所述目标地址在所述第一高速缓存目录中没有被与具有所述第一无效一致性状态的表项关联。
5.根据权利要求1的方法,其中:
所述主机是第一主机;以及
所述第一无效一致性状态指示第二主机已获得对与所述目标地址关联的目标存储器块的独占访问。
6.根据权利要求1的方法,其中:
所述响应于所述目标地址具有相对于所述第一高速缓存目录的第二无效一致性状态,所述主机在确定了所述高速缓存层次结构的所述低级高速缓存的所述第二高速缓存目录中与所述目标地址关联的一致性状态后,在所述互连结构上发出指定了所述目标地址的请求的步骤包括:
所述主机在判定所述低级高速缓存的所述第二高速缓存目录中与所述目标地址关联的所述一致性状态不允许在没有在所述互连结构上发出所述请求的情况下为所述存储器访问请求服务后,在所述互连结构上发出指定了所述目标地址的请求。
7.一种处理单元,所述处理单元包括:
处理器核心;
至少包括高级高速缓存和低级高速缓存的高速缓存层次结构,其中所述高级高速缓存包括第一高速缓存目录并且所述低级高速缓存包括第二高速缓存目录;
其中所述高级高速缓存还包括主机,所述主机响应于从所述处理器核心接收到指示目标地址的存储器访问请求,访问所述第一高速缓存目录,并且响应于所述目标地址在所述第一高速缓存目录中被与具有有效地址标记和第一无效一致性状态的表项关联,在互连结构上发出指定了所述目标地址的第一请求,而不考虑所述第二高速缓存目录中与所述目标地址关联的一致性状态;以及
其中所述主机响应于所述目标地址具有相对于所述第一高速缓存目录的第二无效一致性状态,在确定了所述高速缓存层次结构的所述低级高速缓存的所述第二高速缓存目录中与所述目标地址关联的一致性状态后,在所述互连结构上发出指定了所述目标地址的第二请求。
8.根据权利要求7的处理单元,其中所述主机在访问所述第一高速缓存目录的同时执行对所述第二高速缓存目录的查找。
9.根据权利要求8的处理单元,其中所述主机当所述目标地址在所述第一高速缓存目录中被与具有有效地址标记和第一无效一致性状态的表项关联时忽略所述第二高速缓存目录的查找结果。
10.根据权利要求7的处理单元,其中所述主机执行对所述第二高速缓存目录的查找以响应判定所述目标地址在所述第一高速缓存目录中没有被与具有所述第一无效一致性状态的表项关联。
11.根据权利要求7的处理单元,其中:
所述主机是第一主机;以及
所述第一无效一致性状态指示包括所述处理单元的数据处理系统中的第二主机已获得对与所述目标地址关联的目标存储器块的独占访问。
12.根据权利要求7的处理单元,其中所述主机在判定所述低级高速缓存的所述第二高速缓存目录中与所述目标地址关联的所述一致性状态不允许在没有在所述互连结构上发出所述请求的情况下为所述存储器访问请求服务后,在所述互连结构上发出所述第二请求。
13.一种数据处理系统,所述数据处理系统包括:
互连结构;
与所述互连结构相连的系统存储器;
与所述互连结构相连的多个处理单元,其中所述多个处理单元中的第一处理单元包括:
处理器核心;
至少包括高级高速缓存和低级高速缓存的高速缓存层次结构,其中所述高级高速缓存包括第一高速缓存目录并且所述低级高速缓存包括第二高速缓存目录;
其中所述高级高速缓存还包括主机,所述主机响应于从所述处理器核心接收到指示目标地址的存储器访问请求,访问所述第一高速缓存目录,并且响应于所述目标地址在所述第一高速缓存目录中被与具有有效地址标记和第一无效一致性状态的表项关联,在所述互连结构上发出指定了所述目标地址的第一请求,而不考虑所述第二高速缓存目录中与所述目标地址关联的一致性状态;以及
其中所述主机响应于所述目标地址具有相对于所述第一高速缓存目录的第二无效一致性状态,在确定了所述高速缓存层次结构的所述低级高速缓存的所述第二高速缓存目录中与所述目标地址关联的一致
性状态后,在所述互连结构上发出指定了所述目标地址的第二请求。
14.根据权利要求13的数据处理系统,其中所述主机在访问所述第一高速缓存目录的同时执行对所述第二高速缓存目录的查找。
15.根据权利要求14的数据处理系统,其中所述主机当所述目标地址在所述第一高速缓存目录中被与具有有效地址标记和第一无效一致性状态的表项关联时忽略所述第二高速缓存目录的查找结果。
16.根据权利要求13的数据处理系统,其中所述主机执行对所述第二高速缓存目录的查找以响应判定所述目标地址在所述第一高速缓存目录中没有被与具有所述第一无效一致性状态的表项关联。
17.根据权利要求13的数据处理系统,其中:
所述主机是第一主机;以及
所述多个处理单元包括第二处理单元;以及
所述第一无效一致性状态指示所述第二处理单元中的第二主机已获得对与所述目标地址关联的目标存储器块的独占访问。
18.根据权利要求13的数据处理系统,其中所述主机在判定所述低级高速缓存的所述第二高速缓存目录中与所述目标地址关联的所述一致性状态不允许在没有在所述互连结构上发出所述请求的情况下为所述存储器访问请求服务后,在所述互连结构上发出所述第二请求。
CNB2006100674508A 2005-03-31 2006-03-27 数据处理系统和方法 Active CN100428195C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/095,734 US7536513B2 (en) 2005-03-31 2005-03-31 Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
US11/095,734 2005-03-31

Publications (2)

Publication Number Publication Date
CN1841342A true CN1841342A (zh) 2006-10-04
CN100428195C CN100428195C (zh) 2008-10-22

Family

ID=37030379

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100674508A Active CN100428195C (zh) 2005-03-31 2006-03-27 数据处理系统和方法

Country Status (4)

Country Link
US (1) US7536513B2 (zh)
JP (1) JP4928812B2 (zh)
CN (1) CN100428195C (zh)
TW (1) TWI391821B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739357B (zh) * 2008-11-21 2012-08-29 辉达公司 多类数据高速缓存策略
CN106710616A (zh) * 2015-11-13 2017-05-24 爱思开海力士有限公司 存储器系统及其操作方法
CN108463809A (zh) * 2016-01-21 2018-08-28 高通股份有限公司 使用标签目录高速缓冲存储器提供可扩展动态随机存取存储器(dram)高速缓冲存储器管理
CN108780432A (zh) * 2016-03-10 2018-11-09 美光科技公司 用于高速缓存无效的设备及方法
CN110413541A (zh) * 2018-04-28 2019-11-05 国际商业机器公司 支持附加实地址不可知加速器的集成电路和数据处理系统
CN111767536A (zh) * 2019-04-01 2020-10-13 中国农业大学 一种抵抗处理器投机访问漏洞的cache防护方法及装置
CN113792006A (zh) * 2020-08-14 2021-12-14 阿里巴巴集团控股有限公司 具有高速缓存一致性的设备间处理系统

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7454578B2 (en) * 2005-02-10 2008-11-18 International Business Machines Corporation Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory
US7415030B2 (en) * 2005-02-10 2008-08-19 International Business Machines Corporation Data processing system, method and interconnect fabric having an address-based launch governor
US7454577B2 (en) * 2005-02-10 2008-11-18 International Business Machines Corporation Data processing system and method for efficient communication utilizing an Tn and Ten coherency states
US7474658B2 (en) 2005-02-10 2009-01-06 International Business Machines Corporation Data processing system, method and interconnect fabric supporting concurrent operations of varying broadcast scope
US7366844B2 (en) * 2005-02-10 2008-04-29 International Business Machines Corporation Data processing system and method for handling castout collisions
US8214600B2 (en) 2005-02-10 2012-07-03 International Business Machines Corporation Data processing system and method for efficient coherency communication utilizing coherency domains
US7467323B2 (en) * 2005-02-10 2008-12-16 International Business Machines Corporation Data processing system and method for efficient storage of metadata in a system memory
US7389388B2 (en) * 2005-02-10 2008-06-17 International Business Machines Corporation Data processing system and method for efficient communication utilizing an in coherency state
US7584329B2 (en) * 2005-02-10 2009-09-01 International Business Machines Corporation Data processing system and method for efficient communication utilizing an Ig coherency state
US8140770B2 (en) 2005-02-10 2012-03-20 International Business Machines Corporation Data processing system and method for predictively selecting a scope of broadcast of an operation
US8230178B2 (en) * 2005-02-10 2012-07-24 International Business Machines Corporation Data processing system and method for efficient coherency communication utilizing coherency domain indicators
US7536513B2 (en) 2005-03-31 2009-05-19 International Business Machines Corporation Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
US7237070B2 (en) * 2005-04-19 2007-06-26 International Business Machines Corporation Cache memory, processing unit, data processing system and method for assuming a selected invalid coherency state based upon a request source
US20060259695A1 (en) * 2005-05-16 2006-11-16 Texas Instruments Incorporated Visualizing contents and states of hierarchical storage systems across multiple cores
US7444494B2 (en) * 2005-05-31 2008-10-28 International Business Machines Corporation Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a history-based prediction
US7380102B2 (en) * 2005-09-27 2008-05-27 International Business Machines Corporation Communication link control among inter-coupled multiple processing units in a node to respective units in another node for request broadcasting and combined response
US7818388B2 (en) * 2005-10-07 2010-10-19 International Business Machines Corporation Data processing system, method and interconnect fabric supporting multiple planes of processing nodes
US7512742B2 (en) * 2006-01-17 2009-03-31 International Business Machines Corporation Data processing system, cache system and method for precisely forming an invalid coherency state indicating a broadcast scope
US8495308B2 (en) * 2006-10-09 2013-07-23 International Business Machines Corporation Processor, data processing system and method supporting a shared global coherency state
US8205024B2 (en) * 2006-11-16 2012-06-19 International Business Machines Corporation Protecting ownership transfer with non-uniform protection windows
US7890704B2 (en) * 2006-12-19 2011-02-15 International Business Machines Corporation Implementing an enhanced hover state with active prefetches
US7680985B2 (en) * 2007-06-28 2010-03-16 International Business Machines Corporation Method and apparatus for accessing a split cache directory
US20090006753A1 (en) * 2007-06-28 2009-01-01 David Arnold Luick Design structure for accessing a cache with an effective address
US20090006754A1 (en) * 2007-06-28 2009-01-01 Luick David A Design structure for l2 cache/nest address translation
US20090006803A1 (en) * 2007-06-28 2009-01-01 David Arnold Luick L2 Cache/Nest Address Translation
US7937530B2 (en) * 2007-06-28 2011-05-03 International Business Machines Corporation Method and apparatus for accessing a cache with an effective address
US20090089510A1 (en) * 2007-09-28 2009-04-02 Mips Technologies, Inc. Speculative read in a cache coherent microprocessor
US8347037B2 (en) * 2008-10-22 2013-01-01 International Business Machines Corporation Victim cache replacement
US8209489B2 (en) * 2008-10-22 2012-06-26 International Business Machines Corporation Victim cache prefetching
US8499124B2 (en) * 2008-12-16 2013-07-30 International Business Machines Corporation Handling castout cache lines in a victim cache
US8225045B2 (en) * 2008-12-16 2012-07-17 International Business Machines Corporation Lateral cache-to-cache cast-in
US8489819B2 (en) * 2008-12-19 2013-07-16 International Business Machines Corporation Victim cache lateral castout targeting
US8949540B2 (en) * 2009-03-11 2015-02-03 International Business Machines Corporation Lateral castout (LCO) of victim cache line in data-invalid state
US8327073B2 (en) * 2009-04-09 2012-12-04 International Business Machines Corporation Empirically based dynamic control of acceptance of victim cache lateral castouts
US8347036B2 (en) * 2009-04-09 2013-01-01 International Business Machines Corporation Empirically based dynamic control of transmission of victim cache lateral castouts
US8312220B2 (en) * 2009-04-09 2012-11-13 International Business Machines Corporation Mode-based castout destination selection
US8667227B2 (en) * 2009-12-22 2014-03-04 Empire Technology Development, Llc Domain based cache coherence protocol
US9189403B2 (en) * 2009-12-30 2015-11-17 International Business Machines Corporation Selective cache-to-cache lateral castouts
US9411728B2 (en) 2011-12-23 2016-08-09 Intel Corporation Methods and apparatus for efficient communication between caches in hierarchical caching design
US9588889B2 (en) * 2011-12-29 2017-03-07 Intel Corporation Domain state
US9201792B2 (en) * 2011-12-29 2015-12-01 Intel Corporation Short circuit of probes in a chain
US9785568B2 (en) * 2014-05-19 2017-10-10 Empire Technology Development Llc Cache lookup bypass in multi-level cache systems
KR102312336B1 (ko) * 2014-07-29 2021-10-14 삼성전자주식회사 데이터 공유 방법 및 이를 위한 장치
US9665489B2 (en) * 2015-02-11 2017-05-30 Qualcomm Incorporated Methods of selecting available cache in multiple cluster system
GB2575877B (en) * 2018-07-27 2021-06-09 Advanced Risc Mach Ltd Memory protection unit using memory protection table stored in memory system
US11163700B1 (en) 2020-04-30 2021-11-02 International Business Machines Corporation Initiating interconnect operation without waiting on lower level cache directory lookup
GB2607939A (en) 2021-06-17 2022-12-21 Morganic Solutions Ltd A flexible metal faced composite mould tool

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113514A (en) * 1989-08-22 1992-05-12 Prime Computer, Inc. System bus for multiprocessor computer system
US5826052A (en) * 1994-04-29 1998-10-20 Advanced Micro Devices, Inc. Method and apparatus for concurrent access to multiple physical caches
US5852716A (en) 1996-07-02 1998-12-22 Sun Microsystems, Inc. Split-SMP computer system with local domains and a top repeater that distinguishes local and global transactions
US6374330B1 (en) * 1997-04-14 2002-04-16 International Business Machines Corporation Cache-coherency protocol with upstream undefined state
US6115795A (en) * 1997-08-06 2000-09-05 International Business Machines Corporation Method and apparatus for configurable multiple level cache with coherency in a multiprocessor system
US6701416B1 (en) * 1998-02-17 2004-03-02 International Business Machines Corporation Cache coherency protocol with tagged intervention of modified values
US6347361B1 (en) * 1998-02-17 2002-02-12 International Business Machines Corporation Cache coherency protocols with posted operations
US6192451B1 (en) * 1998-02-17 2001-02-20 International Business Machines Corporation Cache coherency protocol for a data processing system including a multi-level memory hierarchy
US6240490B1 (en) * 1998-07-20 2001-05-29 International Business Machines Corporation Comprehensive multilevel cache preloading mechanism in a multiprocessing simulation environment
US6397303B1 (en) * 1999-06-24 2002-05-28 International Business Machines Corporation Data processing system, cache, and method of cache management including an O state for memory-consistent cache lines
US6341331B1 (en) * 1999-10-01 2002-01-22 International Business Machines Corporation Method and system for managing a raid storage system with cache
US6606676B1 (en) 1999-11-08 2003-08-12 International Business Machines Corporation Method and apparatus to distribute interrupts to multiple interrupt handlers in a distributed symmetric multiprocessor system
US6385702B1 (en) * 1999-11-09 2002-05-07 International Business Machines Corporation High performance multiprocessor system with exclusive-deallocate cache state
TW463089B (en) * 2000-04-18 2001-11-11 Rdc Semiconductor Co Ltd Build-in micro controller architecture and method that are able to planned as master and cache memory
US6636949B2 (en) * 2000-06-10 2003-10-21 Hewlett-Packard Development Company, L.P. System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing
JP2002032265A (ja) * 2000-07-14 2002-01-31 Hitachi Ltd キャッシュ・アクセス制御方式およびデータ処理システム
US6629210B1 (en) * 2000-10-26 2003-09-30 International Business Machines Corporation Intelligent cache management mechanism via processor access sequence analysis
US6662275B2 (en) * 2001-02-12 2003-12-09 International Business Machines Corporation Efficient instruction cache coherency maintenance mechanism for scalable multiprocessor computer system with store-through data cache
US6754782B2 (en) 2001-06-21 2004-06-22 International Business Machines Corporation Decentralized global coherency management in a multi-node computer system
US6901485B2 (en) * 2001-06-21 2005-05-31 International Business Machines Corporation Memory directory management in a multi-node computer system
US6662277B2 (en) * 2001-07-31 2003-12-09 Hewlett-Packard Development Company, L.P. Cache system with groups of lines and with coherency for both single lines and groups of lines
US6658539B2 (en) * 2001-10-16 2003-12-02 International Business Machines Corporation Super-coherent data mechanisms for shared caches in a multiprocessing system
US6785774B2 (en) 2001-10-16 2004-08-31 International Business Machines Corporation High performance symmetric multiprocessing systems via super-coherent data mechanisms
US6704844B2 (en) * 2001-10-16 2004-03-09 International Business Machines Corporation Dynamic hardware and software performance optimizations for super-coherent SMP systems
US7100001B2 (en) 2002-01-24 2006-08-29 Intel Corporation Methods and apparatus for cache intervention
US7054999B2 (en) * 2002-08-02 2006-05-30 Intel Corporation High speed DRAM cache architecture
US7096323B1 (en) 2002-09-27 2006-08-22 Advanced Micro Devices, Inc. Computer system with processor cache that stores remote cache presence information
CN1499382A (zh) * 2002-11-05 2004-05-26 华为技术有限公司 廉价冗余磁盘阵列系统中高效高速缓存的实现方法
GB2403560A (en) 2003-07-02 2005-01-05 Advanced Risc Mach Ltd Memory bus within a coherent multi-processing system
US7484044B2 (en) * 2003-09-12 2009-01-27 Intel Corporation Method and apparatus for joint cache coherency states in multi-interface caches
US7536513B2 (en) 2005-03-31 2009-05-19 International Business Machines Corporation Data processing system, cache system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739357B (zh) * 2008-11-21 2012-08-29 辉达公司 多类数据高速缓存策略
CN106710616A (zh) * 2015-11-13 2017-05-24 爱思开海力士有限公司 存储器系统及其操作方法
CN108463809A (zh) * 2016-01-21 2018-08-28 高通股份有限公司 使用标签目录高速缓冲存储器提供可扩展动态随机存取存储器(dram)高速缓冲存储器管理
CN108780432A (zh) * 2016-03-10 2018-11-09 美光科技公司 用于高速缓存无效的设备及方法
CN108780432B (zh) * 2016-03-10 2021-11-02 美光科技公司 用于高速缓存无效的设备及方法
CN110413541A (zh) * 2018-04-28 2019-11-05 国际商业机器公司 支持附加实地址不可知加速器的集成电路和数据处理系统
CN110413541B (zh) * 2018-04-28 2023-04-25 国际商业机器公司 支持附加实地址不可知加速器的集成电路和数据处理系统
CN111767536A (zh) * 2019-04-01 2020-10-13 中国农业大学 一种抵抗处理器投机访问漏洞的cache防护方法及装置
CN111767536B (zh) * 2019-04-01 2024-03-22 中国农业大学 一种抵抗处理器投机访问漏洞的cache防护方法及装置
CN113792006A (zh) * 2020-08-14 2021-12-14 阿里巴巴集团控股有限公司 具有高速缓存一致性的设备间处理系统

Also Published As

Publication number Publication date
JP2006285992A (ja) 2006-10-19
US7536513B2 (en) 2009-05-19
JP4928812B2 (ja) 2012-05-09
CN100428195C (zh) 2008-10-22
US20060224833A1 (en) 2006-10-05
TW200707191A (en) 2007-02-16
TWI391821B (zh) 2013-04-01

Similar Documents

Publication Publication Date Title
CN100428195C (zh) 数据处理系统和方法
CN1866222A (zh) 用于初始化存储器块的处理器、数据处理系统和方法
CN100520738C (zh) 更新无效一致状态的方法、数据处理系统和高速缓存系统
CN101030171B (zh) 减少无效一致状态的数据处理系统、高速缓存系统和方法
CN100570582C (zh) 数据处理系统和方法
CN100444134C (zh) 数据处理系统和方法
US7467323B2 (en) Data processing system and method for efficient storage of metadata in a system memory
US8140770B2 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation
US7584329B2 (en) Data processing system and method for efficient communication utilizing an Ig coherency state
CN101042678A (zh) 数据处理的单元、系统和方法
CN101162442A (zh) 支持共享全局一致性状态的处理器、数据处理系统和方法
CN100570584C (zh) 数据处理系统中初始化存储块的方法和装置
CN100465923C (zh) 数据处理设备和方法
CN1869957A (zh) 数据处理系统中的数据处理方法和装置
CN100410899C (zh) 数据处理系统中的数据处理的方法和装置
CN101005446A (zh) 选择操作的广播范围的数据处理系统、方法和处理单元
CN1869955A (zh) 数据处理系统中的数据处理的方法和装置
CN1949192A (zh) 数据处理系统和方法
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