在偏好加载的系统中存在加载竞争的情况下用于存储的前进机制的制作方法

文档序号:6533031阅读:141来源:国知局
在偏好加载的系统中存在加载竞争的情况下用于存储的前进机制的制作方法
【专利摘要】一种多处理器数据处理系统包括多个高速缓存存储器,其包括高速缓存存储器。响应于高速缓存存储器检测到指定与正由高速缓存存储器处理的第一读取类型操作的目标地址相同的目标地址的存储修改操作,高速缓存存储器提供对存储修改操作的重试响应。响应于读取类型操作的完成,高速缓存存储器进入裁判模式。在裁判模式中时,高速缓存存储器临时动态增加以所述目标地址为目标的任何第二存储修改操作相对于以所述目标地址为目标的任何第二读取类型操作的优先级。
【专利说明】在偏好加载的系统中存在加载竞争的情况下用于存储的前 进机制

【技术领域】
[0001] 本发明一般地涉及数据处理并且具体涉及在数据处理系统中服务处理器操作。更 具体地,本发明涉及在数据处理系统中动态增加存储修改操作相对于读取类型操作的优先 级。

【背景技术】
[0002] 诸如服务器计算机系统之类的常规的对称多处理器(SMP)计算机系统包括全部 耦合到系统互连的多个处理单元,该系统互连通常包括一个或多个地址、数据和控制总线。 耦合到系统互连的是系统存储器,其表示多处理器计算机系统中的易失性存储器的最低级 别并且其一般对于所有处理单元的读取访问和写入访问来说是可访问的。为了降低驻留在 系统存储器中的指令和数据的访问延时,每个处理单元通常进一步由相应多级高速缓存层 次结构来支持,其较低级别可以由一个或多个处理器核共享。
[0003] 高速缓存存储器通常被利用用于临时缓冲可能由处理器访问的存储器块以便通 过降低由必须从系统存储器加载需要的数据和指令而引入的访问延时来加速处理。在一些 多处理器(MP)系统中,高速缓存层次结构包括至少两个级别。级别一(L1)或高级别高速缓 存通常是与特定处理器核关联的专用高速缓存并且不能由MP系统中的其它核访问。通常, 响应于诸如加载或存储指令之类的存储器访问指令,处理器核首先访问较高级别高速缓存 的目录。如果请求的存储器块在较高级别高速缓存中没被找到,那么处理器核针对请求的 存储器块访问较低级别高速缓存(例如,级别二(L2)或级别三(L3)高速缓存)。最低级别 高速缓存(例如,L3)经常在若干处理器核之间共享。
[0004] 因为多个处理器核可以请求对相同的数据高速缓存行的写访问并且因为修改的 高速缓存行不会立即与系统存储器同步,所以多处理器计算机系统的高速缓存层次结构通 常实施高速缓存一致性协议以在系统存储器的内容的各处理器核的"视图(View) "之间确 保至少最低级别的一致性。
[0005] 具体而言,高速缓存一致性最低要求在处理单元访问存储器块的副本并且随后访 问存储器块的更新副本之后,处理单元不能再次访问存储器块的旧副本。
[0006] 高速缓存一致性协议通常定义与每个高速缓存层次结构的高速缓存行关联存储 的一组高速缓存状态,以及被利用用于在高速缓存层次结构之间传递高速缓存状态信息 的一组一致性消息。在许多情况下,一致性协议的高速缓存状态和状态转换被设计成相 对于存储类型操作更偏好(favor)读取类型存储器访问操作。读取类型操作优先于存储 类型操作的优先性在存在显著加载竞争的情况下可能导致存储类型操作的前进(forward progress)问题。
[0007] 因此,在现有技术中需要解决前述问题。


【发明内容】

