CN113656070A - 处理器的随机指令验证方法、装置、电子设备及存储介质 - Google Patents
处理器的随机指令验证方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113656070A CN113656070A CN202110815300.5A CN202110815300A CN113656070A CN 113656070 A CN113656070 A CN 113656070A CN 202110815300 A CN202110815300 A CN 202110815300A CN 113656070 A CN113656070 A CN 113656070A
- Authority
- CN
- China
- Prior art keywords
- file
- random instruction
- processor
- data
- random
- 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 106
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000004088 simulation Methods 0.000 claims abstract description 184
- 230000015654 memory Effects 0.000 claims abstract description 117
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010200 validation analysis Methods 0.000 claims description 10
- 230000001172 regenerating effect Effects 0.000 claims description 4
- 238000013473 artificial intelligence Methods 0.000 abstract description 15
- 238000013135 deep learning Methods 0.000 abstract description 6
- 238000003058 natural language processing Methods 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000013486 operation strategy Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003924 mental process Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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/30094—Condition code generation, e.g. Carry, Zero flag
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种处理器的随机指令验证方法、装置、电子设备及存储介质,涉及计算机技术领域,具体涉及自然语言处理和深度学习等人工智能技术领域。具体实施方案为:生成随机指令验证文件集,随机指令验证文件集包括随机指令流文件、处理器的寄存器堆初始化文件和处理器的数据存储器初始化文件;根据随机指令流文件、寄存器堆初始化文件和数据存储器初始化文件进行模拟运行,生成模拟运行数据和模拟运行结果;若模拟运行结果满足预设条件,通过处理器并根据寄存器堆初始化文件和数据存储器初始化文件,运行随机指令流文件,生成运行数据;根据运行数据和模拟运行数据对随机指令流文件进行验证。由此,能够提高处理器随机指令验证的效率和精度。
Description
技术领域
本公开涉及计算机技术领域,具体涉及自然语言处理和深度学习等人 工智能技术领域,尤其涉及一种处理器的随机指令验证方法、装置和电子 设备及存储介质。
背景技术
如今AI处理器被设计得越来越复杂以满足AI模型和算法对精度和性 能的近乎苛刻的需求,芯片规模和工艺的提升带来研发和流片成本倍数增 加,对芯片质量要求非常高,需要完备精准的验证策略和验证方法。
相关技术中,AI处理器的验证方法通常有指令功能定向测试、指令 一致性测试、基准测试、大型软件测试和依赖于工具链的随机验证等。
发明内容
本公开提供了一种用于处理器的随机指令验证方法、装置、电子设备 及存储介质。
根据本公开的一方面,提供了一种处理器的随机指令验证方法,包括:
生成随机指令验证文件集,其中,所述随机指令验证文件集包括随机 指令流文件、处理器的寄存器堆初始化文件和所述处理器的数据存储器初 始化文件;
根据所述随机指令流文件、所述寄存器堆初始化文件和所述数据存储 器初始化文件进行模拟运行,以生成模拟运行数据和模拟运行结果;
若所述模拟运行结果满足预设条件,则通过所述处理器并根据所述寄 存器堆初始化文件和所述数据存储器初始化文件,运行所述随机指令流文 件,以生成运行数据;以及
根据所述运行数据和所述模拟运行数据对所述随机指令流文件进行 验证。
根据本公开的另一方面,提供了一种处理器的随机指令验证装置,包 括:
生成模块,用于生成随机指令验证文件集,其中,所述随机指令验证 文件集包括随机指令流文件、处理器的寄存器堆初始化文件和所述处理器 的数据存储器初始化文件;
模拟运行模块,用于根据所述随机指令流文件、所述寄存器堆初始化 文件和所述数据存储器初始化文件进行模拟运行,以生成模拟运行数据和 模拟运行结果;
运行模块,用于若所述模拟运行结果满足预设条件,则通过所述处理 器,并根据所述寄存器堆初始化文件和所述数据存储器初始化文件,运行 所述随机指令流文件,以生成运行数据;以及
验证模块,用于根据所述运行数据和所述模拟运行数据对所述随机指 令流文件进行验证。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被 所述至少一个处理器执行,以使所述至少一个处理器能够执行上述一方面 实施例所述的处理器的随机指令验证方法。
根据本公开另一方面,提供了一种存储有计算机指令的非瞬时计算机 可读存储介质,其上存储有计算机程序,所述计算机指令用于使所述计算 机执行上述一方面实施例所述的处理器的随机指令验证方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程 序,所述计算机程序被处理器执行时实现上述一方面实施例所述的处理器 的随机指令验证方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键 或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下 的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1为本公开实施例提供的一种处理器的随机指令验证方法的流程示 意图;
图2为本公开实施例提供的一种处理器的随机指令验证方法的时序示 意图;
图3为本公开实施例提供的一种处理器的随机指令验证方法的环境框 架示意图;
图4为本公开实施例提供的另一种处理器的随机指令验证方法的流程 示意图;
图5为本公开实施例提供的另一种处理器的随机指令验证方法的流程 示意图;
图6为本公开实施例提供的另一种处理器的随机指令验证方法的流程 示意图;
图7为本公开实施例提供的另一种处理器的随机指令验证方法的流程 示意图;
图8为本公开实施例提供的另一种处理器的随机指令验证方法的流程 示意图;
图9为本公开实施例提供的一种处理器的随机指令验证装置的结构示 意图;
图10是用来实现本公开实施例的一种处理器的随机指令验证方法的 电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实 施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本 领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和 修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的 描述中省略了对公知功能和结构的描述。
下面参考附图描述本公开实施例的处理器的随机指令验证方法、装置 和电子设备。
人工智能是研究使用计算机来模拟人的某些思维过程和智能行为(如 学习、推理、思考、规划等)的学科,既有硬件层面的技术领域也有软件 层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、 云计算、分布式存储、大数据处理等技术;人工智能软件技术包括计算机 视觉技术、语音识别技术、自然语言处理技术以及深度学习、大数据处理 技术、知识图谱技术等几大方向。
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。 它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方 法。自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
深度学习是机器学习领域中一个新的研究方向。深度学习是学习样本 数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图 像和声音等数据的解释有很大的帮助。它的最终目标是让机器能够像人一 样具有分析学习能力,能够识别文字、图像和声音等数据。深度学习是一 个复杂的机器学习算法,在语音和图像识别方面取得的效果,远远超过先 前相关技术。
本公开实施例提供的处理器的随机指令验证方法,可以由电子设备来 执行,该电子设备可为PC(Personal Computer,个人计算机)电脑、平板 电脑、服务器等,此处不做任何限定。
在本公开实施例中,电子设备中可以设置有处理组件、存储组件和驱 动组件。可选的,该驱动组件和处理组件可以集成设置,该存储组件可以 存储操作***、应用程序或其他程序模块,该处理组件通过执行存储组件 中存储的应用程序来实现本公开实施例提供的处理器的随机指令验证方 法。
图1为本公开实施例提供的一种处理器的随机指令验证方法的流程示 意图。
本公开实施例的处理器的随机指令验证方法,还可由本公开实施例提 供的处理器的随机指令验证装置执行,该装置可配置于电子设备中,以实 现生成随机指令验证文件集,并根据随机指令流文件、寄存器堆初始化文 件和数据存储器初始化文件进行模拟运行,以生成模拟运行数据和模拟运 行结果,若模拟运行结果满足预设条件,则通过处理器并根据寄存器堆初 始化文件和数据存储器初始化文件,运行随机指令流文件,以生成运行数 据,并根据运行数据和模拟运行数据对随机指令流文件进行验证,从而能 够提高处理器随机指令验证的效率和精度。
作为一种可能的情况,本公开实施例的处理器的随机指令验证方法还 可以在服务器端执行,服务器可以为云服务器,可以在云端执行该处理器 的随机指令验证方法。
如图1所示,该处理器的随机指令验证方法,可包括:
步骤101,生成随机指令验证文件集,其中,随机指令验证文件集包 括随机指令流文件、处理器的寄存器堆初始化文件和处理器的数据存储器 初始化文件。
需要说明的是,该实施例中所描述的随机指令流文件、处理器的寄存 器堆初始化文件和处理器的数据存储器初始化文件均可为.dat(DATA,数 据)文件,其中,.dat并不是一种标准文件。许多文件都可使用这个扩展 名,但文件含义不同。
在本公开实施例中,如图2和图3所示,可通过随机指令发生器生成 随机指令验证文件集。应说明的是,该实施例中所描述的随机指令发生器 可为一种软件程序(即,随机指令发生程序)。
具体地,参见图2和图3,电子设备可通过内置的随机指令发生器从 指令集中随机挑选指令,以生成随机指令流文件,同时生成处理器的寄存 器堆初始化文件和数据存储器初始化文件。
需要说明的是,该实施例中所描述的指令集可为相关人员根据验证需 求提前生成好的,并将其预设在电子设备的存储空间中,以便使用时调用。 其中,该存储空间不仅限于基于实体的存储空间,例如,硬盘,上述存储 空间还可以是连接服务器的云存储空间。
举例而言,参见图3,假设上述的随机指令流文件为instruction.dat, 处理器的寄存器堆初始化文件为reg_init.dat,处理器的寄存器堆初始化文 件为mem_init.dat,且该随机指令流文件、处理器的寄存器堆初始化文件 和处理器的数据存储器初始化文件中的数据均为十六进制,则 instruction.dat、reg_init.dat和mem_init.dat的具体描述如下:
①、instruction.dat:随机指令流文件,可用于初始化指令存储器,该 随机指令流文件中的每行可代表1条指令,可按指针值递增排列:
02003000
……
7ff1111b
②、reg_init.dat:处理器的寄存器堆初始化文件,该寄存器堆初始化 文件中的每行可代表一个寄存器的初始化数据,可按寄存器号递增排列:
f323bad1
……
23dc0ab8
③、mem_init.dat:处理器的数据存储器初始化文件,该数据存储器 初始化文件中的每行数据可代表一个存储器一行的初始化数据,可按存储 器地址递增排列:
1030f0bc
……
049a0dc1
步骤102,根据随机指令流文件、寄存器堆初始化文件和数据存储器 初始化文件进行模拟运行,以生成模拟运行数据和模拟运行结果。应说明 的是,该实施例中所描述的模拟运行可以是基于程序完成的。
在本公开实施例中,可基于预设的模拟运行策略,并根据随机指令流 文件、寄存器堆初始化文件和数据存储器初始化文件进行模拟运行,以生 成模拟运行数据和模拟运行结果。其中,预设的模拟运行策略可根据实际 情况进行标定,且该预设的模拟运行策略可预设在电子设备的存储空间中, 以便使用时调用。
具体地,电子设备在生成随机指令验证文件集之后,可从自身的存储 空间中调出预设的模拟运行策略,并基于预设的模拟运行策略,并根据随 机指令流文件、寄存器堆初始化文件和数据存储器初始化文件进行模拟运 行,以生成模拟运行数据和模拟运行结果。
需要说明的是,该实施例中所描述的模拟运行数据中可包括模拟运行 (程序执行)过程中的指针值和对应的指令流文件、模拟运行结束后寄存 器堆的结果数据文件和模拟运行结束后数据存储器的结果数据文件。该实 施例中所描述的模拟运行结果可为模拟运行成功或模拟运行失败。
举例而言,参见图3,假设上述的随机指令流文件、处理器的寄存器 堆初始化文件和处理器的数据存储器初始化文件中的数据均为十六进制, 指针值和对应的指令流文件为instr_dump.dat、寄存器堆的结果数据文件为 reg_dump.dat、数据存储器的结果数据文件为mem_dump.dat,则 instr_dump.dat、reg_dump.dat和mem_dump.dat的具体描述如下:
①、instr_dump.dat,该文件可包括模拟运行过程中的指针值和指令流, 该文件中的每行可代表一个指针值和对应的1条指令,且可按模拟运行过 程排列:
00000000:02003000
……
000007fc:7ff1111b
②、reg_dump.dat,该文件可包括模拟运行结束后寄存器堆的结果数 据,该文件中的每行可代表一个寄存器的数据,且可按寄存器号递增排列:
4f3eba17
……
19efdc80
③、mem_dump.dat,该文件可包括模拟运行结束后数据存储器的结果 数据,该文件每行数据可代表一个存储器一行的结果数据,且可按存储器 地址递增排列:
429a13fc
……
b92a8d12
作为一种可能的情况,该实施例中所描述的模拟运行数据还可仅包括 模拟运行结束后寄存器堆的结果数据文件和模拟运行结束后数据存储器 的结果数据文件。
步骤103,若模拟运行结果满足预设条件,则通过处理器并根据寄存 器堆初始化文件和数据存储器初始化文件,运行随机指令流文件,以生成 运行数据。其中,预设条件可根据实际情况进行标定,例如,该预设条件 可为模拟运行成功。
需要说明的是,上述实施例中所描述的处理器可为AI处理器,其中, 该AI处理器可为一种AI芯片,参见图3,该AI芯片可包括寄存器和数 据存储器。
在本公开实施例中,可将上述的随机指令流文件、处理器的寄存器堆 初始化文件和处理器的数据存储器初始化文件输入至处理器,从而通过处 理器并根据寄存器堆初始化文件和数据存储器初始化文件,运行随机指令 流文件,以生成运行数据。
具体地,参见图2,电子设备在得到模拟运行数据和模拟运行结果之 后,可先判断该模拟运行结果是否满足预设条件,例如,判断本次模拟运 行是否模拟运行成功。如果是,则说明本次模拟运行成功了,此时电子设 备可将上述的随机指令流文件、处理器的寄存器堆初始化文件和处理器的 数据存储器初始化文件输入至处理器。然后处理器可依次运行该随机指令 流文件中的指令,以生成运行数据,其中,在处理器依次运行该随机指令 流文件中的指令的过程中,需要调用该寄存器堆初始化文件和该数据存储 器初始化文件中的数据。
进一步而言,参加图3,处理器在接收到上述的随机指令流文件、处 理器的寄存器堆初始化文件和处理器的数据存储器初始化文件之后,可将 该寄存器堆初始化文件放入寄存器中,并将数据存储器初始化文件放入数 据存储器,然后依次运行该随机指令流文件中的指令,并在执行该指令的 过程中,调用放入寄存器和数据存储器中的文件(数据),以生成运行数 据。
需要说明的是,该实施例中所描述的运行数据中可包括处理器运行 (程序执行)指令过程中的指针值和对应的指令流文件、处理器运行指令 结束后寄存器堆的结果数据文件和处理器运行指令结束后数据存储器的 结果数据文件。
作为一种可能的情况,该实施例中所描述的运行数据中还可仅包括处 理器运行指令结束后寄存器堆的结果数据文件和处理器运行指令结束后 数据存储器的结果数据文件。
步骤104,根据运行数据和模拟运行数据对随机指令流文件进行验证。
在本公开实施例中,可基于预设的验证策略,并根据运行数据和模拟 运行数据对随机指令流文件进行验证。其中,预设的验证策略可根据实际 情况进行标定,且该预设的验证策略可预设在电子设备的存储空间中,以 便使用时调用。
具体地,参见图2和图3,电子设备在得到上述的运行数据之后,可 通过对比单元从电子设备的存储空间中调出预设的验证策略,并基于预设 的验证策略,并根据运行数据和模拟运行数据对随机指令流文件进行验证, 从而验证上述处理器的质量。其中,对比单元可设置在该电子设备内,也 可设置在上述的处理器内,此处不做任何限定。
在本公开实施例中,首先生成随机指令验证文件集,并根据随机指令 流文件、寄存器堆初始化文件和数据存储器初始化文件进行模拟运行,以 生成模拟运行数据和模拟运行结果,若模拟运行结果满足预设条件,则通 过处理器并根据寄存器堆初始化文件和数据存储器初始化文件,运行随机 指令流文件,以生成运行数据,然后根据运行数据和模拟运行数据对随机 指令流文件进行验证。由此,能够提高处理器的随机指令验证的效率和精度。
为了清楚的说明上一实施例,在本公开的一个实施例中,如图4所示, 生成随机指令验证文件集,可包括:
步骤401,调用随机指令发生器从指令集中随机挑选指令,以生成随 机指令流文件。
步骤402,根据随机指令流文件生成寄存器堆初始化文件和数据存储 器初始化文件。
具体地,参见图2和图3,电子设备可通过内置的随机指令发生器从 指令集中随机挑选指令,以生成随机指令流文件,并根据该随机指令流文 件生成寄存器堆初始化文件和数据存储器初始化文件。
作为一种可能的情况,还可根据生成模型对随机指令流文件进行处理, 以生成寄存器堆初始化文件和数据存储器初始化文件。
需要说明的是,该实施例中所描述的生成模型可以是提前训练好的, 并将其预存在服务器的存储空间中,以方便调取应用。
其中,该生成模型的训练与生成均可由相关的训练服务器执行,该训 练服务器可以是云端服务器,也可以是一台电脑的主机,该训练服务器与 可执行本公开实施例提供的处理器的随机指令验证方法的电子设备之间, 建立有通信连接,该通信连接可以是无线网络连接和有线网络连接的至少 一种。该训练服务器可将训练完成的生成模型发送给该电子设备,以便该 电子设备在需要时调用,从而大大减少该电子设备的计算压力。
具体地,参见图2和图3,电子设备可通过内置的随机指令发生器生 成随机指令流文件之后,可从自身的存储空间中调出生成模型,并将该随 机指令流文件输入至该生成模型,从而通过该生成模型对该随机指令流文 件进行处理,以得到该生成模型输出的寄存器堆初始化文件和数据存储器 初始化文件。
作为另一种可能的情况,电子设备还可根据预设的生成算法和随机指 令流文件生成寄存器堆初始化文件和数据存储器初始化文件。其中,预设 的生成算法可根据实际情况进行标定。
步骤403,根据随机指令流文件、寄存器堆初始化文件和数据存储器 初始化文件生成随机指令验证文件集。
具体地,电子设备在得到寄存器堆初始化文件和数据存储器初始化文 件之后,可将该随机指令流文件、寄存器堆初始化文件和数据存储器初始 化文件整合成一个文件集,即随机指令验证文件集。由此,可为处理器的 随机指令验证提供优质的数据保障。
为了清楚的说明上一实施例,在本公开的一个实施例中,如图5所示, 调用随机指令发生器从指令集中随机挑选指令,以生成随机指令流文件, 可包括:
步骤501,调用随机指令发生器从指令集中随机挑选指令,以生成随 机指令流,其中,随机指令流包括至少一个指令序列。应说明的是,该实 施例中所描述的随机指令发生器可预存在电子设备的存储空间中,以便在 使用时调用。
在本公开实施例中,电子设备在调用随机指令发生器从指令集中随机 挑选指令的过程中,还可根据挑选出的指令的类型施加相应的约束,从而 使挑选出的指令可被运行。
步骤502,当随机指令流的长度达到长度阈值时,将随机指令流转化 为随机指令流文件。其中,长度阈值可根据实际情况进行标定,例如,长 度阈值可为100。
需要说明的是,该实施例中所描述的随机指令流的长度可为随机指令 流中指令的数量(数目)。
具体地,参见图2和图3,电子设备可从自身的存储空间中调出随机 指令发生器,并通过该随机指令发生器从指令集中随机挑选指令,并在挑 选出的指令的数量达到长度阈值时,生成随机指令流,以及将该随机指令 流转化为随机指令流文件。由此,通过限制随机指令流文件中指令的数量, 可以进一步提高处理器随机指令验证的效率和精度。
在本公开的一个实施例中,如图6所示,根据随机指令流文件、寄存 器堆初始化文件和数据存储器初始化文件进行模拟运行,以生成模拟运行 数据和模拟运行结果,可包括:
步骤601,获取模拟器。
需要说明的是,该实施例中所描述的模拟器可为一种软件程序(即, 模拟器程序),且该模拟器可预存在电子设备的存储空间中,以方便调取 应用,其中,参见图3,该模拟器中可包括模拟的寄存器和数据存储器, 以模仿处理器的指令运行环境。
步骤602,将随机指令流文件、寄存器堆初始化文件和数据存储器初 始化文件输入至模拟器。
步骤603,通过模拟器,并根据寄存器堆初始化文件和数据存储器初 始化文件,模拟运行随机指令流文件,以生成模拟运行数据和模拟运行结 果。
具体地,参见图2和图3,电子设备在得到随机指令验证文件集之后, 可从自身的存储空间中调出(获取)模拟器,并将该随机指令验证文件集 中的随机指令流文件、处理器的寄存器堆初始化文件和处理器的数据存储 器初始化文件输入至模拟器,然后模拟器可依次运行该随机指令流文件中 的指令,以生成模拟运行数据,其中,在模拟器依次运行该随机指令流文 件中的指令的过程中,需要调用该寄存器堆初始化文件和该数据存储器初始化文件中的数据。由此,以保证模拟器与处理器的验证环境相同。
在本公开的一个实施例中,如图7所示,随机指令验证方法,还可包 括:
步骤701,若模拟运行结果不满足预设条件,则重新生成随机指令验 证文件集。
步骤702,根据重新生成的随机指令验证文件集进行模拟运行,以重 新生成模拟运行数据和模拟运行结果,直至重新生成的模拟运行结果满足 预设条件。
具体地,参见图2,电子设备在判断上述的模拟运行结果不满足预设 条件时,说明本次模拟运行失败了(例如,模拟运行中途停止了),此时 电子设备可从自身的存储空间中重新调出随机指令发生器,并通过该随机 指令发生器重新从指令集中随机挑选指令,以生成随机指令流文件。然后 电子设备可根据重新生成的随机指令验证文件集进行模拟运行,以重新生 成模拟运行数据和模拟运行结果,并继续判断该模拟运行结果是否满足预 设条件,如果否,则再次重新生成随机指令验证文件集,直至重新生成随 机指令验证文件集。由此,能够获得正确的模拟运行结果,保证最终验证 结果的准确性。
在本公开实施例中,参见图3,若判断模拟运行结果不满足预设条件, 电子设备则可先接收相关人员通过内置的调试工具对模拟器和/或随机指 令发生器进行调试或修改,而后再重新生成随机指令验证文件集,从而进 一步提高处理器随机指令验证的精度。其中,该调试工具可预先安装在电 子设备的存储空间中,以方便在使用时调取。
在本公开的一个实施例中,如图8所示,根据运行数据和模拟运行数 据对随机指令流文件进行验证,可包括:
步骤801,将运行数据和模拟运行数据进行比对,以生成比对结果。
具体地,电子设备在得到上述的运行数据之后,可分别对该运行数据 和模拟运行数据进行解析,以获取该运行数据中的处理器运行指令结束后 寄存器堆的结果数据文件和处理器运行指令结束后数据存储器的结果数 据文件,以及该模拟运行数据中的模拟运行结束后寄存器堆的结果数据文 件和模拟运行结束后数据存储器的结果数据文件。然后电子设备可分别比 对处理器运行指令结束后寄存器堆的结果数据文件和模拟运行结束后寄 存器堆的结果数据文件,以及处理器运行指令结束后数据存储器的结果数 据文件和模拟运行结束后数据存储器的结果数据文件之中的数据,并生成 相应的比对结果。
举例而言,参见图3,运行数据和模拟运行数据的比对,可以是对模 拟器输出的reg_dump.dat文件、mem_dump.dat文件和运行器输出的 reg_dump.dat文件、mem_dump.dat文件之间的比对。
步骤802,根据比对结果对随机指令流文件进行验证。
具体地,电子设备在得到比对结果之后,可根据比对结果对随机指令 流文件进行验证。例如,比对结果显示运行数据和模拟运行数据之间100% 相同,则可判定处理器的随机指令的执行功能正常。
作为一种可实现的方式,为了避免运行环境所带来的误差,当比对结 果显示运行数据和模拟运行数据之间95%以上相同时,可则可判定处理器 的随机指令的执行功能正常,否则,可判定处理器的随机指令的执行功能 不正常。
由此,可以能实现寄存器级的比对,验证精度高,且指令集的变动对 验证环境的冲击小,能做到快速部署。
在本公开实施例中,参见图3,若判定处理器的随机指令的执行功能 不正常,则可通过上述的调试工具对处理器、模拟器和/或随机指令发生器 进行调试或修改,并重新进行下一轮的验证,从而能够有针对性的优化处 理器的随机指令执行的功能。
根据本公开实施例的处理器的随机指令验证方法,首先生成随机指令 验证文件集,并根据随机指令流文件、寄存器堆初始化文件和数据存储器 初始化文件进行模拟运行,以生成模拟运行数据和模拟运行结果,若模拟 运行结果满足预设条件,则通过处理器并根据寄存器堆初始化文件和数据 存储器初始化文件,运行随机指令流文件,以生成运行数据,然后根据运 行数据和模拟运行数据对随机指令流文件进行验证。由此,能够提高处理 器的随机指令验证的效率和精度。
图9为本公开实施例提供的一种处理器的随机指令验证装置的结构示 意图。
本公开实施例的处理器的随机指令验证装置,可配置于电子设备中, 以实现生成随机指令验证文件集,并根据随机指令流文件、寄存器堆初始 化文件和数据存储器初始化文件进行模拟运行,以生成模拟运行数据和模 拟运行结果,若模拟运行结果满足预设条件,则通过处理器并根据寄存器 堆初始化文件和数据存储器初始化文件,运行随机指令流文件,以生成运 行数据,并根据运行数据和模拟运行数据对随机指令流文件进行验证,从而能够提高处理器随机指令验证的效率和精度。
如图9所示,该处理器的随机指令验证装置900,可包括:生成模块 910、模拟运行模块920、运行模块930、验证模块940。
其中,生成模块910,用于生成随机指令验证文件集,其中,随机指 令验证文件集包括随机指令流文件、处理器的寄存器堆初始化文件和处理 器的数据存储器初始化文件。
需要说明的是,该实施例中所描述的随机指令流文件、处理器的寄存 器堆初始化文件和处理器的数据存储器初始化文件均可为.dat(DATA,数 据)文件,其中,.dat并不是一种标准文件。许多文件都可使用这个扩展 名,但文件含义不同。
在本公开实施例中,生成模块910可通过调用随机指令发生器生成随 机指令验证文件集。应说明的是,该实施例中所描述的随机指令发生器可 为一种软件程序(即,随机指令发生程序)。
具体地,生成模块910可通过调用随机指令发生器从指令集中随机挑 选指令,以生成随机指令流文件,同时生成处理器的寄存器堆初始化文件 和数据存储器初始化文件。
需要说明的是,该实施例中所描述的指令集可为相关人员根据验证需 求提前生成好的,并将其预设在电子设备的存储空间中,以便生成模块910 使用时调用。其中,该存储空间不仅限于基于实体的存储空间,例如,硬 盘,上述存储空间还可以是连接服务器的云存储空间。
举例而言,假设上述的随机指令流文件为instruction.dat,处理器的寄 存器堆初始化文件为reg_init.dat,处理器的寄存器堆初始化文件为 mem_init.dat,且该随机指令流文件、处理器的寄存器堆初始化文件和处理 器的数据存储器初始化文件中的数据均为十六进制,则instruction.dat、 reg_init.dat和mem_init.dat的具体描述如下:
①、instruction.dat:随机指令流文件,可用于初始化指令存储器,该 随机指令流文件中的每行可代表1条指令,可按指针值递增排列:
02003000
……
7ff1111b
②、reg_init.dat:处理器的寄存器堆初始化文件,该寄存器堆初始化 文件中的每行可代表一个寄存器的初始化数据,可按寄存器号递增排列:
f323bad1
……
23dc0ab8
③、mem_init.dat:处理器的数据存储器初始化文件,该数据存储器 初始化文件中的每行数据可代表一个存储器一行的初始化数据,可按存储 器地址递增排列:
1030f0bc
……
049a0dc1
模拟运行模块920,用于根据随机指令流文件、寄存器堆初始化文件 和数据存储器初始化文件进行模拟运行,以生成模拟运行数据和模拟运行 结果。应说明的是,该实施例中所描述的模拟运行可以是基于程序完成的。
在本公开实施例中,模拟运行模块920可基于预设的模拟运行策略, 并根据随机指令流文件、寄存器堆初始化文件和数据存储器初始化文件进 行模拟运行,以生成模拟运行数据和模拟运行结果。其中,预设的模拟运 行策略可根据实际情况进行标定,且该预设的模拟运行策略可预设在电子 设备的存储空间中,以便模拟运行模块920使用时调用。
具体地,在生成模块910生成随机指令验证文件集之后,模拟运行模 块920可从电子设备的存储空间中调出预设的模拟运行策略,并基于预设 的模拟运行策略,并根据随机指令流文件、寄存器堆初始化文件和数据存 储器初始化文件进行模拟运行,以生成模拟运行数据和模拟运行结果。
需要说明的是,该实施例中所描述的模拟运行数据中可包括模拟运行 (程序执行)过程中的指针值和对应的指令流文件、模拟运行结束后寄存 器堆的结果数据文件和模拟运行结束后数据存储器的结果数据文件。该实 施例中所描述的模拟运行结果可为模拟运行成功或模拟运行失败。
举例而言,假设上述的随机指令流文件、处理器的寄存器堆初始化文 件和处理器的数据存储器初始化文件中的数据均为十六进制,指针值和对 应的指令流文件为instr_dump.dat、寄存器堆的结果数据文件为 reg_dump.dat、数据存储器的结果数据文件为mem_dump.dat,则 instr_dump.dat、reg_dump.dat和mem_dump.dat的具体描述如下:
①、instr_dump.dat,该文件可包括模拟运行过程中的指针值和指令流, 该文件中的每行可代表一个指针值和对应的1条指令,且可按模拟运行过 程排列:
00000000:02003000
……
000007fc:7ff1111b
②、reg_dump.dat,该文件可包括模拟运行结束后寄存器堆的结果数 据,该文件中的每行可代表一个寄存器的数据,且可按寄存器号递增排列:
4f3eba17
……
19efdc80
③、mem_dump.dat,该文件可包括模拟运行结束后数据存储器的结果 数据,该文件每行数据可代表一个存储器一行的结果数据,且可按存储器 地址递增排列:
429a13fc
……
b92a8d12
作为一种可能的情况,该实施例中所描述的模拟运行数据还可仅包括 模拟运行结束后寄存器堆的结果数据文件和模拟运行结束后数据存储器 的结果数据文件。
运行模块930,用于若模拟运行结果满足预设条件,则通过处理器并 根据寄存器堆初始化文件和数据存储器初始化文件,运行随机指令流文件, 以生成运行数据。其中,预设条件可根据实际情况进行标定,例如,该预 设条件可为模拟运行成功。
需要说明的是,该实施例中所描述的处理器可为AI处理器。
在本公开实施例中,运行模块930可将上述的随机指令流文件、处理 器的寄存器堆初始化文件和处理器的数据存储器初始化文件输入至处理 器,从而通过处理器并根据寄存器堆初始化文件和数据存储器初始化文件, 运行随机指令流文件,以生成运行数据。
具体地,在模拟运行模块920得到模拟运行数据和模拟运行结果之后, 运行模块930可先判断该模拟运行结果是否满足预设条件,例如,判断本 次模拟运行是否模拟运行成功。如果是,则说明本次模拟运行成功了,此 时运行模块930可将上述的随机指令流文件、处理器的寄存器堆初始化文 件和处理器的数据存储器初始化文件输入至处理器。然后处理器可依次运 行该随机指令流文件中的指令,以生成运行数据,其中,在处理器依次运行该随机指令流文件中的指令的过程中,需要调用该寄存器堆初始化文件 和该数据存储器初始化文件中的数据。
需要说明的是,该实施例中所描述的运行数据中可包括处理器运行 (程序执行)指令过程中的指针值和对应的指令流文件、处理器运行指令 结束后寄存器堆的结果数据文件和处理器运行指令结束后数据存储器的 结果数据文件。
作为一种可能的情况,该实施例中所描述的运行数据中还可仅包括处 理器运行指令结束后寄存器堆的结果数据文件和处理器运行指令结束后 数据存储器的结果数据文件。
验证模块940,用于根据运行数据和模拟运行数据对随机指令流文件 进行验证。
在本公开实施例中,验证模块940可基于预设的验证策略,并根据运 行数据和模拟运行数据对随机指令流文件进行验证。其中,预设的验证策 略可根据实际情况进行标定,且该预设的验证策略可预设在电子设备的存 储空间中,以便验证模块940使用时调用。
具体地,在运行模块930得到上述的运行数据之后,验证模块940可 通过对比单元从电子设备的存储空间中调出预设的验证策略,并基于预设 的验证策略,并根据运行数据和模拟运行数据对随机指令流文件进行验证, 从而验证上述处理器的质量。其中,对比单元可设置在该电子设备内,也 可设置在上述的处理器内,此处不做任何限定。
在本公开实施例中,通过生成模块生成随机指令验证文件集,并通过 模拟运行模块根据随机指令流文件、寄存器堆初始化文件和数据存储器初 始化文件进行模拟运行,以生成模拟运行数据和模拟运行结果,若模拟运 行结果满足预设条件,则使运行模块通过处理器并根据寄存器堆初始化文 件和数据存储器初始化文件,运行随机指令流文件,以生成运行数据,然 后通过验证模块根据运行数据和模拟运行数据对随机指令流文件进行验证。由此,能够提高处理器的随机指令验证的效率和精度。
在本公开的一个实施例中,如图9所示,生成模块910,可包括:第 一生成单元911、第二生成单元912和第三生成单元913。
其中,第一生成单元911,用于调用随机指令发生器从指令集中随机 挑选指令,以生成随机指令流文件。
第二生成单元912,用于根据随机指令流文件生成寄存器堆初始化文 件和数据存储器初始化文件。
第三生成单元913,用于根据随机指令流文件、寄存器堆初始化文件 和数据存储器初始化文件生成随机指令验证文件集。
在本公开的一个实施例中,第一生成单元911,具体用于:调用随机 指令发生器从指令集中随机挑选指令,以生成随机指令流,其中,随机指 令流包括至少一个指令序列;当随机指令流的长度达到长度阈值时,将随 机指令流转化为随机指令流文件。
在本公开的一个实施例中,模拟运行模块920,具体用于:获取模拟 器;将随机指令流文件、寄存器堆初始化文件和数据存储器初始化文件输 入至模拟器;通过模拟器并根据寄存器堆初始化文件和数据存储器初始化 文件,模拟运行随机指令流文件,以生成模拟运行数据和模拟运行结果。
在本公开的一个实施例中,运行模块930,还用于:若模拟运行结果 不满足预设条件,则重新生成随机指令验证文件集;根据重新生成的随机 指令验证文件集进行模拟运行,以重新生成模拟运行数据和模拟运行结果, 直至重新生成的模拟运行结果满足预设条件。
在本公开的一个实施例中,验证模块940,具体用于:将运行数据和 模拟运行数据进行比对,以生成比对结果;根据比对结果对随机指令流文 件进行验证。
需要说明的是,前述对处理器的随机指令验证方法实施例的解释说明 也适用于该实施例的处理器的随机指令验证装置,此处不再赘述。
本公开实施例的处理器的随机指令验证装置,通过生成模块生成随机 指令验证文件集,并通过模拟运行模块根据随机指令流文件、寄存器堆初 始化文件和数据存储器初始化文件进行模拟运行,以生成模拟运行数据和 模拟运行结果,若模拟运行结果满足预设条件,则使运行模块通过处理器 并根据寄存器堆初始化文件和数据存储器初始化文件,运行随机指令流文 件,以生成运行数据,然后通过验证模块根据运行数据和模拟运行数据对随机指令流文件进行验证。由此,能够提高处理器的随机指令验证的效率 和精度。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等, 均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储 介质和一种计算机程序产品。
图10示出了可以用来实施本公开的实施例的示例电子设备1000的示 意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算 机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型 计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置, 诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计 算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为 示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读 存储器(ROM)1002中的计算机程序或者从存储单元1006载到随机访问 存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。 在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算 单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输 出(I/O)接口1005也连接至总线1004。
设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006 如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存 储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制 解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特 网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理 组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、 图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行 机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当 的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个 方法和处理,例如处理器的随机指令验证方法。例如,在一些实施例中, 处理器的随机指令验证方法可被实现为计算机软件程序,其被有形地包含 于机器可读介质,例如存储单元1006些实施例中,计算机程序的部分或 者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到设备 1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可 以执行上文描述的处理器的随机指令验证方法的一个或多个步骤。备选地, 在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如, 借助于固件)而被配置为执行处理器的随机指令验证方法。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路 ***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、 专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设 备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些 各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者 多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/ 或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储 ***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将 数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出 装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的 任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其 他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控 制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可 以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机 器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含 或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设 备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读 储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电 磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组 合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、 可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑 盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的 任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术, 该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线 管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠 标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算 机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的 反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉 反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入) 来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如, 作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、 或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器 的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处 描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部 件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络 的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此 并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具 有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器 可以是云服务器,也可以为分布式***的服务器,或者是结合了区块链的 服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或 删除步骤。例如,公开中记载的各步骤可以并行地执行也可以顺序地执行 也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结 果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术 人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、 子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和 改进等,均应包含在本公开保护范围之内。
Claims (15)
1.一种处理器的随机指令验证方法,包括:
生成随机指令验证文件集,其中,所述随机指令验证文件集包括随机指令流文件、处理器的寄存器堆初始化文件和所述处理器的数据存储器初始化文件;
根据所述随机指令流文件、所述寄存器堆初始化文件和所述数据存储器初始化文件进行模拟运行,以生成模拟运行数据和模拟运行结果;
若所述模拟运行结果满足预设条件,则通过所述处理器并根据所述寄存器堆初始化文件和所述数据存储器初始化文件,运行所述随机指令流文件,以生成运行数据;以及
根据所述运行数据和所述模拟运行数据对所述随机指令流文件进行验证。
2.根据权利要求1所述的方法,其中,所述生成随机指令验证文件集,包括:
调用随机指令发生器从指令集中随机挑选指令,以生成所述随机指令流文件;
根据所述随机指令流文件生成所述寄存器堆初始化文件和所述数据存储器初始化文件;
根据所述随机指令流文件、所述寄存器堆初始化文件和所述数据存储器初始化文件生成所述随机指令验证文件集。
3.根据权利要求2所述的方法,其中,所述调用随机指令发生器从指令集中随机挑选指令,以生成所述随机指令流文件,包括:
调用所述随机指令发生器从所述指令集中随机挑选指令,以生成随机指令流,其中,所述随机指令流包括至少一个指令序列;
当所述随机指令流的长度达到长度阈值时,将所述随机指令流转化为所述随机指令流文件。
4.根据权利要求1所述的方法,其中,所述根据所述随机指令流文件、所述寄存器堆初始化文件和所述数据存储器初始化文件进行模拟运行,以生成模拟运行数据和模拟运行结果,包括:
获取模拟器;
将所述随机指令流文件、所述寄存器堆初始化文件和所述数据存储器初始化文件输入至所述模拟器;
通过所述模拟器,并根据所述寄存器堆初始化文件和所述数据存储器初始化文件,模拟运行所述随机指令流文件,以生成所述模拟运行数据和所述模拟运行结果。
5.根据权利要求1所述的方法,还包括:
若所述模拟运行结果不满足所述预设条件,则重新生成随机指令验证文件集;
根据重新生成的随机指令验证文件集进行模拟运行,以重新生成模拟运行数据和模拟运行结果,直至重新生成的模拟运行结果满足所述预设条件。
6.根据权利要求1所述的方法,其中,所述根据所述运行数据和所述模拟运行数据对所述随机指令流文件进行验证,包括:
将所述运行数据和所述模拟运行数据进行比对,以生成比对结果;
根据所述比对结果对所述随机指令流文件进行验证。
7.一种处理器的随机指令验证装置,包括:
生成模块,用于生成随机指令验证文件集,其中,所述随机指令验证文件集包括随机指令流文件、处理器的寄存器堆初始化文件和所述处理器的数据存储器初始化文件;
模拟运行模块,用于根据所述随机指令流文件、所述寄存器堆初始化文件和所述数据存储器初始化文件进行模拟运行,以生成模拟运行数据和模拟运行结果;
运行模块,用于若所述模拟运行结果满足预设条件,则通过所述处理器,并根据所述寄存器堆初始化文件和所述数据存储器初始化文件,运行所述随机指令流文件,以生成运行数据;以及
验证模块,用于根据所述运行数据和所述模拟运行数据对所述随机指令流文件进行验证。
8.根据权利要求9所述的装置,其中,所述生成模块,包括:
第一生成单元,用于调用随机指令发生器从指令集中随机挑选指令,以生成所述随机指令流文件;
第二生成单元,用于根据所述随机指令流文件生成所述寄存器堆初始化文件和所述数据存储器初始化文件;
第三生成单元,用于根据所述随机指令流文件、所述寄存器堆初始化文件和所述数据存储器初始化文件生成所述随机指令验证文件集。
9.根据权利要求8所述的装置,其中,所述第一生成单元,具体用于:
调用所述随机指令发生器从所述指令集中随机挑选指令,以生成随机指令流,其中,所述随机指令流包括至少一个指令序列;
当所述随机指令流的长度达到长度阈值时,将所述随机指令流转化为所述随机指令流文件。
10.根据权利要求9所述的装置,其中,所述模拟运行模块,具体用于:
获取模拟器;
将所述随机指令流文件、所述寄存器堆初始化文件和所述数据存储器初始化文件输入至所述模拟器;
通过所述模拟器并根据所述寄存器堆初始化文件和所述数据存储器初始化文件,模拟运行所述随机指令流文件,以生成所述模拟运行数据和所述模拟运行结果。
11.根据权利要求9所述的装置,其中,所述运行模块,还用于:
若所述模拟运行结果不满足所述预设条件,则重新生成随机指令验证文件集;
根据重新生成的随机指令验证文件集进行模拟运行,以重新生成模拟运行数据和模拟运行结果,直至重新生成的模拟运行结果满足所述预设条件。
12.根据权利要求9所述的装置,其中,所述验证模块,具体用于:
将所述运行数据和所述模拟运行数据进行比对,以生成比对结果;
根据所述比对结果对所述随机指令流文件进行验证。
13.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的处理器的随机指令验证方法。
14.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-6中任一项所述的处理器的随机指令验证方法。
15.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-6中任一项所述的处理器的随机指令验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110815300.5A CN113656070A (zh) | 2021-07-19 | 2021-07-19 | 处理器的随机指令验证方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110815300.5A CN113656070A (zh) | 2021-07-19 | 2021-07-19 | 处理器的随机指令验证方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113656070A true CN113656070A (zh) | 2021-11-16 |
Family
ID=78477670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110815300.5A Pending CN113656070A (zh) | 2021-07-19 | 2021-07-19 | 处理器的随机指令验证方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656070A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515310A (zh) * | 2009-02-16 | 2009-08-26 | 中国科学院计算技术研究所 | 微处理器浮点单元的随机验证方法及*** |
CN101826050A (zh) * | 2010-02-03 | 2010-09-08 | 北京龙芯中科技术服务中心有限公司 | 一种用于制造后处理器芯片验证的随机验证方法及装置 |
US20110320783A1 (en) * | 2010-06-24 | 2011-12-29 | International Business Machines Corporation | Verification using opcode compare |
US20210011838A1 (en) * | 2019-07-09 | 2021-01-14 | International Business Machines Corporation | Partial-results post-silicon hardware exerciser |
-
2021
- 2021-07-19 CN CN202110815300.5A patent/CN113656070A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515310A (zh) * | 2009-02-16 | 2009-08-26 | 中国科学院计算技术研究所 | 微处理器浮点单元的随机验证方法及*** |
CN101826050A (zh) * | 2010-02-03 | 2010-09-08 | 北京龙芯中科技术服务中心有限公司 | 一种用于制造后处理器芯片验证的随机验证方法及装置 |
US20110320783A1 (en) * | 2010-06-24 | 2011-12-29 | International Business Machines Corporation | Verification using opcode compare |
US20210011838A1 (en) * | 2019-07-09 | 2021-01-14 | International Business Machines Corporation | Partial-results post-silicon hardware exerciser |
Non-Patent Citations (1)
Title |
---|
于伽;黑勇;陈黎明;: "随机测试程序发生器的设计与实现", 微电子学与计算机, no. 07, 5 July 2012 (2012-07-05) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12020134B2 (en) | Debugging correctness issues in training machine learning models | |
US10146531B2 (en) | Method and apparatus for generating a refactored code | |
CN114662427B (zh) | 一种逻辑***设计的调试方法及设备 | |
CN112527281B (zh) | 基于人工智能的算子升级方法、装置、电子设备及介质 | |
US20160171141A1 (en) | Verification environments utilzing hardware description languages | |
CN113568821A (zh) | 一种ai芯片计算性能的测试方法、装置、设备、及介质 | |
JP2023086678A (ja) | 深層学習フレームワークに基づいて深層学習モデルを生成して適用する方法及び装置 | |
CN116401339A (zh) | 数据处理方法、装置、电子设备、介质以及程序产品 | |
CN113961419B (zh) | 存储器验证方法、装置、电子设备及存储介质 | |
US10229035B2 (en) | Instruction generation based on selection or non-selection of a special command | |
CN114743586B (zh) | 存储器模型的镜像存储实现方法、装置及存储介质 | |
CN110609786A (zh) | 软件测试方法、装置、计算机设备和存储介质 | |
CN115481594B (zh) | 计分板实现方法、计分板、电子设备及存储介质 | |
CN113656070A (zh) | 处理器的随机指令验证方法、装置、电子设备及存储介质 | |
CN115164994A (zh) | 一种基于载荷谱的测试方法、装置、设备及介质 | |
CN115080120B (zh) | 寄存器的验证方法、装置、设备和介质 | |
EP2782005A1 (en) | Verifying state reachability in a statechart model having computer program code embedded therein | |
CN113126881A (zh) | ***配置方法、装置、设备、可读存储介质及分布式存储*** | |
CN112965893A (zh) | 用于计算机程序的在线测试***及测试方法 | |
CN114218026B (zh) | 计分板生成方法、装置、电子设备及存储介质 | |
CN114118356B (zh) | 神经网络处理器验证方法、装置、电子设备及存储介质 | |
CN113961405B (zh) | 状态切换指令验证方法、装置、电子设备及存储介质 | |
Fitzgerald et al. | Triumphs and challenges for model-oriented formal methods: the VDM++ experience | |
CN114925858A (zh) | 基于深度学习框架持续集成***的任务处理方法及装置 | |
KR20230032517A (ko) | 양자 컴퓨터 시뮬레이션 가속기의 이더넷 jtag 기반 소프트웨어 개발/디버깅 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211110 Address after: Zone CW, 4th floor, building 1, No. 10, Shangdi 10th Street, Haidian District, Beijing 100086 Applicant after: Kunlun core (Beijing) Technology Co., Ltd Address before: 2 / F, *** building, No. 10, Shangdi 10th Street, Haidian District, Beijing 100085 Applicant before: Beijing Baidu Netcom Science Technology Co., Ltd. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |