一种实现一致性验证的方法及装置与流程

文档序号:17048452发布日期:2019-03-05 19:47阅读:210来源:国知局
一种实现一致性验证的方法及装置与流程

本文涉及但不限于随机验证技术,尤指一种实现一致性验证的方法及装置。



背景技术:

随着市场对处理器性能需求的不断提升,高速缓存(cache)被越来越多的集成到处理器核中,而且更多的核被集成到一块芯片上。由此而带来了复杂的cache一致性验证的挑战。

一致性验证涉及到关联分支的定义;其中,分支是一种场景,一般多核或多簇(cluster)之间会包含很多个场景;譬如中央处理器(cpu)0写完整的高速缓存行(full_cacheline),cpu1读这个full_cacheline就是一个完整的场景;其中,cpu0和cpu1之间的写读关系称为关联;具体的,当cpu0写完成时,cpu0发送一个标志给到cpu1;cpu1读完成后也发送一个标志给cpu0,在cpu0接收到cpu1读完成后发送的标志时确定这个完整的场景完全结束。如果是支持一致性扩展的高级总线协议(ace)总线,那么场景可以覆盖到写完整的缓存行缺失(makeuniqe)和读共享(readshared)等一致性操作。

目前,一致性验证时,cpu必须将一个场景完成后才执行下一个;当一个分支未完成时,后续的所有分支均必须等待,造成等待时间长,一致性验证效率低的问题。



技术实现要素:

以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。

本发明实施例提供一种实现一致性验证的方法及装置,能够减少一致性验证的等待时长,提高一致性验证的效率。

本发明实施例提供了一种实现一致性验证的方法,包括:

随机分支队列中的分支发生等待时,根据发生等待的分支的状态确定是否调整随机分支队列;

确定调整随机分支队列时,对随机分支队列进行调整;

对调整后的随机分支队列中的分支进行一致性验证。

可选的,所述确定是否调整随机分支队列之前,所述方法还包括:

读取随机分布的分支编号;

生成对应至各中央处理器的初始随机分支队列;

根据读取的所述随机分布的分支编号及生成的各所述初始随机分支队列,生成对应至各中央处理器的所述随机分支队列。

可选的,所述确定是否调整随机分支队列包括:

当所述发生等待的分支被约束为必须执行的分支时,确定保持随机分支队列的不变;

当所述发生等待的分支未被约束为必须执行的分支时,确定调整所述随机分支队列。

可选的,所述对随机分支队列进行调整包括:

在所述随机分支队列中,将所述发生等待的分支进行向后迁移的调整。

可选的,所述将所述发生等待的分支进行向后迁移的调整包括:

在所述随机分支队列中,将所述发生等待的分支进行向后迁移预设位数的调整;或,

将所述发生等待的分支进行迁移到所述随机分支队列的尾部。

可选的,所述将所述发生等待的分支进行向后迁移预设位数的调整包括:

当所述发生等待的分支距所述随机分支队列的尾部的分支的位数大于所述预设位数时,将所述发生等待的分支进行向后迁移预设位数的调整;

当所述发生等待的分支距所述随机分支队列的尾部的分支的位数小于或等于所述预设位数时,将所述发生等待的分支迁移到所述随机分支队列的尾部。

另一方面,本发明实施例还提供一种实现一致性验证的装置,包括:判断单元、调整单元、验证单元;其中,

判断单元用于:随机分支队列中的分支发生等待时,根据发生等待的分支的状态确定是否调整随机分支队列;

调整单元用于:确定调整随机分支队列时,对随机分支队列进行调整;

验证单元用于:对调整后的随机分支队列中的分支进行一致性验证。

可选的,所述装置还包括生成单元,用于:读取随机分布的分支编号;生成对应至各中央处理器的初始随机分支队列;根据读取的所述随机分布的分支编号及生成的各所述初始随机分支队列,生成对应至各中央处理器的所述随机分支队列。

