CN114564396A - 基于数据路径约束求解的随机指令测试程序生成方法 - Google Patents

基于数据路径约束求解的随机指令测试程序生成方法 Download PDF

Info

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
Application number
CN202210185468.7A
Other languages
English (en)
Inventor
谭坚
刘鑫
陈德训
王丽一
陈磊
吴臻
曹陈炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN202210185468.7A priority Critical patent/CN114564396A/zh
Publication of CN114564396A publication Critical patent/CN114564396A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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
Figure BDA0003523153590000051
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的处理过程,将处理器指令计算结果以及指令验证元组数据的结果数据,分别存储在局存空间中的不同位置,互不交叠;
再采用计算结果与验证数据对应局存空间数据直接比较的方式,校验是否一致:一致则结果正确,不一致则报错。
CN202210185468.7A 2022-02-28 2022-02-28 基于数据路径约束求解的随机指令测试程序生成方法 Pending CN114564396A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115686631A (zh) * 2022-11-07 2023-02-03 合芯科技有限公司 一种基于知识基的随机指令生成方法、装置及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
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