减少来自侦听过滤器的后无效事务的制作方法

文档序号:6578588阅读:102来源:国知局
专利名称:减少来自侦听过滤器的后无效事务的制作方法
减少来自侦听过滤器的后无效事务
背景技术
在具有多个处理器和多个高速缓存的多处理器系统中,每个高速缓存可存
储存储器中所存储的数据片的副本。当一个以上的高速缓存包含同一数据片的 副本时出现了问题。已经开发了多种技术来确保多个高速缓存上的数据一致 性。例如,当一个高速缓存中的数据被修改时,该数据的其它副本被标记为无 效,以使得它们将不会被使用。
为了帮助维持高速缓存一致性,很多系统包括诸如侦听过滤器之类的目录 以帮助确定在这种多个高速缓存的高速缓存线中数据的存在和状态。可发生总 线代理监视例如读/写操作的存储器事务的侦听操作。代理可将存储器事务中涉 及的高速缓存线的状态记录在侦听过滤器中。高速缓存线的状态可指示该线是 仅具有在主存储器外的一个有效副本,具有由多个高速缓存共享的多个有效副 本,还是不具有在主存储器外的副本(即它在所有高速缓存中都已经无效)。 侦听过滤器中的数据条目通常部分地根据主存储器中其地址的一部分索引。
侦听过滤器有时会缺乏用于记录新存储器事务的线的状态的空间,且可能 需要从侦听过滤器驱逐条目以容纳新的事务。通常当条目被驱逐出侦听过滤器
时,后无效(back-invalidation)消息被发送到可能保存与所驱逐条目相关联的 线的有效副本的每个处理器高速缓存。很多高速缓存未命中是由于侦听过滤器 发起即将使用的高速缓存线的后无效。
某些侦听过滤器被称为包含式侦听过滤器(ISF),因为侦听过滤器中的 信息用侦听过滤器覆盖的髙速缓存的高速缓存线来包含式地维持。在包含式高 速缓存分层结构中,高速缓存存储器之一 (g卩,较低层的高速缓存存储器)包 括另一个高速缓存存储器(较高层高速缓存存储器)中所包含的数据的子集。 高速缓存分层结构可提高处理器性能,因为它们使得具有相对较快存取速度的 较小高速缓存包含频繁使用的数据。而存取速度比较小高速缓存慢的较大高速 缓存存储较不频繁使用的数据(以及较低层高速缓存中的数据的副本)。侦听过滤器同它们覆盖的高速缓存一样分配并驱逐条目。然而,因为具有
ISF的包含式高速缓存分层结构存储某些共用数据, 一个高速缓存层中的高速 缓存线或侦听过滤器的驱逐可导致高速缓存分层结构的另一个层中的相应高 速缓存线驱逐以维持高速缓存一致性。ISF必需确保其地址被驱逐出侦听过滤 器的高速缓存线从所有覆盖的高速缓存中去除。 一般而言,这涉及将后无效请 求从侦听过滤器发送到所覆盖的高速缓存。当侦听过滤器发送很多这种请求时 它消耗互连带宽,这可增加有效存储器等待时间,并可能去除有用的高速缓存 条目。
附图简述


