基于全局约束的锁指令伪随机自比较验证模型的实现方法技术

技术编号:23098917 阅读:22 留言:0更新日期:2020-01-14 20:33
本发明专利技术涉及一种基于全局约束的锁指令伪随机自比较验证模型的实现方法,包括以下步骤:建立能够被测试情景和测试序列库可见的锁共享结构;按照全局约束生成锁共享结构表,其中锁共享结构表至少包括2个锁共享结构;随机选取一个锁共享结构给核心执行;上锁成功后,对锁共享结构的临界区地址内容和全局临界区变量进行更新;对所述锁共享结构进行释放;当所有核心都完成锁执行操作后,由随机指定一个核心对锁共享结构表中的所有锁共享结构进行遍历检查。本发明专利技术解决了现有测试方法中存在的测试激励随机性差、代码繁琐、继承性差、维护困难及测试情景单一等问题,同时实现对测试结果正确性的校验,增加了环境的兼容性。

【技术实现步骤摘要】
基于全局约束的锁指令伪随机自比较验证模型的实现方法
本专利技术涉及微处理器验证
,特别是涉及一种基于全局约束的锁指令伪随机自比较验证模型的实现方法。
技术介绍
在高性能处理器指令集中,锁操作指令能够快速实现对共享资源的置位清零操作,保证共享资源能够被串行处理。在软件层面,对该类指令的验证主要采用系统运行特殊的自检查程序进行。在硬件层次中,对该类指令的模拟验证主要采取手工编写汇编激励的方式,即针对不同测试点编写不同的汇编激励进行测试,同时验证结果“跟随设计”,即采集设计信号确认上锁是否成功。目前的验证方式主要存在以下几种问题:(1)采取手工编写焦点验证的方式,这种方式产生的测试激励在处理器的流水线上执行都较为规则,随机性和可继承性差。(2)测试情景单一。如当需要测试不同指令混合、地址关联等多种情况时就需要对单个激励添加多种约束条件,如果达不到很大规模或累积很长的时间就无法测试到较为苛刻的情况。(3)由于锁指令的特殊性,存在多核心共享抢锁的情况,目前采用“跟随设计”的方法,该方法需要完备的校验机制才能避免多核同时上锁的设计错误遗漏。同时当处理器架构变化时,需要修改环境使其适用新架构。
技术实现思路
本专利技术提供一种基于全局约束的锁指令伪随机自比较验证模型的实现方法,解决了现有测试方法中存在的测试激励随机性差、代码繁琐、继承性差、维护困难及测试情景单一等问题,同时实现对测试结果正确性的校验,增加了环境的兼容性。本专利技术解决其技术问题所采用的技术方案是:提供一种基于全局约束的锁指令伪随机自比较验证模型的实现方法,包括以下步骤:(1)在伪随机激励生成器中建立能够被测试情景和测试序列库可见的锁共享结构,所述锁共享结构包括锁ID号、锁地址、临界区地址、临界区数值和共享核心列表;(2)伪随机生成器按照全局约束生成锁共享结构表,通过配置全局约束使得伪随机生成器能够产生适用多种测试情景的测试序列;所述锁共享结构表至少包括2个锁共享结构;(3)伪随机生成器在可被核心共享的锁共享结构表中随机选取一个锁共享结构给核心执行,所述核心按照随机分配到锁共享结构执行锁操作序列执行流程;(4)上锁成功后,伪随机生成器随机生成一个数值,对所述锁共享结构的临界区地址内容和全局临界区变量分别加上该数值,更新临界区状态;(5)临界区状态更新完成后,对所述锁共享结构进行释放,使得所述锁共享结构能够被其它核心使用;(6)当所有核心都完成锁执行操作后,由随机指定一个核心对锁共享结构表中的所有锁共享结构进行遍历检查,即检查临界区地址读到的数据与全局临界区数据是否相等,如果相同,证明测试通过,如果不等,证明存在设计问题。所述步骤(1)中建立锁共享结构时,建立一个只能够在核心同步结束使用的结束锁共享结构。所述步骤(1)中的锁地址由标签位、索引位和低位地址三部分拼接而成,其中标签位和索引位通过全局约束随机个数或固定数值,低位地址按照约束生成,保证与临界区地址进行区分。所述步骤(3)中锁操作序列执行流程如下:(31)读取分配到的锁共享结构的锁地址内容;(32)将读到的锁地址内容写入锁标志,其中,该锁地址内容为1时表示锁没有被使用,锁地址内容为0时,表示锁已被使用;(33)对锁地址内容进行读改写操作,将读到锁共享结构的数据与该锁共享结构建立时的数据比较,如果相等且同时满足锁成功条件,则执行写操作,将锁地址内容置0,锁成功标志置1,否则直接报锁失败完成,不执行写操作,锁成功标志置0;(34)读锁成功标志,如果为1表示上锁成功,如果为0则跳回步骤(31)。所述步骤(6)中通过以下方法判断所有核心都完成锁执行操作:所有核心对结束锁共享结构执行锁操作序列执行流程;当某一个核心执行成功后就会将该结束锁共享结构的临界区地址内容+1的操作,当临界区地址内容与核心数相同时,则表示所有核心都完成锁执行操作。有益效果由于采用了上述的技术方案,本专利技术与现有技术相比,具有以下的优点和积极效果:本专利技术采用的激励产生方式与手工编写汇编激励方式相比具有编程简单、伪随机性强特点;本专利技术的激励测试更加全面,仅通过修改全局约束就可以测试到多个锁同时运行、多个锁在同一Cache块、多个锁相互挤占等情况;本专利技术可以测试其它普通指令与锁指令的混合情况,另外,通过自比较方式校验更加准确,能够避免多核同时上锁的设计错误遗漏,同时增加了环境的兼容性。附图说明图1是本专利技术的流程图;图2是本专利技术中共享锁结构的示意图;图3是本专利技术中全局共享锁表结构的示意图;图4是本专利技术中锁执行的流程图;图5是本专利技术中锁同步结束的流程图。具体实施方式下面结合具体实施例,进一步阐述本专利技术。应理解,这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围。此外应理解,在阅读了本专利技术讲授的内容之后,本领域技术人员可以对本专利技术作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。本专利技术的实施方式涉及一种基于全局约束的锁指令伪随机自比较验证模型的实现方法,如图1所示,包括以下步骤:1、为解决测试激励随机性差,在伪随机激励生成器中建立能够被测试情景和测试序列库可见的锁共享结构,如图2所示,其包括锁ID号、锁地址、临界区地址、临界区数值、共享核心列表5部分。(1)锁ID号(Lock_id):锁共享结构的唯一标识,用于区分多个锁结构,其中ID=0的结构用于所有核心同步结束使用,称为结束锁共享结构。伪随机生成器在每个核心正常锁序列的约束下不会随机到该结束锁共享结构,只有最后同步结束的锁序列才根据约束,固定执行该结束锁共享结构。(2)锁地址(Lock_addr):在全局约束中将该地址的组成进行约束,主要由TAG标签位、INDEX索引位、idaddr低位地址三部分拼接而成,伪随机生成器能够根据全局约束的地址属性、数量等信息随机生成该地址,其中TAG标签位、INDEX索引位可通过全局约束随机个数或固定数值,idaddr低位地址按照约束生成,保证与访存地址进行和锁临界区地址区分。锁地址能够被多个共享核心访问,同时按照Cache方式约束地址能够方便实现锁的多种测试情况。(3)临界区地址(Region_addr):该地址与上述锁地址相似。在全局约束中,规定该地址与锁地址不能相同。当某一共享核心锁执行成功后通过访存指令操作该地址内容(具体参见步骤5)。(4)临界区变量(Lock_value):该变量被多个核心共享,当一个核心上锁成功后,对该变量进行操作。(具体参见步骤5)(5)核心列表(Share_cores):即该锁结构可被列表中的核心共享操作,即可实现多个核心抢锁的测试情况,可在全局约束中进行修改。2、全局约束通过配置全局约束,使得伪随机生成器能够产生适用多种测试情景的测试序列,在该模型中全局可配置约束如表1所示。表13、全局锁共享结构表<本文档来自技高网...

