CN1571958A - 集中监听过滤的方法和设备 - Google Patents

集中监听过滤的方法和设备 Download PDF

Info

Publication number
CN1571958A
CN1571958A CNA018176917A CN01817691A CN1571958A CN 1571958 A CN1571958 A CN 1571958A CN A018176917 A CNA018176917 A CN A018176917A CN 01817691 A CN01817691 A CN 01817691A CN 1571958 A CN1571958 A CN 1571958A
Authority
CN
China
Prior art keywords
node
snoop filter
nodes
cache
switching equipment
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.)
Granted
Application number
CNA018176917A
Other languages
English (en)
Other versions
CN1329846C (zh
Inventor
L·罗伊
K·程
F·布里格斯
M·哈雷
M·切克莱奥夫
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
Publication of CN1571958A publication Critical patent/CN1571958A/zh
Application granted granted Critical
Publication of CN1329846C publication Critical patent/CN1329846C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/0822Copy 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/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/507Control mechanisms for virtual memory, cache or TLB using speculative control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)

Abstract

一种使用中央监听过滤器的计算机系统的示例实施方案包括通过交换设备耦合在一起的多个结点。每个结点包含多个处理器和高速缓冲存储器以及一个系统存储区。从一个结点到另一个结点的所有业务交换都通过交换设备进行。交换设备包含一个监听过滤器,它跟踪计算机系统中的所有高速缓冲存储器的高速缓冲存储器行一致性信息。除了标记和状态信息之外,监听过滤器还存储指示哪个结点拥有每个高速缓冲存储器行的副本的信息。监听过滤器部分用于禁止监听处理在不包含目标高速缓冲存储器行的结点上执行,由此减轻系统总开销、减少系统互连总线上的业务流量、并减小执行监听处理所需的时间。

Description

集中监听过滤的方法和设备
技术领域
本发明属于计算机系统领域。更准确地说,本发明属于在多结点计算机系统中执行监听操作的领域。
背景技术
高速缓冲存储器一致性是任何计算机系统的关键元素。在网络服务器计算机系统中,维持高速缓冲存储器一致性是一个艰巨的任务,因为典型的网络服务器包括多个处理器在多个高速缓冲存储器之外工作。有些计算机系统是基于结点型架构的,每个结点由若干个处理器、处理器的高速缓冲存储器以及一个系统存储区组成。计算机系统可以包括多个结点。
在现有的典型系统中,为了维护高速缓冲存储器一致性,在每个结点中加入了监听过滤器。这种架构可以称为分布式监听架构。每个结点的监听过滤器跟踪该结点的任意一个处理器高速缓冲存储器中当前缓存的高速缓冲存储器行的高速缓冲存储器一致性协议状态信息。通用的高速缓冲存储器一致性协议是MESI(被修改过、排他、共享或无效)协议。
在分布式监听架构中,当一个结点希望从存储位置读取一行数据时,它首先必须确定系统中是否有某个高速缓冲存储器拥有该行数据的副本。可能有多个该行数据的副本存在于多个结点的高速缓冲存储器中,这些副本也可能被缓存在MESI协议所允许的任意状态中。为了确定哪个结点有该行数据的副本以及该行数据被缓存于什么状态,希望读取该行数据的结点必须询问所有其它结点。因而,必须询问所有结点,尽管一些结点并没有缓存正在讨论的该行数据。这导致了总线带宽的浪费并产生了不必要的系统总开销和延迟增加。
另一种维持高速缓冲存储器一致性的现有系统涉及监听目录的使用。在这种架构中,带系统存储器的每个结点包括一个监听目录。监听目录跟踪包含位于该结点上的存储器位置在内的所有高速缓冲存储器活动的信息。每个高速缓冲存储器目录从监听目录结点的系统存储器跟踪哪些结点缓冲了数据行,还跟踪这些数据行以什么状态被缓存。因而,采用这种分布式目录结构,当一个结点(“请求”结点)希望从位于于另一结点的存储器位置读取时,请求结点必须联系主结点,主结点查询它的目录。主结点随后向已经缓存了正在讨论的存储行的任意结点发出监听请求。多个结点随后响应主结点,主机点随后可以向请求结点提供所请求的数据。第一个联系主结点以及随后主结点为监听信息而联系其它结点的步骤会导致不理想的系统总开销,尤其是在计算机系统的结点通过交换装置耦合时。
附图说明
从下面给出的详细描述以及本发明的实施方案的附图可以充分地理解本发明,但不应用附图把本发明限制为所描述的特定实施方案,而应该只把它们用于帮助说明和理解。
图1是包括多个结点的系统的一种实施方案的框图,其中的结点通过一个交换设备耦合,该交换设备包括一个中央监听过滤器。
图2是包括多个结点的系统的一种实施方案的框图,其中的结点通过两个交换设备耦合,每个交换设备包括一个中央监听过滤器。
图3是用交换设备中的中央监听过滤器执行监听周期的方法的一种实施方案的流程图。
图4是用交换设备中的中央监听过滤器执行包括监听周期在内的的读处理的方法的一种实施方案的流程图。
具体实施方式
使用中央监听过滤器的计算机系统的一种示例实施方案包括通过交换设备耦合在一起的几个结点。每个结点可以包括若干个处理器和高速缓冲存储器以及系统存储器。从一个结点到另一个结点的业务交换是通过交换设备来进行的。交换设备包括一个监听过滤器,它跟踪计算机系统中所有缓存的高速缓冲存储器行的一致性信息。监听过滤器拥有至少足够用于跟踪所有系统结点中的所有高速缓冲存储器中的所有项的标记地址和状态信息的项。除了标记和状态信息之外,监听过滤器还存储指示哪些结点有每个高速缓冲存储器行的副本的信息。监听过滤器部分用于禁止监听处理在不包含目标高速缓冲存储器行的副本的结点上执行,由此减轻系统总开销、减轻系统互连总线上的业务流量、并减少执行监听操作所需的时间量。
中央监听过滤器的一种实施方案采用MESI协议的一种变体。这种实施方案中的监听过滤器跟踪一个高速缓冲存储器行是否无效、共享或被修改过/排他。在位于不同结点上的高速缓冲存储器上支持完整的MESI协议。只在所有缓存代理上的处理一致时才使用其它协议。
因为中央监听过滤器包括所有缓存代理上的所有高速缓冲存储器,因此缓存代理不应该拥有不在监听过滤器中的高速缓冲存储器行的副本。如果从监听过滤器中剔出一行,也必须把它剔除出包含该行的副本的所有结点的缓存代理。
监听过滤器用存在向量跟踪哪些结点拥有一行的副本。存在向量是一个多位字段,字段中的每个位对应于一个特定的结点。
除了向量字段之外,也可以有为每个结点使用不同的监听过滤器的替代实施方案。监听过滤器位于交换设备中,因此是位于中央的。可以如此实现一个或多个监听过滤器:特定的监听过滤器项应用于一个结点,其它项应用于另一结点,等等。
图1是包括结点A、B和C的系统的框图。结点A可以包括多个处理器,标记为105到L。结点B可以包括多个处理器,标记为115到M。结点C可以包括多个处理器,标记为125到N。结点A还包括结点控制电路102和一个系统存储区104。结点B还包括结点控制电路112和一个系统存储区114。结点C还包括结点控制电路122和一个系统存储区124。结点A、B和C的处理器都包含高速缓冲存储器。
结点A、B和C都与交换设备130耦合。交换设备130包含中央监听过滤器132。输入/输出网络集线器140也与交换设备130耦合。输入/输出网络集线器140也可以包含高速缓冲存储器。监听过滤器132包含足够的项用于跟踪包括处理器高速缓冲存储器和输入/输出网络集线器140高速缓冲存储器在内的所有系统结点的所有高速缓冲存储器中的所有项的标记、状态以及存在信息。
现在将讨论对没有被缓存在任意系统高速缓冲存储器中的一个存储器行的数据读处理的一个实例。对这个实例来说,结点A是请求结点(发同读处理的结点),结点C是主结点(包含读请求提出访问的系统存储器部分的结点)。结点A向交换设备130发出读请求。监听过滤器132随后执行查找操作来确定该请求提出访问的存储器行是否已经被缓存在结点A、B、C或者输入/输出网络集线器140的任意一个当中。在监听过滤器执行查找操作的同时,交换设备130向结点C发出一个推测性的存储器读。交换设备130包含存储器解码电路,它使得交换设备130能够确定读请求访问到哪个结点。对这个例子来说,监听过滤器查找指示读请求提出访问的存储器行没有被缓存在任意系统高速缓冲存储器中。交换设备130向结点A发送监听响应,还向结点C发送存储器读确认。结点C响应存储器读确认把所请求的数据发送给交换设备130。交换设备130随后把请求的数据发送给结点A。因为结点A是已经缓存了目标高速缓冲存储器行的唯一结点,监听过滤器132把这个高速缓冲存储器行的项标记为“排他”,并设置存在向量以指示结点A拥有该高速缓冲存储器行的副本。
现在将讨论对在两个结点间共享的一个高速缓冲存储器行的存储器写处理的一个实例。对这个例子来说,结点A是请求结点也是主结点。换句话说,结点A是向它自己的存储器写入一行数据。结点A从向交换设备130发出一个无效周期开始。监听过滤器132随后执行查找操作以确定哪些结点拥有该高速缓冲存储器行的副本,还确定这些行以什么状态被缓存。这个例子中的查找操作指示该高速缓冲存储器行是“共享”而且结点B和C都有该行的副本。交换设备130随后发出无效周期给结点B和C。结点B和C用监听响应信号响应,随后交换设备130发送监听响应给结点A以完成该处理。监听过滤器132现在指示只有结点A有该高速缓冲存储器行的副本并且该行处于“排他/被修改过”状态。
现在将讨论对一个“修改过的”高速缓冲存储器行的读周期的一个实例。对这个例子来说,结点A是请求结点,结点B是修改过正在讨论的高速缓冲存储器行的结点,结点C是主结点(系统存储区包括与该高速缓冲存储器行对应的存储位置的结点)。结点A从发出读请求给交换设备130开始。监听过滤器132在交换设备130发出推测性存储器读给结点C的同时执行查找操作。监听过滤器查找的结果表示结点B包含已经修改过该高速缓冲存储器行的副本。交换设备130发送监听请求给结点B,结点B用监听响应和修改过的数据响应。交换设备130随后把监听响应和数据发给结点A,并同时把数据发给结点C以更新系统存储器。结点C随后向交换设备130发送操作完成的信号,随后完成信号被从交换设备130转发到结点A以结束该处理。
可以在系统中使用多个监听过滤器以便提供足够的监听过滤吞吐量和容量以满足系统可量测性的需求。这种情况下,不同的监听过滤器跟踪互斥的高速缓冲存储器行集合。在任意时刻一个高速缓冲存储器行只由一个监听过滤器来跟踪。
图2是包括结点D、E、F以及两个监听过滤器232、234的系统的框图。结点D可以包括多个处理器,标记为205到P。结点E包括多个处理器,标记为215到Q。结点F包括多个处理器,标记为225到R。结点D还包括结点控制电路202和一个系统存储区204。结点E还包括结点控制电路212和一个系统存储区214。结点F还包括结点控制电路222和一个系统存储区224。结点D、E和F的处理器都包含高速缓冲存储器。
结点D、E和F的每一个都与交换设备230耦合,也都和交换设备240耦合。交换设备230包含中央监听过滤器232。输入/输出网络集线器250也与交换设备230和240耦合。输出/输出网络集线器250也包含高速缓冲存储器。交换设备240包含中央监听过滤器242。输入/输出网络集线器260也和交换设备240和230耦合。输入/输出网络集线器260也包含高速缓冲存储器。
监听过滤器232包含足够的项用来跟踪包括处理器高速缓冲存储器和输入/输出网络集线器高速缓冲存储器在内的所有系统结点的所有高速缓冲存储器中的一半项的标记、状态和存在信息。监听过滤器242包含系统高速缓冲存储器项的剩余部分的项。在一种实施方案中,结点D、E和F在替换的高速缓冲存储器行基础上交叉访问交换设备230和240。
图3是用交换设备中的中央监听过滤器执行监听周期的方法的一种实施方案的流程图。在块310,从第一结点向交换设备提出一个读请求。交换设备包含一个中央监听过滤器。在块320执行监听过滤器查找以确定第二个结点中的高速缓冲存储器是否拥有与读请求对应的高速缓冲存储器行的副本。
图4是用交换设备中的中央监听过滤器执行包括监听周期的读处理的方法的一种实施方案的流程图。在块410,从第一个结点发出读请求到包含监听过滤器的交换设备。读请求要访问的是位于第二结点的存储区域。在块420执行监听过滤器查找,同时在块430从交换设备向第二结点发出推测性存储器读取。块440表示如果监听过滤器查找确定读请求所指定的存储器行是被缓存在一个或多个结点上,则在块450执行缓存行算法。上面结合图1已经讨论过这种类型的算法的实例。块440还指示如果监听过滤器查找确定读请求所指定的存储器行不被任意缓存代理所缓存,则在块460从交换设备发送一个监听响应到第一个结点。同时,在块470从交换设备发送存储器读确认消息到第二个结点。最后,在块480从第二个结点把取到的数据通过交换设备发送给第一个结点。
至此已经在上述说明中关于示例性的实现描述了本发明。但是,很明显此外也可以在不偏离所附权利要求中提出的本发明的更宽的精神和范围的前提下对其进行不同的修改和变化。因此,这些说明和附图应该看作是说明性的而不是限制性的。
上述说明中提到的“实施方案”、“一种实施方案”、“一些实施方案”或“其它实施方案”意味着在本发明的至少一些但不必是全部实施方案中包括结合这些实施方案所描述的特定的特性、结构或特征。“实施方案”、“一种实施方案”或“其它实施方案”的多次出现并不一定都指的是相同的实施方案。

