CN103714015B - 减少来自侦听过滤器的后无效事务的方法、装置和系统 - Google Patents
减少来自侦听过滤器的后无效事务的方法、装置和系统 Download PDFInfo
- Publication number
- CN103714015B CN103714015B CN201310739178.3A CN201310739178A CN103714015B CN 103714015 B CN103714015 B CN 103714015B CN 201310739178 A CN201310739178 A CN 201310739178A CN 103714015 B CN103714015 B CN 103714015B
- Authority
- CN
- China
- Prior art keywords
- snoop filter
- entry
- affairs
- cache
- cache line
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative directories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及减少来自侦听过滤器的后无效事务,在一个实施例中,本发明包括一种方法:从高速缓存代理接收未决容量驱逐的指示,确定来自高速缓存代理的无效写回事务对于与未决容量驱逐相关联的高速缓存线是否是可能的,以及如果为是,则将与所述高速缓存线相关联的侦听过滤器条目从侦听过滤器移到分级区。描述并要求保护其他实施例。
Description
本申请是申请日为2009年5月27日、申请号200910145575.1、名称为“减少来自侦听过滤器的后无效事务”的申请的分案申请。
技术领域
本发明涉及计算领域,尤其涉及减少来自侦听过滤器的后无效事务的方法、装置和系统。
背景技术
在具有多个处理器和多个高速缓存的多处理器系统中,每个高速缓存可存储存储器中所存储的数据片的副本。当一个以上的高速缓存包含同一数据片的副本时出现了问题。已经开发了多种技术来确保多个高速缓存上的数据一致性。例如,当一个高速缓存中的数据被修改时,该数据的其它副本被标记为无效,以使得它们将不会被使用。
为了帮助维持高速缓存一致性,很多系统包括诸如侦听过滤器之类的目录以帮助确定在这种多个高速缓存的高速缓存线中数据的存在和状态。可发生总线代理监视例如读/写操作的存储器事务的侦听操作。代理可将存储器事务中涉及的高速缓存线的状态记录在侦听过滤器中。高速缓存线的状态可指示该线是仅具有在主存储器外的一个有效副本,具有由多个高速缓存共享的多个有效副本,还是不具有在主存储器外的副本(即它在所有高速缓存中都已经无效)。侦听过滤器中的数据条目通常部分地根据主存储器中其地址的一部分索引。
侦听过滤器有时会缺乏用于记录新存储器事务的线的状态的空间,且可能需要从侦听过滤器驱逐条目以容纳新的事务。通常当条目被驱逐出侦听过滤器时,后无效(back-invalidation)消息被发送到可能保存与所驱逐条目相关联的线的有效副本的每个处理器高速缓存。很多高速缓存未命中是由于侦听过滤器发起即将使用的高速缓存线的后无效。
某些侦听过滤器被称为包含式侦听过滤器(ISF),因为侦听过滤器中的信息用侦听过滤器覆盖的高速缓存的高速缓存线来包含式地维持。在包含式高速缓存分层结构中,高速缓存存储器之一(即,较低层的高速缓存存储器)包括另一个高速缓存存储器(较高层高速缓存存储器)中所包含的数据的子集。高速缓存分层结构可提高处理器性能,因为它们使得具有相对较快存取速度的较小高速缓存包含频繁使用的数据。而存取速度比较小高速缓存慢的较大高速缓存存储较不频繁使用的数据(以及较低层高速缓存中的数据的副本)。
侦听过滤器同它们覆盖的高速缓存一样分配并驱逐条目。然而,因为具有ISF的包含式高速缓存分层结构存储某些共用数据,一个高速缓存层中的高速缓存线或侦听过滤器的驱逐可导致高速缓存分层结构的另一个层中的相应高速缓存线驱逐以维持高速缓存一致性。ISF必需确保其地址被驱逐出侦听过滤器的高速缓存线从所有覆盖的高速缓存中去除。一般而言,这涉及将后无效请求从侦听过滤器发送到所覆盖的高速缓存。当侦听过滤器发送很多这种请求时它消耗互连带宽,这可增加有效存储器等待时间,并可能去除有用的高速缓存条目。
附图说明
图1是多处理器系统的实施例的框图。
图2是根据本发明一个实施例的一致性控制器的框图。
图3是根据本发明的实施例示出高速缓存代理、侦听过滤器和分级区(stagingarea)之间的交互的框图。
图4是根据本发明一个实施例的方法的流程图。
具体实施方式
在各实施例中,侦听过滤器可被配置成使得它将数量减少的后无效消息发送到与其耦合的高速缓存。由此,从高速缓存驱逐较少的条目,从而提高高速缓存命中率。减少后无效消息的数量还将减少系统互连通信量,从而改进存储器等待时间和其它系统效率因数。更具体地,在各实现中,如果相应的高速缓存有可能将立刻发出给定高速缓存线的其自身的无效消息,则将从侦听过滤器驱逐条目的侦听过滤器(其中条目与该给定高速缓存线相关联)可避免发送后无效消息。由此,可避免从侦听过滤器发送后无效消息的开销。
取决于高速缓存大小和应用,被驱逐出侦听过滤器的高速缓存线的相当大的部分将被修改(也称为“脏”)。当高速缓存决定驱逐脏线时,它一般发出“显式写回”(EWB)事务。在某些实现中,这种事务被称为无效显式写回(或BWL.INVLD)事务,其将两个语义组合到单个事务中。更具体地,该事务报告所指高速缓存线的当前值,并提供指示高速缓存线已经从高速缓存分层结构的所有层中完全去除的指示。各实施例利用该第二属性,以使得覆盖该高速缓存的侦听过滤器可静默去除其相关联的条目。即,侦听过滤器可将相应条目驱逐出侦听过滤器而不发出后无效请求。
因此,当ISF可确定所覆盖的高速缓存有可能对已经或即将被驱逐的ISF条目发出无效显式写回事务时,它可延迟发出无效请求。然后,当高速缓存对所指高速缓存线发出该事务时,侦听过滤器不需要发出该无效请求。
因此,实施例可提供第一机制,其向ISF提供可能对该侦听过滤器中已驱逐(或即将驱逐)的条目发出无效显式写回的指示,以及第二机制,其利用该信息制止在给定时间段内发出无效请求。如果在该时间段中接收到相关联的无效显式写回事务,则侦听过滤器可避免发送该请求。
在一个实施例中,第一机制可就读取事务利用提示,其指示特定高速缓存中的哪个高速缓存线位置正被驱逐从而为读取结果让出空间。提示本身可包括用以报告该驱逐方式被修改的在本文中称为“EWB提示”的信息。该机制的替换形式可利用侦听过滤器本身中的信息。例如,在接收驱逐提示后,侦听过滤器可保持指示高速缓存获得将被驱逐的线的独占所有权的指示。请求线的独占所有权与修改该线高度相关(通常,对于64和架构(IA)-32指令集架构(ISA)应用远超过90%的概率)。因此,该指示可导致侦听过滤器延迟发出无效消息。
在一个实施例中,第二机制可被实现为缓冲器,诸如无效请求的虚拟或物理队列或池。即,侦听过滤器可被分成主侦听过滤器部分和辅侦听过滤器部分,在主侦听过滤器部分中存储所有的侦听过滤器条目,辅侦听过滤器部分可被称为分级池或无效池,其中存储要被驱逐出侦听过滤器的条目。因此在驱逐前,且在其中阻止来自侦听过滤器的无效请求进行传输的至少一个时间段(例如,在某些实施例中可以是约100纳秒数量级的预定时间段)内,被驱逐出主侦听过滤器部分的条目可被存储在该分级池中。因此传入的无效显式写回事务可用于引起对包括等待无效请求的未决条目集合的该池的搜索并删除任何匹配项。该虚拟或物理结构中的未决无效可在某一时间段之后发出,在池或队列群体达到某一水平时以某种时间顺序为基础发出,和/或在有足够的系统资源可用时发出。
参照图1,示出的是多处理器系统10的实施例的框图。如图1所示,系统10可具有与芯片组13互连的多个处理节点17。每个处理节点17可包括一个或多个处理器11(示出每个处理节点有两个处理器,其中每个处理器可以是处理器核或多核处理器)和高速缓存12。每个高速缓存12可被“主节点”(该高速缓存所处的处理节点)的处理器11本地访问,且可被“远程节点”(主节点以外的处理节点)的处理器11远程访问。高速缓存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。I/O设备16可包括工业标准架构(ISA)设备、外围组件互连(PCI)设备、PCI快速设备、通用串行总线(USB)设备、小型计算机系统接口(SCSI)设备或其它适用于服务器或一般应用的标准或专有I/O设备。在某些实施例中,芯片组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条目。即,如果任何高速缓存包含或可能包含主存储器以外的线的独占副本,则侦听过滤器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基于线的存在向量将该请求转发到与具有线的当前副本的高速缓存相连接的FSB端口(21或22)。如果事务可能改变所请求线的状态,则一致性引擎23利用更新单元25更新侦听过滤器24中的信息以反映变化。如果侦听过滤器24不具有线的信息,则一致性引擎23也可利用更新单元25将条目增加到侦听过滤器以记录所请求线的一致性信息。
如果在将新的条目插入全侦听过滤器的情况下或在从高速缓存接收到与侦听过滤器24中的给定条目相关联的无效事务后,一致性引擎23的无效单元26可用于使侦听过滤器中的条目无效。在执行这种无效时,所选的条目将被驱逐出侦听过滤器24。然而,如果有可能从高速缓存接收到对所驱逐条目的无效显式写回事务,则无效单元26可使侦听过滤器24将条目传送给分级池28,因此避免后无效消息的传输。
现在参照图3,其是示出根据本发明实施例的高速缓存代理、侦听过滤器和分级区之间的交互的框图。具体地,图3示出高速缓存代理17,其可对应于图1的处理器节点之一。高速缓存代理17耦合到侦听过滤器24,侦听过滤器24进而耦合到分级池28。为了便于说明,还示出分级池28耦合到高速缓存代理17。然而,应理解在各实现中,侦听过滤器24和分级池28可以是芯片组或其它接口组件的一部分,芯片组或其它接口组件进而可耦合到相应的高速缓存代理。
在操作期间,与高速缓存代理17相关联的高速缓存存储器——诸如2层(L2)高速缓存——可确定它处于容量水平并由此存储附加信息,它需要驱逐一个或多个条目。为了这样做,高速缓存代理17可向包括侦听过滤器24的接口发送容量驱逐事务。因为侦听过滤器24是包含式侦听过滤器,所以在接收到这种容量驱逐事务后,侦听过滤器24可使要被驱逐出高速缓存代理17的高速缓存线的关联条目被驱逐出侦听过滤器本身。如图3所示,如果侦听过滤器24确定无效显式写回事务可能从该高速缓存线的高速缓存代理17发出,则取代直接将条目驱逐出侦听过滤器24并使无效请求从侦听过滤器24发送到具有该线的独占所有权的高速缓存代理,在这种情况下侦听过滤器24可使未决条目移到分级池28。即,分级池28可包括用于等待被驱逐出侦听过滤器24的各个条目的存储。如果在该条目被置入分级池28之后高速缓存代理17在给定的时间段过期之前发出无效驱逐事务,则在不传输后无效请求的情况下可从分级池28驱逐该条目。
现在参照图4,示出的是根据本发明一个实施例的方法的流程图。根据本发明的实施例方法300可用于延迟传输来自侦听过滤器的无效请求。如图4所示,方法300可通过从高速缓存代理接收到未决容量驱逐的指示开始(框310)。接下来,可由侦听过滤器确定来自高速缓存代理的无效写回事务是否可能(菱形320)。尽管不限于该方面,但如上所讨论的,该确定可基于来自高速缓存代理的一个或多个提示和/或基于侦听过滤器中已经存在的信息而作出。如果这一事务不可能,则控制传递到框330,其中基于侦听过滤器中的信息,相关联侦听过滤器条目可被驱逐且无效事务可从侦听过滤器发送到一个或多个高速缓存代理。
然而,如以上所讨论的,这种无效事务的传输可影响系统互连带宽。因此,在各实施例中,如果确定来自高速缓存代理的无效写回事务是可能的,则控制相反从菱形320传递到框340。此处,相关联的侦听过滤器条目可被移到诸如分级或无效池之类的分级区。然后,它可确定从条目被移到分级区开始的预定时间长度内是否从高速缓存代理接收到无效写回事务(菱形350)。即,该分级池可对应于待发送的无效事务列表,除非由于给定时间段内接收到传入的无效写回事务而删除了条目。由此,当接收到这一无效写回事务时,避免了来自侦听过滤器的无效消息的传输。
如果在该时间段内接收到了无效写回事务,则可不发送无效事务就驱逐侦听过滤器条目(框360)。然而,如果在该预定时间段内未从高速缓存代理接收到事务,则如上所述控制相反从菱形350传递到框330。尽管用图4实施例中的这一特殊实现来示出,但是本发明的范围在这方面不受限制。
因此实施例可减少包含式侦听过滤器所使用的系统互连带宽,这可减少有效存储器等待时间并提高系统性能。此外,通过至少部分地基于系统资源可用性调制无效通信量,可减少系统性能易变性。
各实施例可被实现为代码并且可被存储在其上存储有指令的存储介质上,其中这些指令可用于编程系统以执行这些指令。存储介质可包括但不限于任何类型的磁盘,包括软盘、光盘、压缩盘只读存储器(CD-ROM)、可重写压缩盘(CD-RW)以及磁光盘,半导体器件,比如只读存储器(ROM)、诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)之类的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、闪存、电可擦除可编程只读存储器(EEPROM),磁卡或光卡,或适于存储电子指令的任何其它类型的介质。
尽管已关于有限数量的实施例描述了本发明,本领域中的技术人员将从中认识到许多修改和变型。所附权利要求书旨在涵盖落入本发明的真实精神和范围内的所有这些修改和变型。
Claims (20)
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所述的系统,其特征在于,如果所述侦听过滤器条目在所述存储区中维持预定时间段,则所述一致性单元发送所述后无效事务。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/156,340 US8015365B2 (en) | 2008-05-30 | 2008-05-30 | Reducing back invalidation transactions from a snoop filter |
US12/156,340 | 2008-05-30 | ||
CN200910145575.1A CN101593160B (zh) | 2008-05-30 | 2009-05-27 | 减少来自侦听过滤器的后无效事务 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910145575.1A Division CN101593160B (zh) | 2008-05-30 | 2009-05-27 | 减少来自侦听过滤器的后无效事务 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103714015A CN103714015A (zh) | 2014-04-09 |
CN103714015B true CN103714015B (zh) | 2017-01-18 |
Family
ID=40863041
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910145575.1A Expired - Fee Related CN101593160B (zh) | 2008-05-30 | 2009-05-27 | 减少来自侦听过滤器的后无效事务 |
CN201310739178.3A Expired - Fee Related CN103714015B (zh) | 2008-05-30 | 2009-05-27 | 减少来自侦听过滤器的后无效事务的方法、装置和系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910145575.1A Expired - Fee Related CN101593160B (zh) | 2008-05-30 | 2009-05-27 | 减少来自侦听过滤器的后无效事务 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8015365B2 (zh) |
JP (1) | JP4960989B2 (zh) |
CN (2) | CN101593160B (zh) |
DE (1) | DE102009022151B4 (zh) |
GB (1) | GB2460337B (zh) |
TW (1) | TWI410796B (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7779210B2 (en) * | 2007-10-31 | 2010-08-17 | Intel Corporation | Avoiding snoop response dependency |
US8694737B2 (en) | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
US9448938B2 (en) * | 2010-06-09 | 2016-09-20 | Micron Technology, Inc. | Cache coherence protocol for persistent memories |
GB2484088B (en) * | 2010-09-28 | 2019-08-07 | Advanced Risc Mach Ltd | Coherency control with writeback ordering |
US8613074B2 (en) | 2010-09-30 | 2013-12-17 | Micron Technology, Inc. | Security protection for memory content of processor main memory |
US8489822B2 (en) | 2010-11-23 | 2013-07-16 | Intel Corporation | Providing a directory cache for peripheral devices |
US8635411B2 (en) | 2011-07-18 | 2014-01-21 | Arm Limited | Data processing apparatus and method for managing coherency of cached data |
US9477600B2 (en) | 2011-08-08 | 2016-10-25 | Arm Limited | Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode |
US8935485B2 (en) | 2011-08-08 | 2015-01-13 | Arm Limited | Snoop filter and non-inclusive shared cache memory |
US9563560B2 (en) | 2012-09-28 | 2017-02-07 | Qualcomm Technologies, Inc. | Adaptive tuning of snoops |
US9639469B2 (en) | 2012-09-28 | 2017-05-02 | Qualcomm Technologies, Inc. | Coherency controller with reduced data buffer |
US9727466B2 (en) | 2014-08-26 | 2017-08-08 | Arm Limited | Interconnect and method of managing a snoop filter for an interconnect |
US9507716B2 (en) | 2014-08-26 | 2016-11-29 | Arm Limited | Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit |
US9639470B2 (en) * | 2014-08-26 | 2017-05-02 | Arm Limited | Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit |
US9489305B2 (en) | 2014-12-16 | 2016-11-08 | Qualcomm Incorporated | System and method for managing bandwidth and power consumption through data filtering |
US11237965B2 (en) * | 2014-12-31 | 2022-02-01 | Arteris, Inc. | Configurable snoop filters for cache coherent systems |
US9900260B2 (en) | 2015-12-10 | 2018-02-20 | Arm Limited | Efficient support for variable width data channels in an interconnect network |
US10157133B2 (en) * | 2015-12-10 | 2018-12-18 | Arm Limited | Snoop filter for cache coherency in a data processing system |
GB2548387B (en) * | 2016-03-17 | 2020-04-01 | Advanced Risc Mach Ltd | An apparatus and method for filtering transactions |
US9990292B2 (en) | 2016-06-29 | 2018-06-05 | Arm Limited | Progressive fine to coarse grain snoop filter |
US11200177B2 (en) * | 2016-09-01 | 2021-12-14 | Arm Limited | Cache retention data management |
US10042766B1 (en) | 2017-02-02 | 2018-08-07 | Arm Limited | Data processing apparatus with snoop request address alignment and snoop response time alignment |
US10761984B2 (en) | 2018-07-27 | 2020-09-01 | Vmware, Inc. | Using cache coherent FPGAS to accelerate remote access |
US11126464B2 (en) | 2018-07-27 | 2021-09-21 | Vmware, Inc. | Using cache coherent FPGAS to accelerate remote memory write-back |
US11947458B2 (en) * | 2018-07-27 | 2024-04-02 | Vmware, Inc. | Using cache coherent FPGAS to track dirty cache lines |
US11099871B2 (en) | 2018-07-27 | 2021-08-24 | Vmware, Inc. | Using cache coherent FPGAS to accelerate live migration of virtual machines |
US11231949B2 (en) | 2018-07-27 | 2022-01-25 | Vmware, Inc. | Using cache coherent FPGAS to accelerate post-copy migration |
US10795816B2 (en) * | 2018-07-30 | 2020-10-06 | Slack Technologies, Inc. | Method, apparatus and computer program product for implementing filter cache in a group-based communication platform |
US10761985B2 (en) * | 2018-08-02 | 2020-09-01 | Xilinx, Inc. | Hybrid precise and imprecise cache snoop filtering |
US10657055B1 (en) * | 2018-12-13 | 2020-05-19 | Arm Limited | Apparatus and method for managing snoop operations |
CN112463652B (zh) * | 2020-11-20 | 2022-09-27 | 海光信息技术股份有限公司 | 基于缓存一致性的数据处理方法、装置、处理芯片及服务器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5860111A (en) * | 1992-11-13 | 1999-01-12 | National Semiconductor Corporation | Coherency for write-back cache in a system designed for write-through cache including export-on-hold |
US6360301B1 (en) * | 1999-04-13 | 2002-03-19 | Hewlett-Packard Company | Coherency protocol for computer cache |
CN1641605A (zh) * | 2004-01-16 | 2005-07-20 | 国际商业机器公司 | 支持一致总线上改进突发传输的方法 |
CN1955948A (zh) * | 2005-10-26 | 2007-05-02 | 国际商业机器公司 | 用于管理高速缓存数据的数字数据处理设备和方法 |
CN101010670A (zh) * | 2004-09-09 | 2007-08-01 | 英特尔公司 | 解决高速缓存冲突 |
US7373466B1 (en) * | 2004-04-07 | 2008-05-13 | Advanced Micro Devices, Inc. | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1165929A (ja) * | 1997-08-26 | 1999-03-09 | Kofu Nippon Denki Kk | バスブリッジ回路 |
US6598123B1 (en) | 2000-06-28 | 2003-07-22 | Intel Corporation | Snoop filter line replacement for reduction of back invalidates in multi-node architectures |
US6574710B1 (en) * | 2000-07-31 | 2003-06-03 | Hewlett-Packard Development Company, L.P. | Computer cache system with deferred invalidation |
US6842830B2 (en) | 2001-03-31 | 2005-01-11 | Intel Corporation | Mechanism for handling explicit writeback in a cache coherent multi-node architecture |
JP3678715B2 (ja) * | 2002-04-24 | 2005-08-03 | エヌイーシーコンピュータテクノ株式会社 | 分散共有メモリ型マルチプロセッサシステム及びそれに用いるタグ制御方法 |
US6959364B2 (en) | 2002-06-28 | 2005-10-25 | Intel Corporation | Partially inclusive snoop filter |
US7093079B2 (en) | 2002-12-17 | 2006-08-15 | Intel Corporation | Snoop filter bypass |
US7305524B2 (en) | 2004-10-08 | 2007-12-04 | International Business Machines Corporation | Snoop filter directory mechanism in coherency shared memory system |
US7757045B2 (en) * | 2006-03-13 | 2010-07-13 | Intel Corporation | Synchronizing recency information in an inclusive cache hierarchy |
US20070233965A1 (en) | 2006-03-31 | 2007-10-04 | Kai Cheng | Way hint line replacement algorithm for a snoop filter |
US7962694B2 (en) | 2006-03-31 | 2011-06-14 | Intel Corporation | Partial way hint line replacement algorithm for a snoop filter |
US7383398B2 (en) | 2006-03-31 | 2008-06-03 | Intel Corporation | Preselecting E/M line replacement technique for a snoop filter |
US7581068B2 (en) | 2006-06-29 | 2009-08-25 | Intel Corporation | Exclusive ownership snoop filter |
US8055851B2 (en) | 2006-12-14 | 2011-11-08 | Intel Corporation | Line swapping scheme to reduce back invalidations in a snoop filter |
-
2008
- 2008-05-30 US US12/156,340 patent/US8015365B2/en not_active Expired - Fee Related
-
2009
- 2009-05-20 DE DE102009022151.4A patent/DE102009022151B4/de not_active Expired - Fee Related
- 2009-05-21 TW TW098116908A patent/TWI410796B/zh not_active IP Right Cessation
- 2009-05-22 JP JP2009124745A patent/JP4960989B2/ja not_active Expired - Fee Related
- 2009-05-27 CN CN200910145575.1A patent/CN101593160B/zh not_active Expired - Fee Related
- 2009-05-27 GB GB0909103A patent/GB2460337B/en active Active
- 2009-05-27 CN CN201310739178.3A patent/CN103714015B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5860111A (en) * | 1992-11-13 | 1999-01-12 | National Semiconductor Corporation | Coherency for write-back cache in a system designed for write-through cache including export-on-hold |
US6360301B1 (en) * | 1999-04-13 | 2002-03-19 | Hewlett-Packard Company | Coherency protocol for computer cache |
CN1641605A (zh) * | 2004-01-16 | 2005-07-20 | 国际商业机器公司 | 支持一致总线上改进突发传输的方法 |
US7373466B1 (en) * | 2004-04-07 | 2008-05-13 | Advanced Micro Devices, Inc. | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer |
CN101010670A (zh) * | 2004-09-09 | 2007-08-01 | 英特尔公司 | 解决高速缓存冲突 |
CN1955948A (zh) * | 2005-10-26 | 2007-05-02 | 国际商业机器公司 | 用于管理高速缓存数据的数字数据处理设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102009022151B4 (de) | 2018-09-06 |
JP2009295156A (ja) | 2009-12-17 |
US8015365B2 (en) | 2011-09-06 |
TW201009578A (en) | 2010-03-01 |
JP4960989B2 (ja) | 2012-06-27 |
GB2460337A (en) | 2009-12-02 |
GB2460337B (en) | 2010-12-15 |
CN101593160A (zh) | 2009-12-02 |
TWI410796B (zh) | 2013-10-01 |
CN103714015A (zh) | 2014-04-09 |
DE102009022151A1 (de) | 2010-01-28 |
GB0909103D0 (en) | 2009-07-01 |
US20090300289A1 (en) | 2009-12-03 |
CN101593160B (zh) | 2014-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103714015B (zh) | 减少来自侦听过滤器的后无效事务的方法、装置和系统 | |
US7698508B2 (en) | System and method for reducing unnecessary cache operations | |
US7076613B2 (en) | Cache line pre-load and pre-own based on cache coherence speculation | |
US8606997B2 (en) | Cache hierarchy with bounds on levels accessed | |
US5946709A (en) | Shared intervention protocol for SMP bus using caches, snooping, tags and prioritizing | |
US20120102273A1 (en) | Memory agent to access memory blade as part of the cache coherency domain | |
US7287126B2 (en) | Methods and apparatus for maintaining cache coherency | |
JP2000250812A (ja) | メモリ・キャッシュ・システムおよびその管理方法 | |
US7039765B1 (en) | Techniques for cache memory management using read and write operations | |
CN101097545A (zh) | 独占所有权探听过滤器 | |
US7089362B2 (en) | Cache memory eviction policy for combining write transactions | |
JPS5873085A (ja) | 記憶階層制御方法 | |
US20020169935A1 (en) | System of and method for memory arbitration using multiple queues | |
US20050044448A1 (en) | System and method for managing power consumption and data integrity in a computer system | |
US6615321B2 (en) | Mechanism for collapsing store misses in an SMP computer system | |
US6336169B1 (en) | Background kill system bus transaction to optimize coherency transactions on a multiprocessor system bus | |
US20050027946A1 (en) | Methods and apparatus for filtering a cache snoop | |
US9164904B2 (en) | Accessing remote memory on a memory blade | |
KR102220468B1 (ko) | 트랜잭션 지원을 가진 선점형 캐시 후기록 | |
CA2286364A1 (en) | Read operations in multiprocessor computer system | |
US20020112130A1 (en) | Store collapsing mechanism for SMP computer system | |
KR102570030B1 (ko) | 멀티프로세서 시스템 및 이의 데이터 관리 방법 | |
US20240061786A1 (en) | Systems, methods, and apparatus for accessing data in versions of memory pages | |
TW202409839A (zh) | 用於存取記憶體頁的版本中的資料的裝置以及方法 | |
CN117609105A (zh) | 用于访问存储器页的版本中的数据的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170118 Termination date: 20210527 |