CN107038123A - 用于数据处理系统中的缓存一致性的探听过滤器 - Google Patents
用于数据处理系统中的缓存一致性的探听过滤器 Download PDFInfo
- Publication number
- CN107038123A CN107038123A CN201611040746.0A CN201611040746A CN107038123A CN 107038123 A CN107038123 A CN 107038123A CN 201611040746 A CN201611040746 A CN 201611040746A CN 107038123 A CN107038123 A CN 107038123A
- Authority
- CN
- China
- Prior art keywords
- data
- snoop filter
- caching
- dirty
- node
- 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
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
-
- 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/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
Abstract
本公开涉及用于数据处理系统中的缓存一致性的探听过滤器。一种具有访问共享数据资源的两个或更多个处理器的数据处理系统及其操作方法被提供。本地缓存中存储的数据被标记为处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态。探听过滤器监视由处理器对共享数据资源的访问,并且包括被配置为维护缓存一致性的探听过滤器缓存和探听过滤器控制逻辑。探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识,使得探听过滤器缓存大小更小并且简化了探听控制逻辑。数据处理系统由硬件描述语言的指令来定义。
Description
技术领域
本公开涉及数据处理系统,更具体地涉及用于数据处理系统中的缓存一致性的探听过滤器。
背景技术
诸如片上系统(SoC)之类的数据处理系统可包含多个处理器核心、多个数据缓存、以及共享数据资源。例如在共享存储器系统中,每个处理器核心可对单个共享地址空间进行读和写。缓存一致性是包括一个或多个缓存以及不止一个装置共享单个缓存区中的数据的任何系统中存在的议题。包括多个缓存的系统存在两个潜在问题。第一,存储器可在缓存的装置已经取走复本之后(被另一装置)更新。此时,缓存内的数据是过期的或者无效的,并且不再包含最新的数据。第二,包括回写式缓存的系统必须对以下情形进行处理:其中,装置对本地缓存的复本进行写入,此时存储器不再包含最新的数据。读取存储器的第二装置将看到过期的(陈腐的)数据。
监视数据事务的探听过滤器可被用于确保缓存一致性。
发明内容
根据本发明的第一方面,提供一种数据处理系统中的数据传输的方法,该数据处理系统具有共享数据资源和多个节点的网络,共享数据资源能由网络中的多个请求节点经由网络的归属节点来进行访问,所述方法包括:响应于在归属节点处从多个请求节点中的第一请求节点接收的、针对存储在共享数据资源中的系统地址处的数据的读请求,确定所请求的数据是被存储在归属节点的缓存中还是被存储在多个请求节点中一个或多个第二请求节点的本地缓存中;当所请求的数据未被存储在归属节点的缓存中而是被存储在一个或多个第二请求节点的本地缓存中时,向一个或多个第二请求节点发送探听以请求所述数据;当响应于探听而数据被返回时,用返回的数据填充归属节点的缓存,在所述缓存中把该数据标记为“脏”,并且更新归属节点的探听过滤器以指示第一请求节点具有数据的复本;以及向第一请求节点转发返回的数据,当所请求的数据未被存储在归属节点的缓存中或者一个或多个第二请求节点的本地缓存中时,从共享数据资源取回所请求的数据;更新归属节点的探听过滤器以指示第一请求节点具有数据的复本;以及向第一请求节点转发所取回的数据,当所请求的数据被存储在归属节点的缓存中时,更新归属节点的探听过滤器以指示第一请求节点具有数据的复本;以及向第一请求节点转发所取回的数据。
根据本发明的第二方面,提供一种用于数据处理系统的探听过滤器,所述数据处理系统还包括:多个处理器,每个处理器具有本地缓存和缓存控制器;共享数据资源;以及系统缓存,其中探听过滤器监视由多个处理器对共享数据资源的访问,并且其中探听过滤器包括:探听过滤器控制逻辑,该探听过滤器控制逻辑能操作以与多个处理器的缓存控制器通信;以及探听过滤器缓存,该探听过滤器缓存能操作以针对多个处理器中的处理器的本地缓存中的每个数据块存储以下各项:标识数据块的标签;数据块处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态的指示;以及表明哪些本地缓存共享数据块的复本的存在性向量,其中探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识,并且其中探听过滤器控制逻辑被配置为执行如根据第一方面所述的方法。
根据本发明的第三方面,提供一种包括硬件描述语言的指令的非暂态计算机可读介质,所述指令定义如根据第二方面所述的数据处理系统。
根据本发明的第四方面,提供一种用于数据处理系统的探听过滤器,所述数据处理系统包括:多个处理器,每个处理器具有本地缓存和缓存控制器;共享数据资源;以及系统缓存,其中探听过滤器监视由多个处理器对所述共享数据资源的访问,其中来自共享数据资源的、存储在多个处理器中的处理器的本地缓存中的数据被标记为处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态,其中如果来自共享数据资源的、存储在所述系统缓存中的数据不与所述共享数据资源中的对应数据相匹配,则它被标记为处于“脏”状态,否则被标记为“干净”,并且其中探听过滤器包括:探听过滤器控制逻辑,该探听过滤器控制逻辑能操作以与多个处理器的缓存控制器通信;以及探听过滤器缓存,该探听过滤器缓存能操作以针对多个处理器中的处理器的本地缓存中的每个数据块存储以下各项:标识数据块的标签;数据块处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态的指示;以及表明哪些本地缓存共享数据块的复本的存在性向量,其中探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识。
根据本发明的第五方面,提供一种包括硬件描述语言的指令的非暂态计算机可读介质,所述指令定义如根据第四方面所述的数据处理系统。
根据本发明的第六方面,提供一种数据处理系统,包括:多个处理器,每个处理器具有本地缓存和缓存控制器,其中被存储在多个处理器中的处理器的本地缓存中的数据被标记为处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态;系统缓存,其中如果被存储在所述系统缓存中的数据不与共享数据资源中的对应数据相匹配,则它被标记为处于“脏”状态,否则被标记为“干净”,其中共享数据资源能由多个处理器访问;以及探听过滤器,该探听过滤器监视由所述多个处理器对共享数据资源的访问,其中,探听过滤器包括:探听过滤器控制逻辑,该探听过滤器控制逻辑能操作以与多个处理器的缓存控制器通信;以及探听过滤器缓存,该探听过滤器缓存能操作以针对多个处理器中的处理器的本地缓存中的每个数据块存储以下各项:标识数据块的标签;数据块处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态的指示;以及表明哪些本地缓存共享数据块的复本的存在性向量,其中探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识。
根据本发明的第七方面,提供一种包括如根据第六方面所述的数据处理系统的片上系统。
根据本发明的第八方面,提供一种包括硬件描述语言的指令的非暂态计算机可读介质,所述指令定义如第六方面所述的数据处理系统。
附图说明
附图提供了可视表示,它们将被用于更全面地描述各种代表性实施例,并且可被本领域技术人员用来更好地理解所公开的代表性实施例及其内在的优点。在这些视图中,相同的标号表示相应的元素。
图1是根据各种代表性实施例的数据处理系统的框图。
图2示出根据各种代表性实施例的缓存一致性模型的状态。
图3是数据缓存一致性数据处理系统的探听过滤器的框图。
图4是根据各种代表性实施例的数据缓存一致性数据处理系统的探听过滤器的框图。
图5是根据各种代表性实施例的操作数据缓存一致性数据处理系统的探听过滤器的操作方法的流程图。
具体实施方式
虽然本发明易有许多不同形式的实施例,但在附图中示出并且将在此详细描述具体实施例。应理解,本公开应被认为是本发明的原理的示例,并不意欲将本发明限制于所示和所述的具体实施例。在下面的描述中,附图中的若干视图中相同的标号被用于描述相同、相似或相应的部件。
在本文中,诸如第一和第二、上和下等关系术语可被仅用来把一个实体或动作与另一实体或动作区分开,而并非必要地要求或暗示这些实体或动作之间存在任何实际的这种关系或顺序。术语“包括”、“包含”或其任何其他变型意在覆盖非排他性的包括,诸如包括列出的元素的过程、方法、物品或设备并不是仅包括那些元素,而是可以包括其他未被明确列出的元素或者这些过程、方法、物品或设备固有的元素。冠以“包括”的元素在没有更多限制的情况下并不排除在包括此元素的过程、方法、物品或设备中还存在另外的等同元素。
贯穿本文对“一个实施例”、“某些实施例”、“实施例”或类似术语的提及意味着结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,这种短语的出现或者在本说明书的各处出现这种短语并不一定全部都指相同的实施例。此外,特定特征、结构或特性可以不受限制地以任何适当方式组合在一个或多个实施例中。
如在此所使用的术语“或”应被解释为包括性的或者意味着任何一个或任何组合。因此,“A,B或C”指如下中的任一项:A;B;C;A和B;A和C;B和C;A,B和C。对此定义的例外仅当元件、功能、步骤或动作的组合以某种固有方式彼此互斥时才发生。
为了说明的简单和清楚,标号可能在各视图间被重复以指代相应或相似的元素。若干细节被提出以提供对在此所描述的实施例的理解。这些实施例可以在没有这些细节的情况下实施。在其他实例中,公知的方法、过程、组件并未详细描述,以避免模糊所描述的实施例。本文的说明不应被认为被限制于在此所描述的实施例的范围。
诸如片上系统(SoC)之类的数据处理系统可包含多个处理器核心、多个数据缓存、以及共享数据资源。图1是根据各种代表性实施例的数据处理系统100的框图。系统100例如可在片上系统(SoC)集成电路中实现。在图示的简化示例中,系统100被布置为具有经由互连电路连接在一起的若干功能块的网络。如图所示,功能块包括多个块102,各自包括共享L2缓存的(CPU的)处理核心的集群,每个处理核心具有它自己的L1缓存。可使用其它装置,例如图形应用单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、或专用集成电路(ASIC)装置。此外,可包括一个或多个I/O主控装置104。块102和104这里被称作请求节点(RN),其可生成对于数据事务(例如,“加载”和“存储”)的请求。请求节点是这些事务的端点。块102和104经由互连电路106被耦合至数据资源,数据资源经由归属节点(home node)108和存储器控制器110进行访问,归属节点108和存储器控制器110使得请求节点能够访问共享的主存储器112或者输入/输出装置。主存储器112可以在片上或者在芯片外部。块102生成数据访问请求并在这里被称作请求节点(RN)。装置108用作与多组数据地址相关联的数据块的归属点并在这里被称作归属节点(HN)。归属节点对来自请求节点的数据事务进行回应,并且作为响应可执行与其它功能块(例如,存储器控制器或者I/O装置)的数据事务。
注意,为了简洁起见,SoC中的许多元件(例如,时钟)在图1中已经被省略。
缓存一致性是包括一个或多个缓存以及不止一个装置共享单个缓存区中的数据的任何系统中存在的议题。包括多个缓存的系统存在两个潜在问题。第一,存储器可在缓存的装置已经取走复本之后(被另一装置)更新。此时,缓存内的数据是过期的或者无效的,并且不再包含最新的数据。第二,包括回写式缓存的系统必须对以下情形进行处理:其中,装置对本地缓存的复本进行更新,此时存储器不再包含最新的数据。读取存储器的第二装置将看到过期的(陈腐的)数据。缓存一致性可通过探听过滤器的使用来维持。
当多个RN共享数据或存储器资源时,一致性协议可被使用,并且节点可被称作完全一致的(例如,RN-F和HN-F)或者I/O一致的(例如,RN-I)。其它装置可提供到另一集成电路(例如,RN-C和HN-C)的连接。为了维持一致性,每个RN包括缓存控制器114,该缓存控制器接受来自处理器核心的加载和存储指令。缓存控制器114还发出一致性请求并且经由互连电路106从其它节点接收响应。
归属节点108包括系统缓存116。这里,系统缓存116被称作L3缓存,然而其它级别的缓存可被使用。例如,在具有多个缓存的系统中,缓存116可以是最低一级或最后一级的缓存(LLC)。为了避免请求节点102的缓存控制器114之间的过多消息交换,归属节点108还包括探听过滤器400来监视数据事务并且维持在系统缓存116中存储的数据的状态以及操作来维持系统的各个缓存中的数据的一致性。归属节点一般提供对于诸如存储器或I/O装置之类的数据资源的接口。归属节点用作一致性点,因为它发出一致性响应并且经由互连电路106从其它节点接收一致性请求。归属节点是中间节点:它对来自请求节点的数据事务请求做出回应,并且能够向诸如存储器控制器之类的其它装置发出数据事务请求。因此,归属节点可用作请求节点和存储器之间的中间节点,并且可包括用于数据的临时存储的缓存。归属节点的探听过滤器充当缓存控制器和一致性点。由于针对共享数据资源中给定组的存储器地址的存储器访问通过相同的归属节点,归属节点能够监视或者“探听”事务并且确定所请求的数据应当从主存储器中取回,从归属节点的缓存中取回,还是从一个请求节点的本地缓存中取回。
总之,探听过滤器400和缓存控制器114监视数据事务并且交换消息以确保缓存一致性。为了维持各个本地缓存中的数据一致性,每个缓存行或缓存块的状态被跟踪。例如,如果本地缓存(例如,缓存114)中的数据是最新的但是不与存储器或最低级别缓存中的数据相匹配,则它被称为处于“脏”状态。否则,数据被称为是“干净”的。缓存一致性协议可采用MOESI缓存一致性模型,其中缓存数据可处于若干状态中的一种状态。这些状态是:已修改(M)、已拥有(O)、独占(E)、共享(S)、和无效(I)。
已修改数据(也叫做“独有脏”(UD)数据)不被其它缓存共享。本地缓存中的已修改数据已经被装置更新,但还没有被回写到存储器,所以它是“脏”的。已修改数据是独占并且已拥有的。本地缓存仅具有数据的有效复本。
已拥有数据(也叫做“共享脏”(SD)数据)被其它缓存共享。它还没有被回写到存储器,所以它是“脏”的。
独占数据(也叫做“独有干净”(UC)数据)不是共享的并且匹配存储器中的对应数据。
共享数据(也叫做“共享干净”(SC)数据)是共享的并且匹配存储器中的对应数据。共享数据不是独占的,不是脏的,并且不是已拥有的。
无效数据是已经在存储器和/或另一缓存中被更新的数据,所以是过期的。有效数据是最新的数据。它可被读取,但是如果它也是独占的,则它仅可被写入。
图2示出了MOESI缓存一致性模型下的各种数据状态。本地缓存中存储的有效数据可以是干净的或脏的,独有的或共享的,本文给出了四种可能的有效状态。在MESI模型中,“已拥有”状态被省略并且共享的数据作为干净数据进行维护。
图3是采用MOESI缓存一致性模型的探听过滤器300的框图。探听过滤器300包括探听过滤器缓存302和探听过滤器控制逻辑304,该探听过滤器控制逻辑生成输出的探听信号306。输出的探听信号306可被定向至特定节点、至多个节点的子集(多播)、或者至所有节点(广播),从而与其它节点处的缓存控制器通信。探听信号可以是对于与特定地址相关联的数据的请求。这样的探听信号被简称做“探听(snoop)”。探听过滤器缓存302包括与系统中缓存的数据相关联的若干记录308。每个记录308包括标签字段310(标识相关联的数据)、指示数据的MOESI状态的缓存一致性状态字段312、标识任何共享脏(SD)数据或已拥有数据的拥有者的RNF-ID字段314、以及存在性向量316。存在性向量316包含指示系统中的哪些节点在它们的本地缓存中具有该数据的比特位。因此,此类探听过滤器在字段314中除了保持对于共享脏(SD)数据的所有共享者的跟踪之外还可保持对于该数据的拥有者的跟踪。SD数据的拥有者是诸如针对CPU集群、GPU、DSP的请求节点等等的装置。对拥有者的跟踪除了使用相关联的逻辑之外还可使用探听过滤器中的标签存储)。
在MOESI缓存一致性模型中,探听过滤器必须跟踪哪个节点是SD(共享脏)数据的拥有者。就是说,探听过滤器中在多个RNF(例如,多个CPU集群)之间共享的数据。这例如通过表1中的一系列操作来示出。
表1
... | 操作(节点) | RNF0 | RNF1 | 系统缓存 | SF状态 | SF存在性 | SF SD RNFID |
1 | 独有读(0) | UD | -- | -- | UC | 01 | -- |
2 | 读(1) | SD | SC | 干净 | SD | 11 | RNF0 |
3 | 回写(0) | I | SC | 脏 | SC | 10 | -- |
在此示例中,请求节点RNF0执行对于(地址A处的)一致性存储器的可缓存存储,并然后执行表1的第1行处的独有读(ReadUnique)操作以获得对于行的独占拥有权,并且在RNF0缓存(例如,它的L1或L2缓存)中把该行安装以脏(UD)状态。该事务将在HNF探听过滤器中把RNF0标记为地址A的独占拥有者。探听过滤器把数据记录为独有干净(UC)并且更新存在性向量(SF存在性)以指示RNF0具有数据的复本。
接下来,在第2行处,另一请求节点RNF1执行对于相同存储器位置(地址A)的可缓存读取。这使得HNF探听过滤器向RNF0发送对于地址A的探听,因为探听过滤器指示该数据在RNF0的缓存中。探听过滤器中的状态被更新为“SD”,并且数据的标识符(SD RNFID)被更新为RNF0。注意,系统缓存被填充并且系统缓存中的数据被标记为“干净”。SF指示存在具有脏数据的上游缓存(在此情形中,RNF0)。该SD标记要求探听过滤器中的(如图3中的字段314所指示的)额外存储。
响应于该探听,RNF0把它的缓存中的数据降级为状态SD(也在表的第2行中)并且提供数据和探听响应。RNF1接收处于SC状态的缓存数据(通过互连或者直接从RNF0接收)。
此时,HNF探听过滤器将把RNF0和RNF1二者标记为缓存数据的共享者,如表的第2行中的SF存在性向量所示。
任何其它RNF对地址A的任何其它一致性读操作将向RNF0发送探听来取得数据。
如表1的第3行所示,来自RNF0的后续回写清除了SF中的存在性并且将把数据安装在系统缓存中,被标记为“脏”。
如果探听过滤器不具有RNF0的SD标记,则HNF必须对地址A的所有共享者进行探听直至一个RNF被发现能够提供数据。如果不能够提供数据,该数据经由存储器控制器(MC)来获得。对共享者的探听可通过以下方式来执行:向所有共享者广播针对一致性读取的探听,或者逐一地探听共享者直至发现一个提供数据的RNF。类似地,例如共享干净CMO和永久CMO之类的其它操作可生成广播探听。
上面描述的MOESI缓存一致性协议的一个问题是“共享脏”(SD)跟踪要求探听过滤器标签中除了跟踪RNF存在性向量之外的额外存储。
根据本公开的各种实施例,提供了在探听过滤器中不跟踪已拥有或“共享脏”(SD)状态的一种探听过滤器。然而,探听过滤器可与使用MOESI缓存一致性模型的装置进行操作。存储于缓存中并且在缓存之间传送的数据被标记以MOESI状态,但是SD数据的拥有者未记录在探听过滤器中。
图4是根据各种实施例的探听过滤器200的框图。过滤器被配置为使用遵循MOESI或MESI模型的数据状态来运行。探听过滤器200包括探听过滤器缓存402和探听过滤器控制逻辑404,该探听过滤器控制逻辑生成输出的探听命令406。输出的探听命令406可被定向至特定节点、至多个节点的子集、或者至所有节点,从而使得其它节点处的探听过滤器能够被维持。探听过滤器缓存402包括与系统中缓存的数据行相关联的若干记录408。每个记录408包括标签字段410(标识数据块)、仅指示数据行的MESI状态的缓存一致性状态字段412、以及存在性向量414。存在性向量414包含指示系统中的哪些节点在它们的本地缓存中具有该数据行的比特位。与图3中的探听过滤器相比,不要求RNF-ID字段314和相关联的逻辑。
系统(例如,图1中所示的系统)通常以模块化的方式来构造并且由可被独立设计和测试的功能逻辑块建成。这些块到块之间的耦合是通过定义标准接口和接口协议来辅助的。当协议被修改或者新的协议被引入时,该协议提供与先前协议的后向兼容从而使得先前设计的功能逻辑块能够被重复使用是有利的。
例如,请求节点中的缓存控制器(图1中的114)可使用MOESI缓存一致性模型,但是它可能期望它可与不跟踪处于SD状态中的数据的拥有者的归属节点和互连一起操作。
根据各种实施例,提供了不要求针对“共享脏”(SD)缓存数据使用RNF-ID字段但是可与使用MOESI缓存一致性模型的装置兼容的探听过滤器。
根据各种实施例,数据处理系统的归属节点(HNF)具有探听过滤器和系统缓存。探听过滤器可与使用MOESI缓存一致性模型的装置相兼容,但是要求探听过滤器标签和探听过滤器控制中的逻辑或存储以实现SD跟踪。
图5是根据各种实施例的数据处理系统的完全一致的归属节点(HN-F)的探听过滤器的探听过滤器控制逻辑的操作方法的流程图500。如下,在块502处,从RN-F发送到HN-F的请求要访问系统存储器中的一地址处的数据,在块504处在HN-F的系统缓存和探听过滤器(SF)中查找该地址。如果请求是读请求(如来自判定块506的“读(READ)”分支所示),流程继续以判定块508。如果未在缓存中发现该地址(缓存“未命中”)(如来自判定块508的否定分支所示),流程继续到判定块510以根据探听过滤器确定任何其它缓存是否包括所请求的数据。如果未在探听过滤器中发现该地址(探听过滤器“未命中”)(如来自判定块510的否定分支所示),从存储器读取该数据的信号在块512处被发送至存储器控制器(MC),并且探听过滤器被更新。数据在块514处从存储器控制器被接收到并且在块516处被转发至请求RN-F。这就完成了响应,如块518所示。
如果在探听过滤器中发现该地址(探听过滤器“命中”)(如来自判定块510的肯定分支所示),数据被存储在RN-F缓存中,并且在块520处向对应的RN-F发送探听。探听被发送至共享数据的所有节点。如果对于该探听的响应未能返回所请求的数据(如来自判定块522的否定分支所示),流程继续至块512以使用存储器控制器从存储器取回数据。如果RN-F响应于该探听而提供了数据(如来自判定块522的肯定分支所示),则在块524处将数据存储在系统缓存中,并且缓存数据的状态在探听过滤器中被标记为“脏”。通过在块524处更新缓存,请求节点的本地缓存中的数据被保证是干净的,因此不需要识别共享脏数据的拥有者。流程然后继续至块516。任何后续读请求将不生成任何探听并且数据将从系统缓存来提供。数据的拥有者不被标记。
如果在缓存中发现该地址(缓存“命中”)(如来自判定块508的肯定分支所示),数据已经被存储在HN-F节点的系统缓存中。探听过滤器(SF)在块526处被更新以指示请求RN-F将具有数据的复本并且数据在块524处被转发至RN-F节点。
如果请求是回写请求(如来自判定块506的“WB”分支所示),流程继续至判定块530。如果回写数据的状态是干净(如来自判定块530的“干净(CLEAN)”分支所示)或者该状态是“独有脏”(如来自判定块532的“UD”分支所示)或者数据尚不在系统缓存中(如来自判定块534的否定分支所示),流程继续至块536,其中探听过滤器目录中的对应条目被清除并且数据被存储在系统缓存中且被标记为“干净”。如果回写数据的状态是“共享脏”并且已经在系统缓存中(如来自判定块534的肯定分支所示),则探听过滤器目录中的对应条目被清除并且数据不被写入到系统缓存。此方式确保存储器仅被写入一次。不利地,如果“脏”数据被存储在缓存中,HN-F将会需要执行到存储器的额外回写。这不再被需要,因此避免了不必要的存储器控制流量。
图5中所示的方法避免了广播探听或者在转到存储器控制器之前逐一地探听RN-F直至一个RN-F被发现的复杂控制逻辑。
上述机制使得探听过滤器标签存储能够被减少,并且另外减少了在一些情形中利用CMO操作的广播探听的数量。
表2示出了一系列操作和结果的状态的示例。在此示例中,请求节点RNF0执行对于(地址A处的)一致性存储器的可缓存存储,并然后执行表2的第1行处的独有读操作以获得对于行的独占拥有权,并且在RNF0缓存(例如,它的L1或L2缓存)中把该行安装以脏(UD)状态。探听过滤器把数据记录为独有干净(UC)并且更新存在性向量(SF存在性)以指示RNF0具有数据的复本。
接下来,在第2行处,另一请求节点RNF1执行对于相同存储器位置(地址A)的可缓存读取。这使得HNF探听过滤器向RNF0发送对于地址A的探听,因为探听过滤器存在性向量指示该数据在RNF0的缓存中。探听过滤器中的状态被更新为“SC”,但是未记录拥有者的标识符。响应于该探听,RNF0把它的缓存中的数据降级为状态SD(也在表的第2行中)并且提供数据和探听响应。RNF1接收处于SC状态的缓存数据(通过互连或者直接从RNF0接收)。
系统缓存被填充并且系统缓存中的数据被标记为“脏”,因为归属节点确定数据存储RNF0现在应当是SD状态。此时,HNF探听过滤器将把RNF0和RNF1二者标记为缓存数据的共享者,如表的第2行中的SF存在性向量所示。
由任何其它RNF对地址A的任何其它一致性读操作将向RNF0和/或RNF1发送探听来取得数据,因为二者在SF存在性向量中被指示为共享者。
当从RNF0接收到后续的回写请求时发生什么是根据对应的数据是否保留于归属节点的系统缓存中或者它是否已经被从缓存中驱逐来确定。如果被驱逐,则数据将已经被回写到存储器中,因为它被标记为“脏”。
表2的第3行显示当在数据已经被从系统缓存中驱逐之后从RNF0接收到后续的回写请求时发生了什么。回写请求再次指示来自RNF0的数据处于SD状态。探听过滤器状态是SC,这向探听过滤器控制逻辑指示系统缓存先前持有数据的“脏”复本并且已经将它驱逐至存储器。因为存储器已经被更新,所以没有意图在系统缓存中保存处于“脏”状态的数据。因而,系统缓存被填充以“干净”。SF中的存在性向量被更新以指示RNF0不再共享该数据并且该数据被存储在系统缓存中并且被标记为“脏”。RNF0把它的本地缓存中该数据的状态更新为“无效”。
表2的第4行显示当在数据已经被从系统缓存中驱逐之前从RNF0接收到后续的回写请求时发生了什么。探听控制器确定数据已在系统缓存中处于“脏”状态,所以数据被丢弃并且不对缓存做出任何改变。探听过滤器存在性向量被更新以指示RNF0不再共享该数据。RNF0把它的本地缓存中该数据的状态更新为“无效”。
表2
在上文描述的方法中,未使用探听过滤器状态“SD”并且拥有者ID未被探听过滤器记录或跟踪,从而减少了探听过滤器缓存的大小并且简化了探听过滤器控制逻辑。
将会认识到,这里描述的一些或全部功能可以通过没有存储程序指令的状态机(例如,定制逻辑)实现,被实现于一个或多个专用集成电路(ASIC)中、诸如FPGA之类的可重配置逻辑中、或者具有存储的指令的一个或多个编程的处理器中。当然,也可使用这些方法的组合。因此,这里已经描述了这些功能的方法和装置。此外,预期到本领域技术人员在此所公开的概念和原理的教导下虽然受某些因素(例如,可用时间、当前技术、经济考量)驱动而可能需要大量努力和许多设计选择但将能够容易地用最少的实验生成这样的集成电路、软件指令和程序。
如这里所用,术语处理器、控制器等等可涵盖处理器、控制器、微控制器单元(MCU)、微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)装置、存储器控制器、或者I/O主控装置。
本领域技术人员将会认识到本发明已经结合示例性实施例而被描述,但是它不被如此限制。本发明可以使用硬件组件来实现,诸如与所描述并要求保护的公开等同的专用硬件和/或专用处理器。类似地,通用计算机、基于微处理器的计算机、微控制器、光学计算机、模拟计算机、专用处理器和/或专用硬连线逻辑可用于构建本公开的实施例的等同替换。
此外,本领域技术人员将认识到用于实现上述实施例的程序流和关联数据可以使用各种形式的存储装置来实现,例如,只读存储器(ROM)、随机存储存储器(RAM),电可擦除可编程只读存储器(EEPROM);非易失性存储器(NVM);如硬盘驱动,软盘驱动,光盘驱动的海量存储装置、光存储元件、磁存储元件、磁光存储元件、闪存、核心存储器和/或不脱离本发明的其他等同存储技术。这些替代存储装置应被认为是等同的。
在此描述的各种实施例利用运行编程指令的编程的处理器来实施,其中编程指令以流程图的形式被广义的描述并且可被存储在任何适当电子存储介质上或通过任何适当电子通信介质被传输。然而,本领域技术人员将会认识到上述处理可以在任何数量的变体中以及以许多适当编程语言来实现,而不脱离本发明。例如,在不脱离本发明的情况下,所执行的某些操作的顺序通常可被改变,另外的操作可被增加,或者操作可被删除。错误捕获可被添加和/或增强,并且在用户界面和信息呈现方面也可做出变型,而不脱离本发明。这些变型是可预期的并被认为是等同的。
相应地,所公开的实施例的一些方面和特征在下面编号的项目中被给出。
1.一种数据处理系统中的数据传输的方法,该数据处理系统具有共享数据资源和多个节点的网络,共享数据资源能由网络中的多个请求节点经由网络的归属节点来进行访问,方法包括:
响应于在归属节点处从多个请求节点中的第一请求节点接收的、针对存储在共享数据资源中的系统地址处的数据的读请求,
确定所请求的数据是被存储在归属节点的缓存中还是被存储在多个请求节点中一个或多个第二请求节点的本地缓存中;
当所请求的数据未被存储在归属节点的缓存中而是被存储在一个或多个第二请求节点的本地缓存中时,
向一个或多个第二请求节点发送探听以请求数据;
当响应于探听而数据返回时,用返回的数据填充归属节点的缓存,在缓存中把该数据标记为“脏”,并且更新归属节点的探听过滤器以指示第一请求节点具有数据的复本;以及
向第一请求节点转发返回的数据,
当所请求的数据未被存储在归属节点的缓存中或者一个或多个第二请求节点的本地缓存中时,
从共享数据资源取回所请求的数据;
更新归属节点的探听过滤器以指示第一请求节点具有数据的复本;以及
向第一请求节点转发所取回的数据,
当所请求的数据被存储在归属节点的缓存中时,
更新归属节点的探听过滤器以指示第一请求节点具有数据的复本;以及
向第一请求节点转发所取回的数据。
2.如项目1的方法,其中被转发至第一请求节点的数据被标记为处于“独有脏”状态。
3.如项目1的方法,其中存储在多个请求节点的本地缓存中的数据被标记为处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态。
4.如项目3的方法,其中第一请求节点的本地缓存中的数据被标记为处于“共享脏”状态,并且其中探听过滤器不标识第一请求节点。
5.如项目1的方法,其中更新归属节点的探听过滤器以指示第一请求节点具有数据的复本包括:更新探听过滤器中的存在性向量。
6.如项目1的方法,其中向一个或多个第二请求节点发送探听以请求数据使得第二请求节点把它的本地缓存中的数据从“UD”状态更新为“SD”状态。
7.如项目1的方法,还包括:
响应于在归属节点处从多个请求节点中的第一请求节点接收的、请求回写数据存储至共享数据资源中的系统地址的回写请求,
确定回写数据的状态;
当数据的状态处于“干净”或“独有”状态时或者当归属节点的缓存中未存储与系统地址相关联的任何数据时,把回写数据作为“干净”数据存储在归属节点的缓存中;
当与系统地址相关联的数据已被存储在归属节点的缓存中时,丢弃回写数据而无需把它存储在归属节点的缓存中;以及
更新探听过滤器中的存在性向量。
8.如项目7的方法,还包括:当归属节点的缓存中被标记为“脏”的数据被从归属节点的缓存中驱逐时,把数据回写至共享数据资源。
9.如项目7的方法,还包括:多个请求节点中的第一请求节点在它的本地缓存中把要回写的数据的复本标记为“无效”。
10.一种用于数据处理系统的探听过滤器,数据处理系统还包括:
多个处理器,每个处理器具有本地缓存和缓存控制器;
共享数据资源;以及
系统缓存,
其中探听过滤器监视由多个处理器对共享数据资源的访问,并且其中探听过滤器包括:
探听过滤器控制逻辑,该探听过滤器控制逻辑能操作以与多个处理器的缓存控制器通信;以及
探听过滤器缓存,该探听过滤器缓存能操作以针对多个处理器中的处理器的本地缓存中的每个数据块存储以下各项:
标识数据块的标签;
数据块处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态的指示;以及
表明哪些本地缓存共享数据块的复本的存在性向量,
其中探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识,并且其中探听过滤器控制逻辑被配置为执行如项目7的方法。
11.一种包括硬件描述语言的指令的非暂态计算机可读介质,指令定义如项目10的数据处理系统。
12.如项目1的方法,其中从共享数据资源取回所请求的数据包括:
探听过滤器的控制器经由互连电路向存储器控制器发送读请求;
存储器控制器访问存储器中系统地址处存储的数据;以及
存储器控制器经由互连电路向归属节点返回所访问的数据。
13.一种用于数据处理系统的探听过滤器,数据处理系统包括:
多个处理器,每个处理器具有本地缓存和缓存控制器;
共享数据资源;以及
系统缓存,
其中探听过滤器监视由多个处理器对共享数据资源的访问,
其中来自共享数据资源的、存储在多个处理器中的处理器的本地缓存中的数据被标记为处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态,
其中如果来自共享数据资源的、存储在系统缓存中的数据不与共享数据资源中的对应数据相匹配,则它被标记为处于“脏”状态,否则被标记为“干净”,并且
其中探听过滤器包括:
探听过滤器控制逻辑,该探听过滤器控制逻辑能操作以与多个处理器的缓存控制器通信;以及
探听过滤器缓存,该探听过滤器缓存能操作以针对多个处理器中的处理器的本地缓存中的每个数据块存储以下各项:
标识数据块的标签;
数据块处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态的指示;以及
表明哪些本地缓存共享数据块的复本的存在性向量,
其中探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识。
14.一种包括硬件描述语言的指令的非暂态计算机可读介质,指令定义如项目13的数据处理系统。
15.一种数据处理系统,包括:
多个处理器,每个处理器具有本地缓存和缓存控制器,其中被存储在多个处理器中处理器的本地缓存中的数据被标记为处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态;
系统缓存,其中如果被存储在系统缓存中的数据不与共享数据资源中的对应数据相匹配,则它被标记为处于“脏”状态,否则被标记为“干净”,其中共享数据资源能由多个处理器访问;以及
探听过滤器,该探听过滤器监视由多个处理器对共享数据资源的访问,
其中,探听过滤器包括:
探听过滤器控制逻辑,该探听过滤器控制逻辑能操作以与多个处理器的缓存控制器通信;以及
探听过滤器缓存,该探听过滤器缓存能操作以针对多个处理器中处理器的本地缓存中的每个数据块存储以下各项:
标识数据块的标签;
数据块处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态的指示;以及
表明哪些本地缓存共享数据块的复本的存在性向量,
其中探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识。
16.如项目15的数据处理系统,其中数据处理系统由集成电路组成。
17.如项目15的数据处理系统,还包括存储器控制器,其中共享数据资源包括能经由存储器控制器访问的存储器。
18.如项目15的数据处理系统,还包括互连电路,其中数据处理系统被配置为由互连电路耦合的节点的网络,其中:
网络的请求节点包括多个处理器中的处理器,并且具有其本地缓存和缓存控制器;并且
网络的归属节点包括探听过滤器和系统缓存。
19.一种包括如项目15的数据处理系统的片上系统。
20.一种包括硬件描述语言的指令的非暂态计算机可读介质,指令定义如项目15的数据处理系统。
在此已经详细描述的各种代表性实施例已经通过示例而非限制的方式被呈现。本领域技术人员将会理解在所描述的实施例的形式和细节上可以做出各种带来在所附权利要求的范围内的等同实施例的改变。
Claims (20)
1.一种数据处理系统中的数据传输的方法,该数据处理系统具有共享数据资源和多个节点的网络,所述共享数据资源能由所述网络中的多个请求节点经由所述网络的归属节点来进行访问,所述方法包括:
响应于在所述归属节点处从所述多个请求节点中的第一请求节点接收的、针对存储在所述共享数据资源中的系统地址处的数据的读请求,
确定所请求的数据是被存储在所述归属节点的缓存中还是被存储在所述多个请求节点中一个或多个第二请求节点的本地缓存中;
当所请求的数据未被存储在所述归属节点的缓存中而是被存储在一个或多个第二请求节点的本地缓存中时,
向所述一个或多个第二请求节点发送探听以请求所述数据;
当响应于所述探听而数据被返回时,用返回的数据填充所述归属节点的缓存,在所述缓存中把该数据标记为“脏”,并且更新所述归属节点的探听过滤器以指示所述第一请求节点具有所述数据的复本;以及
向所述第一请求节点转发所述返回的数据,
当所请求的数据未被存储在所述归属节点的缓存中或者一个或多个第二请求节点的本地缓存中时,
从所述共享数据资源取回所请求的数据;
更新所述归属节点的探听过滤器以指示所述第一请求节点具有所述数据的复本;以及
向所述第一请求节点转发所取回的数据,
当所请求的数据被存储在所述归属节点的缓存中时,
更新所述归属节点的探听过滤器以指示所述第一请求节点具有所述数据的复本;以及
向所述第一请求节点转发所取回的数据。
2.如权利要求1所述的方法,其中被转发至所述第一请求节点的所述数据被标记为处于“独有脏”状态。
3.如权利要求1所述的方法,其中存储在所述多个请求节点的本地缓存中的数据被标记为处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态。
4.如权利要求3所述的方法,其中所述第一请求节点的本地缓存中的数据被标记为处于“共享脏”状态,并且其中所述探听过滤器不标识所述第一请求节点。
5.如权利要求1所述的方法,其中更新所述归属节点的探听过滤器以指示所述第一请求节点具有所述数据的复本包括:更新所述探听过滤器中的存在性向量。
6.如权利要求1所述的方法,其中向所述一个或多个第二请求节点发送探听以请求所述数据使得第二请求节点把它的本地缓存中的数据从“独有脏”状态更新为“共享脏”状态。
7.如权利要求1所述的方法,还包括:
响应于在所述归属节点处从所述多个请求节点中的第一请求节点接收的、请求回写数据存储至所述共享数据资源中的系统地址的回写请求,
确定回写数据的状态;
当所述数据的状态处于“干净”或“独有”状态时或者当所述归属节点的缓存中未存储与所述系统地址相关联的任何数据时,把所述回写数据作为“干净”数据存储在所述归属节点的缓存中;
当与所述系统地址相关联的数据已被存储在所述归属节点的缓存中时,丢弃所述回写数据而无需把它存储在所述归属节点的缓存中;以及
更新所述探听过滤器中的存在性向量。
8.如权利要求7所述的方法,还包括:当所述归属节点的缓存中被标记为“脏”的数据被从所述归属节点的缓存中驱逐时,把所述数据回写至所述共享数据资源。
9.如权利要求7所述的方法,还包括:所述多个请求节点中的所述第一请求节点在它的本地缓存中把要回写的数据的复本标记为“无效”。
10.一种用于数据处理系统的探听过滤器,所述数据处理系统还包括:
多个处理器,每个处理器具有本地缓存和缓存控制器;
共享数据资源;以及
系统缓存,
其中所述探听过滤器监视由所述多个处理器对所述共享数据资源的访问,并且其中所述探听过滤器包括:
探听过滤器控制逻辑,该探听过滤器控制逻辑能操作以与所述多个处理器的缓存控制器通信;以及
探听过滤器缓存,该探听过滤器缓存能操作以针对所述多个处理器中的处理器的本地缓存中的每个数据块存储以下各项:
标识所述数据块的标签;
所述数据块处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态的指示;以及
表明哪些本地缓存共享所述数据块的复本的存在性向量,
其中所述探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识,并且其中所述探听过滤器控制逻辑被配置为执行如权利要求7所述的方法。
11.一种包括硬件描述语言的指令的非暂态计算机可读介质,所述指令定义如权利要求10所述的数据处理系统。
12.如权利要求1所述的方法,其中从所述共享数据资源取回所请求的数据包括:
所述探听过滤器的控制器经由互连电路向存储器控制器发送读请求;
所述存储器控制器访问存储器中所述系统地址处存储的数据;以及
所述存储器控制器经由所述互连电路向所述归属节点返回所访问的数据。
13.一种用于数据处理系统的探听过滤器,所述数据处理系统包括:
多个处理器,每个处理器具有本地缓存和缓存控制器;
共享数据资源;以及
系统缓存,
其中所述探听过滤器监视由所述多个处理器对所述共享数据资源的访问,
其中来自所述共享数据资源的、存储在所述多个处理器中的处理器的本地缓存中的数据被标记为处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态,
其中如果来自所述共享数据资源的、存储在所述系统缓存中的数据不与所述共享数据资源中的对应数据相匹配,则它被标记为处于“脏”状态,否则被标记为“干净”,并且
其中所述探听过滤器包括:
探听过滤器控制逻辑,该探听过滤器控制逻辑能操作以与所述多个处理器的缓存控制器通信;以及
探听过滤器缓存,该探听过滤器缓存能操作以针对所述多个处理器中的处理器的本地缓存中的每个数据块存储以下各项:
标识所述数据块的标签;
所述数据块处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态的指示;以及
表明哪些本地缓存共享所述数据块的复本的存在性向量,
其中所述探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识。
14.一种包括硬件描述语言的指令的非暂态计算机可读介质,所述指令定义如权利要求13所述的数据处理系统。
15.一种数据处理系统,包括:
多个处理器,每个处理器具有本地缓存和缓存控制器,其中被存储在所述多个处理器中的处理器的本地缓存中的数据被标记为处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态;
系统缓存,其中如果被存储在所述系统缓存中的数据不与共享数据资源中的对应数据相匹配,则它被标记为处于“脏”状态,否则被标记为“干净”,其中所述共享数据资源能由所述多个处理器访问;以及
探听过滤器,该探听过滤器监视由所述多个处理器对所述共享数据资源的访问,
其中,所述探听过滤器包括:
探听过滤器控制逻辑,该探听过滤器控制逻辑能操作以与所述多个处理器的缓存控制器通信;以及
探听过滤器缓存,该探听过滤器缓存能操作以针对所述多个处理器中的处理器的本地缓存中的每个数据块存储以下各项:
标识所述数据块的标签;
所述数据块处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态的指示;以及
表明哪些本地缓存共享所述数据块的复本的存在性向量,
其中所述探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识。
16.如权利要求15所述的数据处理系统,其中所述数据处理系统由集成电路组成。
17.如权利要求15所述的数据处理系统,还包括存储器控制器,其中所述共享数据资源包括能经由所述存储器控制器访问的存储器。
18.如权利要求15所述的数据处理系统,还包括互连电路,其中所述数据处理系统被配置为由所述互连电路耦合的节点的网络,其中:
所述网络的请求节点包括所述多个处理器中的处理器,并且具有其本地缓存和缓存控制器;并且
所述网络的归属节点包括所述探听过滤器和所述系统缓存。
19.一种包括如权利要求15所述的数据处理系统的片上系统。
20.一种包括硬件描述语言的指令的非暂态计算机可读介质,所述指令定义如权利要求15所述的数据处理系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/965,131 US10157133B2 (en) | 2015-12-10 | 2015-12-10 | Snoop filter for cache coherency in a data processing system |
US14/965,131 | 2015-12-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107038123A true CN107038123A (zh) | 2017-08-11 |
CN107038123B CN107038123B (zh) | 2021-11-30 |
Family
ID=59019266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611040746.0A Active CN107038123B (zh) | 2015-12-10 | 2016-11-10 | 用于数据处理系统中的缓存一致性的探听过滤器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10157133B2 (zh) |
KR (1) | KR20170069149A (zh) |
CN (1) | CN107038123B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019340A (zh) * | 2017-12-08 | 2019-07-16 | 北京新媒传信科技有限公司 | 数据存储/读取方法、装置及系统 |
CN110569105A (zh) * | 2019-08-14 | 2019-12-13 | 上海交通大学 | 分布式虚拟机自适应内存一致性协议及其设计方法、终端 |
CN112463652A (zh) * | 2020-11-20 | 2021-03-09 | 海光信息技术股份有限公司 | 基于缓存一致性的数据处理方法装置、处理芯片及服务器 |
CN112612726A (zh) * | 2020-12-08 | 2021-04-06 | 海光信息技术股份有限公司 | 基于缓存一致性的数据存储方法、装置、处理芯片及服务器 |
CN113495854A (zh) * | 2020-04-03 | 2021-10-12 | 阿里巴巴集团控股有限公司 | 主机-设备系统中实现或管理缓存一致性的方法和系统 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10496538B2 (en) | 2015-06-30 | 2019-12-03 | Veritas Technologies Llc | System, method and mechanism to efficiently coordinate cache sharing between cluster nodes operating on the same regions of a file or the file system blocks shared among multiple files |
US10157133B2 (en) | 2015-12-10 | 2018-12-18 | Arm Limited | Snoop filter for cache coherency in a data processing system |
US9900260B2 (en) | 2015-12-10 | 2018-02-20 | Arm Limited | Efficient support for variable width data channels in an interconnect network |
US9990292B2 (en) * | 2016-06-29 | 2018-06-05 | Arm Limited | Progressive fine to coarse grain snoop filter |
US10042766B1 (en) | 2017-02-02 | 2018-08-07 | Arm Limited | Data processing apparatus with snoop request address alignment and snoop response time alignment |
US10521112B2 (en) | 2017-03-17 | 2019-12-31 | International Business Machines Corporation | Layered clustered scale-out storage system |
US10725915B1 (en) * | 2017-03-31 | 2020-07-28 | Veritas Technologies Llc | Methods and systems for maintaining cache coherency between caches of nodes in a clustered environment |
US10599567B2 (en) | 2017-10-06 | 2020-03-24 | International Business Machines Corporation | Non-coherent read in a strongly consistent cache system for frequently read but rarely updated data |
CN109725825B (zh) * | 2017-10-27 | 2022-03-11 | 伊姆西Ip控股有限责任公司 | 用于管理缓存的方法、设备和计算机程序产品 |
US10877836B2 (en) * | 2018-08-29 | 2020-12-29 | Arm Limited | Method and apparatus for coherent interconnect recovery with protocol layer re-transmission |
US11144459B2 (en) * | 2018-09-13 | 2021-10-12 | International Business Machines Corporation | Cache coherency adopted GPU shared memory |
US10776266B2 (en) * | 2018-11-07 | 2020-09-15 | Arm Limited | Apparatus and method of modification of stored data |
US10942865B2 (en) * | 2019-06-13 | 2021-03-09 | Arm Limited | Snooping with access permissions |
US11269773B2 (en) * | 2019-10-08 | 2022-03-08 | Arm Limited | Exclusivity in circuitry having a home node providing coherency control |
US11151039B2 (en) * | 2020-03-17 | 2021-10-19 | Arm Limited | Apparatus and method for maintaining cache coherence data for memory blocks of different size granularities using a snoop filter storage comprising an n-way set associative storage structure |
US11366750B2 (en) * | 2020-09-24 | 2022-06-21 | EMC IP Holding Company LLC | Caching techniques |
US11550720B2 (en) | 2020-11-24 | 2023-01-10 | Arm Limited | Configurable cache coherency controller |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030131202A1 (en) * | 2000-12-29 | 2003-07-10 | Manoj Khare | Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line |
US20030140200A1 (en) * | 2002-01-24 | 2003-07-24 | Sujat Jamil | Methods and apparatus for transferring cache block ownership |
CN1571958A (zh) * | 2000-08-21 | 2005-01-26 | 英特尔公司 | 集中监听过滤的方法和设备 |
US20060080512A1 (en) * | 2004-10-08 | 2006-04-13 | International Business Machines Corporation | Graphics processor with snoop filter |
CN1961297A (zh) * | 2004-06-02 | 2007-05-09 | 英特尔公司 | 在多处理器系统中无效数据转换缓冲区条目的机制 |
CN101097545A (zh) * | 2006-06-29 | 2008-01-02 | 英特尔公司 | 独占所有权探听过滤器 |
US20080215820A1 (en) * | 2004-04-07 | 2008-09-04 | Conway Patrick N | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer |
CN101601019A (zh) * | 2007-01-26 | 2009-12-09 | 高通股份有限公司 | 使用探听请求高速缓冲存储器的探听过滤 |
US20090327616A1 (en) * | 2008-06-30 | 2009-12-31 | Patrick Conway | Snoop filtering mechanism |
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
CN102929797A (zh) * | 2011-08-08 | 2013-02-13 | Arm有限公司 | 共享高速缓冲存储器控制 |
CN103136117A (zh) * | 2011-08-08 | 2013-06-05 | Arm有限公司 | 探听过滤器和非包含共享高速缓冲存储器 |
US20150127907A1 (en) * | 2013-11-04 | 2015-05-07 | Bahaa Fahim | Method, apparatus and system for handling cache misses in a processor |
CN105009101A (zh) * | 2013-03-15 | 2015-10-28 | 英特尔公司 | 提供与数据缓冲器相关联的监听滤波 |
Family Cites Families (102)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5924121A (en) | 1996-12-23 | 1999-07-13 | International Business Machines Corporation | Adaptive writeback of cache line data in a computer operated with burst mode transfer cycles |
US5966729A (en) | 1997-06-30 | 1999-10-12 | Sun Microsystems, Inc. | Snoop filter for use in multiprocessor computer systems |
US6058461A (en) | 1997-12-02 | 2000-05-02 | Advanced Micro Devices, Inc. | Computer system including priorities for memory operations and allowing a higher priority memory operation to interrupt a lower priority memory operation |
US6480927B1 (en) | 1997-12-31 | 2002-11-12 | Unisys Corporation | High-performance modular memory system with crossbar connections |
US6366989B1 (en) | 1998-09-17 | 2002-04-02 | Sun Microsystems, Inc. | Programmable memory controller |
US6571319B2 (en) | 1999-06-04 | 2003-05-27 | Sun Microsystems, Inc. | Methods and apparatus for combining a plurality of memory access transactions |
US6519685B1 (en) | 1999-12-22 | 2003-02-11 | Intel Corporation | Cache states for multiprocessor cache coherency protocols |
US6546447B1 (en) | 2000-03-30 | 2003-04-08 | International Business Machines Corporation | Method and apparatus for dynamic PCI combining for PCI bridges |
US6598123B1 (en) * | 2000-06-28 | 2003-07-22 | Intel Corporation | Snoop filter line replacement for reduction of back invalidates in multi-node architectures |
US6745297B2 (en) * | 2000-10-06 | 2004-06-01 | Broadcom Corporation | Cache coherent protocol in which exclusive and modified data is transferred to requesting agent from snooping agent |
US6868481B1 (en) | 2000-10-31 | 2005-03-15 | Hewlett-Packard Development Company, L.P. | Cache coherence protocol for a multiple bus multiprocessor system |
US6996674B2 (en) * | 2001-05-07 | 2006-02-07 | International Business Machines Corporation | Method and apparatus for a global cache directory in a storage cluster |
US6823409B2 (en) | 2001-09-28 | 2004-11-23 | Hewlett-Packard Development Company, L.P. | Coherency control module for maintaining cache coherency in a multi-processor-bus system |
US6898734B2 (en) | 2001-12-13 | 2005-05-24 | International Business Machines Corporation | I/O stress test |
US7673090B2 (en) * | 2001-12-19 | 2010-03-02 | Intel Corporation | Hot plug interface control method and apparatus |
US7117311B1 (en) * | 2001-12-19 | 2006-10-03 | Intel Corporation | Hot plug cache coherent interface method and apparatus |
US6912612B2 (en) | 2002-02-25 | 2005-06-28 | Intel Corporation | Shared bypass bus structure |
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 |
US6976132B2 (en) * | 2003-03-28 | 2005-12-13 | International Business Machines Corporation | Reducing latency of a snoop tenure |
GB2403561A (en) | 2003-07-02 | 2005-01-05 | Advanced Risc Mach Ltd | Power control within a coherent multi-processor system |
US7325102B1 (en) | 2003-11-17 | 2008-01-29 | Sun Microsystems, Inc. | Mechanism and method for cache snoop filtering |
US7117312B1 (en) | 2003-11-17 | 2006-10-03 | Sun Microsystems, Inc. | Mechanism and method employing a plurality of hash functions for cache snoop filtering |
US7380107B2 (en) * | 2004-01-13 | 2008-05-27 | Hewlett-Packard Development Company, L.P. | Multi-processor system utilizing concurrent speculative source request and system source request in response to cache miss |
US7962696B2 (en) * | 2004-01-15 | 2011-06-14 | Hewlett-Packard Development Company, L.P. | System and method for updating owner predictors |
US7240165B2 (en) * | 2004-01-15 | 2007-07-03 | Hewlett-Packard Development Company, L.P. | System and method for providing parallel data requests |
US7974191B2 (en) | 2004-03-10 | 2011-07-05 | Alcatel-Lucent Usa Inc. | Method, apparatus and system for the synchronized combining of packet data |
US7698509B1 (en) * | 2004-07-13 | 2010-04-13 | Oracle America, Inc. | Snooping-based cache-coherence filter for a point-to-point connected multiprocessing node |
US7305524B2 (en) | 2004-10-08 | 2007-12-04 | International Business Machines Corporation | Snoop filter directory mechanism in coherency shared memory system |
US7392418B2 (en) | 2004-12-17 | 2008-06-24 | International Business Machines Corporation | Capacity on demand using signaling bus control |
US7383397B2 (en) | 2005-03-29 | 2008-06-03 | International Business Machines Corporation | Method and apparatus for filtering snoop requests using a scoreboard |
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 |
US7392351B2 (en) | 2005-03-29 | 2008-06-24 | International Business Machines Corporation | Method and apparatus for filtering snoop requests using stream registers |
US20070005899A1 (en) | 2005-06-30 | 2007-01-04 | Sistla Krishnakanth V | Processing multicore evictions in a CMP multiprocessor |
CN100524266C (zh) | 2005-07-11 | 2009-08-05 | 辉达公司 | 在总线上以包的形式传输数据传输请求的方法及设备 |
US8250229B2 (en) | 2005-09-29 | 2012-08-21 | International Business Machines Corporation | Internet protocol security (IPSEC) packet processing for multiple clients sharing a single network address |
US7366847B2 (en) * | 2006-02-06 | 2008-04-29 | Azul Systems, Inc. | Distributed cache coherence at scalable requestor filter pipes that accumulate invalidation acknowledgements from other requestor filter pipes using ordering messages from central snoop tag |
US7383398B2 (en) * | 2006-03-31 | 2008-06-03 | Intel Corporation | Preselecting E/M line replacement technique for a snoop filter |
US20080005486A1 (en) | 2006-06-29 | 2008-01-03 | Mannava Phanindra K | Coordination of snoop responses in a multi-processor system |
US7707358B2 (en) | 2006-11-20 | 2010-04-27 | Infineon Technologies Ag | Dual access for single port cache |
US7836144B2 (en) | 2006-12-29 | 2010-11-16 | Intel Corporation | System and method for a 3-hop cache coherency protocol |
US7613882B1 (en) * | 2007-01-29 | 2009-11-03 | 3 Leaf Systems | Fast invalidation for cache coherency in distributed shared memory system |
US7685409B2 (en) | 2007-02-21 | 2010-03-23 | Qualcomm Incorporated | On-demand multi-thread multimedia processor |
US7937535B2 (en) * | 2007-02-22 | 2011-05-03 | Arm Limited | Managing cache coherency in a data processing apparatus |
US7640401B2 (en) * | 2007-03-26 | 2009-12-29 | Advanced Micro Devices, Inc. | Remote hit predictor |
US7730266B2 (en) * | 2007-03-31 | 2010-06-01 | Intel Corporation | Adaptive range snoop filtering methods and apparatuses |
US7769957B2 (en) * | 2007-06-22 | 2010-08-03 | Mips Technologies, Inc. | Preventing writeback race in multiple core processors |
US20080320233A1 (en) * | 2007-06-22 | 2008-12-25 | Mips Technologies Inc. | Reduced Handling of Writeback Data |
US7996626B2 (en) | 2007-12-13 | 2011-08-09 | Dell Products L.P. | Snoop filter optimization |
US20110004729A1 (en) * | 2007-12-19 | 2011-01-06 | 3Leaf Systems, Inc. | Block Caching for Cache-Coherent Distributed Shared Memory |
US9058272B1 (en) | 2008-04-25 | 2015-06-16 | Marvell International Ltd. | Method and apparatus having a snoop filter decoupled from an associated cache and a buffer for replacement line addresses |
US8015365B2 (en) * | 2008-05-30 | 2011-09-06 | Intel Corporation | Reducing back invalidation transactions from a snoop filter |
US7925840B2 (en) | 2008-09-05 | 2011-04-12 | Arm Limited | Data processing apparatus and method for managing snoop operations |
JP2011150422A (ja) * | 2010-01-19 | 2011-08-04 | Renesas Electronics Corp | データ処理装置 |
US9361955B2 (en) | 2010-01-28 | 2016-06-07 | Hewlett Packard Enterprise Development Lp | Memory access methods and apparatus |
US8423736B2 (en) * | 2010-06-16 | 2013-04-16 | International Business Machines Corporation | Maintaining cache coherence in a multi-node, symmetric multiprocessing computer |
US8392665B2 (en) | 2010-09-25 | 2013-03-05 | Intel Corporation | Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines |
JP5543894B2 (ja) | 2010-10-21 | 2014-07-09 | ルネサスエレクトロニクス株式会社 | NoCシステム及び入力切替装置 |
JP5913912B2 (ja) | 2010-11-05 | 2016-04-27 | インテル コーポレイション | Dragonflyプロセッサ相互接続ネットワークにおける革新的な適応型ルーティング |
US8904109B2 (en) | 2011-01-28 | 2014-12-02 | Freescale Semiconductor, Inc. | Selective cache access control apparatus and method thereof |
US8514889B2 (en) | 2011-08-26 | 2013-08-20 | Sonics, Inc. | Use of common data format to facilitate link width conversion in a router with flexible link widths |
US8638789B1 (en) | 2012-05-04 | 2014-01-28 | Google Inc. | Optimal multicast forwarding in OpenFlow based networks |
US9047194B2 (en) * | 2012-07-18 | 2015-06-02 | Empire Technology Development Llc | Virtual cache directory in multi-processor architectures |
US9235519B2 (en) * | 2012-07-30 | 2016-01-12 | Futurewei Technologies, Inc. | Method for peer to peer cache forwarding |
US9304924B2 (en) * | 2012-08-17 | 2016-04-05 | Futurewei Technologies, Inc. | Cache coherent handshake protocol for in-order and out-of-order networks |
CN104781797B (zh) * | 2012-09-14 | 2017-05-31 | 英派尔科技开发有限公司 | 多处理器架构中的高速缓存一致性目录 |
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 |
US20140095801A1 (en) | 2012-09-28 | 2014-04-03 | Devadatta V. Bodas | System and method for retaining coherent cache contents during deep power-down operations |
US20140095806A1 (en) | 2012-09-29 | 2014-04-03 | Carlos A. Flores Fajardo | Configurable snoop filter architecture |
US9129071B2 (en) | 2012-10-24 | 2015-09-08 | Texas Instruments Incorporated | Coherence controller slot architecture allowing zero latency write commit |
WO2014065802A2 (en) * | 2012-10-25 | 2014-05-01 | Empire Technology Development Llc | Multi-granular cache coherence |
US9170946B2 (en) * | 2012-12-21 | 2015-10-27 | Intel Corporation | Directory cache supporting non-atomic input/output operations |
US10073779B2 (en) | 2012-12-28 | 2018-09-11 | Intel Corporation | Processors having virtually clustered cores and cache slices |
US9304923B2 (en) | 2013-03-12 | 2016-04-05 | Arm Limited | Data coherency management |
US8935453B2 (en) | 2013-03-15 | 2015-01-13 | Intel Corporation | Completion combining to improve effective link bandwidth by disposing at end of two-end link a matching engine for outstanding non-posted transactions |
US9213640B2 (en) | 2013-04-17 | 2015-12-15 | Advanced Micro Devices, Inc. | Promoting transactions hitting critical beat of cache line load requests |
US9361236B2 (en) | 2013-06-18 | 2016-06-07 | Arm Limited | Handling write requests for a data array |
US20150074357A1 (en) | 2013-09-09 | 2015-03-12 | Qualcomm Incorporated | Direct snoop intervention |
US20150103822A1 (en) | 2013-10-15 | 2015-04-16 | Netspeed Systems | Noc interface protocol adaptive to varied host interface protocols |
US9830265B2 (en) | 2013-11-20 | 2017-11-28 | Netspeed Systems, Inc. | Reuse of directory entries for holding state information through use of multiple formats |
GB2522057B (en) | 2014-01-13 | 2021-02-24 | Advanced Risc Mach Ltd | A data processing system and method for handling multiple transactions |
US9870209B2 (en) | 2014-03-28 | 2018-01-16 | Intel Corporation | Instruction and logic for reducing data cache evictions in an out-of-order processor |
US9244845B2 (en) * | 2014-05-12 | 2016-01-26 | Netspeed Systems | System and method for improving snoop performance |
US9166936B1 (en) | 2014-06-26 | 2015-10-20 | Parlant Technology, Inc. | Message customization |
KR102173089B1 (ko) | 2014-08-08 | 2020-11-04 | 삼성전자주식회사 | 인터페이스 회로 및 그것의 패킷 전송 방법 |
US9311244B2 (en) | 2014-08-25 | 2016-04-12 | Arm Limited | Enforcing ordering of snoop transactions in an interconnect for an integrated circuit |
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 |
US9575893B2 (en) | 2014-10-22 | 2017-02-21 | Mediatek Inc. | Snoop filter for multi-processor system and related snoop filtering method |
US9886382B2 (en) * | 2014-11-20 | 2018-02-06 | International Business Machines Corporation | Configuration based cache coherency protocol selection |
US9727464B2 (en) * | 2014-11-20 | 2017-08-08 | International Business Machines Corporation | Nested cache coherency protocol in a tiered multi-node computer system |
US11237965B2 (en) | 2014-12-31 | 2022-02-01 | Arteris, Inc. | Configurable snoop filters for cache coherent systems |
US20160210231A1 (en) | 2015-01-21 | 2016-07-21 | Mediatek Singapore Pte. Ltd. | Heterogeneous system architecture for shared memory |
US9720838B2 (en) | 2015-03-27 | 2017-08-01 | Intel Corporation | Shared buffered memory routing |
US9542316B1 (en) * | 2015-07-23 | 2017-01-10 | Arteris, Inc. | System and method for adaptation of coherence models between agents |
US10157133B2 (en) | 2015-12-10 | 2018-12-18 | Arm Limited | Snoop filter for cache coherency in a data processing system |
US20170185515A1 (en) | 2015-12-26 | 2017-06-29 | Bahaa Fahim | Cpu remote snoop filtering mechanism for field programmable gate array |
US9817760B2 (en) | 2016-03-07 | 2017-11-14 | Qualcomm Incorporated | Self-healing coarse-grained snoop filter |
US9990292B2 (en) * | 2016-06-29 | 2018-06-05 | Arm Limited | Progressive fine to coarse grain snoop filter |
-
2015
- 2015-12-10 US US14/965,131 patent/US10157133B2/en active Active
-
2016
- 2016-11-10 CN CN201611040746.0A patent/CN107038123B/zh active Active
- 2016-12-05 KR KR1020160164295A patent/KR20170069149A/ko active Search and Examination
-
2018
- 2018-11-13 US US16/189,070 patent/US10310979B2/en active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1571958A (zh) * | 2000-08-21 | 2005-01-26 | 英特尔公司 | 集中监听过滤的方法和设备 |
US20030131202A1 (en) * | 2000-12-29 | 2003-07-10 | Manoj Khare | Mechanism for initiating an implicit write-back in response to a read or snoop of a modified cache line |
US20030140200A1 (en) * | 2002-01-24 | 2003-07-24 | Sujat Jamil | Methods and apparatus for transferring cache block ownership |
US20080215820A1 (en) * | 2004-04-07 | 2008-09-04 | Conway Patrick N | Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer |
CN1961297A (zh) * | 2004-06-02 | 2007-05-09 | 英特尔公司 | 在多处理器系统中无效数据转换缓冲区条目的机制 |
US20060080512A1 (en) * | 2004-10-08 | 2006-04-13 | International Business Machines Corporation | Graphics processor with snoop filter |
CN101097545A (zh) * | 2006-06-29 | 2008-01-02 | 英特尔公司 | 独占所有权探听过滤器 |
CN101601019A (zh) * | 2007-01-26 | 2009-12-09 | 高通股份有限公司 | 使用探听请求高速缓冲存储器的探听过滤 |
US20090327616A1 (en) * | 2008-06-30 | 2009-12-31 | Patrick Conway | Snoop filtering mechanism |
CN101958834A (zh) * | 2010-09-27 | 2011-01-26 | 清华大学 | 支持高速缓存一致的片上网络系统及数据请求方法 |
CN102929797A (zh) * | 2011-08-08 | 2013-02-13 | Arm有限公司 | 共享高速缓冲存储器控制 |
CN103136117A (zh) * | 2011-08-08 | 2013-06-05 | Arm有限公司 | 探听过滤器和非包含共享高速缓冲存储器 |
CN105009101A (zh) * | 2013-03-15 | 2015-10-28 | 英特尔公司 | 提供与数据缓冲器相关联的监听滤波 |
US20150127907A1 (en) * | 2013-11-04 | 2015-05-07 | Bahaa Fahim | Method, apparatus and system for handling cache misses in a processor |
Non-Patent Citations (2)
Title |
---|
VINEETH MEKKAT,ET AL.: ""Managing shared last-level cache in a heterogeneous multicore processor"", 《IEEE》 * |
彭军等: ""基于总线侦听Cache一致性协议算法与实现"", 《计算机与现代化》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110019340A (zh) * | 2017-12-08 | 2019-07-16 | 北京新媒传信科技有限公司 | 数据存储/读取方法、装置及系统 |
CN110569105A (zh) * | 2019-08-14 | 2019-12-13 | 上海交通大学 | 分布式虚拟机自适应内存一致性协议及其设计方法、终端 |
CN110569105B (zh) * | 2019-08-14 | 2023-05-26 | 上海交通大学 | 分布式虚拟机自适应内存一致性协议及其设计方法、终端 |
CN113495854A (zh) * | 2020-04-03 | 2021-10-12 | 阿里巴巴集团控股有限公司 | 主机-设备系统中实现或管理缓存一致性的方法和系统 |
CN112463652A (zh) * | 2020-11-20 | 2021-03-09 | 海光信息技术股份有限公司 | 基于缓存一致性的数据处理方法装置、处理芯片及服务器 |
CN112612726A (zh) * | 2020-12-08 | 2021-04-06 | 海光信息技术股份有限公司 | 基于缓存一致性的数据存储方法、装置、处理芯片及服务器 |
Also Published As
Publication number | Publication date |
---|---|
KR20170069149A (ko) | 2017-06-20 |
CN107038123B (zh) | 2021-11-30 |
US10157133B2 (en) | 2018-12-18 |
US20170168939A1 (en) | 2017-06-15 |
US10310979B2 (en) | 2019-06-04 |
US20190079868A1 (en) | 2019-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107038123A (zh) | 用于数据处理系统中的缓存一致性的探听过滤器 | |
KR101814577B1 (ko) | 프로세싱-인-메모리를 이용한 명령어 처리 방법 및 그 장치 | |
JP4594900B2 (ja) | メモリ・ブロックを初期設定するためのプロセッサ、データ処理システム、および方法 | |
JP5078396B2 (ja) | 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法 | |
US9990292B2 (en) | Progressive fine to coarse grain snoop filter | |
CN109154911A (zh) | 用于监视高速缓存行在不同的高速缓存级下的状态的阴影标签存储器 | |
CN110362504A (zh) | 对一致性链路和多级存储器的管理 | |
TWI606340B (zh) | 用於資料快取之方法、電腦可讀取儲存媒體及系統 | |
CN105677580A (zh) | 访问缓存的方法和装置 | |
US9645931B2 (en) | Filtering snoop traffic in a multiprocessor computing system | |
CN105637492A (zh) | 多核异构系统转换后备缓冲器相干性 | |
CN105393210B (zh) | 用于处理数据存储器引用的存储器单元和方法 | |
JP6630449B2 (ja) | 他のキャッシュでのエントリの可用性に基づくキャッシュエントリの置換 | |
CN106227674B (zh) | 缓存一致性控制器及方法 | |
CN112955876B (zh) | 用于在数据处理网络中传输数据的方法和装置 | |
TW201447748A (zh) | 處理裝置 | |
CN107025130B (zh) | 处理节点、计算机系统及事务冲突检测方法 | |
CN108536473A (zh) | 读取数据的方法和装置 | |
US9760489B2 (en) | Private memory table for reduced memory coherence traffic | |
KR20230017244A (ko) | 코어 대 코어 캐시 스태싱 및 타깃 발견 | |
CN106662998A (zh) | 事务冲突检测方法、装置及计算机系统 | |
US20170185516A1 (en) | Snoop optimization for multi-ported nodes of a data processing system | |
US11126568B2 (en) | Object coherence in distributed shared memory systems | |
US9842050B2 (en) | Add-on memory coherence directory | |
CN105659216B (zh) | 多核处理器系统的缓存目录处理方法和目录控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |