CN101593160B - 减少来自侦听过滤器的后无效事务 - Google Patents

减少来自侦听过滤器的后无效事务 Download PDF

Info

Publication number
CN101593160B
CN101593160B CN200910145575.1A CN200910145575A CN101593160B CN 101593160 B CN101593160 B CN 101593160B CN 200910145575 A CN200910145575 A CN 200910145575A CN 101593160 B CN101593160 B CN 101593160B
Authority
CN
China
Prior art keywords
snoop filter
cache
entry
affairs
invalidation transactions
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
Application number
CN200910145575.1A
Other languages
English (en)
Other versions
CN101593160A (zh
Inventor
T·库尔茨
K·程
J·D·吉尔伯特
J·曼德尔布莱特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Priority to CN201310739178.3A priority Critical patent/CN103714015B/zh
Publication of CN101593160A publication Critical patent/CN101593160A/zh
Application granted granted Critical
Publication of CN101593160B publication Critical patent/CN101593160B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/082Associative directories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

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

减少来自侦听过滤器的后无效事务
背景技术
在具有多个处理器和多个高速缓存的多处理器系统中,每个高速缓存可存储存储器中所存储的数据片的副本。当一个以上的高速缓存包含同一数据片的副本时出现了问题。已经开发了多种技术来确保多个高速缓存上的数据一致性。例如,当一个高速缓存中的数据被修改时,该数据的其它副本被标记为无效,以使得它们将不会被使用。
为了帮助维持高速缓存一致性,很多系统包括诸如侦听过滤器之类的目录以帮助确定在这种多个高速缓存的高速缓存线中数据的存在和状态。可发生总线代理监视例如读/写操作的存储器事务的侦听操作。代理可将存储器事务中涉及的高速缓存线的状态记录在侦听过滤器中。高速缓存线的状态可指示该线是仅具有在主存储器外的一个有效副本,具有由多个高速缓存共享的多个有效副本,还是不具有在主存储器外的副本(即它在所有高速缓存中都已经无效)。侦听过滤器中的数据条目通常部分地根据主存储器中其地址的一部分索引。
侦听过滤器有时会缺乏用于记录新存储器事务的线的状态的空间,且可能需要从侦听过滤器驱逐条目以容纳新的事务。通常当条目被驱逐出侦听过滤器时,后无效(back-invalidation)消息被发送到可能保存与所驱逐条目相关联的线的有效副本的每个处理器高速缓存。很多高速缓存未命中是由于侦听过滤器发起即将使用的高速缓存线的后无效。
某些侦听过滤器被称为包含式侦听过滤器(ISF),因为侦听过滤器中的信息用侦听过滤器覆盖的高速缓存的高速缓存线来包含式地维持。在包含式高速缓存分层结构中,高速缓存存储器之一(即,较低层的高速缓存存储器)包括另一个高速缓存存储器(较高层高速缓存存储器)中所包含的数据的子集。高速缓存分层结构可提高处理器性能,因为它们使得具有相对较快存取速度的较小高速缓存包含频繁使用的数据。而存取速度比较小高速缓存慢的较大高速缓存存储较不频繁使用的数据(以及较低层高速缓存中的数据的副本)。
侦听过滤器同它们覆盖的高速缓存一样分配并驱逐条目。然而,因为具有ISF的包含式高速缓存分层结构存储某些共用数据,一个高速缓存层中的高速缓存线或侦听过滤器的驱逐可导致高速缓存分层结构的另一个层中的相应高速缓存线驱逐以维持高速缓存一致性。ISF必需确保其地址被驱逐出侦听过滤器的高速缓存线从所有覆盖的高速缓存中去除。一般而言,这涉及将后无效请求从侦听过滤器发送到所覆盖的高速缓存。当侦听过滤器发送很多这种请求时它消耗互连带宽,这可增加有效存储器等待时间,并可能去除有用的高速缓存条目。
附图简述
图1是多处理器系统的实施例的框图。
图2是根据本发明一个实施例的一致性控制器的框图。
图3是根据本发明的实施例示出高速缓存代理、侦听过滤器和分级区(staging area)之间的交互的框图。
图4是根据本发明一个实施例的方法的流程图。
详细描述
在各实施例中,侦听过滤器可被配置成使得它将数量减少的后无效消息发送到与其耦合的高速缓存。由此,从高速缓存驱逐较少的条目,从而提高高速缓存命中率。减少后无效消息的数量还将减少系统互连通信量,从而改进存储器等待时间和其它系统效率因数。更具体地,在各实现中,如果相应的高速缓存有可能将立刻发出给定高速缓存线的其自身的无效消息,则将从侦听过滤器驱逐条目的侦听过滤器(其中条目与该给定高速缓存线相关联)可避免发送后无效消息。由此,可避免从侦听过滤器发送后无效消息的开销。
取决于高速缓存大小和应用,被驱逐出侦听过滤器的高速缓存线的相当大的部分将被修改(也称为“脏”)。当高速缓存决定驱逐脏线时,它一般发出“显式写回”(EWB)事务。在某些实现中,这种事务被称为无效显式写回(或BWL.INVLD)事务,其将两个语义组合到单个事务中。更具体地,该事务报告所指高速缓存线的当前值,并提供指示高速缓存线已经从高速缓存分层结构的所有层中完全去除的指示。各实施例利用该第二属性,以使得覆盖该高速缓存的侦听过滤器可静默去除其相关联的条目。即,侦听过滤器可将相应条目驱逐出侦听过滤器而不发出后无效请求。
因此,当ISF可确定所覆盖的高速缓存有可能对已经或即将被驱逐的ISF条目发出无效显式写回事务时,它可延迟发出无效请求。然后,当高速缓存对所指高速缓存线发出该事务时,侦听过滤器不需要发出该无效请求。
因此,实施例可提供第一机制,其向ISF提供可能对该侦听过滤器中已驱逐(或即将驱逐)的条目发出无效显式写回的指示,以及第二机制,其利用该信息制止在给定时间段内发出无效请求。如果在该时间段中接收到相关联的无效显式写回事务,则侦听过滤器可避免发送该请求。
在一个实施例中,第一机制可就读取事务利用提示,其指示特定高速缓存中的哪个高速缓存线位置正被驱逐从而为读取结果让出空间。提示本身可包括用以报告该驱逐方式被修改的在本文中称为“EWB提示”的信息。该机制的替换形式可利用侦听过滤器本身中的信息。例如,在接收驱逐提示后,侦听过滤器可保持指示高速缓存获得将被驱逐的线的独占所有权的指示。请求线的独占所有权与修改该线高度相关(通常,对于64和
Figure G2009101455751D00032
架构(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端口221和FSB端口122)、一致性引擎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,其可对应于图2的处理器节点之一。高速缓存代理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所述的系统,其特征在于,如果所述侦听过滤器条目在所述存储区中维持预定时间段,则所述一致性单元发送所述后无效事务。
CN200910145575.1A 2008-05-30 2009-05-27 减少来自侦听过滤器的后无效事务 Expired - Fee Related CN101593160B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310739178.3A CN103714015B (zh) 2008-05-30 2009-05-27 减少来自侦听过滤器的后无效事务的方法、装置和系统

Applications Claiming Priority (2)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201310739178.3A Division CN103714015B (zh) 2008-05-30 2009-05-27 减少来自侦听过滤器的后无效事务的方法、装置和系统

Publications (2)

Publication Number Publication Date
CN101593160A CN101593160A (zh) 2009-12-02
CN101593160B true CN101593160B (zh) 2014-02-05

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 After (1)

Application Number Title Priority Date Filing Date
CN201310739178.3A Expired - Fee Related CN103714015B (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)

* Cited by examiner, † Cited by third party
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6360301B1 (en) * 1999-04-13 2002-03-19 Hewlett-Packard Company Coherency protocol for computer cache

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5664149A (en) * 1992-11-13 1997-09-02 Cyrix Corporation Coherency for write-back cache in a system designed for write-through cache using an export/invalidate protocol
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
US7143246B2 (en) * 2004-01-16 2006-11-28 International Business Machines Corporation Method for supporting improved burst transfers on a coherent bus
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
US9727468B2 (en) * 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US7305524B2 (en) 2004-10-08 2007-12-04 International Business Machines Corporation Snoop filter directory mechanism in coherency shared memory system
US20070094450A1 (en) * 2005-10-26 2007-04-26 International Business Machines Corporation Multi-level cache architecture having a selective victim cache
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6360301B1 (en) * 1999-04-13 2002-03-19 Hewlett-Packard Company Coherency protocol for computer cache

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
CN103714015B (zh) 2017-01-18
GB0909103D0 (en) 2009-07-01
US20090300289A1 (en) 2009-12-03

Similar Documents

Publication Publication Date Title
CN101593160B (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
US7711902B2 (en) Area effective cache with pseudo associative memory
US9727468B2 (en) Resolving multi-core shared cache access conflicts
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
US7281092B2 (en) System and method of managing cache hierarchies with adaptive mechanisms
US8055851B2 (en) Line swapping scheme to reduce back invalidations in a snoop filter
US8539164B2 (en) Cache coherency within multiprocessor computer system
US6275909B1 (en) Multiprocessor system bus with system controller explicitly updating snooper cache state information
US7502895B2 (en) Techniques for reducing castouts in a snoop filter
US7089362B2 (en) Cache memory eviction policy for combining write transactions
US11500797B2 (en) Computer memory expansion device and method of operation
US6751705B1 (en) Cache line converter
US20020169935A1 (en) System of and method for memory arbitration using multiple queues
US7380068B2 (en) System and method for contention-based cache performance optimization
US7383397B2 (en) Method and apparatus for filtering snoop requests using a scoreboard
US7117312B1 (en) Mechanism and method employing a plurality of hash functions for cache snoop filtering
US7325102B1 (en) Mechanism and method for cache snoop filtering
US5809526A (en) Data processing system and method for selective invalidation of outdated lines in a second level memory in response to a memory request initiated by a store operation
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
US6918021B2 (en) System of and method for flow control within a tag pipeline
US8489822B2 (en) Providing a directory cache for peripheral devices
EP4328755A1 (en) Systems, methods, and apparatus for accessing data in versions of memory pages
KR102570030B1 (ko) 멀티프로세서 시스템 및 이의 데이터 관리 방법

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: 20140205

Termination date: 20210527