[发明专利]在维护缓存一致性时维护事务次序的处理器及其方法有效
申请号: | 202011430013.4 | 申请日: | 2020-12-07 |
公开(公告)号: | CN112579479B | 公开(公告)日: | 2022-07-08 |
发明(设计)人: | 武杨 | 申请(专利权)人: | 成都海光微电子技术有限公司 |
主分类号: | G06F12/0817 | 分类号: | G06F12/0817;G06F12/0842 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 万里晴 |
地址: | 610216 四川省成都市中国(四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 维护 缓存 一致性 事务 次序 处理器 及其 方法 | ||
提出了在维护缓存一致性时维护事务次序的处理器及其方法,其中所述方法包括:从第一模块接收到针对目标数据块的第一副本的第一请求;将维护的当前的序列戳加一以得到第一序列戳;基于第一序列戳生成用于在第二模块上更新目标数据块的第二副本的状态的监听消息;检查待发送的一个或多个响应消息中的每一个响应消息的序列戳;以及基于检查的结果向第二模块发送监听消息。
技术领域
本发明涉及在多核或多处理器系统中的并发事务,更具体地,涉及在维护缓存一致性时维护事务次序的处理器及其方法。
背景技术
在多核或多处理器系统中,多个缓存(cache)中的每个缓存所存储的数据块都是它们共享的内存中对应地址的数据块的副本,因此多核和多处理器系统的缓存一致性既包括每个缓存和内存之间的一致性,还包括多个缓存彼此之间的一致性。也就是说,对于在内存中的同一位置的数据块,不同缓存中与之对应的缓存行(cache line)或数据块不应该有不一致的值。
实现缓存一致性的方式一般来说有两种,一种是基于广播,一种是基于目录。随着多核或多处理器系统的规模越来越大(诸如CC-NUMA系统),基于目录的缓存一致性协议成为当今的主流。基于目录的缓存一致性协议的基本思想是用目录的形式(例如,表格)记录所有缓存行或数据块以及共享数据块的位置和状态。因此,当处理器对某一缓存行或数据块进行访存操作时,便可根据相应的目录项获悉与该缓存行或数据块中存储的副本相对应的内存上的原数据块以及其他缓存上的其他副本的状态,并且根据所获悉的信息来确定如何进行缓存一致性的维护。
在维护缓存一致性时,次序(ordering)是一个非常重要的问题。具体地,维护缓存一致性通常涉及系统中出现并发事务的情况,其中,事务(transaction)是指为了处理对数据块的请求而发起的在各个缓存和相关模块之间进行的通信过程。实际上,往往同时出现针对同一数据块的多个副本的请求,从而出现并发事务。如果对这些并发事务处理的次序不正确,则缓存一致性将无法得到保证。
发明内容
本发明的一方面公开了一种在维护缓存一致性时维护事务次序的处理器,所述处理器包括:家节点模块,包括目录和序列戳寄存器,所述目录用于记录各个数据块的状态信息,所述序列戳寄存器被配置为维护用于对所生成的响应消息或监听消息进行标记的序列戳;路由模块,被配置为维护待发送的一个或多个响应消息,并且为所述待发送的一个或多个响应消息中的每一个响应消息分配传输路由;以及控制单元,被配置为控制所述处理器执行以下操作:从第一模块接收到针对目标数据块的第一副本的第一请求;将维护的当前的序列戳加一以得到第一序列戳;基于所述第一序列戳生成用于在第二模块上更新所述目标数据块的第二副本的状态的监听消息;检查所述待发送的一个或多个响应消息中的每一个响应消息的序列戳;以及基于所述检查的结果向所述第二模块发送所述监听消息。
根据一个实施例,基于所述第一序列戳生成用于在第二模块上更新所述目标数据块的第二副本的状态的监听消息包括:根据所述第一请求和所述目录确定需要更新所述第二副本的状态,以及基于确定需要更新所述第二副本的状态,生成用于更新所述第二副本的状态的并且包括所述第一序列戳的监听消息。
根据一个实施例,其中,所述待发送的一个或多个响应消息中的每一个响应消息是针对接收到的相应的请求而生成的,并且所述待发送的一个或多个响应消息中的每一个响应消息的序列戳是在接收到所述相应的请求时被记录到相应的缓冲条目中的序列戳。
根据一个实施例,其中,基于所述检查的结果向所述第二模块发送所述监听消息包括:如果所述检查的结果指示所述待发送的一个或多个响应消息中不存在序列戳小于所述第一序列戳的响应消息,则向所述第二模块发送所述监听消息。
根据一个实施例,其中,基于所述检查的结果向所述第二模块发送所述监听消息包括:如果所述检查的结果指示所述待发送的一个或多个响应消息中存在序列戳小于所述第一序列戳的至少一个响应消息,则等待预定时段之后再次检查所述待发送的一个或多个响应消息中的每一个响应消息的序列戳;以及基于所述再次检查的结果向所述第二模块发送所述监听消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都海光微电子技术有限公司,未经成都海光微电子技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011430013.4/2.html,转载请声明来源钻瓜专利网。