一种同步多线程场景验证方法及装置与流程

文档序号:17220987发布日期:2019-03-27 11:57阅读:144来源:国知局
一种同步多线程场景验证方法及装置与流程

本发明涉及计算机处理器技术领域,尤其涉及一种同步多线程场景验证方法及装置。



背景技术:

虽然半导体工艺保持了几十年快速发展,但是摩尔定律已经日益趋近物理极限。其中,由于传统的cpu在某一时间只能处理一个指令序列,通常我们把它称为一个线程。在线程处理的过程中cpu的处理单元需要不断调入指令与数据进行处理。随着cpu技术的发展,cpu的主频与性能不断提高,需要调入指令和数据的速度不断提高。但是内存技术的发展并没有跟上cpu发展的速度,内存通常无法提供足够的指令和数据给cpu进行处理。受限于指令间的相关性,因此,为了提高处理器的性能,则采用同步多线程(smt),smt可以在一个时钟周期内执行来自多个线程的指令,利用处理器超标量的思想来提高处理器使用率。

但是,由于smt系统中多个线程会共享所有的执行单元,多个线程执行时在执行单元的分配上存在竞争关系,这种竞争会导致流水线阻塞;导致传统随机测试验证周期长,构造验证场景效率低,验证覆盖率的不足的问题。



技术实现要素:

本发明提供的同步多线程场景验证方法及装置,能够使得边角场景快速收敛,并快速覆盖待测场景中的所有待测点,进而确保待测场景的预期测试点能够被覆盖到,避免了传统随机测试验证周期长,构造验证场景效率低,验证覆盖率的不足的问题。

第一方面,本发明提供一种同步多线程场景验证方法,包括:

对线程配置测试激励的第一随机参数,并灌入根据第一随机参数生成的测试激励进行第一激励测试;

在进行第一激励测试中、或在进行第一激励测试后对第一激励测试进行分析得出分析结果;

根据分析结果调整第一随机参数形成第二随机参数,并灌入根据第二随机参数生成的测试激励进行第二激励测试。

可选地,在对线程配置测试激励的第一随机参数后,或在根据分析结果调整第一随机参数形成第二随机参数后还包括:

根据分析结果判断待测场景是否需要预热,如果否,则执行下一步;如果是,则对待测场景执行场景预热进程。

可选地,在对线程配置测试激励的第一随机参数后,以及在根据分析结果调整第一随机参数形成第二随机参数后还均包括:

根据分析结果判断待测场景是否需要预热,如果否,则执行下一步;如果是,则对待测场景执行场景预热进程。

可选地,所述对待测场景执行预热进程包括:

获取待测场景并根据待测场景得出预热指令流;

灌入所述预热指令流并完成待测场景预热。

可选地,在灌入根据第一随机参数生成的测试激励进行第一激励测试之前、或在灌入根据第二随机参数生成的测试激励进行第二激励测试之前、或当待测场景不需要预热后还包括:

获取灌入其他线程测试激励的时刻信息;

根据所述时刻信息调整灌入该线程测试激励的时刻。

可选地,在根据分析结果调整第一随机参数形成第二随机参数,并灌入根据第二随机参数生成的测试激励进行第二激励测试之前还包括:

获取根据第一随机参数生成的测试激励,和对第一激励测试进行分析得出的分析结果;

根据所述测试激励和所述分析结果判断是否覆盖待测场景对应的所有测试点,如果是,则结束验证;如果否,则执行下一步。

可选地,所述第一随机参数和第二随机参数均包括阻塞周期、测试激励进入流水线时间、对目标地址的页表转换信息、对未命中地址预取信息、对目标地址的有效页表刷掉信息、对命中地址的内存刷回信息、分支预测表刷新信息、分支预测表预热信息、随机中断插入信息、随机中断插入时间和随机中断插入密度中一种或者任意组合。

可选地,所述对第一激励测试进行分析得出分析结果包括:对第一激励测试中访存的地址信息、页表信息和分支信息中一种或者任意组合进行分析得出分析结果。

第二方面,本发明提供一种同步多线程场景验证装置,包括:

分析单元,用于在进行第一激励测试中、或在进行第一激励测试后对第一激励测试进行分析得出分析结果;

控制单元,用于对线程配置测试激励的第一随机参数,以及根据分析结果调整第一随机参数形成第二随机参数;

