数据验证方法、装置和系统制造方法及图纸

技术编号:7996324 阅读:148 留言:0更新日期:2012-11-22 05:09
本发明专利技术公开了一种数据验证方法、装置和系统。其中数据验证方法包括,根据电路中n个处理器对应的当前状态空间,以及目标状态空间,在预先获取的激励数据库中进行查找,获得至少一条目标激励;目标激励为当前状态空间与目标状态空间之间进行跳变所需的激励;执行每条目标激励,指示第一处理器执行目标激励中的指令,在第一处理器执行目标激励中的指令结束后,判断由n个处理器的工作状态构成的状态空间与目标状态空间是否属于同一种状态空间;若判断结果为是,则继续执行下一条目标激励,直至执行完全部目标激励之后,获得n个处理器中所存储的数据相同的验证结果,从而有效地提高了对电路中各CPU的Cache一致性进行验证的效率。

【技术实现步骤摘要】

本专利技术涉及计算机技木,尤其涉及ー种数据验证方法、装置和系统
技术介绍
在多核处理器系统中,同一数据块可能被多个处理器进行读写操作,当某个处理器对共享的数据块进行写操作时,其他处理器的高速缓冲处理器(Cache)中该数据块的副本将成为过时的数据。正常情况下,各处理器会监听其他处理器所进行的操作,及时更新其Cache中的数据块,但是,若由于系统故障导致部分处理器未能读取到最新的数据,则会导致程序运行的结果出错。现有技术中可以利用状态列举法验证多个处理器的Cache中的数据是否一致。通过研究整个系统的状态空间,用有限状态机描述协议中组件的模型,并由所有组件的状态 组成全局状态,进而推导出系统所有可达的状态。由于该方法利用状态递归的方法求出系统的全部状态空间,使得提取全部状态空间中任意两个状态之间的间接跳变关系十分复杂,当处理器的数量较多时,状态空间的数量将以指数级增加,导致系统对Cache —致性进行验证的效率较低。
技术实现思路
本专利技术提供ー种数据验证方法、装置和系统,用以提高对Cache —致性进行验证的效率。本专利技术提供了ー种数据验证方法,包括根据电路中n个处理器对应的当前状态空间,以及目标状态空间,在预先获取的激励数据库中进行查找,获得至少一条目标激励;所述目标激励为所述当前状态空间与所述目标状态空间之间进行跳变所需的激励;其中,所述当前状态空间由n个处理器的当前工作状态构成;所述激励数据库包括由n个处理器的工作状态构成的m种状态空间中,任意两种可以进行跳变的状态空间之间进行跳变所需的全部激励,所述激励包括在两种状态空间之间进行跳变需要执行的指令和指令状态,所述指令状态为执行所述指令所需的工作状态;其中,所包括的工作状态的类型以及每种类型的工作状态的个数均相同的状态空间属于同一种状态空间;执行每条所述目标激励,指示第一处理器执行所述目标激励中的指令,所述第一处理器是当前工作状态为所述目标激励中的指令状态的处理器,在所述第一处理器执行所述目标激励中的指令结束后,判断由n个处理器的工作状态构成的状态空间与所述目标状态空间是否属于同一种状态空间,若判断结果为是,则继续执行下一条目标激励,直至执行完全部所述目标激励之后,获得n个处理器中所存储的数据相同的验证结果。本专利技术还提供了ー种数据验证方法,包括根据电路中处理器的数量n、所述处理器的工作状态的类型、以及预设的由处理器的工作状态构成状态空间的分类规则,确定由n个处理器的工作状态构成的m种状态空间;其中,所包括的工作状态的类型以及每种类型的工作状态的个数均相同的状态空间属于同一种状态空间;根据所述处理器在不同类型的工作状态之间进行迁移使用的指令信息,依次分析所述m种状态空间中任意两种状态空间之间是否可以进行跳变,获得可以进行跳变的任意两种状态空间之间进行跳变所需的全部激励,以构成激励数据库;其中,所述激励包括在两种状态空间之间进行跳变需要执行的指令和指令状态,所述指令状态为执行所述指令所需的工作状态;将所述激励数据库输入控制模块,以供所述控制模块验证所述电路中各处理器之间的数据是否一致。本专利技术还提供了ー种控制模块,包括 查询单元,用于根据电路中n个处理器对应的当前状态空间,以及目标状态空间,在预先获取的激励数据库中进行查找,获得至少一条目标激励;所述目标激励为所述当前状态空间与所述目标状态空间之间进行跳变所需的激励;其中,所述当前状态空间由n个处理器的当前工作状态构成;所述激励数据库包括由n个处理器的工作状态构成的m种状态空间中,任意两种可以进行跳变的状态空间之间进行跳变所需的全部激励,所述激励包括在两种状态空间之间进行跳变需要执行的指令和指令状态,所述指令状态为执行所述指令所需的工作状态;其中,所包括的工作状态的类型以及每种类型的工作状态的个数均相同的状态空间属于同一种状态空间;处理单元,用于执行每条所述目标激励,指示第一处理器执行所述目标激励中的指令,所述第一处理器是当前工作状态为所述目标激励中的指令状态的处理器,在所述第一处理器执行所述目标激励中的指令结束后,判断由n个处理器的工作状态构成的状态空间与所述目标状态空间是否属于同一种状态空间,在判断结果为是时,继续执行下一条目标激励,直至执行完全部所述目标激励之后,获得n个处理器中所存储的数据相同的验证结果。本专利技术还提供了一种验证平台,包括确定模块,用于根据电路中处理器的数量n、所述处理器的工作状态的类型、以及预设的由处理器的工作状态构成状态空间的分类规则,确定由n个处理器的工作状态构成的m种状态空间;其中,所包括的工作状态的类型以及每种类型的工作状态的个数均相同的状态空间属于同一种状态空间;获取模块,用于根据所述处理器在不同类型的工作状态之间进行迁移使用的指令信息,依次分析所述m种状态空间中任意两种状态空间之间是否可以进行跳变,获得可以进行跳变的任意两种状态空间之间进行跳变所需的全部激励,以构成激励数据库;其中,所述激励包括在两种状态空间之间进行跳变需要执行的指令和指令状态,所述指令状态为执行所述指令所需的工作状态;输出模块,用于将所述激励数据库输入控制模块,以供所述控制模块验证所述电路中各处理器之间的数据是否一致。本专利技术还提供了一种控制器,包括上述控制模块。本专利技术还提供了一种计算机系统,包括上述验证平台、控制器和由两个或多个处理器组成的电路。由上述技术方案可知,本专利技术ー个方面提供的数据验证方法、装置及系统,根据n个CPU的当前状态空间和目标状态空间,在激励数据库中查找能够实现两种状态空间之间进行跳变的目标激励,由控制模块控制目标激励中相应的CPU执行指令,若执行完目标激励之后,n个CPU的状态空间与目标状态空间属于同ー种状态空间,则获得n个CPU各自的Cache中所存储的数据具有一致性的验证結果,由于将n个CPU可能存在的状态空间按照分类规则分为m种,因此所验证的当前状态空间和目标状态空间是种类之间的比较,从而有效地减小了冗余和重复的数据处理,有效地提高了验证Cache —致性的效率。本专利技术另ー个方面提供的数据验证方法、装置及系统,由验证平台根据CPU的数量、CPU的工作状态的类型以及由CPU的工作状态构成状态空间的分类规则,确定状态空间的种类,并根据CPU在不同类型的工作状态之间迁移所使用的指令信息,分析各状态空 间之间进行跳变的全部激励,进而构成激励数据库,用于对电路中CPU的Cache —致性的验证,由于所采用的状态空间的分类规则中,将存在冗余和重复情况的状态空间归为ー种,使得激励数据库中的激励的数量得到了有效的減少,进而有效地提高了对电路中各CPU的Cache 一致性的验证效率。附图说明图I为本专利技术第一种数据验证方法一实施例的流程图;图2为本专利技术第一种数据验证方法另ー实施例的流程图;图3为本专利技术第二种数据验证方法一实施例的流程图;图4为本专利技术第二种数据验证方法另ー实施例的流程图;图5为本专利技术实施例中一种间接激励的示意图;图6为本专利技术控制模块ー实施例的结构示意图;图7为本专利技术控制模块另ー实施例的结构示意图;图8为本专利技术验证平台一实施例的结构示意图;图9为本专利技术验证平台另ー实施例的结构示意图;图10为本专利技术控制器实施例的结构示意图;图11为本专利技术计算机系统实施例的结构示意图。具体实施例本文档来自技高网...