[0008] 多处理器数据处理系统包括多个高速缓存存储器,其包括高速缓存存储器。响应 于高速缓存存储器检测到指定与正由高速缓存存储器处理的第一读取类型操作的目标地 址相同的目标地址的存储修改操作,高速缓存存储器提供对存储修改操作的重试响应。响 应于读取类型操作的完成,高速缓存存储器进入裁判(referee)模式。在裁判模式中时,高 速缓存存储器临时动态增加以目标地址为目标的任何存储修改操作相对于以该目标地址 为目标的任何第二读取类型操作的优先级。
[0009] 从第一方面来看,本发明提供了用于包括多个高速缓存存储器(其包括一个高速 缓存存储器)的多处理器数据处理系统的方法,该方法包括:响应于高速缓存存储器检测 到指定与正由高速缓存存储器处理的第一读取类型操作的目标地址相同的目标地址的第 一存储修改操作:提供对存储修改操作的重试响应;以及响应于读取类型操作的完成,进 入裁判模式;并且在裁判模式中时,高速缓存存储器临时动态增加以目标地址为目标的任 何第二存储修改操作相对于以该目标地址为目标的任何第二读取类型操作的优先级。
[0010] 从进一步的方面来看,本发明提供了用于多处理器数据处理系统的高速缓存存储 器,该高速缓存存储器包括:数据阵列;数据阵列的内容的目录;处理从互连接收的操作的 监听机(snoop machine),其中响应于检测到指定与正由高速缓存存储器处理的第一读取 类型操作的目标地址相同的目标地址的第一存储修改操作,监听机使得高速缓存存储器提 供对存储修改操作的重试响应并且,响应于读取类型操作的完成,进入裁判模式,其中在裁 判模式中时,监听机临时动态增加以目标地址为目标的任何第二存储修改操作相对于以该 目标地址为目标的任何第二读取类型操作的优先级。
[0011] 从进一步的方面来看,本发明提供了用于多处理器数据处理系统的高速缓存存储 器,该高速缓存存储器包括:数据阵列;数据阵列的内容的目录;用于处理从互连接收的操 作的监听机,其中响应于检测到指定与正由高速缓存存储器处理的第一读取类型操作的目 标地址相同的目标地址的第一存储修改操作,监听机可操作用于使得高速缓存存储器提供 对存储修改操作的重试响应并且,响应于读取类型操作的完成,进入裁判模式,其中在裁判 模式中时,监听机临时动态增加以目标地址为目标的任何第二存储修改操作相对于以该目 标地址为目标的任何第二读取类型操作的优先级。
[0012] 从进一步的方面来看,本发明提供了多处理器数据处理系统,包括:每个均包括高 速缓存存储器的多个处理单元;以及连接多个处理单元的系统互连,其中多个处理单元中 的一个特定高速缓存存储器包括本发明的高速缓存存储器。
[0013] 从进一步的方面来看,本发明提供了一种处理单元,包括:根据本发明的高速缓存 存储器以及耦合到高速缓存存储器的至少一个处理器核。
[0014] 从进一步的方面来看,本发明提供了多处理器数据处理系统,包括:每个均包括高 速缓存存储器的多个处理单元;以及连接多个处理单元的系统互连,其中多个处理单元中 的一个特定高速缓存存储器包括处理从互连接收的操作的监听机,其中响应于检测到指定 与正由高速缓存存储器处理的第一读取类型操作的目标地址相同的目标地址的第一存储 修改操作,监听机使得该特定高速缓存存储器提供对存储修改操作的重试响应并且,响应 于读取类型操作的完成,进入裁判模式,其中在裁判模式中时,监听机临时动态增加以目标 地址为目标的任何第二存储修改操作相对于以该目标地址为目标的任何第二读取类型操 作的优先级。
[0015] 从进一步的方面来看,本发明提供了一种用于包括多个高速缓存存储器(其包括 高速缓存存储器)的多处理器数据处理系统的计算机程序产品,该计算机程序产品包括由 处理电路可读的并且存储用于由处理电路执行以用于执行用于执行本发明步骤的方法的 指令的计算机可读存储介质。
[0016] 从进一步的方面来看,本发明提供了一种存储在计算机可读介质上并且可加载到 数字计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上运 行的时候,用于执行本发明的步骤。
[0017] 附图示出
[0018] 现在将仅通过示例的方式,参照以下附图中示出的优选实施例来描述本发明: [0019] 图1是根据本发明的优选实施例的示例性数据处理系统的高级别框图;
[0020] 图2是根据本发明的优选实施例的示例性处理单元的更详细的框图;
[0021] 图3是根据本发明的优选实施例的L2缓存片段的详细框图;
[0022] 图4是根据本发明的优选实施例在较低级别缓存中的处理器存储器访问操作处 理的示例性时序图;
[0023] 图5是根据本发明的优选实施例的服务处理器存储器访问操作的示例性过程的 高级别逻辑流程图;以及
[0024] 图6是根据本发明的优选实施例的服务处理器存储器访问操作的示例性过程的 时序图。

【具体实施方式】
[0025] 现在参照附图,在所有附图中同样的附图标记指同样的和对应的部分,并且具体 地参照图1,示出了描绘根据一个实施例的示例性数据处理系统的高级别框图。数据处理系 统被描绘为高速缓存一致性对称多处理器(SMP)数据处理系统100。如示出的,数据处理系 统100包括用于处理数据和指令的多个处理节点102a、102b。处理节点102耦合到系统互 连110以用于传送地址、数据和控制信息。系统互连110可以被实现为例如总线互连、开关 互连或者混合互连。
[0026] 在描绘的实施例中,每个处理节点102被实现为包含四个处理单元104a至104d 的多芯片模块(MCM),每个处理单元优选地被实现为相应集成电路。在每个处理节点102内 的处理单元104耦合用于通过局域互连114 (如系统互连110那样,其可以例如利用一个或 多个总线和/或开关来实现)与彼此和系统互连110通信。
[0027] 如在下面参照图2更详细描述的,处理单元104均包括耦合到局域互连114的存 储器控制器106以提供到相应系统存储器108的接口。驻留在系统存储器108中的数据和 指令一般可以由在数据处理系统100内的任何处理节点102的任何处理单元104中的处理 器核来访问并且修改。在备选实施例中,一个或多个存储器控制器106 (和系统存储器108) 可以耦合到系统互连110,而不是局域互连114。
[0028] 本领域技术人员将理解,图1的SMP数据处理系统100可以包括许多附加的未示 出的部件,诸如互连桥、非易失性存储、用于连接到网络或附连设备的端口等。因为这些附 加的部件对于所描述的实施例的理解不是必要的,所以它们在图1中未示出或者未在本文 中进一步讨论。然而,还应当理解的是,本文中所描述的增强可适用于多种架构的高速缓存 一致性数据处理系统并且决不限于在图1中示出的一般性数据处理系统架构。
[0029] 现在参照图2,描绘了根据一个实施例的示例性处理单元104的更详细的框图。 在描绘的实施例中,每个处理单元104是包括用于处理指令和数据的两个处理器核200a、 200b的集成电路。在优选实施例中,每个处理器核200能够独立地同时执行多个执行的硬 件线程。如描绘的,每个处理器核200包括诸如加载存储单元(LSU) 202之类的一个或多个 执行单元以用于执行指令。由LSU 202执行的指令包括请求对存储器块的访问或者使得生 成用于对存储器块的访问的请求的存储器访问指令。
[0030] 每个处理器核200的操作由多级别易失性存储器层次结构来支持,该多级别易失 性存储器层次结构在其最低级别处具有经由集成存储器控制器106访问的共享系统存储 器108,并且在其高级别处具有一个或多个级别的高速缓存存储器,在说明性实施例中其包 括在每个处理器核200内并且专用于每个处理器核200的存储通过(store-through)级别 一(L1)高速缓存226,和针对每个处理器核200a、200b的相应存储中(store-in)级别二 (L2)高速缓存230。为了高效处理对可缓存地址的多个并发的存储器访问请求,每个L2高 速缓存230可以利用多个L2高速缓存片段( Slice)230al至230aN来实现,其中的每一个 针对相应真实的存储器地址集合处理存储器访问请求。
[0031] 虽然示出的高速缓存层次结构只包括两个级别的高速缓存,但是本领域技术人员 将理解,备选实施例可以包括附加级别(L3、L4等)的片上或片外内联或后备高速缓存,其 可以完全包括、部分包括或不包括高级别的高速缓存的内容。
[0032] 每个处理单元104进一步包括集成和分布式结构(fabric)控制器216,负责用于 控制在局域互连114和系统互连110上的操作流并且用于实现用于实现所选择的高速缓存 一致性协议所要求的一致性通信。处理单元104进一步包括支持一个或多个I/O设备(未 示出)的附连的集成I/O(输入/输出)控制器214。
[0033] 在操作中,在由处理器核200执行之下的硬件线程包括请求执行指定的存储器访 问操作的存储器访问指令的时候,LSU 202执行存储器访问指令以确定存储器访问请求的 目标真实地址。然后,LSU202向其处理器核200内的哈希逻辑206发送至少存储器访问请 求,其包括至少事务类型(ttype)和目标真实地址。哈希逻辑206对目标真实地址进行哈 希以标识适当的目的地(例如,L2高速缓存片段230al至230aN)和调度(dispatch)用于 服务适当的目的地的请求。
[0034] 现在参照图3,示出了根据一个实施例的L2高速缓存片段230al至230aN(统称为 L2高速缓存片段230a)之一的示例性实施例的更详细的框图。如在图3中示出的,L2高速 缓存片段230a包括高速缓存阵列302和高速缓存阵列302的内容的目录308。虽然未明确 示出,但是高速缓存阵列302优选利用单个读取端口和单个写入端口来实现以降低用于实 现高速缓存阵列302所要求的模片区(diearea)。
[0035] 假设高速缓存阵列302和目录308如常规的被设置成关联的,系统存储器108中 的存储位置利用系统存储器(真实)地址内的预定索引比特被映射到高速缓存阵列302内 的特定同余类(congruence class)。存储在高速缓存阵列302的高速缓存行内的特定存储 器块被记录在高速缓存目录308中,其针对每个高速缓存行包含一个目录条目。虽然未明 示地在图3中描绘,本领域技术人员将理解,高速缓存目录308中的每个目录条目都包括各 种字段,例如标识保持在高速缓存阵列302的对应高速缓存行中的存储器块的真实地址的 标记字段、指示高速缓存行的一致性状态的状态字段、指示高速缓存行相对于相同的同余 类中的其它高速缓存行的代替顺序的LRU (最近最少使用)字段和指示是否存储器块保持 在关联的L1高速缓存226中的包含比特。
[0036] L2高速缓存片段230a包括多个(例如16)读取要求(RC)机312a至312η以用 于独立且并发地服务从关联处理器核200接收的加载(LD)和存储(ST)请求。为了服务 源自除了关联处理器核200之外的处理器核200的远程存储器访问请求,L2高速缓存片段 230a还包括多个监听机311a至311m。每个监听机311可以独立且并发地处理从局域互连 114 "监听的"远程存储器访问请求。如将被理解的,由RC机312对存储器访问请求的服务 可以要求高速缓存阵列302内的存储器块的代替或无效。据此,L2高速缓存片段230a包 括管理存储器块从高速缓存阵列302的移除和写回的C0(驱逐(castout))机310。
[0037] L2高速缓存片段230a进一步包括控制多路复用器Ml至M2以对从关联处理器核 200接收的本地存储器访问请求和在局域互连114上监听的远程请求的处理排序的仲裁器 305。包括本地加载以及存储操作和远程读和写操作的存储器访问请求根据由仲裁器305 实现的仲裁政策被转发给诸如调度管线306之类的调度逻辑,其处理每个读取/加载并且 存储请求相对于目录308和高速缓存阵列302在给定数目的循环上被处理。
[0038] L2高速缓存片段230a还包括相应缓冲数据被插入到其中并且从高速缓存阵列 302移除的RC队列320和CPI (驱逐推送介入)队列318。RC队列320包括许多缓冲条目, 每个缓冲条目单独对应于RC机312中的特定一个,使得被调度的每个RC机312只从指派 的缓冲条目中检索数据。类似地,CPI队列318包括许多缓冲条目,每个缓冲条目单独对应 于驱逐机310和监听机311中的特定一个,使得被调度的每个C0机310和每个监听机311 只从相应指派的CPI缓冲条目中检索数据。
[0039] 每个RC机312还具有分配给它的多个RC数据(RCDAT)缓冲器322中的相应一个 以用于缓冲从高速缓存阵列302读取的和/或经由重新加载总线323从局域互连114接收 的存储器块。分配给每个RC机312的RCDAT缓冲器322优选地利用对应于可以由关联的 RC机312服务的存储器访问请求的连接和功能来构造。RCDAT缓冲器322具有从其输入当 中选择数据字节的关联的存储数据多路复用器M4以用于响应于未示出的由仲裁器305生 成的选择信号在RCDAT缓冲器322中的进行缓冲。
[0040] 在操作中,包括事务类型(ttype)、目标真实地址和存储数据的处理器存储请求从 存储队列(STQ) 304内的关联处理器核200被接收。根据STQ 304,存储数据经由数据路径 324被发送给存储数据多路复用器M4,并且存储类型和目标地址被传递给多路复用器Ml。 多路复用器Ml还作为输入接收来自处理器核200的处理器加载请求和来自RC机312的目 录写请求。响应于未示出的由仲裁器305生成的选择信号,多路复用器Ml选择其输入请求 中的一个以转发给多路复用器M2,其作为输入经由远程请求路径326另外接收从局域互连 114接收的远程请求。仲裁器305调度针对处理的本地和远程存储器访问请求并且基于该 调度来生成选择信号328的序列。响应于由仲裁器305生成的选择信号328,多路复用器 M2选择从多路复用器Ml接收的本地请求或从局域互连114监听的远程请求作为下一个要 被处理的存储器访问请求。
[0041] 现在参照图4,描绘了在图1的数据处理系统100的互连结构上的示例性操作的时 空图。该操作开始于请求阶段450,其中主机400 (例如L2高速缓存230的RC机312)在互 连结构上发出请求402。请求402优选地至少包括指示期望访问的类型的事务类型和指示 要由请求访问的资源的资源标识符(例如,真实地址)。请求的常见类型优选地包括下面在 表I中阐述的那些。
[0042] 表 1
[0043]

