CN110134580A - 处理器验证方法及相关产品 - Google Patents

处理器验证方法及相关产品 Download PDF

Info

Publication number
CN110134580A
CN110134580A CN201910257926.1A CN201910257926A CN110134580A CN 110134580 A CN110134580 A CN 110134580A CN 201910257926 A CN201910257926 A CN 201910257926A CN 110134580 A CN110134580 A CN 110134580A
Authority
CN
China
Prior art keywords
operation result
processor
code
configuration relation
preset
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
CN201910257926.1A
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.)
Shenzhen Intellifusion Technologies Co Ltd
Original Assignee
Shenzhen Intellifusion Technologies Co 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 Shenzhen Intellifusion Technologies Co Ltd filed Critical Shenzhen Intellifusion Technologies Co Ltd
Priority to CN201910257926.1A priority Critical patent/CN110134580A/zh
Publication of CN110134580A publication Critical patent/CN110134580A/zh
Pending legal-status Critical Current

Links

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/362Software debugging
    • G06F11/3628Software debugging of optimised code
    • 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/3676Test management for coverage analysis
    • 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/3692Test management for test results analysis

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)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供了一种处理器验证方法及相关产品,所述方法包括:获取预设指令集;对所述指令集进行解析,得到验证代码;基于预设约束配置关系对所述验证代码进行编译,得到汇编代码;将所述汇编代码分别输入到预设参考模型和处理器,得到第一运算结果和第二运算结果;将所述第一运算结果与所述第二运算结果进行比对;在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成覆盖率报告;在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。本申请实施例可以提升处理器验证的准确性。

Description

