当前位置: 首页 > 专利查询>ARM有限公司专利>正文

用于数据处理系统中的缓存一致性的探听过滤器技术方案

技术编号:15982570 阅读:46 留言:0更新日期:2017-08-12 05:37
本公开涉及用于数据处理系统中的缓存一致性的探听过滤器。一种具有访问共享数据资源的两个或更多个处理器的数据处理系统及其操作方法被提供。本地缓存中存储的数据被标记为处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态。探听过滤器监视由处理器对共享数据资源的访问,并且包括被配置为维护缓存一致性的探听过滤器缓存和探听过滤器控制逻辑。探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识,使得探听过滤器缓存大小更小并且简化了探听控制逻辑。数据处理系统由硬件描述语言的指令来定义。

【技术实现步骤摘要】
用于数据处理系统中的缓存一致性的探听过滤器
本公开涉及数据处理系统,更具体地涉及用于数据处理系统中的缓存一致性的探听过滤器。
技术介绍
诸如片上系统(SoC)之类的数据处理系统可包含多个处理器核心、多个数据缓存、以及共享数据资源。例如在共享存储器系统中,每个处理器核心可对单个共享地址空间进行读和写。缓存一致性是包括一个或多个缓存以及不止一个装置共享单个缓存区中的数据的任何系统中存在的议题。包括多个缓存的系统存在两个潜在问题。第一,存储器可在缓存的装置已经取走复本之后(被另一装置)更新。此时,缓存内的数据是过期的或者无效的,并且不再包含最新的数据。第二,包括回写式缓存的系统必须对以下情形进行处理:其中,装置对本地缓存的复本进行写入,此时存储器不再包含最新的数据。读取存储器的第二装置将看到过期的(陈腐的)数据。监视数据事务的探听过滤器可被用于确保缓存一致性。
技术实现思路
根据本专利技术的第一方面,提供一种数据处理系统中的数据传输的方法,该数据处理系统具有共享数据资源和多个节点的网络,共享数据资源能由网络中的多个请求节点经由网络的归属节点来进行访问,所述方法包括:响应于在归属节点处从多个请求节点中的第一请求节点接收的、针对存储在共享数据资源中的系统地址处的数据的读请求,确定所请求的数据是被存储在归属节点的缓存中还是被存储在多个请求节点中一个或多个第二请求节点的本地缓存中;当所请求的数据未被存储在归属节点的缓存中而是被存储在一个或多个第二请求节点的本地缓存中时,向一个或多个第二请求节点发送探听以请求所述数据;当响应于探听而数据被返回时,用返回的数据填充归属节点的缓存,在所述缓存中把该数据标记为“脏”,并且更新归属节点的探听过滤器以指示第一请求节点具有数据的复本;以及向第一请求节点转发返回的数据,当所请求的数据未被存储在归属节点的缓存中或者一个或多个第二请求节点的本地缓存中时,从共享数据资源取回所请求的数据;更新归属节点的探听过滤器以指示第一请求节点具有数据的复本;以及向第一请求节点转发所取回的数据,当所请求的数据被存储在归属节点的缓存中时,更新归属节点的探听过滤器以指示第一请求节点具有数据的复本;以及向第一请求节点转发所取回的数据。根据本专利技术的第二方面,提供一种用于数据处理系统的探听过滤器,所述数据处理系统还包括:多个处理器,每个处理器具有本地缓存和缓存控制器;共享数据资源;以及系统缓存,其中探听过滤器监视由多个处理器对共享数据资源的访问,并且其中探听过滤器包括:探听过滤器控制逻辑,该探听过滤器控制逻辑能操作以与多个处理器的缓存控制器通信;以及探听过滤器缓存,该探听过滤器缓存能操作以针对多个处理器中的处理器的本地缓存中的每个数据块存储以下各项:标识数据块的标签;数据块处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态的指示;以及表明哪些本地缓存共享数据块的复本的存在性向量,其中探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识,并且其中探听过滤器控制逻辑被配置为执行如根据第一方面所述的方法。根据本专利技术的第三方面,提供一种包括硬件描述语言的指令的非暂态计算机可读介质,所述指令定义如根据第二方面所述的数据处理系统。根据本专利技术的第四方面,提供一种用于数据处理系统的探听过滤器,所述数据处理系统包括:多个处理器,每个处理器具有本地缓存和缓存控制器;共享数据资源;以及系统缓存,其中探听过滤器监视由多个处理器对所述共享数据资源的访问,其中来自共享数据资源的、存储在多个处理器中的处理器的本地缓存中的数据被标记为处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态,其中如果来自共享数据资源的、存储在所述系统缓存中的数据不与所述共享数据资源中的对应数据相匹配,则它被标记为处于“脏”状态,否则被标记为“干净”,并且其中探听过滤器包括:探听过滤器控制逻辑,该探听过滤器控制逻辑能操作以与多个处理器的缓存控制器通信;以及探听过滤器缓存,该探听过滤器缓存能操作以针对多个处理器中的处理器的本地缓存中的每个数据块存储以下各项:标识数据块的标签;数据块处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态的指示;以及表明哪些本地缓存共享数据块的复本的存在性向量,其中探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识。根据本专利技术的第五方面,提供一种包括硬件描述语言的指令的非暂态计算机可读介质,所述指令定义如根据第四方面所述的数据处理系统。根据本专利技术的第六方面,提供一种数据处理系统,包括:多个处理器,每个处理器具有本地缓存和缓存控制器,其中被存储在多个处理器中的处理器的本地缓存中的数据被标记为处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态;系统缓存,其中如果被存储在所述系统缓存中的数据不与共享数据资源中的对应数据相匹配,则它被标记为处于“脏”状态,否则被标记为“干净”,其中共享数据资源能由多个处理器访问;以及探听过滤器,该探听过滤器监视由所述多个处理器对共享数据资源的访问,其中,探听过滤器包括:探听过滤器控制逻辑,该探听过滤器控制逻辑能操作以与多个处理器的缓存控制器通信;以及探听过滤器缓存,该探听过滤器缓存能操作以针对多个处理器中的处理器的本地缓存中的每个数据块存储以下各项:标识数据块的标签;数据块处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态的指示;以及表明哪些本地缓存共享数据块的复本的存在性向量,其中探听过滤器缓存不对存储处于“共享脏”状态的数据块的任何本地缓存进行标识。根据本专利技术的第七方面,提供一种包括如根据第六方面所述的数据处理系统的片上系统。根据本专利技术的第八方面,提供一种包括硬件描述语言的指令的非暂态计算机可读介质,所述指令定义如第六方面所述的数据处理系统。附图说明附图提供了可视表示,它们将被用于更全面地描述各种代表性实施例,并且可被本领域技术人员用来更好地理解所公开的代表性实施例及其内在的优点。在这些视图中,相同的标号表示相应的元素。图1是根据各种代表性实施例的数据处理系统的框图。图2示出根据各种代表性实施例的缓存一致性模型的状态。图3是数据缓存一致性数据处理系统的探听过滤器的框图。图4是根据各种代表性实施例的数据缓存一致性数据处理系统的探听过滤器的框图。图5是根据各种代表性实施例的操作数据缓存一致性数据处理系统的探听过滤器的操作方法的流程图。具体实施方式虽然本专利技术易有许多不同形式的实施例,但在附图中示出并且将在此详细描述具体实施例。应理解,本公开应被认为是本专利技术的原理的示例,并不意欲将本专利技术限制于所示和所述的具体实施例。在下面的描述中,附图中的若干视图中相同的标号被用于描述相同、相似或相应的部件。在本文中,诸如第一和第二、上和下等关系术语可被仅用来把一个实体或动作与另一实体或动作区分开,而并非必要地要求或暗示这些实体或动作之间存在任何实际的这种关系或顺序。术语“包括”、“包含”或其任何其他变型意在覆盖非排他性的包括,诸如包括列出的元素的过程、方法、物品或设备并不是仅包括那些元素,而是可以包括其他未被明确列出的元素或者这些过程、方法、物品或设备固有的元素。冠以“包括”的元素在没有更多限制的情况下并不排除在包括此元素的过程、方法、物品或设备中还存在另外的等同元本文档来自技高网...
用于数据处理系统中的缓存一致性的探听过滤器

