首页> 中国专利> 独占所有权探听过滤器

独占所有权探听过滤器

摘要

一种探听过滤器为多处理器系统中的多个高速缓存维持数据一致性信息。独占所有权探听过滤器只存储由处理器独占所有的条目。一致性引擎更新探听过滤器中的条目,以便在条目退出独占状态的情况下,从探听过滤器移除条目。为确保数据一致性,一致性引擎实现将读请求与写请求去耦的排序规则。

著录项

  • 公开/公告号CN101097545A

    专利类型发明专利

  • 公开/公告日2008-01-02

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN200710129014.3

  • 发明设计人 J·D·吉尔伯特;K·程;L·程;

    申请日2007-06-29

  • 分类号G06F12/08;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人曾祥夌

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 19:32:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-23

    未缴年费专利权终止 IPC(主分类):G06F12/08 授权公告日:20120530 终止日期:20190629 申请日:20070629

    专利权的终止

  • 2012-05-30

    授权

    授权

  • 2008-02-27

    实质审查的生效

    实质审查的生效

  • 2008-01-02

    公开

    公开

说明书

技术领域

本发明涉及多处理器系统中的高速缓存一致性。

背景技术

在具有多个高速缓存的多处理器系统中,每个高速缓存可具有存储器中存储的一段数据的拷贝。在高速缓存中的多个数据拷贝不一致时会出现问题。各种技术已开发用于确保数据一致性。例如在修改一个高速缓存中的数据时,将数据的其它拷贝标记为无效,以使它们不会被用。

高速缓存中的数据拷贝经常称为高速缓存线、存储器线或线。探听操作称为过程,其中总线代理监视总线是否有存储器事务处理,例如对也可位于高速缓存中的主存储器位置进行的读/写操作。代理可在例如探听过滤器等目录中记录存储器事务处理中涉及的高速缓存线状态。高速缓存线状态可指示该线是否只具有主存储器外的一个有效拷贝,有多个高速缓存共享的多个有效拷贝,或已被无效。探听过滤器中的数据条目经常按主存储器中的其地址索引。

通常需要具有提供处理器高速缓存总大小多倍覆盖率的大探听过滤器(例如8x覆盖率,这是一个技术术语,它指示在探听过滤器可保持的条件下,探听过滤器可保持描述如高速缓存的大约多达8倍高速缓存线的信息)。大探听过滤器可增加处理器高速缓存的命中率,并改进系统性能。然而,在处理器高速缓存大小随着时间而增大时,由于管芯大小限制,电路设计甚至难以承压提供1x覆盖率。因此,探听过滤器有时会用尽空间以记录新存储器事务处理的线状态,并可能需要从探听过滤器赶出一个条目以容纳新事务处理。一旦从探听过滤器赶出一个条目,便发送过期无效消息到可能保持与被赶出条目相关联的线的有效拷贝的每个处理器高速缓存。实验显示,相当大数量的高速缓存未中(例如20%)是由于原来要使用的高速缓存线过期无效的原因。

发明内容

本发明提供一种方法,包括:在探听过滤器中只存储具有独占状态的条目;以及在请求改变了与所述探听过滤器中条目相关联的线的独占所有权的情况下,更新所述条目。

本发明还提供一种设备,包括:多个处理器;探听过滤器,与所述处理器耦合,所述探听过滤器只存储具有独占状态的条目;以及一致性引擎,更新所述探听过滤器中的所述条目。

本发明还提供一种系统,包括:多个处理器;服务器存储器,其中部分所述服务器存储器由所述多个处理器高速缓存;至少一个服务器输入/输出(I/O)装置,接收和响应外部请求;以及芯片组,包括:探听过滤器,只存储具有独占状态的条目;以及一致性引擎,更新所述探听过滤器中的所述条目。

附图说明

在附图中,以示例方式而不是限制方式示出实施例,图中相似的标号表示类似的元件。应注意,在此公开中对“一个”实施例的引用不一定为相同的实施例,并且此类引用表示至少一个。

图1是包括多个高速缓存的多处理器系统实施例框图。

图2是图1多处理器系统一致性控制器实施例的框图,其中一致性控制器包括探听过滤器和一致性引擎。

图3是示出由图2一致性引擎实现的排序规则过程的流程图示例。

具体实施方式