Claims (19)

1、一种设备,包括
多个结点接口端口,用来提供多个结点的通信;和
监听过滤器,用来为多个结点维持高速缓冲存储器一致性信息。
2、权利要求1的设备,其中多个结点中的每一个都包括一个高速缓冲存储器,而且其中的监听过滤器包括至少与位于多个结点中的所有高速缓冲存储器中所包括的项的数量一样多的项。
3、权利要求2的设备,其中每个监听过滤器项包括一个地址标记。
4、权利要求3的设备,其中每个监听过滤器项包括一个字段,为对应的高速缓冲存储器行指示一个高速缓冲存储器一致性协议状态。
5、权利要求4的设备,其中每个监听过滤器项包括一个字段,指示多个结点中的哪一个在它的高速缓冲存储器中拥有对应的高速缓冲存储器行的副本。
6、权利要求5的设备,多个结点接口端口中的一个用于从多个结点中的一个接收监听请求,监听过滤器用于确定多个结点中的其它结点中的哪一个拥有与监听请求对应的高速缓冲存储器行的副本,并确定为该高速缓冲存储器行指示哪一个高速缓冲存储器一致性协议状态。
7、一种系统,包括:
包含监听过滤器的交换设备;
与交换设备耦合的第一个结点;以及
与交换设备耦合的第二个结点。
8、权利要求7的系统,其中第一个结点包含处理器和高速缓冲存储器。
9、权利要求8的系统,其中第二个结点包含处理器、存储设备和高速缓冲存储器。
10、权利要求9的系统,其中监听过滤器包括至少与第一和第二个结点的高速缓冲存储器中所包含的项数量相同的项。
11、权利要求10的系统,其中每个监听过滤器项包括一个地址标记。
12、权利要求11的系统,其中每个监听过滤器项包含一个字段,为对应的高速缓冲存储器行指示一个高速缓冲存储器一致性协议状态。
13、权利要求12的系统,其中每个监听过滤器项包含一个字段,指示第一和第二个结点中的哪一个在它的高速缓冲存储器中拥有对应的高速缓冲存储器行的副本。
14、权利要求13的系统,交换设备用来从第一个结点接收监听请求,监听过滤器用来确定第一和第二个结点中的哪一个拥有与监听请求对应的高速缓冲存储器行的副本,并确定为该高速缓冲存储器行指示哪个高速缓冲存储器一致性协议状态。
15、一种方法,包括:
从第一个结点发出读请求到交换设备,交换设备包含一个监听过滤器;
执行监听过滤器查找以确定位于第二个结点的高速缓冲存储器中是否有与读请求对应的高速缓冲存储器行的副本。
16、权利要求15的方法,还包括在监听过滤器查找之后从交换设备发出监听响应到第一个结点。
17、权利要求16的方法,还包括通过响应读请求从位于第二个结点的存储器中取数据来执行读请求,数据取操作由交换设备执行。
18、一种方法,包括:
从第一个结点发送读请求到交换设备,交换设备包含监听过滤器,第一个结点是多个结点之一,读请求提出访问位于第二个结点的一个存储位置,第二个结点也是多个结点之一,多个结点中的每个结点包含一个高速缓冲存储器;
在从交换设备发出推测性存储器读到第二个结点的同时执行监听过滤器查找;
从交换设备发送监听响应到第一个结点,与此同时,如果监听过滤器查找指示没有结点拥有与读请求指定的存储器地址对应的存储器的高速缓冲存储器行,就发送存储器读确认消息到第二个结点;
响应存储器读确认消息从第二个结点发送数据到交换设备;并
从交换设备发送数据到第一个结点。
19、权利要求18的方法,还包括在监听过滤器中指示发送的数据已经被第一个结点以排他状态缓存起来。
CNB018176917A 2000-08-21 2001-08-10 集中监听过滤的方法和设备 Expired - Fee Related CN1329846C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/643,382 2000-08-21
US09/643,382 US6810467B1 (en) 2000-08-21 2000-08-21 Method and apparatus for centralized snoop filtering

