实施高速缓存一致性的系统和方法技术方案

技术编号:2830611 阅读:174 留言:0更新日期:2012-04-11 18:40
一种用于实施高速缓存一致性的计算机实现的方法,包括:    通过网络无需排序限制地从请求节点多播对于存储器地址的高速缓存请求;    通过嵌入所述网络中的单向环,由所述请求节点收集所述高速缓存请求的组合侦测响应;以及    根据所述组合侦测响应,在所述请求节点处实施所述存储器地址的高速缓存一致性。

【技术实现步骤摘要】

本专利技术涉及高速緩存一致性(Cache coherence)机制,并且尤 其涉及利用基于环的侦测响应收集(ring-based snoop response collection )在基于网络的多处理器系统中的高速緩存一致性。
技术介绍
对称多处理器(SMP)系统采用高速緩存一致性机制以确保 高速緩存一致性。基于侦测的高速緩存一致性是实现SMP系统的高速 緩存一致性的典型方案。利用基于侦测的高速緩存一致性,当高速緩 存缺失(Cache Miss)发生时,请求高速緩存向其对等的高速緩存广 播高速緩存请求。适当的高速緩存侦测过滤机制用于减少由高速緩存 一致性消息和高速緩存侦测操作造成的开销。通常,在基于总线的 SMP系统中实现基于侦测的高速緩存一致性,在该SMP系统中高速緩 存经由共享总线互相通信。为避免潜在的通信瓶颈,现代SMP系统通 常使用消息传递网络,而不是在物理上共享的总线。此类SMP系统被 称为基于网络的SMP系统。现在参照图l,示出了一个示例性高速緩存一致性多处理器系统,其包括经由节点间互连网络互连的多个节点,其中每个节点包括中央处理单元(CPU)和高速緩存。同样连接到该节点间互连网络上的是存储器和输入/输出(IO)设备。虽然存储器被描述成一个部件,但是存储器可被物理地分成多个存储器部分,其中每个存储器部分在 操作上与节点相关。现在参照图2,示出了另一个示例性高速緩存一致性多处理器系 统,其包括经由节点间互连网络互连的多个节点,其中每个节点包括 芯片多处理器(CMP)子系统。每个CMP子系统包括一个或多个能够经由节点内结构互相通信的高速緩存。存储器部分,以及输入/ 输出设备也可被连接到节点内结构上。利用基于侦测的高速緩存一致性,当读取高速緩存缺失发生时, 请求高速緩存通常向其对等高速緩存和存储器广播高速緩存数据请 求。当对等高速緩存收到高速緩存数据请求时,该对等高速緩存执行 本地高速緩存侦测操作,并且产生表明是否在对等高速緩存中找到所 请求的数据,以及相应高速緩存管线的状态的高速緩存侦测响应。如 果在对等高速緩存中找到所请求的数据,则对等高速緩存可经由高速 緩存至高速緩存传送向请求高速緩存提供数据。如果没有对等高速緩 存能够提供数据,则存储器负责提供所请求的数据。在高速緩存一致性SMP系统中,高速緩存请求可以是旨在获得所 请求数据的共享拷贝的高速緩存数据请求、旨在获得所请求数据的排 它拷贝(exclusive c叩y)的高速緩存数据和所有权请求、或旨在使其它 高速緩存中的所请求数据的共享拷贝无效的所有权请求。用于获得基于侦测的高速緩存一致性的若干技术为本领域技术 人员所熟知。例如,MESI侦测高速緩存一致性协议及其变型已被广 泛地用于SMP系统中。正如名称所暗示的,MESI具有4个高速緩存状 态修改(M)、排它(E)、共享(S)以及无效(1)。如果高速緩存管线 在高速緩存中处于无效状态,则数据在高速緩存中不是有效的。如果 高速緩存管线在高速緩存中处于共享状态,则数据在高速緩存中有 效,并且在其它高速緩存中也可能有效。例如,当从存储器或另一个 高速緩存中检索数据时,进入该状态,并且相应的侦测响应表明数据 在至少一个其它高速緩存中有效。如果高速緩存管线在高速緩存中处 于排它状态,则数据在该高速緩存中有效,并且在任何其他高速緩存 中不能有效。此外,相对于保存在存储器中的数据,该数据尚未被修 改。例如,当从存储器或另一个高速緩存中检索数据时,进入该状态, 并且相应的侦测响应表明该数据在任何其他高速緩存中都不是有效 的。如果高速緩存管线在高速緩存中处于修改状态,则数据在高速緩 存中有效,并且在任何其他高速緩存中不可能有效。此外,作为存储器存储操作的结果,该数据已被修改,并且修改的数据尚未被写入存储器o利用基于侦测的高速緩存一致性,当高速緩存缺失发生时,如果 在存储器和另一个高速緩存中都找到所请求的数据,因为高速緩存至 高速緩存传送等待时间通常小于存储器访问等待时间,所以通常优选经由高速緩存至高速緩存传送提供数据。例如,在IBM⑧Power 4系统 中,当一个地址的数据在多芯片模块中的一个或多个高速緩存中共享 时,具有最后收到的共享拷贝的高速緩存可经由高速緩存至高速緩存 传送给相同多芯片模块中的另 一 个高速緩存提供数据。如果最初从高速緩存产生高速緩存请求,则该高速緩存被称为高 速緩存请求的请求高速緩存。如果在给高速緩存请求提供服务过程中 需要侦测高速緩存,则该高速緩存被称为高速緩存请求的侦测高速緩 存。如果高速緩存提供所请求数据给请求高速緩存,则该高速緩存被 称为高速緩存请求的供给高速緩存。同样,如果最初从节点中的高速緩存产生高速緩存请求,则该节 点被称为高速緩存请求的请求节点。如果在给高速緩存请求提供服务 过程中,需要侦测节点中的至少一个高速緩存,则该节点被称为高速 緩存请求的侦测节点。如果节点中的高速緩存提供所请求数据给请求 节点,则该节点被称为高速緩存请求的供给节点。在基于总线的SMP系统中,总线充当中央仲裁器,其将所有总线 事务序列化,以确保总线事务的全部顺序。在基于网络的SMP系统中, 可以于不同的接收高速緩存以不同顺序接收消息。该一致性消息的序 列化保证的缺乏使得难以提供有效的高速緩存一致性支持。因此,存 在对于在基于网络的多处理器系统中能够有效地支持高速緩存一致 性的机制的需要。
技术实现思路
根据本专利技术的一个实施例,一种用于实施高速緩存一致性的计算 机实现的方法包括通过网络无需排序限制地从请求节点多播对于存储器地址的高速緩存请求,通过嵌入所述网络中的单向环,由该请求 节点收集高速緩存请求的组合侦测响应,以及根据该组合侦测响应在 请求节点处实施存储器地址的高速緩存一致性。才艮据本专利技术的一个实施例,高速緩存一致性系统包括通过网络连 接的多个节点,所述网络包括嵌入的单向环,以及实现该系统的高速 緩存一致性的高速緩存一致性机制,其中所述高速緩存一致性机制无 需任何排序限制地利用网络传送对于存储器地址的高速緩存请求,并 且利用嵌入的单向环收集高速緩存请求的组合侦测响应。根据本专利技术的一个实施例,提供一种计算机可读介质,其包含了 由处理器可执行的指令,该指令用来执行用于实施高速緩存一致性的方法。该方法包括通过网络无需排序限制地从请求节点多播对于存 储器地址的高速緩存请求,通过嵌入所述网络中的单向环,由该请求 节点收集高速緩存请求的组合侦测响应,以及根据该组合侦测响应在 请求节点处实施存储器地址的高速緩存一致性。附图说明参照附图,下面将更详细地描述本公开的优选实施例 图l描述了示例性高速緩存一致多处理器系统,其包括经由节点间互连网络互连的多个节点,其中每个节点包括CPU和高速緩存。 图2描述了示例性高速緩存一致多处理器系统,其包括经由节点间互连网络互连的多个节点,其中每个节点包括CMP子系统,该CMP子系统包括一个或多个高速緩存。图3示出了图解请求节点如何处理到来的数据请求的流程图。 图4示出了图解请求节点如何处理到来的数据和所有权请求的流程图。图5示出了图解请求节点如何处理到来的所有权请求的流程图。 图6示出了图解侦测节点如何处理到来的高速緩存请求的流程图。图7示出了图解侦测节点如何处理高速本文档来自技高网
...