可选的,所述判断单元具体用于:

随机分支队列中的分支发生等待时,当所述发生等待的分支被约束为必须执行的分支时,确定保持随机分支队列的不变;当所述发生等待的分支未被约束为必须执行的分支时,确定调整所述随机分支队列。

可选的,所述调整单元具体用于:

在所述随机分支队列中,将所述发生等待的分支进行向后迁移的调整。

可选的,所述调整单元具体用于:

在所述随机分支队列中,将所述发生等待的分支进行向后迁移预设位数的调整;或,

将所述发生等待的分支进行迁移到所述随机分支队列的尾部。

可选的,所述调整单元具体用于:

当所述发生等待的分支距所述随机分支队列的尾部的分支的位数大于所述预设位数时,将所述发生等待的分支进行向后迁移预设位数的调整;当所述发生等待的分支距所述随机分支队列的尾部的分支的位数小于或等于所述预设位数时,将所述发生等待的分支迁移到所述随机分支队列的尾部;或,

将所述发生等待的分支进行迁移到所述随机分支队列的尾部。

再一方面,本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行上述的实现一致性验证的方法。

还一方面,本发明实施例还提供一种终端,包括:存储器和处理器;其中,

处理器被配置为执行存储器中的程序指令;

程序指令在处理器读取执行以下操作:

随机分支队列中的分支发生等待时,根据发生等待的分支的状态确定是否调整随机分支队列;

确定调整随机分支队列时,对随机分支队列进行调整;

对调整后的随机分支队列中的分支进行一致性验证。

与相关技术相比,本申请技术方案包括:随机分支队列中的分支发生等待时,根据发生等待的分支的状态确定是否调整随机分支队列;确定调整随机分支队列时,对随机分支队列进行调整;对调整后的随机分支队列中的分支进行一致性验证。本发明实施例减少了一致性验证的等待时长,提高了一致性验证的效率。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例实现一致性验证的方法的流程图;

图2位本发明实施例实现一致性验证的装置的结构框图;

图3为本发明应用示例初始随机分支队列的示意图;

图4为本发明实施例随机分支队列的示意图;

图5为本发明应用示例调整随机分支队列的示意图;

图6为本发明应用示例另一调整随机分支队列的示意图;

图7为本发明应用示例再一调整随机分支队列的示意图;

图8为本发明应用示例再一调整随机分支队列的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1为本发明实施例实现一致性验证的方法的流程图,如图1所示,包括:

步骤100、随机分支队列中的分支发生等待时,根据发生等待的分支的状态确定是否调整随机分支队列;

需要说明的是,一致性验证时,分支发生等待可以通过相关技术中设定的分支的标志信息进行确定;例如,如果分支进行的是写操作,相关技术中在写操作完成时,分支的标志信息为1;写操作未完成时,分支的标志信息为0;

可选的,确定是否调整随机分支队列之前,本发明实施例方法还包括:

读取随机分布的分支编号;

生成对应至各中央处理器的初始随机分支队列;

根据读取的所述随机分布的分支编号及生成的各所述初始随机分支队列,生成对应至各中央处理器的所述随机分支队列。

需要说明的是,本发明实施例读取随机分布的分支编号的方法,生成初始随机分支队列,及对应至各中央处理器的随机分支队列的方法均可以采用相关技术中已有的实现方法;例如、根据读取的随机分布的分支编号,采用系统(system)verilog(verilog是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能)产生随机分支队列。本发明实施例每一个中央处理器均获得一个随机分支队列。另外,本发明实施例初始随机分支队列可以是空的队列;也可以是填充着默认值的队列,默认值可以是分支编号以外的其他编号。

可选的,本发明实施例确定是否调整随机分支队列包括:

当所述发生等待的分支被约束为必须执行的分支时,确定保持随机分支队列的不变;

当所述发生等待的分支未被约束为必须执行的分支时,确定调整所述随机分支队列。

