34]在操作S355中,验证目标处理器根据变元的检查结果选择性地存储上下文。如果根据变元的检查结果识别关于权限等级的切换意图,则包括异常处理程序的验证目标处理器执行固定指令序列。在执行固定指令序列的同时,验证目标处理器存储对应于权限等级的上下文。
[0135]在操作S360中,验证目标处理器仅切换权限等级。
[0136]在操作S365中,在切换指令集或权限等级之后,异常处理程序选择性地恢复上下文。
[0137]在操作S370中,验证目标处理器返回至与测试程序中的异常引发指令的地址邻近的地址。因此,验证目标处理器利用改变后的指令集或权限等级执行异常引发指令的下一个指令。
[0138]在操作S375中,验证目标处理器确定测试程序是否包括待执行的下一个指令。作为确定测试程序包括待执行的下一个指令的结果,验证目标处理器前进至步骤S305,从而验证目标处理器重复步骤S305至S370。作为确定测试程序不包括待执行的下一个指令的结果,验证目标处理器使测试程序结束。
[0139]如上所述,验证目标处理器同时地切换指令集和权限等级并且随后执行测试程序。然而,本发明构思不限于此。例如,验证目标处理器可同时地切换指令集、权限等级和处理器,并且随后执行测试程序。
[0140]图12和图13是示意性地示出根据本发明构思的实施例的包括处理器迀移的验证方法的流程图。将描述通过参照图4描述的SoC410来执行如图12和图13所示的包括处理器迀移的验证方法的执行。然而,应该注意,具有与SoC 410相同或相似构造的任何SoC器件可根据图12和图13所示的方法执行包括处理器迀移的验证方法。SoC410包括多个处理器。测试程序可在各个处理器上执行。处理器迀移可在初始处理器与牺牲处理器之间进行。初始处理器是当前执行测试程序的处理器,牺牲处理器是将在处理器切换之后执行测试程序的处理器。
[0141]图12是示意性地示出初始处理器在处理器迀移的过程中的操作的流程图。
[0142]在操作S410中,在执行测试程序的同时,初始处理器执行异常引发指令。如果执行异常引发指令,则初始处理器执行异常处理程序。
[0143]在操作S420中,包括异常处理程序的初始处理器检查包括在异常引发指令中的变元。如果检查变元,则初始处理器确定是否发生处理器迀移。
[0144]在操作S430中,在初始处理器确定是否应该发生处理器迀移之后,包括异常处理程序的初始处理器在存储器器件420的分配区域存储初始处理器的上下文。
[0145]在操作S440中,初始处理器将中断发送至牺牲处理器。根据各个实施例,在处理器迀移过程中,牺牲处理器处于睡眠模式状态和/或非活动状态。在这样的实施例中,初始处理器响应于中断唤醒牺牲处理器,并且牺牲处理器从睡眠模式状态和/或非活动状态进入活动状态。
[0146]在操作S450中,初始处理器进入睡眠模式状态。
[0147]图13是示意性地示出牺牲处理器在处理器迀移过程中的操作的流程图。
[0148]在操作S510中,牺牲处理器从初始处理器接收中断。牺牲处理器响应于中断唤醒和/或进入活动状态。
[0149]在操作S520中,牺牲处理器恢复在图12中存储的初始处理器的上下文。根据初始处理器的恢复的上下文,牺牲处理器的操作从测试程序中的异常引发指令的下一个指令开始。
[0150]在操作S530中,牺牲处理器更新参照图8描述的映射表。因此,利用切换后的处理器执行测试程序。
[0151]图14和图15是根据本发明构思的实施例的示意性地示出包括处理器交换的验证方法的流程图。将描述通过参照图4描述的SoC410来执行如图14和图15所示的包括处理器交换的验证方法的执行。然而,应该注意,具有与SoC 410相同或相似构造的任何SoC器件可根据图14和图15所示的方法执行包括处理器交换的验证方法。SoC410包括多个处理器。测试程序可在各个处理器上执行。处理器交换可在初始处理器与牺牲处理器之间进行。初始处理器是指出交换测试程序的牺牲处理器的处理器,并且牺牲处理器是将与初始处理器交换测试程序的处理器。
[0152]图14是示意性地示出初始处理器在处理器交换过程中的操作的流程图。
[0153]在操作S610中,在执行测试程序的同时,初始处理器执行异常引发指令。如果执行异常引发指令,则初始处理器使测试程序停止和/或暂停片刻,并且随后执行异常处理程序。
[0154]在操作S620中,包括异常处理程序的初始处理器检查包括在异常引发指令中的变元。如果检查变元,则包括异常处理程序的初始处理器确定关于处理器交换的意图。
[0155]在操作S630中,当识别关于处理器交换的意图时,包括异常处理程序的初始处理器在存储器器件420的分配区域存储初始处理器的上下文。
[0156]在操作S640中,初始处理器将第一中断发送至牺牲处理器。在各个实施例中,在处理器交换过程中,牺牲处理器运行任何其它测试程序。在这样的实施例中,初始处理器借由第一中断将关于处理器交换的意图发送至牺牲处理器。
[0157]在操作S650中,初始处理器从牺牲处理器接收第二中断。例如,在步骤S630中接收第一中断的牺牲处理器在存储器器件420的分配区域存储其自身的上下文。然后,牺牲处理器将第二中断发送至初始处理器。初始处理器等待直至接收到第二中断。
[0158]在操作S660中,初始处理器恢复存储在存储器器件420的牺牲处理器的上下文。然后,初始处理器根据牺牲处理器的上下文来执行由牺牲处理器执行的测试程序。
[0159]图15是示意性地示出牺牲处理器在处理器交换过程中的操作的流程图。
[0160]在操作S710中,牺牲处理器从初始处理器接收第一中断。
[0161]在操作S720中,牺牲处理器响应于第一中断在存储器器件420的分配区域存储牺牲处理器的上下文。
[0162]在操作S730中,牺牲处理器将第二中断发送至初始处理器。
[0163]在操作S740中,牺牲处理器恢复在图14中存储的初始处理器的上下文。根据初始处理器的恢复的上下文,牺牲处理器的操作从由初始处理器执行的测试程序中的异常引发指令的下一个指令开始。
[0164]在操作S750中,牺牲处理器更新参照图8描述的映射表。因此,由初始处理器和牺牲处理器执行的测试程序在初始处理器与牺牲处理器之间交换。也就是说,利用切换的处理器执行由初始处理器执行的测试程序。
[0165]图16是示意性地示出根据本发明构思的用于系统芯片的验证的构造的另一示例实施例的框图。参照图16,主机计算装置500产生测试程序并将其传递至待验证的计算装置600。主机计算装置500包括主机系统芯片(SoC) 510和主机存储器器件520。待验证的计算装置600包括待验证的系统芯片(SoC) 610和待验证的存储器器件620。主机SoC 510和待验证的SoC 610包括与图1所示的系统芯片110相同或相似的构造。
[0166]主机存储器器件520存储测试模板、参考模型和测试产生器。参考模型和测试产生器可为程序代码和/或软件模块。一旦用于测试产生器的程序代码和/或软件模块从存储器器件520装载到SoC 510的处理器中,就将SoC 110的处理器编程以执行由测试产生器的程序代码描绘的各种操作和功能,从而将SoC 510的处理器转变为专用处理器。包括测试产生器的处理器借由测试模板自动地产生测试程序。将当产生测试程序时产生的指令馈送至参考模型中。
[0167]在各个实施例中,可参照包括在待验证的SoC 610中的处理器构造参考模型。例如,参考模型可为通过将包括在待验证的SoC 610中的处理器模型化获得的软件。当执行测试程序的各个指令时,参考模型提供关于包括在待验证的SoC 610中的处理器的状态改变的信息。也就是说,参考模型响应于馈送的指令而输出通过跟踪包括在待验证的SoC 610中的处理器的状态改变获得的模型化结果。参考模型基于馈送的指令向测试产生器提供模型化结果。测试产生器基于从参考模型传递的模型化结果产生下一个指令。将产生的测试程序提供至待验证的计算装置600。
[0168]在各个实施例中,测试产生器的第三子组件产生测试程序的指令并且随后更新参考模型的状态。在这样的实施例中,测试产生器可形成各种测试环境。
[0169]将传递的测试程序存储在待验证的计算装置600的存储器器件620中。在待验证的SoC 610上执行测试程序。待验证的SoC 610借由测试程序执行验证操作。执行测试程序的方法与参照图4描述的验证操作方法相同或相似,并且为了简单起见,省略其描述。
[0170]图17是示出根据本发明构思的示例实施例的图16所示的主机SoC的测试程序产生方法的流程图。将描述通过参照图5描述的SoC 510来执行图17所示的测试程序产生方法的执行。然而,应该注意,具有与SoC 510相同或相似的构造的任何SoC器件可根据图17所示的方法执行测试程序产生方法。参照图16和图17,包括在主机SoC 510中的处理器借由参考模型产生测试程序。
[0171]在操作S805中,包括测试产生器的SoC 510读取包括在测试模板中的指令语句。
[0172]在操作S810中,包括测试产生器的SoC 510的第一子组件确定是否检测到特定条件。
[0173]作为确定未检测到特定条件的结果,在操作S815中,包括测试产生器的SoC 510产生对应于指令语句的指令。
[0174]在操作S820中,包括测试产生器的SoC 510将产生的指令馈送到参考模型中。
[0175]作为确定检测到特定条件的结果,在操作S825中,包括测试产生器的SoC 510形成或产生异常引发指令。
[0176]在操作S830中,包括测试产生器的SoC 510检测包括在异常引发指令中的关于处理器的切换意图。在检测结果指示存在关于处理器的切换意图的情况下,SoC 510前进至操作S835。在检测结果指示不存在关于处理器的切换意图的情况下,SoC 510前进至操作S840。
[0177]当存在关于处理器的切换意图时,在步骤S835中,包括测试产生器的SoC 510将无操作指令(下文中,称作NOP指令)馈送至参考模型中。NOP指令改变将产生下一个命令的参考模型的位置,而不改变操作状态。
[0178]当不存在关于处理器的切换意图时,在操作S840中,包括测试产生器的SoC 510将异常引发指令馈送至参考模型中。
[0179]在操作S845中,包括测试产生器的SoC 510将包括在异常处理程序中的固定指令序列馈送至参考模型。
[0180]