执行单元,与至少两个线程分别连接并用于灌入根据第一随机参数或第二随机参数生成的测试激励进行激励测试。

可选地,所述控制单元包括:

随机参数配置模块,用于对线程配置测试激励的第一随机参数;

随机参数调整模块,用于根据分析结果调整第一随机参数形成第二随机参数;

预热判断模块,用于根据分析结果判断待测场景是否需要预热;

预热指令生成模块,与预热判断模块连接,用于获取待测场景并根据待测场景得出预热指令流。

所述控制单元还包括:

获取模块,用于获取灌入其他线程测试激励的时刻信息;

时刻调整模块,用于根据所述时刻信息调整灌入该线程测试激励的时刻。

可选地,所述装置还包括:

结果对比单元,用于获取向线程所灌入的测试激励和分析结果,并根据测试激励和分析结果判断是否覆盖待测场景对应的所有测试点。

本发明实施例提供的同步多线程场景验证方法及装置,所述方法解决了同步多线程验证过程中多线程随机共享场景不能快速收敛的问题;本实施例中所述方法主要是在灌入根据第一随机参数生成的测试激励进行第一激励测试(即仿真)后、或进行第一激励测试中对第一激励测试进行分析得出分析结果,然后在再次仿真前,根据分析结果调整第一随机参数形成第二随机参数,并灌入根据第二随机参数生成的测试激励进行第二激励测试(即再次仿真),使得边角场景快速收敛,并快速覆盖待测场景中的所有待测点,进而确保待测场景的预期测试点能够被覆盖到,弥补了传统随机测试验证周期长,定向测试消耗验证人员大量的时间去编写测试激励,构造验证场景效率低,验证覆盖率的不足等问题。

附图说明

图1为本发明一实施例同步多线程场景验证方法的流程图;

图2为本发明另一实施例同步多线程场景验证方法的流程图;

图3为本发明另一实施例同步多线程场景验证方法的流程图;

图4为本发明一实施例同步多线程场景验证装置的结构示意图;

图5为本发明另一实施例控制单元的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种同步多线程场景验证方法,如图1所示,所述方法包括:

s11、对线程配置测试激励的第一随机参数,并灌入根据第一随机参数生成的测试激励进行第一激励测试;

s12、在进行第一激励测试中、或在进行第一激励测试后对第一激励测试进行分析得出分析结果;

s13、根据分析结果调整第一随机参数形成第二随机参数,并灌入根据第二随机参数生成的测试激励进行第二激励测试。

本发明实施例提供的同步多线程场景验证方法解决了同步多线程验证过程中多线程随机共享场景不能快速收敛的问题;本实施例中所述方法主要是在灌入根据第一随机参数生成的测试激励进行第一激励测试(即仿真)后、或进行第一激励测试中对第一激励测试进行分析得出分析结果,然后在再次仿真前,根据分析结果调整第一随机参数形成第二随机参数,并灌入根据第二随机参数生成的测试激励进行第二激励测试(即再次仿真),使得在第二激励测试中边角场景能够快速收敛,并快速覆盖待测场景中的所有待测点,进而解决了在后期测试中某些特定的场景,仅通过简单的随机很难覆盖到,随机还会消耗大量的仿真时间,并且通过随机测试不能保证覆盖到该特定场景问题。

同时,在进行第一激励测试中、或在进行第一激励测试后对第一激励测试进行分析时,所述方法还可结合流水线的具体结构得出分析结果,并根据分析结果修改测试平台的相关配置,以及通过调整第二随机参数修正测试激励,进行二次仿真,确保验证人员预期测试点能够被覆盖到。

并且,本实施例中所述方法中在进行第一激励测试中、或在进行第一激励测试后可直接对第一激励测试进行分析得出分析结果,解决了由于人工方式撰写特定测试用例,不仅需要逐级分析流水线的结构,还需要合理的安排指令的排布,导致效率低,难度大的问题。

综上所述,本实施例中所述方法能够使得边角场景快速收敛,并快速覆盖待测场景中的所有待测点,进而确保待测场景的预期测试点能够被覆盖到,弥补了传统随机测试验证周期长,定向测试消耗验证人员大量的时间去编写测试激励,构造验证场景效率低,验证覆盖率的不足等问题。

可选地,如图2所示,在对线程配置测试激励的第一随机参数后,或在根据分析结果调整第一随机参数形成第二随机参数后还包括:

s14、根据分析结果判断待测场景是否需要预热,如果否,则执行下一步;如果是,则对待测场景执行场景预热进程。

可选地,如图3所示,在对线程配置测试激励的第一随机参数后,以及在根据分析结果调整第一随机参数形成第二随机参数后还均包括:

s14、根据分析结果判断待测场景是否需要预热,如果否,则执行下一步;如果是,则对待测场景执行场景预热进程。

具体的,本实施例中所述方法中还可参照不同的测试需求,并根据分析结果灌入测试激励之前对待测场景进行预热,并构造出待测的特定场景,进而快速构件待测场景,进一步的保证边角场景的快速收敛,缩短研发周期,降低芯片设计成本。例如,测试访存指令的写后读相关时,添加对该访存地址预取的预热指令流,可以避免因为高速缓存没有命中而破坏写后读场景。

同时,所述方法中可采用以下三种根据分析结果判断待测场景是否需要预热的方式,第一种是通过在对线程配置测试激励的第一随机参数后根据分析结果判断待测场景是否需要预热;第二种是通过在根据分析结果调整第一随机参数形成第二随机参数后根据分析结果判断待测场景是否需要预热;第三种是在对线程配置测试激励的第一随机参数后,和在根据分析结果调整第一随机参数形成第二随机参数后均根据分析结果判断待测场景是否需要预热。

可选地,所述对待测场景执行预热进程包括:

s141、获取待测场景并根据待测场景得出预热指令流;

s142、灌入所述预热指令流并完成待测场景预热。

具体的,本实施例中所述方法主要是根据待测场景得出对应的预热指令流,并在灌入测试激励前将预热指令流灌入线程中,快速构造待测场景;其中,所述待测场景与预热指定流相对应,其对应关系储存在控制单元中。

例如,所述方法中主要支持的待测场景和预热指令流的具体描述如下表:

可选地,在灌入根据第一随机参数生成的测试激励进行第一激励测试之前、或在灌入根据第二随机参数生成的测试激励进行第二激励测试之前、或当待测场景不需要预热后还包括:

s15、获取灌入其他线程测试激励的时刻信息;

s16、根据所述时刻信息调整灌入该线程测试激励的时刻。

具体的,本实施例中所述方法为了能够进一步的提高同步多线程场景验证的效率,所述方法还通过获取其他线程灌入测试激励的时间信息,设定并调整该线程灌入测试激励的时间点,保证在随机的激励测试中,同步多线程中的各个线程在同一时刻进行激励测试(即仿真),实现同步多线程待测场景,提高仿真效率。

同时,本实施例中还能够通过所述方法实现对回归测试的分析,并根据回归测试结果,调整待测环境的随机参数配置,能够显著提高设计整体覆盖率,减少回归测试迭代次数,缩短验证周期,因而具有非常广阔的发展前景和极高的技术价值,其中,所述待测环境与随机参数相对应,其对应关系储存在控制单元中。

可选地,在根据分析结果调整第一随机参数形成第二随机参数,并灌入根据第二随机参数生成的测试激励进行第二激励测试之前还包括:

s17、获取根据第一随机参数生成的测试激励,和对第一激励测试进行分析得出的分析结果;

s18、根据所述测试激励和所述分析结果判断是否覆盖待测场景对应的所有测试点,如果是,则结束验证;如果否,则执行下一步。

具体的,本实施例中所述方法获取测试激励和分析结果,并根据两者判断是否覆盖待测场景对应的所有测试点,进而控制执行下一步或结束验证的进程。

同时,所述方法还可通过获取第一随机参数、预热的待测场景、预热指令流、测试激励、待测设计的流水线深度,执行单元数目等信息,并根据仿真覆盖结果,分析覆盖失败的原因,进而调整第一随机参数、预热指令流、第二随机参数或测试激励并输出。所述方法使用调整后第一随机参数、预热指令流、第二随机参数,或者修改测试激励后,重新启动一轮仿真,完成测试点覆盖。进一步的提高所述方法对测试点的覆盖效果和验证效率。

其中,所述测试点覆盖失败的原因和对应的配置方法如下表:

因此,所述方法避免了同步多线程流水线由于各个线程的竞争互相影响,导致测试激励无法达到预期效果的问题,因此,所述方法采用上述步骤能够根据流水线的结构,分析测试激励的预期行为并根据分析结果调整环境配置信息,完成测试覆盖的验证方法。提高了测试点的全面覆盖效果,同时还提高了验证的效率,以及缩短验证周期。

