《在偏好加载的系统中存在加载竞争的情况下用于存储的前进机制.pdf》由会员分享,可在线阅读,更多相关《在偏好加载的系统中存在加载竞争的情况下用于存储的前进机制.pdf(23页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104106061A43申请公布日20141015CN104106061A21申请号201380008781222申请日2013012313/368,95820120208USG06F15/16720060171申请人国际商业机器公司地址美国纽约阿芒克72发明人DE威廉斯GL格思里HM李J施蒂彻利74专利代理机构北京市金杜律师事务所11256代理人酆迅张凡54发明名称在偏好加载的系统中存在加载竞争的情况下用于存储的前进机制57摘要一种多处理器数据处理系统包括多个高速缓存存储器,其包括高速缓存存储器。响应于高速缓存存储器检测到指定与正由高速缓存存储器处理的第一读取类型操作的目标。
2、地址相同的目标地址的存储修改操作,高速缓存存储器提供对存储修改操作的重试响应。响应于读取类型操作的完成,高速缓存存储器进入裁判模式。在裁判模式中时,高速缓存存储器临时动态增加以所述目标地址为目标的任何第二存储修改操作相对于以所述目标地址为目标的任何第二读取类型操作的优先级。30优先权数据85PCT国际申请进入国家阶段日2014080886PCT国际申请的申请数据PCT/IB2013/0505732013012387PCT国际申请的公布数据WO2013/118010EN2013081551INTCL权利要求书2页说明书14页附图6页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说。
3、明书14页附图6页10申请公布号CN104106061ACN104106061A1/2页21一种在包括多个高速缓存存储器的多处理器数据处理系统中的方法,所述多个高速缓存存储器包括一个高速缓存存储器,所述方法包括响应于所述高速缓存存储器检测到指定与正由所述高速缓存存储器处理的第一读取类型操作的目标地址相同的目标地址的第一存储修改操作提供对所述存储修改操作的重试响应;以及响应于所述读取类型操作的完成,进入裁判模式;以及在所述裁判模式中时,所述高速缓存存储器临时动态增加以所述目标地址为目标的任何第二存储修改操作相对于以所述目标地址为目标的任何第二读取类型操作的优先级。2根据权利要求1所述的方法,其中。
4、增加对所述目标地址的任何第二存储修改访问的优先级包括当在所述高速缓存存储器处不存在指定所述高速缓存存储器处的所述目标地址的另一个未决操作的情况下,提供对所述第二读取类型操作的重试响应。3根据前述任一项权利要求所述的方法,进一步包括在裁判模式中时,接收指定所述相同的目标地址的第二存储修改操作;响应于接收到指定所述相同的目标地址的所述第二存储修改操作退出裁判模式,以及在所述高速缓存存储器处服务所述第二存储修改操作。4根据权利要求3所述的方法,其中所述第一存储修改操作和所述第二存储修改操作从相同主机接收。5根据前述任一项权利要求所述的方法,进一步包括检测在没有接收到指定所述相同的目标地址的第二存储修。
5、改操作的情况下存在的超时条件;以及响应于检测到所述超时条件,所述高速缓存存储器退出裁判模式。6根据前述任一项权利要求所述的方法,其中所述高速缓存存储器仅在与所述目标地址关联的高速缓存状态是共享修改状态的情况下进入裁判模式。7一种用于多处理器数据处理系统的高速缓存存储器,所述高速缓存存储器包括数据阵列;所述数据阵列的内容的目录;用于处理从互连接收的操作的监听机,其中响应于检测到指定与正由所述高速缓存存储器处理的第一读取类型操作的目标地址相同的目标地址的第一存储修改操作,所述监听机可操作用于使得所述高速缓存存储器提供对所述存储修改操作的重试响应,并且响应于所述读取类型操作的完成而进入裁判模式,其中。
6、在所述裁判模式中时,所述监听机临时动态增加以所述目标地址为目标的任何第二存储修改操作相对于以所述目标地址为目标的任何第二读取类型操作的优先级。8根据权利要求7所述的高速缓存存储器,其中所述监听机进一步可操作用于通过当在所述高速缓存存储器处不存在指定所述目标地址的另一个未决操作的情况下提供对第二读取类型操作的重试响应,来临时动态增加对所述目标地址的任何第二存储修改访问的优先级。9根据权利要求7或8中的任一项所述的高速缓存存储器,其中所述监听机响应于在权利要求书CN104106061A2/2页3裁判模式中时接收到指定所述相同的目标地址的所述第二存储修改操作,可操作用于退出所述裁判模式并且服务所述第。
7、二存储修改操作。10根据权利要求9所述的高速缓存存储器,其中所述第一存储修改操作和所述第二存储修改操作从相同主机可接收。11根据权利要求7至10中的任一项所述的高速缓存存储器,其中所述监听机进一步可操作用于检测在没有接收到指定所述相同的目标地址的第二存储修改操作时的超时条件,并且响应于检测到所述超时条件而退出裁判模式。12根据权利要求7至11中的任一项所述的高速缓存存储器,其中所述高速缓存存储器可操作用于仅在与所述目标地址关联的高速缓存状态是共享修改状态的情况下进入裁判模式。13一种处理单元,包括根据权利要求7至12中任一项所述的高速缓存存储器;以及耦合到所述高速缓存存储器的至少一个处理器核。。
8、14一种多处理器数据处理系统,包括每个均包括高速缓存存储器的多个处理单元;以及连接所述多个处理单元的系统互连,其中所述多个处理单元中的一个处理单元的特定高速缓存存储器包括根据权利要求7至12中任一项所述的高速缓存存储器。15一种用于包括多个高速缓存存储器的多处理器数据处理系统的计算机程序产品,所述多个高速缓存存储器包括一个高速缓存存储器,所述计算机程序产品包括由处理电路可读的并且存储用于由所述处理电路执行以用于执行根据权利要求1至6中任一项所述的方法的指令的计算机可读存储介质。16一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上。
9、运行时,所述软件代码部分用于执行根据权利要求1至6中任一项所述的方法。权利要求书CN104106061A1/14页4在偏好加载的系统中存在加载竞争的情况下用于存储的前进机制技术领域0001本发明一般地涉及数据处理并且具体涉及在数据处理系统中服务处理器操作。更具体地,本发明涉及在数据处理系统中动态增加存储修改操作相对于读取类型操作的优先级。背景技术0002诸如服务器计算机系统之类的常规的对称多处理器SMP计算机系统包括全部耦合到系统互连的多个处理单元,该系统互连通常包括一个或多个地址、数据和控制总线。耦合到系统互连的是系统存储器,其表示多处理器计算机系统中的易失性存储器的最低级别并且其一般对于所。
10、有处理单元的读取访问和写入访问来说是可访问的。为了降低驻留在系统存储器中的指令和数据的访问延时,每个处理单元通常进一步由相应多级高速缓存层次结构来支持,其较低级别可以由一个或多个处理器核共享。0003高速缓存存储器通常被利用用于临时缓冲可能由处理器访问的存储器块以便通过降低由必须从系统存储器加载需要的数据和指令而引入的访问延时来加速处理。在一些多处理器MP系统中,高速缓存层次结构包括至少两个级别。级别一L1或高级别高速缓存通常是与特定处理器核关联的专用高速缓存并且不能由MP系统中的其它核访问。通常,响应于诸如加载或存储指令之类的存储器访问指令,处理器核首先访问较高级别高速缓存的目录。如果请求的。
11、存储器块在较高级别高速缓存中没被找到,那么处理器核针对请求的存储器块访问较低级别高速缓存例如,级别二L2或级别三L3高速缓存。最低级别高速缓存例如,L3经常在若干处理器核之间共享。0004因为多个处理器核可以请求对相同的数据高速缓存行的写访问并且因为修改的高速缓存行不会立即与系统存储器同步,所以多处理器计算机系统的高速缓存层次结构通常实施高速缓存一致性协议以在系统存储器的内容的各处理器核的“视图VIEW”之间确保至少最低级别的一致性。0005具体而言,高速缓存一致性最低要求在处理单元访问存储器块的副本并且随后访问存储器块的更新副本之后,处理单元不能再次访问存储器块的旧副本。0006高速缓存一致。
12、性协议通常定义与每个高速缓存层次结构的高速缓存行关联存储的一组高速缓存状态,以及被利用用于在高速缓存层次结构之间传递高速缓存状态信息的一组一致性消息。在许多情况下,一致性协议的高速缓存状态和状态转换被设计成相对于存储类型操作更偏好FAVOR读取类型存储器访问操作。读取类型操作优先于存储类型操作的优先性在存在显著加载竞争的情况下可能导致存储类型操作的前进FORWARDPROGRESS问题。0007因此,在现有技术中需要解决前述问题。发明内容说明书CN104106061A2/14页50008多处理器数据处理系统包括多个高速缓存存储器,其包括高速缓存存储器。响应于高速缓存存储器检测到指定与正由高速缓。
13、存存储器处理的第一读取类型操作的目标地址相同的目标地址的存储修改操作,高速缓存存储器提供对存储修改操作的重试响应。响应于读取类型操作的完成,高速缓存存储器进入裁判REFEREE模式。在裁判模式中时,高速缓存存储器临时动态增加以目标地址为目标的任何存储修改操作相对于以该目标地址为目标的任何第二读取类型操作的优先级。0009从第一方面来看,本发明提供了用于包括多个高速缓存存储器其包括一个高速缓存存储器的多处理器数据处理系统的方法,该方法包括响应于高速缓存存储器检测到指定与正由高速缓存存储器处理的第一读取类型操作的目标地址相同的目标地址的第一存储修改操作提供对存储修改操作的重试响应;以及响应于读取类。
14、型操作的完成,进入裁判模式;并且在裁判模式中时,高速缓存存储器临时动态增加以目标地址为目标的任何第二存储修改操作相对于以该目标地址为目标的任何第二读取类型操作的优先级。0010从进一步的方面来看,本发明提供了用于多处理器数据处理系统的高速缓存存储器,该高速缓存存储器包括数据阵列;数据阵列的内容的目录;处理从互连接收的操作的监听机SNOOPMACHINE,其中响应于检测到指定与正由高速缓存存储器处理的第一读取类型操作的目标地址相同的目标地址的第一存储修改操作,监听机使得高速缓存存储器提供对存储修改操作的重试响应并且,响应于读取类型操作的完成,进入裁判模式,其中在裁判模式中时,监听机临时动态增加以。
15、目标地址为目标的任何第二存储修改操作相对于以该目标地址为目标的任何第二读取类型操作的优先级。0011从进一步的方面来看,本发明提供了用于多处理器数据处理系统的高速缓存存储器,该高速缓存存储器包括数据阵列;数据阵列的内容的目录;用于处理从互连接收的操作的监听机,其中响应于检测到指定与正由高速缓存存储器处理的第一读取类型操作的目标地址相同的目标地址的第一存储修改操作,监听机可操作用于使得高速缓存存储器提供对存储修改操作的重试响应并且,响应于读取类型操作的完成,进入裁判模式,其中在裁判模式中时,监听机临时动态增加以目标地址为目标的任何第二存储修改操作相对于以该目标地址为目标的任何第二读取类型操作的优。
16、先级。0012从进一步的方面来看,本发明提供了多处理器数据处理系统,包括每个均包括高速缓存存储器的多个处理单元;以及连接多个处理单元的系统互连,其中多个处理单元中的一个特定高速缓存存储器包括本发明的高速缓存存储器。0013从进一步的方面来看,本发明提供了一种处理单元,包括根据本发明的高速缓存存储器以及耦合到高速缓存存储器的至少一个处理器核。0014从进一步的方面来看,本发明提供了多处理器数据处理系统,包括每个均包括高速缓存存储器的多个处理单元;以及连接多个处理单元的系统互连,其中多个处理单元中的一个特定高速缓存存储器包括处理从互连接收的操作的监听机,其中响应于检测到指定与正由高速缓存存储器处理。
17、的第一读取类型操作的目标地址相同的目标地址的第一存储修改操作,监听机使得该特定高速缓存存储器提供对存储修改操作的重试响应并且,响应于读取类型操作的完成,进入裁判模式,其中在裁判模式中时,监听机临时动态增加以目标地址为目标的任何第二存储修改操作相对于以该目标地址为目标的任何第二读取类型操作的优先级。说明书CN104106061A3/14页60015从进一步的方面来看,本发明提供了一种用于包括多个高速缓存存储器其包括高速缓存存储器的多处理器数据处理系统的计算机程序产品,该计算机程序产品包括由处理电路可读的并且存储用于由处理电路执行以用于执行用于执行本发明步骤的方法的指令的计算机可读存储介质。001。
18、6从进一步的方面来看,本发明提供了一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上运行的时候,用于执行本发明的步骤。0017附图示出0018现在将仅通过示例的方式,参照以下附图中示出的优选实施例来描述本发明0019图1是根据本发明的优选实施例的示例性数据处理系统的高级别框图;0020图2是根据本发明的优选实施例的示例性处理单元的更详细的框图;0021图3是根据本发明的优选实施例的L2缓存片段的详细框图;0022图4是根据本发明的优选实施例在较低级别缓存中的处理器存储器访问操作处理的示例性时序图;0023图5是根据本发明的优选实施。
19、例的服务处理器存储器访问操作的示例性过程的高级别逻辑流程图;以及0024图6是根据本发明的优选实施例的服务处理器存储器访问操作的示例性过程的时序图。具体实施方式0025现在参照附图,在所有附图中同样的附图标记指同样的和对应的部分,并且具体地参照图1,示出了描绘根据一个实施例的示例性数据处理系统的高级别框图。数据处理系统被描绘为高速缓存一致性对称多处理器SMP数据处理系统100。如示出的,数据处理系统100包括用于处理数据和指令的多个处理节点102A、102B。处理节点102耦合到系统互连110以用于传送地址、数据和控制信息。系统互连110可以被实现为例如总线互连、开关互连或者混合互连。0026。
20、在描绘的实施例中,每个处理节点102被实现为包含四个处理单元104A至104D的多芯片模块MCM,每个处理单元优选地被实现为相应集成电路。在每个处理节点102内的处理单元104耦合用于通过局域互连114如系统互连110那样,其可以例如利用一个或多个总线和/或开关来实现与彼此和系统互连110通信。0027如在下面参照图2更详细描述的,处理单元104均包括耦合到局域互连114的存储器控制器106以提供到相应系统存储器108的接口。驻留在系统存储器108中的数据和指令一般可以由在数据处理系统100内的任何处理节点102的任何处理单元104中的处理器核来访问并且修改。在备选实施例中,一个或多个存储器控。
21、制器106和系统存储器108可以耦合到系统互连110,而不是局域互连114。0028本领域技术人员将理解,图1的SMP数据处理系统100可以包括许多附加的未示出的部件,诸如互连桥、非易失性存储、用于连接到网络或附连设备的端口等。因为这些附加的部件对于所描述的实施例的理解不是必要的,所以它们在图1中未示出或者未在本文中进一步讨论。然而,还应当理解的是,本文中所描述的增强可适用于多种架构的高速缓存说明书CN104106061A4/14页7一致性数据处理系统并且决不限于在图1中示出的一般性数据处理系统架构。0029现在参照图2,描绘了根据一个实施例的示例性处理单元104的更详细的框图。在描绘的实施例。
22、中,每个处理单元104是包括用于处理指令和数据的两个处理器核200A、200B的集成电路。在优选实施例中,每个处理器核200能够独立地同时执行多个执行的硬件线程。如描绘的,每个处理器核200包括诸如加载存储单元LSU202之类的一个或多个执行单元以用于执行指令。由LSU202执行的指令包括请求对存储器块的访问或者使得生成用于对存储器块的访问的请求的存储器访问指令。0030每个处理器核200的操作由多级别易失性存储器层次结构来支持,该多级别易失性存储器层次结构在其最低级别处具有经由集成存储器控制器106访问的共享系统存储器108,并且在其高级别处具有一个或多个级别的高速缓存存储器,在说明性实施例。
23、中其包括在每个处理器核200内并且专用于每个处理器核200的存储通过STORETHROUGH级别一L1高速缓存226,和针对每个处理器核200A、200B的相应存储中STOREIN级别二L2高速缓存230。为了高效处理对可缓存地址的多个并发的存储器访问请求,每个L2高速缓存230可以利用多个L2高速缓存片段SLICE230A1至230AN来实现,其中的每一个针对相应真实的存储器地址集合处理存储器访问请求。0031虽然示出的高速缓存层次结构只包括两个级别的高速缓存,但是本领域技术人员将理解,备选实施例可以包括附加级别L3、L4等的片上或片外内联或后备高速缓存,其可以完全包括、部分包括或不包括高级。
24、别的高速缓存的内容。0032每个处理单元104进一步包括集成和分布式结构FABRIC控制器216,负责用于控制在局域互连114和系统互连110上的操作流并且用于实现用于实现所选择的高速缓存一致性协议所要求的一致性通信。处理单元104进一步包括支持一个或多个I/O设备未示出的附连的集成I/O输入/输出控制器214。0033在操作中,在由处理器核200执行之下的硬件线程包括请求执行指定的存储器访问操作的存储器访问指令的时候,LSU202执行存储器访问指令以确定存储器访问请求的目标真实地址。然后,LSU202向其处理器核200内的哈希逻辑206发送至少存储器访问请求,其包括至少事务类型TTYPE和目。
25、标真实地址。哈希逻辑206对目标真实地址进行哈希以标识适当的目的地例如,L2高速缓存片段230A1至230AN和调度DISPATCH用于服务适当的目的地的请求。0034现在参照图3,示出了根据一个实施例的L2高速缓存片段230A1至230AN统称为L2高速缓存片段230A之一的示例性实施例的更详细的框图。如在图3中示出的,L2高速缓存片段230A包括高速缓存阵列302和高速缓存阵列302的内容的目录308。虽然未明确示出,但是高速缓存阵列302优选利用单个读取端口和单个写入端口来实现以降低用于实现高速缓存阵列302所要求的模片区DIEAREA。0035假设高速缓存阵列302和目录308如常规的。
26、被设置成关联的,系统存储器108中的存储位置利用系统存储器真实地址内的预定索引比特被映射到高速缓存阵列302内的特定同余类CONGRUENCECLASS。存储在高速缓存阵列302的高速缓存行内的特定存储器块被记录在高速缓存目录308中,其针对每个高速缓存行包含一个目录条目。虽然未明示地在图3中描绘,本领域技术人员将理解,高速缓存目录308中的每个目录条目都包括各种字段,例如标识保持在高速缓存阵列302的对应高速缓存行中的存储器块的真实地址的说明书CN104106061A5/14页8标记字段、指示高速缓存行的一致性状态的状态字段、指示高速缓存行相对于相同的同余类中的其它高速缓存行的代替顺序的LR。
27、U最近最少使用字段和指示是否存储器块保持在关联的L1高速缓存226中的包含比特。0036L2高速缓存片段230A包括多个例如16读取要求RC机312A至312N以用于独立且并发地服务从关联处理器核200接收的加载LD和存储ST请求。为了服务源自除了关联处理器核200之外的处理器核200的远程存储器访问请求,L2高速缓存片段230A还包括多个监听机311A至311M。每个监听机311可以独立且并发地处理从局域互连114“监听的”远程存储器访问请求。如将被理解的,由RC机312对存储器访问请求的服务可以要求高速缓存阵列302内的存储器块的代替或无效。据此,L2高速缓存片段230A包括管理存储器块从。
28、高速缓存阵列302的移除和写回的CO驱逐CASTOUT机310。0037L2高速缓存片段230A进一步包括控制多路复用器ML至M2以对从关联处理器核200接收的本地存储器访问请求和在局域互连114上监听的远程请求的处理排序的仲裁器305。包括本地加载以及存储操作和远程读和写操作的存储器访问请求根据由仲裁器305实现的仲裁政策被转发给诸如调度管线306之类的调度逻辑,其处理每个读取/加载并且存储请求相对于目录308和高速缓存阵列302在给定数目的循环上被处理。0038L2高速缓存片段230A还包括相应缓冲数据被插入到其中并且从高速缓存阵列302移除的RC队列320和CPI驱逐推送介入队列318。。
29、RC队列320包括许多缓冲条目,每个缓冲条目单独对应于RC机312中的特定一个,使得被调度的每个RC机312只从指派的缓冲条目中检索数据。类似地,CPI队列318包括许多缓冲条目,每个缓冲条目单独对应于驱逐机310和监听机311中的特定一个,使得被调度的每个CO机310和每个监听机311只从相应指派的CPI缓冲条目中检索数据。0039每个RC机312还具有分配给它的多个RC数据RCDAT缓冲器322中的相应一个以用于缓冲从高速缓存阵列302读取的和/或经由重新加载总线323从局域互连114接收的存储器块。分配给每个RC机312的RCDAT缓冲器322优选地利用对应于可以由关联的RC机312服务。
30、的存储器访问请求的连接和功能来构造。RCDAT缓冲器322具有从其输入当中选择数据字节的关联的存储数据多路复用器M4以用于响应于未示出的由仲裁器305生成的选择信号在RCDAT缓冲器322中的进行缓冲。0040在操作中,包括事务类型TTYPE、目标真实地址和存储数据的处理器存储请求从存储队列STQ304内的关联处理器核200被接收。根据STQ304,存储数据经由数据路径324被发送给存储数据多路复用器M4,并且存储类型和目标地址被传递给多路复用器ML。多路复用器ML还作为输入接收来自处理器核200的处理器加载请求和来自RC机312的目录写请求。响应于未示出的由仲裁器305生成的选择信号,多路复。
31、用器ML选择其输入请求中的一个以转发给多路复用器M2,其作为输入经由远程请求路径326另外接收从局域互连114接收的远程请求。仲裁器305调度针对处理的本地和远程存储器访问请求并且基于该调度来生成选择信号328的序列。响应于由仲裁器305生成的选择信号328,多路复用器M2选择从多路复用器ML接收的本地请求或从局域互连114监听的远程请求作为下一个要被处理的存储器访问请求。0041现在参照图4,描绘了在图1的数据处理系统100的互连结构上的示例性操作的时空图。该操作开始于请求阶段450,其中主机400例如L2高速缓存230的RC机312在互说明书CN104106061A6/14页9连结构上发出。
32、请求402。请求402优选地至少包括指示期望访问的类型的事务类型和指示要由请求访问的资源的资源标识符例如,真实地址。请求的常见类型优选地包括下面在表I中阐述的那些。0042表100430044说明书CN104106061A7/14页100045说明书CN104106061A108/14页110046请求402由监听器404接收,例如L2高速缓存片段230A的监听器311A至311M。一般而言,存在一些例外,在与请求402的主机相同的L2高速缓存230A中的监听器311不监听请求402即,一般不存在自监听,这是因为仅当请求402不能由处理单元104内部服务时请求402才在互连结构上被发送。004。
33、7操作继续部分响应阶段455。在部分响应阶段455期间,接收和处理请求402的监听器404各自提供对请求402的相应部分响应406,其表示至少该监听器404的响应。集成存储器控制器106内的监听器404基于例如是否监听器404负责请求地址以及是否它具有可用于服务请求的资源来确定要提供的部分响应406。L2高速缓存230的监听器404可以基于例如其L2高速缓存目录308的可用性、监听器404内的要处理请求的监听逻辑实例311的可用性以及与L2高速缓存目录308内的请求地址关联的一致性状态来确定其部分响应406。0048操作继续组合响应阶段460。在组合响应阶段460期间,监听器404的部分响应4。
34、06由响应逻辑422的一个或多个实例分阶段或一次全部地在逻辑上进行组合以确定对请求402的全系统组合响应本文中称为“CR”或“CRESP”410。在一个优选实施例中,将在此处之后假设的是,负责用于生成组合响应410的响应逻辑422的实例被定位在包含发出请求402的主机400的处理单元104中,例如在结构控制器216中。响应逻辑422经由互连结构提供组合响应410给主机400和监听器404以指示对请求402的全系统响应例如,成功、失败、重试等。如果CR410指示请求402的成功,则CR410可以指示例如用于请求的存储器块的数据源、其中请求的存储器块要由主机400缓存的高速缓存状态以及是否要求使一。
35、个或多个L2高速缓存230中的请求的存储器块无效的“清除”操作。0049响应于组合响应410的接收,通常主机400和监听器404中的一个或多个执行一个或多个操作以便服务请求402。这些操作可以包括供应数据给主机400、使缓存在一个或多个L2高速缓存230中的数据的一致性状态无效或者更新、执行驱逐操作、将数据写回到系统存储器108等。如果由请求402要求,则请求的或目标存储器块可以在由响应逻辑422生成组合响应410之前或之后发送给主机400或者从主机400发送。0050在以下描述中,监听器404对请求402的部分响应406和由监听器404响应于请求402和/或其组合响应410执行的操作将参照该。
36、监听器相对于由请求指定的请求地址是一致性的最高点HPC、一致性的最低点LPC还是两者都不是来描述。在本文中LPC被定义为用作用于存储器块的最终存储库的存储器设备或I/O设备。在没有保持存储器块的副本的缓存参与者的时候,LPC仅保持存储器块的图像。在没有用于存储器块的HPC缓存参与者的时候,LPC具有唯一的权力来允许或拒绝修改存储器块的请求。此外,在LPC数据是当前的并且在没有可以提供数据的缓存参与者的时候,LPC针对要读取或修改存储器块的请求提供该数据。如果缓存参与者具有更加当前的数据副本,但是不能够将其提供给请求,那么LPC不提供过时数据并且请求被重试。对于在数据处理系统实施例中的典型请求,。
37、LPC将是用于保持引用的存储器块的系统存储器108的存储器控制器106。在本文中HPC被定义为缓存存储器块的真实图像其可以与LPC处的对应存储器块一致或者可以不一致的说明书CN104106061A119/14页12唯一标识的设备并且有权允许或拒绝修改存储器块的请求。描述性地,HPC即使其副本与LPC背后的主存储器一致响应于读取或修改存储器块的任何请求还提供存储器块的副本给请求者高速缓存到高速缓存的转移比LPC到高速缓存转移快。从而,对于在数据处理系统实施例中的典型请求,HPC如果有的话将是L2高速缓存230。虽然其它指示符可以被利用用于指派用于存储器块的HPC,但是优选实施例利用所选择的在L2。
38、高速缓存230的L2高速缓存目录308内的高速缓存一致性状态或多个状态来指派用于存储器块的HPC。在优选实施例中,在一致性协议内的一致性状态,除了提供1是否高速缓存是用于存储器块的HPC的指示之外,还指示2是否缓存的副本是唯一的即,是全系统仅有的缓存的副本、3是否以及何时高速缓存可以提供存储器块的副本给针对存储器块的请求的主机、以及4是否存储器块的缓存的图像与在LPC系统存储器处的对应存储器块一致。这四个属性可以被表达在例如下面在表II中总结的众所周知的MESI修改、排它、共享、无效协议的示例性变体中。关于一致性协议的进一步的信息可以例如在第7,389,388号美国专利中找到。0051表II0。
39、0520053在上面的表II中值得注意的是T、SL和S状态,它们全部都是“共享”一致性状态,在于高速缓存存储器可以同时保持由另一个高速缓存存储器保持在这些状态中的任何一个中的高速缓存行的副本的。T或TE状态标识之前将关联的高速缓存行分别保持在M或ME状态之一中并且提供关联的高速缓存行的只查询副本给另一个高速缓存存储器的HPC高速缓存存储器。作为HPC,将高速缓存行保持在T或TE一致性状态中的高速缓存存储器说明书CN104106061A1210/14页13有权修改高速缓存行或将这种权利给另一个高速缓存存储器。如果没有将高速缓存行保持在SL状态中的高速缓存存储器可用于用作数据源在CRESP之前,则。
40、将高速缓存行保持在TX状态例如,T或TE中的高速缓存存储器用作用于该高速缓存行的只查询副本的最后手段在CRESP之后的高速缓存数据源,其中高速缓存存储器将只提供只查询副本给另一个高速缓存存储器。0054响应于该高速缓存存储器接收到来自在T一致性状态中的高速缓存存储器的高速缓存行的只查询副本,SL状态在高速缓存存储器处形成。虽然SL状态不是HPC一致性状态,但是将高速缓存行保持在SL状态中的高速缓存存储器有能力提供该高速缓存行的只查询副本给另一个高速缓存存储器并且可以在CRESP接收之前这么做。响应于提供高速缓存行的只查询副本给另一个高速缓存存储器这假设SL状态,提供高速缓存行的只查询副本的高速。
41、缓存存储器针对高速缓存行将其一致性状态从SL更新到S。从而,SL一致性状态的实现可以使得被频繁查询的高速缓存行的大量只查询副本贯穿多处理器数据处理系统被创建,有利地减少了对这些高速缓存行的只查询访问的延时。0055再次参照图4,如果必要,响应于请求402,用于在请求402中引用的存储器块的HPC如果有的话或者在没有HPC的时候存储器块的LPC优选地具有保护存储器块的所有权转移的责任。在图4中示出的示例性情景中,在从监听器404N确定其部分响应406的时间延伸直到监听器304N接收组合响应410的保护窗口412A期间以及在随后的将可编程时间延伸超出由监听器404N对组合响应410的接收的窗口延伸。
42、412B期间,在用于由请求402的请求地址指定的存储器块的HPC或者在没有HPC的时候LPC处的监听器404N保护请求的存储器块的所有权到主机400的转移。在保护窗口412A和窗口延伸412B期间,监听器404N通过提供对指定相同的请求地址的其它请求的部分响应406、其防止其它主机获得所有权来保护所有权的转移例如,重试部分响应,直到所有权已经成功地转移到主机400。在组合响应410的接收后,同样地主机400启动保护窗口413以保护其在请求402中请求的存储器块的所有权。0056因为监听器404全部具有有限的用于处理上面描述的CPU和I/O请求的资源,几个不同级别的部分响应和对应CR是可能的。例。
43、如,如果在存储器控制器106内负责请求的存储器块的监听器具有可用于处理请求的队列,那么监听器可以以指示它能够用作用于请求的LPC的部分响应来作出响应。另一方面,如果监听器没有可用于处理请求的队列,那么监听器可以以指示它是用于存储器块的LPC的部分响应来作出响应,但是当前不能够服务该请求。类似地,在L2高速缓存230中的监听器311可以要求监听逻辑的可用实例并且访问L2高速缓存目录406以便处理请求。没有访问这些资源中的任一个或两者导致部分响应和对应CR信令由于缺乏要求的资源而无能力服务请求。0057如上面讨论的,因为通过软件程序的时间关键的路径一般由加载延时来确定,所以在数据处理系统中读取类型。
44、的操作一般优先于存储类型的操作。读取类型的操作优先于存储类型的操作可以被表达在包括由给定的数据处理系统实现的硬件架构、存储器型号和一致性协议的许多数据处理系统属性中。例如,在表II中总结的一致性协议通过偏好被频繁查询的高速缓存行的大量分布式只查询SL或S副本贯穿多处理器数据处理系统的形成来反映这种优先性。尽管大量高速缓存行的只查询副本源的可用性降低了非存储修改操作的访问延时,但是贯穿数据处理系统分散的高速缓存行的许多副本的存在可能增加存储说明书CN104106061A1311/14页14修改访问的访问延时,因为保持高速缓存行的只查询副本并且服务只查询访问请求的高速缓存存储器中的任何一个可以强制。
45、推行重试存储修改访问的竞争请求。在某些情况下,存储修改访问的反复重试可能减缓或者甚至停止程序的前进例如,如果存储修改访问被要求释放高度竞争的锁定。0058具体而言,在上面描述的一致性协议中,在TX状态中的HPC被要求保护它看到的第一读取操作并且对该地址重试所有其它读取和修改操作直到至少CRESP用于该读取。这是要确保在没有SL副本提供读取数据的时候要么由于SL正忙于另一个请求要么完全不存在,HPC高速缓存将提供数据。如果HPC高速缓存相对于LPC中的主存储器被修改并且SL高速缓存完全不存在,因为LPC数据过时,HPC必须执行该功能并且HPC高速缓存必须提供数据。在其它情况下,因为高速缓存到高速。
46、缓存的转移即使在CRESP之后比LPC到高速缓存的转移更高效,所以优选地使HPC提供数据。因此,在存在显著数量的查询读取高速缓存的情况下,因为大部分时间HPC正忙着用作最后手段的数据源并且不能够锁定块修改请求,所以试图存储到位置例如,释放锁定的单个高速缓存可能具有显著困难来接触HPC并且获得修改存储器块的权限。0059如下面参照图5至图6详细描述的,与读取优先级关联的性能问题可以通过临时并且动态增加存储类型的操作相对于读取类型的操作的优先级来解决,使得存储可以更有效地竞争以被HPC高速缓存识别。至少在一些实施例中,通过强制重试以针对其检测到竞争的高速缓存行为目标的读取类型的操作,存储类型的操作。
47、的优先级相对于读取类型的操作增加。0060现在转向图5,示出了根据一个实施例的通过其高速缓存存储器动态地使存储操作的处理优先于读取操作的示例性过程的高级别逻辑流程图。为了清楚起见,在本文中图5的流程图将结合图6的时序图600来描述。0061响应于将读取类型的操作的目标高速缓存行保持在共享、修改的一致性状态例如,TX状态中的L2高速缓存存储器230从局域互连114监听读取操作,在图5中描绘的过程在框500处开始。读取类型的操作可以是如先前描述的读取操作或者对目标高速缓存行的任何其它非存储修改访问。在框502处,L2高速缓存存储器230的调度逻辑306通过监听机311从空闲状态到忙碌状态的转换来调。
48、度监听机311处理从局域互连114监听的读取类型操作,如在图6中附图标记602处描绘的。据此调度的监听机311开始对监听的读取类型操作的目标地址的保护。所述的另一种方式,尽管读取类型操作正由调度的监听机311处理,在监听器正在完成对读取的正常处理如在图6中附图标记606处描绘的时任何随后接收的具有相同目标地址的存储类型操作将接收来自L2高速缓存230的重试部分响应并且因此强制存储类型操作的主机重新发出存储类型操作以便更新与目标地址关联的高速缓存行的重试CRESP。在一个或多个实施例中,读取类型操作和存储类型操作具有与共享修改高速缓存状态例如,如上面描述的高速缓存状态“T”或“TE”关联的目标地。
49、址。0062如在框504处示出的,如果监听机311已经完成了其对读取操作的处理如在图6的附图标记604处描绘的,过程行进到下面描述的方框510。在决定框504处,如果监听机311还没有完成对读取操作的处理,过程在方框505处继续,方框505示出了监听机311执行对监听的读取类型操作的正常处理,其可以包括例如响应于指示读取类型操作成功的说明书CN104106061A1412/14页15组合响应的接收,通过高速缓存至高速缓存介入来向请求主机提供目标高速缓存行。在方框506处,监听机311确定是否它已经检测到竞争存储类型操作如在图6的附图标记606处描绘的,也就是说,具有与监听的读取类型操作相同的目。
50、标地址并且由另一个执行线程发起的存储类型操作即,任何存储修改操作。如上面注意到的,因为监听机311已经有效地处理指向目标高速缓存行的读取类型操作,随后在监听机311处理读取类型操作时接收的任何冲突的存储类型操作将由L2给出重试部分响应。响应于在方框506处检测到竞争存储类型操作,监听机311设置标记以用于随后进入其中对目标高速缓存行的存储类型操作将被临时优先排列在任何对目标高速缓存行的读取类型操作之上的“裁判”模式如在图5的方框508和图6的附图标记608处描绘的。在一个实施例中,监听机只在与目标地址关联的高速缓存状态是共享修改状态的时候设置标记以用于随后进入裁判模式。在方框508之后,过程返。