【技术保护点】
1.一种基于全局约束的锁指令伪随机自比较验证模型的实现方法,其特征在于,包括以下步骤:/n(1)在伪随机激励生成器中建立能够被测试情景和测试序列库可见的锁共享结构,所述锁共享结构包括锁ID号、锁地址、临界区地址、临界区数值和共享核心列表;/n(2)伪随机生成器按照全局约束生成锁共享结构表,通过配置全局约束使得伪随机生成器能够产生适用多种测试情景的测试序列;所述锁共享结构表至少包括2个锁共享结构;/n(3)伪随机生成器在可被核心共享的锁共享结构表中随机选取一个锁共享结构给核心执行,所述核心按照随机分配到锁共享结构执行锁操作序列执行流程;/n(4)上锁成功后,伪随机生成器随机生成一个数值,对所述锁共享结构的临界区地址内容和全局临界区变量分别加上该数值,更新临界区状态;/n(5)临界区状态更新完成后,对所述锁共享结构进行释放,使得所述锁共享结构能够被其它核心使用;/n(6)当所有核心都完成锁执行操作后,由随机指定一个核心对锁共享结构表中的所有锁共享结构进行遍历检查,即检查临界区地址读到的数据与全局临界区数据是否相等,如果相同,证明测试通过,如果不等,证明存在设计问题。/n

【技术特征摘要】
1.一种基于全局约束的锁指令伪随机自比较验证模型的实现方法,其特征在于,包括以下步骤:
(1)在伪随机激励生成器中建立能够被测试情景和测试序列库可见的锁共享结构,所述锁共享结构包括锁ID号、锁地址、临界区地址、临界区数值和共享核心列表;
(2)伪随机生成器按照全局约束生成锁共享结构表,通过配置全局约束使得伪随机生成器能够产生适用多种测试情景的测试序列;所述锁共享结构表至少包括2个锁共享结构;
(3)伪随机生成器在可被核心共享的锁共享结构表中随机选取一个锁共享结构给核心执行,所述核心按照随机分配到锁共享结构执行锁操作序列执行流程;
(4)上锁成功后,伪随机生成器随机生成一个数值,对所述锁共享结构的临界区地址内容和全局临界区变量分别加上该数值,更新临界区状态;
(5)临界区状态更新完成后,对所述锁共享结构进行释放,使得所述锁共享结构能够被其它核心使用;
(6)当所有核心都完成锁执行操作后,由随机指定一个核心对锁共享结构表中的所有锁共享结构进行遍历检查,即检查临界区地址读到的数据与全局临界区数据是否相等,如果相同,证明测试通过,如果不等,证明存在设计问题。


2.根据权利要求1所述的基于全局约束的锁指令伪随机自比较验证模型的实现方法,其特征在于,所述步骤(1)中建立锁共享结构时,建立一个只能够在核心同步结束使用的结束锁共享结构。


3.根据权...

【专利技术属性】
技术研发人员:胡向东蒋祥鹏巨鹏锦罗先伟徐小沛
申请(专利权)人:上海高性能集成电路设计中心
类型:发明
国别省市:上海;31

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

1