【技术保护点】
一种数据验证方法,其特征在于,包括:根据电路中n个处理器对应的当前状态空间,以及目标状态空间,在预先获取的激励数据库中进行查找,获得至少一条目标激励;所述目标激励为所述当前状态空间与所述目标状态空间之间进行跳变所需的激励;其中,所述当前状态空间由n个处理器的当前工作状态构成;所述激励数据库包括由n个处理器的工作状态构成的m种状态空间中,任意两种可以进行跳变的状态空间之间进行跳变所需的全部激励,所述激励包括在两种状态空间之间进行跳变需要执行的指令和指令状态,所述指令状态为执行所述指令所需的工作状态;其中,所包括的工作状态的类型以及每种类型的工作状态的个数均相同的状态空间属于同一种状态空间;执行每条所述目标激励,指示第一处理器执行所述目标激励中的指令,所述第一处理器是当前工作状态为所述目标激励中的指令状态的处理器,在所述第一处理器执行所述目标激励中的指令结束后,判断由n个处理器的工作状态构成的状态空间与所述目标状态空间是否属于同一种状态空间,若判断结果为是,则继续执行下一条目标激励,直至执行完全部所述目标激励之后,获得n个处理器中所存储的数据相同的验证结果。

【技术特征摘要】

【专利技术属性】
技术研发人员:刘静连志斌万辰
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1