处理器验证方法及相关产品
技术领域
本申请涉及处理器技术领域,具体涉及一种处理器验证方法及相关产品。
背景技术
AI(artificial intelligence,人工智能)处理器指令集是专门针对AI算法定制的一套指令集系统,包括主控单元指令集、算法指令集等,一般可以通过ISS(instructionset simulator,指令集仿真器仿真)、FPGA(field programmable gate array,现场可编程门阵列)、断言等方式进行指令集的验证。然而,现有验证方式的准确性不高。
发明内容
本申请实施例提供了一种处理器验证方法及相关产品,可以提升处理器验证的准确性。
本申请实施例第一方面提供了一种处理器验证方法,包括:
获取预设指令集;
对所述指令集进行解析,得到验证代码;
基于预设约束配置关系对所述验证代码进行编译,得到汇编代码;
将所述汇编代码分别输入到预设参考模型和处理器,得到第一运算结果和第二运算结果;
将所述第一运算结果与所述第二运算结果进行比对;
在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成覆盖率报告;
在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。
可选地,对所述预设约束配置关系进行调整,包括:
通过所述比对结果确定所述第二运算结果中的目标差异化参数;
按照预设的差异化参数与约束配置关系调整参数之间的映射关系,确定所述目标差异化参数对应的目标约束配置关系调整参数;
根据所述目标约束配置关系调整参数对所述预设约束配置关系进行调整。
可选地,所述根据所述覆盖率报告对所述预设约束配置关系进行调整,包括:
根据所述覆盖率报告确定所述预设指令集中未被完全覆盖的至少一条目标指令;
按照预设的指令与约束配置关系调整参数之间的映射关系,确定所述至少一条目标指令对应的至少一个目标约束配置关系调整参数,每一目标指令对应一个目标约束配置关系调整参数;
依据所述至少一个目标约束配置关系调整参数对所述预设约束配置关系进行调整。
本申请实施例第二方面提供了一种处理器验证装置,包括:
获取单元,用于获取预设指令集;
解析单元,用于对所述指令集进行解析,得到验证代码;
编译单元,用于基于预设约束配置关系对所述验证代码进行编译,得到汇编代码;
运算单元,用于将所述汇编代码分别输入到预设参考模型和所述处理器,得到第一运算结果和第二运算结果;
比对单元,用于将所述第一运算结果与所述第二运算结果进行比对;
生成单元,用于在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成覆盖率报告;
确定单元,用于在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。
第三方面,本申请实施例提供一种电子设备,包括目标处理器、存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述目标处理器执行,上述程序包括用于执行本申请实施例第一方面中的步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
实施本申请实施例,具备如下有益效果:
可以看出,在本申请中,预设参考模型相当于模仿处理器的功能而建立的一个模型,将指令集进行解析得到的验证码基于预设约束配置关系进行编译得到汇编代码,再将所述汇编代码分别输入到所述预设参考模型和所述处理器,得到所述第一运算结果和所述第二运算结果,将所述第一运算结果与所述第二运算结果进行比对,在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成所述覆盖率报告,在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。由于汇编代码是基于预设约束配置关系行编译得到的,所述第一运算结果是将所述汇编代码输入到所述预设参考模型得到的,所述第二运算结果是将所述汇编代码输入到所述处理器得到的,所述覆盖率报告是在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时生成的,且所述处理器在所述覆盖率报告满足第二预设条件时才验证成功。由此可见,在本申请中,所述处理器的验证结果是基于所述预设约束配置关系、所述预设参考模型得到的第一运算结果、所述处理器得到的第二运算结果以及所述比对结果满足第一预设条件时生成的覆盖率报告得到的,因此,本申请提供的处理器验证方法及相关产品的验证准确性较高。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是本申请实施例提供的一种处理器验证方法的实施例流程示意图;
图1B是本申请实施例提供的指令格式的演示示意图;
图2是本申请实施例提供的一种处理器验证方法的另一实施例流程示意图;
图3A是本申请实施例提供的一种处理器验证装置的实施例结构示意图;
图3B是本申请实施例提供的图3A所描述的处理器验证装置的又一结构示意图;
图3C是本申请实施例提供的图3A所描述的处理器验证装置的又一结构示意图;
图4是本申请实施例提供的一种电子设备的实施例结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所描述电子设备可以包括智能手机(如Android手机、iOS手机、Windows Phone手机等)、平板电脑、掌上电脑、服务器、测试平台、笔记本电脑、移动互联网设备(MID,Mobile Internet Devices)或穿戴式设备等,上述仅是举例,而非穷举,包含但不限于上述装置,上述电子设备可以包括处理器。
本申请的电子设备可以应用于以下(包括但不限于)场景中:数据处理、机器人、电脑、打印机、扫描仪、电话、平板电脑、智能终端、手机、行车记录仪、导航仪、传感器、摄像头、云端服务器、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备等各类电子产品;飞机、轮船、车辆等各类交通工具;电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机等各类家用电器;以及包括核磁共振仪、B超、心电图仪等各类医疗设备。
请参阅图1A,为本申请实施例提供的一种处理器验证方法的实施例流程示意图。本实施例中所描述的处理器验证方法,包括以下步骤:
101、获取预设指令集。
其中,所述预设指令集可以包括至少一条指令。具体地,可以预先对处理器的功能进行定义,依据功能确定相应的指令。上述预设指令集主要是为了适配处理器的硬件结构,而编写的一套指令,上述处理器可以为以下至少一种:微处理器,微控制器,数字信号处理器,基带处理器,功率管理单元,音频编解码器芯片,专用集成电路,显示驱动器集成电路等来实现,或者,处理器还可以为AI处理器、量子芯片等等,在此不作限定。
可选地,预设指令集可以保存在指令集架构文档中,指令集架构文档的具体格式可以为以下一种:excel、xml、txt,在此不作限定。
应理解的,本申请预设指令集可包括一个或多个运算指令,该运算指令包括但不限于COMPUTE指令(运算指令)、CONFIG指令、IO指令、NOP指令、JUMP指令和MOVE指令等。所述COMPUTE指令包括但不限于卷积运算(CONV)指令、池化pooling运算指令等等,在此不作限定。举例说明下,卷积COMPUTE指令(即卷积运算指令)包括:卷积神经网络sigmoid指令,根据该指令,可以分别从存储器(如高速暂存存储器或者标量寄存器堆)的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,优选的,然后将输出结果做sigmoid激活。卷积神经网络TanH指令,根据该指令,装置分别从存储器(优选的高速暂存存储器)的指定地址取出指定大小的输入数据和卷积核,在卷积运算部件中做卷积操作,优选的,然后将输出结果做TanH激活。池化Pooling指令。在一个实施例中,池化COMPUTE指令(即pooling运算指令,本申请也称为pooling指令)具体包括:Maxpooling正向运算指令,根据该指令,装置分别从存储器(优选的高速暂存存储器或者标量寄存器堆)的指定地址取出指定大小的输入数据,在pooling运算部件中做Maxpooling正向运算操作,然后将输出结果写回到存储器(优选的高速暂存存储器或者标量寄存器堆)的指定存储地址。CONFIG指令在每层人工神经网络计算开始前配置当前层计算需要的各种常数。例如在池化层中,1/kernel_area可以使用config指令配置得到。又如在执行batch normalization运算时,CONFIG指令在batch normalization计算开始前配置当前层计算需要的各种常数等。IO指令实现从外部存储空间读入计算需要的输入数据以及在计算完成后将数据存回至外部空间。NOP指令负责清空当前装置内部所有控制信号缓存队列中的控制信号,保证NOP指令之前的所有指令全部指令完毕。NOP指令本身不包含任何操作。JUMP指令负责控制将要从指令存储单元读取的下一条指令地址的跳转,用来实现控制流的跳转。MOVE指令负责将装置内部地址空间某一地址的数据搬运至装置内部地址空间的另一地址,该过程独立于运算单元,在执行过程中不占用运算单元的资源。
进一步地,该运算指令可以包括:操作域以及操作码,以卷积运算指令为例,如图1B所示,其中,寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4可以为操作域。其中,每个寄存器号0、寄存器号1、寄存器号2、寄存器号3、寄存器号4可以是一个或者多个寄存器。
102、对所述指令集进行解析,得到验证代码。
其中,可以通过脚本对指令集进行解析,得到验证代码,该验证代码可以包括指令集的各个域的基本约束,具体实现中,通过脚本自动生成代码,即使指令集所在的指令集架构文档有修改,也可以保证快速、精确地生成代码。
103、基于预设约束配置关系对所述验证代码进行编译,得到汇编代码。
其中,预设约束配置关系可以由用户自行设置或者系统默认,预设约束配置关系用于约束各个指令、指令之间的配置关系,例如,先执行哪个指令,后执行哪执行,或者,哪个指令依赖于另一指令的运算结果。具体实现中,可以基于预设约束配置关系对验证代码进行编译,得到汇编代码。
举例说明下,以下表为示例:
其中操作码列表示指令名称,操作域列表示指令中特定的域。在AI专用指令集中,指令集之间可能会有约束关系。例如:
1.指令0,域AA0的约束范围为[0:15],表示有16种操作模式。
2.由于指令0,域AA0的模式不同,指令1中,各个域的约束也不同,比如AA0=0,则BB2在[0:3]范围内随机取值;如AA0=1,则BB2在[5:7]范围内随机取值,等等。
104、将所述汇编代码分别输入到预设参考模型和处理器,得到第一运算结果和第二运算结果。
其中,上述预设参考模型可以基于以下至少一种语言实现:Systemverilog、System C、C/C++、python等等,在此不作限定。上述预设参考模型可以由用户自行设置或者系统默认。预设参考模型相当于模仿处理器的功能而建立的一个模型,也可以称之为“处理器模拟器”,所以,可以将汇编代码输入到预设参考模型和处理器,这样得到两个运算结果,通过两个运算结果之间比对,可以实现验证处理器验证的效率以及完备性。具体实现中,可以分别将汇编代码输入到预设参考模型以及处理器,得到第一运算结果和第二运算结果,当然,可以将汇编代码中的指定部分或者全部输入到预设参考模型以及处理器,得到第一运算结果和第二运算结果。
可选地,在处理器对上述汇编代码进行运算的过程中,可以采样处理器运行的中间状态或者输出结果,并将该中间状态或者输入结果按照指定格式存储起来,得到第二运算结果,指定格式可以由用户自行设置或者系统默认,上述指定格式一般包含文本文档、json文档、excel文档等,在此不作限定,其中文本文档方便结果对比,json文档、excel文档等方便进行配置、结果的查询和分析。
可选地,上述步骤104,将所述汇编代码分别输入到预设参考模型和所述处理器,可包括如下步骤:
41、通过汇编器对所述汇编代码进行编译,得到机器码;
42、将所述机器码分别输入到所述预设参考模型和所述处理器。
其中,汇编代码到机器码的转换可以由硬件实现,也可由软件实现。由汇编代码到机器码,相当于分层处理,这样可以有效地减弱编译器编写的复杂性,从而提高了处理器验证的效率,其原理如同网络通讯的实现需要分成很多层一样,主要目的就是为了从人脑可分析的粒度来减弱复杂。如此,具体实现中,可以通过汇编器对汇编代码进行编译,得到机器码,再将机器码分别输入到预设参考模型和处理器,得到第一运算结果和第二运算结果,如此,可以降低运算结果的复杂度,便于后续将第一运算结果和第二运算结果进行比对。
105、将所述第一运算结果与所述第二运算结果进行比对。
其中,上述预设参考模型主要用于模仿处理器的功能,因此,预设参考模型能够模拟出处理器的执行过程,以达到输出相同结果的目的。具体实现中,可以将第一运算结果与第二运算结果进行比对,得到比对结果。
可选地,上述步骤105,将所述第一运算结果与所述第二运算结果进行比对,可按照如下方式实施:
将所述第一运算结果与所述第二运算结果进行指令序列分析,得到比对结果。
其中,可以将第一运算结果、第二运算结果进行指令序列分析,得到比对结果,比对结果可以以百分数进行表示,例如,100%表示第一运算结果与第二运算结果完全相同。具体实现中,可通过指令序列分析工具,对本次测试的序列进行可视化分析,指令分析工具可以进行多种形式的序列分析,比如:按指令序列执行顺序分析、按相同指令分类分析、按特定指令序列分析等等。
106、在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成覆盖率报告。
其中,第一预设条件可以由用户自行设置或者系统默认。第一预设条件可以为第一运算结果与第二运算结果之间的比对结果为第一运算结果与第二运算结果完全一致,或者,第一预设条件可以为第一运算结果与第二运算结果之间的比对结果大于预设阈值,预设阈值可以由用户自行设置或者系统默认,在此不作限定,具体实现中,可以基于第一运算结果、第二运算结果生成覆盖报告。
可选地,上述步骤105之后,还可以包括如下步骤:
在所述第一运算结果与所述第二运算结果之间的比对结果不满足所述第一预设条件时,对所述预设约束配置关系进行调整。
其中,在第一运算结果与第二运算结果之间的比对结果不满足第一预设条件时,则说明可能预设约束配置关系出现了问题,则可以对预设约束配置关系进行调整。
进一步可选地,上述对所述预设约束配置关系进行调整,可以包括如下步骤:
A1、通过所述比对结果确定所述第二运算结果中的目标差异化参数;
A2、按照预设的差异化参数与约束配置关系调整参数之间的映射关系,确定所述目标差异化参数对应的目标约束配置关系调整参数;
A3、根据所述目标约束配置关系调整参数对所述预设约束配置关系进行调整。
其中,比对结果可以反映第一运算结果与第二运算结果之间的差异性,当然,两者的差异通常只是部分差异,通过比对结果可以确定第二运算结果中的目标差异化参数,目标差异化参数表示第二运算结果中与第一运算结果中存在差异的部分,目标差异化参数可以为以下至少一种:数量、位置、数据类型,在此不作限定,其中,数量可以理解为目标差异化参数的个数或者在第二运算结果中的占比,由于第二运算结果是按照一定顺序排列的,位置则可以理解为目标差异化参数在第二运算结果中的位置,数据类型则可以理解为目标差异化参数对应的数据类型。由于差异参数在一定程度上反映了预设约束配置关系存在错误配置的部分,因此,可以预先建立预设的差异化参数与约束配置关系调整参数之间的映射关系,进而,在得到目标差异化参数之后,可以按照预设的差异化参数与约束配置关系调整参数之间的映射关系,确定目标差异化参数对应的目标约束配置关系调整参数,最后,可以根据目标约束配置关系调整参数对预设约束配置关系进行调整。
107、在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。
其中,第二预设条件可以由用户自行设置或者系统默认,覆盖率报告可以包括以下至少一项内容:单个指令的覆盖状态(覆盖率(%))、单个指令的鲁棒性评估、指令交织的占比等等,在此不作限定。第二预设条件可以为:所有指令的覆盖率均为100%,或者,指定指令的覆盖率均为100%,在此不作限定。
可选地,上述步骤106,还可以包括如下步骤:
在所述覆盖率报告不满足所述第二预设条件时,根据所述覆盖率报告对所述预设约束配置关系进行调整。
具体测试中,如果覆盖率报告不满足第二预设条件,则说明测试指令并未完全覆盖,或者,有些测试用例可能出现错误,进而,可以根据覆盖率报告对预设约束配置关系进行调整。
可选地,上述步骤,根据所述覆盖率报告对所述预设约束配置关系进行调整,可以包括如下步骤:
B1、根据所述覆盖率报告确定所述预设指令集中未被完全覆盖的至少一条目标指令;
B2、按照预设的指令与约束配置关系调整参数之间的映射关系,确定所述至少一条目标指令对应的至少一个目标约束配置关系调整参数,每一目标指令对应一个目标约束配置关系调整参数;
B3、依据所述至少一个目标约束配置关系调整参数对所述预设约束配置关系进行调整。
本申请中可以预先存储预设的指令与约束配置关系调整参数之间的映射关系,具体实现中,针对未完全覆盖的指令,可以按照预先设置的映射关系,得到相应的指令对应的目标约束配置关系调整参数,进而对预设约束配置关系进行调整,如此,调整后的预设约束配置关系可以用于执行步骤103-步骤107。
具体实现中,还可以重复执行上述步骤103-107,得到多个覆盖率报告,通过该多个覆盖率报告综合评价处理器验证的效率以及完备性。
可以看出,在本申请中,预设参考模型相当于模仿处理器的功能而建立的一个模型,将指令集进行解析得到的验证码基于预设约束配置关系进行编译得到汇编代码,再将所述汇编代码分别输入到所述预设参考模型和所述处理器,得到所述第一运算结果和所述第二运算结果,将所述第一运算结果与所述第二运算结果进行比对,在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成所述覆盖率报告,在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。由于汇编代码是基于预设约束配置关系行编译得到的,所述第一运算结果是将所述汇编代码输入到所述预设参考模型得到的,所述第二运算结果是将所述汇编代码输入到所述处理器得到的,所述覆盖率报告是在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时生成的,且所述处理器在所述覆盖率报告满足第二预设条件时才验证成功。由此可见,在本申请中,所述处理器的验证结果是基于所述预设约束配置关系、所述预设参考模型得到的第一运算结果、所述处理器得到的第二运算结果以及所述比对结果满足第一预设条件时生成的覆盖率报告得到的,因此,本申请提供的处理器验证方法及相关产品的验证准确性较高。
与上述一致地,请参阅图2,为本申请实施例提供的一种处理器验证方法的实施例流程示意图。本实施例中所描述的处理器验证方法,包括以下步骤:
201、获取预设指令集。
202、对所述指令集进行解析,得到验证代码。
203、基于预设约束配置关系对所述验证代码进行编译,得到汇编代码。
204、将所述汇编代码分别输入到预设参考模型和所述处理器,得到第一运算结果和第二运算结果。
205、将所述第一运算结果与所述第二运算结果进行比对。
206、在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成覆盖率报告。
207、在所述第一运算结果与所述第二运算结果之间的比对结果不满足所述第一预设条件时,对所述预设约束配置关系进行调整。
其中,调整后的预设约束配置关系再用于执行步骤203及其后续步骤。
208、在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。
209、在所述覆盖率报告不满足所述第二预设条件时,根据所述覆盖率报告对所述预设约束配置关系进行调整。
其中,调整后的预设约束配置关系再用于执行步骤203及其后续步骤。
另外,上述步骤201-步骤209所描述的处理器验证方法可参考图1A所描述的处理器验证方法的对应步骤。
可以看出,在本申请中,预设参考模型相当于模仿处理器的功能而建立的一个模型,将指令集进行解析得到的验证码基于预设约束配置关系进行编译得到汇编代码,再将所述汇编代码分别输入到所述预设参考模型和所述处理器,得到所述第一运算结果和所述第二运算结果,将所述第一运算结果与所述第二运算结果进行比对,在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成所述覆盖率报告,在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。由于汇编代码是基于预设约束配置关系行编译得到的,所述第一运算结果是将所述汇编代码输入到所述预设参考模型得到的,所述第二运算结果是将所述汇编代码输入到所述处理器得到的,所述覆盖率报告是在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时生成的,且所述处理器在所述覆盖率报告满足第二预设条件时才验证成功。由此可见,在本申请中,所述处理器的验证结果是基于所述预设约束配置关系、所述预设参考模型得到的第一运算结果、所述处理器得到的第二运算结果以及所述比对结果满足第一预设条件时生成的覆盖率报告得到的,因此,本申请提供的处理器验证方法及相关产品的验证准确性较高。
与上述一致地,以下为实施上述处理器验证方法的装置,具体如下:
请参阅图3A,为本申请实施例提供的一种处理器验证装置的实施例结构示意图。本实施例中所描述的处理器验证装置,包括:获取单元301、解析单元302、编译单元303、运算单元304、比对单元305、生成单元306和确定单元307,具体如下:
获取单元301,用于获取预设指令集;
解析单元302,用于对所述指令集进行解析,得到验证代码;
编译单元303,用于基于预设约束配置关系对所述验证代码进行编译,得到汇编代码;
运算单元304,用于将所述汇编代码分别输入到预设参考模型和所述处理器,得到第一运算结果和第二运算结果;
比对单元305,用于将所述第一运算结果与所述第二运算结果进行比对;
生成单元306,用于在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成覆盖率报告;
确定单元307,用于在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。
可以看出,在本申请中,预设参考模型相当于模仿处理器的功能而建立的一个模型,将指令集进行解析得到的验证码基于预设约束配置关系进行编译得到汇编代码,再将所述汇编代码分别输入到所述预设参考模型和所述处理器,得到所述第一运算结果和所述第二运算结果,将所述第一运算结果与所述第二运算结果进行比对,在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成所述覆盖率报告,在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。由于汇编代码是基于预设约束配置关系行编译得到的,所述第一运算结果是将所述汇编代码输入到所述预设参考模型得到的,所述第二运算结果是将所述汇编代码输入到所述处理器得到的,所述覆盖率报告是在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时生成的,且所述处理器在所述覆盖率报告满足第二预设条件时才验证成功。由此可见,在本申请中,所述处理器的验证结果是基于所述预设约束配置关系、所述预设参考模型得到的第一运算结果、所述处理器得到的第二运算结果以及所述比对结果满足第一预设条件时生成的覆盖率报告得到的,因此,本申请提供的处理器验证方法及相关产品的验证准确性较高。
其中,上述获取单元301可用于实现上述步骤101所描述的方法,解析单元302可用于实现上述步骤102所描述的方法,上述编译单元303可用于实现上述步骤303所描述的方法,上述运算单元304可用于实现上述步骤104所描述的方法,上述比对单元305可用于实现上述步骤105所描述的方法,上述生成单元306可用于实现上述步骤106所描述的方法,上述确定单元307可用于实现上述步骤107所描述的方法,以下如此类推。
在一个可能的示例中,在所述将所述汇编代码分别输入到预设参考模型和所述处理器方面,所述运算单元304具体用于:
通过汇编器对所述汇编代码进行编译,得到机器码;
将所述机器码分别输入到所述预设参考模型和所述处理器。
在一个可能的示例中,在所述将所述第一运算结果与所述第二运算结果进行比对方面,所述比对单元305具体用于:
将所述第一运算结果与所述第二运算结果进行指令序列分析,得到比对结果。
在一个可能的示例中,如图3B所示,图3B为图3A所示的处理器验证装置的又一变型结构,其与图3A相比较,还可以包括:第一调整单元308,具体如下:
第一调整单元308,用于在所述第一运算结果与所述第二运算结果之间的比对结果不满足所述第一预设条件时,对所述预设约束配置关系进行调整。
在一个可能的示例中,如图3C所示,图3C为图3A所示的处理器验证装置的又一变型结构,其与图3A相比较,还可以包括:第二调整单元309,具体如下:
第二调整单元309,用于在所述覆盖率报告不满足所述第二预设条件时,根据所述覆盖率报告对所述预设约束配置关系进行调整。
在一个可能的示例中,在所述对所述预设约束配置关系进行调整方面,所述第一调整单元308具体用于:
通过所述比对结果确定所述第二运算结果中的目标差异化参数;
按照预设的差异化参数与约束配置关系调整参数之间的映射关系,确定所述目标差异化参数对应的目标约束配置关系调整参数;
根据所述目标约束配置关系调整参数对所述预设约束配置关系进行调整。
可以理解的是,本实施例的处理器验证装置的各程序模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
与上述一致地,请参阅图4,为本申请实施例提供的一种电子设备的实施例结构示意图。本实施例中所描述的电子设备,包括:至少一个输入设备1000;至少一个输出设备2000;至少一个目标处理器3000,例如CPU;和存储器4000,上述输入设备1000、输出设备2000、目标处理器3000和存储器4000通过总线5000连接。
其中,上述输入设备1000具体可为触控面板、物理按键或者鼠标。
上述输出设备2000具体可为显示屏。
上述目标处理器3000可以为以下至少一种:微处理器,微控制器,数字信号处理器,基带处理器,功率管理单元,音频编解码器芯片,专用集成电路,显示驱动器集成电路等来实现,或者,处理器还可以为AI处理器、量子芯片等等,在此不作限定。
上述存储器4000可以是高速RAM存储器,也可为非易失存储器(non-volatilememory),例如磁盘存储器。上述存储器4000用于存储一组程序代码,上述输入设备1000、输出设备2000和目标处理器3000用于调用存储器4000中存储的程序代码,执行如下操作:
上述目标处理器3000,用于:
对所述指令集进行解析,得到验证代码;
基于预设约束配置关系对所述验证代码进行编译,得到汇编代码;
将所述汇编代码分别输入到预设参考模型和所述处理器,得到第一运算结果和第二运算结果;
将所述第一运算结果与所述第二运算结果进行比对;
在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成覆盖率报告;
在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。
可以看出,在本申请中,预设参考模型相当于模仿处理器的功能而建立的一个模型,将指令集进行解析得到的验证码基于预设约束配置关系进行编译得到汇编代码,再将所述汇编代码分别输入到所述预设参考模型和所述处理器,得到所述第一运算结果和所述第二运算结果,将所述第一运算结果与所述第二运算结果进行比对,在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成所述覆盖率报告,在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。由于汇编代码是基于预设约束配置关系行编译得到的,所述第一运算结果是将所述汇编代码输入到所述预设参考模型得到的,所述第二运算结果是将所述汇编代码输入到所述处理器得到的,所述覆盖率报告是在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时生成的,且所述处理器在所述覆盖率报告满足第二预设条件时才验证成功。由此可见,在本申请中,所述处理器的验证结果是基于所述预设约束配置关系、所述预设参考模型得到的第一运算结果、所述处理器得到的第二运算结果以及所述比对结果满足第一预设条件时生成的覆盖率报告得到的,因此,本申请提供的处理器验证方法及相关产品的验证准确性较高。
在一个可能的示例中,在所述将所述汇编代码分别输入到预设参考模型和所述处理器方面,上述目标处理器3000具体用于:
通过汇编器对所述汇编代码进行编译,得到机器码;
将所述机器码分别输入到所述预设参考模型和所述处理器。
在一个可能的示例中,在所述将所述第一运算结果与所述第二运算结果进行比对方面,上述处理器具体用于:
将所述第一运算结果与所述第二运算结果进行指令序列分析,得到比对结果。
在一个可能的示例中,上述目标处理器3000还具体用于:
在所述第一运算结果与所述第二运算结果之间的比对结果不满足所述第一预设条件时,对所述预设约束配置关系进行调整。
在一个可能的示例中,上述目标处理器3000还具体用于:
在所述覆盖率报告不满足所述第二预设条件时,根据所述覆盖率报告对所述预设约束配置关系进行调整。
在一个可能的示例中,在所述对所述预设约束配置关系进行调整方面,上述目标处理器3000具体用于:
通过所述比对结果确定所述第二运算结果中的目标差异化参数;
按照预设的差异化参数与约束配置关系调整参数之间的映射关系,确定所述目标差异化参数对应的目标约束配置关系调整参数;
根据所述目标约束配置关系调整参数对所述预设约束配置关系进行调整。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何一种处理器验证方法的部分或全部步骤。
本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行包括上述方法实施例中记载的任何一种处理器验证方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本申请是参照本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种处理器验证方法,其特征在于,包括:
获取预设指令集;
对所述指令集进行解析,得到验证代码;
基于预设约束配置关系对所述验证代码进行编译,得到汇编代码;
将所述汇编代码分别输入到预设参考模型和处理器,得到第一运算结果和第二运算结果;
将所述第一运算结果与所述第二运算结果进行比对;
在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成覆盖率报告;
在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。
2.根据权利要求1所述的方法,其特征在于,所述将所述汇编代码分别输入到预设参考模型和所述处理器,包括:
通过汇编器对所述汇编代码进行编译,得到机器码;
将所述机器码分别输入到所述预设参考模型和所述处理器。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述第一运算结果与所述第二运算结果进行比对,包括:
将所述第一运算结果与所述第二运算结果进行指令序列分析,得到比对结果。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
在所述第一运算结果与所述第二运算结果之间的比对结果不满足所述第一预设条件时,对所述预设约束配置关系进行调整。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
在所述覆盖率报告不满足所述第二预设条件时,根据所述覆盖率报告对所述预设约束配置关系进行调整。
6.根据权利要求4所述的方法,其特征在于,所述对所述预设约束配置关系进行调整,包括:
通过所述比对结果确定所述第二运算结果中的目标差异化参数;
按照预设的差异化参数与约束配置关系调整参数之间的映射关系,确定所述目标差异化参数对应的目标约束配置关系调整参数;
根据所述目标约束配置关系调整参数对所述预设约束配置关系进行调整。
7.一种处理器验证装置,其特征在于,包括:
获取单元,用于获取预设指令集;
解析单元,用于对所述指令集进行解析,得到验证代码;
编译单元,用于基于预设约束配置关系对所述验证代码进行编译,得到汇编代码;
运算单元,用于将所述汇编代码分别输入到预设参考模型和处理器,得到第一运算结果和第二运算结果;
比对单元,用于将所述第一运算结果与所述第二运算结果进行比对;
生成单元,用于在所述第一运算结果与所述第二运算结果之间的比对结果满足第一预设条件时,生成覆盖率报告;
确定单元,用于在所述覆盖率报告满足第二预设条件时,确认所述处理器验证成功。
8.根据权利要求7所述的装置,其特征在于,在所述将所述汇编代码分别输入到预设参考模型和所述处理器方面,所述运算单元具体用于:
通过汇编器对所述汇编代码进行编译,得到机器码;
将所述机器码分别输入到所述预设参考模型和所述处理器。
9.一种电子设备,其特征在于,包括目标处理器、存储器,所述存储器用于存储一个或多个程序,并且被配置由所述目标处理器执行,所述程序包括用于执行如权利要求1-6任一项所述的方法中的步骤的指令。
10.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被目标处理器执行以实现如权利要求1-6任一项所述的方法。
CN201910257926.1A 2019-04-01 2019-04-01 处理器验证方法及相关产品 Pending CN110134580A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910257926.1A CN110134580A (zh) 2019-04-01 2019-04-01 处理器验证方法及相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910257926.1A CN110134580A (zh) 2019-04-01 2019-04-01 处理器验证方法及相关产品