【技术保护点】
一种数据处理系统中的数据传输的方法,该数据处理系统具有共享数据资源和多个节点的网络,所述共享数据资源能由所述网络中的多个请求节点经由所述网络的归属节点来进行访问,所述方法包括:响应于在所述归属节点处从所述多个请求节点中的第一请求节点接收的、针对存储在所述共享数据资源中的系统地址处的数据的读请求,确定所请求的数据是被存储在所述归属节点的缓存中还是被存储在所述多个请求节点中一个或多个第二请求节点的本地缓存中;当所请求的数据未被存储在所述归属节点的缓存中而是被存储在一个或多个第二请求节点的本地缓存中时,向所述一个或多个第二请求节点发送探听以请求所述数据;当响应于所述探听而数据被返回时,用返回的数据填充所述归属节点的缓存,在所述缓存中把该数据标记为“脏”,并且更新所述归属节点的探听过滤器以指示所述第一请求节点具有所述数据的复本;以及向所述第一请求节点转发所述返回的数据,当所请求的数据未被存储在所述归属节点的缓存中或者一个或多个第二请求节点的本地缓存中时,从所述共享数据资源取回所请求的数据;更新所述归属节点的探听过滤器以指示所述第一请求节点具有所述数据的复本;以及向所述第一请求节点转发所取回的数据,当所请求的数据被存储在所述归属节点的缓存中时,更新所述归属节点的探听过滤器以指示所述第一请求节点具有所述数据的复本;以及向所述第一请求节点转发所取回的数据。...

【技术特征摘要】
2015.12.10 US 14/965,1311.一种数据处理系统中的数据传输的方法,该数据处理系统具有共享数据资源和多个节点的网络,所述共享数据资源能由所述网络中的多个请求节点经由所述网络的归属节点来进行访问,所述方法包括:响应于在所述归属节点处从所述多个请求节点中的第一请求节点接收的、针对存储在所述共享数据资源中的系统地址处的数据的读请求,确定所请求的数据是被存储在所述归属节点的缓存中还是被存储在所述多个请求节点中一个或多个第二请求节点的本地缓存中;当所请求的数据未被存储在所述归属节点的缓存中而是被存储在一个或多个第二请求节点的本地缓存中时,向所述一个或多个第二请求节点发送探听以请求所述数据;当响应于所述探听而数据被返回时,用返回的数据填充所述归属节点的缓存,在所述缓存中把该数据标记为“脏”,并且更新所述归属节点的探听过滤器以指示所述第一请求节点具有所述数据的复本;以及向所述第一请求节点转发所述返回的数据,当所请求的数据未被存储在所述归属节点的缓存中或者一个或多个第二请求节点的本地缓存中时,从所述共享数据资源取回所请求的数据;更新所述归属节点的探听过滤器以指示所述第一请求节点具有所述数据的复本;以及向所述第一请求节点转发所取回的数据,当所请求的数据被存储在所述归属节点的缓存中时,更新所述归属节点的探听过滤器以指示所述第一请求节点具有所述数据的复本;以及向所述第一请求节点转发所取回的数据。2.如权利要求1所述的方法,其中被转发至所述第一请求节点的所述数据被标记为处于“独有脏”状态。3.如权利要求1所述的方法,其中存储在所述多个请求节点的本地缓存中的数据被标记为处于“独有脏”、“共享脏”、“独有干净”或者“无效”状态。4.如权利要求3所述的方法,其中所述第一请求节点的本地缓存中的数据被标记为处于“共享脏”状态,并且其中所述探听过滤器不标识所述第一请求节点。5.如权利要求1所述的方法,其中更新所述归属节点的探听过滤器以指示所述第一请求节点具有所述数据的复本包括:更新所述探听过滤器中的存在性向量。6.如权利要求1所述的方法,其中向所述一个或多个第二请求节点发送探听以请求所述数据使得第二请求节点把它的本地缓存中的数据从“独有脏”状态更新为“共享脏”状态。7.如权利要求1所述的方法,还包括:响应于在所述归属节点处从所述多个请求节点中的第一请求节点接收的、请求回写数据存储至所述共享数据资源中的系统地址的回写请求,确定回写数据的状态;当所述数据的状态处于“干净”或“独有”状态时或者当所述归属节点的缓存中未存储与所述系统地址相关联的任何数据时,把所述回写数据作为“干净”数据存储在所述归属节点的缓存中;当与所述系统地址相关联的数据已被存储在所述归属节点的缓存中时,丢弃所述回写数据而无需把它存储在所述归属节点的缓存中;以及更新所述探听过滤器中的存在性向量。8.如权利要求7所述的方法,还包括:当所述归属节点的缓存中被标记为“脏”的数据被从所述归属节点的缓存中驱逐时,把所述数据回写至所述共享数据资源。9.如权利要求7所述的方法,还包括:所述多个请求节点中的所述第一请求节点在它的本地缓存中把要回写的数据的复本标记为“无效”。10.一种用于数据处理系统的探听过滤器,所述数据处理系统还包括:多个处理器,每个处理器具有本地缓存和缓存控制器;共享数据资源;以及系统缓存,其中所述探听过滤器监视由所述多个处理器对所述共享数据资源的访问,并且其中所述探听过滤器包括:探听过滤器控制逻辑,该探听过滤器控制逻辑能操作以与所述多个处理器的缓存控制器通信;以及探听过滤器缓存,该探听过滤器缓存能操作以针对所述多个处理器中的处理器的本地缓存中的每个数据块存储以下各项:标识所述数据块的标签;所述数据块处于“独有...

【专利技术属性】
技术研发人员:詹姆师德·加拉马克·戴维·沃克海瑟
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1