需要说明的是,分支是否被约束可以通过相关技术中的信息进行确定;例如,分支1、分支2、分支3均为写操作时,如果分支2需要分支1的一致性验证完成后才可以进行一致性验证,分支3需要分支2的一致性验证完成后才可以进行一致性验证时,则参照相关技术一般在分支1添加约束条件,限定条件1位必须执行的分支,对分支1写入的内容进行读操作后,完成读操作的cpu向分支2反馈读操作完成的信息,分支2根据接收到的读操作完成的信息进行写操作,以此类推;其中,分支1为被约束为必须执行的分支。另外,保持随机分支队列的不变时,则发生等待的分支1继续进行写操作。待分支1写操作完成时,继续随机分支队列的一致性验证。

步骤101、确定调整随机分支队列时,对随机分支队列进行调整;

可选的,本发明实施例对随机分支队列进行调整包括:

在所述随机分支队列中,将所述发生等待的分支进行向后迁移的调整。

可选的,本发明实施例将所述发生等待的分支进行向后迁移的调整包括:

在所述随机分支队列中,将所述发生等待的分支进行向后迁移预设位数的调整;或,

将所述发生等待的分支进行迁移到所述随机分支队列的尾部。

可选的,本发明实施例将所述发生等待的分支进行向后迁移预设位数的调整包括:

当所述发生等待的分支距所述随机分支队列的尾部的分支的位数大于所述预设位数时,将所述发生等待的分支进行向后迁移预设位数的调整;

当所述发生等待的分支距所述随机分支队列的尾部的分支的位数小于或等于所述预设位数时,将所述发生等待的分支迁移到所述随机分支队列的尾部。

需要说明的是,预设位数可以根据随机分支队列的长度进行确定;例如,设置预设位置为随机分支队列的长度乘以n分之一后,向上或向下取整;其中,n可以取大于或等于1的数;预设位数理论上大于或等于1。

步骤102、对调整后的随机分支队列中的分支进行一致性验证。

需要说明的是,对分支进行一致性验证的方法与相关技术中的实施方法一致,在此不做赘述。

与相关技术相比,本申请技术方案包括:随机分支队列中的分支发生等待时,根据发生等待的分支的状态确定是否调整随机分支队列;确定调整随机分支队列时,对随机分支队列进行调整;对调整后的随机分支队列中的分支进行一致性验证。本发明实施例减少了一致性验证的等待时长,提高了一致性验证的效率。

图2位本发明实施例实现一致性验证的装置的结构框图,如图2所示,包括:判断单元、调整单元、验证单元;其中,

判断单元用于:随机分支队列中的分支发生等待时,根据发生等待的分支的状态确定是否调整随机分支队列;

可选的,本发明实施例判断单元具体用于:

随机分支队列中的分支发生等待时,当所述发生等待的分支被约束为必须执行的分支时,确定保持随机分支队列的不变;当所述发生等待的分支未被约束为必须执行的分支时,确定调整所述随机分支队列。

可选的,本发明实施例装置还包括生成单元,用于:读取随机分布的分支编号;生成对应至各中央处理器的初始随机分支队列;根据读取的所述随机分布的分支编号及生成的各所述初始随机分支队列,生成对应至各中央处理器的所述随机分支队列。

调整单元用于:确定调整随机分支队列时,对随机分支队列进行调整;

可选的,本发明实施例调整单元具体用于:

在所述随机分支队列中,将所述发生等待的分支进行向后迁移的调整。

可选的,本发明实施例调整单元具体用于:

在所述随机分支队列中,将所述发生等待的分支进行向后迁移预设位数的调整;或,

将所述发生等待的分支进行迁移到所述随机分支队列的尾部。

可选的,本发明实施例调整单元具体用于:

当所述发生等待的分支距所述随机分支队列的尾部的分支的位数大于所述预设位数时,将所述发生等待的分支进行向后迁移预设位数的调整;当所述发生等待的分支距所述随机分支队列的尾部的分支的位数小于或等于所述预设位数时,将所述发生等待的分支迁移到所述随机分支队列的尾部;或,

