一种建立处理器CACHE检查点的方法、装置及系统.pdf

上传人:1** 文档编号:4040318 上传时间:2018-08-12 格式:PDF 页数:24 大小:1.65MB
返回 下载 相关 举报
摘要
申请专利号:

CN201310662178.8

申请日:

2013.12.09

公开号:

CN104699574A

公开日:

2015.06.10

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 11/22申请日:20131209|||公开

IPC分类号:

G06F11/22

主分类号:

G06F11/22

申请人:

华为技术有限公司; 中国科学院计算技术研究所

发明人:

程云; 李华伟; 李晓维

地址:

518129广东省深圳市龙岗区坂田华为总部办公楼

优先权:

专利代理机构:

深圳市深佳知识产权代理事务所(普通合伙)44285

代理人:

唐华明

PDF下载: PDF下载
内容摘要

本发明实施例公开了一种建立处理器Cache检查点的方法、装置及系统,以保证建立Cache检查点不存在影响处理器运行,该方法包括:在Cache中内容逐行导出过程中,当接收到处理器写Cache信号时,检测确定处理器写Cache操作对应的Cache行在Cache的已导出部分,执行处理器写Cache操作,同时将写Cache操作写入Cache行中内容导出;当接收到处理器写Cache信号时,检测确定处理器写Cache操作对应的Cache行在Cache的未导出部分,执行处理器写Cache操作,暂停Cache中内容导出;当接收到处理器读Cache信号时,执行处理器读Cache操作,暂停Cache中内容导出。

权利要求书

权利要求书
1.  一种建立处理器Cache检查点的方法,其特征在于,所述方法包括:
在将Cache中的内容逐行导出的过程中,当接收到处理器写Cache信号 时,检测确定处理器写Cache操作对应的Cache行在Cache的已导出部分, 则执行处理器写Cache操作,并同时将所述写Cache操作写入Cache行中的 内容进行导出;
当接收到处理器写Cache信号时,检测确定处理器写Cache操作对应的 Cache行在Cache的未导出部分,则执行处理器写Cache操作,并暂停将Cache 中的内容进行导出;
当接收到处理器读Cache信号时,执行处理器读Cache操作,并暂停将 Cache中的内容进行导出。

2.  根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到的处理器读Cache信号时,检测确定处理器读Cache操作对应 的Cache行是下一被导出的Cache行,则执行处理器读Cache操作,并同时 将所述读Cache操作对应的Cache行中的内容进行导出。

3.  根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
控制地址生成器由Cache行地址范围的一端开始生成第一地址。

4.  根据权利要求3所述的方法,其特征在于,所述将Cache中的内容逐 行导出的过程具体为:将所述第一地址所对应的Cache行中的内容导出到压 缩器内存储,每导出一Cache行后则控制所述地址生成器将第一地址变化为 下一Cache行地址。

5.  根据权利要求4所述的方法,其特征在于,所述检测确定处理器写 Cache操作对应的Cache行在Cache的已导出部分,包括:
接收比较器的比较结果,所述比较器用于比较处理器写Cache操作对应 的Cache行地址与当前第一地址的大小;
当所述地址生成器由Cache行地址范围的低地址端开始生成第一地址 时,所述比较结果为处理器写Cache操作对应的Cache行地址小于当前第一 地址,确定处理器写Cache操作对应的Cache行在Cache的已导出部分;
当所述地址生成器由Cache行地址范围的高地址端开始生成第一地址 时,所述比较结果为处理器写Cache操作对应的Cache行地址大于当前第一 地址,确定处理器写Cache操作对应的Cache行在Cache的已导出部分。

6.  根据权利要求4所述的方法,其特征在于,所述检测确定处理器写 Cache操作对应的Cache行在Cache的未导出部分,包括:
接收比较器的比较结果,所述比较器用于比较处理器写Cache操作对应 的Cache行地址与当前第一地址的大小;
当所述地址生成器由Cache行地址范围的低地址端开始生成第一地址 时,所述比较结果为处理器写Cache操作对应的Cache行地址大于或等于当 前第一地址,确定处理器写Cache操作对应的Cache行在Cache的未导出部 分;
当所述地址生成器由Cache行地址范围的高地址端开始生成第一地址 时,所述比较结果为处理器写Cache操作对应的Cache行地址小于或等于当 前第一地址,确定处理器写Cache操作对应的Cache行在Cache的未导出部 分。

7.  根据权利要求4所述的方法,其特征在于,所述检测确定处理器读 Cache操作对应的Cache行是下一被导出的Cache行,包括:
接收比较器的比较结果,所述比较器还用于比较所述处理器读Cache操 作对应的Cache行地址与当前第一地址的大小;
所述比较结果为处理器读Cache操作对应的Cache行地址等于当前第一 地址,确定处理器读Cache操作对应的Cache行是下一被导出的Cache行。

8.  一种建立处理器Cache检查点的装置,其特征在于,所述装置包括:
接收单元,用于在将Cache中的内容逐行导出的过程中,接收处理器写 Cache信号或者接收处理器读Cache信号;
第一确定单元,用于在所述接收单元接收到处理器写Cache信号时,检 测确定处理器写Cache操作对应的Cache行在Cache的已导出部分;
第一处理单元,用于在所述第一确定单元检测确定处理器写Cache操作 对应的Cache行在Cache的已导出部分时,执行处理器写Cache操作;
第一导出单元,用于在所述第一确定单元检测确定处理器写Cache操作 对应的Cache行在Cache的已导出部分时,将所述写Cache操作写入Cache 行中的内容进行导出;
第二确定单元,用于在所述接收单元接收到处理器写Cache信号时,检 测确定处理器写Cache操作对应的Cache行在Cache的未导出部分;
第二处理单元,用于在所述第二确定单元检测确定处理器写Cache操作 对应的Cache行在Cache的未导出部分时,执行处理器写Cache操作,并暂 停将Cache中的内容进行导出;
第三处理单元,用于在所述接收单元接收到处理器读Cache信号时,执 行处理器读Cache操作,并暂停将Cache中的内容进行导出。

9.  根据权利要求8所述的装置,其特征在于,所述装置还包括:
第三确定单元,用于在所述接收单元接收到处理器读Cache信号时,检 测确定处理器读Cache操作对应的Cache行是下一被导出的Cache行;
第四处理单元,用于在所述第三确定单元检测确定处理器读Cache操作 对应的Cache行是下一被导出的Cache行时,执行处理器读Cache操作;
第二导出单元,用于在所述第三确定单元检测确定处理器读Cache操作 对应的Cache行是下一被导出的Cache行时,将所述读Cache操作对应的 Cache行中的内容进行导出。

10.  根据权利要求8或9所述的装置,其特征在于,所述装置还包括:
控制单元,用于控制地址生成器由Cache行地址范围的一端开始生成第 一地址。

11.  根据权利要求10所述的装置,其特征在于,所述将Cache中的内容 逐行导出的过程具体为:将所述控制单元控制地址生成器生成的第一地址所 对应的Cache行中的内容导出到压缩器内存储,每导出一Cache行后则所述 控制单元控制所述地址生成器将第一地址变化为下一Cache行地址。

