CN114564396A - 基于数据路径约束求解的随机指令测试程序生成方法 - Google Patents
基于数据路径约束求解的随机指令测试程序生成方法 Download PDFInfo
- Publication number
- CN114564396A CN114564396A CN202210185468.7A CN202210185468A CN114564396A CN 114564396 A CN114564396 A CN 114564396A CN 202210185468 A CN202210185468 A CN 202210185468A CN 114564396 A CN114564396 A CN 114564396A
- Authority
- CN
- China
- Prior art keywords
- instruction
- local memory
- data
- operand
- result
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开一种基于数据路径约束求解的随机指令测试程序生成方法,包括以下步骤:S1、循环读取基于约束求解的随机指令序列文件,每次读取一行,若为空则跳转至S7;S2、根据S1中读取的内容,解析指令格式,获取指令名称以及指令格式中每一个操作数的类型;S3、随机读取与S2中解析的指令对应的数据路径约束求解结果文件,获取一组基于数据路径约束的验证元组数据;S4、将S3中获取的验证元组数据按照对界要求预先存储到局存空间中;S5、根据S1中自随机指令序列文件读取的当前随机指令;S6、跳转至S1继续读取指令序列进行解析;S7、生成结果校验代码。本发明可以提升随机指令测试的有效性。
Description
技术领域
本发明涉及一种基于数据路径约束求解的随机指令测试程序生成方法,用于处理器的功能正确性验证及计算机系统的稳定可靠性测试,属于计算技术领域。
背景技术
指令随机测试是考验处理器执行部件的重要方法,需要在处理器研发阶段对指令组合开展充分的测试验证,为确保测试的有效性需要对指令操作数进行有效设置与结果检查。
随机指令测试程序在编写时存在一个普遍性的问题,无法同时做到对结果校验的同时对指令操作数进行随机、有针对性、有效的设置,这样会导致很多随机指令测试都是基于特定限制条件下实现的,这将大大降低随机测试的有效性。
发明内容
本发明的目的是提供一种基于数据路径约束求解的随机指令测试程序生成方法,以解决在计算类指令随机组合生成时操作数有效设置与校验困难的问题。
为达到上述目的,本发明提供一种基于数据路径约束求解的随机指令测试程序生成方法,包括以下步骤:
S1、循环读取基于约束求解的随机指令序列文件,每次读取一行,若为空则跳转至S7;
S2、根据S1中读取的内容,解析指令格式,获取指令名称以及指令格式中每一个操作数存放方式,如果操作数存放在寄存器中,则需要进一步解析出寄存器的类型是标量寄存器还是向量寄存器;
S3、随机读取与步骤S2解析的指令对应的数据路径约束求解结果文件,获取一组基于数据路径约束的验证元组数据;
S4、将S3中获取的验证元组数据按照对界要求预先存储到局存空间中,即在前一次局存地址的基础上,如果当前处理的指令包含向量寄存器,则将局存地址向后偏移,确保局存首地址64B对界,具体为:如果该指令格式中正在处理的输入操作数来自向量寄存器,则将数据存储到局存空间中,然后将局存地址偏移64B;
如果该指令格式中正在处理的输入操作数来自标量寄存器,则将数据存储到局存空间中,然后将局存地址偏移8B;
如果该指令格式中正在处理的输入操作数为立即数,则不存储到局存中;
处理结果操作数,将结果操作数存储在专门用于存储结果操作数的局存地址addr_check中;
S5、根据S1中从随机指令序列文件读取的当前随机指令,结合指令格式中操作数的类型方式进行区分处理,流程如下:
S51、如果当前处理的输入操作数来自向量寄存器,则采用向量加载指令将数据加载到当前指令使用到的寄存器中;
如果当前处理的输入操作数来自标量寄存器,则采用标量加载指令将数据加载到相应的寄存器中;
S52、采用S51中的处理原则,处理生成访存加载指令,再将当前指令的结果操作数存储到指定的局存空间中;
S6、跳转至S1继续读取指令序列进行解析;
S7、生成结果校验代码:
根据S4、S5的处理过程,将处理器指令计算结果以及指令验证元组数据的结果数据,分别存储在局存空间中的不同位置,互不交叠;
再采用计算结果与验证数据对应局存空间数据直接比较的方式,校验是否一致:一致则结果正确,不一致则报错。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明基于数据路径约束求解的随机指令测试程序生成方法,其基于约束随机的指令组合序列,对操作数进行随机约束设置,可以确保随机指令序列中的指令操作数的有效性,同时可以解决结果校验问题,很大程度上减少对随机指令测试的限制,提升随机指令测试的有效性。
附图说明
附图1为本发明随机指令测试程序生成方法的流程图。
具体实施方式
实施例:本发明提供一种基于数据路径约束求解的随机指令测试程序生成方法,包括以下步骤:
S1、循环读取基于约束求解的随机指令序列文件,每次读取一行,若为空则跳转至S7;
S2、根据S1中读取的内容,解析指令格式,获取指令名称以及指令格式中每一个操作数存放方式,如果操作数存放在寄存器中,则需要进一步解析出寄存器的类型是标量寄存器还是向量寄存器;
S3、随机读取与S2中解析的指令对应的数据路径约束求解结果文件,获取一组基于数据路径约束的验证元组数据;
S4、将S3中获取的验证元组数据按照对界要求预先存储到局存空间中,即在前一次局存地址的基础上,如果当前处理的指令包含向量寄存器,则将局存地址向后偏移,确保局存首地址64B对界,具体为:如果该指令格式中正在处理的输入操作数来自向量寄存器,则将数据存储到局存空间中,然后将局存地址偏移64B;
如果该指令格式中正在处理的输入操作数来自标量寄存器,则将数据存储到局存空间中,然后将局存地址偏移8B;
如果该指令格式中正在处理的输入操作数为立即数,则不存储到局存中;
处理结果操作数,将结果操作数存储在专门用于存储结果操作数的局存地址addr_check中;
S5、根据S1中自随机指令序列文件读取的当前随机指令,结合指令格式中操作数的类型方式进行区分处理,流程如下:
S51、如果当前处理的输入操作数来自向量寄存器,则采用向量加载指令将数据加载到当前指令使用到的寄存器中,生成vldw$32,0($x)之类指令;
如果当前处理的输入操作数来自标量寄存器,则采用标量加载指令将数据加载到相应的寄存器中,生成ldl$1,0($x)的指令;
S52、采用S51中的处理原则,处理生成访存加载指令:向量寄存器生成vstw$32,0($x)之类指令,标量寄存器生成ldl$1,0($x)之类的指令;
再将当前指令的结果操作数存储到指定的局存空间中;
S6、跳转至S1继续读取指令序列进行解析;
S7、生成结果校验代码:
根据S4、S5的处理过程,将处理器指令计算结果以及指令验证元组数据的结果数据,分别存储在局存空间中的不同位置,互不交叠;
再采用计算结果与验证数据对应局存空间数据直接比较的方式,校验是否一致:一致则结果正确,不一致则报错。
对上述实施例的进一步解释如下:
本发明是基于发明人此前发表的论文《基于SMT求解器的微处理器指令验证数据约束生成技术》以及申请的专利《基于流水线约束的结果自校验指令序列填充方法》等技术生成的基于数据路径约束的验证元组数据以及基于流水线资源约束的随机指令序列基础上,解析指令序列中的寄存器资源占用情况,结合已有的验证元组数据,对指令序列进行扩充,实现指令执行部件资源有针对性的混合约束以及操作数的有效设置,提升测试质量的目的。
本发明提供了一种基于验证元组数据与约束求解指令序列相结合的、具备自校验功能的随机指令测试程序生成方法,解决随机指令生成的伪随机性,消除传统意义上的随机指令测试的一般限制,可以做到对非访存类的计算指令进行随机组合;
另外,验证元组数据为每一条计算指令提供了有效数据,基于约束求解的指令序列为随机指令增加了有效的组合,在数据有效性以及指令组合的有效性基础上,将二者结合实现了更加有意义的随机指令测试程序,同时解决了结果校验,为测试验证过程中的现场重现提供了可能。
具体流程如下:
1)、循环读取基于约束求解的随机指令序列文件,每次读取一行;为空则跳转至8);
2)、根据读取的内容,解析指令格式,获取指令名称以及指令格式中每一个操作数的类型,如果为寄存器则需要解析出寄存器的类型为标量寄存器还是向量寄存器;
3)、随机读取与该指令对应的数据路径约束求解结果文件,获取一组基于数据路径约束的验证元组数据;
4)、将验证元组数据按照对界要求预先存储到局存空间(LDM)中:
在前一次局存地址的基础上进行处理:如果当前处理的指令包含向量寄存器,则将局存地址向后偏移,确保局存首地址64B对界;
(1)、如果该指令格式中正在处理的输入操作数是来自向量寄存器,则将数据存储到LDM中,然后将局存地址偏移64B;
(2)、如果来自标量寄存器,则将数据存储到LDM中后,然后将局存地址偏移8B;
(3)、如果为立即数,则不存储到局存中;
(4)、处理结果操作数,将结果操作数存储在专门用于存储结果操作数的局存地址addr_check中,addr_check的递增原则按照(2)、(3)的处理方法;
5)、根据1)中随机指令序列文件得到的当前随机指令,包括使用到的寄存器编号等内容,结合指令格式中操作数的类型方式进行区分处理,流程如下:
(1)、如果为当前处理的输入操作数来自向量寄存器则采用向量加载指令将数据加载到当前指令使用到的寄存器中,生成vldw$32,0($x)之类指令;如果来自标量寄存器则采用标量加载指令将数据加载到相应的寄存器中,生成ldl$1,0($x)的指令;
(2)、再采用本小节(1)中的处理原则,处理生成访存加载指令之后,将当前指令的结果操作数存储到指定的LDM内存中;
向量寄存器则生成vstw$32,0($x)之类指令;
标量寄存器则生成ldl$1,0($x)之类的指令;
6)、结合4)、5)小节中的处理方式,生成的指令片段示例如下:
例如给定的片段:vaddw$32,0x2d,$33
7)、跳转至1)中继续取指令序列进行解析;
8)、生成结果校验代码:根据4)、5)小节处理过程,将处理器指令计算结果以及指令验证元组数据的结果数据,分别存储在LDM中的不同位置,互不交叠;然后采用计算结果与验证数据对应局存空间数据直接比较的方式,校验是否一致:一致则结果正确,不一致则报错。
采用上述基于数据路径约束求解的随机指令测试程序生成方法时,其基于约束随机的指令组合序列,对操作数进行随机约束设置,可以确保随机指令序列中的指令操作数的有效性,同时可以解决结果校验问题,很大程度上减少对随机指令测试的限制,提升随机指令测试的有效性。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (1)
1.一种基于数据路径约束求解的随机指令测试程序生成方法,其特征在于,包括以下步骤:
S1、循环读取基于约束求解的随机指令序列文件,每次读取一行,若为空则跳转至S7;
S2、根据S1中读取的内容,解析指令格式,获取指令名称以及指令格式中每一个操作数存放方式,如果操作数存放在寄存器中,则需要进一步解析出寄存器的类型是标量寄存器还是向量寄存器;
S3、随机读取与步骤S2解析的指令对应的数据路径约束求解结果文件,获取一组基于数据路径约束的验证元组数据;
S4、将S3中获取的验证元组数据按照对界要求预先存储到局存空间中,即在前一次局存地址的基础上,如果当前处理的指令包含向量寄存器,则将局存地址向后偏移,确保局存首地址64B对界,具体为:如果该指令格式中正在处理的输入操作数来自向量寄存器,则将数据存储到局存空间中,然后将局存地址偏移64B;
如果该指令格式中正在处理的输入操作数来自标量寄存器,则将数据存储到局存空间中,然后将局存地址偏移8B;
如果该指令格式中正在处理的输入操作数为立即数,则不存储到局存中;
处理结果操作数,将结果操作数存储在专门用于存储结果操作数的局存地址addr_check中;
S5、根据S1中从随机指令序列文件读取的当前随机指令,结合指令格式中操作数的类型方式进行区分处理,流程如下:
S51、如果当前处理的输入操作数来自向量寄存器,则采用向量加载指令将数据加载到当前指令使用到的寄存器中;
如果当前处理的输入操作数来自标量寄存器,则采用标量加载指令将数据加载到相应的寄存器中;
S52、采用S51中的处理原则,处理生成访存加载指令,再将当前指令的结果操作数存储到指定的局存空间中;
S6、跳转至S1继续读取指令序列进行解析;
S7、生成结果校验代码:
根据S4、S5的处理过程,将处理器指令计算结果以及指令验证元组数据的结果数据,分别存储在局存空间中的不同位置,互不交叠;
再采用计算结果与验证数据对应局存空间数据直接比较的方式,校验是否一致:一致则结果正确,不一致则报错。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210185468.7A CN114564396A (zh) | 2022-02-28 | 2022-02-28 | 基于数据路径约束求解的随机指令测试程序生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210185468.7A CN114564396A (zh) | 2022-02-28 | 2022-02-28 | 基于数据路径约束求解的随机指令测试程序生成方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114564396A true CN114564396A (zh) | 2022-05-31 |
Family
ID=81715897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210185468.7A Pending CN114564396A (zh) | 2022-02-28 | 2022-02-28 | 基于数据路径约束求解的随机指令测试程序生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564396A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115686631A (zh) * | 2022-11-07 | 2023-02-03 | 合芯科技有限公司 | 一种基于知识基的随机指令生成方法、装置及存储介质 |
-
2022
- 2022-02-28 CN CN202210185468.7A patent/CN114564396A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115686631A (zh) * | 2022-11-07 | 2023-02-03 | 合芯科技有限公司 | 一种基于知识基的随机指令生成方法、装置及存储介质 |
CN115686631B (zh) * | 2022-11-07 | 2023-08-29 | 合芯科技有限公司 | 一种基于知识基的随机指令生成方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6430741B1 (en) | System and method for data coverage analysis of a computer program | |
US7533294B2 (en) | Functional coverage driven test generation for validation of pipelined processors | |
US20110047532A1 (en) | Methods and apparatuses for selective code coverage | |
US9183114B2 (en) | Error detection on the stack | |
Donaldson et al. | Automatic analysis of scratch-pad memory code for heterogeneous multicore processors | |
US9170919B2 (en) | Apparatus and method for detecting location of source code error in mixed-mode program | |
US20090265531A1 (en) | Code Evaluation for In-Order Processing | |
US20090249304A1 (en) | Code Instrumentation Method and Code Instrumentation Apparatus | |
CN112558942A (zh) | 算子注册方法和相关产品 | |
CN113360157A (zh) | 一种程序编译方法、设备以及计算机可读介质 | |
CN114564396A (zh) | 基于数据路径约束求解的随机指令测试程序生成方法 | |
US8510713B1 (en) | Method and system for validating a disassembler | |
US7290174B1 (en) | Methods and apparatus for generating test instruction sequences | |
US6438725B2 (en) | Apparatus and method for fast code coverage analysis | |
Soubra et al. | Towards Universal COSMIC Size Measurement Automation. | |
US20050050524A1 (en) | Generating software test information | |
CN112445528B (zh) | 基于流水线约束的结果自校验指令序列填充方法 | |
US7222064B1 (en) | Instruction processor emulation having inter-processor messaging accounting | |
Nandivada et al. | A framework for end-to-end verification and evaluation of register allocators | |
CN118297009B (zh) | 一种基于内嵌仿真验证的逻辑综合处理方法、装置及计算机可读存储介质 | |
Villoria | R meets GEMPACK for a monte carlo walk | |
CN117313595B (zh) | 用于功能验证的随机指令生成方法、设备及系统 | |
Mühlberg et al. | Symbolic object code analysis | |
CN115470151B (zh) | 一种应用运行分析方法、计算设备及存储介质 | |
CN116136800A (zh) | 一种操作系统死锁静态检测方法及相关设备 |
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 |