【权利要求】
1. 一种在包括多个高速缓存存储器的多处理器数据处理系统中的方法,所述多个高速 缓存存储器包括一个高速缓存存储器,所述方法包括: 响应于所述高速缓存存储器检测到指定与正由所述高速缓存存储器处理的第一读取 类型操作的目标地址相同的目标地址的第一存储修改操作: 提供对所述存储修改操作的重试响应;以及 响应于所述读取类型操作的完成,进入裁判模式;以及 在所述裁判模式中时,所述高速缓存存储器临时动态增加以所述目标地址为目标的任 何第二存储修改操作相对于以所述目标地址为目标的任何第二读取类型操作的优先级。
2. 根据权利要求1所述的方法,其中: 增加对所述目标地址的任何第二存储修改访问的优先级包括当在所述高速缓存存储 器处不存在指定所述高速缓存存储器处的所述目标地址的另一个未决操作的情况下,提供 对所述第二读取类型操作的重试响应。
3. 根据前述任一项权利要求所述的方法,进一步包括: 在裁判模式中时,接收指定所述相同的目标地址的第二存储修改操作; 响应于接收到指定所述相同的目标地址的所述第二存储修改操作: 退出裁判模式,以及 在所述高速缓存存储器处服务所述第二存储修改操作。
4. 根据权利要求3所述的方法,其中: 所述第一存储修改操作和所述第二存储修改操作从相同主机接收。
5. 根据前述任一项权利要求所述的方法,进一步包括: 检测在没有接收到指定所述相同的目标地址的第二存储修改操作的情况下存在的超 时条件;以及 响应于检测到所述超时条件,所述高速缓存存储器退出裁判模式。
6. 根据前述任一项权利要求所述的方法,其中所述高速缓存存储器仅在与所述目标地 址关联的高速缓存状态是共享修改状态的情况下进入裁判模式。
7. -种用于多处理器数据处理系统的高速缓存存储器,所述高速缓存存储器包括: 数据阵列; 所述数据阵列的内容的目录; 用于处理从互连接收的操作的监听机,其中响应于检测到指定与正由所述高速缓存存 储器处理的第一读取类型操作的目标地址相同的目标地址的第一存储修改操作,所述监听 机可操作用于使得所述高速缓存存储器提供对所述存储修改操作的重试响应,并且响应于 所述读取类型操作的完成而进入裁判模式,其中在所述裁判模式中时,所述监听机临时动 态增加以所述目标地址为目标的任何第二存储修改操作相对于以所述目标地址为目标的 任何第二读取类型操作的优先级。
8. 根据权利要求7所述的高速缓存存储器,其中所述监听机进一步可操作用于通过当 在所述高速缓存存储器处不存在指定所述目标地址的另一个未决操作的情况下提供对第 二读取类型操作的重试响应,来临时动态增加对所述目标地址的任何第二存储修改访问的 优先级。
9. 根据权利要求7或8中的任一项所述的高速缓存存储器,其中所述监听机响应于在 裁判模式中时接收到指定所述相同的目标地址的所述第二存储修改操作,可操作用于退出 所述裁判模式并且服务所述第二存储修改操作。
10. 根据权利要求9所述的高速缓存存储器,其中所述第一存储修改操作和所述第二 存储修改操作从相同主机可接收。
11. 根据权利要求7至10中的任一项所述的高速缓存存储器,其中所述监听机进一步 可操作用于检测在没有接收到指定所述相同的目标地址的第二存储修改操作时的超时条 件,并且响应于检测到所述超时条件而退出裁判模式。
12. 根据权利要求7至11中的任一项所述的高速缓存存储器,其中所述高速缓存存储 器可操作用于仅在与所述目标地址关联的高速缓存状态是共享修改状态的情况下进入裁 判模式。
13. -种处理单元,包括: 根据权利要求7至12中任一项所述的高速缓存存储器;以及 耦合到所述高速缓存存储器的至少一个处理器核。
14. 一种多处理器数据处理系统,包括: 每个均包括高速缓存存储器的多个处理单元;以及 连接所述多个处理单元的系统互连,其中所述多个处理单元中的一个处理单元的特定 高速缓存存储器包括根据权利要求7至12中任一项所述的高速缓存存储器。
15. -种用于包括多个高速缓存存储器的多处理器数据处理系统的计算机程序产品, 所述多个高速缓存存储器包括一个高速缓存存储器,所述计算机程序产品包括:由处理电 路可读的并且存储用于由所述处理电路执行以用于执行根据权利要求1至6中任一项所述 的方法的指令的计算机可读存储介质。
16. -种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机 程序,包括软件代码部分,当所述程序在计算机上运行时,所述软件代码部分用于执行根据 权利要求1至6中任一项所述的方法。
【文档编号】G06F15/167GK104106061SQ201380008781
【公开日】2014年10月15日 申请日期:2013年1月23日 优先权日:2012年2月8日
【发明者】D·E·威廉斯, G·L·格思里, H·M·李, J·施蒂彻利 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1