参照图1,多处理器系统10的实施例可包括与芯片组13互连的多个处理节点17。每个处理节点17可包括一个或多个处理器11(显示每个处理节点2个处理器)和一个高速缓存12。每个高速缓存12可由“起始节点”(此高速缓存所处的处理节点)的处理器11本地存取,也可由“远程节点”(除起始节点以外的处理节点)的处理器11远程存取。高速缓存12相对于起始节点的处理器11称为“本地高速缓存”。处理节点17可经一个或多个前端总线(FSB)14(仅示出两个FSB)或其它类型的数据路径(例如点对点连接)耦合到芯片组13。一个或多个处理节点17可在单个芯片上实现。系统10可由于其具有的高汇总处理能力而用作服务器系统。然而,系统10也可用作台式计算机或任何其它计算系统。

芯片组13可包括一致性控制器132,用于处理从FSB 14接收的请求和在高速缓存12之间维持数据一致性。下面将参照图2详细论述一致性控制器132的功能。芯片组13可包括为处理节点17提供接口的存储器控制器134和系统10的其它组件以存取存储器15的存储位置。存储器15可包括一种或多种类型的存储器件,如动态随机存取存储器(DRAM)器件、同步动态随机存取存储器(SDRAM)器件、双数据速率(DDR)SDRAM器件或适用于服务器或普通应用的其它易失性或非易失性存储器件。在一些服务器应用中,存储在存储器15上的数据位可由纠错码(ECC)进行差错防护。

芯片组13也可包括为处理节点11提供接口的I/O控制器136和系统10的其它组件以存取一个或多个I/O装置16。I/O装置16可包括工业标准体系结构(ISA)装置、外围组件互连(PCI)装置、PCIExpress装置、通用串行总线(USB)装置、小型计算机系统接口(SCSI)装置或适用于服务器或普通应用的其它标准或专有I/O装置。在一些实施例中,芯片组13可实现为单个芯片。在一些实施例中,芯片组13可实现为两个或更多个芯片。芯片组13有时可称为存储器控制集线器(MCH)或北桥(NB)。在多芯片实现中,芯片组13的辅助芯片可称为输入/输出集线器(IOH)、输入/输出控制器集线器(ICH)和/或南桥(SB)。

处理器11可在其相应本地高速缓存12中存储存储器线以便于快速存取。高速缓存12可存储数据、指令或两者的组合。对于每个高速缓存线,高速缓存12可存储一个标记(例如部分存储器地址)以将高速缓存线关联或映射到存储器15中的对应线。高速缓存12也可存储和更新每个高速缓存线的一致性状态。例如,高速缓存12可支持MESI一致性状态,其中高速缓存线可具有修改(M)状态、独占(E)状态、共享(S)状态或无效(I)状态。

根据使用MESI状态的高速缓存一致性协议的示例,无效状态(I)指示相关联高速缓存线不是线的当前拷贝。线的当前拷贝可位于存储器15中和/或远程节点中的其它高速缓存12之一中。共享状态(S)指示相关联高速缓存线是线的当前拷贝,并且零个或多个其它高速缓存12也可具有共享状态中的线的当前拷贝。独占状态(E)指示相关联高速缓存线所处的高速缓存12已经获得了线的所有权,并具有线的当前拷贝。此外,E状态指示其它高速缓存12不具有M、E或S状态中的线的拷贝。修改状态(M)指示相关联高速缓存线所处的高速缓存12具有已修改的线的当前拷贝。如同E状态的情况一样,M状态指示其它高速缓存12不具有M、E或S状态中的线的拷贝。此外,M状态指示相关联的线可能比存储器15中对应的数据线更加新。当具有M状态或E状态的线与高速缓存12之一独占相关联(例如拥有或修改)时,M状态和E状态可组合成E/M状态,有时也称为独占状态。

高速缓存线的状态可由中央目录跟踪,例如由系统10中央位置中的探听过滤器或任一其它存储器组件跟踪。参照图2,在一个实施例中,一致性控制器132可包括探听过滤器24以提供高速缓存线的一致性信息。如图2所示,一致性控制器132的实施例可包括几个FSB端口(FSB_Port_0 21和FSB_Port_1 22)、一致性引擎23和探听过滤器24。