12.  根据权利要求11所述的装置,其特征在于,所述第一确定单元包括:
接收子单元,用于接收比较器的比较结果,所述比较器用于比较处理器 写Cache操作对应的Cache行地址与当前第一地址的大小;
第一确定子单元,用于当所述地址生成器由Cache行地址范围的低地址 端开始生成第一地址时,所述接收子单元接收到的比较结果为处理器写 Cache操作对应的Cache行地址小于当前第一地址,确定处理器写Cache操 作对应的Cache行在Cache的已导出部分;
第二确定子单元,用于当所述地址生成器由Cache行地址范围的高地址 端开始生成第一地址时,所述接收子单元接收到的比较结果为处理器写 Cache操作对应的Cache行地址大于当前第一地址,确定处理器写Cache操 作对应的Cache行在Cache的已导出部分。

13.  根据权利要求11所述的装置,其特征在于,所述第二确定单元包括:
接收子单元,用于接收比较器的比较结果,所述比较器用于比较处理器 写Cache操作对应的Cache行地址与当前第一地址的大小;
第三确定子单元,用于当所述地址生成器由Cache行地址范围的低地址 端开始生成第一地址时,所述接收子单元接收到的比较结果为处理器写 Cache操作对应的Cache行地址大于或等于当前第一地址,确定处理器写 Cache操作对应的Cache行在Cache的未导出部分;
第四确定子单元,用于当所述地址生成器由Cache行地址范围的高地址 端开始生成第一地址时,所述接收子单元接收到的比较结果为处理器写 Cache操作对应的Cache行地址小于或等于当前第一地址,确定处理器写 Cache操作对应的Cache行在Cache的未导出部分。

14.  根据权利要求11所述的装置,其特征在于,所述第三确定单元包括:
接收子单元,用于接收比较器的比较结果,所述比较器还用于比较所述 处理器读Cache操作对应的Cache行地址与当前第一地址的大小;
第五确定子单元,用于所述接收子单元接收的比较结果为处理器读 Cache操作对应的Cache行地址等于当前第一地址,确定处理器读Cache操 作对应的Cache行是下一被导出的Cache行。

15.  一种建立处理器Cache检查点的系统,其特征在于,所述系统包括:
导出控制器,是权利要求8-14任一项所述的建立处理器Cache检查点的 装置;
地址生成器,用于根据所述导出控制器的控制生成第一地址;
比较器,用于比较处理器写Cache操作对应的Cache行地址与当前第一 地址的大小,比较所述处理器读Cache操作对应的Cache行地址与当前第一 地址的大小,并将比较结果发送给所述导出控制器;
压缩器,用于存储Cache行的内容。

说明书