Publications (2)

Publication Number Publication Date
CN1571958A true CN1571958A (zh) 2005-01-26
CN1329846C CN1329846C (zh) 2007-08-01

Family

ID=24580583

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018176917A Expired - Fee Related CN1329846C (zh) 2000-08-21 2001-08-10 集中监听过滤的方法和设备

Country Status (10)

Country Link
US (1) US6810467B1 (zh)
EP (1) EP1311955B1 (zh)
KR (1) KR100548908B1 (zh)
CN (1) CN1329846C (zh)
AT (1) ATE445187T1 (zh)
AU (1) AU2001279252A1 (zh)
DE (1) DE60140130D1 (zh)
HK (1) HK1052773B (zh)
TW (1) TW542964B (zh)
WO (1) WO2002017102A2 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418559B2 (en) 2005-03-07 2008-08-26 Fujitsu Limited Address snoop method and multi-processor system
CN104239270A (zh) * 2014-07-25 2014-12-24 浪潮(北京)电子信息产业有限公司 一种高速缓存同步的方法及装置
CN105095254A (zh) * 2014-05-07 2015-11-25 深圳市中兴微电子技术有限公司 一种实现数据一致性的方法及装置
CN107038123A (zh) * 2015-12-10 2017-08-11 Arm 有限公司 用于数据处理系统中的缓存一致性的探听过滤器
CN112612726A (zh) * 2020-12-08 2021-04-06 海光信息技术股份有限公司 基于缓存一致性的数据存储方法、装置、处理芯片及服务器
CN112930527A (zh) * 2018-10-10 2021-06-08 美光科技公司 一致性存储器存取

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60140859D1 (de) * 2001-05-01 2010-02-04 Sun Microsystems Inc Multiprozessorsystem mit gemeinsamem Speicher, welches gemischte Broadcast-Snoop und verzeichnisbasierte Kohärenzprotokolle benutzt
US7222220B2 (en) * 2001-05-01 2007-05-22 Sun Microsystems, Inc. Multiprocessing system employing address switches to control mixed broadcast snooping and directory based coherency protocols transparent to active devices
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7093079B2 (en) * 2002-12-17 2006-08-15 Intel Corporation Snoop filter bypass
US7698509B1 (en) * 2004-07-13 2010-04-13 Oracle America, Inc. Snooping-based cache-coherence filter for a point-to-point connected multiprocessing node
US7213106B1 (en) * 2004-08-09 2007-05-01 Sun Microsystems, Inc. Conservative shadow cache support in a point-to-point connected multiprocessing node
US7275124B2 (en) * 2005-02-24 2007-09-25 International Business Machines Corporation Method and system for controlling forwarding or terminating of a request at a bus interface based on buffer availability
US7469312B2 (en) * 2005-02-24 2008-12-23 International Business Machines Corporation Computer system bus bridge
US7392351B2 (en) * 2005-03-29 2008-06-24 International Business Machines Corporation Method and apparatus for filtering snoop requests using stream registers
US7373462B2 (en) * 2005-03-29 2008-05-13 International Business Machines Corporation Snoop filter for filtering snoop requests
US7380071B2 (en) * 2005-03-29 2008-05-27 International Business Machines Corporation Snoop filtering system in a multiprocessor system
US7797495B1 (en) * 2005-08-04 2010-09-14 Advanced Micro Devices, Inc. Distributed directory cache
WO2007031696A1 (en) * 2005-09-13 2007-03-22 Arm Limited Cache miss detection in a data processing apparatus
WO2007099273A1 (en) * 2006-03-03 2007-09-07 Arm Limited Monitoring values of signals within an integrated circuit
WO2007101969A1 (en) * 2006-03-06 2007-09-13 Arm Limited Accessing a cache in a data processing apparatus
US7581068B2 (en) * 2006-06-29 2009-08-25 Intel Corporation Exclusive ownership snoop filter
US20080109624A1 (en) * 2006-11-03 2008-05-08 Gilbert Jeffrey D Multiprocessor system with private memory sections
US7937535B2 (en) * 2007-02-22 2011-05-03 Arm Limited Managing cache coherency in a data processing apparatus
US7996626B2 (en) * 2007-12-13 2011-08-09 Dell Products L.P. Snoop filter optimization
US8856456B2 (en) 2011-06-09 2014-10-07 Apple Inc. Systems, methods, and devices for cache block coherence
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
US9122612B2 (en) * 2012-06-25 2015-09-01 Advanced Micro Devices, Inc. Eliminating fetch cancel for inclusive caches
US9058269B2 (en) * 2012-06-25 2015-06-16 Advanced Micro Devices, Inc. Method and apparatus including a probe filter for shared caches utilizing inclusion bits and a victim probe bit
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
US9727466B2 (en) * 2014-08-26 2017-08-08 Arm Limited Interconnect and method of managing a snoop filter for an interconnect
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
US20170185516A1 (en) * 2015-12-28 2017-06-29 Arm Limited Snoop optimization for multi-ported nodes of a data processing system
US9990292B2 (en) * 2016-06-29 2018-06-05 Arm Limited Progressive fine to coarse grain snoop filter
US10346307B2 (en) 2016-09-28 2019-07-09 Samsung Electronics Co., Ltd. Power efficient snoop filter design for mobile platform
US10042766B1 (en) 2017-02-02 2018-08-07 Arm Limited Data processing apparatus with snoop request address alignment and snoop response time alignment
US11119926B2 (en) 2017-12-18 2021-09-14 Advanced Micro Devices, Inc. Region based directory scheme to adapt to large cache sizes
US10705959B2 (en) 2018-08-31 2020-07-07 Advanced Micro Devices, Inc. Region based split-directory scheme to adapt to large cache sizes
US10922237B2 (en) 2018-09-12 2021-02-16 Advanced Micro Devices, Inc. Accelerating accesses to private regions in a region-based cache directory scheme
US10657055B1 (en) * 2018-12-13 2020-05-19 Arm Limited Apparatus and method for managing snoop operations
US11550720B2 (en) 2020-11-24 2023-01-10 Arm Limited Configurable cache coherency controller

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5950226A (en) 1996-07-01 1999-09-07 Sun Microsystems, Inc. Multiprocessing system employing a three-hop communication protocol
US6088769A (en) 1996-10-01 2000-07-11 International Business Machines Corporation Multiprocessor cache coherence directed by combined local and global tables
US6374330B1 (en) * 1997-04-14 2002-04-16 International Business Machines Corporation Cache-coherency protocol with upstream undefined state
US6338122B1 (en) * 1998-12-15 2002-01-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node
US6374331B1 (en) 1998-12-30 2002-04-16 Hewlett-Packard Company Distributed directory cache coherence multi-processor computer architecture
US6651157B1 (en) 1999-10-15 2003-11-18 Silicon Graphics, Inc. Multi-processor system and method of accessing data therein

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418559B2 (en) 2005-03-07 2008-08-26 Fujitsu Limited Address snoop method and multi-processor system
CN105095254A (zh) * 2014-05-07 2015-11-25 深圳市中兴微电子技术有限公司 一种实现数据一致性的方法及装置
CN105095254B (zh) * 2014-05-07 2023-01-10 深圳市中兴微电子技术有限公司 一种实现数据一致性的方法及装置
CN104239270A (zh) * 2014-07-25 2014-12-24 浪潮(北京)电子信息产业有限公司 一种高速缓存同步的方法及装置
CN107038123A (zh) * 2015-12-10 2017-08-11 Arm 有限公司 用于数据处理系统中的缓存一致性的探听过滤器
CN107038123B (zh) * 2015-12-10 2021-11-30 Arm 有限公司 用于数据处理系统中的缓存一致性的探听过滤器
CN112930527A (zh) * 2018-10-10 2021-06-08 美光科技公司 一致性存储器存取
CN112930527B (zh) * 2018-10-10 2022-10-11 美光科技公司 一致性存储器存取
CN112612726A (zh) * 2020-12-08 2021-04-06 海光信息技术股份有限公司 基于缓存一致性的数据存储方法、装置、处理芯片及服务器

Also Published As

Publication number Publication date
CN1329846C (zh) 2007-08-01
ATE445187T1 (de) 2009-10-15
HK1052773A1 (en) 2003-09-26
TW542964B (en) 2003-07-21
KR20030025296A (ko) 2003-03-28
EP1311955A2 (en) 2003-05-21
KR100548908B1 (ko) 2006-02-02
AU2001279252A1 (en) 2002-03-04
WO2002017102A2 (en) 2002-02-28
HK1052773B (zh) 2010-05-20
EP1311955B1 (en) 2009-10-07
US6810467B1 (en) 2004-10-26
WO2002017102A3 (en) 2003-01-23
DE60140130D1 (de) 2009-11-19

Similar Documents

Publication Publication Date Title
CN1571958A (zh) 集中监听过滤的方法和设备
US5604882A (en) System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system
US6615319B2 (en) Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
US7502893B2 (en) System and method for reporting cache coherency state retained within a cache hierarchy of a processing node
US20080270708A1 (en) System and Method for Achieving Cache Coherency Within Multiprocessor Computer System
CN101604295B (zh) 优化基于目录的一致性协议中的并发访问
JP3729891B2 (ja) マルチプロセッサコンピュータシステム
US6631448B2 (en) Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol
EP1316019B1 (en) Managing replacement of data in a cache on a node based on caches of other nodes
US20090094418A1 (en) System and method for achieving cache coherency within multiprocessor computer system
CN101236527B (zh) 减少后来无效的行交换方法、装置和系统
US8423720B2 (en) Computer system, method, cache controller and computer program for caching I/O requests
US6931496B2 (en) Data-maintenance method of distributed shared memory system
US6662276B2 (en) Storing directory information for non uniform memory architecture systems using processor cache
US5900015A (en) System and method for maintaining cache coherency using path directories
WO2006072058A1 (en) Predictive early write-back of owned cache blocks in a shared memory computer system
JPH076092A (ja) ライト・バック・キャッシュ・メモリおよびキャッシュ・メモリ内のキャッシュ・ラインを置換する方法
US6934814B2 (en) Cache coherence directory eviction mechanisms in multiprocessor systems which maintain transaction ordering
US6226714B1 (en) Method for invalidating cache lines on a sharing list
US6925536B2 (en) Cache coherence directory eviction mechanisms for unmodified copies of memory lines in multiprocessor systems
CN1286016C (zh) 通过放/取窗口管理一致性
CN1226706A (zh) 具有空悬(h)和最新(r)状态的高速缓存相关性协议
US20030009638A1 (en) Method and apparatus for maintaining cache coherence in a computer system
US6298419B1 (en) Protocol for software distributed shared memory with memory scaling
US5978886A (en) Method and apparatus for duplicating tag systems to maintain addresses of CPU data stored in write buffers external to a cache

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070801

Termination date: 20100810