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

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

Info

Publication number
CN1329846C
CN1329846C CNB018176917A CN01817691A CN1329846C CN 1329846 C CN1329846 C CN 1329846C CN B018176917 A CNB018176917 A CN B018176917A CN 01817691 A CN01817691 A CN 01817691A CN 1329846 C CN1329846 C CN 1329846C
Authority
CN
China
Prior art keywords
node
nodes
snoop filter
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.)
Expired - Fee Related
Application number
CNB018176917A
Other languages
English (en)
Other versions
CN1571958A (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

Classifications

    • 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/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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是用交换设备中的中央监听过滤器执行监听周期的方法的一种实施方案的流程图。交换设备包含一个中央监听过滤器。在块320执行监听过滤器查找以确定第二个结点中的高速缓冲存储器是否拥有与读请求对应的高速缓冲存储器行的副本。
图4是用交换设备中的中央监听过滤器执行包括监听周期的读事务的方法的一种实施方案的流程图。在块410,从第一个结点发出读请求到包含监听过滤器的交换设备。读请求要访问的是位于第二结点的存储区域。在块420执行监听过滤器查找,同时在块430从交换设备向第二结点发出投机性存储器读取。块440表示监听过滤器查找确定读请求所指定的存储器行是否被缓存在一个或多个结点上,然后在块450执行缓存行算法。上面结合力产已经讨论过这种类型的算法的实例。块440还指示监听过滤器查找确定读请求所指定的存储器行是否不被任意缓存代理所缓存,然后在块460从交换设备发送一个监听响应到第一个结点。同时,在块470从交换设备发送存储器读确认消息到第二个结点。最后,在块480从第二个结点把取到的数据通过交换设备发送给第一个结点。
至此已经在上述说明中关于示例性的实现描述了本发明。但是,很明显此外也可以在不偏离所附权利要求中提出的本发明的更宽的精神和范围的前提下对其进行不同的修改和变化。因此,这些说明和附图应该看作是说明性的而不是限制性的。
上述说明中提到的“实施方案”、“一种实施方案”、“一些实施方案”或“其它实施方案”意味着在本发明的至少一些但不必是全部实施方案中包括结合这些实施方案所描述的特定的特性、结构或特征。“实施方案”、“一种实施方案”或“其它实施方案”的多次出现并不一定都指的是相同的实施方案。

Claims (16)

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的方法,还包括在监听过滤器中指示发送的数据已经被第一个结点以排他状态缓存起来。
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 US6810467B1 (en) 2000-08-21 2000-08-21 Method and apparatus for centralized snoop filtering
US09/643,382 2000-08-21

Publications (2)

Publication Number Publication Date
CN1571958A CN1571958A (zh) 2005-01-26
CN1329846C true 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)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1255201B1 (en) * 2001-05-01 2009-12-23 Sun Microsystems, Inc. Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols
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
JP4956900B2 (ja) * 2005-03-07 2012-06-20 富士通株式会社 アドレススヌープ方法及びマルチプロセッサシステム
US7380071B2 (en) * 2005-03-29 2008-05-27 International Business Machines Corporation Snoop filtering system in a multiprocessor system
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
US7797495B1 (en) * 2005-08-04 2010-09-14 Advanced Micro Devices, Inc. Distributed directory cache
US8099556B2 (en) * 2005-09-13 2012-01-17 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
CN105095254B (zh) * 2014-05-07 2023-01-10 深圳市中兴微电子技术有限公司 一种实现数据一致性的方法及装置
CN104239270A (zh) * 2014-07-25 2014-12-24 浪潮(北京)电子信息产业有限公司 一种高速缓存同步的方法及装置
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
US10157133B2 (en) * 2015-12-10 2018-12-18 Arm Limited Snoop filter for cache coherency in a data processing system
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
US10769071B2 (en) * 2018-10-10 2020-09-08 Micron Technology, Inc. Coherent memory access
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
CN112612726B (zh) * 2020-12-08 2022-09-27 海光信息技术股份有限公司 基于缓存一致性的数据存储方法、装置、处理芯片及服务器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0817074A1 (en) * 1996-07-01 1998-01-07 Sun Microsystems, Inc. Multiprocessing system employing a three-hop communication protocol
CN1196530A (zh) * 1997-04-14 1998-10-21 国际商业机器公司 具有上级未定状态的高速缓存相干协议
US6088769A (en) * 1996-10-01 2000-07-11 International Business Machines Corporation Multiprocessor cache coherence directed by combined local and global tables

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0817074A1 (en) * 1996-07-01 1998-01-07 Sun Microsystems, Inc. Multiprocessing system employing a three-hop communication protocol
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
CN1196530A (zh) * 1997-04-14 1998-10-21 国际商业机器公司 具有上级未定状态的高速缓存相干协议

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
performance of pruning-cache directories for large-scalemultiprocessors Scott S L ET AL,IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS,Vol.4 No.5 1993 *

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1329846C (zh) 集中监听过滤的方法和设备
US6615319B2 (en) Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
US5604882A (en) System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system
US6115804A (en) Non-uniform memory access (NUMA) data processing system that permits multiple caches to concurrently hold data in a recent state from which data can be sourced by shared intervention
US8539164B2 (en) Cache coherency within multiprocessor computer system
RU2220444C2 (ru) Компьютерная система и способ передачи данных в компьютерной системе
JP3729891B2 (ja) マルチプロセッサコンピュータシステム
JP4712974B2 (ja) コヒーレンシ維持のための柔軟なプローブ/プローブ応答経路制御
US20080270708A1 (en) System and Method for Achieving Cache Coherency Within Multiprocessor Computer System
US6859864B2 (en) Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line
US6397302B1 (en) Method and apparatus for developing multiprocessor cache control protocols by presenting a clean victim signal to an external system
KR100234503B1 (ko) 디렉토리 기반의 캐시 코히어런스 프로토콜을 사용하는 멀티프로세서에서의 무효화 버스 최적화
US6266743B1 (en) Method and system for providing an eviction protocol within a non-uniform memory access system
KR20000052493A (ko) 공유된 개입 지원을 가지는 비균등 메모리 액세스 데이터처리 시스템
US20020087778A1 (en) Storing directory information for non uniform memory architecture systems using processor cache
US6226714B1 (en) Method for invalidating cache lines on a sharing list
KR20030024895A (ko) 캐시 코히어런트 멀티-프로세서 시스템에서 순서화된입출력 트랜잭션을 파이프라이닝하기 위한 방법 및 장치
US20050144390A1 (en) Protocol for maintaining cache coherency in a CMP
US6795900B1 (en) Method and system for storing data at input/output (I/O) interfaces for a multiprocessor system
US5680577A (en) Method and system for processing multiple requests for data residing at the same memory address
US6813694B2 (en) Local invalidation buses for a highly scalable shared cache memory hierarchy
US20210397560A1 (en) Cache stashing system
US5907853A (en) Method and apparatus for maintaining duplicate cache tags with selectable width
US20040030950A1 (en) Apparatus for imprecisely tracking cache line inclusivity of a higher level cache
US20030191905A1 (en) Remote node accessing local memory by using distributed shared memory

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