CN116776788B - 上下文切换验证方法及装置 - Google Patents

上下文切换验证方法及装置 Download PDF

Info

Publication number
CN116776788B
CN116776788B CN202311061317.1A CN202311061317A CN116776788B CN 116776788 B CN116776788 B CN 116776788B CN 202311061317 A CN202311061317 A CN 202311061317A CN 116776788 B CN116776788 B CN 116776788B
Authority
CN
China
Prior art keywords
command
tested
module
signal
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311061317.1A
Other languages
English (en)
Other versions
CN116776788A (zh
Inventor
请求不公布姓名
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads Technology 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 Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202311061317.1A priority Critical patent/CN116776788B/zh
Publication of CN116776788A publication Critical patent/CN116776788A/zh
Application granted granted Critical
Publication of CN116776788B publication Critical patent/CN116776788B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Tests Of Electronic Circuits (AREA)

Abstract

本公开涉及一种上下文切换验证方法及装置,涉及计算机技术领域。该装置包括:激励产生模块根据针对待测试模块的验证需要生成激励信号并发送至参考模型模块和待测试模块,激励信号指示需要处理的包括至少一个待测命令的命令序列;待测试模块根据激励信号处理各待测命令,并在预设处理节点向参考模型模块发送目标信号,以及将处理命令过程中产生的第一数据发送至响应检查模块;参考模型模块根据激励信号和目标信号处理各待测命令,并将处理命令过程中产生的第二数据发送至响应检查模块;响应检查模块根据第一数据和第二数据对待测试模块执行上下文切换命令的能力进行验证。可自动化、精准比对上下文切换时的数据和行为,进行上下文切换能力验证。

Description

上下文切换验证方法及装置
技术领域
本公开涉及计算机技术领域,尤其涉及一种上下文切换验证方法及装置。
背景技术
在通用芯片或者专用芯片设计中,通常需要一个前端处理模块。这个前端处理模块需要从存储器中读取命令序列,而后依次解析这些命令序列,再调度芯片上其他部件协同工作以执行各命令,进而完成整个芯片的设计功能。
为达到快速响应用户请求、以及实现时分复用,芯片应当具备快速上下文切换的能力。当有高优先级任务到来,或者当前使用者分配的时间资源抵达的时候,芯片应当在软件的协助下,将当前正在执行的任务停掉,并将现场保存出去,用来在未来恢复现场,继续执行工作。这种上下文切换的工作由前端处理模块进行监控和处理。
由于上下文切换的事件对于芯片当前的工作而言是异步的,上下文切换的触发可以发生在任何时候,所以验证前端处理模块的上下文切换功能成为设计和验证的难题。
相关技术中,验证前端处理模块的上下文切换能力,采用基于随机测试的方法,在单独的基于硬件描述语言设计(Hardware Description Language Design, HDL Design)的环境上进行测试。测试结果的比对依靠人工校验,以及反复的切换实验,来进行判定。而基于单独硬件描述语言设计的环境具有实现相对复杂,硬件错误查验流程时间长的缺点。
发明内容
有鉴于此,本公开提出了一种上下文切换验证方法及装置。
根据本公开的一方面,提供了一种上下文切换验证装置,所述装置包括:激励产生模块、参考模型模块、待测试模块和响应检查模块,
激励产生模块,用于根据针对所述待测试模块的验证需要生成激励信号,并将所述激励信号发送至所述参考模型模块和所述待测试模块,所述激励信号用于指示需要处理的命令序列,所述命令序列包括至少一个待测命令;
所述待测试模块,用于根据所述激励信号处理所各所述待测命令的过程中,在预设处理节点向所述参考模型模块发送目标信号;其中,所述目标信号为命令同步信号或上下文切换信号;所述上下文切换信号用于指示接收到上下文切换命令并执行了对应的上下文切换操作的情况;将处理命令过程中产生的第一数据发送至所述响应检查模块;
所述参考模型模块,用于根据所述激励信号和所述目标信号处理各所述待测命令;并将处理命令过程中产生的第二数据发送至所述响应检查模块;
所述响应检查模块,用于根据所述第一数据和所述第二数据对所述待测试模块执行上下文切换命令的能力进行验证。
在一种可能的实现方式中,所述参考模型模块包括:
第一执行单元,用于在所述目标信号为命令同步信号的情况下,基于所述命令同步信号和所述激励信号执行目标预设处理节点后的待测命令,直至识别到下一个预设处理节点;所述目标预设处理节点为所述命令同步信号对应的预设处理节点;
第二执行单元,用于在所述目标信号为上下文切换信号的情况下,执行所述上下文切换命令对应的上下文切换操作。
在一种可能的实现方式中,所述待测试模块包括:
第三执行单元,用于从命令序列中获取待测命令并执行所述待测命令;
切换单元,用于在识别到当前预设处理节点,且在目标处理阶段中检测到上下文切换命令的情况下,确定完成针对待测命令的当前处理,执行所述上下文切换命令对应的上下文切换操作,并在完成所述上下文切换操作后生成上下文切换信号;
非切换单元,用于在识别到当前预设处理节点,且在目标处理阶段中未检测到上下文切换命令的情况下,生成所述当前预设处理节点对应的命令同步信号;
其中,所述目标处理阶段为上一预设处理节点至所述当前预设处理节点之间的处理阶段。
在一种可能的实现方式中,所述预设处理节点包括命令获取完毕节点、命令解码完毕节点和命令执行完毕节点,所述命令同步信号包括获取命令同步信号、解码命令同步信号和执行命令同步信号;
所述第三执行单元包括:
命令获取子单元,用于从所述命令序列中获取各所述待测命令,并将获取的待测命令发送至命令解码子单元;
命令解码子单元,用于对接收到的所述待测命令进行解码,并将解码后的待测命令发送至命令执行子单元;
命令执行子单元,用于执行接收到的解码后的待测命令,
所述非切换单元包括:
第一非切换子单元,用于在检测到完成一个所述待测命令的获取,确定识别到命令获取完毕节点,在目标处理阶段中未检测到上下文切换命令的情况下,生成所述获取命令同步信号;
第二非切换子单元,用于在检测到完成一个所述待测命令的解码,确定识别到命令解码完毕节点,在目标处理阶段中未检测到上下文切换命令的情况下,生成所述解码命令同步信号;
第三非切换子单元,用于在检测到完成一个待测命令的执行,确定识别到命令执行完毕节点,在目标处理阶段中未检测到上下文切换命令的情况下,生成所述执行命令同步信号。
在一种可能的实现方式中,所述切换单元包括:
上下文切换子单元,用于在上下文检测场景下,在识别到当前预设处理节点,且在目标处理阶段中检测到上下文切换命令的情况下,确定完成针对待测命令的当前处理,执行所述上下文切换命令对应的上下文切换操作,并在完成所述上下文切换操作后生成上下文切换信号。
在一种可能的实现方式中,所述待测试模块还包括:
场景识别单元,用于获取场景识别信息,并在所述场景识别信息为目标信息的情况下,确定处于上下文检测场景。
在一种可能的实现方式中,所述待测试模块还包括:
顺序指示单元,用于在命令顺序处理场景下,根据所述激励信号处理所各所述待测命令的过程中,在预设处理节点向所述参考模型模块发送目标信号;
乱序指示单元,用于在指令乱序处理场景下,根据所述激励信号处理所各所述待测命令的过程中,在预设处理节点向所述参考模型模块发送目标信号和命令执行顺序信息;其中,所述命令执行顺序信息用于指示所述参考模型模块的命令执行顺序。
在一种可能的实现方式中,所述参考模型模块,包括:
命令获取单元,用于根据所述命令同步信号和所述激励信号确定所述待测试模块已完成获取的待测命令,从所述命令序列中获取所述待测试模块已完成获取的待测命令,并将获取到的待测命令发送至命令解码单元;
命令解码单元,用于根据所述命令同步信号确定所述待测试模块已完成解码的待测命令,解码接收到的待测命令,并将解码后的待测命令发送至命令执行单元;
命令执行单元,用于根据所述命令同步信号确定所述待测试模块已完成执行的待测命令,解码接收到的待测命令。
在一种可能的实现方式中,所述响应检查模块,还用于根据所述第一数据和所述第二数据生成反馈信息,并将所述反馈信息发送至所述激励产生模块;
所述激励产生模块,还用于基于所述反馈信息生成新的激励信号,并将新的激励信号发送至所述待测试模块和所述参考模型模块。
根据本公开的另一方面,提供了一种上下文切换方法,用于对待测试模块进行验证,所述方法包括:
根据针对所述待测试模块的验证需要生成激励信号,并将所述激励信号发送至参考模型模块和所述待测试模块,所述激励信号用于指示需要处理的命令序列,所述命令序列包括至少一个待测命令;
控制所述待测试模块根据所述激励信号处理所各所述待测命令的过程中,在预设处理节点向所述参考模型模块发送目标信号;其中,所述目标信号为命令同步信号或上下文切换信号;所述上下文切换信号用于指示接收到上下文切换命令并执行了对应的上下文切换操作的情况;
控制参考模型模块根据所述激励信号和所述目标信号处理各所述待测命令;
根据所述待测试模块在处理命令过程产生的第一数据和所述参考模型模块在处理命令过程中产生的第二数据,对所述待测试模块执行上下文切换命令的能力进行验证。
根据本公开的另一方面,提供了一种上下文切换装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令被处理器执行时实现上述方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
本公开提供的上下文切换验证方法及装置,采用单向同步策略的联合仿真环境,通过参考模型和硬件描述语言设计协同,可以实现在随机切换的场景下,自动化、精准比对上下文切换时的数据和行为,充分完成上下文切换能力验证工作。可以在自动化完成上下文切换验证工作,自动比对参考模型和待测试模块在发生上下文切换时的数据以及行为,在不增加额外硬件设计的前提下,方便设计人员查找和修复错误。同时也兼容不需要做上下文切换验证的场景。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1、图2示出根据本公开一实施例的一种上下文切换验证装置的框图。
图3示出根据本公开一实施例的一种非切换检测场景下的命令处理时序图。
图4示出根据本公开一实施例的一种上下文检测场景下的命令处理时序图。
图5示出根据本公开一实施例的一种上下文切换验证装置中参考模型模块的工作流程示意图。
图6示出根据本公开一实施例的一种上下文切换验证方法的流程图。
图7是根据一示例性实施例示出的一种用于上下文切换的装置1900的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
相关技术中,基于单独的硬件描述语言设计的环境上,进行前端处理模块的上下文切换能力的验证。这种验证方法无法直接获取上下文切换的正确性,只能采用反复切换不同的上下文环境,比对最终结果的方式,来判定前端处理模块是否由设计预期的上下文切换能力。对于一些典型的场景,则采取人工检查的方式,手动从仿真环境中获取切换时的数据,检视切换时行为,来进行检查。
为解决上述问题,本公开提供一种上下文切换验证方法及装置,采用单向同步策略的联合仿真环境,通过参考模型和硬件描述语言设计协同,可以实现在随机切换的场景下,自动化、精准比对上下文切换时的数据和行为,充分完成上下文切换能力验证工作。可以在自动化完成上下文切换验证工作,自动比对参考模型和待测试模块在发生上下文切换时的数据以及行为,在不增加额外硬件设计的前提下,方便设计人员查找和修复错误。同时也兼容不需要做上下文切换验证的场景。
图1、图2示出根据本公开一实施例的一种上下文切换验证装置的框图。如图1所示,该装置包括:激励产生模块41、待测试模块42、参考模型模块43和响应检查模块44。
激励产生模块41,用于根据针对所述待测试模块42的验证需要生成激励信号,并将激励信号发送至待测试模块42和参考模型模块43。其中,激励信号可以用于指示待测试模块42和参考模型模块43需要处理的命令序列,在一些实施例中,激励信号还可以用于指示针对所述验证需要的输出数据需求。所述命令序列包括至少一个待测命令。
其中,待测试模块42可以为基于硬件描述语言设计的,可以实现通用或专用芯片设计中前端处理模块的功能和作用,也即可以进行命令序列中命令的获取、解析、以及调度芯片上其他模块协同执行。各待测命令可以为基于待测试模块42所对应的前端处理模块的功能作用需求的测试用例所形成的命令。
待测试模块42,用于根据激励信号处理所各所述待测命令,针对各待测命令的处理依次包括:获取、解码(也可以称为解析)、执行。待测试模块42在根据激励信号处理各待测命令的过程中,在预设处理节点向所述参考模型模块43发送目标信号。其中,所述目标信号为命令同步信号或上下文切换信号。所述上下文切换信号用于指示接收到上下文切换命令并执行了对应的上下文切换操作的情况。待测试模块42还用于将处理命令过程中产生的第一数据发送至所述响应检查模块44。其中,第一数据可以是基于激励信号中的输出数据需求确定出的。在一些实施例中,也可以预先设置输出数据需求,以使得待测试模块42可以基于预设的输出数据需求在处理命令的过程中获取的第一数据并输出。
所述参考模型模块43,用于根据所述激励信号和所述目标信号处理各所述待测命令;并将处理命令过程中产生的第二数据发送至所述响应检查模块44。
所述响应检查模块44,用于根据所述第一数据和所述第二数据对所述待测试模块42执行上下文切换命令的能力进行验证。在一些实施例中,由于对第一数据和第二数据进行比对能够对待测试模块42的进行验证,也能够确定出待测试模块42当前所存在的问题,进而可对待测试模块42进行优化。
在一种可能的实现方式中,如图2所示,待测试模块42可以包括第三执行单元23、切换单元22和非切换单元24。
其中,第三执行单元23,用于从命令序列中获取待测命令并执行所述待测命令。
切换单元22,用于在识别到当前预设处理节点,且在目标处理阶段中检测到上下文切换命令的情况下,确定完成针对待测命令的当前处理,执行所述上下文切换命令对应的上下文切换操作,并在完成所述上下文切换操作后生成上下文切换信号。
非切换单元24,用于在识别到当前预设处理节点,且在目标处理阶段中未检测到上下文切换命令的情况下,生成所述当前预设处理节点对应的命令同步信号。
其中,所述目标处理阶段为上一预设处理节点至所述当前预设处理节点之间的处理阶段。
在一些实施例中,所述预设处理节点包括命令获取完毕节点、命令解码完毕节点和命令执行完毕节点,所述命令同步信号包括获取命令同步信号、解码命令同步信号和执行命令同步信号。获取命令同步信号用于指示该完成获取的待测命令是哪一个、针对该待测命令的所完成的处理是获取。解码命令同步信号用于指示该完成解码的待测命令是哪一个、针对该待测命令的所完成的处理是解码。执行命令同步信号用于指示该完成执行的待测命令是哪一个、针对该待测命令的所完成的处理是执行。
在一些实施例中,如图2所示,第三执行单元23可以包括命令获取子单元231、命令解码子单元232和命令执行子单元233。非切换单元24可以包括第一非切换子单元241、第二非切换子单元242和第三非切换子单元243。
其中,命令获取子单元231,用于从所述命令序列中获取各所述待测命令,并将获取的待测命令发送至命令解码子单元232。命令解码子单元232,用于对接收到的所述待测命令进行解码,并将解码后的待测命令发送至命令执行子单元233。命令执行子单元233,用于执行接收到的解码后的待测命令。
其中,第一非切换子单元241,用于在检测到完成一个所述待测命令的获取,确定识别到命令获取完毕节点,在目标处理阶段中未检测到上下文切换命令的情况下,生成所述获取命令同步信号。第二非切换子单元242,用于在检测到完成一个所述待测命令的解码,确定识别到命令解码完毕节点,在目标处理阶段中未检测到上下文切换命令的情况下,生成所述解码命令同步信号。第三非切换子单元243,用于在检测到完成一个待测命令的执行,确定识别到命令执行完毕节点,在目标处理阶段中未检测到上下文切换命令的情况下,生成所述执行命令同步信号。
举例来说,假定命令序列包括待测命令A、B、C,且处理过程中并没有进行上下文切换,则待测试模块42中命令获取子单元231、命令解码子单元232和命令执行子单元233处理待测命令A、B、C的过程可以如图3所示,则待测试模块42发送至参考模型模块43的命令同步信号可以如下表1所示。
表 1 命令同步信号示例
在一种可能的实现方式中,如图2所示,切换单元22可以包括上下文切换子单元221。上下文切换子单元221,用于在上下文检测场景下,在识别到当前预设处理节点,且在目标处理阶段中检测到上下文切换命令的情况下,确定完成针对待测命令的当前处理,执行所述上下文切换命令对应的上下文切换操作,并在完成所述上下文切换操作后生成上下文切换信号。
这样,通过切换单元和非切换单元的设置,就可以实现有、无上下文切换两种场景下的测试,满足不同测试需求。
在一些实施例中,上下文切换子单元221执行上下文切换命令可以包括:控制命令获取子单元231完成当前正在进行的针对待测命令的获取之后、控制命令解码子单元232完成当前正在进行的针对待测命令的解码之后、和/或控制命令执行子单元233完成当前正在进行的针对待测命令的执行之后(也即完成针对待测命令的当前处理),控制命令获取子单元231、命令解码子单元232和命令执行子单元233暂停针对待测命令的后续处理,保存当前命令序列的处理完成情况后,对所述上下文切换命令指示的命令任务进行处理;在完成所述上下文切换命令指示的命令任务进行处理后,生成上下文切换信号。举例来说,如图4所示,假定命令序列包括待测命令A、B、C,且处理过程中在tB时刻接收到上下文切换命令,则由于tB时刻,待测试模块42中仅命令解码子单元232在对待测命令B进行解码、其他两个子单元处于暂停工作状态,则上下文切换子单元221可以在确定待测命令B的解码完成之后,基于上下文切换命令执行上下文切换操作,并在完成上下文切换操作之后(假定tx时刻完成上下文切换操作)生成上下文切换信号,则在上述过程中待测试模块42发送至参考模型模块43的目标信号(包括命令同步信号和上下文切换信号)可以如下表2所示。
表 2信号示例
在本实施例中,如图1、图2所示,待测试模块42还用于将处理命令(包括待测命令和上下文切换命令)过程中产生对应于所述输出数据需求的第一数据发送至所述响应检查模块44。
在一种可能的实现方式中,如图2所示,所述待测试模块42还可以包括:场景识别单元21。场景识别单元21,用于获取场景识别信息,并在所述场景识别信息为目标信息的情况下,确定处于上下文检测场景;在所述场景识别信息不是所述目标信息或场景识别信息为不切换信息的情况下,确定处于非切换检测场景。其中,目标信息可以是任意可以指示需要对待测试模块42进行上下文切换检测的信息。不切换信息可以为任意可以指示不需要对待测试模块42进行上下文切换检测的信息。在一些实施例中,场景识别单元21可以从激励信号中获取场景识别信息,或者场景识别单元21可以接收来自外部设备的场景识别信息,本领域技术人员可以根据实际需要对场景识别单元21确定场景识别信息的方式进行设置,本公开对此不作限制。在一些实施例中,场景识别单元21还可以在确定出检测场景的情况下,向切换单元22和非切换单元24发送第一场景指示信息。该第一场景指示信息用于指示当前所处的检测场景为需要执行上下文切换命令的上下文检测场景、或当前所处的检测场景为不需要执行上下文切换命令的非切换检测场景。
在一些实施例中,场景识别单元21还用于确定所处命令处理场景,命令处理场景包括命令顺序处理场景和命令乱序处理场景中的一个。场景识别单元21在确定出命令处理场景之后,向乱序指示单元25、顺序指示单元26和第三执行单元23发送第二场景指示信息。该第二场景指示信息用于指示当前所处的命令处理场景为命令顺序处理场景和命令乱序处理场景。
在一种可能的实现方式中,如图2所示,待测试模块42还可以包括乱序指示单元25和顺序指示单元26。其中,顺序指示单元26,用于在命令顺序处理场景下,根据所述激励信号处理所各所述待测命令的过程中,在预设处理节点向所述参考模型模块43发送目标信号。乱序指示单元25,用于在命令乱序处理场景下,根据所述激励信号处理所各所述待测命令的过程中,在预设处理节点向所述参考模型模块43发送目标信号和命令执行顺序信息;其中,所述命令执行顺序信息用于指示所述参考模型模块的命令执行顺序。在一些实施例中,乱序指示单元25和顺序指示单元26可以基于激励信号或者外部设备发送的顺序指示信息确定当前处于命令顺序处理场景或命令乱序处理场景。本领域技术人员可以根据实际需要对乱序指示单元25确定命令乱序处理场景、顺序指示单元26确定命令顺序处理场景的方式进行设置,本公开对此不作限制。
如图1、图2、图5所示,参考模型模块43在接收到激励信号之后所执行的操作可以包括步骤S101-步骤S107。参考模型模块43接收到激励信号后先确定是否需要测试上下文切换(S101)。参考模型模块43若确定需要进行上下文切换测试,则进行目标信号检测(S102);若确定不需要进行上下文切换测试,则进行是否接收到命令同步信号的检测(S108),并在确定检测到命令同步信号的情况执行步骤S106、在确定没有检测到命令同步信号的情况下等待预设时长后(S109)继续执行步骤S108。参考模型模块43在确定未检测到目标信号的情况下,等待预设时长后继续执行步骤S102(S103);在确定检测到目标信号的情况下,进一步确定目标信号是否为命令同步信号(S104),进而在确定是检测到命令同步信号的情况下执行步骤S106、未检测到命令同步信号(也即检测到上下文切换信号)的情况下执行步骤S105。其中,在步骤S105中,参考模型模块43基于上下文切换信号执行对应的上下文切换操作,并将执行上下文切换操作产生对应于所述输出数据需求的数据作为第二数据发送至所述响应检查模块44。在步骤S106中,参考模型模块43基于命令同步信号所指示的待测命令以及针对该待测命令待测试模块42当前已经完成的处理,对命令同步信号所指示的待测命令执行对应的处理,并在执行完响应于命令同步信号所执行的操作之后确定命令序列中的各待测命令是否均完成处理(S107),而后若均已完成处理则将处理待测命令过程中产生对应于所述输出数据需求的数据作为第二数据发送至所述响应检查模块44,若未完成处理则继续执行步骤S101。在一些实施例中,可以根据实际需要对预设时长进行设置,本公开对此不作限制。
在一种可能的实现方式中,如图2所示,参考模型模块43可以包括第一执行单元434、第二执行单元435、命令获取单元431、命令解码单元432和命令执行单元433。
其中,第一执行单元434,用于在所述目标信号为命令同步信号的情况下,基于所述命令同步信号和所述激励信号执行目标预设处理节点后的待测命令,直至识别到下一个预设处理节点;所述目标预设处理节点为所述命令同步信号对应的预设处理节点。
第二执行单元435,用于在所述目标信号为上下文切换信号的情况下,执行所述上下文切换命令对应的上下文切换操作。
在一些实施例中,第一执行单元434,可以在所述目标信号为命令同步信号的情况下,基于所述命令同步信号和所述激励信号控制命令获取单元431、命令解码单元432和命令执行单元433,执行目标预设处理节点后的待测命令。在一些实施例中,命令获取单元431,用于根据所述命令同步信号和所述激励信号确定所述待测试模块已完成获取的待测命令,从所述命令序列中获取所述待测试模块已完成获取的待测命令,并将获取到的待测命令发送至命令解码单元432。命令解码单元432,用于根据所述命令同步信号确定所述待测试模块已完成解码的待测命令,解码接收到的待测命令,并将解码后的待测命令发送至命令执行单元433。命令执行单元433,用于根据所述命令同步信号确定所述待测试模块已完成执行的待测命令,解码接收到的待测命令。
在一些实施例中,如图2所示,响应检测模块44还用于,根据所述第一数据和所述第二数据生成反馈信息,并将所述反馈信息发送至激励产生模块41。激励产生模块41还用于基于所述反馈生成新的激励信号,并将新的激励信号发送至待测试模块42和参考模型模块43,以进行下一轮针对待测试模块42的验证。
图6示出根据本公开一实施例的一种上下文切换验证方法的流程图。如图6所示,用于对待测试模块进行验证,该方法包括:
步骤S601,根据针对所述待测试模块的验证需要生成激励信号,并将所述激励信号发送至参考模型模块和所述待测试模块,所述激励信号用于指示需要处理的命令序列,所述命令序列包括至少一个待测命令;
步骤S602,控制所述待测试模块根据所述激励信号处理各所述待测命令的过程中,在预设处理节点向所述参考模型模块发送目标信号;其中,所述目标信号为命令同步信号或上下文切换信号;所述上下文切换信号用于指示接收到上下文切换命令并执行了对应的上下文切换操作的情况;
步骤S603,控制参考模型模块根据所述激励信号和所述目标信号处理各所述待测命令;
步骤S604,根据所述待测试模块在处理命令过程产生的第一数据和所述参考模型模块在处理命令过程中产生的第二数据,对所述待测试模块执行上下文切换命令的能力进行验证。
在一些实施例中,通过本公开实施例提供的方法的各步骤可以实现上文装置具有的功能或包含的模块,方法步骤具体实现可以参照上文装置实施例的描述,为了简洁,这里不再赘述。
需要说明的是,尽管以上述实施例作为示例介绍了上下文切换方法及装置如上,但本领域技术人员能够理解,本公开应不限于此。事实上,用户完全可根据个人喜好和/或实际应用场景灵活设定各模块、步骤,只要符合本公开的技术方案即可。
本公开实施例还提出一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
本公开实施例还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为在执行所述存储器存储的指令时,实现上述方法。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
图7是根据一示例性实施例示出的一种用于上下文切换的装置1900的框图。例如,装置1900可以被提供为一服务器或终端设备。参照图7,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出接口1958(I/O接口)。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM,MacOS XTM,UnixTM, LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种非易失性计算机可读存储介质,例如包括计算机程序指令的存储器1932,上述计算机程序指令可由装置1900的处理组件1922执行以完成上述方法。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (12)

1.一种上下文切换验证装置,其特征在于,所述装置包括:激励产生模块、参考模型模块、待测试模块和响应检查模块,所述待测试模块和所述参考模型模块是根据需要测试的芯片设计中前端处理模块的功能设置的,所述待测试模块为基于硬件描述语言设计的,
激励产生模块,用于根据针对所述待测试模块的验证需要生成激励信号,并将所述激励信号发送至所述参考模型模块和所述待测试模块,所述激励信号用于指示需要处理的命令序列,所述命令序列包括至少一个待测命令,所述至少一个待测命令是根据所述前端处理模块的测试用例形成的;
所述待测试模块,用于根据所述激励信号处理各所述待测命令的过程中,在预设处理节点向所述参考模型模块发送目标信号;其中,所述预设处理节点为预先设置的用于向所述参考模型模块发送所述目标信号的节点,所述目标信号为命令同步信号或上下文切换信号,所述命令同步信号对应于所述预设处理节点,所述命令同步信号用于指示所述待测试模块处理所述待测命令的处理进度,所述上下文切换信号用于指示接收到上下文切换命令并执行了对应的上下文切换操作的情况;将处理命令过程中产生的第一数据发送至所述响应检查模块;
所述参考模型模块,用于根据所述激励信号和所述目标信号处理各所述待测命令;并将处理命令过程中产生的第二数据发送至所述响应检查模块;
所述响应检查模块,用于根据所述第一数据和所述第二数据对所述待测试模块执行上下文切换命令的能力进行验证。
2.根据权利要求1所述的装置,其特征在于,所述参考模型模块包括:
第一执行单元,用于在所述目标信号为命令同步信号的情况下,基于所述命令同步信号和所述激励信号执行目标预设处理节点后的待测命令,直至识别到下一个预设处理节点;所述目标预设处理节点为所述命令同步信号对应的预设处理节点;
第二执行单元,用于在所述目标信号为上下文切换信号的情况下,执行所述上下文切换命令对应的上下文切换操作。
3.根据权利要求1所述的装置,其特征在于,所述待测试模块包括:
第三执行单元,用于从命令序列中获取待测命令并执行所述待测命令;
切换单元,用于在识别到当前预设处理节点,且在目标处理阶段中检测到上下文切换命令的情况下,确定完成针对待测命令的当前处理,执行所述上下文切换命令对应的上下文切换操作,并在完成所述上下文切换操作后生成上下文切换信号;
非切换单元,用于在识别到当前预设处理节点,且在目标处理阶段中未检测到上下文切换命令的情况下,生成所述当前预设处理节点对应的命令同步信号;
其中,所述目标处理阶段为上一预设处理节点至所述当前预设处理节点之间的处理阶段。
4.根据权利要求3所述的装置,其特征在于,所述预设处理节点包括命令获取完毕节点、命令解码完毕节点和命令执行完毕节点,所述命令同步信号包括获取命令同步信号、解码命令同步信号和执行命令同步信号;
所述第三执行单元包括:
命令获取子单元,用于从所述命令序列中获取各所述待测命令,并将获取的待测命令发送至命令解码子单元;
命令解码子单元,用于对接收到的所述待测命令进行解码,并将解码后的待测命令发送至命令执行子单元;
命令执行子单元,用于执行接收到的解码后的待测命令,
所述非切换单元包括:
第一非切换子单元,用于在检测到完成一个所述待测命令的获取,确定识别到命令获取完毕节点,在目标处理阶段中未检测到上下文切换命令的情况下,生成所述获取命令同步信号;
第二非切换子单元,用于在检测到完成一个所述待测命令的解码,确定识别到命令解码完毕节点,在目标处理阶段中未检测到上下文切换命令的情况下,生成所述解码命令同步信号;
第三非切换子单元,用于在检测到完成一个待测命令的执行,确定识别到命令执行完毕节点,在目标处理阶段中未检测到上下文切换命令的情况下,生成所述执行命令同步信号。
5.根据权利要求3所述的装置,其特征在于,所述切换单元包括:
上下文切换子单元,用于在上下文检测场景下,在识别到当前预设处理节点,且在目标处理阶段中检测到上下文切换命令的情况下,确定完成针对待测命令的当前处理,执行所述上下文切换命令对应的上下文切换操作,并在完成所述上下文切换操作后生成上下文切换信号。
6.根据权利要求5所述的装置,其特征在于,所述待测试模块还包括:
场景识别单元,用于获取场景识别信息,并在所述场景识别信息为目标信息的情况下,确定处于上下文检测场景。
7.根据权利要求1所述的装置,其特征在于,所述待测试模块包括:
顺序指示单元,用于在命令顺序处理场景下,根据所述激励信号处理所各所述待测命令的过程中,在预设处理节点向所述参考模型模块发送目标信号;
乱序指示单元,用于在命令乱序处理场景下,根据所述激励信号处理所各所述待测命令的过程中,在预设处理节点向所述参考模型模块发送目标信号和命令执行顺序信息;其中,所述命令执行顺序信息用于指示所述参考模型模块的命令执行顺序。
8.根据权利要求1所述的装置,其特征在于,所述参考模型模块,包括:
命令获取单元,用于根据所述命令同步信号和所述激励信号确定所述待测试模块已完成获取的待测命令,从所述命令序列中获取所述待测试模块已完成获取的待测命令,并将获取到的待测命令发送至命令解码单元;
命令解码单元,用于根据所述命令同步信号确定所述待测试模块已完成解码的待测命令,解码接收到的待测命令,并将解码后的待测命令发送至命令执行单元;
命令执行单元,用于根据所述命令同步信号确定所述待测试模块已完成执行的待测命令,解码接收到的待测命令。
9.根据权利要求1所述的装置,其特征在于,
所述响应检查模块,还用于根据所述第一数据和所述第二数据生成反馈信息,并将所述反馈信息发送至所述激励产生模块;
所述激励产生模块,还用于基于所述反馈信息生成新的激励信号,并将新的激励信号发送至所述待测试模块和所述参考模型模块。
10.一种上下文切换方法,其特征在于,用于对待测试模块进行验证,所述方法包括:
根据针对所述待测试模块的验证需要生成激励信号,并将所述激励信号发送至参考模型模块和所述待测试模块,所述激励信号用于指示需要处理的命令序列,所述命令序列包括至少一个待测命令,所述至少一个待测命令是根据前端处理模块的测试用例形成的;
控制所述待测试模块根据所述激励信号处理各所述待测命令的过程中,在预设处理节点向所述参考模型模块发送目标信号;其中,所述预设处理节点为预先设置的用于向所述参考模型模块发送所述目标信号的节点,所述目标信号为命令同步信号或上下文切换信号,所述命令同步信号对应于所述预设处理节点,所述命令同步信号用于指示所述待测试模块处理所述待测命令的处理进度,所述上下文切换信号用于指示接收到上下文切换命令并执行了对应的上下文切换操作的情况;
控制参考模型模块根据所述激励信号和所述目标信号处理各所述待测命令;
根据所述待测试模块在处理命令过程产生的第一数据和所述参考模型模块在处理命令过程中产生的第二数据,对所述待测试模块执行上下文切换命令的能力进行验证;
其中,所述待测试模块和所述参考模型模块是根据需要测试的芯片设计中前端处理模块的功能设置的,所述待测试模块为基于硬件描述语言设计的。
11.一种上下文处理装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为在执行所述存储器存储的指令时,实现权利要求10所述的方法。
12.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求10所述的方法。
CN202311061317.1A 2023-08-22 2023-08-22 上下文切换验证方法及装置 Active CN116776788B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311061317.1A CN116776788B (zh) 2023-08-22 2023-08-22 上下文切换验证方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311061317.1A CN116776788B (zh) 2023-08-22 2023-08-22 上下文切换验证方法及装置

Publications (2)

Publication Number Publication Date
CN116776788A CN116776788A (zh) 2023-09-19
CN116776788B true CN116776788B (zh) 2024-03-19

Family

ID=87991649

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311061317.1A Active CN116776788B (zh) 2023-08-22 2023-08-22 上下文切换验证方法及装置

Country Status (1)

Country Link
CN (1) CN116776788B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118133737A (zh) * 2024-05-07 2024-06-04 摩尔线程智能科技(北京)有限责任公司 一种上下文切换的验证方法、装置及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047122A (en) * 1992-05-07 2000-04-04 Tm Patents, L.P. System for method for performing a context switch operation in a massively parallel computer system
WO2000045257A2 (en) * 1999-01-28 2000-08-03 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US8108879B1 (en) * 2006-10-27 2012-01-31 Nvidia Corporation Method and apparatus for context switching of multiple engines
US8782435B1 (en) * 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
CN104978249A (zh) * 2014-04-09 2015-10-14 三星电子株式会社 系统芯片及其验证方法
CN113312879A (zh) * 2021-07-28 2021-08-27 北京燧原智能科技有限公司 芯片电路功能验证系统、方法、设备及存储介质
CN114707452A (zh) * 2022-04-22 2022-07-05 瞬曜电子科技(上海)有限公司 一种基于协程的数字仿真验证方法、设备和存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7234144B2 (en) * 2002-01-04 2007-06-19 Microsoft Corporation Methods and system for managing computational resources of a coprocessor in a computing system
US10120818B2 (en) * 2015-10-01 2018-11-06 International Business Machines Corporation Synchronous input/output command

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047122A (en) * 1992-05-07 2000-04-04 Tm Patents, L.P. System for method for performing a context switch operation in a massively parallel computer system
WO2000045257A2 (en) * 1999-01-28 2000-08-03 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US8108879B1 (en) * 2006-10-27 2012-01-31 Nvidia Corporation Method and apparatus for context switching of multiple engines
US8782435B1 (en) * 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time using control flow signatures
CN104978249A (zh) * 2014-04-09 2015-10-14 三星电子株式会社 系统芯片及其验证方法
CN113312879A (zh) * 2021-07-28 2021-08-27 北京燧原智能科技有限公司 芯片电路功能验证系统、方法、设备及存储介质
CN114707452A (zh) * 2022-04-22 2022-07-05 瞬曜电子科技(上海)有限公司 一种基于协程的数字仿真验证方法、设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种任意时间片长度对CPU上下文切换代价影响消除的新方法;张洋 等;微电子学与计算机;92-96 *

Also Published As

Publication number Publication date
CN116776788A (zh) 2023-09-19

Similar Documents

Publication Publication Date Title
CN116776788B (zh) 上下文切换验证方法及装置
CN105260273B (zh) 一种智能电子设备的测试方法和装置
CN110058920B (zh) 虚拟机性能检测方法及装置、电子设备、存储介质
CN109977012B (zh) 系统的联调测试方法、装置、设备及计算机可读存储介质
CN106534105B (zh) 登录方法和装置
CN104317712A (zh) 一种基于linux的存储服务器疲劳测试方法
CN109582524A (zh) 一种测试方法、系统及电子设备和存储介质
CN107368394A (zh) 一种终端的测试方法及测试系统
CN110913411A (zh) 一种mr邻区回填方法、装置、服务器及存储介质
US20220269593A1 (en) Automatic generation of integrated test procedures using system test procedures
CN117494638B (zh) 芯片功能的验证方法、验证平台、电子设备及存储介质
CN114647572A (zh) 用于软件应用组件测试的方法和系统
US11927434B2 (en) Device and method for managing registration and arrangement of detonator
KR101252358B1 (ko) Plc 명령어 테스트 장치 및 방법
CN115794525A (zh) 一种bmc压力测试方法、装置、设备及存储介质
CN109919415A (zh) 基于无人车的监管处理方法、装置、设备和存储介质
US20170228301A1 (en) Scheduler
CN110855526B (zh) 检测数据源连接的方法、装置、存储介质及电子设备
CN110347581B (zh) 测试方法和装置以及电子设备
CN113240088A (zh) 文本意图识别模型的训练方法
CN107784142B (zh) 半导体功率组件的热仿真方法
CN105808439B (zh) 智能卡应用程序远程测试系统
CN116028427B (zh) 参数的配置系统、方法及存储介质
CN115616387B (zh) 一种基于芯片的控制信号校准方法、系统
TW201926038A (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