说明书一种建立处理器Cache检查点的方法、装置及系统
技术领域
本发明涉及计算机技术领域,具体涉及一种建立处理器Cache检查点的 方法、装置及系统。
背景技术
在计算机系统中,处理器高速缓冲存储器(CPU Cache)是用于减少处 理器访问内存所需平均时间的部件,其容量远小于内存,但速度却可以接近 处理器的频率。同时,某个进程周期性地保存执行程序的状态至稳定存储器, 系统在失效后能够根据这些信息得以恢复,每一个被保存的程序状态称为检 查点,目前检查点技术广泛用于系统的容错设计中。则Cache检查点就是针 对Cache建立的检查点,它保存了某一时刻的整个Cache状态,在故障迁移 和状态恢复中,如果可以使用Cache检查点恢复Cache状态,那么处理器就 不用初始化Cache,节约了大量的Cache重建时间,加快了系统故障恢复和 状态迁移的速度。
在现有技术中,建立Cache检查点的方法,是在处理器工作的过程中, 利用Cache的空闲时间导出建立过程开始时刻的Cache状态到压缩器中,从 而建立Cache检查点。在Cache检查点建立过程中,如果没有对Cache的更 新操作,所有的Cache内容会按照Cache地址顺序依次导出到压缩器中。但 是如果有对Cache的更新操作,并且更新操作对应的Cache行中的原有内容 尚未导出,就需要暂停处理器操作,将此Cache行原有的内容先导出到压缩 器,然后再启动处理器更新该Cache行,即在需要更新未导出区域的数据时, 需要首先保存原有数据,也就需要延迟处理器更新数据的操作,暂停流水线 或者暂停访存操作。因此,现有技术建立处理器Cache检查点的方法存在影 响处理器运行的情况,影响系统的正常运行。
发明内容
有鉴于此,本发明实施例的主要目的是提供一种建立处理器Cache检查 点的方法、装置及系统,以解决现有技术中建立处理器Cache检查点的方法 存在影响处理器运行的情况,影响系统的正常运行的问题。
为解决上述问题,本发明提供的技术方案如下:
第一方面,本发明提供了一种建立处理器Cache检查点的方法,所述方 法包括:
在将Cache中的内容逐行导出的过程中,当接收到处理器写Cache信号 时,检测确定处理器写Cache操作对应的Cache行在Cache的已导出部分, 则执行处理器写Cache操作,并同时将所述写Cache操作写入Cache行中的 内容进行导出;
当接收到处理器写Cache信号时,检测确定处理器写Cache操作对应的 Cache行在Cache的未导出部分,则执行处理器写Cache操作,并暂停将Cache 中的内容进行导出;
当接收到处理器读Cache信号时,执行处理器读Cache操作,并暂停将 Cache中的内容进行导出。
在第一方面的第一种可能的实现方式中,所述方法还包括:
当接收到的处理器读Cache信号时,检测确定处理器读Cache操作对应 的Cache行是下一被导出的Cache行,则执行处理器读Cache操作,并同时 将所述读Cache操作对应的Cache行中的内容进行导出。
结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第 二种可能的实现方式中,所述方法还包括:
控制地址生成器由Cache行地址范围的一端开始生成第一地址。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中, 所述将Cache中的内容逐行导出的过程具体为:将所述第一地址所对应的 Cache行中的内容导出到压缩器内存储,每导出一Cache行后则控制所述地 址生成器将第一地址变化为下一Cache行地址。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中, 所述判断所述写操作对应的Cache行是否是已导出的Cache行,包括:
所述检测确定处理器写Cache操作对应的Cache行在Cache的已导出部 分,包括:
接收比较器的比较结果,所述比较器用于比较处理器写Cache操作对应 的Cache行地址与当前第一地址的大小;
当所述地址生成器由Cache行地址范围的低地址端开始生成第一地址 时,所述比较结果为处理器写Cache操作对应的Cache行地址小于当前第一 地址,确定处理器写Cache操作对应的Cache行在Cache的已导出部分;
当所述地址生成器由Cache行地址范围的高地址端开始生成第一地址 时,所述比较结果为处理器写Cache操作对应的Cache行地址大于当前第一 地址,确定处理器写Cache操作对应的Cache行在Cache的已导出部分。
结合第一方面的第三种可能的实现方式,在第五种可能的实现方式中, 所述检测确定处理器写Cache操作对应的Cache行在Cache的未导出部分, 包括:
接收比较器的比较结果,所述比较器用于比较处理器写Cache操作对应 的Cache行地址与当前第一地址的大小;
当所述地址生成器由Cache行地址范围的低地址端开始生成第一地址 时,所述比较结果为处理器写Cache操作对应的Cache行地址大于或等于当 前第一地址,确定处理器写Cache操作对应的Cache行在Cache的未导出部 分;
当所述地址生成器由Cache行地址范围的高地址端开始生成第一地址 时,所述比较结果为处理器写Cache操作对应的Cache行地址小于或等于当 前第一地址,确定处理器写Cache操作对应的Cache行在Cache的未导出部 分。
结合第一方面的第三种可能的实现方式,在第六种可能的实现方式中, 所述检测确定处理器读Cache操作对应的Cache行是下一被导出的Cache行, 包括:
接收比较器的比较结果,所述比较器还用于比较所述处理器读Cache操 作对应的Cache行地址与当前第一地址的大小;
所述比较结果为处理器读Cache操作对应的Cache行地址等于当前第一 地址,确定处理器读Cache操作对应的Cache行是下一被导出的Cache行。
第二方面,本发明提供了一种建立处理器Cache检查点的装置,所述装 置包括:
接收单元,用于在将Cache中的内容逐行导出的过程中,接收处理器写 Cache信号或者接收处理器读Cache信号;
第一确定单元,用于在所述接收单元接收到处理器写Cache信号时,检 测确定处理器写Cache操作对应的Cache行在Cache的已导出部分;
第一处理单元,用于在所述第一确定单元检测确定处理器写Cache操作 对应的Cache行在Cache的已导出部分时,执行处理器写Cache操作;
第一导出单元,用于在所述第一确定单元检测确定处理器写Cache操作 对应的Cache行在Cache的已导出部分时,将所述写Cache操作写入Cache 行中的内容进行导出;
第二确定单元,用于在所述接收单元接收到处理器写Cache信号时,检 测确定处理器写Cache操作对应的Cache行在Cache的未导出部分;
第二处理单元,用于在所述第二确定单元检测确定处理器写Cache操作 对应的Cache行在Cache的未导出部分时,执行处理器写Cache操作,并暂 停将Cache中的内容进行导出;
第三处理单元,用于在所述接收单元接收到处理器读Cache信号时,执 行处理器读Cache操作,并暂停将Cache中的内容进行导出。
在第二方面的第一种可能的实现方式中,所述装置还包括:
第三确定单元,用于在所述接收单元接收到处理器读Cache信号时,检 测确定处理器读Cache操作对应的Cache行是下一被导出的Cache行;
第四处理单元,用于在所述第三确定单元检测确定处理器读Cache操作 对应的Cache行是下一被导出的Cache行时,执行处理器读Cache操作;
第二导出单元,用于在所述第三确定单元检测确定处理器读Cache操作 对应的Cache行是下一被导出的Cache行时,将所述读Cache操作对应的 Cache行中的内容进行导出。
结合第二方面或者第二方面的第一种可能的实现方式,在第二种可能的 实现方式中,所述装置还包括:
控制单元,用于控制地址生成器由Cache行地址范围的一端开始生成第 一地址。
结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中, 所述将Cache中的内容逐行导出的过程具体为:将所述控制单元控制地址生 成器生成的第一地址所对应的Cache行中的内容导出到压缩器内存储,每导 出一Cache行后则所述控制单元控制所述地址生成器将第一地址变化为下一 Cache行地址。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中, 所述第一确定单元包括:
接收子单元,用于接收比较器的比较结果,所述比较器用于比较处理器 写Cache操作对应的Cache行地址与当前第一地址的大小;
第一确定子单元,用于当所述地址生成器由Cache行地址范围的低地址 端开始生成第一地址时,所述接收子单元接收到的比较结果为处理器写 Cache操作对应的Cache行地址小于当前第一地址,确定处理器写Cache操 作对应的Cache行在Cache的已导出部分;
第二确定子单元,用于当所述地址生成器由Cache行地址范围的高地址 端开始生成第一地址时,所述接收子单元接收到的比较结果为处理器写 Cache操作对应的Cache行地址大于当前第一地址,确定处理器写Cache操 作对应的Cache行在Cache的已导出部分。
结合第二方面的第三种可能的实现方式,在第五种可能的实现方式中, 所述第二确定单元包括:
接收子单元,用于接收比较器的比较结果,所述比较器用于比较处理器 写Cache操作对应的Cache行地址与当前第一地址的大小;
第三确定子单元,用于当所述地址生成器由Cache行地址范围的低地址 端开始生成第一地址时,所述接收子单元接收到的比较结果为处理器写 Cache操作对应的Cache行地址大于或等于当前第一地址,确定处理器写 Cache操作对应的Cache行在Cache的未导出部分;
第四确定子单元,用于当所述地址生成器由Cache行地址范围的高地址 端开始生成第一地址时,所述接收子单元接收到的比较结果为处理器写 Cache操作对应的Cache行地址小于或等于当前第一地址,确定处理器写 Cache操作对应的Cache行在Cache的未导出部分。
结合第二方面的第三种可能的实现方式,在第六种可能的实现方式中, 所述第三确定单元包括:
接收子单元,用于接收比较器的比较结果,所述比较器还用于比较所述 处理器读Cache操作对应的Cache行地址与当前第一地址的大小;
第五确定子单元,用于所述接收子单元接收的比较结果为处理器读 Cache操作对应的Cache行地址等于当前第一地址,确定处理器读Cache操 作对应的Cache行是下一被导出的Cache行。
第三方面,本发明提供了一种建立处理器Cache检查点的系统,所述系 统包括:
导出控制器,是本发明第二方面所述的建立处理器Cache检查点的装置;
地址生成器,用于根据所述导出控制器的控制生成第一地址;
比较器,用于比较处理器写Cache操作对应的Cache行地址与当前第一 地址的大小,比较所述处理器读Cache操作对应的Cache行地址与当前第一 地址的大小,并将比较结果发送给所述导出控制器;
压缩器,用于存储Cache行的内容。
由此可见,本发明实施例具有如下有益效果:
本发明实施例在将Cache中的内容逐行导出的过程中,如果检测确定处 理器需要写Cache且写Cache操作对应的Cache行在Cache的已导出部分, 则执行处理器写Cache操作,并同时将所述写Cache操作写入Cache行中的 内容进行导出;如果检测确定处理器需要写Cache且写Cache操作对应的 Cache行在Cache的未导出部分,则执行处理器写Cache操作,并暂停将Cache 中的内容进行导出;而检测到处理器需要读Cache则执行处理器读Cache操 作,并暂停将Cache中的内容进行导出。这样在逐行导出Cache中内容的过 程中,在Cache不空闲时,暂停Cache导出过程,当对Cache进行写操作即 发生对Cache的更新操作时,且更新操作发生在Cache的已导出部分,更新 的数据需要同时存储到压缩器内,这样导出到压缩器中的数据是每一Cache 行内的最新数据,建立的Cache检查点是建立过程结束时刻的Cache状态。 在整个Cache检查点建立过程中,在处理器一直处于正常工作的状态时,没 有因为建立Cache检查点中断或推迟处理器的任何操作,建立Cache检查点 的过程不存在影响处理器运行的情况,保证了系统的正常运行。
附图说明
图1为现有技术建立处理器Cache检查点的方法的示意图;
图2为本发明实施例建立处理器Cache检查点的方法实施例一的流程图;
图3为本发明实施例建立处理器Cache检查点的方法实施例的示意图;
图4为本发明实施例建立处理器Cache检查点的方法实施例二的流程图;
图5为本发明实施例建立处理器Cache检查点的方法实施例三的流程图;
图6为本发明实施例建立处理器Cache检查点的装置实施例一的示意图;
图7为本发明实施例建立处理器Cache检查点的装置实施例二的示意图;
图8为本发明实施例建立处理器Cache检查点的系统实施例一的示意图;
图9为本发明实施例建立处理器Cache检查点的系统实施例二的结构图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图 和具体实施方式对本发明实施例作进一步详细的说明。
本发明实施例的建立处理器Cache检查点的方法、装置及系统可以适用 于CPU Cache的检查点建立。CPU Cache是用于减少处理器访问内存所需平 均时间的部件,每个Cache由若干Cache行组成,每个Cache行中又可以包 括索引(Index)、标签(Tag)、若干标志位,如有效位(valid bit)、脏位(dirty  bit)、使用位(use bit)等。在处理器看来,Cache可以认为是一个透明部件, 通常无法直接干预对缓存的操作,也无法通过软件的方法直接读取Cache的 内容。
在大规模系统中,设计越来越复杂,规模越来越大,一些部件出现故障 会影响整个系统的运行,甚至整个系统的瘫痪,可靠性问题越来越严峻。为 了保障系统的可靠性,可以使用故障恢复技术和状态迁移技术。在故障迁移 和状态恢复中,如果可以使用Cache检查点恢复Cache状态,那么处理器就不 用初始化Cache,节约了大量的Cache重建时间,加快了系统故障恢复和状态 迁移的速度。Cache检查点也可以用于系统的检错,纠错和故障诊断中,辅助 系统调试等。
在现有技术中,有一种离线建立Cache检查点的方法,当系统需要建立检 查点时,首先暂停处理器的运行,停止流水线,在所有Cache数据都存储到压 缩器后,再启动处理器。但是这种方法,需要暂停处理器的正常工作状态, 停止流水线,影响了系统的运行,在建立Cache检查点阶段处理器不能执行任 何操作,所需时间长,成本高。同时此技术破坏了系统的实时性,对于一些 实时系统,暂停以后处理器可能无法再继续正常运行。
因此,在现有技术中,有另一种建立Cache检查点的方法,其主要思想是 将导出建立过程开始时刻的Cache状态到压缩器中。参见图1所示,系统从A 时刻开始导出Cache的内容到压缩器中,直到B时刻结束,导出的Cache内容 为A时刻的Cache状态。在此建立过程中,如果Cache没有数据更新操作,所 有的Cache行会按照Cache地址顺序依次导出到压缩器中。但是如果有更新操 作,并且更新的Cache行的内容尚未导出,就需要暂停流水线,将此Cache行 原有的内容先导出到压缩器,然后再启动流水线,更新该Cache行。否则,更 新操作覆盖了原有数据,原有数据无法获得,也就无法导出A时刻的Cache数 据。
由此可见,这种现有技术会影响处理器的运行,即在需要更新未导出区 域的数据时,需要首先保存原有数据,也就需要延迟处理器更新数据的操作, 暂停流水线或者暂停访存操作,使得数据导出时的处理器执行与正常模式不 一样,一些操作被推迟,影响了系统的正常运行。
因此,在现有技术中建立Cache检查点的方式均会影响处理器的正常运 行,为此本发明实施例提供了如下的建立处理器Cache检查点的方法、装置 及系统。
参见图2所示,本发明实施例建立处理器Cache检查点的方法实施例一, 可以包括以下步骤:
步骤201:在将Cache中的内容逐行导出的过程中,当接收到处理器写 Cache信号时,检测确定处理器写Cache操作对应的Cache行在Cache的已 导出部分,则执行处理器写Cache操作,并同时将所述写Cache操作写入 Cache行中的内容进行导出。
本发明实施例建立处理器Cache检查点的方法可以由结合处理器Cache 架构新增的导出控制器执行。
在接收到外部输入的使能信号时,可以在不存在对Cache的读写操作即 Cache处于空闲状态时,开始按照Cache地址顺序由低至高或者由高至低导 出每一行的Cache数据内容到压缩器中,在具体实现中,可以每导出一行返 回继续判断是否存在对Cache的读写操作,如果Cache继续空闲,则导出上 一导出Cache行的下一Cache行中的内容,即在Cache空闲的状态下逐行导 出Cache的内容。
在将Cache中的内容逐行导出的过程中,整个Cache就可以被分为两个 部分:已导出部分和未导出部分。
其中,每次导出的数据包括该Cache行的所有数据,即Tag、Valid、Dirty、 Data信息。Tag信息为标识信息,与Cache行地址,偏移地址结合可以确定 该Cache行中的保存的数据的段地址偏移;Valid位是有效位信息,表示该数 据是否有效;Dirty位是脏位信息,在写回策略中,确定该数据是否被更新过; Data信息则为Cache行保存的对应地址的数据内容。
压缩器可以使用无损压缩的方法,根据Tag,data信息之间的相关性进 行压缩,在Cache行的内容进行存储。
当接收到处理器写Cache信号时,代表处理器需要执行写Cache操作, 写操作即更新操作,是向Cache内写入需要更新的数据。当接收到处理器写 Cache信号时,进一步检测确定写操作发生的位置,在确定写操作发生在 Cache的已导出部分,写入Cache的数据除了要写入到Cache中之外,还需 要同时进行导出存储到压缩器中,
步骤202:当接收到处理器写Cache信号时,检测确定处理器写Cache 操作对应的Cache行在Cache的未导出部分,则执行处理器写Cache操作, 并暂停将Cache中的内容进行导出。
当检测确定处理器写Cache操作对应的Cache行在Cache的未导出部分, 则可以正常执行处理器写Cache操作,并暂停将Cache中的内容进行导出。 可以在处理器写Cache操作后继续将Cache中的内容逐行导出的过程。
步骤203:当接收到处理器读Cache信号时,执行处理器读Cache操作, 并暂停将Cache中的内容进行导出。
当接收到处理器读Cache信号时,也即处理器需要进行读读Cache操作, 则正常执行处理器读Cache操作,并暂停将Cache中的内容进行导出。可以在 处理器读Cache操作后继续将Cache中的内容逐行导出的过程。
如果全部Cache行已经被导出,则一个处理器Cache检查点建立完成,此 时保存在压缩器中的Cache内容是导出结束时刻的Cache中的内容。
参见图3所示,本发明实施例在建立Cache检查点的过程中Cache会被 分为已导出部分和未导出部分,当更新操作发生在已导出部分时,更新的数 据同时保存到压缩器中,对处理器更新Cache操作本身没有任何影响,这样 本发明实施例中所导出的Cache数据始终为Cache的最新内容,即建立的 Cache检查点为导出结束时刻B时刻的Cache状态,在整个Cache检查点建 立过程中,在处理器一直处于正常工作的状态时,没有因为建立Cache检查 点中断或推迟处理器的任何操作,建立Cache检查点的过程不存在影响处理 器运行的情况,保证了系统的正常运行。
在发明的一些实施例中,本发明实施例建立处理器Cache检查点的方法 还可以包括:
当接收到的处理器读Cache信号时,检测确定处理器读Cache操作对应 的Cache行是下一被导出的Cache行,则执行处理器读Cache操作,并同时 将所述读Cache操作对应的Cache行中的内容进行导出。
也就是说,在对Cache的读写操作为对Cache的读操作时,为了加快导 出Cache的速度,在读操作对应的Cache行正好是下一Cache行时,同样对 该Cache行中的内容进行导出,也即Cache读操作时原本是需要对Cache导 出进行暂停的,但当读操作所对应的Cache行是在下一次即将导出的Cache 行时,直接将该行内容导出,在特殊情况下,读操作时也进行了Cache的导 出,加快了速度,避免了对Cache内容的重复读取。
参见图4所示,本发明实施例建立处理器Cache检查点的方法实施例二, 可以包括以下步骤:
步骤401:在接收外部输入的使能信号时,进入步骤403。
在接收到外部输入的使能信号时,开始判断是否存在对Cache的读写操 作。也即在接收到外部的使能信号时,开始建立处理器Cache检查点的过程。
步骤402:判断全部Cache行是否已经被导出,如果是,建立处理器Cache 检查点结束,如果否,进入步骤403。
步骤403:判断是否存在对Cache的读写操作,如果是,进入步骤405 或步骤408,如果否,进入步骤404。
步骤404:将上一导出Cache行的下一Cache行中的内容导出到压缩器 内存储,并返回步骤402。
需要注意的是,在开始判断是否存在对Cache的读写操作后,首次获得 不存在对Cache的读写操作的判断结果时,由于还不存在上一导出Cache行, 故上一导出Cache行的下一Cache行可以认为就是第一行Cache行。
步骤405:当接收到处理器写Cache信号即存在对Cache的写操作时, 检测处理器写Cache操作对应的Cache行是否在Cache的已导出部分,如果 是,进入步骤406,如果否,进入步骤407。
步骤406:执行处理器写Cache操作,将处理器写Cache操作写入该Cache 行中的内容同时存储到压缩器内存储,并返回步骤402。
步骤407:执行处理器写Cache操作,暂停将Cache中的内容进行导出, 并返回步骤402。
步骤408:当接收到处理器读Cache信号即存在对Cache的读操作时, 检测处理器读Cache操作对应的Cache行是否是上一导出Cache行的下一 Cache行,如果是,进入步骤404,如果否,进入步骤409。
步骤409:执行处理器读Cache操作,暂停将Cache中的内容进行导出, 并返回步骤402。
本方法实施例包括了建立Cache检查点的完整过程,当接收到外部输入 的使能信号时,开始Cache检查点的建立,在对任一Cache行进行操作后实 时判断Cache的当前状态,以决定后续对Cache进行怎样的操作,直到全部 Cache行的内容均被导出后,停止导出步骤,一个Cache检查点建立过程完 成。
具体的,从本方法实施例中可以看出,当开始建立检查点后,如果处理 器处于以下三种情况时,则导出控制器允许保存数据至压缩器中:
第一,处理器不读写Cache,即Cache处于空闲状态,将上一导出Cache 行的下一Cache行中的内容导出到压缩器内存储;
第二,处理器处于读Cache操作,同时读取的Cache行与下一被导出的 Cache行相同,则将该下一被导出的Cache行即上一导出Cache行的下一 Cache行中的内容导出到压缩器内存储;
第三,处理器更新Cache数据,同时更新的Cache行是已导出的Cache 行,则将更新的数据同时存储到压缩器内存储。
这样,本发明实施例建立处理器Cache检查点的方法使处理器在正常工 作状态时,依然可以实现Cache检查点的建立。
在具体应用中,为了实现本发明实施例建立处理器Cache检查点的方法 可以结合处理器Cache架构还可以增加地址生成器、比较器。地址生成器可 以用于根据所述导出控制器的控制生成第一地址,第一地址可以认为是当前 即将需要导出的Cache行地址;比较器可以用于处理器写Cache操作对应的 Cache行地址与当前第一地址的大小,比较所述处理器读Cache操作对应的 Cache行地址与当前第一地址的大小,,并将比较结果发送给导出控制器,以 判断更新操作是否发生在已导出部分,或者读操作对于的地址是否是即将需 要导出的Cache行地址,进一步使导出控制器根据比较器的比较结果、Cache 是否处于空闲状态等信息决定是否将数据保存到压缩器中。
具体的,在发明的一些实施例中,本发明实施例建立处理器Cache检查 点的方法还可以包括:
控制地址生成器由Cache行地址范围的一端开始生成第一地址。
即在接收到外部输入的使能信号时,建立处理器Cache检测点开始,导 出控制器控制地址生成器由Cache的低地址端或高地址端开始生成第一地 址,第一地址对应的即为当前需要导出的Cache行地址。每导出一行Cache 的内容,则控制地址生成器将当前第一地址变化为下一Cache行地址的地址, 例如从低地址端开始生成第一地址,在每导出一行Cache的内容后,第一地 址自增至下一Cache行地址,这样将Cache行中的内容导出到压缩器内存储 的实现就可以是导出变化后的第一地址对应的Cache行内容。
这样,在本发明的一些实施例中,将Cache中的内容逐行导出的过程具 体可以为:将第一地址所对应的Cache行中的内容导出到压缩器内存储,每 导出一Cache行后则控制所述地址生成器将第一地址变化为下一Cache行地 址。
在本发明的一些实施例中,检测确定处理器写Cache操作对应的Cache 行在Cache的已导出部分的具体实现可以包括:
接收比较器的比较结果,比较器用于比较处理器写Cache操作对应的 Cache行地址与当前第一地址的大小;
当地址生成器由Cache行地址范围的低地址端开始生成第一地址时,比 较结果为处理器写Cache操作对应的Cache行地址小于当前第一地址,确定 处理器写Cache操作对应的Cache行在Cache的已导出部分;
当地址生成器由Cache行地址范围的高地址端开始生成第一地址时,比 较结果为处理器写Cache操作对应的Cache行地址大于当前第一地址,确定 处理器写Cache操作对应的Cache行在Cache的已导出部分。
以地址生成器由Cache行地址范围的低地址端开始生成第一地址为例, 在符合导出Cache行内容的情况下,将第一地址对应的Cache行导出后,第 一地址自增至下一Cache行地址,重复此过程,这样,Cache的低地址到当 前第一地址(不包括当前第一地址)的Cache范围就是已导出部分,则可以 判断写操作对应的Cache行地址与当前第一地址的大小,写操作对应的Cache 行地址小于当前第一地址时,写操作对应的Cache行在已导出部分,该写操 场写入该Cache行的内容需要同时保存到压缩器中。当地址生成器由Cache 行地址范围的高地址端开始生成第一地址时,则写操作对应的Cache行地址 大于当前第一地址时,代表写操作对应的Cache行在已导出部分。
类似的,在本发明的一些实施例中,检测确定处理器写Cache操作对应 的Cache行在Cache的未导出部分的具体实现可以包括:
接收比较器的比较结果,比较器用于比较处理器写Cache操作对应的 Cache行地址与当前第一地址的大小;
当地址生成器由Cache行地址范围的低地址端开始生成第一地址时,比 较结果为处理器写Cache操作对应的Cache行地址大于或等于当前第一地址, 确定处理器写Cache操作对应的Cache行在Cache的未导出部分;
当地址生成器由Cache行地址范围的高地址端开始生成第一地址时,比 较结果为处理器写Cache操作对应的Cache行地址小于或等于当前第一地址, 确定处理器写Cache操作对应的Cache行在Cache的未导出部分。
类似的,在本发明的一些实施例中,检测确定处理器读Cache操作对应 的Cache行是下一被导出的Cache行的具体实现可以包括:
接收比较器的比较结果,比较器还用于比较处理器读Cache操作对应的 Cache行地址与当前第一地址的大小;
比较结果为处理器读Cache操作对应的Cache行地址等于当前第一地址, 确定处理器读Cache操作对应的Cache行是下一被导出的Cache行。
参见图5所示,本发明实施例建立处理器Cache检查点的方法实施例三, 可以包括以下步骤:
步骤501:在接收外部输入的使能信号时,控制地址生成器由Cache的 低地址端开始生成第一地址,并进入步骤503。
步骤502:判断全部Cache行是否已经被导出,如果是,建立处理器Cache 检查点结束,如果否,进入步骤503。
步骤503:判断是否存在对Cache的读写操作,如果是,进入步骤504, 如果否,进入步骤505。
步骤504:检测处理器读写Cache操作的类型,如果存在对Cache的写 操作时,进入步骤506,如果存在对Cache的读操作时,进入步骤507。
步骤505:将第一地址所对应的Cache行中的内容导出到压缩器内存储, 并控制地址生成器将第一地址增加到下一Cache行地址,返回步骤502。
步骤506:接收比较器的比较结果,判断比较结果是否为处理器写Cache 操作对应的Cache行地址小于当前第一地址,如果是,进入步骤508,如果 否,进入步骤509。
步骤507:接收比较器的比较结果,判断比较结果是否为处理器读Cache 操作对应的Cache行地址等于当前第一地址,如果是,进入步骤505,如果 否,进入步骤510。
步骤508:执行处理器写Cache操作,并将写操作写入该Cache行的内 容同时存储到压缩器内存储,并返回步骤502。
步骤509:执行处理器写Cache操作,并暂停对Cache行的导出,并返 回步骤502。
步骤510:执行处理器读Cache操作,并暂停对Cache行的导出,并返 回步骤502。
本方法实施例以地址生成器由Cache的低地址端开始生成第一地址为 例,说明了具体在哪些情况下进行Cache内容的导出以及判断条件,进一步 的,在不存在对Cache的读写操作即Cache空闲时将第一地址所对应的Cache 行中的内容导出到压缩器内存储;在比较器的比较结果为读操作对应的 Cache行地址等于当前第一地址时将第一地址所对应的Cache行中的内容导 出到压缩器内存储;在比较器的比较结果为写操作对应的Cache行地址小于 当前第一地址时,将写操作写入该Cache行的内容同时存储到压缩器内存储, 以实现Cache检查点的建立。
类似的,地址生成器由Cache的高地址端开始生成第一地址,则在不存 在对Cache的读写操作即Cache空闲时将第一地址所对应的Cache行中的内 容导出到压缩器内存储;在比较器的比较结果为读操作对应的Cache行地址 等于当前第一地址时将第一地址所对应的Cache行中的内容导出到压缩器内 存储;在比较器的比较结果为写操作对应的Cache行地址大于当前第一地址 时,将写操作写入该Cache行的内容同时存储到压缩器内存储,以实现Cache 检查点的建立。
这样,本发明实施例从检查点建立时刻起,在不存在对Cache的读写操 作即Cache空闲状态时,逐行导出Cache中的内容到压缩器内存储,在Cache 不空闲时,暂停Cache导出过程,但当对Cache进行写操作即发生Cache更 新操作时,且更新操作发生在Cache的已导出部分,更新的数据需要同时存 储到压缩器内,这样导出到压缩器中的数据是每一Cache行内的最新数据, 建立的Cache检查点是建立过程结束时刻的Cache状态。在整个Cache检查 点建立过程中,在处理器一直处于正常工作的状态时,没有因为建立Cache 检查点中断或推迟处理器的任何操作,建立Cache检查点的过程不存在影响 处理器运行的情况,保证了系统的正常运行。
相应的,参见图6所示,本发明实施例建立处理器Cache检查点的装置 实施例一,可以包括:
接收单元601,用于在将Cache中的内容逐行导出的过程中,接收处理 器写Cache信号或者接收处理器读Cache信号。
第一确定单元602,用于在接收单元接收到处理器写Cache信号时,检 测确定处理器写Cache操作对应的Cache行在Cache的已导出部分。
第一处理单元603,用于在第一确定单元检测确定处理器写Cache操作 对应的Cache行在Cache的已导出部分时,执行处理器写Cache操作。
第一导出单元604,用于在第一确定单元检测确定处理器写Cache操作 对应的Cache行在Cache的已导出部分时,将写Cache操作写入Cache行中 的内容进行导出。
第二确定单元605,用于在接收单元接收到处理器写Cache信号时,检 测确定处理器写Cache操作对应的Cache行在Cache的未导出部分。
第二处理单元606,用于在第二确定单元检测确定处理器写Cache操作 对应的Cache行在Cache的未导出部分时,执行处理器写Cache操作,并暂 停将Cache中的内容进行导出。
第三处理单元607,用于在接收单元接收到处理器读Cache信号时,执 行处理器读Cache操作,并暂停将Cache中的内容进行导出。
在本发明的一些实施例中,本发明实施例建立处理器Cache检查点的装 置还可以包括:
第三确定单元,用于在接收单元接收到处理器读Cache信号时,检测确 定处理器读Cache操作对应的Cache行是下一被导出的Cache行;
第四处理单元,用于在第三确定单元检测确定处理器读Cache操作对应 的Cache行是下一被导出的Cache行时,执行处理器读Cache操作;
第二导出单元,用于在第三确定单元检测确定处理器读Cache操作对应 的Cache行是下一被导出的Cache行时,将读Cache操作对应的Cache行中 的内容进行导出。
参见图7所示,本发明实施例建立处理器Cache检查点的装置实施例二, 可以包括:
接收单元701,用于接收处理器写Cache信号或者接收处理器读Cache 信号。
第一判断单元702,用于判断是否全部Cache行已经被导出,如果第一 判断单元的判断结果为全部Cache行已经被导出,则建立处理器Cache检查 点结束,如果第一判断单元的判断结果为Cache行没有被全部导出,则进入 第二判断单元判断是否存在对Cache的读写操作。
第二判断单元703,用于根据是否接收单元接收到的处理器写Cache信 号或者接收处理器读Cache信号判断是否存在对Cache的读写操作。
第三导出单元704,用于如果第二判断单元的判断结果为不存在对Cache 的读写操作时,将上一导出Cache行的下一Cache行中的内容导出到压缩器 内存储,并进入第一判断单元。
第一确定单元705,在接收单元接收到处理器写Cache信号使第二判断 单元的判断结果为存在对Cache的写操作时,检测确定处理器写Cache操作 对应的Cache行在Cache的已导出部分。
第一处理单元706,用于在第一确定单元检测确定处理器写Cache操作 对应的Cache行在Cache的已导出部分时,执行处理器写Cache操作。
第一导出单元707,用于在第一确定单元检测确定处理器写Cache操作 对应的Cache行在Cache的已导出部分时,将写Cache操作写入Cache行中 的内容进行导出,并进入第一判断单元;
第二确定单元708,用于在接收单元接收到处理器写Cache信号使第二 判断单元的判断结果为存在对Cache的写操作时,检测确定处理器写Cache 操作对应的Cache行在Cache的未导出部分;
第二处理单元709,用于在第二确定单元检测确定处理器写Cache操作 对应的Cache行在Cache的未导出部分时,执行处理器写Cache操作,并暂 停将Cache中的内容进行导出,并进入第一判断单元;
第三确定单元710,用于在接收单元接收到处理器读Cache信号使第二 判断单元的判断结果为存在对Cache的读操作时,检测确定处理器读Cache 操作对应的Cache行是下一被导出的Cache行;
第四处理单元711,用于在第三确定单元检测确定处理器读Cache操作 对应的Cache行是下一被导出的Cache行时,执行处理器读Cache操作;
第二导出单元712,用于在第三确定单元检测确定处理器读Cache操作 对应的Cache行是下一被导出的Cache行时,将读Cache操作对应的Cache 行中的内容进行导出,并进入第一判断单元。
第四确定单元713,用于在接收单元接收到处理器读Cache信号使第二 判断单元的判断结果为存在对Cache的读操作时,检测确定处理器读Cache 操作对应的Cache行不是下一被导出的Cache行;
第三处理单元714,用于第四确定单元检测确定处理器读Cache操作对 应的Cache行不是下一被导出的Cache行,执行处理器读Cache操作,暂停 将Cache中的内容进行导出。
在本发明的一些实施例中,本发明实施例建立处理器Cache检查点的装 置还可以包括:
控制单元,用于控制地址生成器由Cache行地址范围的一端开始生成第 一地址。
在本发明的一些实施例中,将Cache中的内容逐行导出的过程具体为: 将控制单元控制地址生成器生成的第一地址所对应的Cache行中的内容导出 到压缩器内存储,每导出一Cache行后则控制单元控制地址生成器将第一地 址变化为下一Cache行地址。
在本发明的一些实施例中,第一确定单元可以包括:
接收子单元,用于接收比较器的比较结果,比较器用于比较处理器写 Cache操作对应的Cache行地址与当前第一地址的大小;
第一确定子单元,用于当地址生成器由Cache行地址范围的低地址端开 始生成第一地址时,接收子单元接收到的比较结果为处理器写Cache操作对 应的Cache行地址小于当前第一地址,确定处理器写Cache操作对应的Cache 行在Cache的已导出部分;
第二确定子单元,用于当地址生成器由Cache行地址范围的高地址端开 始生成第一地址时,接收子单元接收到的比较结果为处理器写Cache操作对 应的Cache行地址大于当前第一地址,确定处理器写Cache操作对应的Cache 行在Cache的已导出部分。
在本发明的一些实施例中,第二确定单元可以包括:
接收子单元,用于接收比较器的比较结果,比较器用于比较处理器写 Cache操作对应的Cache行地址与当前第一地址的大小;
第三确定子单元,用于当地址生成器由Cache行地址范围的低地址端开 始生成第一地址时,接收子单元接收到的比较结果为处理器写Cache操作对 应的Cache行地址大于或等于当前第一地址,确定处理器写Cache操作对应 的Cache行在Cache的未导出部分;
第四确定子单元,用于当地址生成器由Cache行地址范围的高地址端开 始生成第一地址时,接收子单元接收到的比较结果为处理器写Cache操作对 应的Cache行地址小于或等于当前第一地址,确定处理器写Cache操作对应 的Cache行在Cache的未导出部分。
在本发明的一些实施例中,第三确定单元可以包括:
接收子单元,用于接收比较器的比较结果,比较器还用于比较处理器读 Cache操作对应的Cache行地址与当前第一地址的大小;
第五确定子单元,用于接收子单元接收的比较结果为处理器读Cache操 作对应的Cache行地址等于当前第一地址,确定处理器读Cache操作对应的 Cache行是下一被导出的Cache行。
这样,本发明实施例从检查点建立时刻起,在不存在对Cache的读写操 作即Cache空闲状态时,逐行导出Cache中的内容到压缩器内存储,在Cache 不空闲时,暂停Cache导出过程,但当对Cache进行写操作即发生Cache更 新操作时,且更新操作发生在Cache的已导出部分,更新的数据需要同时存 储到压缩器内,这样导出到压缩器中的数据是每一Cache行内的最新数据, 建立的Cache检查点是建立过程结束时刻的Cache状态。在整个Cache检查 点建立过程中,在处理器一直处于正常工作的状态时,没有因为建立Cache 检查点中断或推迟处理器的任何操作,建立Cache检查点的过程不存在影响 处理器运行的情况,保证了系统的正常运行。
相应的,参见图8所示,本发明实施例建立处理器Cache检查点的系统 实施例一,可以包括:
导出控制器801,可以是上述的建立处理器Cache检查点的装置实施例。
地址生成器802,用于根据导出控制器的控制生成第一地址;
比较器803,用于比较处理器写Cache操作对应的Cache行地址与当前 第一地址的大小,比较处理器读Cache操作对应的Cache行地址与当前第一 地址的大小,并将比较结果发送给导出控制器;
压缩器804,用于存储Cache行的内容。
本系统实施例的工作原理是:
导出控制器在接收外部输入的使能信号时,控制地址生成器由Cache行 地址范围的一端开始生成第一地址,并判断是否存在对Cache的读写操作;
如果不存在对Cache的读写操作时,将第一地址所对应的Cache行中的 内容导出到压缩器内存储,并控制地址生成器将第一地址变化为下一Cache 行地址,判断全部Cache行是否已经被导出;如果全部Cache行已经被导出, 则建立处理器Cache检查点结束,如果Cache行没有被全部导出,继续判断 是否存在对Cache的读写操作;如果存在对Cache的读写操作时,判断读写 操作的类型;
如果对Cache的读写操作为对Cache的写操作,接收比较器的比较结果, 判断比较结果是否为写操作对应的Cache行是已导出的Cache行;如果对 Cache的读写操作为对Cache的读操作,接收比较器的比较结果,判断比较 器的比较结果是否为读操作对应的Cache行地址等于当前第一地址;
如果比较器的比较结果为写操作对应的Cache行是已导出的Cache行, 将写操作写入该Cache行的内容同时存储到压缩器内存储,返回判断全部 Cache行是否已经被导出;如果比较器的比较结果为写操作对应的Cache行 不是已导出的Cache行,暂停对Cache行的导出,返回判断全部Cache行是 否已经被导出;
如果比较器的比较结果为读操作对应的Cache行地址等于当前第一地 址,并控制地址生成器将第一地址变化为下一Cache行地址,返回判断全部 Cache行是否已经被导出;如果比较器的比较结果为读操作对应的Cache行 地址不等于当前第一地址,暂停对Cache行的导出,返回判断全部Cache行 是否已经被导出。
也就是说,在将Cache中的内容逐行导出的过程中,当接收到处理器写 Cache信号时,检测确定处理器写Cache操作对应的Cache行在Cache的已 导出部分,则执行处理器写Cache操作,并同时将写Cache操作写入Cache 行中的内容进行导出。
当接收到处理器写Cache信号时,检测确定处理器写Cache操作对应的 Cache行在Cache的未导出部分,则执行处理器写Cache操作,并暂停将Cache 中的内容进行导出。
当接收到的处理器读Cache信号时,检测确定处理器读Cache操作对应 的Cache行是下一被导出的Cache行,则执行处理器读Cache操作,并同时 将读Cache操作对应的Cache行中的内容进行导出。
当接收到处理器读Cache信号时,检测确定处理器读Cache操作对应的 Cache行不是下一被导出的Cache行,执行处理器读Cache操作,并暂停将 Cache中的内容进行导出。
这样,可以实现将导出结束时刻的Cache状态导出到压缩器中存储。
参见图9所示,是本发明实施例建立处理器Cache检查点的系统实施例 二,在实际应用中,结合具体的Cache结构,本发明实施例增加的硬件模块 包括地址生成器、比较器、导出控制器、压缩器以及若干个选择器。
在实际应用中,当Dump_enable使能信号有效,系统使能了Cache检查 点建立,开始建立Cache检查点,导出控制器控制地址生成器开始生成第一 地址(以从低地址端生成第一地址为例);
导出控制器接收处理器访存单元(LSQ)发出的Valid信号,判断是否存 在对Cache的读写操作;
当Valid信号无效时,代表Cache空闲,导出控制器向压缩器发送使能 Dump信号,通过Addr_sel信号选择地址生成器生成的第一地址作为Cache 读写地址,将地址生成器生成的第一地址对应的Cache行内容导出到压缩器, 导出数据包括该Cache行内的Tag、Valid、Data等全部数据,然后控制地址 生成器自增到下一Cache地址。如果Cache仍空闲,重复上述过程;
当Valid信号有效时,代表Cache不空闲,导出控制器无效Dump信号, 暂停导出过程。但当检测到以下两种情况发生时,导出控制器使能Dump信 号,导出相应数据:
第一,接收LSQ发送的写信号Wr或者读信号Rw,以判断读写操作的 类型,当为处理器更新已导出部分的Cache时,即Wr信号有效,同时接收 比较器Cpr_res信号,当第一地址小于Cache的读写地址Address时,同时将 更新的数据导出到压缩器中;
第二,当为读操作时,接收比较器Cpr_res信号,当Cache的读写地址 Address等于第一地址时,将第一地址对应的Cache行内容导出到压缩器内 存储;
具体的,导出控制器发出Dsel信号,选择压缩器的数据来源,当将更新 的数据存储到压缩器中时,利用Dsel信号控制选择ND数据流;当将Cache 的数据导出到压缩器中时,利用Dsel信号控制选择Cache的数据流;
当地址生成器达到地址最大值时,导出结束,Cache此时刻的状态全 部存储在压缩器中,一个Cache检查点建立过程完成。
其中,LSQ(load store queue,访存队列)其作用就是缓存处理器对于 Cache的访存操作,并将访存操作发送到Cache,在本发明实施例中,LSQ 的作用是向Cache发送读写命令,以使能相应的Wr或Rw信号,在Wr写使 能信号有效时,送入写数据,在Rw读使能信号有效时,读出数据。
另外,FSM(Finite State Machine,有限状态机),其相当于Cache的控 制器模块,用于生成各种Cache控制信号,并与其它模块(LSQ和内存Mem) 进行交互。Full信号用于标示压缩器存储空间是否已满,如果存储空间已满, 则不能继续存储新数据。
这样,本发明实施例从检查点建立时刻起,在处理器不存在对Cache的 读写操作即Cache空闲状态时,逐行导出Cache中的内容到压缩器内存储, 在Cache不空闲时,暂停Cache导出过程,但当对Cache进行写操作即发生 Cache更新操作时,且更新操作发生在Cache的已导出部分,更新的数据需 要同时存储到压缩器内,这样导出到压缩器中的数据是每一Cache行内的最 新数据,建立的Cache检查点是建立过程结束时刻的Cache状态。在整个 Cache检查点建立过程中,在处理器一直处于正常工作的状态时,没有因为 建立Cache检查点中断或推迟处理器的任何操作,建立Cache检查点的过程 不存在影响处理器运行的情况,保证了系统的正常运行。
同时,当系统发生故障(例如软错误)后,需要进行故障恢复,回滚到 上一个无故障的检查点。保存的Cache检查点可以快速的恢复Cache的状态, 使得系统能够最快的恢复到正常运行,避免发生大量的Cache miss,提高访 存效率。同样在状态迁移,即将一个处理器的状态迁移到另一个处理器,Cache 状态的恢复也可以使处理器快速的恢复局部性,能够直接从Cache中获得所 需数据,提高了迁移的效率。
Cache检查点中保存了处理器最近使用的数据,这些数据对于了解程序 的运行和系统的状态都很重要,因此可用于系统的检错,纠错,故障恢复和 故障诊断。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施 例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分 互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的 方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用 来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗 示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包 括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一 系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有 明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固 有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素, 并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同 要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、 处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存 储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编 程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的 任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用 本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易 见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下, 在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例, 而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

一种建立处理器CACHE检查点的方法、装置及系统.pdf_第1页
第1页 / 共24页
一种建立处理器CACHE检查点的方法、装置及系统.pdf_第2页
第2页 / 共24页
一种建立处理器CACHE检查点的方法、装置及系统.pdf_第3页
第3页 / 共24页
点击查看更多>>
资源描述

《一种建立处理器CACHE检查点的方法、装置及系统.pdf》由会员分享,可在线阅读,更多相关《一种建立处理器CACHE检查点的方法、装置及系统.pdf(24页珍藏版)》请在专利查询网上搜索。

本发明实施例公开了一种建立处理器Cache检查点的方法、装置及系统,以保证建立Cache检查点不存在影响处理器运行,该方法包括:在Cache中内容逐行导出过程中,当接收到处理器写Cache信号时,检测确定处理器写Cache操作对应的Cache行在Cache的已导出部分,执行处理器写Cache操作,同时将写Cache操作写入Cache行中内容导出;当接收到处理器写Cache信号时,检测确定处理器写C。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1