可选地,所述第一随机参数和第二随机参数均包括阻塞周期、测试激励进入流水线时间、对目标地址的页表转换信息、对未命中地址预取信息、对目标地址的有效页表刷掉信息、对命中地址的内存刷回信息、分支预测表刷新信息、分支预测表预热信息、随机中断插入信息、随机中断插入时间和随机中断插入密度中一种或者任意组合。

可选地,所述对第一激励测试进行分析得出分析结果为对第一激励测试中访存的地址信息、页表信息和分支信息中一种或者任意组合进行分析得出分析结果。

本发明实施例还提供一种同步多线程场景验证装置,如图4所示,所述装置包括:

分析单元11,用于在进行第一激励测试中、或在进行第一激励测试后对第一激励测试进行分析得出分析结果;

控制单元12,用于对线程配置测试激励的第一随机参数,以及根据分析结果调整第一随机参数形成第二随机参数;

执行单元13,与至少两个线程分别连接并用于灌入根据第一随机参数或第二随机参数生成的测试激励进行激励测试。

本发明实施例提供的同步多线程场景验证装置主要是通过分析单元分析输入的激励测试内的访存地址、页表分支等信息,并将分析结果传输给控制单元,所述控制单元根据待测环境和第一随机参数修改第二随机参数,并由执行单元灌入根据第二随机参数生成的测试激励,使仿真快速收敛到待测点,确保验证的完备性,弥补了传统随机测试验证周期长,定向测试消耗验证人员大量的时间去编写测试激励,构造验证场景效率低,验证覆盖率的不足等问题。

可选地,如图5所示,所述控制单元包括:

随机参数配置模块121,用于对线程配置测试激励的随机参数;

随机参数调整模块122,用于根据分析结果调整第一随机参数形成第二随机参数;

预热判断模块123,用于根据分析结果判断待测场景是否需要预热;

预热指令生成模块124,与预热判断模块连接,用于获取待测场景并根据待测场景得出预热指令流。

所述控制单元还包括:

获取模块125,用于获取灌入其他线程测试激励的时刻信息;

时刻调整模块126,用于根据所述时刻信息调整灌入该线程测试激励的时刻。

可选地,所述装置还包括:

结果对比单元14,用于获取向线程所灌入的测试激励和分析结果,并根据测试激励和分析结果判断是否覆盖待测场景对应的所有测试点。

综上所述,本实施例所述装置主要是通过分析单元分析输入的激励测试内的访存地址、页表分支等信息,并将分析结果传输给控制单元,所述控制单元根据待测环境和第一随机参数修改第二随机参数,并由执行单元灌入根据第二随机参数生成的测试激励,最后通过结果对比单元实现对同步多线程的待测场景的分析,同时,所述控制单元还可根据待测场景的需求在灌入测试激励前添加预热指令流,使仿真快速收敛到待测点,确保验证的完备性。

其中,所述控制单元参照不同的验证需求,根据分析单元的结果控制随机参数配置,产生不同的配置,满足验证需求。例如,当构造一个线程被其它线程阻塞场景时,随机参数配置模块可以将阻塞信号拉高若干个时钟周期来达到阻塞的效果。同时,在控制单元内包括随机参数配置模块和随机参数调整模块,其中,所述随机参数调整模块可以接收分析单元的控制信号,分析单元分析测试激励后,会根据分析结果控制随机参数调整模块调整第一随机参数形成第二随机参数,在下次运行仿真时,随机配置调整模块按照第二随机参数对线程完成配置,快速的进行测试迭代。

同时,所述控制单元还包括预热判断模块和预热指令生成模块,预热判断单元参照不同的测试需求,根据分析装置的结果判断是否需要对待测场景进行预热,并由预热指令生成模块根据待测场景产生特定的预热指令流,在灌入测试激励前,优先将预热指令流灌入待测系统流水线中。例如,测试访存指令的写后读相关时,添加对该访存地址预取的预热指令流,可以避免因为高速缓存没有命中而破坏写后读场景。

并且,所述控制单元还包括获取模块和时刻调整模块,其中,所述获取模块其他线程灌入测试激励的时刻信息,然后由所述时刻调整模块根据时刻信息调整灌入该线程测试激励的时刻,保证在随机测试中,各线程在同一个时刻进行仿真,实现同步多线程的待测场景,提高仿真效率。

本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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