将所述发生等待的分支进行迁移到所述随机分支队列的尾部。

验证单元用于:对调整后的随机分支队列中的分支进行一致性验证。

与相关技术相比,本申请技术方案包括:随机分支队列中的分支发生等待时,根据发生等待的分支的状态确定是否调整随机分支队列;确定调整随机分支队列时,对随机分支队列进行调整;对调整后的随机分支队列中的分支进行一致性验证。本发明实施例减少了一致性验证的等待时长,提高了一致性验证的效率。

本发明实施例还提供一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行上述实现一致性验证的方法。

本发明实施例还提供一种终端,包括:存储器和处理器;其中,

处理器被配置为执行存储器中的程序指令;

程序指令在处理器读取执行以下操作:

随机分支队列中的分支发生等待时,根据发生等待的分支的状态确定是否调整随机分支队列;

确定调整随机分支队列时,对随机分支队列进行调整;

对调整后的随机分支队列中的分支进行一致性验证。

以下通过具体应用示例对本发明实施例方法进行清楚详细的说明,应用示例仅用于陈述本发明,并不用于限定本发明的保护范围。

应用示例

图3为本发明应用示例初始随机分支队列的示意图,如图3所示,初始随机分支队列的长度可以根据初始随机分支队列对应的中央处理器的分支数目进行确定,初始随机分支队列填充默认的字母abcd;图4为本发明实施例随机分支队列的示意图,如图4所示,根据读取的随机分布的分支编号及初始随机分支队列生成随机分支队列,按随机排序将读取的分支编号填充至初始随机分支队列中,生成队列头为分支3,队列尾为分支5。

图4所示的随机分支队列中,假设分支6、分支7、分支8均为写操作,分支6为被约束为必须执行的分支,且分支7需要分支6的一致性验证完成后才可以进行一致性验证,分支8需要分支7的一致性验证完成后才可以进行一致性验证;本应用示例假设cpu0当前正执行分支6,cpu0写完成,假设cpu1读一直未完成,那么cpu0分支7第二次、分支8第三次写时就必须等待。本应用示例均以cpu0写为例,cpu0执行到分支7和分支8时都会因为cpu1读未完成而进行随机分支队列的调整;

本发明应用示例进行随机分支队列的调整可以包括:将发生等待的分支直接迁移到随机分支队列的尾部;和,将发生等待的分支进行向后迁移预设位数的调整;

图5为本发明应用示例调整随机分支队列的示意图,如图5所示,将发生等待的分支直接迁移到随机分支队列的尾部,即将分支7复制到队列的尾部,将队列尾部的默认值字母abcd替换为队列7;图6为本发明应用示例另一调整随机分支队列的示意图,如图6所示,将随机分支队列中被复制的分支7删除,形成调整后的随机分支队列;同理,队列8在发生等待时,按照上述调整方式进行调整。本应用示例,当发生等待的分支7或分支8距随机分支队列的尾部的分支的位数小于或等于所述预设位数时,将发生等待的分支7或分支8直接迁移到随机分支队列的尾部。

本发明实施例将发生等待的分支进行向后迁移预设位数的调整可以包括:当发生等待的分支距所述随机分支队列的尾部的分支的位数大于预设位数时,将发生等待的分支进行向后迁移预设位数的调整;当发生等待的分支距随机分支队列的尾部的分支的位数小于或等于预设位数时,将发生等待的分支迁移到随机分支队列的尾部。图7为本发明应用示例再一调整随机分支队列的示意图,如图7所示,将分支7进行向后迁移3位的调整;图8为本发明应用示例再一调整随机分支队列的示意图,如图8所示,分支8距离随机分支队列的尾部的位数小于3时,将分支8迁移到随机分支队列的尾部。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的每个模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明不限制于任何特定形式的硬件和软件的结合。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1