CN111240747B - 指令生成方法、装置、测试架构和电子设备 - Google Patents

指令生成方法、装置、测试架构和电子设备 Download PDF

Info

Publication number
CN111240747B
CN111240747B CN202010033803.2A CN202010033803A CN111240747B CN 111240747 B CN111240747 B CN 111240747B CN 202010033803 A CN202010033803 A CN 202010033803A CN 111240747 B CN111240747 B CN 111240747B
Authority
CN
China
Prior art keywords
instruction
target
information
instructions
issue
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
Application number
CN202010033803.2A
Other languages
English (en)
Other versions
CN111240747A (zh
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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010033803.2A priority Critical patent/CN111240747B/zh
Publication of CN111240747A publication Critical patent/CN111240747A/zh
Application granted granted Critical
Publication of CN111240747B publication Critical patent/CN111240747B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Advance Control (AREA)

Abstract

本申请实施例提供一种指令生成方法、装置、测试架构和电子设备,其中,通过获取用于生成并行多发射指令的目标冲突关系信息,该并行多发射指令包括并行发射的多个单发射指令,目标冲突关系信息用于指示不同单发射指令间的冲突关系;以及获取用于生成并行多发射指令的目标依赖关系信息,目标依赖关系信息用于指示不同单发射指令间的依赖关系;并根据目标冲突关系信息以及目标依赖关系信息逐个生成单发射指令,得到多个单发射指令;最后将多个单发射指令组合为并行多发射指令。由此,本申请所生成的并行多发射指令并不是多个单一的单发射指令,而是相互之间具有依赖关系和/或冲突关系,能够更有效的进行指令的测试验证。

Description

指令生成方法、装置、测试架构和电子设备
技术领域
本申请涉及数据处理技术领域,特别涉及一种指令生成方法、装置、测试架构和电子设备。
背景技术
随着计算机功能的不断丰富,在计算机芯片的设计中,测试验证已成为整个芯片开发流程中开销最大的工作,占整个设计周期的比例越来越大。其中,尤以对指令的验证为甚,相应的,如何生成用于测试验证的指令变得至关重要。
发明内容
本申请实施例提供一种指令生成方法、装置、测试架构和电子设备,能够生成相互之间具有依赖关系和/或冲突关系的并行多发射指令。
本申请实施例公开一种指令生成方法,包括:
获取用于生成并行多发射指令的目标冲突关系信息,所述并行多发射指令包括并行发射的多个单发射指令,所述目标冲突关系信息用于指示不同单发射指令间的冲突关系;
获取用于生成所述并行多发射指令的目标依赖关系信息,所述目标依赖关系信息用于指示不同单发射指令间的依赖关系;
根据所述目标冲突关系信息以及所述目标依赖关系信息逐个生成单发射指令,得到多个单发射指令;
将所述多个单发射指令组合为所述并行多发射指令。
本申请实施例还公开一种指令生成装置,包括:
冲突信息获取模块,用于获取用于生成并行多发射指令的目标冲突关系信息,所述并行多发射指令包括并行发射的多个单发射指令,所述目标冲突关系信息用于指示不同单发射指令间的冲突关系;
依赖关系获取模块,用于获取用于生成所述并行多发射指令的目标依赖关系信息,所述目标依赖关系信息用于指示不同单发射指令间的依赖关系;
单发射指令生成模块,用于根据所述目标冲突关系信息以及所述目标依赖关系信息逐个生成单发射指令,得到多个单发射指令;
多发射指令组合模块,用于将所述多个单发射指令组合为所述并行多发射指令。
本申请实施例还公开一种测试架构,包括:
指令生成装置,所述指令生成装置为本申请公开的指令生成装置;
输入单元,所述输入单元与所述指令生成装置连接,所述输入单元用于从所述指令生成装置获取并行多发射指令,并将所述并行多发射指令并行发射到对应的待测试模块;
输出单元,所述输出单元与所述待测试模块连接,用于接收所述待测试模块执行所述并行多发射指令得到的执行结果,并根据所述执行结果获取对应所述并行多发射指令的测试结果。
本申请实施例还公开一种电子设备,包括处理器和存储器,所述存储器存有计算机程序,所述处理器通过加载所述计算机程序,用于执行如本申请任一实施例提供的指令生成方法。
本申请所生成的并行多发射指令并不是多个单一的单发射指令,而是相互之间具有依赖关系和/或冲突关系,能够更有效的进行指令的测试验证。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的指令生成方法的一流程示意图。
图2为本申请实施例提供的指令生成方法的另一流程示意图。
图3为本申请实施例实现的指令发送器的示意图。
图4为本申请实施例提供的指令生成装置的结构示意图。
图5为本申请实施例提供的测试架构的应用示意图。
图6为本申请实施例提供的电子设备的结构示意图。
具体实施方式
应当说明的是,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。
目前,现在计算机芯片往往会自主开发多核指令集,实现多指令多数据流的指令集架构。这种指令集包含的指令数目较多,往往有上百条的指令,指令类型也比较广,分为数据处理与存储、算数逻辑、跳转控制、系统指令等,同时这些指令之间支持并行多发射,指令依赖关系较为复杂。因此,如何生成用于测试验证的并行多发射指令变得至关重要。
为此,本申请实施例提供一种指令生成方法、指令生成装置、存储介质以及测试架构,获取用于生成并行多发射指令的目标冲突关系信息以及目标依赖关系信息,并根据获取到的目标冲突关系信息以及目标依赖关系信息逐个生成相互依赖的单发射指令,得到多个相互依赖的单发射指令,并将多个单发射指令组合为并行多发射指令。其中,该指令生成方法的执行主体可以是本申请实施例提供的指令生成装置,或者集成了该指令生成装置的电子设备,其中该指令生成装置可以采用硬件或者软件的方式实现,电子设备可为然后配备有处理器而具有处理能力的设备。
请参照图1,图1为本申请实施例提供的指令生成方法的流程示意图,该指令生成方法的流程可以如下:
在101中,获取用于生成并行多发射指令的目标冲突关系信息,并行多发射指令包括并行发射的多个单发射指令,目标冲突关系信息用于指示不同单发射指令间的冲突关系。
应当说明的是,并行多发射指令并不是单一的指令,而是多个并行发射的单发射指令的组合,也即是并行多发射指令包括并行发射的多个单发射指令。应当说明的是,本申请实施例中对并行多发射指令包括的单发射指令的数量不做具体限制,可由本领域普通技术人员根据实际需要进行配置。
本申请实施例中,首先获取用于生成并行多发射指令的目标冲突关系信息,该目标冲突关系信息用于指示构成并行多发射指令的不同单发射指令间的冲突关系。
其中,冲突关系至少包括资源冲突和数据冲突,资源冲突即某指令类型的指令在同一并行多发射指令中可以存在的数量,数据冲突即某指令类型的指令在一次发射后再次发射需要等待的时钟周期数。
在102中,获取用于生成并行多发射指令的目标依赖关系信息,目标依赖关系信息用于指示不同单发射指令间的依赖关系。
本申请实施例中,还获取用于生成并行多发射指令的目标依赖关系信息,该目标依赖关系用于指示构成并行多发射指令的不同单发射指令间的依赖关系,比如,如是否跳转,是否有冲突,是否在特定程序计数器插入特定指令等。
在103中,根据目标冲突关系信息以及目标依赖关系信息逐个生成单发射指令,得到多个单发射指令。
在获取到用于生成并行多发射指令的目标冲突关系信息以及目标依赖关系信息之后,即可根据获取到的目标冲突关系信息以及目标依赖关系信息生成一个随机的单发射指令,如此循环多次,将会得到用于构成并行多发射指令的多个单发射指令。
在104中,将多个单发射指令组合为并行多发射指令。
在得到用于构成并行多发射指令的多个单发射指令之后,即可将多个单发射指令组合为并行多发射指令。示例性的,可以按照各单发射指令生成的先后顺序,为各单发射指令分配发射槽信息,然后按照发射槽信息将多个单发射指令组合为并行多发射指令。
比如,假设生成并行四发射指令,则相应依次得到四个单发射指令,分别为单发射指令1、单发射指令2、单发射指令3以及单发射指令4,其中,默认为单发射指令1分配发射槽1,为单发射指令2分配发射槽2,为单发射指令3分配发射槽3,以及为单发射指令4分配发射槽4。
本领域普通技术人员可以理解的是,按照本申请提供的指令生成方法,还可以根据实际需要生成多个并行多发射指令,比如测试人员设定了需要的并行多发射指令的总数为N个,那么可以循环执行101-104N次,直至N个
在生成需要个数的并行多发射指令之后,还可以输出生成的并行多发射指令的相关信息,比如指令名、指令内容等。
由上可知,本申请通过获取用于生成并行多发射指令的目标冲突关系信息,该并行多发射指令包括并行发射的多个单发射指令,目标冲突关系信息用于指示不同单发射指令间的冲突关系;以及获取用于生成并行多发射指令的目标依赖关系信息,目标依赖关系信息用于指示不同单发射指令间的依赖关系;并根据目标冲突关系信息以及目标依赖关系信息逐个生成单发射指令,得到多个单发射指令;最后将多个单发射指令组合为并行多发射指令。由此,本申请所生成的并行多发射指令并不是多个单一的单发射指令,而是相互之间具有依赖关系和/或冲突关系,能够更有效的进行指令的测试验证。
在一实施例中,获取用于生成并行多发射指令的目标冲突关系信息,包括:
(1)随机从多个不同的指令类型中选取出目标指令类型;
(2)将目标指令类型对应的冲突关系信息作为目标冲突关系信息。
本申请实施例中,对于每一指令类型,都实现一个“冲突控制结构体”,该冲突结构体有两个成员变量:一个是容量,即该指令类型的指令在同一并行多发射指令中可以存在的数量,用以实现“资源冲突”的控制,另一个是计数,即该指令类型的指令发射一次后再次发射需等待的时钟周期数,用以实现“数据冲突”的控制。在每生成一次并行多发射指令的过程中,都需要对冲突控制结构体进行初始化设定,也即是对冲突控制结构体中的两个成员变量“容量”和“计数”进行初始化设定。
相应的,在获取用于生成并行多发射指令的目标冲突关系信息时,首先随机从多个不同的指令类型中选取一个指令类型作为目标指令类型,该目标指令类型用于指示当次生成用于构成并行多发射指令的单发射指令的指令类型。
然后,获取到该目标指令类型对应的冲突控制结构体,记为目标冲突控制结构体,该目标冲突控制结构体的两个成员变量即其对应的冲突关系信息,将其作为目标冲突关系信息。
在一实施例中,获取用于生成并行多发射指令的目标依赖关系信息,包括:
(1)获取对应目标指令类型的控制流信息、跳转链信息以及特定指令信息;
(2)将控制流信息、跳转链信息以及特定指令信息作为目标依赖关系信息。
本申请实施例中,还实现有三个结构体,分别为控制流结构体、跳转链结构体以及特定指令结构体,其中,控制流结构体包括控制流信息,用于指示当次生成并行多发射指令中有无跳转指令、有无指令冲突;跳转链结构体包括跳转链信息,用于指示跳转指令的源程序计数器、跳转步数、跳转方向以及跳转类型等;特定指令结构体包括特定指令信息,用于指示特定指令的程序计数器以及特定指令类型。其中,控制流结构体、跳转链结构体以及特定指令结构体可以随机配置,缺省配置,还可以根据用户输入进行配置,本申请对此不做具体限制。
相应的,在获取用于生成并行多发射指令的目标依赖关系信息时,首先分别从控制流结构体获取控制流信息,从跳转链结构体获取跳转链信息,以及从特定指令结构体获取特定指令信息。然后,将获取到的控制流信息、跳转链信息以及特定指令信息作为目标依赖关系信息。
在一实施例中,根据目标冲突关系信息以及目标依赖关系信息逐个生成单发射指令,包括:
(1)调用对应目标指令类型的指令发生器;
(2)基于指令发生器根据目标冲突关系信息、控制流信息、跳转链信息以及特定指令信息,生成单发射指令。
应当说明的是,本申请中还预先实现有对应每一指令类型的指令发生器,该指令发生器被配置为用于生成随机化的单发射指令。
相应的,在根据目标冲突关系信息以及目标依赖关系信息逐个生成单发射指令时,可以调用对应目标指令类型(即当次生成用于构成并行多发射指令的单发射指令的指令类型)的指令发生器,并基于该指令发生器根据获取到的目标冲突关系信息、控制流信息、跳转链信息以及特定指令信息来生成随机的单发射指令,如此循环多次,即可生成用于构成并行多发射指令的多个单发射指令。
在一实施例中,基于指令发生器根据目标冲突关系信息、控制流信息、跳转链信息以及特定指令信息,生成单发射指令,包括:
(1)基于指令发生器获取构成目标指令类型的单发射指令的多个指令字段;
(2)基于指令发生器根据目标冲突关系信息、控制流信息、跳转链信息以及特定指令信息,对多个指令字段进行随机赋值处理;
(3)将随机赋值后的多个指令字段组合为单发射指令。
应当说明的是,一个完整的指令通常由多个指令字段组成,不同类型的指令的指令字段往往不同。
相应的,本申请实施例中,在基于指令发生器根据目标冲突关系信息、控制流信息、跳转链信息以及特定指令信息,生成单发射指令时,首先基于基于指令发生器获取构成目标指令类型的单发射指令的多个指令字段,然后基于指令发生器根据目标冲突关系信息、控制流信息、跳转链信息以及特定指令信息,对多个指令字段进行随机赋值处理,最后将随机赋值后的多个指令字段组合为一个完整的单发射指令。
比如,假设目标指令类型的指令由F1、F2、F3、F4、F5以及F6共六个指令字段组成,则可基于指令发生器获取到构成该目标指令类型的指令类型的多个指令字段,即指令字段F1、F2、F3、F4、F5以及F6,此时,各指令字段为空值;然后,基于指令发生器根据目标冲突关系信息、控制流信息、跳转链信息以及特定指令信息,对指令字段F1、F2、F3、F4、F5以及F6进行随机赋值处理,也即是各指令字段在各自允许的范围内进行随机;最后,将随机赋值后的指令字段F1、F2、F3、F4、F5以及F6组合为一个完整的单发射指令。
可选的,在将随机赋值后的所述多个指令字段组合为单发射指令之后,还可以对该单发射指令进行程序计数器和指令类型名的绑定。
在一实施例中,将随机赋值后的多个指令字段组合为单发射指令,包括:
(1)当存在对多个指令字段中指定字段的配置值时,将指定字段的值修改为配置值;
(2)将修改后的多个指令字段组合为单发射指令。
本申请实施例中,还实现对特定字段的指定值处理。
其中,在将随机赋值后的多个指令字段组合为单发射指令时,首先判断是否存在对多个指令字段中指定字段的配置值,当存在对指定字段的配置值时,将指定字段的值修改为配置值,再将修改后的多个指令字段组合为一个完整的单发射指令。
比如,以目标指令类型的指令由F1、F2、F3、F4、F5以及F6共六个指令字段组成,测试人员可以预先输入对字段F2的配置值,相应的,在完成对指令字段F1、F2、F3、F4、F5以及F6的随机赋值处理之后,将指定字段F2的随机值修改为测试人员输入的配置值,然后再将指令字段F1、F2、F3、F4、F5以及F6组成一个完整的单发射指令,其中,指令字段F1、F3、F4、F5以及F6均为随机值,指令字段F2为配置值,以对该指令的某个特定功能进行验证。
在一实施例中,将多个单发射指令组合为并行多发射指令,包括:
获取针对并行多发射指令的发射槽信息,根据发射槽信息将多个单发射指令组合为并行多发射指令。
本申请实施例中,可以对每个单发射指令对应的发射槽进行调整,比如,假设生成了用于构成并行四发射指令的四个单发射指令,分别为单发射指令1、单发射指令2、单发射指令3以及单发射指令4,并默认为单发射指令1分配发射槽1,为单发射指令2分配发射槽2,为单发射指令3分配发射槽3,以及为单发射指令4分配发射槽4,可以将单发射指令1放到发射槽4,将单发射指令4放到发射槽1。
其中,可以获取到针对并行多发射指令的发射槽信息,该发射槽信息用于指示分配给构成并行多发射指令的单发射指令的发射槽,可由测试人员根据实际需要进行配置;然后,根据获取到的发射槽信息对生成的用于构成并行多发射指令的单发射指令的发射槽进行调整;在完成发射槽的调整之后,一个完整的并行多发射指令即生成完毕。
在一实施例中,将多个单发射指令组合为并行多发射指令之后,还包括:
搭建验证环境;
将并行多发射指令加载到对应的指令发射槽中,在验证环境中进行验证。
本申请实施例中,验证环境用于提供验证所需的运行及支持环境,比如UVM(Universal Verification Methodology,通用验证方法学)验证环境。其中,在完成验证环境的搭建之后,即可根据并行多发射指令对应的发射槽信息,将并行多发射指令加载到的对应的指令发射槽中,在验证环境中验证指令取指、译码、流水以及执行等的准确性。
请参照图2,以下以生成并行四发射指令为例对本申请提供的指令生成方法的流程还可以为:
在201中,实现指令冲突结构体初始化单元。
每一种指令类型都需要实现一个“冲突控制结构体”,该结构体有两个成员变量:一个是容量(cap),即该指令类型在同一个四发射中可以存在的数量,用以实现“资源冲突”的冲突控制;一个是计数cnt,即该指令类型再次发射需等待的时钟周期数,用以实现“数据冲突”的指令冲突控制。在每生成一次并行四发射指令过程中,都需要对容量cap和计数cnt进行一次初始化设定。
在202中,实现指令类型随机选择单元。
该指令类型随机选择单元用于随机地挑选一个特定指令类型下的某个子指令类型,以生成一个随机的单发射指令。
在203中,实现指令流控制处理单元。
该指令流控制处理单元用以实现指令流的控制,如是否跳转,是否有冲突,是否在特定程序计数器插入特定指令等。该指令流控制处理单元包含三个结构体,即控制流结构体、跳转链结构体、特定指令结构体。控制流结构体控制生成的并行四发射指令中有无跳转指令、有无指令冲突。跳转链结构体控制跳转指令的源程序计数器、跳转步数、跳转方向、跳转类型。特定指令结构体控制特定指令程序计数器、特定指令类型。以上三个结构体,可以接收测试人员通过用户配置接口输入的配置信息进行进行灵活配置,以实现并行四发射指令的流控制。
在204中,实现指令生成判断单元。
该指令生成判断单元主要负责判断程序计数器、冲突结构体的容量cap、计数cnt,以生成是否包含数据冲突、资源冲突的指令。
在205中,实现冲突结构体处理单元。
该冲突结构体处理单元根据判断的结果,对冲突控制结构体进行处理,例如生成的指令为“加载指令”,用于将RAM里的数据加载到寄存器R1,在4个时钟周期后,才能发射R1的读取指令以避免数据冲突,那么就需要将冲突控制结构体中的计数cnt赋值为4。
在206中,调用指令发生器生成单发射指令,循环执行202至207,直至生成构成并行多发射指令所需的多个单发射指令。
冲突结构体处理之后,就会调用指令发生器生成一个随机的单发射指令。如此循环步骤201-206四次,将会生成一个并行四发射指令所需要的4个单发射指令。
应当说明的是,本申请实施例中预先构建有指令发生器。
其中,实现每一指令类型的指令发生器,指令发生器被配置为针对对应的指令类型,生成随机化的单发射指令,且支持用户对特定的指令字段进行控制。应当说明的是,不同类型的指令组成字段往往不相同,因此需要针对每一种类型生成各自的指令发生器。具体实现的方法为,以图3的指令类型1为例,假设该类型指令为32bit位宽,有F1(bit[31:28]),F2(bit[37:24]),F3(bit[23:20]),F4(bit[19:16]),F5(bit[15:8]),F6(bit[7:0])六个指令字段组成。
(1)指令发生器抽取该指令类型的各个指令字段,将其封装为一个“指令字段结构体”,这样可以实现对各个字段的单独控制。
(2)指令发生器对指令字段结构体的所有字段F1,F2,F3,F4,F5,F6进行随机值预处理,即所有的字段在各自允许的范围内进行随机。
(3)实现特定字段的指定值后处理,指令发生器通过用户可配置接口接收测试人员对指定字段的配置值,并将该指定字段的值修改为配置值。比如,测试人员可以将某个指令字段如F2设定为特定的一个值,以对指令的某个特定功能进行验证。
(4)在所有字段都生成后,指令发生器将各字段进行拼接,得到一个完整的单发射指令,同时进行程序计数器的和指令类型名的绑定。
在207中,实现指令槽顺序调整单元。
该指令槽顺序调整单元用于对构成并行四发射指令的每个单发射指令对应的发射槽位进行调整,比如将(单发射)指令4放到发射槽1,将(单发射)指令1放到发射槽4,将(单发射)指令3放到发射槽2,将(单发射)指令2放到发射槽3。在完成发射槽顺序的调整之后,一个完整的并行四发射指令即生成完毕。
在208中,输出指令信息。
在生成一个完整的并行四发射指令后,将构成该并行四发射指令的所有单发射指令的程序计数器、指令名、指令槽位、指令内容进行输出,比如,输出为一个日志文件。
本申请提供的指令生成方法,具有以下优点:
(1)通过创建多类型的指令发生器,实现全指令集的所有指令的随机生成、任意字段控制以及指令名和程序计数器的绑定,大大节省了逐个生成单一指令所需的时间,且解决了任意字段随机与控制的问题。
(2)通过创建指令流控制单元,实现了跳转指令、待发射指令间的资源冲突、已发射指令和待发射指令间的资源和数据冲突的控制,且可以在任意程序计数器插入任意指令,为指令验证提供灵活的配置接口,支持指令跳转、分支预测、冲突检测、顶层指令等各种场景的验证。
(3)通过生成多个单反射指令整合成一个并行多发射指令,实现了并行多发射指令的创建,避免了传统的单一相对孤立、无法构建复杂并发射的缺点。
(4)通过指令槽位调整单元,可以任意调整指令的发射槽位,支持特殊指令固定槽位的验证,也支持指令发射槽位的随机化验证。
(5)将生成的指令按照程序计数器、指令名、发射槽位、指令内容进行输出,方便验证人员进行debug和调试。
在一实施例中,还提供了一种指令生成装置。请参照图4,图4为本申请实施例提供的指令生成装置的结构示意图。其中该指令生成装置包括冲突信息获取模块301、依赖关系获取模块302、单发射指令生成模块303以及多发射指令组合模块304,如下:
冲突信息获取模块301,用于获取用于生成并行多发射指令的目标冲突关系信息;
依赖关系获取模块302,用于获取用于生成并行多发射指令的目标依赖关系信息;
单发射指令生成模块303,用于根据目标冲突关系信息以及目标依赖关系信息逐个生成单发射指令,得到多个单发射指令;
多发射指令组合模块304,用于将多个单发射指令组合为并行多发射指令。
在一实施例中,在获取用于生成并行多发射指令的目标冲突关系信息时,冲突信息获取模块301用于:
随机从多个不同的指令类型中选取出目标指令类型;
将目标指令类型对应的冲突关系信息作为目标冲突关系信息。
在一实施例中,在获取用于生成并行多发射指令的目标依赖关系信息时,依赖关系获取模块302用于:
获取对应目标指令类型的控制流信息、跳转链信息以及特定指令信息;
将控制流信息、跳转链信息以及特定指令信息作为目标依赖关系信息。
在一实施例中,在根据目标冲突关系信息以及目标依赖关系信息逐个生成单发射指令时,单发射指令生成模块303用于:
调用对应目标指令类型的指令发生器;
基于指令发生器根据目标冲突关系信息、控制流信息、跳转链信息以及特定指令信息,生成单发射指令。
在一实施例中,在基于指令发生器根据目标冲突关系信息、控制流信息、跳转链信息以及特定指令信息,生成单发射指令时,单发射指令生成模块303用于:
基于指令发生器获取构成目标指令类型的单发射指令的多个指令字段;
基于指令发生器根据目标冲突关系信息、控制流信息、跳转链信息以及特定指令信息,对多个指令字段进行随机赋值处理;
将随机赋值后的多个指令字段组合为单发射指令。
在一实施例中,在将随机赋值后的多个指令字段组合为单发射指令时,单发射指令生成模块303用于:
当存在对多个指令字段中指定字段的配置值时,将指定字段的值修改为配置值;
将修改后的多个指令字段组合为单发射指令。
在一实施例中,在将多个单发射指令组合为并行多发射指令时,单发射指令生成模块303用于:
获取针对并行多发射指令的发射槽信息,根据发射槽信息将多个单发射指令组合为并行多发射指令。
应当说明的是,本申请实施例提供的指令生成装置与上文实施例中的指令生成方法属于同一构思,在指令生成装置上可以运行指令生成方法实施例中提供的任一方法,其具体实现过程详见以上实施例,此处不再赘述。
在一实施例中,本申请还提供一种测试架构,请参照图5,该测试架构200可以包括指令生成装置210、输入单元220和输出单元230;指令生成装置210可以与输入单元220通讯连接,输入单元220可以与待测试模块300通讯连接,待测试模块300可以与输出单元230通讯连接。
其中,指令生成装置210为本申请以上实施例提供的指令生成装置,可以生成并行多发射指令,待测试模块300可以运行并行多发射指令并进行测试(其中,待测试模块300的子模块分别运行构成并行多发射指令的单发射指令)。输入单元220可以用于从指令生成装置210中获取并行多发射指令,然后解析该并行多发射指令所被用于测试的待测试模块300的子模块,以使得待测试模块300的子模块运行该并行多发射指令可以进行测试。待测试模块300运行该并行多发射指令可以得到一执行结果,输出单元230可以用于接收待测试模块300传输的执行结果。从而,通过指令生成装置210、输入单元220和输出单元230相互配合,可以实现对待测试模块300的测试。
本申请实施例中,由于并行多发射指令由多个单发射指令构成,输入单元220可以并行的将构成多发射指令的多个单发射指令分别传输至待测试模块300的子模块,进而完成测试。
比如,待测试模块300可以为神经网络处理器,该神经网络处理包括卷积处理单元和向量处理单元,指令生成装置可以生成一并行二发射指令,该并行二发射指令由对应卷积处理单元的第一单发射指令,和对应向量处理单元的第二单发射指令构成,相应的,输入单元220在从指令生成装置210获取到该并行二发射指令后,即将并行二发射指令中的第一单发射指令发射至神经网络处理器的卷积处理单元,以及并行的将并行二发射指令中的第二单发射指令发射至神经网络处理器的向量处理单元。
在一实施例中,本申请还提供一种电子设备,请参照图6,该电子设备包括处理器401和存储器402。
本申请实施例中的处理器401是通用处理器,比如ARM架构的处理器。
存储器402中存储有计算机程序,其可以为高速随机存取存储器,还可以为非易失性存储器,比如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件等。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402中计算机程序的访问,实现如下功能:
获取用于生成并行多发射指令的目标冲突关系信息;
获取用于生成并行多发射指令的目标依赖关系信息;
根据目标冲突关系信息以及目标依赖关系信息逐个生成单发射指令,得到多个单发射指令;
将多个单发射指令组合为并行多发射指令。
在一实施例中,在获取用于生成并行多发射指令的目标冲突关系信息时,处理器401用于执行:
随机从多个不同的指令类型中选取出目标指令类型;
将目标指令类型对应的冲突关系信息作为目标冲突关系信息。
在一实施例中,在获取用于生成并行多发射指令的目标依赖关系信息时,处理器401用于执行:
获取对应目标指令类型的控制流信息、跳转链信息以及特定指令信息;
将控制流信息、跳转链信息以及特定指令信息作为目标依赖关系信息。
在一实施例中,在根据目标冲突关系信息以及目标依赖关系信息逐个生成单发射指令时,处理器401用于执行:
调用对应目标指令类型的指令发生器;
基于指令发生器根据目标冲突关系信息、控制流信息、跳转链信息以及特定指令信息,生成单发射指令。
在一实施例中,在基于指令发生器根据目标冲突关系信息、控制流信息、跳转链信息以及特定指令信息,生成单发射指令时,处理器401用于执行:
基于指令发生器获取构成目标指令类型的单发射指令的多个指令字段;
基于指令发生器根据目标冲突关系信息、控制流信息、跳转链信息以及特定指令信息,对多个指令字段进行随机赋值处理;
将随机赋值后的多个指令字段组合为单发射指令。
在一实施例中,在将随机赋值后的多个指令字段组合为单发射指令时,处理器401用于执行:
当存在对多个指令字段中指定字段的配置值时,将指定字段的值修改为配置值;
将修改后的多个指令字段组合为单发射指令。
在一实施例中,在将多个单发射指令组合为并行多发射指令时,处理器401用于执行:
获取针对并行多发射指令的发射槽信息,根据发射槽信息将多个单发射指令组合为并行多发射指令。
应当说明的是,本申请实施例提供的电子设备与上文实施例中的指令生成方法属于同一构思,在电子设备上可以运行指令生成方法实施例中提供的任一方法,其具体实现过程详见特征提取方法实施例,此处不再赘述。
需要说明的是,对本申请实施例的指令生成方法而言,本领域普通测试人员可以理解实现本申请实施例的指令生成方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在电子设备的存储器中,并被该电子设备内的处理器和/或专用语音识别芯片执行,在执行过程中可包括如指令生成方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储器、随机存取记忆体等。
以上对本申请实施例所提供的一种指令生成方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (7)

1.一种指令生成方法,其特征在于,包括:
随机从多个不同的指令类型中选取出目标指令类型作为用于生成并行多发射指令的目标冲突关系信息,所述并行多发射指令包括并行发射的多个单发射指令,所述目标冲突关系信息用于指示不同单发射指令间的冲突关系;
获取对应所述目标指令类型的控制流信息、跳转链信息以及特定指令信息作为用于生成所述并行多发射指令的目标依赖关系信息,所述目标依赖关系信息用于指示不同单发射指令间的依赖关系;
调用对应所述目标指令类型的指令发生器;
基于所述指令发生器根据所述目标冲突关系信息和所述目标依赖关系信息,生成单发射指令,得到多个单发射指令;
将所述多个单发射指令组合为所述并行多发射指令。
2.根据权利要求1所述的指令生成方法,其特征在于,所述基于所述指令发生器根据所述目标冲突关系信息和所述目标依赖关系信息,生成单发射指令,包括:
基于所述指令发生器获取构成所述目标指令类型的单发射指令的多个指令字段;
基于所述指令发生器根据所述目标冲突关系信息和所述目标依赖关系信息,对所述多个指令字段进行随机赋值处理;
将随机赋值后的所述多个指令字段组合为单发射指令。
3.根据权利要求2所述的指令生成方法,其特征在于,所述将随机赋值后的所述多个指令字段组合为单发射指令,包括:
当存在对所述多个指令字段中指定字段的配置值时,将所述指定字段的值修改为所述配置值;
将修改后的所述多个指令字段组合为单发射指令。
4.根据权利要求1所述的指令生成方法,其特征在于,所述将所述多个单发射指令组合为所述并行多发射指令,包括:
获取针对所述并行多发射指令的发射槽信息,根据所述发射槽信息将所述多个单发射指令组合为所述并行多发射指令。
5.一种指令生成装置,其特征在于,所述指令生成装置包括:
冲突信息获取模块,用于随机从多个不同的指令类型中选取出目标指令类型作为用于生成并行多发射指令的目标冲突关系信息,所述并行多发射指令包括并行发射的多个单发射指令,所述目标冲突关系信息用于指示不同单发射指令间的冲突关系;
依赖关系获取模块,用于获取对应所述目标指令类型的控制流信息、跳转链信息以及特定指令信息作为用于生成所述并行多发射指令的目标依赖关系信息,所述目标依赖关系信息用于指示不同单发射指令间的依赖关系;
单发射指令生成模块,用于调用对应所述目标指令类型的指令发生器;以及基于所述指令发生器根据所述目标冲突关系信息和所述目标依赖关系信息,生成单发射指令,得到多个单发射指令;
多发射指令组合模块,用于将所述多个单发射指令组合为所述并行多发射指令。
6.一种测试架构,其特征在于,包括:
指令生成装置,所述指令生成装置包括权利要求5所述的指令生成装置;
输入单元,所述输入单元与所述指令生成装置连接,所述输入单元用于从所述指令生成装置获取并行多发射指令,并将所述并行多发射指令并行发射到对应的待测试模块;
输出单元,所述输出单元与所述待测试模块连接,用于接收所述待测试模块执行所述并行多发射指令得到的执行结果,并根据所述执行结果获取对应所述并行多发射指令的测试结果。
7.一种存储介质,其上存储有计算机程序,其特征在于,当所述计算机程序被处理器加载时执行如权利要求1至4任一项所述的指令生成方法。
CN202010033803.2A 2020-01-13 2020-01-13 指令生成方法、装置、测试架构和电子设备 Active CN111240747B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010033803.2A CN111240747B (zh) 2020-01-13 2020-01-13 指令生成方法、装置、测试架构和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010033803.2A CN111240747B (zh) 2020-01-13 2020-01-13 指令生成方法、装置、测试架构和电子设备

Publications (2)

Publication Number Publication Date
CN111240747A CN111240747A (zh) 2020-06-05
CN111240747B true CN111240747B (zh) 2022-05-06

Family

ID=70871015

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010033803.2A Active CN111240747B (zh) 2020-01-13 2020-01-13 指令生成方法、装置、测试架构和电子设备

Country Status (1)

Country Link
CN (1) CN111240747B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116991482B (zh) * 2023-09-05 2023-12-01 飞腾信息技术有限公司 一种指令发射方法、处理器和相关设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986265A (zh) * 2010-10-29 2011-03-16 浙江大学 一种基于Atom处理器的指令并行分发方法
CN102200924A (zh) * 2011-05-17 2011-09-28 北京北大众志微系统科技有限责任公司 基于模调度实现循环指令调度的编译方法及装置
CN102799418A (zh) * 2012-08-07 2012-11-28 清华大学 融合了顺序和vliw的处理器体系结构及指令执行方法
CN102945148A (zh) * 2012-09-26 2013-02-27 中国航天科技集团公司第九研究院第七七一研究所 一种并行指令集的实现方法
CN103218207A (zh) * 2012-01-18 2013-07-24 上海算芯微电子有限公司 基于单/双发射指令集的微处理器指令处理方法及系统
CN105426160A (zh) * 2015-11-10 2016-03-23 北京时代民芯科技有限公司 基于sprac v8指令集的指令分类多发射方法
CN107895191A (zh) * 2017-10-30 2018-04-10 上海寒武纪信息科技有限公司 一种信息处理方法及相关产品

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286114B2 (en) * 2012-12-13 2016-03-15 Nvidia Corporation System and method for launching data parallel and task parallel application threads and graphics processing unit incorporating the same
US10715584B2 (en) * 2016-06-28 2020-07-14 Microsoft Technology Licensing, Llc Multiuser application platform

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101986265A (zh) * 2010-10-29 2011-03-16 浙江大学 一种基于Atom处理器的指令并行分发方法
CN102200924A (zh) * 2011-05-17 2011-09-28 北京北大众志微系统科技有限责任公司 基于模调度实现循环指令调度的编译方法及装置
CN103218207A (zh) * 2012-01-18 2013-07-24 上海算芯微电子有限公司 基于单/双发射指令集的微处理器指令处理方法及系统
CN102799418A (zh) * 2012-08-07 2012-11-28 清华大学 融合了顺序和vliw的处理器体系结构及指令执行方法
CN102945148A (zh) * 2012-09-26 2013-02-27 中国航天科技集团公司第九研究院第七七一研究所 一种并行指令集的实现方法
CN105426160A (zh) * 2015-11-10 2016-03-23 北京时代民芯科技有限公司 基于sprac v8指令集的指令分类多发射方法
CN107895191A (zh) * 2017-10-30 2018-04-10 上海寒武纪信息科技有限公司 一种信息处理方法及相关产品

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向多发射架构ASIP的定制功能单元的自动生成;谭洪贺等;《清华大学学报(自然科学版)》;20110315;全文 *

Also Published As

Publication number Publication date
CN111240747A (zh) 2020-06-05

Similar Documents

Publication Publication Date Title
JPH0475139A (ja) ループ並列化装置
US20100146254A1 (en) Method for binarizing initial script on operating system and operating method of binary script
US9354850B2 (en) Method and apparatus for instruction scheduling using software pipelining
CN111240747B (zh) 指令生成方法、装置、测试架构和电子设备
CN104423994A (zh) 一种代码生成方法、编译器、调度方法、装置及调度系统
US8438000B2 (en) Dynamic generation of tests
US20110167413A1 (en) Coverage apparatus and method for testing multi-thread environment
CN114417563A (zh) 多核机制的仿真方法、装置和电子设备
US20140344785A1 (en) Automatic generation of a resource reconfiguring test
CN113626333A (zh) 一种接口自动化测试方法及装置
US9117023B2 (en) Dynamic generation of test segments
CN112434478A (zh) 仿真逻辑系统设计的虚拟接口的方法及相关设备
US20110225400A1 (en) Device for Testing a Multitasking Computation Architecture and Corresponding Test Method
CN116594682A (zh) 基于simd库的自动测试方法及装置
US11719749B1 (en) Method and system for saving and restoring of initialization actions on dut and corresponding test environment
US20210182041A1 (en) Method and apparatus for enabling autonomous acceleration of dataflow ai applications
CN110543395B (zh) 验证方法、装置以及相关产品
US12056475B2 (en) Offload server, offload control method, and offload program
CN113051173A (zh) 测试流程的编排执行方法、装置、计算机设备和存储介质
US20110225457A1 (en) System for Testing a Multitasking Computation Architecture Based on Communication Data between Processors and Corresponding Test Method
CN112363969A (zh) 一种接口调试方法、装置、电子设备及可读存储介质
US7523297B1 (en) Shadow scan decoder
CN117313595B (zh) 用于功能验证的随机指令生成方法、设备及系统
CN113190497B (zh) 一种可重构处理器的任务处理方法及可重构处理器
CN118069142B (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
GR01 Patent grant
GR01 Patent grant