图1是多处理器系统的实施例的框图。 图2是根据本发明一个实施例的一致性控制器的框图。 图3是根据本发明的实施例示出高速缓存代理、侦听过滤器和分级区 (stagingarea)之间的交互的框图。
图4是根据本发明一个实施例的方法的流程图。
详细描述
在各实施例中,侦听过滤器可被配置成使得它将数量减少的后无效消息发 送到与其耦合的高速缓存。由此,从高速缓存驱逐较少的条目,从而提高高速
缓存命中率。减少后无效消息的数量还将减少系统互连通信量,从而改进存储 器等待时间和其它系统效率因数。更具体地,在各实现中,如果相应的高速缓 存有可能将立刻发出给定高速缓存线的其自身的无效消息,则将从侦听过滤器 驱逐条目的侦听过滤器(其中条目与该给定高速缓存线相关联)可避免发送后 无效消息。由此,可避免从侦听过滤器发送后无效消息的开销。
取决于高速缓存大小和应用,被驱逐出侦听过滤器的高速缓存线的相当大 的部分将被修改(也称为"脏")。当高速缓存决定驱逐脏线时,它一般发出 "显式写回"(EWB)事务。在某些实现中,这种事务被称为无效显式写回(或 BWL.INVLD)事务,其将两个语义组合到单个事务中。更具体地,该事务报 告所指高速缓存线的当前值,并提供指示高速缓存线已经从高速缓存分层结构的所有层中完全去除的指示。各实施例利用该第二属性,以使得覆盖该高速 缓存的侦听过滤器可静默去除其相关联的条目。即,侦听过滤器可将相应条目 驱逐出侦听过滤器而不发出后无效请求。
因此,当ISF可确定所覆盖的高速缓存有可能对已经或即将被驱逐的ISF 条目发出无效显式写回事务时,它可延迟发出无效请求。然后,当高速缓存对 所指高速缓存线发出该事务时,侦听过滤器不需要发出该无效请求。
因此,实施例可提供第一机制,其向ISF提供可能对该侦听过滤器中已驱 逐(或即将驱逐)的条目发出无效显式写回的指示,以及第二机制,其利用该 信息制止在给定时间段内发出无效请求。如果在该时间段中接收到相关联的无 效显式写回事务,则侦听过滤器可避免发送该请求。
在一个实施例中,第一机制可就读取事务利用提示,其指示特定高速缓存 中的哪个高速缓存线位置正被驱逐从而为读取结果让出空间。提示本身可包括 用以报告该驱逐方式被修改的在本文中称为"EWB提示"的信息。该机制的 替换形式可利用侦听过滤器本身中的信息。例如,在接收驱逐提示后,侦听过 滤器可保持指示高速缓存获得将被驱逐的线的独占所有权的指示。请求线的独 占所有权与修改该线高度相关(通常,对于Intel 64和Intd⑧架构(IA) -32 指令集架构(ISA)应用远超过90%的概率)。因此,该指示可导致侦听过滤 器延迟发出无效消息。
在一个实施例中,第二机制可被实现为缓冲器,诸如无效请求的虚拟或物 理队列或池。即,侦听过滤器可被分成主侦听过滤器部分和辅侦听过滤器部分, 在主侦听过滤器部分中存储所有的侦听过滤器条目,辅侦听过滤器部分可被称 为分级池或无效池,其中存储要被驱逐出侦听过滤器的条目。因此在驱逐前, 且在其中阻止来自侦听过滤器的无效请求进行传输的至少一个时间段(例如, 在某些实施例中可以是约100纳秒数量级的预定时间段)内,被驱逐出主侦听 过滤器部分的条目可被存储在该分级池中。因此传入的无效显式写回事务可用 于引起对包括等待无效请求的未决条目集合的该池的搜索并删除任何匹配项。 该虚拟或物理结构中的未决无效可在某一时间段之后发出,在池或队列群体达 到某一水平时以某种时间顺序为基础发出,和/或在有足够的系统资源可用时发 出。
7参照图1,示出的是多处理器系统10的实施例的框图。如图1所示,系 统10可具有与芯片组13互连的多个处理节点17。每个处理节点17可包括一 个或多个处理器11 (示出每个处理节点有两个处理器,其中每个处理器可以是 处理器核或多核处理器)和高速缓存12。每个高速缓存12可被"主节点"(该 高速缓存所处的处理节点)的处理器11本地访问,且可被"远程节点"(主 节点以外的处理节点)的处理器ll远程访问。高速缓存12被称为关于主节点 的处理器11的"本地高速缓存",且可由诸如静态随机存取存储器(SRAM) 之类的相对较小且快速的存储器构成。处理节点17可经由一个或多个前端总 线(FSB) 14 (仅示出两个FSB)或诸如点对点互连之类的其它类型的互连耦 合到芯片组13。可在单个芯片上实现一个或多个处理节点17。系统10由于其 所具有的高集合处理能力而可用作服务器系统,但本发明的范围不限于此方 面。芯片组13可包括一致性控制器132,其可包括根据本发明实施例的侦听 过滤器,用于处理从FSB 14接收的请求并在高速缓存12之间维持数据一致性。 以下参照图2详细讨论一致性控制器132的功能。芯片组13可包括用于向处 理节点17和系统10的其它组件提供接口以访问存储器15的存储单元的存储 器控制器134。存储器15可以是动态随机存取存储器(DRAM)器件或适用于 服务器或一般应用的其它易失性或非易失性存储器器件。芯片组13还可包括用以向处理节点11和系统10的其它组件提供接口以 访问一个或多个I/O设备16的I/O控制器136。1/0设备16可包括工业标准架 构(ISA)设备、外围组件互连(PCI)设备、PCI快速设备、通用串行总 线(USB)设备、小型计算机系统接口 (SCSI)设备或其它适用于服务器 或一般应用的标准或专有I/0设备。在某些实施例中,芯片组13可被实现为 单个芯片。在某些实施例中,芯片组13可被实现为两个或更多个芯片。处理器11可在其相应的本地高速缓存12中存储存储器线以便于快速存 取。高速缓存12可存储数据、指令或两者的组合。对于每个高速缓存线,高 速缓存12可存储将高速缓存线关联或映射到存储器15中的对应线的标签(例 如,存储器地址的一部分)。高速缓存12还可存储并更新每个高速缓存线的 一致性状态。例如,高速缓存12可支持MESI—致性状态,其中高速缓存线可具有修改(M)状态、独占(E)状态、共享(S)状态或无效(I)状态。参照图2,在一个实施例中, 一致性控制器132可包括侦听过滤器24以 提供高速缓存线的一致性信息。如图2所示, 一致性控制器132的一个实施例 可具有若干FSB端口 (FSB—端口_2 21和FSB—端口_1 22)、 一致性引擎23、 侦听过滤器24和分级池28。侦听过滤器24可包括一个或多个存储阵列,诸如全相联阵列、组相联阵 列或包括用于存储一致性信息的路或线的直接映射阵列。在一个实施例中,侦 听过滤器24包括N路组相联阵列,其中每个组包括用于存储N个高速缓存线 的一致性信息的N个槽(或路)225 (仅示出一个)。可通过例如利用存储器 地址的特定位将高速缓存线映射到这些组之一。每个路225可存储线的信息。 信息可包括地址标签、MESI —致性状态信息和存在向量。存在向量可指示哪 个FSB 14连接到可能具有高速缓存线的高速缓存。在一个实施例中,侦听过滤器24可仅存储与E/M状态中的线相关联的那 些条目。可将这些侦听过滤器条目称为E/M条目。g卩,如果任何高速缓存包含 或可能包含主存储器以外的线的独占副本,则侦听过滤器24可存储该线的E/M 条目。仅存储E/M条目可减少存储在侦听过滤器24中的条目的总数,且可有 效地扩大侦听过滤器的大小。作为折衷,仅存储E/M条目可导致由侦听过滤器 24生成的侦听的数目增加。然而,尤其是对于读取密集应用, 一般改进了总体 的系统性能。如图2进一步示出的,侦听过滤器24可与分级池28相关联。尽管示为具 有图2实施例中的这种结构,但本发明的范围不限于这个方面且在各实现中分 级池28可以是侦听过滤器24的一部分。在被驱逐出侦听过滤器24的条目被 实际驱逐(且由此从分级池28中去除)且相应的无效消息被从一致性引擎23 发送到一个或多个处理器节点之前,分级池28可存储这些条目。在一个实施例中,当对存储器事务的请求到达一致性控制器132时, 一致 性引擎23可确定将该请求转发到哪里。存储器事务指的是需要对存储器或高 速缓存进行访问的事务。 一致性引擎23可査找侦听过滤器24以确定侦听过滤 器是否具有所请求线的信息。如果侦听过滤器24具有该信息,则一致性引擎 23基于线的存在向量将该请求转发到与具有线的当前副本的高速缓存相连接如果事务可能改变所请求线的状态,则一致性引擎 23利用更新单元25更新侦听过滤器24中的信息以反映变化。如果侦听过滤器 24不具有线的信息,则一致性引擎23也可利用更新单元25将条目增加到侦听 过滤器以记录所请求线的一致性信息。如果在将新的条目插入全侦听过滤器的情况下或在从高速缓存接收到与 侦听过滤器24中的给定条目相关联的无效事务后, 一致性引擎23的无效单元 26可用于使侦听过滤器中的条目无效。在执行这种无效时,所选的条目将被驱 逐出侦听过滤器24。然而,如果有可能从高速缓存接收到对所驱逐条目的无效 显式写回事务,则无效单元26可使侦听过滤器24将条目传送给分级池28,因 此避免后无效消息的传输。现在参照图3,其是示出根据本发明实施例的高速缓存代理、侦听过滤器 和分级区之间的交互的框图。具体地,图3示出高速缓存代理17,其可对应于 图2的处理器节点之一。高速缓存代理17耦合到侦听过滤器24,侦听过滤器 24进而耦合到分级池28。为了便于说明,还示出分级池28耦合到高速缓存代 理17。然而,应理解在各实现中,侦听过滤器24和分级池28可以是芯片组或 其它接口组件的一部分,芯片组或其它接口组件进而可耦合到相应的高速缓存 代理。在操作期间,与高速缓存代理17相关联的高速缓存存储器——诸如2层 (L2)高速缓存——可确定它处于容量水平并由此存储附加信息,它需要驱逐 一个或多个条目。为了这样做,高速缓存代理17可向包括侦听过滤器24的接 口发送容量驱逐事务。因为侦听过滤器24是包含式侦听过滤器,所以在接收 到这种容量驱逐事务后,侦听过滤器24可使要被驱逐出高速缓存代理17的高 速缓存线的关联条目被驱逐出侦听过滤器本身。如图3所示,如果侦听过滤器 24确定无效显式写回事务可能从该高速缓存线的高速缓存代理17发出,则取 代直接将条目驱逐出侦听过滤器24并使无效请求从侦听过滤器24发送到具有 该线的独占所有权的高速缓存代理,在这种情况下侦听过滤器24可使未决条 目移到分级池28。 g卩,分级池28可包括用于等待被驱逐出侦听过滤器24的各 个条目的存储。如果在该条目被置入分级池28之后高速缓存代理17在给定的 时间段过期之前发出无效驱逐事务,则在不传输后无效请求的情况下可从分级10池28驱逐该条目。现在参照图4,示出的是根据本发明一个实施例的方法的流程图。根据 本发明的实施例方法300可用于延迟传输来自侦听过滤器的无效请求。如图4 所示,方法300可通过从高速缓存代理接收到未决容量驱逐的指示开始(框 310)。接下来,可由侦听过滤器确定来自高速缓存代理的无效写回事务是否 可能(菱形320)。尽管不限于该方面,但如上所讨论的,该确定可基于来自 高速缓存代理的一个或多个提示和/或基于侦听过滤器中己经存在的信息而作 出。如果这一事务不可能,则控制传递到框330,其中基于侦听过滤器中的信 息,相关联侦听过滤器条目可被驱逐且无效事务可从侦听过滤器发送到一个或 多个高速缓存代理。然而,如以上所讨论的,这种无效事务的传输可影响系统互连带宽。因此, 在各实施例中,如果确定来自高速缓存代理的无效写回事务是可能的,则控制 相反从菱形320传递到框340。此处,相关联的侦听过滤器条目可被移到诸如 分级或无效池之类的分级区。然后,它可确定从条目被移到分级区开始的预定 时间长度内是否从高速缓存代理接收到无效写回事务(菱形350) 。 S卩,该分 级池可对应于待发送的无效事务列表,除非由于给定时间段内接收到传入的无 效写回事务而删除了条目。由此,当接收到这一无效写回事务时,避免了来自 侦听过滤器的无效消息的传输。如果在该时间段内接收到了无效写回事务,则可不发送无效事务就驱逐侦 听过滤器条目(框360)。然而,如果在该预定时间段内未从高速缓存代理接 收到事务,则如上所述控制相反从菱形350传递到框330。尽管用图4实施例 中的这一特殊实现来示出,但是本发明的范围在这方面不受限制。因此实施例可减少包含式侦听过滤器所使用的系统互连带宽,这可减少有 效存储器等待时间并提高系统性能。此外,通过至少部分地基于系统资源可用 性调制无效通信量,可减少系统性能易变性。各实施例可被实现为代码并且可被存储在其上存储有指令的存储介质上, 其中这些指令可用于编程系统以执行这些指令。存储介质可包括但不限于任何 类型的磁盘,包括软盘、光盘、压縮盘只读存储器(CD-ROM)、可重写压縮 盘(CD-RW)以及磁光盘,半导体器件,比如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)之类的随机存 取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除 可编程只读存储器(EEPROM),磁卡或光卡,或适于存储电子指令的任何其 它类型的介质。尽管已关于有限数量的实施例描述了本发明,本领域中的技术人员将从中 认识到许多修改和变型。所附权利要求书旨在涵盖落入本发明的真实精神和范 围内的所有这些修改和变型。
权利要求
1.一种方法,包括从高速缓存代理接收未决容量驱逐的指示;确定来自所述高速缓存代理的无效写回事务对于与所述未决容量驱逐相关联的高速缓存线是否是可能的;以及如果所述无效写回事务是可能的,则将与所述高速缓存线相关联的侦听过滤器条目从侦听过滤器移到分级区。
2. 如权利要求1所述的方法,其特征在于,还包括如果无效写回事务不可 能,则基于所述侦听过滤器中的信息,驱逐所述侦听过滤器条目并将无效事务 从所述侦听过滤器发送到一个或多个高速缓存代理。
3. 如权利要求1所述的方法,其特征在于,还包括确定从所述侦听过滤器 条目移到所述分级区开始的预定时间段内是否从所述高速缓存代理接收所述 无效写回事务。
4. 如权利要求3所述的方法,其特征在于,还包括如果在所述预定时间段 内接收到所述无效写回事务,则可不发送无效事务就将所述侦听过滤器条目驱 逐出所述分级区。
5. 如权利要求4所述的方法,其特征在于,还包括如果在所述预定时间段 内没有接收到所述无效写回事务,则将所述无效事务从所述侦听过滤器发送到 一个或多个高速缓存代理。
6. 如权利要求5所述的方法,其特征在于,还包括至少部分地基于系统资 源水平将所述无效事务从所述侦听过滤器发送到所述一个或多个告诉缓存代 理。
7. 如权利要求1所述的方法,其特征在于,至少部分地基于来自所述高速 缓存代理的用于指示将被驱逐的高速缓存线被修改的路提示确定所述无效写 回事务是可能的。
8. 如权利要求1所述的方法,其特征在于,还包括基于所述侦听过滤器中 将被驱逐的所述相应高速缓存线在所述高速缓存代理中处于独占状态的指示 确定所述无效写回事务是可能的。
9. 一种装置,包括侦听过滤器,用于存储各自与高速缓存存储器的高速缓存线相关联的条 目,其中所述侦听过滤器用多个高速缓存存储器包含;以及与所述侦听过滤器耦合的一致性单元,其用于控制所述侦听过滤器,其中 如果高速缓存代理可能要发送对与所驱逐的侦听过滤器条目相对应的高速缓 存线的无效事务,则所述一致性单元阻止对要被驱逐出所述侦听过滤器的侦听 过滤器条目的后无效事务的传输。
10. 如权利要求9所述的装置,其特征在于,还包括耦合到所述侦听过 滤器的存储区,用于在从所述一致性单元发送后无效事务之前存储被驱逐出所 述侦听过滤器的侦听过滤器条目。
11. 如权利要求10所述的装置,其特征在于,在接收到对与所述侦听 过滤器条目相对应的所述高速缓存线的驱逐事务后,所述一致性单元将所述被 驱逐的侦听过滤器条目移到所述存储区。
12. 如权利要求11所述的装置,其特征在于,在接收到对与所述侦听 过滤器条目相对应的所述高速缓存线的无效事务后,且在没有传输所述后无效 事务的情况下,所述一致性单元将所述侦听过滤器条目从所述存储区删除。
13. 如权利要求11所述的装置,其特征在于,所述一致性单元至少部 分地基于驱逐事务中的路提示信息确定所述无效事务是可能的。
14. 如权利要求9所述的装置,其特征在于,如果所述侦听过滤器条目 处于修改状态,则所述一致性单元确定所述无效事务是可能的。
15. 如权利要求11所述的装置,其特征在于,如果所述侦听过滤器条 目在所述存储区中维持预定时间段,则所述一致性单元发送所述后无效事务。
16. —种系统,包括包括至少一个核和至少一个高速缓存存储器的第一处理器; 包括至少一个核和至少一个高速缓存存储器的第二处理器; 耦合到所述第一和第二处理器的芯片组,所述芯片组包括侦听过滤器, 用于存储各自与所述高速缓存存储器之一的高速缓存线相关联的条目;与所述 侦听过滤器耦合的一致性单元,其在所述第一或第二处理器可能要发送对与所 驱逐的侦听过滤器条目相对应的高速缓存线的无效事务时,阻止对要被驱逐出所述侦听过滤器的侦听过滤器条目的后无效事务的传输;以及耦合到所述侦听 过滤器的存储区,用于在从所述一致性单元发送后无效事务之前存储被驱逐出 所述侦听过滤器的侦听过滤器条目;以及耦合到所述芯片组的动态随机存取存储器(DRAM)。
17. 如权利要求16所述的系统,其特征在于,在接收到对与所述侦听 过滤器条目相对应的所述高速缓存线的驱逐事务后,所述一致性单元将被驱逐 的侦听过滤器条目移到所述存储区。
18. 如权利要求17所述的系统,其特征在于,在接收到对与所述侦听 过滤器条目相对应的所述高速缓存线的无效事务后,且在没有传输所述后无效 事务的情况下,所述一致性单元将所述侦听过滤器条目从所述存储区删除。
19. 如权利要求18所述的系统,其特征在于,所述一致性单元至少部 分地基于所述驱逐事务中的路提示信息确定所述无效事务是可能的。
20. 如权利要求16所述的系统,其特征在于,如果所述侦听过滤器条 目在所述存储区中维持预定时间段,则所述一致性单元发送所述后无效事务。
全文摘要
本发明涉及减少来自侦听过滤器的后无效事务,在一个实施例中,本发明包括一种方法从高速缓存代理接收未决容量驱逐的指示,确定来自高速缓存代理的无效写回事务对于与未决容量驱逐相关联的高速缓存线是否是可能的,以及如果为是,则将与所述高速缓存线相关联的侦听过滤器条目从侦听过滤器移到分级区。描述并要求保护其他实施例。
文档编号G06F12/08GK101593160SQ20091014557
公开日2009年12月2日 申请日期2009年5月27日 优先权日2008年5月30日
发明者J·D·吉尔伯特, J·曼德尔布莱特, K·程, T·库尔茨 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1