CN111523283A - 一种验证处理器的方法、装置、电子设备及存储介质 - Google Patents
一种验证处理器的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111523283A CN111523283A CN202010300290.7A CN202010300290A CN111523283A CN 111523283 A CN111523283 A CN 111523283A CN 202010300290 A CN202010300290 A CN 202010300290A CN 111523283 A CN111523283 A CN 111523283A
- Authority
- CN
- China
- Prior art keywords
- instruction
- processor
- current
- current instruction
- verified
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请公开了一种验证处理器的方法、装置、电子设备及存储介质,涉及集成电路技术领域。具体方案为:在精简指令集中选取一条指令作为当前指令,对当前指令进行随机化处理,将处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度;将指令队列中的指令组合为当前指令序列,输入至待验证处理器进行处理,得到当前指令序列的执行结果;若待验证处理器不满足验证收敛条件,重复执行上述操作,直到满足验证收敛条件;根据各个当前指令序列的执行结果,判断待验证处理器是否存在问题。本申请实施例可以针对非典型用例以及非典型应用对处理器进行验证,保证处理器实现的正确性和完整性。
Description
技术领域
本申请涉及计算机技术领域,进一步涉及集成电路技术,尤其是一种验证处理器的方法、装置、电子设备及存储介质。
背景技术
RISC-V指令集是一个开源指令集,基于RISC-V指令集实现的处理器需完整执行RISC-V指令集中定义的各种指令,在对基于RISC-V指令集实现的处理器的验证过程中,验证处理器执行指令的过程和结果完全符合RISC-V指令集的定义,对于保证处理器实现的正确性和完整性十分重要。
在现有的验证处理器的方法中,可以通过IC前端验证平台验证处理器或者通过FPGA验证平台验证处理器。具体地,IC前端验证平台是通过典型用例的定向测试向量对处理器进行验证;FPGA平台是通过典型应用对处理器进行验证。
IC即集成电路(Integrated Circuit),它是一种微型电子器件或部件,采用一定的工艺,把一个电路中所需的晶体管、二极管、电阻、电容和电感等元件及布线互连一起,制作在一小块或几小块半导体晶片或介质基片上,然后封装在一个管壳内,成为具有所需电路功能的微型结构。典型用例的定向测试向量只能保证处理器在典型应用场景下的正确性和完整性,随着指令集中指令数目的增长,典型应用场景的数量会接近海量,靠典型应用的定向测试向量来保证处理器执行指令的正确性和完整性是不可能完成的任务。
FPGA即现场可编程门阵列(Field Programmable Gate Array),它是在PAL、GAL等可编程器件的基础上进一步发展的产物,作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。使用上述两个验证平台验证处理器,只能通过典型用例的定向测试向量或者典型应用对处理器进行验证,这样就会导致无法针对非典型用例以及非典型应用进行验证。而且FPGA平台无法与IC前端验证平台做到完全一致,例如,时钟复位策略、memory等标准单元时序等,它们在FPGA平台上的实现与它们在ASIC平台上的实现无法做到完全一致;如果只选用其中一个验证平台进行验证的话,必然会导致遗漏掉另外一个验证平台能够验证到的一些场景。此外,FPGA平台在排除漏洞的过程中效率非常低下,通常需要将FPGA平台中发现的问题复现在寄存器转换级电路(Register Transfer Level,简称RTL)验证平台,然后再确定漏洞,这样严重降低了设计迭代的效率。
发明内容
本申请提供了一种验证处理器的方法、装置、设备以及存储介质,可以针对非典型用例以及非典型应用对处理器进行验证,从而可以保证处理器实现的正确性和完整性。
第一方面,本申请提供了一种验证处理器的方法,所述方法包括:
按照预先设定的各条指令被选中的概率,在精简指令集中选取一条指令作为当前指令,对当前指令进行随机化处理,并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度;
将所述指令队列中的指令组合为当前指令序列,并将所述当前指令序列输入至待验证处理器进行处理,得到所述待验证处理器对所述当前指令序列的执行结果;
若所述待验证处理器不满足验证收敛条件,重复执行上述提取所述当前指令的操作,直到所述待验证处理器满足所述验证收敛条件;
根据所述待验证处理器对各个当前指令序列的执行结果,判断所述待验证处理器是否存在问题。
第二方面,本申请提供了一种验证处理器的装置,所述装置包括:选取模块、处理模块和判断模块;其中,
所述选取模块,用于按照预先设定的各条指令被选中的概率,在精简指令集中选取一条指令作为当前指令,对当前指令进行随机化处理,并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度;
所述处理模块,用于将所述指令队列中的指令组合为当前指令序列,并将所述当前指令序列输入至待验证处理器进行处理,得到所述待验证处理器对所述当前指令序列的执行结果;
所述选取模块,还用于若所述待验证处理器不满足验证收敛条件,重复执行上述提取所述当前指令的操作,直到所述待验证处理器满足所述验证收敛条件;
所述判断模块,用于根据所述待验证处理器对各个当前指令序列的执行结果,判断所述待验证处理器是否存在问题。
第三方面,本申请实施例提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本申请任意实施例所述的验证处理器的方法。
第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请任意实施例所述的验证处理器的方法。
根据本申请的技术解决了现有技术中只能通过典型用例或者典型应用对处理器进行验证,对于非典型用例以及非典型应用则无法验证的技术问题,本申请提供的技术方案,可以针对非典型用例以及非典型应用对处理器进行验证,从而可以保证处理器实现的正确性和完整性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例一提供的验证处理器的方法的流程示意图;
图2是本申请实施例二提供的验证处理器的方法的流程示意图;
图3是本申请实施例三提供的验证处理器的装置的结构示意图;
图4是本申请实施例三提供的处理模块的结构示意图;
图5是用来实现本申请实施例的验证处理器的方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
实施例一
图1是本申请实施例一提供的验证处理器的方法的流程示意图,该方法可以由验证处理器的装置、电子设备或者随机指令生成平台来执行,该装置、电子设备或者随机指令生成平台可以由软件和/或硬件的方式实现,该装置或者电子设备可以集成在任何具有网络通信功能的智能设备中。如图1所示,验证处理器的方法可以包括以下步骤:
S101、按照预先设定的各条指令被选中的概率,在精简指令集中选取一条指令作为当前指令,对当前指令进行随机化处理,并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度。
在本申请的具体实施例中,电子设备可以按照预先设定的各条指令被选中的概率,在精简指令集中选取一条指令作为当前指令,对当前指令进行随机化处理,并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度。RISC-V是一个基于精简指令集(Reduced InstructionSet Computing,简称RISC)原则的开源指令集架构(ISA),与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件。虽然这不是第一个开源指令集,但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。
在本步骤中,电子设备可以按照预先设定的各条指令被选中的概率,在RISC-V指令集中选取一条指令作为当前指令,根据预设规则将当前指令划分至与其对应的指令类型中;然后根据当前指令对应的指令类型对当前指令进行随机化处理,并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度。
在本申请的具体实施例中,电子设备可以从用户关心的任意角度对RISC-V指令集中的指令划分类型,例如,电子设备可以按照指令的功能或者指令的执行结果,还可以按照指令的操作数将每一条指令划分至与其对应的指令类型中。具体地,本申请中的指令类型可以包括:数据传输指令、算数运算指令、逻辑运算类指令、串操作指令、程序转移指令;其中,数据传输指令包括:数据传送指令、输入输出端口传送指令、目的地址传送指令和标志传送指令;算数运算指令包括:加减乘除指令、比较指令和调整指令;逻辑运算类指令包括:逻辑运算指令和移位指令;串操作指令包括:串传送指令、串比较指令、串扫描指令、串装入指令、串存储指令;程序转移指令包括:无条件转移指令、条件转移指令、循环控制指令和中断指令。
S102、将指令队列中的指令组合为当前指令序列,并将当前指令序列输入至待验证处理器进行处理,得到待验证处理器对当前指令序列的执行结果。
在本申请的具体实施例中,电子设备可以将指令队列中的指令组合为当前指令序列,并将当前指令序列输入至待验证处理器进行处理,得到待验证处理器对当前指令序列的执行结果。具体地,电子设备可以按照先入先出的顺序在指令队列中选取出每一条指令,然后按照每一条指令在指令队列中的顺序将指令队列中全部的指令组合为当前指令序列。
S103、若待验证处理器不满足验证收敛条件,重复执行上述提取当前指令的操作,直到待验证处理器满足验证收敛条件。
在本申请的具体实施例中,电子设备在得到待处理器对当前指令序列的执行结果之后,可以检测待验证处理器是否满足验证收敛条件;若待验证处理器不满足验证收敛条件,重复执行上述提取当前指令的操作,直到待验证处理器满足验证收敛条件。本申请中的验证收敛条件可以自行定义。例如,若在RISC-V指令集中选取出的指令的数量大于等于预设数量,则电子设备可以判定待验证处理器满足验证收敛条件;相反,若在RISC-V指令集中选取出的指令的数量小于预设数量,则电子设备可以判定待验证处理器不满足验证收敛条件。再例如,若在RISC-V指令集中选取出的指令的类型能够覆盖全部指令类型,则电子设备可以判定待验证处理器满足验证收敛条件;相反,若在RISC-V指令集中选取出的指令的类型不能够覆盖全部指令类型,则电子设备可以判定待验证处理器不满足验证收敛条件。
S104、根据待验证处理器对各个当前指令序列的执行结果,判断待验证处理器是否存在问题。
在本申请的具体实施例中,电子设备可以根据待验证处理器对各个当前指令序列的执行结果,判断待验证处理器是否存在问题。具体地,本申请可以预先将执行结果划分为两类:合理的执行结果和不合理的执行结果;其中,合理的执行结果是指预设执行结果集合中的任意一个执行结果;不合理的执行结果是指预设执行结果集合以外的任意一个执行结果。在待验证处理器对各个当前指令序列的执行结果中,若合理的执行结果的数量大于不合理的执行结果的数量,则电子设备可以判定待验证处理器不存在问题;相反,若合理的执行结果的数量小于等于不合理的执行结果的数量,则电子设备可以判定待验证处理器存在问题。
本申请实施例提出的验证处理器的方法,先在精简指令集中选取一条指令作为当前指令,对当前指令进行随机化处理,并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度;再将指令队列中的指令组合为当前指令序列,并将当前指令序列输入至待验证处理器进行处理,得到待验证处理器对当前指令序列的执行结果;若待验证处理器不满足验证收敛条件,重复执行上述提取当前指令的操作,直到待验证处理器满足验证收敛条件;最后根据待验证处理器对各个当前指令序列的执行结果,判断待验证处理器是否存在问题。也就是说,本申请可以在精简指令集中均衡化地选取指令作为当前指令,并将选取出的当前指令组合为当前指令序列,输入至待验证处理器进行验证。而在现有的验证处理器的方法中,通过IC前端验证平台验证处理器或者通过FPGA验证平台验证处理器。而IC前端验证平台是通过典型用例的定向测试向量对处理器进行验证;FPGA平台是通过典型应用对处理器进行验证。因为本申请采用了均衡化地选取指令作为当前指令,并将选取出的当前指令组合为当前指令序列的技术手段,克服了现有技术中只能通过典型用例或者典型应用对处理器进行验证,对于非典型用例以及非典型应用则无法验证的技术问题,本申请提供的技术方案,可以针对非典型用例以及非典型应用对处理器进行验证,从而可以保证处理器实现的正确性和完整性;并且,本申请实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例二
图2是本申请实施例二提供的验证处理器的方法的流程示意图。如图2所示,验证处理器的方法可以包括以下步骤:
S201、按照预先设定的各条指令被选中的概率,在精简指令集中选取一条指令作为当前指令。
在本申请的具体实施例中,电子设备可以按照预先设定的各条指令被选中的概率,在精简指令集中选取一条指令作为当前指令。具体地,在第一次选取当前指令时,电子设备可以预先将各条指令被选中的概率设置为相同的概率值,因此,电子设备在第一次选取当前指令时,可以按照初始设置的各条指令被选中的概率,在RISC-V指令集中随机选取一条指令作为当前指令;若当前指令与预先保存的指令集合中的任意一条指令相同,则电子设备可以将当前指令对应的执行次数加1;若当前指令与预先保存的指令集合中的各条指令均不相同,则电子设备可以将当前指令保存至预先保存的指令集合中,并将当前指令对应的执行次数加1;然后根据预先保存的指令集合中的各条指令对应的执行次数以及预先确定的各个当前指令序列对应的RTL文件,确定出待验证处理器的验证进度。例如,通过验证进度得到的代码覆盖率报告可以很直观的发现处理器中算术逻辑单元(Arithmeticand Logic Unit,简称ALU)是否被验证到,甚至可以直观地看出ALU中的加法器运算单元是否有被验证到,再结合各条指令对应的执行次数就可看出ADD和ADDI两条指令是否都已经被覆盖到,从而确定是否存在验证的缺口和死角。
较佳地,在本申请的具体实施例中,电子设备还可以根据预先保存的指令集合中的各条指令对应的执行次数,确定出预先保存的指令集合中的各条指令被验证的程度;然后根据预先保存的指令集合中的各条指令被验证的程度,调整精简指令集中的各条指令被选中的概率,使得精简指令集中的各条指令被选取出的次数相同或者任意两条指令被抽取出的次数的差值在预设范围内。因此,电子设备在第二次以及以后各次选取当前指令时,可以按照调整后的各条指令被选中的概率,在RISC-V指令集中选取当前指令。通常情况下,在随机生成各个当前指令序列的过程中,理想的情况是各条指令或者各类指令尽量均匀的出现在生成的当前指令序列中,从而可以验证到尽可能多的专项场景和交叉场景。在本申请提供的技术方案中,电子设备可以根据收集到的各条指令对应的执行次数,判断各条指令被验证的程度。显然,执行次数越多的指令被验证的程度就约深,因此,在下一次抽取当前指令的时候,可以对每条指令被选中的概率做适当调整,使得验证程度较深的指令被选取的概率降低,验证程度较浅的指令被选取的概率升高,从而达到指令选取的均衡操作,加速指令集验证的收敛速度。
S202、根据预设规则将当前指令划分至与其对应的指令类型中。
在本申请的具体实施例中,电子设备可以根据预设规则将当前指令划分至与其对应的指令类型中。电子设备可以从用户关心的任意角度对RISC-V指令集中的指令划分类型,例如,电子设备可以按照指令的功能或者指令的执行结果,还可以按照指令的操作数将每一条指令划分至与其对应的指令类型中。具体地,电子设备可以将当前指令输入至待验证处理器进行处理,得到待验证处理器对当前指令的执行结果;若待验证处理器对当前指令的执行结果使得程序计数器(Program Counter,简称PC)中的当前地址跳转至当前指令的地址的下一个地址,则电子设备可以将当前指令划分至第一类指令类型中;若待验证处理器对当前指令的执行结果使得程序计数器中的当前地址跳转至当前指令的地址的下一个地址以外的地址,则电子设备可以将当前指令划分至第二类指令类型中。即,若待验证处理器对当前指令的执行结果使得待验证处理器的PC值按照顺序跳转至下一个地址,则电子设备可以将当前指令划分至第一类指令类型中;若待验证处理器对当前指令的执行结果使得待验证处理器的PC值未按照顺序跳转至下一个地址,则电子设备可以将当前指令划分至第二类指令类型中。
S203、根据当前指令对应的指令类型对当前指令进行随机化处理;并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度。
在本申请的具体实施例中,电子设备可以根据当前指令对应的指令类型对当前指令进行随机化处理;并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度。具体地,电子设备可以根据预设规则将当前指令划分至与其对应的指令类型中;然后根据当前指令对应的指令类型对当前指令进行随机化处理,并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度。具体地,若当前指令对应的指令类型为第一类指令类型,则电子设备可以直接将当前指令的指令参数随机修改为预设指令参数集合中的任意一个指令参数;其中,指令参数可以包括但不限于:立即数、寄存器值等;若当前指令对应的指令类型为第二类指令类型,则电子设备可以将待验证处理器对当前指令的执行结果随机修改为预设执行结果集合中的任意一个执行结果;然后根据修改后的执行结果将当前指令的指令参数随机修改为预设指令参数集合中的任意一个指令参数,即修改后的执行结果相当于是随机修改指令参数的一个约束条件,电子设备在将当前指令的指令参数随机修改为预设指令参数集合中的任意一个指令参数后,需要保证修改指令参数的当前指令的执行结果为预设执行结果集合中的任意一个执行结果。这里如果不对指令进行限制,完全对指令进行随机抽取组成指令序列的话,很可能组成的指令序列会导致处理器跳转到不可预知的状态,导致生成的大量的随机测试用例变为非法用例。
较佳地,在本申请的具体实施例中,电子设备在将当前指令的指令参数随机修改为预设指令参数集合中的任意一个指令参数时,可以在当前指令前面添加一些用于初始化寄存器或者存储器的指令,当然,这些用于初始化寄存器或者存储器的指令不能是改变待验证处理器的PC值的指令。
S204、将指令队列中的指令组合为当前指令序列,并将当前指令序列输入至待验证处理器进行处理,得到待验证处理器对当前指令序列的执行结果。
在本申请的具体实施例中,电子设备可以将指令队列中的指令组合为当前指令序列,并将当前指令序列输入至待验证处理器进行处理,得到待验证处理器对当前指令序列的执行结果。具体地,电子设备可以按照先入先出的顺序在指令队列中选取出每一条指令,然后按照每一条指令在指令队列中的顺序将指令队列中全部的指令组合为当前指令序列。
S205、若待验证处理器不满足验证收敛条件,重复执行上述提取当前指令的操作,直到待验证处理器满足验证收敛条件。
在本申请的具体实施例中,电子设备在得到待处理器对当前指令序列的执行结果之后,可以检测待验证处理器是否满足验证收敛条件;若待验证处理器不满足验证收敛条件,重复执行上述提取当前指令的操作,直到待验证处理器满足验证收敛条件。本申请中的验证收敛条件可以自行定义。
S206、根据待验证处理器对各个当前指令序列的执行结果,判断待验证处理器是否存在问题。
在本申请的具体实施例中,电子设备可以根据待验证处理器对各个当前指令序列的执行结果,判断待验证处理器是否存在问题。具体地,本申请可以预先将执行结果划分为两类:合理的执行结果和不合理的执行结果;其中,合理的执行结果是指预设执行结果集合中的任意一个执行结果;不合理的执行结果是指预设执行结果集合以外的任意一个执行结果。在待验证处理器对各个当前指令序列的执行结果中,若合理的执行结果的数量大于不合理的执行结果的数量,则电子设备可以判定待验证处理器不存在问题;相反,若合理的执行结果的数量小于等于不合理的执行结果的数量,则电子设备可以判定待验证处理器存在问题。
本申请实施例提出的验证处理器的方法,先在精简指令集中选取一条指令作为当前指令,对当前指令进行随机化处理,并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度;再将指令队列中的指令组合为当前指令序列,并将当前指令序列输入至待验证处理器进行处理,得到待验证处理器对当前指令序列的执行结果;若待验证处理器不满足验证收敛条件,重复执行上述提取当前指令的操作,直到待验证处理器满足验证收敛条件;最后根据待验证处理器对各个当前指令序列的执行结果,判断待验证处理器是否存在问题。也就是说,本申请可以在精简指令集中均衡化地选取指令作为当前指令,并将选取出的当前指令组合为当前指令序列,输入至待验证处理器进行验证。而在现有的验证处理器的方法中,通过IC前端验证平台验证处理器或者通过FPGA验证平台验证处理器。而IC前端验证平台是通过典型用例的定向测试向量对处理器进行验证;FPGA平台是通过典型应用对处理器进行验证。因为本申请采用了均衡化地选取指令作为当前指令,并将选取出的当前指令组合为当前指令序列的技术手段,克服了现有技术中只能通过典型用例或者典型应用对处理器进行验证,对于非典型用例以及非典型应用则无法验证的技术问题,本申请提供的技术方案,可以针对非典型用例以及非典型应用对处理器进行验证,从而可以保证处理器实现的正确性和完整性;并且,本申请实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例三
图3是本申请实施例三提供的验证处理器的装置的结构示意图。如图3所示,所述装置300包括:选取模块301、处理模块302和判断模块303;其中,
所述选取模块301,用于按照预先设定的各条指令被选中的概率,在精简指令集中选取一条指令作为当前指令,对当前指令进行随机化处理,并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度;
所述处理模块302,用于将所述指令队列中的指令组合为当前指令序列,并将所述当前指令序列输入至待验证处理器进行处理,得到所述待验证处理器对所述当前指令序列的执行结果;
所述选取模块301,还用于若所述待验证处理器不满足验证收敛条件,重复执行上述提取所述当前指令的操作,直到所述待验证处理器满足所述验证收敛条件;
所述判断模块303,用于根据所述待验证处理器对各个当前指令序列的执行结果,判断所述待验证处理器是否存在问题。
图4是本申请实施例三提供的处理模块的结构示意图。如图4所示,所述处理模块302包括:划分子模块3021和处理子模块3022;其中,
所述划分子模块3021,用于根据预设规则将所述当前指令划分至与其对应的指令类型中;
所述处理子模块3022,用于根据所述当前指令对应的指令类型对所述当前指令进行随机化处理。
进一步的,所述划分子模块3021,具体用于将所述当前指令输入至所述待验证处理器进行处理,得到所述待验证处理器对所述当前指令的执行结果;若所述待验证处理器对所述当前指令的执行结果使得程序计数器中的当前地址跳转至所述当前指令的地址的下一个地址,则将所述当前指令划分至第一类指令类型中;若所述待验证处理器对所述当前指令的执行结果使得所述程序计数器中的当前地址跳转至所述当前指令的地址的下一个地址以外的地址,则将所述当前指令划分至第二类指令类型中。
进一步的,所述处理子模块3022,具体用于若所述当前指令对应的指令类型为所述第一类指令类型,则直接将所述当前指令的指令参数随机修改为预设指令参数集合中的任意一个指令参数;若所述当前指令对应的指令类型为所述第二类指令类型,则将所述待验证处理器对所述当前指令的执行结果随机修改为预设执行结果集合中的任意一个执行结果;根据修改后的执行结果将所述当前指令的指令参数随机修改为所述预设指令参数集合中的任意一个指令参数。
进一步的,所述装置还包括:确定模块304(图中未示出),用于若所述当前指令与预先保存的指令集合中的任意一条指令相同,则将所述当前指令对应的执行次数加1;若所述当前指令与所述预先保存的指令集合中的各条指令均不相同,则将所述当前指令保存至所述预先保存的指令集合中,并将所述当前指令对应的执行次数加1;根据所述预先保存的指令集合中的各条指令对应的执行次数以及预先确定的各个当前指令序列对应的寄存器转换级电路RTL文件,确定出所述待验证处理器的验证进度。
进一步的,所述确定模块304,还用于根据所述预先保存的指令集合中的各条指令对应的执行次数,确定出所述预先保存的指令集合中的各条指令被验证的程度;根据所述预先保存的指令集合中的各条指令被验证的程度,调整所述精简指令集中的各条指令被选中的概率,使得所述精简指令集中的各条指令被选取出的次数相同或者任意两条指令被抽取出的次数的差值在预设范围内。
上述验证处理器的装置可执行本申请任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请任意实施例提供的验证处理器的方法。
实施例四
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图5所示,是根据本申请实施例的验证处理器的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图5所示,该电子设备包括:一个或多个处理器501、存储器502,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图5中以一个处理器501为例。
存储器502即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的验证处理器的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的验证处理器的方法。
存储器502作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的验证处理器的方法对应的程序指令/模块(例如,附图3所示的选取模块301、处理模块302和判断模块303)。处理器501通过运行存储在存储器502中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的验证处理器的方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据验证处理器的方法的电子设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至验证处理器的方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
验证处理器的方法的电子设备还可以包括:输入装置503和输出装置504。处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。
输入装置503可接收输入的数字或字符信息,以及产生与验证处理器的方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置504可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
根据本申请实施例的技术方案,先在精简指令集中选取一条指令作为当前指令,对当前指令进行随机化处理,并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度;再将指令队列中的指令组合为当前指令序列,并将当前指令序列输入至待验证处理器进行处理,得到待验证处理器对当前指令序列的执行结果;若待验证处理器不满足验证收敛条件,重复执行上述提取当前指令的操作,直到待验证处理器满足验证收敛条件;最后根据待验证处理器对各个当前指令序列的执行结果,判断待验证处理器是否存在问题。也就是说,本申请可以在精简指令集中均衡化地选取指令作为当前指令,并将选取出的当前指令组合为当前指令序列,输入至待验证处理器进行验证。而在现有的验证处理器的方法中,通过IC前端验证平台验证处理器或者通过FPGA验证平台验证处理器。而IC前端验证平台是通过典型用例的定向测试向量对处理器进行验证;FPGA平台是通过典型应用对处理器进行验证。因为本申请采用了均衡化地选取指令作为当前指令,并将选取出的当前指令组合为当前指令序列的技术手段,克服了现有技术中只能通过典型用例或者典型应用对处理器进行验证,对于非典型用例以及非典型应用则无法验证的技术问题,本申请提供的技术方案,可以针对非典型用例以及非典型应用对处理器进行验证,从而可以保证处理器实现的正确性和完整性;并且,本申请实施例的技术方案实现简单方便、便于普及,适用范围更广。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (14)
1.一种验证处理器的方法,其特征在于,所述方法包括:
按照预先设定的各条指令被选中的概率,在精简指令集中选取一条指令作为当前指令,对当前指令进行随机化处理,并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度;
将所述指令队列中的指令组合为当前指令序列,并将所述当前指令序列输入至待验证处理器进行处理,得到所述待验证处理器对所述当前指令序列的执行结果;
若所述待验证处理器不满足验证收敛条件,重复执行上述提取所述当前指令的操作,直到所述待验证处理器满足所述验证收敛条件;
根据所述待验证处理器对各个当前指令序列的执行结果,判断所述待验证处理器是否存在问题。
2.根据权利要求1所述的方法,其特征在于,所述对当前指令进行随机化处理,包括:
根据预设规则将所述当前指令划分至与其对应的指令类型中;
根据所述当前指令对应的指令类型对所述当前指令进行随机化处理。
3.根据权利要求2所述的方法,其特征在于,所述根据预设规则将所述当前指令划分至与其对应的指令类型中,包括:
将所述当前指令输入至所述待验证处理器进行处理,得到所述待验证处理器对所述当前指令的执行结果;
若所述待验证处理器对所述当前指令的执行结果使得程序计数器中的当前地址跳转至所述当前指令的地址的下一个地址,则将所述当前指令划分至第一类指令类型中;
若所述待验证处理器对所述当前指令的执行结果使得所述程序计数器中的当前地址跳转至所述当前指令的地址的下一个地址以外的地址,则将所述当前指令划分至第二类指令类型中。
4.根据权利要求3所述的方法,其特征在于,所述根据所述当前指令对应的指令类型对当前指令进行随机化处理,包括:
若所述当前指令对应的指令类型为所述第一类指令类型,则直接将所述当前指令的指令参数随机修改为预设指令参数集合中的任意一个指令参数;
若所述当前指令对应的指令类型为所述第二类指令类型,则将所述待验证处理器对所述当前指令的执行结果随机修改为预设执行结果集合中的任意一个执行结果;根据修改后的执行结果将所述当前指令的指令参数随机修改为所述预设指令参数集合中的任意一个指令参数。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述当前指令与预先保存的指令集合中的任意一条指令相同,则将所述当前指令对应的执行次数加1;
若所述当前指令与所述预先保存的指令集合中的各条指令均不相同,则将所述当前指令保存至所述预先保存的指令集合中,并将所述当前指令对应的执行次数加1;
根据所述预先保存的指令集合中的各条指令对应的执行次数以及预先确定的各个当前指令序列对应的寄存器转换级电路RTL文件,确定出所述待验证处理器的验证进度。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
根据所述预先保存的指令集合中的各条指令对应的执行次数,确定出所述预先保存的指令集合中的各条指令被验证的程度;
根据所述预先保存的指令集合中的各条指令被验证的程度,调整所述精简指令集中的各条指令被选中的概率,使得所述精简指令集中的各条指令被选取出的次数相同或者任意两条指令被抽取出的次数的差值在预设范围内。
7.一种验证处理器的装置,其特征在于,所述装置包括:选取模块、处理模块和判断模块;其中,
所述选取模块,用于按照预先设定的各条指令被选中的概率,在精简指令集中选取一条指令作为当前指令,对当前指令进行随机化处理,并将随机化处理后的当前指令加入至指令队列中;重复执行上述操作,直到加入至指令队列中的指令的数量达到预设的指令队列长度;
所述处理模块,用于将所述指令队列中的指令组合为当前指令序列,并将所述当前指令序列输入至待验证处理器进行处理,得到所述待验证处理器对所述当前指令序列的执行结果;
所述选取模块,还用于若所述待验证处理器不满足验证收敛条件,重复执行上述提取所述当前指令的操作,直到所述待验证处理器满足所述验证收敛条件;
所述判断模块,用于根据所述待验证处理器对各个当前指令序列的执行结果,判断所述待验证处理器是否存在问题。
8.根据权利要求7所述的装置,其特征在于,所述处理模块包括:划分子模块和处理子模块;其中,
所述划分子模块,用于根据预设规则将所述当前指令划分至与其对应的指令类型中;
所述处理子模块,用于根据所述当前指令对应的指令类型对所述当前指令进行随机化处理。
9.根据权利要求8所述的装置,其特征在于:
所述划分子模块,具体用于将所述当前指令输入至所述待验证处理器进行处理,得到所述待验证处理器对所述当前指令的执行结果;若所述待验证处理器对所述当前指令的执行结果使得程序计数器中的当前地址跳转至所述当前指令的地址的下一个地址,则将所述当前指令划分至第一类指令类型中;若所述待验证处理器对所述当前指令的执行结果使得所述程序计数器中的当前地址跳转至所述当前指令的地址的下一个地址以外的地址,则将所述当前指令划分至第二类指令类型中。
10.根据权利要求9所述的装置,其特征在于:
所述处理子模块,具体用于若所述当前指令对应的指令类型为所述第一类指令类型,则直接将所述当前指令的指令参数随机修改为预设指令参数集合中的任意一个指令参数;若所述当前指令对应的指令类型为所述第二类指令类型,则将所述待验证处理器对所述当前指令的执行结果随机修改为预设执行结果集合中的任意一个执行结果;根据修改后的执行结果将所述当前指令的指令参数随机修改为所述预设指令参数集合中的任意一个指令参数。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:确定模块,用于若所述当前指令与预先保存的指令集合中的任意一条指令相同,则将所述当前指令对应的执行次数加1;若所述当前指令与所述预先保存的指令集合中的各条指令均不相同,则将所述当前指令保存至所述预先保存的指令集合中,并将所述当前指令对应的执行次数加1;根据所述预先保存的指令集合中的各条指令对应的执行次数以及预先确定的各个当前指令序列对应的寄存器转换级电路RTL文件,确定出所述待验证处理器的验证进度。
12.根据权利要求11所述的装置,其特征在于:
所述确定模块,还用于根据所述预先保存的指令集合中的各条指令对应的执行次数,确定出所述预先保存的指令集合中的各条指令被验证的程度;根据所述预先保存的指令集合中的各条指令被验证的程度,调整所述精简指令集中的各条指令被选中的概率,使得所述精简指令集中的各条指令被选取出的次数相同或者任意两条指令被抽取出的次数的差值在预设范围内。
13.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010300290.7A CN111523283B (zh) | 2020-04-16 | 2020-04-16 | 一种验证处理器的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010300290.7A CN111523283B (zh) | 2020-04-16 | 2020-04-16 | 一种验证处理器的方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111523283A true CN111523283A (zh) | 2020-08-11 |
CN111523283B CN111523283B (zh) | 2023-05-26 |
Family
ID=71903644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010300290.7A Active CN111523283B (zh) | 2020-04-16 | 2020-04-16 | 一种验证处理器的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111523283B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930386A (zh) * | 2020-09-24 | 2020-11-13 | 武汉精鸿电子技术有限公司 | 一种pattern文件编译方法、装置及电子设备 |
CN113191114A (zh) * | 2021-04-30 | 2021-07-30 | 北京百度网讯科技有限公司 | 用于验证系统的方法和装置 |
CN113688046A (zh) * | 2021-08-26 | 2021-11-23 | 中国科学院上海高等研究院 | 用于处理器仿真验证的大规模用例生成方法 |
CN114579187A (zh) * | 2022-04-28 | 2022-06-03 | 飞腾信息技术有限公司 | 一种指令分配方法、装置、电子设备及可读存储介质 |
Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010025338A1 (en) * | 1998-06-05 | 2001-09-27 | The Boeing Company | Systems and methods for transient error recovery in reduced instruction set computer processors via instruction retry |
CN1436335A (zh) * | 2000-02-17 | 2003-08-13 | 坦斯利卡公司 | 用于设计可配置处理器的自动处理器生产系统及方法 |
US20080172551A1 (en) * | 2005-08-08 | 2008-07-17 | Fujitsu Limited | Operation verification method for verifying operations of a processor |
CN101510234A (zh) * | 2009-03-18 | 2009-08-19 | 中国科学院计算技术研究所 | 一种用于指令级随机验证的指令组合过滤方法及系统 |
CN101894063A (zh) * | 2010-06-13 | 2010-11-24 | 北京北大众志微系统科技有限责任公司 | 一种用于微处理器功能验证的测试程序生成方法及装置 |
US20100306476A1 (en) * | 2009-06-02 | 2010-12-02 | International Business Machines Corporation | Controlling simulation of a microprocessor instruction fetch unit through manipulation of instruction addresses |
US7984304B1 (en) * | 2004-03-02 | 2011-07-19 | Vmware, Inc. | Dynamic verification of validity of executable code |
US20120023315A1 (en) * | 2010-07-26 | 2012-01-26 | International Business Machines Corporation | Generating Hardware Events Via the Instruction Stream for Microprocessor Verification |
CN103676926A (zh) * | 2012-08-28 | 2014-03-26 | 通用汽车环球科技运作有限责任公司 | 具有随机且多次变化响应测试的安全系统和方法 |
US20140195785A1 (en) * | 2012-11-27 | 2014-07-10 | International Business Machines Corporation | Formal verification of a logic design |
JP2014164646A (ja) * | 2013-02-27 | 2014-09-08 | Hitachi Information & Telecommunication Engineering Ltd | 情報処理装置の論理検証方法及びプログラム |
US20150234966A1 (en) * | 2014-02-18 | 2015-08-20 | Codasip S.R.O. | Method and an apparatus for automatic generation of verification environment for processor design and verification |
US20150234965A1 (en) * | 2014-02-18 | 2015-08-20 | Codasip S.R.O. | Method and an apparatus for automatic processor design and verification |
US20150293835A1 (en) * | 2014-04-09 | 2015-10-15 | Sung-Boem PARK | System on chip and verification method thereof |
WO2016202157A2 (zh) * | 2015-06-16 | 2016-12-22 | 深圳市中兴微电子技术有限公司 | 一种随机测试程序生成方法及装置、设备、存储介质 |
CN107688467A (zh) * | 2016-12-23 | 2018-02-13 | 北京国睿中数科技股份有限公司 | 处理器随机指令复用的验证方法 |
US20180341480A1 (en) * | 2017-05-23 | 2018-11-29 | International Business Machines Corporation | Generating and verifying hardware instruction traces including memory data contents |
CN109240742A (zh) * | 2018-09-19 | 2019-01-18 | 东信和平科技股份有限公司 | 一种中间层架构的生成方法、装置、设备及存储介质 |
CN109740250A (zh) * | 2018-12-29 | 2019-05-10 | 湖北航天技术研究院总体设计所 | 基于uvm的fpga软件验证结果仿真波形的获取方法和系统 |
CN109885857A (zh) * | 2018-12-26 | 2019-06-14 | 苏州中晟宏芯信息科技有限公司 | 指令发射控制方法、指令执行验证方法、系统及存储介质 |
CN109933529A (zh) * | 2019-03-12 | 2019-06-25 | 苏州中晟宏芯信息科技有限公司 | 基于计算单元的验证方法及验证平台 |
CN110134580A (zh) * | 2019-04-01 | 2019-08-16 | 深圳云天励飞技术有限公司 | 处理器验证方法及相关产品 |
CN110261758A (zh) * | 2019-06-10 | 2019-09-20 | 北京中科寒武纪科技有限公司 | 待测器件验证装置及相关产品 |
CN110825440A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 指令执行方法和装置 |
CN111008041A (zh) * | 2019-12-04 | 2020-04-14 | 北京百度网讯科技有限公司 | 用于主机的命令处理方法、装置、电子设备和存储介质 |
-
2020
- 2020-04-16 CN CN202010300290.7A patent/CN111523283B/zh active Active
Patent Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010025338A1 (en) * | 1998-06-05 | 2001-09-27 | The Boeing Company | Systems and methods for transient error recovery in reduced instruction set computer processors via instruction retry |
CN1436335A (zh) * | 2000-02-17 | 2003-08-13 | 坦斯利卡公司 | 用于设计可配置处理器的自动处理器生产系统及方法 |
US7984304B1 (en) * | 2004-03-02 | 2011-07-19 | Vmware, Inc. | Dynamic verification of validity of executable code |
US20080172551A1 (en) * | 2005-08-08 | 2008-07-17 | Fujitsu Limited | Operation verification method for verifying operations of a processor |
CN101510234A (zh) * | 2009-03-18 | 2009-08-19 | 中国科学院计算技术研究所 | 一种用于指令级随机验证的指令组合过滤方法及系统 |
US20100306476A1 (en) * | 2009-06-02 | 2010-12-02 | International Business Machines Corporation | Controlling simulation of a microprocessor instruction fetch unit through manipulation of instruction addresses |
CN101894063A (zh) * | 2010-06-13 | 2010-11-24 | 北京北大众志微系统科技有限责任公司 | 一种用于微处理器功能验证的测试程序生成方法及装置 |
US20120023315A1 (en) * | 2010-07-26 | 2012-01-26 | International Business Machines Corporation | Generating Hardware Events Via the Instruction Stream for Microprocessor Verification |
CN103676926A (zh) * | 2012-08-28 | 2014-03-26 | 通用汽车环球科技运作有限责任公司 | 具有随机且多次变化响应测试的安全系统和方法 |
US20140195785A1 (en) * | 2012-11-27 | 2014-07-10 | International Business Machines Corporation | Formal verification of a logic design |
JP2014164646A (ja) * | 2013-02-27 | 2014-09-08 | Hitachi Information & Telecommunication Engineering Ltd | 情報処理装置の論理検証方法及びプログラム |
US20150234965A1 (en) * | 2014-02-18 | 2015-08-20 | Codasip S.R.O. | Method and an apparatus for automatic processor design and verification |
US20150234966A1 (en) * | 2014-02-18 | 2015-08-20 | Codasip S.R.O. | Method and an apparatus for automatic generation of verification environment for processor design and verification |
US20150293835A1 (en) * | 2014-04-09 | 2015-10-15 | Sung-Boem PARK | System on chip and verification method thereof |
WO2016202157A2 (zh) * | 2015-06-16 | 2016-12-22 | 深圳市中兴微电子技术有限公司 | 一种随机测试程序生成方法及装置、设备、存储介质 |
CN107688467A (zh) * | 2016-12-23 | 2018-02-13 | 北京国睿中数科技股份有限公司 | 处理器随机指令复用的验证方法 |
US20180341480A1 (en) * | 2017-05-23 | 2018-11-29 | International Business Machines Corporation | Generating and verifying hardware instruction traces including memory data contents |
CN110825440A (zh) * | 2018-08-10 | 2020-02-21 | 北京百度网讯科技有限公司 | 指令执行方法和装置 |
CN109240742A (zh) * | 2018-09-19 | 2019-01-18 | 东信和平科技股份有限公司 | 一种中间层架构的生成方法、装置、设备及存储介质 |
CN109885857A (zh) * | 2018-12-26 | 2019-06-14 | 苏州中晟宏芯信息科技有限公司 | 指令发射控制方法、指令执行验证方法、系统及存储介质 |
CN109740250A (zh) * | 2018-12-29 | 2019-05-10 | 湖北航天技术研究院总体设计所 | 基于uvm的fpga软件验证结果仿真波形的获取方法和系统 |
CN109933529A (zh) * | 2019-03-12 | 2019-06-25 | 苏州中晟宏芯信息科技有限公司 | 基于计算单元的验证方法及验证平台 |
CN110134580A (zh) * | 2019-04-01 | 2019-08-16 | 深圳云天励飞技术有限公司 | 处理器验证方法及相关产品 |
CN110261758A (zh) * | 2019-06-10 | 2019-09-20 | 北京中科寒武纪科技有限公司 | 待测器件验证装置及相关产品 |
CN111008041A (zh) * | 2019-12-04 | 2020-04-14 | 北京百度网讯科技有限公司 | 用于主机的命令处理方法、装置、电子设备和存储介质 |
Non-Patent Citations (6)
Title |
---|
CHANG, T.-C.等: ""A Biased Random Instruction Generation Environment for ArchitecturalVerification of Pipelined Processors"", 《JOURNAL OF ELECTRONIC TESTING RY AND APPLICATIONS 1》 * |
于伽等: "随机测试程序发生器的设计与实现", 《微电子学与计算机》 * |
吴志勇 等: ""基于伪随机技术的微处理器指令级验证"", 《高性能计算技术》 * |
姚爱红等: "16位嵌入式微处理器核的设计及验证", 《计算机工程》 * |
李炎: ""基于OSGi的家庭网关的研究和应用"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
胡海生等: ""高性能多核数字信号处理器内核验证系统设计"", 《中国集成电路》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930386A (zh) * | 2020-09-24 | 2020-11-13 | 武汉精鸿电子技术有限公司 | 一种pattern文件编译方法、装置及电子设备 |
CN111930386B (zh) * | 2020-09-24 | 2020-12-29 | 武汉精鸿电子技术有限公司 | 一种pattern文件编译方法、装置及电子设备 |
CN113191114A (zh) * | 2021-04-30 | 2021-07-30 | 北京百度网讯科技有限公司 | 用于验证系统的方法和装置 |
CN113191114B (zh) * | 2021-04-30 | 2023-11-10 | 北京百度网讯科技有限公司 | 用于验证系统的方法和装置 |
CN113688046A (zh) * | 2021-08-26 | 2021-11-23 | 中国科学院上海高等研究院 | 用于处理器仿真验证的大规模用例生成方法 |
CN113688046B (zh) * | 2021-08-26 | 2023-08-25 | 中国科学院上海高等研究院 | 用于处理器仿真验证的大规模用例生成方法 |
CN114579187A (zh) * | 2022-04-28 | 2022-06-03 | 飞腾信息技术有限公司 | 一种指令分配方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111523283B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111523283B (zh) | 一种验证处理器的方法、装置、电子设备及存储介质 | |
EP2962193B1 (en) | Compiler based obfuscation | |
US9588664B2 (en) | Continuously changing unlock pattern using moving icons | |
US9563424B2 (en) | Native code instruction selection | |
US20150294119A1 (en) | Booting a multi-node computer system from a primary node dynamically selected based on security setting criteria | |
CN111158666B (zh) | 实体归一化处理方法、装置、设备及存储介质 | |
CN111881387B (zh) | 用于小程序的数据处理方法、装置、设备和介质 | |
CN107203465A (zh) | 系统接口测试方法及装置 | |
CN111935502A (zh) | 视频处理方法、装置、电子设备以及存储介质 | |
US10838780B2 (en) | Portable hosted content | |
CN112069490B (zh) | 一种提供小程序能力的方法、装置、电子设备及存储介质 | |
CN111352833B (zh) | 推荐系统的测试方法、装置、设备和计算机存储介质 | |
CN108880700A (zh) | 时钟信号的频率跳变方法、频率跳变装置及移动终端 | |
CN111611767B (zh) | 验证方法和装置 | |
KR102583532B1 (ko) | 스케줄링 방법, 장치, 기기, 기록 매체 및 컴퓨터 프로그램 | |
CN111783644B (zh) | 检测方法、装置、设备和计算机存储介质 | |
CN111737534B (zh) | 文件处理方法、装置及设备 | |
US9336392B2 (en) | Verification of intellectual property core trusted state | |
CN112579096B (zh) | 小程序启动文件的编译、加载方法、装置、设备和介质 | |
CN112559084B (zh) | 用于治理服务的方法、装置、设备、存储介质及程序产品 | |
US11520866B2 (en) | Controlling processor instruction execution | |
CN111782497B (zh) | 测试方法、测试装置、电子设备和可读存储介质 | |
CN113377660B (zh) | 测试方法和装置 | |
CN112015468B (zh) | 一种接口文档处理方法、装置、电子设备以及存储介质 | |
CN111611768B (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 |