探听过滤器24可包括一个或多个存储阵列,诸如包括存储一致性信息的路或线的完全关联阵列、组关联阵列或直接映射阵列。在一个实施例中,探听过滤器24包括96路组关联阵列,其中每个4K组包括用于存储96个高速缓存线一致性信息的96个槽(或路)225(只示出一个)。高速缓存线例如可通过使用存储器地址的最后十二位而映射到4K组之一。每个路225可存储线的信息。信息可包括地址标记和存在矢量。地址标记可包括全部或部分线的存储器地址。在使用最后十二个存储器地址位定位组的以上示例中,地址标记可以为在那十二个地址位之前的剩余存储器地址位。存在矢量可指示哪个FSB 14连接到可能具有高速缓存线的高速缓存12。

在一个实施例中,探听过滤器24可只存储与具有E/M状态的线相关联的那些条目。此类探听过滤器条目有时称为E/M条目。也就是说,如果任一高速缓存12包含或可能包含主存储器15外的线的独占拷贝,则探听过滤器24可存储该线的E/M条目。只存储E/M条目可减少探听过滤器24中存储的条目总数,并可有效地扩大探听过滤器的大小。作为一种折衷,只存储E/M条目可使探听过滤器24生成的探听数量增加。然而,尤其对于读密集型应用,整体系统性能通常提高了。

在一个实施例中,在存储器事务处理的请求到达一致性控制器132时,一致性引擎23可确定要将请求转发到何处。存储器事务处理是指需要存取存储器15或任一高速缓存12的事务处理。一致性引擎23可查找探听过滤器24以确定探听过滤器是否具有所请求线的信息。如果探听过滤器24具有该信息,则一致性引擎23基于该线的存在矢量将请求转发到FSB端口(21或22),该端口连接至具有该线当前拷贝的高速缓存12。如果事务处理可能改变所请求线的状态,则一致性引擎23更新探听过滤器24中的信息以反应该改变。如果探听过滤器24没有该线的信息,则一致性引擎可将一个条目添加到探听过滤器,以记录所请求线的一致性信息。

为了支持探听过滤器24中仅存储E/M,一致性引擎23实现一个排序规则以维持数据一致性。排序规则将存储器请求类型分为读请求和写请求。读请求与写请求去耦。处理器11和I/O装置16(图1)可发出读请求和写请求。对于处理器请求,写请求可包括写(也称为所有权读)和写无效。对于每个请求类型,在探听过滤器命中和探听过滤器未中的情况下采取不同的一致性动作。一致性引擎23可通过硬件或嵌入式固件实现排序规则。

请求类型探听过滤器结果探听过滤器动作    一致性动作处理器读    命中    移除条目    当前所有者的“Goto_S”探听    未中    无    无处理器写(所有权读)    命中    更新所有者    使探听对当前所有者无效    未中    分配条目    使全部代理的探听无效处理器写无效    命中    移除条目    使探听对当前所有者无效    未中    无    使全部代理的探听无效I/O DMA读    命中    移除条目    当前所有者的“Goto_S”探听    未中    无    无I/O DMA写    命中    移除条目    使探听对当前所有者无效    未中    无    使全部代理的探听无效

表1仅E/M探听过滤器排序规则

参照表1描述排序规则的示例。对于每个请求类型(例如读或写)和对于每个探听过滤器结果(例如命中或未中),一致性引擎23采取探听过滤器动作和一致性动作以维持数据一致性。探听过滤器动作是指更新探听过滤器条目的动作。一致性动作是指发送探听消息到一个或多个处理器以更新高速缓存线一致性状态的动作。在一个实施例中,一致性引擎23可包括具有探听过滤器更新单元25、无效单元26和Goto_S单元27的电路,以便实现探听过滤器动作和一致性动作。

例如,假设处理器请求从主存储器读线,并且该请求导致探听过滤器24中的命中。探听过滤器24中的命中意味着条目处于独占状态(E/M),并且相关联的线当前由处理器高速缓存拥有。因此,来自另一处理器的新的读请求将使该线退出E/M状态并进入S状态。因为探听过滤器24只存储E/M条目,所以应从探听过滤器移除现在处于S状态的新请求的条目。因此,探听过滤器更新单元25引导探听过滤器24从探听过滤器移除该条目。此外,Goto_S单元27发送“Goto_S”探听消息以通知线的当前所有者该线已变成共享。因此,当前所有者可将线的状态从E/M改变为S。

