[发明专利]一种基于提前更新的数据一致性实现方法有效
申请号: | 202010210475.9 | 申请日: | 2020-03-24 |
公开(公告)号: | CN111414318B | 公开(公告)日: | 2022-04-29 |
发明(设计)人: | 顾晓峰;李青青;虞致国;魏敬和 | 申请(专利权)人: | 江南大学 |
主分类号: | G06F12/0831 | 分类号: | G06F12/0831 |
代理公司: | 哈尔滨市阳光惠远知识产权代理有限公司 23211 | 代理人: | 彭素琴 |
地址: | 214000 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 提前 更新 数据一致性 实现 方法 | ||
1.一种数据一致性实现方法,其特征在于,所述方法应用于多核处理器系统中,包括:为多核处理器系统中每个L1 DCache和其他各级Cache的Cacheline增设一个计数器,记录含脏数据副本的Cacheline的访问情况;在L1 DCache和其他各级Cache空闲的时候,将其中的含有脏数据的数据副本提前更新至下一级存储器;
所述多核处理器系统包含至少两个CPU,所述在L1 DCache和其他各级Cache空闲的时候,将其中的含有脏数据的数据副本提前更新至下一级存储器,包括:
步骤1、第一CPU请求访问某数据副本,所述第一CPU为多核处理器系统中任一CPU;
步骤2、当某Cache空闲时,比较各Cacheline对应的计数器,向下一级存储器请求主动写回计数器数值最大的Cacheline;同时,若同级另一Cache向下一级存储器发起访问请求且非主动写回时,则下一级存储器优先处理同级另一Cache的访问请求,其中某Cache指多核处理器系统中任一L1 DCache或其他各级Cache;
步骤3、Cache接收写回响应,主动将计数器数值最大的Cacheline写回下一级存储器;若同级其他Cache中也含有该数据副本,同级其他Cache对应的Cacheline的脏位置0,状态依据一致性协议做出相应转变;
步骤4、DMA发起访问请求;
步骤5、CPU接收DMA的访问请求,开始刷新Cache,等待相应的含脏数据副本全刷新至主存,返回响应;
步骤6、DMA接收CPU发送的响应信息,开始传输数据;
所述步骤5中,DMA发起访问请求前第一CPU已提前将部分含脏的数据副本写回至主存。
2.根据权利要求1所述的方法,其特征在于,所述步骤1中:
当第一CPU发生写缺失时,等待第一CPU完成写操作后,该Cacheline对应的计数器置1,本地其他含脏数据的Cacheline对应的计数器加1。
3.根据权利要求1所述的方法,其特征在于,所述步骤1中:
当第一CPU发生写命中时,Cacheline中的数据副本可能存在两种状态:与下一级存储一致,以及与下一级存储不一致,其中与下一级存储不一致即表示Cacheline中的数据副本中含有脏数据:
若Cacheline中的数据副本与下一级存储一致,则等待第一CPU完成写操作后,该Cacheline对应的计数器置1,其他含脏数据的Cacheline对应的计数器加1;
若Cacheline中的数据副本中含有脏数据,则等待第一CPU完成写操作后,该Cacheline对应的计数器置1,其他计数器的数值若小于被写命中Cacheline对应计数器原来的值,则加1,其余计数器的数值则保持不变。
4.根据权利要求1所述的方法,其特征在于,所述步骤1中:
当第一CPU发生读命中时:
若该Cacheline中含有脏数据,则该Cacheline对应的计数器减1,比该计数器原来的值小1的计数器的数值加1,其他计数器的数值则保持不变;当Cacheline对应的计数器的数值小于等于2时,若CPU请求读取该Cacheline,其计数器的数值保持不变;
若该数据副本与下一级存储一致,则第一CPU完成读操作后,本地所有Cacheline对应的计数器数值不变。
5.根据权利要求1所述的方法,其特征在于,所述步骤1中:
当第一CPU发生读缺失时:
当该数据副本存在其他同级Cache中且该Cacheline含有脏数据时,若所述多核处理器系统可共享含脏的数据副本,则第一CPU从其他同级Cache中读取数据副本,本地Cache中该Cacheline的计数器置1,其他含脏Cacheline的计数器数值加1;若所述多核处理器系统不可共享含脏的数据副本,则第一CPU完成读操作后,本地Cache中该Cacheline的计数器设为初始值0,其他含脏Cacheline的计数器数值保持不变;
若该数据副本存在其他同级Cache中且与下一级存储一致,或仅存在低级存储器中,则第一CPU完成读操作后,本地Cache中该Cacheline的计数器设为初始值0,其他含脏Cacheline的计数器数值保持不变。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江南大学,未经江南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010210475.9/1.html,转载请声明来源钻瓜专利网。