Publications (1)

Publication Number Publication Date
CN110134580A true CN110134580A (zh) 2019-08-16

Family

ID=67569186

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910257926.1A Pending CN110134580A (zh) 2019-04-01 2019-04-01 处理器验证方法及相关产品

Country Status (1)

Country Link
CN (1) CN110134580A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955605A (zh) * 2019-12-10 2020-04-03 宁波轸谷科技有限公司 一种cpu验证单步动态执行的方法
CN111027277A (zh) * 2019-11-12 2020-04-17 天津大学 一种软硬件协同的验证方法
CN111143208A (zh) * 2019-12-23 2020-05-12 江苏亨通太赫兹技术有限公司 基于处理器技术辅助fpga实现ai算法的验证方法
CN111523283A (zh) * 2020-04-16 2020-08-11 北京百度网讯科技有限公司 一种验证处理器的方法、装置、电子设备及存储介质
CN112231164A (zh) * 2020-12-11 2021-01-15 鹏城实验室 处理器验证方法、设备及可读存储介质
CN113407236A (zh) * 2021-06-29 2021-09-17 上海阵量智能科技有限公司 一种指令汇编方法、装置、计算机设备及存储介质
CN114118356A (zh) * 2021-10-11 2022-03-01 北京百度网讯科技有限公司 神经网络处理器验证方法、装置、电子设备及存储介质
CN117172209A (zh) * 2023-11-03 2023-12-05 睿思芯科(深圳)技术有限公司 芯片的验证系统、方法及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826050A (zh) * 2010-02-03 2010-09-08 北京龙芯中科技术服务中心有限公司 一种用于制造后处理器芯片验证的随机验证方法及装置
CN104461810A (zh) * 2014-11-14 2015-03-25 深圳市芯海科技有限公司 一种提高嵌入式处理器功能验证效率的方法
CN109189479A (zh) * 2018-10-12 2019-01-11 西安微电子技术研究所 一种用于处理器指令集的并行自动化验证方法
CN109240872A (zh) * 2018-08-08 2019-01-18 福州瑞芯微电子股份有限公司 一种芯片验证关键信号覆盖率统计分析方法和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826050A (zh) * 2010-02-03 2010-09-08 北京龙芯中科技术服务中心有限公司 一种用于制造后处理器芯片验证的随机验证方法及装置
CN104461810A (zh) * 2014-11-14 2015-03-25 深圳市芯海科技有限公司 一种提高嵌入式处理器功能验证效率的方法
CN109240872A (zh) * 2018-08-08 2019-01-18 福州瑞芯微电子股份有限公司 一种芯片验证关键信号覆盖率统计分析方法和存储介质
CN109189479A (zh) * 2018-10-12 2019-01-11 西安微电子技术研究所 一种用于处理器指令集的并行自动化验证方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111027277A (zh) * 2019-11-12 2020-04-17 天津大学 一种软硬件协同的验证方法
CN110955605A (zh) * 2019-12-10 2020-04-03 宁波轸谷科技有限公司 一种cpu验证单步动态执行的方法
CN111143208A (zh) * 2019-12-23 2020-05-12 江苏亨通太赫兹技术有限公司 基于处理器技术辅助fpga实现ai算法的验证方法
WO2021128781A1 (zh) * 2019-12-23 2021-07-01 江苏亨通太赫兹技术有限公司 基于处理器技术辅助fpga实现ai算法的验证方法
CN111523283A (zh) * 2020-04-16 2020-08-11 北京百度网讯科技有限公司 一种验证处理器的方法、装置、电子设备及存储介质
CN111523283B (zh) * 2020-04-16 2023-05-26 北京百度网讯科技有限公司 一种验证处理器的方法、装置、电子设备及存储介质
CN112231164B (zh) * 2020-12-11 2021-08-27 鹏城实验室 处理器验证方法、设备及可读存储介质
CN112231164A (zh) * 2020-12-11 2021-01-15 鹏城实验室 处理器验证方法、设备及可读存储介质
CN113407236A (zh) * 2021-06-29 2021-09-17 上海阵量智能科技有限公司 一种指令汇编方法、装置、计算机设备及存储介质
CN113407236B (zh) * 2021-06-29 2024-03-08 上海阵量智能科技有限公司 一种指令汇编方法、装置、计算机设备及存储介质
CN114118356A (zh) * 2021-10-11 2022-03-01 北京百度网讯科技有限公司 神经网络处理器验证方法、装置、电子设备及存储介质
CN114118356B (zh) * 2021-10-11 2023-02-28 北京百度网讯科技有限公司 神经网络处理器验证方法、装置、电子设备及存储介质
CN117172209A (zh) * 2023-11-03 2023-12-05 睿思芯科(深圳)技术有限公司 芯片的验证系统、方法及相关设备
CN117172209B (zh) * 2023-11-03 2024-02-27 睿思芯科(深圳)技术有限公司 芯片的验证系统、方法及相关设备

