CN116185727A - 待测设计的验证方法及验证装置 - Google Patents
待测设计的验证方法及验证装置 Download PDFInfo
- Publication number
- CN116185727A CN116185727A CN202211393039.5A CN202211393039A CN116185727A CN 116185727 A CN116185727 A CN 116185727A CN 202211393039 A CN202211393039 A CN 202211393039A CN 116185727 A CN116185727 A CN 116185727A
- Authority
- CN
- China
- Prior art keywords
- instruction
- channels
- instructions
- verification
- parameter
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 103
- 238000013461 design Methods 0.000 title claims abstract description 80
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012360 testing method Methods 0.000 claims abstract description 44
- 230000005540 biological transmission Effects 0.000 claims abstract description 29
- 230000005284 excitation Effects 0.000 claims abstract description 15
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection 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/2236—Detection 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2289—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
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)
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请提供了一种待测设计的验证方法及验证装置。待测设计包括处理器中的一个或多个执行单元,处理器包括多个发射通道,多个发射通道用于向一个或多个执行单元发射指令,验证方法包括:获取待分派的指令集合;根据待分派的指令集合中的指令,通过指令分派模块,确定多个发射通道各自对应的待发射指令,指令分派模块用于控制多个发射通道的指令分派方式;根据多个发射通道各自对应的待发射指令,生成待测设计的激励信号;根据待测设计的激励信号对待测设计进行验证。本申请在单元级验证环境中设置指令分派模块,通过指令分派模块,控制多个通道的指令分派方式,有助于提高验证环境的验证效率。
Description
技术领域
本申请涉及芯片验证技术领域,具体涉及一种待测设计的验证方法及验证装置。
背景技术
处理器,例如超标量处理器,包括一个或多个指令执行单元,及用于向指令执行单元发射指令的多个通道。
相关技术中,用于对执行单元进行单元级验证的验证环境,在向多个通道分派指令时是随机不可控地分派,导致验证环境的验证效率低下。
发明内容
本申请实施例提供一种待测设计的验证方法及验证装置,能够提高单元级验证环境的验证效率。
第一方面,提供了一种待测设计的验证方法,所述待测设计包括处理器中的一个或多个执行单元,所述处理器包括多个发射通道,所述多个发射通道用于向一个或多个执行单元发射指令,所述验证方法包括:获取待分派的指令集合;根据所述待分派的指令集合中的指令,通过指令分派模块,确定所述多个发射通道各自对应的待发射指令,所述指令分派模块用于控制所述多个发射通道的指令分派方式;根据所述多个发射通道各自对应的待发射指令,生成所述待测设计的激励信号;根据所述待测设计的激励信号对所述待测设计进行验证。
可选地,所述指令分派模块用于控制以下中的一种或多种:所述多个发射通道的通道选择方式;以及所述多个发射通道在一个时钟周期需要发射的指令数量。
可选地,所述指令分派模块包括以下可配置参数中的一种或多种:第一参数,用于配置所述多个发射通道的通道选择方式;以及第二参数,用于配置所述多个发射通道在一个时钟周期需要分派的指令数量。
可选地,所述第二参数配置的所述指令数量的取值为目标值,所述根据所述待分派指令的指令集合中的指令,通过指令分派模块,确定所述多个发射通道各自对应的待发射指令,包括:根据所述指令集合中的指令和所述第一参数,确定所述多个发射通道各自对应的待发射指令,使得所述多个发射通道对应的待发射指令之和等于所述目标值。
可选地,所述根据所述待分派的指令集合中的指令,通过指令分派模块,确定所述多个发射通道各自对应的待发射指令,包括:根据所述指令集合中的指令和所述第二参数,将所述指令集合中的当前指令分派至所述多个发射通道中的目标通道,其中,所述目标通道为所述多个发射通道中的未被占满的发射通道。
可选地,所述第一参数和/或所述第二参数为所述待测设计的验证环境中定义的宏。
可选地,所述第二参数与所述待测设计中的用于配置所述多个发射通道在一个时钟周期需要分派的指令数量的宏绑定。
可选地,所述根据所述待分派的指令集合中的指令,通过指令分派模块,确定所述多个发射通道各自对应的待发射指令,包括:利用所述指令分派模块,将所述指令集合中的当前指令分派至所述多个发射通道中的目标通道,其中,所述当前指令的指令类型与所述目标通道对应的指令类型相同。
第二方面,提供了一种待测设计的验证装置,所述待测设计包括处理器中的一个或多个执行单元,所述处理器包括多个发射通道,所述多个发射通道用于向所述一个或多个执行单元发射指令,所述验证装置包括:获取单元,被配置为获取待分派的指令集合;确定单元,被配置为根据所述待分派的指令集合中的指令,通过指令分派模块,确定所述多个发射通道各自对应的待发射指令,所述指令分派模块用于控制所述多个发射通道的指令分派方式;生成单元,被配置为根据所述多个发射通道各自对应的待发射指令,生成所述待测设计的激励信号;验证单元,被配置为根据所述待测设计的激励信号对所述待测设计进行验证。
可选地,所述指令分派模块用于控制以下中的一种或多种:所述多个发射通道的通道选择方式;以及所述多个发射通道在一个时钟周期需要发射的指令数量。
可选地,所述指令分派模块包括以下可配置参数中的一种或多种:第一参数,用于配置所述多个发射通道的通道选择方式;以及第二参数,用于配置所述多个发射通道在一个时钟周期需要分派的指令数量。
可选地,所述第二参数配置的所述指令数量的取值为目标值,所述确定单元进一步被配置为:根据所述指令集合中的指令和所述第一参数,确定所述多个发射通道各自对应的待发射指令,使得所述多个发射通道对应的待发射指令之和等于所述目标值。
可选地,所述确定单元进一步被配置为:根据所述指令集合中的指令和所述第二参数,将所述指令集合中的当前指令分派至所述多个发射通道中的目标通道,其中,所述目标通道为所述多个发射通道中的未被占满的发射通道。
可选地,所述第一参数和/或所述第二参数为所述待测设计的验证环境中定义的宏。
可选地,所述第二参数与所述待测设计中的用于配置所述多个发射通道在一个时钟周期需要分派的指令数量的宏绑定。
可选地,所述确定单元进一步被配置为:利用所述指令分派模块,将所述指令集合中的当前指令分派至所述多个发射通道中的目标通道,其中,所述当前指令的指令类型与所述目标通道对应的指令类型相同。
第三方面,提供了一种待测设计的验证装置,包括存储器及处理器,所述存储器中存储有可执行代码,所述处理器被配置为执行所述可执行代码,以实现如第一方面所述的方法。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面中的方法。
第五方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面中的方法。
本申请实施例提供的待测设计的验证方案,在单元级验证环境中增加指令分派模块,通过指令分派模块,控制多个通道的指令分派方式,这样,避免了指令分派不可控,带来的需要借用外部工具或形式化验证环境或子系统级验证环境对执行单元进行的验证的问题,有助于提高单元级验证环境的验证效率。
附图说明
图1为本申请实施例提供的一种待测设计的验证方法的流程示例图。
图2为本申请实施例提供的一种指令分派流程示意图。
图3为本申请实施例提供的一种待测设计的验证装置的结构示例图。
图4为本申请实施例提供的另一种待测设计的验证装置的结构示例图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。
处理器,例如超标量处理器,采用多条流水线并行处理指令。指令的处理过程可以包括指令读取、指令译码、指令执行、访存取数及结果写回。在指令译码阶段,可以将若干条指令进行译码,并将指令发送到不同的执行单元进行指令执行。
执行单元(excecution unit,EXU)是处理器中用于执行指令的单元,执行单元可以是处理器中运算处理单元。执行单元例如可以是ALU算数逻辑单元(arithmetic logicalunit,ALU)。在一些实施例中,执行单元还包括分支执行单元(branchexecute unit,BX)。在一些实施例中,执行单元也可以称为执行部件。
处理器包括一个或多个执行的单元,及用于向一个或多个执行单元发射指令的发射队列。换句话说,处理器包括一个或多个队列,用于向处理中的一个或多个执行单元发送指令。应当理解,一个执行单元可以具有为之发射指令的一个或多个发射队列。一个发射队列可以包括一个或多个发射通道,处理器可以通过发射队列中的发射通道,向执行单元发射指令。在一些实施例中,发射通道也可以理解为发射队列,换句话说,发射通道即发射队列,处理器通过一个或多个发射通道,向执行单元发射指令。
为了提高处理器的性能,处理器中流水线的数量会变多,处理器中指令的分派方式也越来越复杂。对于处理器设计的验证工作来说,由于待测处理器中各个执行单元对指令分派的需求不同,因此验证环境对指令的分派重点也会有所差别。在这种情况下,如果仅仅依靠系统级测试的话,验证的复杂度也会大大增加,因此需要搭建更加灵活可控的单元级验证环境,来适应各种需求。
单元级验证环境用于验证处理器中的各个单元,其中,各个单元可以是前文提到的一个或多个执行单元。在一些实施例中,单元级验证环境可以称为模块级验证环境。单元级验证环境例如可以是UVM验证环境。在单元级验证环境中实现的功能越多,可以越多的减轻系统级验证的压力,有助于提高处理器验证的准确性。
相关技术中,在单元级验证环境中,指令的分派往往是随机的,无法控制每条指令应该进入的发射队列及每个时钟周期发射的指令的数量。例如,在UVM单元级验证环境中,sequence用于向待验证的执行单元的发射队列中分派指令,但是,sequence在分派指令时是随机分派的,不能将指令分派至特定的发射队列,并且不能控制发射通道每拍发射的指令数量。
这样,对于一些特殊及复杂场景的验证方案的构造,只能通过形式化验证或者子系统级验证环境来进行。例如,对于组合指令的验证,由于指令分派的随机性,相关技术需要发射非常多的随机激励,以产生指令组合的效果,处理起来非常的困难。同时,相关技术中,在需要进行单一指令集的控制时,只能通过外部的工具对指令集中的单一指令集进行筛选,处理起来较为繁琐。在这些情况下,导致验证环境的验证效率低下。
基于此,本申请提供一种待测设计的验证方法及验证装置,以解决上述问题。
本申请中,待测设计包括处理器中的一个或多个执行单元,以及为一个或多个执行单元发射指令的多个发射通道。如前文提到,发射通道可以位于执行单元的发射队列中,发射通道也可以理解为发射队列。换句话说,执行单元的发射队列可以包括多个发射通道;发射队列也可以包括一个发射通道,此时,发射队列也可以称为发射通道。本申请中,处理器可以是具有多条流水线并行处理的超标量处理器。本申请实施例提供的待测设计的验证方案可以应用在新一代飞腾处理器核的执行单元及分支执行单元的单元级验证环境中,用于整数指令和分支指令的分派。
图1为本申请实施例提供的一种待测设计的验证方法的流程示例图,下面结合图1对本申请实施例提供的待测设计的验证方案进行介绍。
在步骤S110,获取待分派的指令集合。
待分派的指令集合可以是一道程序中部分或全部的指令信息,换句话说,待分派的指令集合可以是需要运行的程序的部分或所有指令信息。
获取到的待分派指令集合可以保存在一个初始对列中,指令集合中的指令采用先进先出的方式进入及弹出初始队列。
在步骤S120,根据待分派指令集合中的指令,通过指令分派模块,确定多个发射通道各自对应的待发射指令。
多个发射通道可以理解为一个执行单元的多个发射通道,也可以理解为多个执行单元的多个发射通道,其中,多个执行单元中的每个执行单元具有一个或多个发射通道。
指令分派模块用于控制上述多个发射通道的指令分派方式。在一些实施例中,指令分派模块用于控制多个发射通道的通道选择方式和\或多个通道在一个时钟周期需要发射的指令数量。指令分派模块控制多个发射通道的通道选择方式,可以理解为,指令分派模块可以控制待发射指令的通道选择方式,换句话说,指令分派模块可以选择多个发射通道中一个通道作为目标通道,并将待发射指令分派给该目标通道。指令分派模块控制多个通道在一个时钟周期需要发射的指令数量,可以理解为,指令分派模块可以控制多个通道每拍发射的指令数量。
根据待分派指令集合中的指令,通过指令分派模块,可以确定多个发射通道的待发射指令。换句话说,根据指令集合中的指令,通过指令分派模块,可以将待发射指令分派至多个发射通道中的目标通道中。
作为一个示例,对于指令集合中的指令,可以每次循环处理一条指令,指令分派模型可以选择用于发射该指令的多条通道。指令分派模型可以根据当前多个通道的空满及占用情况,基于均匀分派的原则选择一个发射通道作为目标通道,并将该待分派指令加入目标通道的指令组中。并将该通道标记为已占用,这样就完成一条指令的处理。对于指令集中的每条指令,指令分派模型都可以基于此方式处理,这样,可以确定多个发射通道各自对应的待发射指令。
在一些实施例中,指令分派模型可以位于单元级验证环境中的sequence中,在搭建单元级验证环境时,可以根据设计规范在sequence中搭建指令分派模块。
在步骤S130,根据多个发射通道各自对应的待发射指令,生成待测设计的激励信号。
在确定多个通道各自对应的待发射指令之后,可以根据多个通道各自对应的待发射指令就,生成待测设计的激励信号。例如,可以将多个通道各自对应的指令,一起发送给验证环境中的驱动模块,生成待测设计的激励信号。
在步骤S140,根据待测设计的激励信号对待测设计进行验证。
待测设计的激励信号可以发送至待测设计,以根据激励信号对待测设计进行验证。
可见,本申请实施例提供的待测设计的验证方法,在单元级验证环境中增加指令分派模块,通过指令分派模块,控制多个通道的指令分派方式,这样,避免指令分派不可控带来的,需要借用外部工具或形式化验证环境或子系统级验证环境对执行单元进行的验证的问题,有助于提高单元级验证环境的验证效率。
如前文提到,待测处理器中各个执行单元对指令分派的需求可以不同,因此,指令分派模块中的参数是可配置的,这样,当待测设计的指令分派需求发生变化时,可以配置指令分派模块中参数,满足不同的指令分派需求。
指令分派模块可以包括可配置的第一参数及第二参数,其中,第一参数用于配置多个发射通道的通道选择方式,第二参数用于配置多个发射通道在一个时钟周期需要分派的指令数量。
第一参数可以是通道选择参数(slot_taken),通道选择参数用于指示多个通道的空闲及占用情况,进而控制待发射指令能否进入目标通道中,换句话说,通道选择参数用于指示多个通道的占满情况,指令分派模块基于该参数控制多个通道的通道选择方式。作为一个示例,对于5条通道,当slot_taken=0时,表示当前已被占用的通道数量为0条,可选通道为5条,指令分派模块可以在5条通道中,按需选择一条通道作为目标通道;当slot_taken=3时,表示当前已被占用的通道数量为3条,可选通道为2条,指令分派模块可以在2条通道中,按需选择一条通道作为目标通道;当slot_taken=5时,表示当前已被占用的通道数量为5条,可选通道为0条,即,没有可用空闲通道。
第二参数可以是发射数量参数(DISPATCH_NUM),发射数量参数用于控制在一个时钟周期内多个通道的指令发射数量。
第二参数可以是一个设定的目标值,换句话说,多个发射通道在一个时钟周期发射的指令数量可以是一个设定的目标值。指令分派模块还可以基于指令集合中的待发射指令及第一参数,确定多个通道各自对应的待发射指令,使得在一个时钟周期内,多个通道各自对应的待发射指令之和与目标值一致。图2为本申请实施例提供的一种指令分派流程示例图,下面结合图2进行说明。
在图2中,第一参数为通道选择参数(slot_taken),第二参数为发射数量参数(DISPATCH_NUM)。其中,slot_taken的初始值为0及DISPATCH_NUM的初始值为目标值,目标值例如可以是6。在执行指令分派之前,可以对多个通道的信号组进行例化,通道的信号组用于对通道进行管理。
如图2所示,首先将一道程序中所有的指令信息,逐条存储在初始队列中,指令信息也可以称为指令数据或数据。采用for循环,从初始队列中逐条取出一条待发射指令进行处理。for循环的循环次数可以是每拍发射的指令数量。第二参数的目标值为6时,即多个通道一个时钟周期需要发射6个指令,需要6次循环进行指令的取出及处理。
对于一个for循环取出的指令,指令分派模块可以根据第一参数,选择用于发射该条指令的目标通道。
具体的,对于第i次循环,i的初始值为0,在指令分派模型首先判断i是否小于目标值6,若i小于目标值6时,说明当前多个通道中,一个周期内待发射的指令数量还不足目标值,则将该指令取出。之后,判断当前是否有用于发射该指令的可选通道。根据多个通道的占满情况,即根据slot_taken,将该指令存储到未被占用的目标通道中。之后,将slot_taken的值设置为i,表明当前已有i个通道被占用。
在一些情况下,还可以根据待分派指令的类型及多个通道的占满情况,确定待分派指令的目标通道。例如,多个通道中的部分通道可以发射该类型的指令,在判断该指令的可用通道时,需要根据指令类型确定部分通道,进一步,需要根据部分通道的占满情况,确定指令的可用通道。如果指令进入for循环之后,发现没有用于发射该指令的部分空闲通道,那么该指令将会进入暂存区(tmp_quene)等待,等待剩余for循环次数中其余指令全部处理完成后,按顺序退回下一次初始队列中,等待下一次for循环,等待下一次发射。
继续参见图2,若i不小于目标值6,说明当前多个发射通道中,一个周期内待发射的指令数量已经等于目标值,此时,可以将多个通道中一排的指令进行发射。并将暂存区中的暂存指令退回初始队列,同时,将循环次数i及slot_taken的值设置为0。
在一些实施例中,指令分派模块可以根据指令集合中的指令和第二参数,将当前待分派指令分派至多个发射通道中未被占满的目标通道中。
继续参见图2,使用for循环取出的待分派指令,可以根据待分派指令及第二参数DISPATCH_NUM,将待分派指令分派至未被占用的通道中。当当前多个通道中每排待发射指令的数量已经等于DISPATCH_NUM的值时,该指令会被放入暂存区,之后退回初始队列,等待下一时钟周期的重新分派。由于指令是顺序进入,乱序执行的,因此,当需要每个时钟周期发射多条指令时,需要使用指令分派模块对每条指令进行判断。符合条件的指令会将数据保存在目标通道中,当初始队列中的其余指令全部判读完毕之后,将所有目标通道的指令一起发送至验证环境中的驱动模块,已生成测试激励,发送给待测设计。
在一些实施例中,指令分派模块还可以将指令集合中当前待指令分派至与当前待分派指令的指令类型对应的目标通道中。换句话说,目标通道可以发射一种或多种类型的指令,指令分派模块可以将待分派的指令,分派至与该指令类型相应的目标通道。作为一个示例,可以对多个通道进行参数化控制,实现指令进行特定通道,或仅发射指令类型的指令等,以满足不同执行单元的各种验证需求。
以执行单元及分支执行单元为例,执行单元可以有4个发射队列,分支执行单元可以有2个发射队列。每个时钟周期每个队列可以分派2条指令,因此,单个时钟周期内可供选择的通道一共是12个。由于DISPATCH_NUM参数在实际设计中是使用可配置的方式实现的,在需要进行复杂场景的测试或修改代码配置时,可以大大减少代码量和控制复杂度,实现对两个执行单元的通道的控制。当只想对某一个单元或某个通道进行测试时,仅需要将其他单元的通道或其他通道设置为满状态即可。
在一些实施例中,第一参数和/或第二参数为待测设计的验证环境中的宏,为了适配不同的分派需求,可以将待测设计的验证环境中的宏与待测设计中用于配置指令分派模式的宏进行绑定,例如,可以将第二参数与待测设计中用于配置多个发射通道在一个时钟周期需要分派的指令数量的宏绑定,该宏例如可以是验证环境中控制指令分派数量的宏。作为一个示例,可以将验证环境中控制指令分派数量的宏与待测设计中用于配置的宏进行绑定。如此,要实现不同的指令发射数量时,仅需对验证环境中控制分派数量的宏进行修改,可以大大提升验证环境的灵活性和自动化程度。
作为一个示例,要实现单个时钟周期内不同的指令发射数量时,可以首先将验证环境中的控制指令分派数量的宏与设计中用于配置的宏进行绑定,根据目标通道信息,将指令分派模块中用于控制每个通道的信号组进行初始化。并将需要运行的程序的所有指令信息读取到模块中,并存储的初始队列中,然后调用模块开始运行。
本申请实施例提供的待测设计的验证方案可以应用于arm架构下各执行单元的单元及验证环境中,以实现UVM单元级验证环境中arm架构下指令发射到执行单元的分派方式。由于执行单元的信号接口很多,逻辑组合过于复杂,不易控制,因此在进行执行单元的单元级验证环境搭建时,将指令分派模块也包含在内,使得顶层的接口更加的清晰。
如前文提到,可以为每个通道组配置一个信号组用于管理该通道,当处理器核进一步升级,可使用的通道进一步增多时,代码量及运算量也会增加,并且由于各队列接口名称不同,每个队列都需要一组信号进行控制,后续可以将所有通道信号设置成相同名称,使用一组信号,控制所有信息。
本申请实施例提供的待测设计的验证方案,在进行代码debug和后续性能测试时,实现了设计的不同需求,提高了验证及测试的效率。
可见,本申请实施例提供的待测设计的验证方案,在单元级验证环境原有的指令发射机制的基础上,搭建指令分派模块,对指令发射通道的选择进行优化。同时,使用可配置的参数化形式,控制每拍指令分派数量。指令分派模块用于控制每个时钟周期内发射指令条数,指令集选择与指令发射的通道选择。使用模块代码。通过参数的控制,实现可配置的指令发射方式。
上文结合图1至图2,详细描述了本申请的方法实施例,下面结合图3至图4,详细描述本申请的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
图3为本申请实施例提供的一种待测设计的验证装置的结构示意图。待测设计包括处理器中的一个或多个执行单元,处理器包括多个发射通道,多个发射通道用于向一个或多个执行单元发射指令。图3所示的验证装置300可以包括:获取单元310、确定单元320、生成单元330、以及验证单元340。下面对上述各个单元进行介绍。
获取单元310,被配置为获取待分派的指令集合。
确定单元320,被配置为根据所述待分派的指令集合中的指令,通过指令分派模块,确定所述多个发射通道各自对应的待发射指令,所述指令分派模块用于控制所述多个发射通道的指令分派方式。
生成单元330,被配置为根据所述多个发射通道各自对应的待发射指令,生成所述待测设计的激励信号。
验证单元340,被配置为根据所述待测设计的激励信号对所述待测设计进行验证。
可选地,所述指令分派模块用于控制以下中的一种或多种:所述多个发射通道的通道选择方式;以及所述多个发射通道在一个时钟周期需要发射的指令数量。
可选地,所述指令分派模块包括以下可配置参数中的一种或多种:第一参数,用于配置所述多个发射通道的通道选择方式;以及第二参数,用于配置所述多个发射通道在一个时钟周期需要分派的指令数量。
可选地,所述第二参数配置的所述指令数量的取值为目标值,所述确定单元320进一步被配置为:根据所述指令集合中的指令和所述第一参数,确定所述多个发射通道各自对应的待发射指令,使得所述多个发射通道对应的待发射指令之和等于所述目标值。
可选地,所述确定单元320进一步被配置为:根据所述指令集合中的指令和所述第二参数,将所述指令集合中的当前指令分派至所述多个发射通道中的目标通道,其中,所述目标通道为所述多个发射通道中的未被占满的发射通道。
可选地,所述第一参数和/或所述第二参数为所述待测设计的验证环境中定义的宏。
可选地,所述第二参数与所述待测设计中的用于配置所述多个发射通道在一个时钟周期需要分派的指令数量的宏绑定。
可选地,所述确定单元进一步320被配置为:利用所述指令分派模块,将所述指令集合中的当前指令分派至所述多个发射通道中的目标通道,其中,所述当前指令的指令类型与所述目标通道对应的指令类型相同。
图4为本申请实施例提供的另一种待测设计的验证装置的结构示例图。图4所示验证装置400可以包括存储410和处理器420。存储器410可用于存储可执行代码。处理器420可用于执行所述存储器410中存储的可执行代码,以实现前文描述的各个方法中的步骤。在一些实施例中,该装置420还可以包括网络接口430,处理器420与外部设备的数据交换可以通过该网络接口430实现。
应理解,在本申请实施例中,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,DVD))或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种待测设计的验证方法,其特征在于,所述待测设计包括处理器中的一个或多个执行单元,所述处理器包括多个发射通道,所述多个发射通道用于向一个或多个执行单元发射指令,
所述验证方法包括:
获取待分派的指令集合;
根据所述待分派的指令集合中的指令,通过指令分派模块,确定所述多个发射通道各自对应的待发射指令,所述指令分派模块用于控制所述多个发射通道的指令分派方式;
根据所述多个发射通道各自对应的待发射指令,生成所述待测设计的激励信号;
根据所述待测设计的激励信号对所述待测设计进行验证。
2.根据权利要求1所述的验证方法,其特征在于,所述指令分派模块用于控制以下中的一种或多种:
所述多个发射通道的通道选择方式;以及
所述多个发射通道在一个时钟周期需要发射的指令数量。
3.根据权利要求2所述的验证方法,其特征在于,所述指令分派模块包括以下可配置参数中的一种或多种:
第一参数,用于配置所述多个发射通道的通道选择方式;以及
第二参数,用于配置所述多个发射通道在一个时钟周期需要分派的指令数量。
4.根据权利要求3所述的验证方法,其特征在于,所述第二参数配置的所述指令数量的取值为目标值,
所述根据所述待分派指令的指令集合中的指令,通过指令分派模块,确定所述多个发射通道各自对应的待发射指令,包括:
根据所述指令集合中的指令和所述第一参数,确定所述多个发射通道各自对应的待发射指令,使得所述多个发射通道对应的待发射指令之和等于所述目标值。
5.根据权利要求3所述的验证方法,其特征在于,所述根据所述待分派的指令集合中的指令,通过指令分派模块,确定所述多个发射通道各自对应的待发射指令,包括:
根据所述指令集合中的指令和所述第二参数,将所述指令集合中的当前指令分派至所述多个发射通道中的目标通道,其中,所述目标通道为所述多个发射通道中的未被占满的发射通道。
6.根据权利要求3所述的验证方法,其特征在于,所述第一参数和/或所述第二参数为所述待测设计的验证环境中定义的宏。
7.根据权利要求6所述的验证方法,其特征在于,所述第二参数与所述待测设计中的用于配置所述多个发射通道在一个时钟周期需要分派的指令数量的宏绑定。
8.根据权利要求1或2所述的验证方法,其特征在于,所述根据所述待分派的指令集合中的指令,通过指令分派模块,确定所述多个发射通道各自对应的待发射指令,包括:
利用所述指令分派模块,将所述指令集合中的当前指令分派至所述多个发射通道中的目标通道,其中,所述当前指令的指令类型与所述目标通道对应的指令类型相同。
9.一种待测设计的验证装置,其特征在于,所述待测设计包括处理器中的一个或多个执行单元,所述处理器包括多个发射通道,所述多个发射通道用于向所述一个或多个执行单元发射指令,
所述验证装置包括:
获取单元,被配置为获取待分派的指令集合;
确定单元,被配置为根据所述待分派的指令集合中的指令,通过指令分派模块,确定所述多个发射通道各自对应的待发射指令,所述指令分派模块用于控制所述多个发射通道的指令分派方式;
生成单元,被配置为根据所述多个发射通道各自对应的待发射指令,生成所述待测设计的激励信号;
验证单元,被配置为根据所述待测设计的激励信号对所述待测设计进行验证。
10.根据权利要求9所述的验证装置,其特征在于,所述指令分派模块用于控制以下中的一种或多种:
所述多个发射通道的通道选择方式;以及
所述多个发射通道在一个时钟周期需要发射的指令数量。
11.根据权利要求10所述的验证装置,其特征在于,所述指令分派模块包括以下可配置参数中的一种或多种:
第一参数,用于配置所述多个发射通道的通道选择方式;以及
第二参数,用于配置所述多个发射通道在一个时钟周期需要分派的指令数量。
12.根据权利要求11所述的验证装置,其特征在于,所述第二参数配置的所述指令数量的取值为目标值,所述确定单元进一步被配置为:
根据所述指令集合中的指令和所述第一参数,确定所述多个发射通道各自对应的待发射指令,使得所述多个发射通道对应的待发射指令之和等于所述目标值。
13.根据权利要求11所述的验证装置,其特征在于,所述确定单元进一步被配置为:
根据所述指令集合中的指令和所述第二参数,将所述指令集合中的当前指令分派至所述多个发射通道中的目标通道,其中,所述目标通道为所述多个发射通道中的未被占满的发射通道。
14.根据权利要求11所述的验证装置,其特征在于,所述第一参数和/或所述第二参数为所述待测设计的验证环境中定义的宏。
15.根据权利要求14所述的验证装置,其特征在于,所述第二参数与所述待测设计中的用于配置所述多个发射通道在一个时钟周期需要分派的指令数量的宏绑定。
16.根据权利要求9或10所述的验证装置,其特征在于,所述确定单元进一步被配置为:
利用所述指令分派模块,将所述指令集合中的当前指令分派至所述多个发射通道中的目标通道,其中,所述当前指令的指令类型与所述目标通道对应的指令类型相同。
17.一种待测设计的验证装置,其特征在于,包括存储器及处理器,所述存储器中存储有可执行代码,所述处理器被配置为执行所述可执行代码,以实现如权利要求1-8任一项中所述的方法。
18.一种计算机可读存储介质,其特征在于,其上存储有用于执行如权利要求1-8中任一项所述的方法的代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211393039.5A CN116185727A (zh) | 2022-11-08 | 2022-11-08 | 待测设计的验证方法及验证装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211393039.5A CN116185727A (zh) | 2022-11-08 | 2022-11-08 | 待测设计的验证方法及验证装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116185727A true CN116185727A (zh) | 2023-05-30 |
Family
ID=86439028
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211393039.5A Pending CN116185727A (zh) | 2022-11-08 | 2022-11-08 | 待测设计的验证方法及验证装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116185727A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116629175A (zh) * | 2023-07-26 | 2023-08-22 | 深圳中安辰鸿技术有限公司 | 对npu中的译码单元进行验证的方法及相关装置、设备 |
CN118114623A (zh) * | 2024-04-30 | 2024-05-31 | 沐曦集成电路(上海)有限公司 | 一种指令调度仲裁器的验证方法、电子设备及存储介质 |
-
2022
- 2022-11-08 CN CN202211393039.5A patent/CN116185727A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116629175A (zh) * | 2023-07-26 | 2023-08-22 | 深圳中安辰鸿技术有限公司 | 对npu中的译码单元进行验证的方法及相关装置、设备 |
CN116629175B (zh) * | 2023-07-26 | 2023-12-15 | 深圳中安辰鸿技术有限公司 | 对npu中的译码单元进行验证的方法及相关装置、设备 |
CN118114623A (zh) * | 2024-04-30 | 2024-05-31 | 沐曦集成电路(上海)有限公司 | 一种指令调度仲裁器的验证方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116185727A (zh) | 待测设计的验证方法及验证装置 | |
US5165023A (en) | Parallel processing system with processor array and network communications system for transmitting messages of variable length | |
US4873626A (en) | Parallel processing system with processor array having memory system included in system memory | |
US5418970A (en) | Parallel processing system with processor array with processing elements addressing associated memories using host supplied address value and base register content | |
CA2503617A1 (en) | Pipeline accelerator for improved computing architecture and related system and method | |
CN113051053B (zh) | 异构资源调度方法、装置、设备和计算机可读存储介质 | |
US9529651B2 (en) | Apparatus and method for executing agent | |
US10761822B1 (en) | Synchronization of computation engines with non-blocking instructions | |
EP3089030B1 (en) | Flexible physical function and virtual function mapping | |
US7222346B2 (en) | System and method for the management of a multiple-resource architecture | |
CN110825514A (zh) | 人工智能芯片以及用于人工智能芯片的指令执行方法 | |
CN114036091A (zh) | 多处理器外设复用电路及其复用方法 | |
US9703614B2 (en) | Managing a free list of resources to decrease control complexity and reduce power consumption | |
EP0753810A1 (en) | Computer instruction execution | |
CN110515749B (zh) | 信息发送的队列调度的方法、装置、服务器和存储介质 | |
JP4021839B2 (ja) | 分割データフロースケジューリング機構 | |
US10635497B2 (en) | Method and apparatus for job pre-scheduling by distributed job manager in a digital multi-processor system | |
CN116991480A (zh) | 指令处理方法、装置、电路、发射器、芯片、介质及产品 | |
CN115480989A (zh) | 用于处理器的验证方法、系统、设备以及存储介质 | |
US11061654B1 (en) | Synchronization of concurrent computation engines | |
US11562083B2 (en) | Data access management for a composition | |
JP3534987B2 (ja) | 情報処理装置 | |
CN111142868A (zh) | 活动中奖系统开发方法及装置 | |
US20180321986A1 (en) | Method and apparatus for port access management at a distributed job manager in a digital multi-processor system | |
CN116302620B (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 |