[发明专利]在维护缓存一致性时维护事务次序的处理器及其方法有效
申请号: | 202011430013.4 | 申请日: | 2020-12-07 |
公开(公告)号: | CN112579479B | 公开(公告)日: | 2022-07-08 |
发明(设计)人: | 武杨 | 申请(专利权)人: | 成都海光微电子技术有限公司 |
主分类号: | G06F12/0817 | 分类号: | G06F12/0817;G06F12/0842 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 万里晴 |
地址: | 610216 四川省成都市中国(四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 维护 缓存 一致性 事务 次序 处理器 及其 方法 | ||
1.一种在维护缓存一致性时维护事务次序的处理器,所述处理器包括:
家节点模块,包括目录和序列戳寄存器,所述目录用于记录各个数据块的状态信息,所述序列戳寄存器被配置为维护用于对所生成的响应消息或监听消息进行标记的序列戳;
路由模块,被配置为维护待发送的一个或多个响应消息,并且为所述待发送的一个或多个响应消息中的每一个响应消息分配传输路由;以及
控制单元,被配置为控制所述处理器执行以下操作:
从第一模块接收到针对目标数据块的第一副本的第一请求;
将维护的当前的序列戳加一以得到第一序列戳;
基于所述第一序列戳生成用于在第二模块上更新所述目标数据块的第二副本的状态的监听消息;
检查所述待发送的一个或多个响应消息中的每一个响应消息的序列戳;以及
基于所述检查的结果向所述第二模块发送所述监听消息。
2.根据权利要求1所述的处理器,其中,基于所述第一序列戳生成用于在第二模块上更新所述目标数据块的第二副本的状态的监听消息包括:
根据所述第一请求和所述目录确定需要更新所述第二副本的状态,以及
基于确定需要更新所述第二副本的状态,生成用于更新所述第二副本的状态的并且包括所述第一序列戳的监听消息。
3.根据权利要求1所述的处理器,其中,所述待发送的一个或多个响应消息中的每一个响应消息是针对接收到的相应的请求而生成的,并且所述待发送的一个或多个响应消息中的每一个响应消息的序列戳是在接收到所述相应的请求时被记录到相应的缓冲条目中的序列戳。
4.根据权利要求1所述的处理器,其中,基于所述检查的结果向所述第二模块发送所述监听消息包括:
如果所述检查的结果指示所述待发送的一个或多个响应消息中不存在序列戳小于所述第一序列戳的响应消息,则向所述第二模块发送所述监听消息。
5.根据权利要求1所述的处理器,其中,基于所述检查的结果向所述第二模块发送所述监听消息包括:
如果所述检查的结果指示所述待发送的一个或多个响应消息中存在序列戳小于所述第一序列戳的至少一个响应消息,则等待预定时段之后再次检查所述待发送的一个或多个响应消息中的每一个响应消息的序列戳;以及
基于所述再次检查的结果向所述第二模块发送所述监听消息。
6.根据权利要求2所述的处理器,其中,根据所述第一请求和所述目录确定需要更新所述第二副本的状态包括,根据以下各种情况之一确定需要更新所述第二副本的状态:
所述第一请求是读取所述第一副本的请求,并且所述目录指示所述第二模块上所述第二副本的状态是M状态或E状态;或者
所述第一请求是写入所述第一副本的请求,并且所述目录指示所述第二模块上所述第二副本的状态是M状态或E状态或S状态。
7.根据权利要求1所述的处理器,其中,所述路由模块还被配置为对于源和目的地相同的响应消息或监听消息分配相同的传输路由。
8.根据权利要求1所述的处理器,其中,所述控制单元还被配置为控制所述处理器基于所述第一序列戳生成针对所述第一请求的第一响应消息,并将所述第一响应消息发送到所述第一模块。
9.根据权利要求1-8中任一项所述的处理器,其中,所述处理器还包括缓冲单元,所述缓冲单元被配置为维护用于处理每一个请求的缓冲条目,并且在完成发送相应的响应消息之后释放相应的缓冲条目。
10.根据权利要求1-8中任一项所述的处理器,其中,
所述第一模块和所述第二模块都在所述处理器内;或者
所述第一模块和所述第二模块都在另一处理器内;或者
所述第一模块和所述第二模块分别在不同的处理器内。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都海光微电子技术有限公司,未经成都海光微电子技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011430013.4/1.html,转载请声明来源钻瓜专利网。