Similar Documents

Publication Publication Date Title
CN110134580A (zh) 处理器验证方法及相关产品
CN109376852B (zh) 运算装置及运算方法
CN107247859B (zh) 逻辑电路设计的验证方法、装置、电子设备及存储介质
CN106844217A (zh) 对应用的控件进行埋点的方法及装置、可读存储介质
CN110245220A (zh) 电子文件签署方法、装置及服务器、存储介质
CN107274186A (zh) 在区块链中获得智能合约接口的方法和设备
CN109857608A (zh) 微处理器验证方法、装置、电子设备及计算机可读存储介质
CN109543825A (zh) 神经网络模型算法编译方法、装置及相关产品
CN109101931A (zh) 一种场景识别方法、场景识别装置及终端设备
CN109753391A (zh) 处理器的一个或多个结构的功能测试的系统、装置和方法
CN109886087A (zh) 一种基于神经网络的活体检测方法及终端设备
CN110502415A (zh) 一种埋点设置方法、装置及设备
CN111400167A (zh) Redfish服务合规性验证方法、装置及设备和介质
CN109697090A (zh) 一种控制终端设备的方法、终端设备及存储介质
CN112672405B (zh) 功耗计算方法、装置、存储介质、电子设备以及服务器
CN110069997A (zh) 场景分类方法、装置及电子设备
CN109671184A (zh) 一种车辆数据流录制方法、系统及相关设备
CN109635706A (zh) 基于神经网络的手势识别方法、设备、存储介质及装置
CN109634428A (zh) 电子设备、反馈提示方法、装置及终端设备
CN109656810A (zh) 一种图像算法的调试方法、调试系统及终端设备
CN103678114B (zh) 产生断言的设备和方法以及验证处理器的设备和方法
CN110362294A (zh) 开发任务执行方法、装置、电子设备及存储介质
CN110020830A (zh) 数据审批方法、装置、设备和计算机可读存储介质
CN108984147A (zh) 音量控制方法、电子装置及计算机可读存储介质
CN115796873A (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