如果读请求导致探听过滤器24中的未中,则请求的条目当前可由零个或多个高速缓存拥有。主存储器中的当前拷贝是最新的,并且新的读请求不改变该当前状态。因此,不更新探听过滤器24,并且不采取一致性动作。

如果处理器请求将线写到主存储器,并且该请求导致探听过滤器24中的命中,则探听过滤器更新单元25更新探听过滤器条目,以指示提出请求的处理器为线的新所有者。由于条目仍在E/M状态,因此虽然独占所有权已改变了,但探听过滤器24保持该条目。无效单元26发送无效消息到线的当前所有者,以指示当前本地拷贝不再是最新的。因此,独占存取权被授予提出请求的处理器,并且当前所有者拥有的拷贝被无效。

假设处理器请求将线写到主存储器,并且该请求导致探听过滤器24中的未中。未中指示该线不是由任一处理器独占所有。由于写请求将使该线由提出请求的处理器独占所有,因此探听过滤器更新单元25将探听过滤器条目分配到所请求的线。可能在主存储器外高速缓存的线的拷贝被无效。因此,无效单元26将无效消息发到全部处理器,以指示当前本地拷贝不再是最新的。因此,独占存取权被授予提出请求的处理器。

在另一方案中,处理器可请求使线写无效。写无效操作是除使处理器的本地高速缓存中的全部拷贝无效外对主存储器的写操作。在写无效之后,主存储器仅保持系统中的当前拷贝。因此,相关联的探听过滤器条目如果有,则被删除,以表示该条目不再由当前所有者独占所有。因此,如果写无效请求导致探听过滤器24中命中,则无效单元26发送无效消息到当前所有者。如果写无效请求导致未中,则无效单元26发送无效消息到全部处理器,以指示在主存储器外的拷贝不再是最新的。写无效请求的结果是没有高速缓存12具有线的拷贝。

I/O装置有时可发起直接存储器存取(DMA)读请求。I/O DMA读请求以与处理器读请求相同的方式被处理。因此,如果在探听过滤器24中有命中,则相关联的探听过滤器条目被移除,并且由当前所有者拥有的拷贝被改变为S状态。如果有未中,则不采取探听过滤器动作或一致性动作。

如果I/O装置发起DMA写请求,并且该请求导致了命中,则探听过滤器更新单元25移除条目,以指示相关联的线不再处于E/M状态。无效消息被发送到当前拥有该线的处理器。如果该请求导致未中,则无效消息被发送到全部处理器,因为每个处理器都可能拥有该线的拷贝。I/O传送在一致性动作完成之后发生。

图3中示出一致性引擎23执行的示例过程。还参照图1,在块310,一致性引擎23从其中一个处理器或I/O装置接收存储器事务处理请求。在块320,一致性引擎23查找探听过滤器24,以确定所请求的线是否在探听过滤器中具有条目。如果在探听过滤器24中具有所请求线的条目,则在块330,一致性引擎23确定该请求是否可改变条目的独占所有权。在块340,如果存在独占所有权的改变,则一致性引擎23更新探听过滤器条目。如果没有独占所有权的改变,则一致性引擎23不更新探听过滤器24。回到块320,如果所请求的线在探听过滤器24中没有条目,则在块350,一致性引擎23确定该请求是否可使线变为由处理器独占所有。如果该线将变为由处理器独占所有,则在块360,一致性引擎23将一个条目分配到所请求的线。在该线将不变为由处理器独占所有时,一致性引擎23不更新探听过滤器24。

在块370,除了所请求的事务处理是导致未中的读的情况外,一致性引擎23将探听消息发到一个或多个处理器。探听消息可以为通知线的当前所有者该线已改变为S状态的“Goto_S”消息。探听消息可以为通知线的当前所有者该线不再有效的无效消息。探听消息可发送到线的当前所有者,或者在一些方案中,发送到全部处理器,如果其中一些处理器可能拥有该线的拷贝的话。探听消息的类型和探听消息的目的地可取决于请求类型和探听过滤器结果(例如命中或未中)。在块380,在探听消息发送以后,提出请求的代理可继续执行所请求的事务处理。

在上述说明书中,描述了具体实施例。然而将明白,在不脱离随附权利要求书更宽广的精神和范围的情况下,可对其进行各种修改和改变。相应地,说明书和附图要视为说明性而不是限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号