【技术保护点】
一种用于实施高速缓存一致性的计算机实现的方法,包括:通过网络无需排序限制地从请求节点多播对于存储器地址的高速缓存请求;通过嵌入所述网络中的单向环,由所述请求节点收集所述高速缓存请求的组合侦测响应;以及根据所述组合侦测响应,在所述请求节点处实施所述存储器地址的高速缓存一致性。

【技术特征摘要】
1.一种用于实施高速缓存一致性的计算机实现的方法,包括通过网络无需排序限制地从请求节点多播对于存储器地址的高速缓存请求;通过嵌入所述网络中的单向环,由所述请求节点收集所述高速缓存请求的组合侦测响应;以及根据所述组合侦测响应,在所述请求节点处实施所述存储器地址的高速缓存一致性。2. 如权利要求l所述的计算机实现的方法,进一步包括 通过所述网络将所述存储器地址的数据提供给所述请求节点; 在由所述请求节点收集所述高速緩存请求的所述侦测响应之前,使用在所述请求节点处的所述数据;以及在接收到所述高速緩存请求的数据和侦测响应后,完成在所述请 求节点处的所述高速緩存请求。3. 如权利要求2所迷的计算机实现的方法,进一步包括 在侦测节点处从所述请求节点接收所述高速緩存请求; 在所述侦测节点处执行本地高速緩存侦测操作,并且产生所述高速緩存请求的LSR (本地侦测响应);以及为了后续处理在所述侦测节点处记录所述LSR。4. 如权利要求2所述的计算机实现的方法,进一步包括 在侦测节点处从所述请求节点接收所述高速緩存请求;在所述侦测节点处执行本地高速緩存侦测操作,并且产生所述高 速緩存请求的LSR (本地侦测响应);基于来自在前节点的所述高速緩存请求的所述LSR以及在前 PCSR,确定所述高速緩存请求的新PCSR (部分组合侦测响应),其 中在嵌入所述网络中的单向环中所述在前节点在所述侦测节点之前; 以及通过嵌入所述网络中的所述单向环,将来自所述侦测节点的所述 高速緩存请求的所述新PCSR转发给后续节点,其中在嵌入所述网络 中的所述单向环中所述后续节点在所述侦测节点之后。5. 如权利要求2所述的计算机实现的方法,进一步包括 在侦测节点处从在前节点接收在前PCSR(部分组合侦测响应),其中在嵌入所述网络中的所述单向环中所述在前节点在所述侦测节 点之前;以及为了后续处理在所述侦测节点处记录所述在前PCSR。6. 如权利要求2所述的计算机实现的方法,进一步包括 在侦测节点处从在前节点接收在前PCSR(部分组合侦测响应),其中在嵌入所述网络中的所述单向环中所述在前节点在所述侦测节 点之前;基于所述高速緩存请求的所述在前PCSR和先前记录的LSR (本 地侦测响应),确定所述高速緩存请求的新PCSR;以及通过嵌入所述网络中的所述单向环,将来自所述侦测节点的所述 高速緩存请求的所述新PCSR转发给后续节点,其中在嵌入所述网络 中的所述单向环中所述后续节点在所述侦测节点之后,7,如权利要求2所述的计算机实现的方法,进一步包括 在侦测节点处从在前节点接收在前PCSR (部分组合侦测响应)和侦测列表,其中所述侦测列表包括针对所述高速緩存请求需要被侦测的至少一个节点;以及如果所述侦测节点被包含在所述侦测列表中,则在所述侦测节点处为后续处理记录所述在前PCSR。8. 如权利要求2所述的计算机实现的方法,进一步包括 在侦测节点处从在前节点接收在前PCSR (部分组合侦测响应)和侦测列表,其中所述侦测列表包括针对所述高速緩存请求需要被侦 测的至少一个节点;以及如果所述侦测节点没有被包含在所述侦测列表中,则通过嵌入所 述网络中的所述单向环,将所述在前PCSR和所述侦测列表转发给后 续节点。9. 如权利要求2所述的计算机实现的方法,进一步包括 在侦测节点处从在前节点接收在前PCSR (部分组合侦测响应)和侦测列表,其中所述侦测列表包括针对所述高速緩存请求需要被侦 测的至少一个节点;基于所述高速緩存请求的所述在前PCSR和先前记录的LSR (本 地侦测响应),确定所述高速緩存请求的新PCSR;以及通过嵌入所述网络中的所述单向环,将来自所述侦测节点的所述 高速緩存请求的所述新PCSR和所述侦测列表转发给后续节点。10. 如权利要求2所述的计算机实现的方法,其中,将所述数据 提供给所述请求节点的步骤包括提供来自侦测节点的所述数据或提 供来自存储器的所述数据中的一个。11. 如权利要求l所述的计算机实现的方法,其中对于所述存储 器地址的高速緩存请求为数据请求、数据和所有权请求或所有权请 求。12. 如权利要求l所述的计算机实现的方法,进一步包括 通过所述网络无需排序限制地多播来自所述请求节点的、对于第二存储器地址的第二高速緩存请求;通过嵌入所述网络中的第二单向环,由所述请求节点收集所述第 二高速緩存请求的第二组合侦测响应;以及根据所述第二组合侦测响应,在所述请求节点处实施所述第二存...

【专利技术属性】
技术研发人员:沈晓卫卡里恩·施特劳斯
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1