CN111125996B - 一种伪随机激励生成器的基于双向约束树指令集实现方法 - Google Patents
一种伪随机激励生成器的基于双向约束树指令集实现方法 Download PDFInfo
- Publication number
- CN111125996B CN111125996B CN201911257836.9A CN201911257836A CN111125996B CN 111125996 B CN111125996 B CN 111125996B CN 201911257836 A CN201911257836 A CN 201911257836A CN 111125996 B CN111125996 B CN 111125996B
- Authority
- CN
- China
- Prior art keywords
- instruction
- constraint
- random
- type
- tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明涉及一种伪随机激励生成器的基于双向约束树指令集实现方法,包括以下步骤:分别定义指令单元和多级指令组,其中,指令单元是伪随机激励生成器中最基本的指令定义,指令组是将同一类型的指令或指令组编为一组;根据所述指令单元和多级指令组在指令的分组之间建立约束关系,形成树形约束模型结构;基于所述树形约束模型结构生成随机指令。本发明使指令集具有高度的结构法和伪随机控制更加精细。
Description
技术领域
本发明涉及伪随机激励生成技术领域,特别是涉及一种伪随机激励生成器的基于双向约束树指令集实现方法。
背景技术
在高性能处理器伪随机激励生成器中,指令集是激励生成器的用户接口,指令集的定义方式直接关系到伪随机激励的编写效果。传统的指令集分类一般根据在处理器中操作数的存储方法,指令中显示表示的操作数个数,寻址方式,操作类型以及操作数的类型和大小来进行分类。最常见的为通用寄存器型指令集结构的分类,该类指令集结构可以进一步细分为三种类型——寄存器-寄存器型、寄存器-存储器型、存储器-存储器型。
常见的伪随机激励生成器对指令集实现采用常规树形结构,通过对相应的指令树遍历来生成测试指令。采用上述方法时,如果指令条数较多,则会增加代码的复杂度,并且指令数的操作类型不同,会限制指令所能够表示的寄存器个数。指令集的调整对原有的测试序列也有一定的影响,指令的删减或增加,需要改动已编写完成的测试序列或测试知识库,没有可重用性与可继承性。
发明内容
本发明所要解决的技术问题是提供一种伪随机激励生成器的基于双向约束树指令集实现方法,使指令集具有高度的结构法和伪随机控制更加精细。
本发明解决其技术问题所采用的技术方案是:提供一种伪随机激励生成器的基于双向约束树指令集实现方法,包括以下步骤:
(1)分别定义指令单元和多级指令组,其中,指令单元是伪随机激励生成器中最基本的指令定义,指令组是将同一类型的指令或指令组编为一组;
(2)根据所述指令单元和多级指令组在指令的分组之间建立约束关系,形成树形约束模型结构;
(3)基于所述树形约束模型结构生成随机指令。
所述步骤(1)中定义指令单元时,每个指令单元包括:指令的名称、目标寄存器及目标寄存器类型、指令的源寄存器以及地址偏移、指令存储地址、下一条指令PC与当前指令PC的偏移、以及指令的合法性。
所述步骤(1)中定义多级指令组时,每个指令组分类从高到低依次为:随机类别、指令类型、执行部件、操作分组和操作数类型。
所述随机类别变量的可选值包括以下三种:运算类指令、访存类指令和控制类指令。
所述步骤(2)包括以下子步骤:
(21)建立约束层级,基于树形约束模型,根据指令的约束复杂程度分为三个基类,再根据指令类型、执行部件、操作分组、指令操作数类型、指令单元分为5级;当约束在最高级时,约束性最小,随机到的指令最多,随机性最强;当约束在最低级时,约束性最大,无随机性;约束性的大小随级增大,随机性随级减弱;
(22)根据测试要求,定义约束属性,添加约束,具体为:(a)定义随机变量与指令类型间的约束关系;(b)定义指令类型与执行部件间的约束关系;(c)定义执行部件与操作分组间的约束关系;(d)定义操作分组与操作数类型间的约束关系;(e)定义操作数类型与指令单元间的约束关系。
所述步骤(3)包括以下子步骤:
(31)编写伪随机激励;
(32)选择一个指令组或指令单元,并以此作为随机特征进行约束;
(33)应用所述树形约束模型结构查找符合约束条件的指令组或指令,若该指令组或指令为空,则返回步骤(32)中查看是否约束定义错误。
有益效果
由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明在处理器伪随机激励生成器中,指令集采用了树形约束模型进行建模,通过建模可以直观地根据伪随机激励代码中对指令属性的约束,快速的找到对应该属性的具体指令,如此可以有效避免指令集调整对原有测试序列造成的影响,能够使得原有测试知识库、测试序列实现基本不做修改的继承。本发明采用树形约束模型,其有效地组织了随机的元素,使得在激励编写中能够灵活的指定随机的方向,并且控制不同方向上的权重,该树形约束模型能够在Excel表中清楚的表达伪随机激励生成器随机元素,使得激励编写人员能够快速的掌握激励编写技术,并且文档具有很强的继承性。该树形约束模型的约束是双向约束:父类约束子类,子类对父类也有一定约束性。因此可以通过指令组或具体指令来生成随机指令,使得激励编写更加灵活。
附图说明
图1是伪随机激励生成器的指令约束树示意图;
图2是指令约束树的实现流程图;
图3是指令约束树应用流程图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
本发明的实施方式涉及一种伪随机激励生成器的基于双向约束树指令集实现方法,该方法为了解决指令集调整带来的对原有测试知识库,测试序列的大量调整修改的问题,减少测试激励代码的复杂度,使得原有的测试知识库具有可继承性与可重用性。其可以将指令进行分类与调整,使指令集具有高度的结构法和伪随机控制更加精细。
该方法的原理是:采用树形约束模型结构。该树形约束模型结构就是将指令集看作一颗约束树,叶节点为指令单元。指令单元主要定义了指令的格式和各种属性信息,如操作码,功能码,寄存器域等,每条指令都定义一个指令单元。中间节点为指令组,由一组特定分类的指令单元组成。根节点包含了所有指令定义。中间节点代表的是指令单元的各类属性,指令单元的属性定义越多,则指令约束树的层次划分越多,伪随机控制就越精细。具体模型参见图1,具体实施方式如下,包括以下步骤:
1、定义指令单元
指令单元是伪随机激励生成器中最基本的指令定义。每个单元包含:
(1)指令的名称(opname);
(2)目标寄存器(oreg)及目标寄存器类型(oreg_type):目标寄存器类型分整数型、单精度浮点数型、双精度浮点数型等;
(3)指令的源寄存器“src0,src1,src2”以及地址偏移“disp”;
(4)指令存储地址(PC);
(5)下一条指令PC与当前指令PC的偏移(NPC_DISP);
(6)指令的合法性(legal):用于表示地址是否对界。
2、定义多级指令组
指令组是将同一类型的指令或指令组编为一组,如果指定生成某一指令组的指令时,伪随机激励生成器会随机生成此指令组中的指令,同时可指定不同子类型的比例。将指令组从高到低分为1-5级,级别越低,所对应的指令类型越细致。各级指令组分类如下:
(1)随机类别(rand_class):作为指令约束树的第一级节点,变量的可选值包括以下三种:
a)运算类指令(CLASS_A):用户需要约束目标寄存器使其不冲掉锁寄存器;
b)访存类指令(CLASS_B):用户需约束目标寄存器和源寄存器;
c)控制类指令(CLASS_C):用户需约束目标寄存器及指令组合的序列。
(2)指令类型(inst_kind):为第二级支干:如整数运算类型、浮点运算类型、访存指令类型、转移指令类型等。
(3)执行部件(execute_unit):如加法部件、浮点访存部件、SIMD密码部件等;
(4)操作分组(operate_kind):如加减法运算、比较运算,逻辑运算、锁指令、原子操作指令等;
(5)操作数类型(data_kind):如粒度为32的整型运算(INT32);
本实施方式中定义了6个层级,包含5个指令组层级和1级指令单元,具体如表1所示。
表1伪随机激励生成器的指令约束树部分定义表
3、约束树的实现方法
本实施方式基于上述指令单元的介绍以及指令组的分类,在指令的分组之间建立约束关系,具体实现如附图2所示:
1)、建立约束层级,基于树形约束模型,根据指令的约束复杂程度分为三个基类,再根据指令类型、执行部件、操作分组、指令操作数类型、指令单元分为5级,分类如表1所示。当约束在最高级时,例如约束在CLASS_A时,此时约束性最小,随机到的指令最多,随机性最强;当约束到指令单元时,此时约束性最大,也具体到具体指令,无随机性;约束性的大小随级增大,随机性随级减弱;
2)、根据测试要求,定义约束属性,添加约束,具体方法如下:
a)定义随机变量与指令类型间的约束关系;
b)定义指令类型与执行部件间的约束关系;
c)定义执行部件与操作分组间的约束关系;
d)定义操作分组与操作数类型间的约束关系;
e)定义操作数类型与指令单元间的约束关系;
下面以加法指令(ADDW)为例,给出一个约束方法的代码示例。
该指令属于CLASS_A类下整数运算类型INT_OP中加法部件ADD_UNIT的粒度为int32的加减法运算INT_ADSB。
约束关系是双向的:父类可以对子类进行约束,反之,子类对父类也有一定的约束性。这种约束关系可以通过常用的验证语言(Specman E、SystemVerilog)实现。
3)、生成随机指令,具体流程如图3所示:
1、编写伪随机激励;
2、用户选择一个指令组或指令单元以此作为随机特征进行约束;
3、应用指令约束树模型查找符合约束条件的指令组或指令,若该指令组或指令为空,则返回2中查看是否约束定义错误;
此外,在已经生成好的测试序列基础上,如果指令有添加、删除或修改,不需要改动测试序列,直接在指令约束树模型中修改即可。
不难发现,本发明在处理器伪随机激励生成器中,指令集采用了树形约束模型进行建模,通过建模可以直观地根据伪随机激励代码中对指令属性的约束,快速的找到对应该属性的具体指令,如此可以有效避免指令集调整对原有测试序列造成的影响,能够使得原有测试知识库、测试序列实现基本不做修改的继承。本发明采用树形约束模型,其有效地组织了随机的元素,使得在激励编写中能够灵活的指定随机的方向,并且控制不同方向上的权重,该树形约束模型能够在Excel表中清楚的表达伪随机激励生成器随机元素,使得激励编写人员能够快速的掌握激励编写技术,并且文档具有很强的继承性。该树形约束模型的约束是双向约束:父类约束子类,子类对父类也有一定约束性。因此可以通过指令组或具体指令来生成随机指令,使得激励编写更加灵活。
Claims (5)
1.一种伪随机激励生成器的基于双向约束树指令集实现方法,其特征在于,包括以下步骤:
(1)分别定义指令单元和多级指令组,其中,指令单元是伪随机激励生成器中最基本的指令定义,指令组是将同一类型的指令或指令组编为一组;
(2)根据所述指令单元和多级指令组在指令的分组之间建立约束关系,形成树形约束模型结构;具体包括以下子步骤:
(21)建立约束层级,基于树形约束模型,根据指令的约束复杂程度分为三个基类,再根据指令类型、执行部件、操作分组、指令操作数类型、指令单元分为5级;当约束在最高级时,约束性最小,随机到的指令最多,随机性最强;当约束在最低级时,约束性最大,无随机性;约束性的大小随级增大,随机性随级减弱;
(22)根据测试要求,定义约束属性,添加约束,具体为:(a)定义随机变量与指令类型间的约束关系;(b)定义指令类型与执行部件间的约束关系;(c)定义执行部件与操作分组间的约束关系;(d)定义操作分组与操作数类型间的约束关系;(e)定义操作数类型与指令单元间的约束关系;
(3)基于所述树形约束模型结构生成随机指令。
2.根据权利要求1所述的伪随机激励生成器的基于双向约束树指令集实现方法,其特征在于,所述步骤(1)中定义指令单元时,每个指令单元包括:指令的名称、目标寄存器及目标寄存器类型、指令的源寄存器以及地址偏移、指令存储地址、下一条指令PC与当前指令PC的偏移、以及指令的合法性。
3.根据权利要求1所述的伪随机激励生成器的基于双向约束树指令集实现方法,其特征在于,所述步骤(1)中定义多级指令组时,每个指令组分类从高到低依次为:随机类别、指令类型、执行部件、操作分组和操作数类型。
4.根据权利要求2所述的伪随机激励生成器的基于双向约束树指令集实现方法,其特征在于,所述随机类别变量的可选值包括以下三种:运算类指令、访存类指令和控制类指令。
5.根据权利要求1所述的伪随机激励生成器的基于双向约束树指令集实现方法,其特征在于,所述步骤(3)包括以下子步骤:
(31)编写伪随机激励;
(32)选择一个指令组或指令单元,并以此作为随机特征进行约束;
(33)应用所述树形约束模型结构查找符合约束条件的指令组或指令,若该指令组或指令为空,则返回步骤(32)中查看是否约束定义错误。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911257836.9A CN111125996B (zh) | 2019-12-10 | 2019-12-10 | 一种伪随机激励生成器的基于双向约束树指令集实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911257836.9A CN111125996B (zh) | 2019-12-10 | 2019-12-10 | 一种伪随机激励生成器的基于双向约束树指令集实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111125996A CN111125996A (zh) | 2020-05-08 |
CN111125996B true CN111125996B (zh) | 2023-04-07 |
Family
ID=70498028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911257836.9A Active CN111125996B (zh) | 2019-12-10 | 2019-12-10 | 一种伪随机激励生成器的基于双向约束树指令集实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111125996B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256328B (zh) * | 2020-10-19 | 2023-04-07 | 海光信息技术股份有限公司 | 随机指令的生成方法及装置、存储介质以及电子装置 |
CN112559045B (zh) * | 2020-12-23 | 2022-09-16 | 中国电子科技集团公司第五十八研究所 | 一种基于riscv的随机指令生成平台及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002037340A2 (en) * | 2000-11-03 | 2002-05-10 | Verisity Ltd. | System and method for test generation with dynamic constraints using static analysis |
CN102623069A (zh) * | 2012-02-13 | 2012-08-01 | 山东华芯半导体有限公司 | 随机激励闪存模型验证方法 |
CN106569944A (zh) * | 2016-10-14 | 2017-04-19 | 上海微小卫星工程中心 | 基于约束树的星载软件测试数据分析方法 |
-
2019
- 2019-12-10 CN CN201911257836.9A patent/CN111125996B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002037340A2 (en) * | 2000-11-03 | 2002-05-10 | Verisity Ltd. | System and method for test generation with dynamic constraints using static analysis |
CN102623069A (zh) * | 2012-02-13 | 2012-08-01 | 山东华芯半导体有限公司 | 随机激励闪存模型验证方法 |
CN106569944A (zh) * | 2016-10-14 | 2017-04-19 | 上海微小卫星工程中心 | 基于约束树的星载软件测试数据分析方法 |
Non-Patent Citations (1)
Title |
---|
巨鹏锦 ; 张晓冬 ; 李辉 ; .基于模型和库的处理器伪随机激励生成器设计与实现.计算机工程与科学.2018,(01),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111125996A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Code completion with neural attention and pointer networks | |
Plishker et al. | Functional DIF for rapid prototyping | |
JP4988758B2 (ja) | マルチサイクル・クロック・ゲーティングのための方法および装置 | |
Haedicke et al. | CRAVE: An advanced constrained random verification environment for SystemC | |
Liu et al. | Model checking linearizability via refinement | |
CN103605518A (zh) | 对象反序列化方法和装置 | |
Zeigler | Objects and Systems: Principled Design with Implementations in C++ and Java | |
CN111125996B (zh) | 一种伪随机激励生成器的基于双向约束树指令集实现方法 | |
CN105706092A (zh) | 四值模拟的方法和系统 | |
CN109857389A (zh) | 模型数据生成方法、装置、计算机设备及存储介质 | |
CN105320681A (zh) | 一种数据库内容合并方法及装置 | |
US8914782B2 (en) | Optimization of declarative queries | |
Ding et al. | Fully expanded tree for property analysis of one-place-unbounded Petri nets | |
Wang et al. | Quantifier elimination in stochastic boolean satisfiability | |
Darondeau et al. | Synthesis of nets with step firing policies | |
US7428712B1 (en) | Design optimization using approximate reachability analysis | |
Plishker et al. | Mode grouping for more effective generalized scheduling of dynamic dataflow applications | |
US9367807B2 (en) | Method and system that provides efficient index-based retrieval of rules | |
Mäkelä | A reachability analyser for algebraic system nets | |
Wang et al. | Package ‘EMMIXskew’ | |
Minarik et al. | Concurrent evolution of hardware and software for application-specific microprogrammed systems | |
Mador-Haim et al. | Input elimination and abstraction in model checking | |
Keshava et al. | Optimal Prefetching in Random Trees. Mathematics 2021, 9, 2437 | |
Farwer et al. | Separation of control and data flow in high-level Petri nets: Transforming dual flow nets into object Petri nets | |
Shyamshankar et al. | K3: Language design for building multi-platform, domain-specific runtimes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |