CN103246614A - 多处理器数据处理系统、高速缓存存储器及其方法 - Google Patents
多处理器数据处理系统、高速缓存存储器及其方法 Download PDFInfo
- Publication number
- CN103246614A CN103246614A CN2013100499693A CN201310049969A CN103246614A CN 103246614 A CN103246614 A CN 103246614A CN 2013100499693 A CN2013100499693 A CN 2013100499693A CN 201310049969 A CN201310049969 A CN 201310049969A CN 103246614 A CN103246614 A CN 103246614A
- Authority
- CN
- China
- Prior art keywords
- cache line
- target cache
- state
- cache memory
- described target
- 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/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1008—Correctness of operation, e.g. memory ordering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
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)计算机系统包括全部被耦合到系统互连的多个处理单元,系统互连通常包括一个或多个地址总线、数据总线和控制总线。被耦合到系统互连的是系统存储器,其表示多处理器计算机系统中的易失性存储器的最低级别,并且通常是所有处理单元的读和写访问可访问的。为了降低对驻留于系统存储器中的指令和数据的访问延迟,每个处理单元通常还由相应的多级高速缓存层级来支持,该多级高速缓存层级的较低级别可由一个或多个处理器核共享。
高速缓存存储器一般被用来临时缓冲可能被处理器访问的存储块,以便通过降低必须从系统存储器载入所需数据和指令而引入的访问延迟来加速处理。在某些多处理器(MP)系统中,高速缓存层级包括至少两个级别。级别1(L1)或称较高级别高速缓存通常是与特定处理器核相关联的专用高速缓存,并且无法被MP系统中的其他核访问。通常,响应于诸如加载或存储指令的存储器访问指令,处理器核首先访问较高级别高速缓存的目录。如果在较高级别高速缓存中未找到所请求的存储块,则处理器核继而针对所请求的存储块访问较低级别高速缓存(例如,级别2(L2)或级别3(L3)高速缓存)。最低级别高速缓存(例如,L3)常在多个处理器核之间被共享。
由于多个处理器核可以请求对数据的相同高速缓存线的写访问,并且由于被修改的高速缓存线并非立即与系统存储器同步,所以多处理器计算机系统的高速缓存层级通常实现高速缓存一致性协议,以至少保证各处理器核对系统存储器内容的“视野”之间的最低水平的一致性。特别地,高速缓存一致性至少要求在处理单元访问存储块的拷贝并且随后访问存储块的已更新拷贝之后,处理单元无法再次访问存储块的旧拷贝。
高速缓存一致性协议通常定义与每个高速缓存层级的高速缓存线相关联存储的一组一致性状态,以及被用来在高速缓存层级之间传送一致性状态信息的一组一致性消息。在很多情况下,一致性协议的一致性状态和状态转移被设计成相对于存储类型操作而言有利于读取类型存储器访问操作。在存在显著加载竞争的情况下,读取类型操作相对于存储类型操作的优先化可能导致针对存储类型操作的转发进度问题。
发明内容
一种多处理器数据处理系统,包括包含高速缓存存储器的多个高速缓存存储器。该高速缓存存储器发出针对目标高速缓存线的读取类型操作。在等待目标高速缓存线的接收的同时,高速缓存存储器进行监视以检测针对该目标高速缓存线的竞争存储类型操作。响应于接收到目标高速缓存线,高速缓存存储器停顿高速缓存存储器中的目标高速缓存线,并且基于是否检测到竞争存储类型操作来设置高速缓存存储器中停顿的目标高速缓存线的一致性状态。
附图说明
在所附权利要求中阐述了本发明的新型特征可信特性。然而,当结合附图来阅读时,通过参考说明性实施例的以下详细描述,将最好地理解本发明本身以及优选使用方式、其其他目的和优点,在所述附图中;
图1是根据一个实施例的示例性数据处理系统的高级方框图;
图2是根据一个实施例的示例性处理单元的更详细方框图;
图3是根据一个实施例的L2高速缓存分片的详细方框图;
图4是根据一个实施例的较低级高速缓存中的处理器存储器访问操作的处理的示例性时序图;以及
图5是根据一个实施例的服务于处理器存储器访问操作的示例性过程的高级逻辑流程图。
具体实施方式
现在参考附图,其中,相同的参考标号自始至终参考相同和相应部分,并且特别地参考图1,示出了描绘根据一个实施例的示例性数据处理系统的高级方框图。数据处理系统被描绘为高速缓存一致的对称多处理器(SMP)数据处理系统100。如图所示,数据处理系统100包括用于处理数据和指令的多个处理节点102a、102b。处理节点102被耦合到系统互连110以便传送地址、数据和控制信息。系统互连110例如可以实现为总线互连、开关互连或混合型互连。
在所描绘的实施例中,每个处理节点102被实现为包含四个处理单元104a-104d的多芯片模块(MCM),每个处理单元优选地被实现为相应的集成电路。每个处理节点102中的处理单元104由本地互连114耦合以用于相互通信以及与系统互连110的通信;类似于系统互连110,本地互连114例如可以利用一个或多个总线和/或开关来实现。
如下文参考图2更详细地描述的,每个处理单元104包括被耦合到本地互连114的存储器控制器106,用于提供与相应系统存储器108的接口。驻留于系统存储器108中的数据和指令通常可由数据处理系统100中的任何处理节点102的任何处理单元104中的处理器核访问和修改。在备选实施例中,一个或多个存储器控制器106(和系统存储器108)可被耦合到系统互连110而不是本地互连114。
本领域的技术人员将认识到,图1的SMP数据处理系统100可以包括多个附加未示出部件,诸如互连桥、非易失性存储器、用于到网络或附接设备的连接的端口等。由于此类附加部件不是所述实施例的理解所需的,所以未在图1中将其示出或在本文中进一步讨论。然而,还应理解的是本文所述的增强可应用于各种架构的高速缓存一致性数据处理系统,并且不以任何方式局限于图1中所示的一般化数据处理系统架构。
现在参考图2,描绘了根据一个实施例的示例性处理单元104的更详细方框图。在所描绘的实施例中,每个处理单元104是包括用于处理指令和数据的两个处理器核200a、200b的集成电路。在优选实施例中,每个处理器核200能够独立地同时执行多个硬件执行线程。如所描绘的,每个处理器核200包括一个或多个执行单元,诸如加载-存储单元(LSU)202,以用于执行指令。由LSU202执行的指令包括存储器访问指令,其请求对存储块的访问或者导致针对存储块访问的请求的生成。
每个处理器核200的操作由多级易失性存储器层级支持,该多级易失性存储器层级在其最低级别具有经由集成存储器控制器106访问的共享系统存储器108,并且在其较高级别具有高速缓存存储器的一个或多个级别,其在说明性实施例中包括在每个处理器核200内并且由其专有的快取(store-through)级别1(L1)高速缓存226以及用于每个处理器核220a、200b的相应存入(store-in)级别2(L2)高速缓存230。为了高效地处理对可高速缓存地址的多个并发存储器访问请求,每个L2高速缓存230可以利用多个L2高速缓存分片230a1-230aN来实现,其中每个L2高速缓存分片处理针对实际存储器地址的相应集合的存储器访问请求。
虽然所示出的高速缓存层级仅包括高速缓存的两个级别,但是本领域的技术人员将认识到,备选实施例可以包括片上或芯外、内联或后备的其他级别(L3、L4等)高速缓存,其在内容上可以与较高级别高速缓存是完全包含的、部分包含的或非包含的。
每个处理单元104还包括集成和分布式结构控制器216,其负责控制本地互连114和系统互连110上的操作流以及实现要实现所选的高速缓存一致性协议所需的一致性通信。处理单元104还包括集成I/O(输入/输出)控制器214,其支持一个或多个I/O设备(未描绘)的附接。
在操作中,当处理器核200执行的硬件线程包括请求执行指定存储器访问操作的存储器访问指令时,LSU202执行该存储器访问指令以确定存储器访问请求的目标实际地址。LSU202继而向其处理器核200内的哈希逻辑206至少传送存储器访问请求,其至少包括事务类型(ttype)和目标实际地址。哈希逻辑206对目标实际地址进行哈希以识别适当的目的地(例如,L2高速缓存分片203a1-230aN)并且将服务请求分派到适当的目的地。
现在参考图3,示出了根据一个实施例的L2高速缓存分片230a1-230aN(总体上称为L2高速缓存分片230a)之一的示例性实施例的更详细方框图。如图3中所示,L2高速缓存分片230a包括高速缓存阵列302和高速缓存阵列302的内容的目录308。虽然未明确地示出,但是优选地,高速缓存阵列302利用单个读端口和单个写端口来实现,以减小实现高速缓存阵列302所需的管芯面积。
假设高速缓存阵列302和目录308按照惯例被设置为关联的,系统存储器108中的存储位置使用系统存储器(实际)地址内的预定索引位而被映射到高速缓存阵列302内的特定同余类(congruence class)。存储在高速缓存阵列302的高速缓存线内的特定存储块被记录在高速缓存目录308中,其包含用于每个高速缓存线的一个目录条目。虽然在图3中未明确地描绘,但本领域的技术人员将理解,高速缓存目录308中的每个目录条目包括各种字段,例如,识别保持在高速缓存阵列302的相应高速缓存线中的存储块的实际地址的标记字段、指示高速缓存线的一致性状态的状态字段、指示高速缓存线相对于同一同余类中的其他高速缓存线的替换顺序的LRU(最近最少使用)字段以及指示存储块是否被保持在相关联的L1高速缓存226中的包含位。
L2高速缓存分片230a包括多个(例如,16个)读-要求(RC)机312a-312n,以用于独立地且同时地服务于从附属处理器核200接收到的加载(LD)和存储(ST)请求。为了服务于源自处理器核200而不是附属处理器核200的远程存储器访问请求,L2高速缓存分片230a还包括多个侦测机311a-311m。每个侦测机311可以独立地且同时地处理从本地互连114侦测到的远程存储器访问请求。将会认识到,RC机312对存储器访问请求的服务可能需要对高速缓存阵列302内的存储块的替换或无效。因此,L2高速缓存分片230a包括管理存储块从高速缓存阵列302的移除和写回的CO(掷出)机310。
L2高速缓存分片230a还包括仲裁器305,其控制复用器M1-M2对从附属处理器核200接收到的本地存储器访问请求和在本地互连114上侦测的远程请求的处理进行排序。包括本地加载和存储操作及远程读和写操作的存储器访问请求根据由仲裁器305实现的仲裁策略被转发至分派逻辑,诸如分派流水线306,其在给定数目的周期内关于目录308和高速缓存阵列302处理每个读取/加载和存储请求。
L2高速缓存分片230a还包括RC队列320和CPI(掷出推干预)队列318,其分别缓冲被插入高速缓存阵列302中和从高速缓存阵列302被移除的数据。RC队列320包括多个缓冲器条目,每个条目各自对应于一个特定的RC机312,使得所分派的每个RC机312仅从指定缓冲器条目获取数据。类似地,CPI队列318包括多个缓冲器条目,每个条目各自对应于一个特定的掷出机310以及侦测机311,使得CO机310和所分派的每个侦测器311仅从各指定CPI缓冲器条目获取数据。
每个RC机312还具有为其分配的多个RC数据(RCDAT)缓冲器322中的相应一个,以用于缓冲从高速缓存阵列302读取的和/或经由重新加载总线323从本地互连114接收到的存储块。分配给每个RC机312的RCDAT缓冲器322优选地构造有与可由关联的RC机312服务的存储器访问请求相对应的连接和功能。RCDAT缓冲器322具有关联存储数据复用器M4,其从其输入之中选择数据字节以便响应于由仲裁器305生成的未示出的选择信号而缓存在RCDAT缓冲器322中。
在操作中,包括事务类型(ttype)、目标实际地址和存储数据的处理器存储请求从存储队列(STQ)304内的附属处理器核200被接收。从STQ304,存储数据经由数据路径324被传送到存储数据复用器M4,并且存储类型和目标地址被传递至复用器M1。作为输入,复用器M1还从处理器核200接收处理器加载请求并且从RC机312接收目录写请求。响应于由仲裁器305生成的未示出的选择信号,复用器M1选择其输入请求之一转发给复用器M2,复用器M2还接收经由远程请求路径326从本地互连114接收到的远程请求作为输入。仲裁器305调度本地和远程存储器访问请求以便处理,并且基于该调度而生成一系列选择信号328。响应于由仲裁器305生成的选择信号328,复用器M2选择从复用器M1接收到的本地请求或从本地互连114侦测的远程请求,作为要处理器下一存储器访问请求。
现在参考图4,描绘了图1的数据处理系统100的互连结构上的示例性操作的时空图。该操作开始于请求阶段450,其中,主(master)400(例如L2高速缓存230的RC机312)在互连结构上发出请求402。请求402优选地至少包括指示期望访问类型的事务类型和指示将由该请求访问的资源的资源标识符(例如,实际地址)。请求的常见类型优选地包括下面在表I中所记载的那些。
表I
请求402由侦测器404、例如L2高速缓存分片230a的侦测器311a-311m接收。一般地,由于某些异常,与请求402的主相同的L2高速缓存230a中的侦测器311没有侦测到请求402(即,通常不存在自动侦测),因为只有当无法由处理单元104在内部提供服务的请求402时,才在互连结构上传送请求402。
操作继续以部分响应阶段455。在部分响应阶段455期间,每个接收并且处理请求402的侦测器404提供表示至少该侦测器404对请求402的响应的相应部分响应406。集成存储器控制器106内的侦测器404基于例如该侦测器404是否负责请求地址及其是否具有可用于服务于该请求的资源,来确定要提供的部分响应406。L2高速缓存230的侦测器404可以基于例如其L2高速缓存目录308的可用性、侦测器404内用以处理请求的侦测逻辑实例311的可用性以及与L2高速缓存目录308中的请求地址相关联的一致性状态来确定其部分响应406。
操作继续以组合响应阶段460。在组合响应阶段460期间,侦测器404的部分响应406被响应逻辑422的一个或多个实例分阶段或一次全部在逻辑上组合,以确定对请求402的系统级组合响应(在本文中称为“CR,,或“Cresp”)410。在下文将要假设的一个优选实施例中,负责生成组合响应410的响应逻辑422的实例位于包含例如在结构控制器216中发出请求402的主400的处理单元104中。响应逻辑422经由互连结构向主机400和侦测器404提供组合响应410,以指示对请求402的系统级响应(例如,成功、失败、重试等)。如果CR410指示请求402的成功,则CR410可以指示例如用于所请求存储块的数据资源、其中所请求存储块将被主400高速缓存的一致性状态以及是否要求使一个或多个L2高速缓存230中的所请求存储块无效的“清理”(cleanup)操作。
响应于组合响应410的接收,一个或多个主400和侦测器404通常执行一个或多个操作以便服务于请求402。这些操作可以包括向主400提供数据、使高速缓存在一个或多个L2高速缓存230中的数据的一致性状态无效或进行更新、执行掷出操作、将数据写回到系统存储器108等。如果请求402要求,可以在由响应逻辑422生成组合响应410之前或之后向和从主400传送所请求或目标存储块。
在以下描述中,将参考侦测器相对于请求所指定的请求地址而言是最高一致性点(HPC)、最低一致性点(LPC)或者两者都不是来描述侦测器对请求402的部分响应406和由侦测器404响应于请求402和/或其组合响应410执行的操作。LPC在本文中被定义为充当用于存储块的最后储存器的存储器件或I/O设备。如果不存在保持存储块的拷贝的高速缓存参与者,LPC保持该存储块的仅有映像。如果不存在用于存储块的HPC高速缓存参与者,LPC具有许可或拒绝修改存储块的请求的唯一权限。另外,当LPC数据是最近的且在不存在能够提供该数据的高速缓存参与者的情况下,LPC将该数据提供给用以读取或修改存储块的请求。如果高速缓存参与者具有更近的数据拷贝,但是无法将其提供给请求,则LPC不会提供旧数据并重试该请求。针对数据处理系统实施例中的典型请求,LPC将是用于保持被参考存储块的系统存储器108的存储器控制器106。HPC在此被定义为被唯一识别的设备,其高速缓存存储块的真实映像(其可以是也可以不是与LPC处的响应存储块一致),并且具有许可或拒绝用以修改存储块的权限。描述性地,HPC(即使其拷贝与在LPC后面的主存储器一致)也响应于用以读取或修改存储块的任何请求而向请求者提供存储块的拷贝(高速缓存至高速缓存传输比LPC至高速缓存传输更快)。因此,针对数据处理系统实施例中的典型请求,HPC(如果有的话)将是L2高速缓存230。虽然可以利用其他指示符来指定用于存储块的HPC,优选实施例指定用于利用L2高速缓存230的L2高速缓存目录308内的所选高速缓存一致性状态的存储块的HPC(如果有的话)。在优选实施例中,除提供(1)高速缓存是否是用于存储块的HPC的指示之外,一致性协议内的一致性状态还指示(2)高速缓存拷贝是唯一的(即,是系统级唯一高速缓存拷贝),(3)是否和何时高速缓存能够向用于存储块的请求的主提供存储块的拷贝,以及(4)存储块的高速缓存映像是否与LPC(系统存储器)处的相应存储块一致。可以例如在下面在表II中概括的众所周知的MESI(已修改、独有、共享、无效)协议的示例性变体来表示这四个属性。例如在美国专利号7,389,388中可以找到关于一致性协议的其他信息,该专利被通过引用结合到本文中。
表II
在以上表II中值得注意的是,T、SL和S状态,其全部是“共享”一致性状态,因为高速缓存存储器可以同时地保持被另一高速缓存存储器保持在这些状态中的任何一个的高速缓存线的拷贝。T和Te状态识别从前分别地将关联高速缓存线保持在M或Me状态中的一个并向另一高速缓存存储器提供关联高速缓存线的仅查询拷贝的HPC高速缓存存储器。作为HPC,将高速缓存线保持在T或Te一致性状态的高速缓存存储器具有修改高速缓存线或向另一高速缓存存储器提供此类权限的权限。将高速缓存线保持在Tx状态(例如,T或Te)的高速缓存存储器充当用于该高速缓存线的仅查询拷贝的最后手段(在Cresp之后)的高速缓存数据源,因为如果没有将高速缓存线保持在SL状态的高速缓存存储器可用于充当数据源(在Cresp之前),则高速缓存存储器将仅向另一高速缓存存储器提供仅查询拷贝。
响应于高速缓存存储器从处于T一致性状态的高速缓存存储器接收到高速缓存线的仅查询拷贝,在高速缓存存储器处形成SL状态。虽然SL状态不是HPC一致性状态,但是将高速缓存线保持在SL状态的高速缓存存储器具有向另一高速缓存存储器提供该高速缓存线的仅查询拷贝的能力,并且能够在Cresp的接收之前这样做。响应于向另一高速缓存存储器提供高速缓存线的仅查询拷贝(其假设SL状态),提供高速缓存线的仅查询拷贝的高速缓存存储器将用于高速缓存线的其一致性状态从SL更新为S。因此,SL一致性状态的实现能够促使遍及整个多处理器数据处理系统创建被频繁查询的高速缓存线的多个仅查询拷贝,有利地减少对那些高速缓存线的仅查询访问的延迟。
再次参考图4,用于在请求402中参考的存储块的HPC(如果有的话)或者存储块的LPC(在不存在HPC的情况下)优选地具有响应于请求402而保护存储块的所有权转移(必要时)的责任。在图4中所示的示例性方案中,由请求402的请求地址指定的用于存储块的HPC(或者在不存在HPC的情况下,LPC)处的侦测器404n在保护窗口412a期间以及在后续窗口扩展412b期间保护所请求存储块的所有权到主400的传递,保护窗从侦测器404n确定其部分响应406的时间开始延伸,直至侦测器304n接收到组合响应410,所述后续窗口扩展412b使可编程时间延伸超过侦测器404n进行的组合响应410的接收。在保护窗口412a和窗口扩展412b期间,侦测器404n通过向指定同一请求地址的其他请求提供部分响应406来保护所有权传递,所述同一地址请求防止其他主获得所有权(例如,重试部分响应)直至所有权已被成功地传递至主400。主400同样地发起保护窗413以在接收到组合响应410之后保护在请求402中所请求的存储块的其所有权。
由于侦测器404全部具有用于处理上述CPU和I/O请求的有限资源,所以多个不同水平的部分响应和相应CR是可能的。例如,如果负责所请求存储块的存储器控制器106内的侦测器具有可用来处理请求的队列,则侦测器可以用指示其能够充当用于请求的LPC的部分响应进行响应。另一方面,如果侦测器不具有可用来处理请求的队列,则侦测器可以用指示其为用于存储器的LPC的部分响应进行响应,但是无法当前服务于该请求。同样地,L2高速缓存230中的侦测器311可以要求侦测逻辑的可用实例和对L2高速缓存目录406的访问以便处理请求。对这些资源中的一者(或两者)的访问的不存在导致用信号通知由于所需资源不存在而无法服务于请求的部分响应(和相应CR)。
如上文所讨论的,读取类型操作一般在数据处理系统中优先于存储类型操作,因为通过软件程序的时间临界路径通常是由加载延迟确定的。可以用多个数据处理系统属性来表示读取类型操作相比于存储类型操作的优先化,包括硬件架构、存储器模型和由给定数据处理系统实现的一致性协议。例如,在表II中概括的一致性协议通过遍及整个多处理器数据处理系统支持被频繁查询的高速缓存线的多个分布式仅查询(SL或S)拷贝的形成来反映此优先化。虽然高速缓存线的仅查询拷贝的多个源的可用性减少了非存储修改操作的访问延迟,但遍及整个数据处理系统分布的高速缓存线的多个拷贝的存在可以增加存储修改访问的访问延迟,因为保持高速缓存线的仅查询拷贝并服务于用于仅查询访问的请求的高速缓存存储器中的任何一个可以迫使重试用于存储修改访问的竞争请求。在某些情况下,存储修改访问的反复重试可能减慢或者甚至停止程序的向前进展(例如,如果要求存储修改访问释放高度竞争锁)。
如下文参考图5详细地描述的,可以通过减少针对所选存储块的存储类型操作所经历的竞争来解决与读优先化相关联的性能问题。特别地,可以如下这样来降低数据处理系统中针对存储类型操作的竞争:将高速缓存线的一致性状态设置为指示保持该高速缓存线的高速缓存存储器无法向其他请求者提供高速缓存线的附加拷贝的一致性状态,从而在整个系统中限制作为竞争的读取类型和存储类型操作的目标的高速缓存线的共享拷贝的复制。通过减少高速缓存线的附加拷贝的复制,还降低了以高速缓存线为目标的存储类型操作被迫由侦测高速缓存存储器重试的概率。
现在转到图5,示出了高速缓存存储器用来动态地设置用于作为竞争读取类型和存储类型操作的目标的高速缓存线的一致性状态以限制高速缓存线的附加拷贝的复制的示例性过程的高级逻辑流程图。为了明了起见,流程图的描述将偶尔返回参考图1-图4。
在图5中描绘的过程在方框500处开始且然后前进至方框501,其图示出例如响应于在目录308中错过的处理器加载请求而在本地互连114上发出读取类型请求的L2高速缓存存储器230中的RC机312。读取类型操作可以是如前所述的读请求或者对目标高速缓存线的任何其他非存储修改访问。如在方框502中所描绘的,在RC机312等待用于其读取类型请求的组合响应的接收的同时,RC机312保持在忙碌状态。如上文参考图4所述的,读取类型请求被侦测器404接收,其中的每一个向响应逻辑422提供指示该侦测器404服务于读取类型请求的能力的Presp。响应逻辑422根据从侦测器404接收到的Presp生成Cresp并将该Cresp提供给RC机312和侦测器404。Cresp可以指定例如将向请求L2高速缓存存储器230提供所请求(目标)高速缓存线的数据源和将在请求L2高速缓存存储器230处与高速缓存线相关联的一致性状态。
响应于RC机312检测到用于读取类型请求的Cresp,过程前进至下文所述的方框510。在尚未接收到Cresp的同时,RC机312进行监视以检测涉及与读取类型请求相同的目标高速缓存线的任何竞争的存储类型操作(即,任何存储修改操作)(方框506)。如果未检测到此类竞争的存储,则该过程继续到方框502,其已经描述。否则,如果在在方框504处接收到Cresp之前在方框506处检测到竞争存储类型操作,则该过程继续到方框508。
在方框508处,RC机312设置覆盖标记以指示如果由即将出现的Cresp指定了SL一致性状态,则指定SL状态应被覆盖,并且S一致性状态应代之以与请求L2高速缓存230处的目标高速缓存线相关联。更一般地,RC机312将标记设置为准备利用指示高速缓存线无法向将来的请求者提供目标高速缓存线的拷贝的替代一致性状态来覆盖指示其L2高速缓存存储器230被允许向将来的请求者提供目标高速缓存线的拷贝的任何已指定一致性状态。将高速缓存线保持在指示L2高速缓存存储器230无法像请求者提供高速缓存线的拷贝的一致性状态潜在地减少了在到未来请求的Cresp之前插入数据的共享高速缓存侦测器的数目,并且潜在地促使HPC高速缓存充当最后手段的中间数据源。在方框508之后,过程返回至已经描述的方框502。
现在参考方框510,RC机312确定针对所请求高速缓存线所指定的一致性状态是否将允许L2高速缓存存储器230在Cresp(例如,为SL状态)之前向未来请求者提供高速缓存线。如果Cresp未指定将允许请求L2高速缓存存储器230向此类未来请求者提供高速缓存线的一致性状态,则RC机312将对应于目标高速缓存线的目录308中的条目更新成由Cresp指示的一致性状态(方框516)。其后,该过程传递至方框518,其描绘了在需要时将覆盖标记清除的RC机312。在方框518,过程在方框520处继续,并且RC机312继续正常地处理读取类型操作。例如,在方框520处,RC机312停顿高速缓存阵列302中响应于读取类型请求而被接收的目标高速缓存线。在方框520之后,RC机312返回至空闲状态,并且该过程在方框522处结束。
返回方框510,如果Cresp为所请求的高速缓存线指定了指示将允许L2高速缓存存储器230向另一请求者(例如,SL)提供目标高速缓存线的拷贝的一致性状态,则过程在方框512处继续。在方框512处,RC机312在方框508处确定是否设置了覆盖标记。然而,在某些情况下,从不会到达方框508,并且因此从不会设置覆盖标记。如果在方框512处,RC机312确定未设置覆盖标记,则该过程在上文所述的方框516处继续。如果RC机312在方框512处确定设置了覆盖标记,则过程在方框514处继续,其图示出将目录308中的条目设置为指示L2高速缓存存储器230无法向请求者提供高速缓存线的拷贝的状态,例如共享状态。该过程在上文已描述的方框518处继续。
如已经描述的,一种多处理器数据处理系统,包括包含高速缓存存储器的多个高速缓存存储器。该高速缓存存储器发出用于目标高速缓存线的读取类型操作。在等待目标高速缓存线的接收的同时,高速缓存存储器进行监视以检测针对目标高速缓存线的竞争存储类型操作。响应于接收到目标高速缓存线,高速缓存存储器停顿该高速缓存存储器中的目标高速缓存线,并且基于是否检测到竞争存储类型操作来设置在高速缓存存储器中被停顿的目标高速缓存线的一致性状态。
虽然已特别地示出和描述了各实施例,但本领域的技术人员将认识到,在不脱离所附权利要求的精神和范围的情况下可对其进行形式和细节方面的各种修改,并且这些替换实施方式全部在所附权利要求的范围内。
Claims (19)
1.一种包括多个高速缓存存储器的多处理器数据处理系统中的方法,所述多个高速缓存存储器包括一个高速缓存存储器,所述方法包括:
由所述高速缓存存储器发出针对目标高速缓存线的读取类型操作;
在等待所述读取类型操作所请求的所述目标高速缓存线的接收的同时,由所述高速缓存存储器进行监视以检测针对所述目标高速缓存线的竞争的存储类型操作;
响应于接收到所述目标高速缓存线:
停顿所述高速缓存存储器中的所述高速缓存线;以及
基于是否检测到所述竞争的存储类型操作而设置在所述高速缓存存储器中被停顿的所述目标高速缓存线的一致性状态。
2.根据权利要求1所述的方法,其中所述一致性状态是指示所述目标高速缓存线能够向请求者提供所述目标高速缓存线的拷贝的第一状态。
3.根据权利要求2所述的方法,还包括:
响应于发出所述读取类型操作,所述高速缓存存储器接收指示所述第一状态的一致性消息,
其中设置所述目标高速缓存线的所述一致性状态包括:如果未检测到所述竞争的存储类型操作,则所述高速缓存存储器将所述一致性状态设置为所述一致性消息所指示的所述第一状态。
4.根据权利要求1所述的方法,其中所述一致性状态是指示所述高速缓存线无法向请求者提供所述高速缓存线的拷贝的第二状态。
5.根据权利要求4所述的方法,其中设置所述一致性状态包括:如果检测到所述竞争的存储类型操作,则所述高速缓存存储器将所述一致性状态设置为所述第二状态。
6.根据权利要求1所述的方法,还包括:
接收指示所述目标缓存线的所述第一状态的系统级一致性消息,其中所述第一状态指示所述目标高速缓存线能够向请求者提供所述目标高速缓存线的拷贝,
其中设置所述一致性状态包括将所述一致性状态设置为指示所述目标高速缓存线无法向请求者提供所述目标高速缓存线的拷贝的第二状态。
7.一种用于多处理器数据处理系统的高速缓存存储器,所述高速缓存存储器包括;
数据阵列;
所述数据阵列的内容的目录;以及
读-要求(RC)机,处理从关联处理器核接收的请求,其中所述RC机:
发出针对目标高速缓存线的读取类型操作;
在等待所述目标高速缓存线的接收的同时,进行监视以检测针对所述目标高速缓存线的竞争的存储类型操作;
响应于接收到所述目标高速缓存线:
停顿所述高速缓存存储器中的所述目标高速缓存线;以及
基于是否检测到所述竞争的存储类型操作而设置在所述高速缓存存储器中被停顿的所述目标高速缓存线的一致性状态。
8.根据权利要求7所述的高速缓存存储器,其中所述一致性状态是指示所述目标高速缓存线能够向请求者提供所述目标高速缓存线的拷贝的第一状态。
9.根据权利要求8所述的高速缓存存储器,
其中所述RC机响应于发出所述读取类型操作而接收指示所述第一状态的一致性消息,以及
其中如果未检测到所述竞争的存储类型操作,则所述RC机将所述一致性状态设置为由所述一致性消息指示的所述第一状态。
10.根据权利要求7所述的高速缓存存储器,其中所述一致性状态是指示所述高速缓存线无法向请求者提供所述高速缓存线的拷贝的第二状态。
11.根据权利要求10所述的高速缓存存储器,其中如果检测到所述竞争的存储类型操作,则所述RC机将所述一致性状态设置为所述第二状态。
12.根据权利要求7所述的高速缓存存储器,
其中所述RC机接收指示所述目标高速缓存线的第一状态的系统级一致性消息,其中所述第一状态指示所述目标高速缓存线能够向请求者提供所述目标高速缓存线的拷贝,以及
其中所述RC机将所述一致性状态设置为指示所述目标高速缓存线无法向请求者提供所述目标高速缓存线的拷贝的第二状态。
13.一种处理单元,包括:
根据权利要求7所述的高速缓存存储器;以及
被耦合到所述高速缓存存储器的关联的处理器核。
14.一种多处理器数据处理系统,包括:
互连结构;以及
耦合到所述互连结构的多个处理单元,其中所述多个处理单元中的每一个包括多个高速缓存存储器中相应的一个,其中所述多个高速缓存存储器中的高速缓存存储器包括处理从互连接收到的操作的读-要求(RC)机,其中所述RC机:
发出针对目标高速缓存线的读取类型操作;
在等待所述目标高速缓存线的接收的同时进行监视以检测针对所述目标高速缓存线的竞争的存储类型操作;
响应于接收到所述目标高速缓存线:
停顿所述高速缓存存储器中的所述目标高速缓存线;以及
基于是否检测到所述竞争的存储类型操作而设置在所述高速缓存存储器中被停顿的所述目标高速缓存线的一致性状态。
15.根据权利要求14所述的多处理器数据处理系统,其中所述一致性状态是指示所述目标高速缓存线能够向请求者提供所述目标高速缓存线的拷贝的第一状态。
16.根据权利要求15所述的多处理器数据处理系统,
其中所述RC机响应于发出所述读取类型操作而接收指示所述第一状态的一致性消息,以及
其中如果未检测到所述竞争的存储类型操作,则RC机将所述一致性状态设置为由所述一致性消息指示的所述第一状态。
17.根据权利要求14所述的多处理器数据处理系统,其中所述一致性状态是指示所述目标高速缓存线无法向请求者提供所述目标高速缓存线的拷贝的第二状态。
18.根据权利要求17所述的多处理器数据处理系统,其中如果检测到所述竞争的存储类型操作,则所述RC机将所述一致性状态设置为所述第二状态。
19.根据权利要求14所述的多处理器数据处理系统,
其中所述RC机接收指示所述目标高速缓存线的第一状态的系统级一致性消息,其中所述第一状态指示所述目标高速缓存线能够向请求者提供所述目标高速缓存线的拷贝,以及
其中所述RC机将所述一致性状态设置为指示所述目标高速缓存线无法向请求者提供所述目标高速缓存线的拷贝的第二状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/368,987 | 2012-02-08 | ||
US13/368,987 US8799588B2 (en) | 2012-02-08 | 2012-02-08 | Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103246614A true CN103246614A (zh) | 2013-08-14 |
CN103246614B CN103246614B (zh) | 2016-07-06 |
Family
ID=48794765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310049969.3A Expired - Fee Related CN103246614B (zh) | 2012-02-08 | 2013-02-07 | 多处理器数据处理系统、高速缓存存储器及其方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8799588B2 (zh) |
CN (1) | CN103246614B (zh) |
DE (1) | DE102013201079A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577625A (zh) * | 2017-09-22 | 2018-01-12 | 算丰科技(北京)有限公司 | 数据处理芯片和系统、数据存储转发处理方法 |
CN110196818A (zh) * | 2018-02-27 | 2019-09-03 | 华为技术有限公司 | 缓存数据的方法、缓存设备和存储系统 |
CN114127699A (zh) * | 2019-09-11 | 2022-03-01 | 国际商业机器公司 | 在存储器拷贝和存储器映射之间动态切换以优化i/o性能 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8799588B2 (en) * | 2012-02-08 | 2014-08-05 | International Business Machines Corporation | Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration |
US9058273B1 (en) | 2013-12-20 | 2015-06-16 | International Business Machines Corporation | Frequency determination across an interface of a data processing system |
US9495312B2 (en) | 2013-12-20 | 2016-11-15 | International Business Machines Corporation | Determining command rate based on dropped commands |
CN104331352B (zh) * | 2014-11-19 | 2018-03-09 | 浪潮(北京)电子信息产业有限公司 | cache一致性芯片地址带外读取检测方法及装置 |
US10152417B2 (en) * | 2016-04-11 | 2018-12-11 | International Business Machines Corporation | Early freeing of a snoop machine of a data processing system prior to completion of snoop processing for an interconnect operation |
US10585800B2 (en) * | 2017-06-16 | 2020-03-10 | International Business Machines Corporation | Reducing cache transfer overhead in a system |
US10558604B2 (en) * | 2017-12-20 | 2020-02-11 | Qualcomm Incorporated | Communication interface transaction security |
US10579527B2 (en) | 2018-01-17 | 2020-03-03 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US10713169B2 (en) | 2018-01-17 | 2020-07-14 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US10387310B2 (en) | 2018-01-17 | 2019-08-20 | International Business Machines Corporation | Remote node broadcast of requests in a multinode data processing system |
US20200034146A1 (en) * | 2018-07-30 | 2020-01-30 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a fronting load |
US11068407B2 (en) | 2018-10-26 | 2021-07-20 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction |
US10884740B2 (en) | 2018-11-08 | 2021-01-05 | International Business Machines Corporation | Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads |
US11119781B2 (en) * | 2018-12-11 | 2021-09-14 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a fronting load |
US10970215B1 (en) | 2019-12-03 | 2021-04-06 | International Business Machines Corporation | Cache snooping mode extending coherence protection for certain requests |
US11157409B2 (en) | 2019-12-17 | 2021-10-26 | International Business Machines Corporation | Cache snooping mode extending coherence protection for certain requests |
US11157408B2 (en) | 2019-12-17 | 2021-10-26 | International Business Machines Corporation | Cache snooping mode extending coherence protection for certain requests |
US11106608B1 (en) | 2020-06-22 | 2021-08-31 | International Business Machines Corporation | Synchronizing access to shared memory by extending protection for a target address of a store-conditional request |
US11714755B2 (en) | 2020-07-31 | 2023-08-01 | Hewlett Packard Enterprise Development Lp | System and method for scalable hardware-coherent memory nodes |
US11693776B2 (en) | 2021-06-18 | 2023-07-04 | International Business Machines Corporation | Variable protection window extension for a target address of a store-conditional request |
US11487672B1 (en) | 2021-08-20 | 2022-11-01 | International Business Machines Corporation | Multiple copy scoping bits for cache memory |
US11620231B2 (en) | 2021-08-20 | 2023-04-04 | International Business Machines Corporation | Lateral persistence directory states |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5940864A (en) * | 1997-04-14 | 1999-08-17 | International Business Machines Corporation | Shared memory-access priorization method for multiprocessors using caches and snoop responses |
CN1550994A (zh) * | 2003-04-24 | 2004-12-01 | �Ҵ���˾ | 局部化高速缓存块刷新指令 |
US7100001B2 (en) * | 2002-01-24 | 2006-08-29 | Intel Corporation | Methods and apparatus for cache intervention |
US20080215824A1 (en) * | 2005-02-10 | 2008-09-04 | Goodman Benjiman L | Cache memory, processing unit, data processing system and method for filtering snooped operations |
US20090240894A1 (en) * | 2002-08-28 | 2009-09-24 | Intel Corporation | Method and aparatus for the synchronization of distributed caches |
US20100268895A1 (en) * | 2009-04-15 | 2010-10-21 | International Business Machines Corporation | Information handling system with immediate scheduling of load operations |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69717124T2 (de) | 1997-12-11 | 2003-07-17 | Bull Sa | Verfahren zum Lesen von Daten auf einem gemeinsamen Speicher in einem Multiprozessor-Rechnersystem |
US8176259B2 (en) * | 2004-01-20 | 2012-05-08 | Hewlett-Packard Development Company, L.P. | System and method for resolving transactions in a cache coherency protocol |
US7676637B2 (en) * | 2004-04-27 | 2010-03-09 | International Business Machines Corporation | Location-aware cache-to-cache transfers |
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 |
JP4806959B2 (ja) | 2005-05-17 | 2011-11-02 | 株式会社日立製作所 | 主記憶共有型マルチプロセッサシステムの高性能化技術 |
US7409504B2 (en) | 2005-10-06 | 2008-08-05 | International Business Machines Corporation | Chained cache coherency states for sequential non-homogeneous access to a cache line with outstanding data response |
US7447845B2 (en) | 2006-07-13 | 2008-11-04 | International Business Machines Corporation | Data processing system, processor and method of data processing in which local memory access requests are serviced by state machines with differing functionality |
US8627017B2 (en) * | 2008-12-30 | 2014-01-07 | Intel Corporation | Read and write monitoring attributes in transactional memory (TM) systems |
US8799588B2 (en) * | 2012-02-08 | 2014-08-05 | International Business Machines Corporation | Forward progress mechanism for stores in the presence of load contention in a system favoring loads by state alteration |
-
2012
- 2012-02-08 US US13/368,987 patent/US8799588B2/en not_active Expired - Fee Related
- 2012-11-16 US US13/679,351 patent/US8806148B2/en not_active Expired - Fee Related
-
2013
- 2013-01-24 DE DE102013201079A patent/DE102013201079A1/de not_active Ceased
- 2013-02-07 CN CN201310049969.3A patent/CN103246614B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5940864A (en) * | 1997-04-14 | 1999-08-17 | International Business Machines Corporation | Shared memory-access priorization method for multiprocessors using caches and snoop responses |
US7100001B2 (en) * | 2002-01-24 | 2006-08-29 | Intel Corporation | Methods and apparatus for cache intervention |
US20090240894A1 (en) * | 2002-08-28 | 2009-09-24 | Intel Corporation | Method and aparatus for the synchronization of distributed caches |
CN1550994A (zh) * | 2003-04-24 | 2004-12-01 | �Ҵ���˾ | 局部化高速缓存块刷新指令 |
US20080215824A1 (en) * | 2005-02-10 | 2008-09-04 | Goodman Benjiman L | Cache memory, processing unit, data processing system and method for filtering snooped operations |
US20100268895A1 (en) * | 2009-04-15 | 2010-10-21 | International Business Machines Corporation | Information handling system with immediate scheduling of load operations |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107577625A (zh) * | 2017-09-22 | 2018-01-12 | 算丰科技(北京)有限公司 | 数据处理芯片和系统、数据存储转发处理方法 |
CN107577625B (zh) * | 2017-09-22 | 2023-06-13 | 北京算能科技有限公司 | 数据处理芯片和系统、数据存储转发处理方法 |
CN110196818A (zh) * | 2018-02-27 | 2019-09-03 | 华为技术有限公司 | 缓存数据的方法、缓存设备和存储系统 |
CN110196818B (zh) * | 2018-02-27 | 2021-07-16 | 华为技术有限公司 | 缓存数据的方法、缓存设备和存储系统 |
CN114127699A (zh) * | 2019-09-11 | 2022-03-01 | 国际商业机器公司 | 在存储器拷贝和存储器映射之间动态切换以优化i/o性能 |
Also Published As
Publication number | Publication date |
---|---|
US20130205096A1 (en) | 2013-08-08 |
US20130205099A1 (en) | 2013-08-08 |
US8799588B2 (en) | 2014-08-05 |
US8806148B2 (en) | 2014-08-12 |
DE102013201079A1 (de) | 2013-08-08 |
CN103246614B (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103246614B (zh) | 多处理器数据处理系统、高速缓存存储器及其方法 | |
CN100495361C (zh) | 维护存储器一致性的方法和系统 | |
CN108885583B (zh) | 高速缓存存储器访问 | |
CN104106061B (zh) | 多处理器数据处理系统以及其中的方法、高速缓存存储器和处理单元 | |
CN100430907C (zh) | 用于减小高速缓存架构中的延迟和窥探代价的方法 | |
TWI463318B (zh) | 快取一致性處理系統、快取記憶體,及其方法 | |
TWI232378B (en) | Non-uniform memory access (NUMA) data processing system having remote memory cache incorporated within system memory | |
CN100592269C (zh) | 用于预测性选择预取操作的范围的数据处理系统和方法 | |
US6112281A (en) | I/O forwarding in a cache coherent shared disk computer system | |
US6260117B1 (en) | Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency | |
CN1932781B (zh) | 用于数据处理的系统和方法 | |
WO1995025306A2 (en) | Distributed shared-cache for multi-processors | |
CN103365794A (zh) | 数据处理方法和系统 | |
CN103999063B (zh) | 处理器的存储器共享 | |
JP2005519391A (ja) | 共有ベクトルの増加を伴わないdsmマルチプロセッサシステムにおけるキャッシュコヒーレンスのための方法およびシステム | |
US7149852B2 (en) | System and method for blocking data responses | |
CN108415861B (zh) | 用于缓存内容管理的装置和方法 | |
US10437725B2 (en) | Master requesting missing segments of a cache line for which the master has coherence ownership | |
JP4469911B2 (ja) | リクエスト生成装置、リクエスト処理システム及び制御方法 | |
US7996614B2 (en) | Cache intervention on a separate data bus when on-chip bus has separate read and write data busses | |
US10394636B2 (en) | Techniques for managing a hang condition in a data processing system with shared memory | |
US8051251B2 (en) | Method and apparatus for setting status of cache memory | |
JP2006164218A (ja) | ストレージシステム及びそのキャッシュ制御方法 | |
US7082501B2 (en) | Remote node accessing local memory by using distributed shared memory | |
CN112955877A (zh) | 修改存储数据的装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160706 Termination date: 20210207 |
|
CF01 | Termination of patent right due to non-payment of annual fee |