CN104978249B - 系统芯片及其验证方法 - Google Patents

系统芯片及其验证方法 Download PDF

Info

Publication number
CN104978249B
CN104978249B CN201510167012.8A CN201510167012A CN104978249B CN 104978249 B CN104978249 B CN 104978249B CN 201510167012 A CN201510167012 A CN 201510167012A CN 104978249 B CN104978249 B CN 104978249B
Authority
CN
China
Prior art keywords
instruction
processor
test
soc
program
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.)
Expired - Fee Related
Application number
CN201510167012.8A
Other languages
English (en)
Other versions
CN104978249A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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
Priority claimed from KR1020140091962A external-priority patent/KR102147172B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN104978249A publication Critical patent/CN104978249A/zh
Application granted granted Critical
Publication of CN104978249B publication Critical patent/CN104978249B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
    • 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/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种系统芯片及其验证方法。所述验证方法包括步骤:接收测试产生器和异常处理程序;基于测试模板,通过测试产生器来产生测试程序,所述测试程序包括异常引发指令;在执行测试程序时,在第一操作状态下执行第一指令;当在测试程序的执行过程中执行了异常引发指令时,使测试程序的执行停止并且执行包括在异常处理程序中的固定指令序列;以及在执行固定指令序列之后设置的第二操作状态下从第二指令恢复执行测试程序,该第二指令对应于与异常引发指令的地址邻近的地址。

Description

系统芯片及其验证方法
相关申请的交叉引用
本申请要求于2014年4月9日提交的美国临时申请No.61/977,223的优先权,该申请的全部内容以引用方式并入本文中。本申请要求于2014年7月21日在韩国知识产权局提交的韩国专利申请No.10-2014-0091962的优先权,该申请的全部内容以引用方式并入本文中。
技术领域
本文所述的本发明构思涉及一种系统芯片及其验证方法。
背景技术
随着半导体工艺的发展,半导体集成电路已发展为系统芯片(SoC)的形式,系统芯片是包括处理器、高速缓冲存储器、输入/输出接口等的单个集成芯片(IC)。如果处理器和高速缓冲存储器集成在单个芯片中,则数据输入/输出速度可提高,从而提高处理器的整体性能。然而,由于制造工艺的不平衡会出现半导体IC的缺陷。因此,有必要说明可能由于制造工艺而导致的缺陷的起因。
一些SoC可包括多个处理器,其中各个处理器在改变多个权限等级或多个指令集的同时操作。因此,在SoC中包括一种考虑了多个处理器、多个权限等级和/或多个指令集的自动验证SoC的方法是有利的。
发明内容
至少一个示例实施例涉及一种系统芯片(SoC)的验证方法。
根据至少一个示例实施例,一种系统芯片(SoC)的验证方法包括步骤:通过包括在系统芯片中的处理器接收测试产生器和异常处理程序;基于测试模板,通过包括测试产生器的处理器来产生包括异常引发指令的测试程序;在执行测试程序时,通过处理器在第一操作状态下执行第一指令;当在测试程序的执行过程中执行了异常引发指令时,通过处理器使测试程序的执行停止;当在测试程序的执行过程中执行了异常引发指令时,通过处理器执行包括在异常处理程序中的固定指令序列;以及在执行固定指令序列之后设置的第二操作状态下从第二指令恢复执行测试程序,所述第二指令的地址位于紧挨着异常引发指令的地址之后。
至少一个示例实施例提供的是,所述恢复执行测试程序包括:在从第一操作状态改变为第二操作状态时,(i)在与执行第一指令的处理器不同的另一处理器上执行第二指令,或者(ii)利用与第一指令的权限等级不同的一个权限等级和与第一指令的指令集不同的一个指令集二者当中的至少一个来执行第二指令。
至少一个示例实施例提供的是,产生测试程序的步骤包括:读取包括在测试模板中的第一指令语句;产生对应于第一指令语句的第一指令,从而在第一操作状态下执行第一指令;读取包括在测试模板中的状态变更指令语句;产生异常引发指令,该异常引发指令包括关于操作状态的切换意图,所述关于操作状态的切换意图指示了改变系统芯片的操作状态,关于操作状态的切换意图对应于状态变更指令语句;读取在状态变更指令语句之后紧挨着的第二指令语句;以及产生对应于第二指令语句的第二指令,从而在与异常引发指令的地址邻近的地址处在第二操作状态下执行第二指令。
至少一个示例实施例提供的是,利用测试产生器的第一子组件检测切换意图。
根据至少一个示例实施例,一种系统芯片的验证方法,该系统芯片包括处理器并支持至少两个指令集,所述验证方法包括步骤:通过处理器接收测试产生器和异常处理程序;基于测试模板,通过包括测试产生器的处理器来产生包括异常引发指令的测试程序;在执行测试程序时,通过处理器执行第一指令,该第一指令是基于所述至少两个指令集中的第一指令集产生的;当在测试程序的执行过程中执行了异常引发指令时,通过处理器使测试程序的执行停止;当在测试程序的执行过程中执行了异常引发指令时,通过处理器执行包括在异常处理程序中的固定指令序列;以及在执行固定指令序列之后,从第二指令恢复执行测试程序,所述该第二指令对应于与异常引发指令的地址相邻的地址,并且根据所述至少两个指令集中的第二指令集来产生该第二指令。
至少一个示例实施例提供的是,产生测试程序的步骤包括:读取包括在测试模板中的第一指令语句;基于第一指令集产生对应于第一指令语句的第一指令;读取包括在测试模板中的状态变更指令语句;产生异常引法指令,该异常引发指令包括切换意图,该切换意图指示了对应于状态变更指令语句的指令集;读取在状态变更指令语句之后紧挨着的第二指令语句;以及在与异常引发指令的地址邻近的地址处,基于第二指令集产生对应于第二指令语句的第二指令。
至少一个示例实施例提供的是,状态变更指令语句包括切换意图。
至少一个示例实施例提供的是,利用测试产生器的第一子组件检测切换意图。
至少一个示例实施例提供的是,通过测试产生器的第二子组件检测第一指令的内容和第二指令的内容。
至少一个示例实施例提供的是,利用包括在异常引发指令中的变元检测关于指令集的切换意图。
至少一个示例实施例提供的是,所述方法还包括步骤:通过将第一指令、第二指令和异常引发指令中的至少一个馈送至参考模型以获得模型化结果,并且所述模型化结果包括当执行第一指令、第二指令和异常引发指令中的所述至少一个时,关于验证目标处理器的状态改变的信息。
至少一个示例实施例提供的是,获得模型化结果的步骤包括:当验证目标处理器包括至少两个处理器核时,检测包括在异常引发指令中的关于处理器的切换意图;以及当检测到关于处理器的切换意图时,将无操作指令馈送至参考模型而不馈送异常引发指令,并且所述无操作指令用于在参考模型的状态不改变的情况下设置将要产生的下一个指令的位置。
至少一个示例实施例提供的是,在不包括验证目标处理器的主机系统芯片上形成产生的测试程序,并且在包括验证目标处理器的系统芯片上完成执行第一指令的步骤、执行固定指令序列的步骤和恢复执行测试程序的步骤。
至少一个示例实施例涉及一种系统芯片的验证方法,该系统芯片包括处理器并支持至少两个权限等级。
根据示例实施例,一种系统芯片的验证方法,该系统芯片包括处理器并支持至少两个权限等级,所述验证方法包括步骤:通过处理器接收测试产生器和异常处理程序;基于测试模板,通过包括测试产生器的处理器来产生包括异常引发指令的测试程序;在执行测试程序时,通过处理器以所述至少两个权限等级的第一权限等级执行第一指令;当在测试程序的执行过程中执行了异常引发指令时,通过处理器使测试程序的执行停止;当在测试程序的执行过程中执行了异常引发指令时,通过处理器执行包括在异常处理程序中的固定指令序列;以及在执行固定指令序列之后从第二指令恢复执行测试程序,所述第二指令对应于与异常引发指令的地址邻近的地址,并且以所述至少两个权限等级的第二权限等级执行该第二指令。
至少一个示例实施例提供的是,产生测试程序的步骤包括:读取包括在测试模板中的第一指令语句;产生第一指令,该第一指令对应于第一指令语句,从而以第一权限等级执行第一指令;读取包括在测试模板中的状态变更指令语句;产生异常引发指令,所述异常引发指令包括关于权限等级的切换意图,所述关于权限等级的切换意图指示了从第一权限等级切换至第二权限等级,关于权限等级的切换意图对应于状态变更指令语句;在测试模板中读取在状态变更指令语句之后紧挨着的第二指令语句;以及产生第二指令,该第二指令对应于第二指令语句,从而在与异常引发指令的地址邻近的地址处,以第二权限等级执行第二指令。
至少一个示例实施例提供的是,执行固定指令序列的步骤包括:当系统芯片以第一权限等级操作时,存储系统芯片的第一状态信息;以及当在固定指令序列的执行过程中系统芯片以第二权限等级操作时,恢复系统芯片的第二状态信息。
至少一个示例实施例提供的是,第一状态信息和第二状态信息存储在连接至系统芯片的存储器器件的第一区域,将第一区域分配为以第一权限等级存储第一状态信息和第二状态信息。
至少一个示例实施例提供的是,第一状态信息和第二状态信息存储在连接至系统芯片的存储器器件的第二区域,将第二区域分配为以第二权限等级存储第一状态信息和第二状态信息。
至少一个示例实施例涉及一种计算系统。
根据示例实施例,一种计算系统包括:存储器器件,其构造为存储用于产生测试程序的第一数据、测试产生器和异常处理程序。所述计算系统包括至少两个处理器,所述至少两个处理器中的每一个构造为利用第一数据和测试产生器产生测试程序。当产生测试程序时,测试产生器构造为当从第一数据中检测到关于处理器的切换意图时由测试产生器产生第二数据。当执行测试程序时,所述至少两个处理器的第一处理器根据第二数据停止执行测试程序,并且包括异常处理程序的第一处理器根据第二数据执行固定指令序列,从而在所述至少两个处理器中的第一处理器和第二处理器之间进行切换之后恢复执行测试程序。
附图说明
以上和其它目的和特征将通过以下结合附图的描述而变得清楚,其中除非另有说明,否则相同的附图标记在各个图中始终指代相同部件,并且其中:
图1是示意性地示出根据本发明构思的示例实施例的系统芯片的框图;
图2是示意性地示出根据本发明构思的示例实施例的借由原位验证来验证图1所示的系统芯片的构造的框图;
图3是示意性地示出根据本发明构思的示例实施例的借由利用参考模型的非原位验证方式来验证图1所示的系统芯片的构造的框图;
图4是示意性地示出根据本发明构思的示例实施例的用于验证系统芯片的构造的框图;
图5至图7是示意性地示出根据本发明构思的示例实施例的图4所示的测试模板的示图;
图8是示意性地示出根据本发明构思的示例实施例的图4所示的映射表的示图;
图9是示出根据本发明构思的示例实施例的测试程序产生方法的流程图;
图10是示意性地示出根据本发明构思的示例实施例的测试程序的操作的流程图;
图11是示意性地示出根据本发明构思的示例实施例的包括权限等级和指令集中的改变的测试程序的执行的流程图;
图12是示意性地示出根据本发明构思的示例实施例的初始处理器在处理器迁移的过程中的操作的流程图;
图13是示意性地示出根据本发明构思的示例实施例的牺牲处理器(victimprocessor)在处理器迁移的过程中的操作的流程图;
图14是示意性地示出根据本发明构思的示例实施例的初始处理器在处理器交换的过程中的操作的流程图;
图15是示意性地示出根据本发明构思的示例实施例的牺牲处理器在处理器交换的过程中的操作的流程图;
图16是示意性地示出根据本发明构思的示例实施例的用于系统芯片的验证的构造的另一实施例的框图;以及
图17是示出根据本发明构思的示例实施例的图16所示的主机系统芯片的测试程序产生方法的流程图。
具体实施方式
将参照附图详细描述实施例。然而,本发明构思可按照多种不同形式实现,并且不应理解为仅限于示出的实施例。相反,将这些实施例作为示例提供以使得本公开将是彻底和完整的,并且将把本发明构思完全传递给本领域技术人员。因此,将不参照本发明构思的一些示例实施例来描述已知的工艺、元件和技术。除非另有说明,否则相同的附图标记在附图和书面说明书中始终指代相同的元件,因此将不重复描述。在附图中,为了清楚起见,会夸大个层和区的尺寸和相对尺寸。
应该理解,虽然本文中可使用术语“第一”、“第二”、“第三”等来描述多个元件、组件、区、层和/或部分,但是这些元件、组件、区、层和/或部分不应被这些术语限制。这些术语仅用于将一个元件、组件、区、层或部分与另一区、层或部分区分开。因此,下面讨论的第一元件、第一组件、第一区、第一层或第一部分可被称作第二元件、第二组件、第二区、第二层或第二部分,而不脱离本发明构思的教导。
为了方便描述,本文中可使用诸如“在……下方”、“在……之下”、“下”、“下方”、“在……之上”、“上”等的空间相对术语,以描述附图中所示的一个元件或特征与另一个(或另一些)元件或特征的关系。应该理解,空间相对术语旨在涵盖使用或操作中的装置的除图中所示的取向之外的不同取向。例如,如果图中的装置颠倒,则被描述为“在其它元件或特征之下”或“在其它元件或特征以下”或“其它元件或特征下方”的元件将因此被取向为“在其它元件或特征之上”。因此,示例性术语“在……之下”和“下方”可涵盖“在……之上”和“在……之下”这两个取向。装置可按照其它方式取向(旋转90度或位于其它取向),并且本文所用的空间相对描述语将相应地解释。另外,还应该理解,当一层被称作“在两层之间”时,所述一层可为所述两层之间的唯一层,或者还可存在一个或多个中间层。
本文所用的术语仅是为了描述特定实施例,并且不旨在限制本发明构思。如本文所用,除非上下文清楚地另有说明,否则单数形式“一个”、“一”也旨在包括复数形式。还应该理解,当术语“包括”用于本说明书中时,指明存在所列特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。如本文所用,术语“和/或”包括相关所列项之一或多个的任何和所有组合。另外,术语“示例性”旨在指代示例或说明。
应该理解,当一个元件或层被称作“位于”另一元件或层“上”、“连接至”、“结合至”或“邻近于”另一元件或层时,所述一个元件或层可直接位于另一元件或层上、连接至、结合至或邻近于另一元件或层,或者可存在中间元件或层。相反,当一个元件被称作“直接位于”另一元件或层“上”、“直接连接至”、“直接结合至”或“直接邻近于”另一元件或层时,则不存在中间元件或层。
除非另外限定,否则本文中使用的所有术语(包括技术和科学术语)具有与本发明构思所属领域的普通技术人员之一通常理解的含义相同的含义。还应该理解,除非本文中明确这样定义,否则诸如在通用词典中定义的那些的术语应该被解释为具有与它们在相关技术和/或本说明书的上下文中的含义一致的含义,而不应该理想化地或过于正式地解释它们。
下面,将以系统芯片(SoC)为电子装置的示例进行举例说明以描述本发明构思的各个方面和功能。然而,本发明构思不限于此。另外,可通过任何其它实施例实施本发明构思。
图1是示意性地示出根据本发明构思的实施例的系统芯片的框图。参照图1,计算装置100包括系统芯片(SoC)110和存储器器件120。
SoC 110包括存储器控制器111。存储器控制器111提供与存储器器件120的接口。SoC 110通过存储器控制器111将数据存储在存储器器件120以及/或者通过存储器控制器111从存储器器件120读取数据。
SoC 110包括第一高速缓存112和第二高速缓存113。然而,本发明构思不限于此。例如,SoC 110可包括多个高速缓冲存储器。第一高速缓冲存储器112和第二高速缓冲存储器113通过系统总线连接至存储器控制器111。第一高速缓冲存储器112和第二高速缓冲存储器113临时存储将在处理器114-1至114-8中使用的数据。第一高速缓冲存储器112和第二高速缓冲存储器113可由(但不限于)DRAM、移动DRAM、SRAM和/或任何其它类似的非易失性存储器器件实现。
SoC 110包括第一处理器114-1至第八处理器114-8。然而,本发明构思不限于此。SoC 110可包括比图1所示更多的处理器或者比图1所示更少的处理器。例如,第一处理器114-1至第八处理器114-8中的每一个可为中央处理单元(CPU)、多核处理器、众核处理器、数字信号处理器(DSP)和/或任何其它类似的处理器。第一处理器114-1至第八处理器114-8可具有彼此相同的功能和性能。可替换地,第一处理器114-1至第八处理器114-8的功能和性能可与第一处理器114-1至第八处理器114-8中的另一些中的一个或多个的功能和性能不同。例如,在各个实施例中,第一处理器114-1至第八处理器114-8中的一个或多个可包括小核和大核。在各个实施例中,第一处理器114-1至第八处理器114-8中的一个或多个可为小核。在各个实施例中,第一处理器114-1至第八处理器114-8中的一个或多个可为大核。术语“核”和/或“处理核”可指读取和执行程序代码和/或软件模块的独立的处理装置。在多核处理器中,各个核可同时执行和/或运行程序代码,从而增大多核处理器的处理速度。术语“大核”和“小核”可指与核相关的大小、处理速度和/或功耗。例如,大核可为与小核相比消耗相对大量的功率但与小核相比具有更快的处理速度的处理器。小核可为与大核相比具有相对慢的处理速度但与大核相比消耗相对少的功率的处理器。在各个实施例中,大核可用于处理和/或执行相对密集的任务(例如,三维(3D)图形等),而小核可用于处理和/或执行相对不密集的任务(例如,移动电话相关的功能等)。应该注意,第一处理器114-1至第八处理器114-8不限于上述公开内容,并且第一处理器114-1至第八处理器114-8可包括任何类型的计算机处理装置。
在图1中,本发明构思的示例实施例例示如下:第一处理器114-1至第四处理器114-4连接至第一高速缓冲存储器112,并且第五处理器114-5至第八处理器114-8连接至第二高速缓冲存储器113。
诸如指令、程序代码、软件模块、数据和/或控制信号的信息在第一处理器114-1至第八处理器114-8之间通过系统总线交换。信息通过系统总线在存储器控制器111与处理器114-1至114-8中的每一个之间交换。
存储器器件120存储从存储器控制器111接收的数据。根据各个实施例,存储器器件120存储用于验证本发明构思的SoC 110的程序和数据。
图2是示意性地示出根据本发明构思的示例实施例的借由原位验证来验证图1所示的系统芯片的构造的框图。参照图2,存储器器件120接收并存储测试模板和测试产生器。在各个实施例中,SoC 110利用测试模板和测试产生器产生测试程序。在这样的实施例中,测试产生器的程序代码和/或软件模块可从存储器器件120被装载到SoC 110的处理器中,以产生测试程序。一旦用于测试产生器的序代码和/或软件模块被装载到SoC 110的处理器中,就将SoC 110的处理器编程以执行由测试产生器的程序代码描绘的各种操作和功能,从而将SoC 110的处理器转变为专用处理器。SoC 110利用测试程序执行原位验证操作。
在原位验证操作期间,将测试模板和测试产生器存储在连接至待验证的SoC 110的存储器器件120中。测试产生器可为一种程序、程序代码和/或软件模块。一旦将程序代码和/或软件模块装载到SoC 110的处理器中,包括测试产生器的处理器就可利用测试模板自动地产生测试程序。测试程序包括将通过SoC 110执行的至少一个指令。例如,至少一个指令可由随机指令序列形成。
测试产生器读取测试模板中的指令语句,并且基于读取的指令语句产生测试程序的指令。例如,测试产生器读取一个指令语句以产生一个指令。另外,测试产生器可读取多个指令语句以产生一个指令。测试产生器可读取一个指令语句以产生多个指令。
测试程序在上SoC 110执行。SoC 110执行测试程序以验证SoC 110的性能。
图3是示意性地示出根据本发明构思的示例实施例的借由利用参考模型的非原位验证方式来验证图1所示的系统芯片的构造的框图。参照图3,主机计算装置200产生测试程序并将其传递至待验证的计算装置300。主机计算装置200包括主机系统芯片(SoC)210和主机存储器器件220。待验证的计算装置300包括待验证的系统芯片(SoC)310和待验证的存储器器件320。主机SoC 210和待验证的SoC 310可为与图1所示的SoC 110相同或相似的构造。
在操作期间,主机存储器器件220接收并存储测试模板、参考模型和测试产生器。参考模型和测试产生器可为程序。测试产生器利用测试模板自动地产生测试程序。将产生测试程序时产生的指令反馈到参考模型中。可根据包括在待验证的SoC 310中的处理器来构造参考模型。例如,参考模型可为通过将包括在待验证的SoC 310中的处理器模型化所获得的软件。当执行测试程序的各个指令时,参考模型提供关于包括在待验证的SoC 310中的处理器的状态改变的信息。也就是说,参考模型响应于馈送的指令而输出通过跟踪包括在待验证的SoC 310中的处理器的状态改变获得的模型化结果。参考模型基于馈送的指令向测试产生器提供模型化结果。测试产生器基于从参考模型传递的模型化结果产生下一个指令。将产生的测试程序提供至待验证的计算装置300。
可将测试程序存储在待验证的计算装置300的存储器器件320中。测试程序在待验证的SoC 310上执行。待验证的SoC 310利用测试程序执行验证操作。
图4是示意性地示出根据本发明构思的示例实施例的用于验证系统芯片的构造的框图。参照图4,计算装置400执行原位验证方法。包括在系统芯片(SoC)410中的处理器包括与图1所示的SoC 110相同或相似的构造。包括在SoC 410中的处理器可包括多个处理器。另外,各个处理器支持多个权限等级。
当产生测试程序时,连接至SoC 410的存储器器件420存储测试产生器和测试模板。包括在SoC 410中的处理器执行测试产生器以产生测试程序。测试产生器可为一种程序和/或软件模块。测试产生器读取测试模板中的指令语句以产生测试程序的指令。例如,测试产生器读取一个指令语句以产生一个指令。另外,测试产生器可读取多个指令语句以产生一个指令。测试产生器还可读取一个指令语句以产生多个指令。
在测试产生器读取模板语句的同时,包括在测试产生器中的第一子组件检测关于指令集、权限等级和/或处理器的切换意图。指令集的状态、权限等级和/或处理器被称作用于操作SoC 410的操作状态。当检测到操作状态的切换意图时,测试产生器产生异常引发指令。操作状态的切换意图指示SoC 410的操作状态应该改变。
可通过多种方法表达操作状态的切换意图。例如,操作状态的切换意图可通过模板语句的内容来表达。在各个实施例中,操作状态的切换意图可通过利用特定二进制码值产生异常引发指令的模板语句来表达。另外,操作状态的切换意图可利用产生两个指令(将特定值分配至寄存器的命令和系统调用命令)的模板语句来表达。然而,关于操作状态的切换意图的表达可不限于此。包括操作状态的切换意图的指令语句被称作状态变更语句。
包括在测试产生器中的第二子组件在测试产生器读取模板语句的同时确定对应于模板语句的指令的内容。例如,第二子组件选择对应于模板语句的指令集。测试产生器从选择的指令集中产生新指令。
包括在测试产生器中的主组件控制测试产生器的整体操作。主组件以一次一个语句(或者“一个接一个”)的方式从测试模板按顺序读取模板语句。主组件根据由第一子组件和第二子组件决定的信息产生测试程序的指令。
在验证操作期间,包括在SoC 410中的处理器执行产生的测试程序。包括在SoC410中的处理器按顺序执行包括在测试程序中的指令。当在测试程序的执行过程中检测到异常引发指令时,包括在SoC 410中的处理器停止执行测试程序并且执行异常处理程序。异常处理程序可存储在连接至SoC 410的存储器器件420中。异常处理程序可由程序、程序代码和/或软件模块形成。一旦用于异常处理程序的程序代码和/或软件模块被装载到SoC410的处理器中,就将SoC 410的处理器编程以执行由异常处理程序的程序代码描绘的各种操作和功能,从而将SoC 410的处理器转变为专用处理器。例如,包括异常处理程序的处理器可检查异常引发指令的二进制码。可替换或可附加地,包括异常处理程序的处理器检查存储在寄存器中的变元。因此,包括异常处理程序的处理器借由二进制码和/或存储在寄存器中的变元检查指令集、权限等级和/或处理器的切换意图。异常处理程序包括固定指令序列。此时,当二进制码或存储在寄存器中的变元的检查结果指示指令集、权限等级和/或处理器的切换时,包括在SoC 410中的处理器按顺序执行固定指令序列。固定指令序列的一个指令可包括这样的内容,其指示在异常处理结束之后返回异常引发指令的地址之后紧挨着的地址。因此,包括在SoC 410中的处理器停止执行异常处理程序并恢复执行测试程序。当测试程序恢复执行时,包括在SoC 410中的处理器利用变更后的指令集和/或变更后的权限等级执行测试程序。另外,测试程序可在变更后的处理器上运行。
随着测试程序的执行,包括在SoC 410中的处理器将上下文存储在存储器器件420,或者从存储器器件420恢复上下文。包括在SoC 410中的处理器当测试程序的执行停止时存储上下文。另外,包括在SoC 410中的处理器当测试程序恢复执行时恢复上下文。上下文可意指在测试程序的执行停止之后恢复执行测试程序所需的信息。也就是说,上下文意指刚好在测试程序停止之前包括在SoC 410中的处理器的状态。例如,上下文可包括各个处理器的寄存器信息。如果SoC 410的每个处理器支持六个权限等级,则每个处理器的上下文可包括对应于第一等级至第六等级的上下文。
映射表存储在连接至SoC 410的存储器器件420中。映射表不管处理器切换如何都用于产生测试程序。映射表存储处理器的物理ID与虚拟ID之间的映射信息。可根据固定的处理器ID执行测试程序的指令。例如,可根据虚拟ID产生测试程序的指令。通过映射表的变更获得实际处理器切换的效果。
图5至图7是示意性地示出根据本发明构思的示例实施例的图4所示的测试模板的示图。图5是示出根据本发明构思的实施例的伴有指令集的切换的测试模板的示图。参照图5,测试模板包括多个模板语句。如图所示,测试模板包括对应于不同指令集A32和A64的指令语句A至F。另外,测试模板包括状态变更语句1和状态变更语句2。在各个实施例中,状态变更语句1和状态变更语句2二者可包括关于指令集的切换意图,其指示将被处理的指令集的状态应该改变。
包括在SoC 410中的处理器执行测试产生器以产生测试程序。测试产生器以一次一个语句(或者“一个接一个”)的方式按顺序读取包括在测试模板中的模板语句。测试产生器产生对应于指令语句A和B中的每一个的64位指令A64。
测试产生器产生对应于状态变更语句1的用于切换指令集的指令。例如,当检测状态变更语句1时,测试产生器产生异常引发指令。异常引发指令包括用于将指令集改变为32位的变元。
在按照状态变更语句1产生异常引发指令之后,测试产生器产生对应于指令语句C和指令语句D中的每一个的32位指令A32。
测试产生器产生对应于状态变更语句2的用于改变指令集的指令。例如,当检测状态变更语句2时,测试产生器形成或产生异常引发指令。异常引发指令可包括用于将指令集改变为64位的变元。
在按照状态变更语句2产生异常引发指令之后,测试产生器产生对应于指令语句E和指令语句F中的每一个的64位指令A64。
如上所述,本发明构思的SoC 410通过状态变更语句1和状态变更语句2的方式产生用于改变指令集的测试程序。
图6是示出根据本发明构思的示例实施例的伴有权限等级的切换的测试模板的示图。参照图6,测试模板包括多个模板语句。例如,测试模板包括具有不同权限等级的指令语句A至E。另外,测试模板包括状态变更语句1至状态变更语句4。
包括测试产生器的SoC 410的处理器以一次一个语句(或者“一个接一个”)的方式按顺序读取包括在测试模板中的模板语句。测试产生器产生对应于指令语句A的指令A。指令A是在验证操作期间以权限等级PL1-1执行的指令。
测试产生器形成或产生对应于状态变更语句1的用于改变权限等级的指令。例如,当检测状态变更语句1时,测试产生器产生异常引发指令。异常引发指令包括用于将权限等级改变和/或设置为权限等级PL1-2的变元。
在按照状态变更语句1产生异常引发指令之后,测试产生器产生对应于指令语句B的指令B。指令B是在验证操作期间以权限等级PL1-2执行的指令。
测试产生器产生对应于状态变更语句2的用于改变指令集的指令。例如,当检测状态变更语句2时,测试产生器形成或产生异常引发指令。异常引发指令可包括用于将权限等级改变和/或设置为权限等级PL1-3的变元。
如上所述,可按照状态变更语句3和状态变更语句4产生异常引发指令,因此省略对其的详细描述。异常引发指令可包括用于表达权限等级的切换意图的变元。因此,可以以改变后的权限等级执行指令C至E。
在图6中,包括在SoC 410中的处理器支持八个权限等级PL1-1至PL1-4和PL2-1至PL2-4。在各个实施例中,权限等级PL1-1至PL1-4可为非固定等级,而权限等级PL2-1至PL2-4可为固定等级。然而,包括在SoC 410中的一个或多个处理器可不限于此。包括在SoC 410中的处理器可支持至少一个权限等级。
如上所述,本发明构思的SoC 410可通过状态变更语句1至状态变更语句4的方式来产生改变权限等级的测试程序。
图7是示出伴有处理器的切换的测试模板的示图。参照图7,测试模板包括多个模板语句。如图所示,测试模板包括对应于不同处理器的指令语句A至F。另外,测试模板包括状态变更语句1和状态变更语句2。
包括在SoC 410中的处理器执行测试产生器以产生测试程序。测试产生器以一次一个语句(或者“一个接一个”)的方式按顺序读取包括在测试模板中的模板语句。测试产生器产生对应于指令语句A和B的指令A和B。指令A和B可为在验证操作期间在第五处理器上执行的指令。
测试产生器产生对应于状态变更语句1的用于改变处理器的指令。例如,当检测状态变更语句1时,测试产生器形成或产生异常引发指令。异常引发指令包括用于将处理器改变为第四处理器或者从第五处理器切换至第四处理器的变元。
在按照状态变更语句1产生异常引发指令之后,测试产生器产生对应于指令语句C和D的指令C和D。指令C和D可为在验证操作期间在第四处理器上执行的命令。
测试产生器产生对应于状态变更语句2的用于改变处理器的指令。例如,当检测状态变更语句2时,测试产生器形成或产生异常引发指令。异常引发指令包括用于将处理器改变为第七处理器的变元。
在按照状态变更语句2产生异常引发指令之后,测试产生器产生对应于指令语句E和F的指令E和F。指令E和F可为在验证操作期间在第七处理器上执行的命令。
如上所述,本发明构思的包括在SoC 410中的处理器借由状态变更语句1和状态变更语句2产生用于改变处理器的测试程序。
图8是示意性地示出根据本发明构思的示例实施例的图4所示的映射表的示图。参照图8,映射表示出了物理处理器ID与虚拟处理器ID之间的关系。
如参照图7所描述的那样,测试产生器读取测试模板以产生包括将由不同处理器执行的指令的测试程序。然而,可通过指定的处理器来产生测试程序的指令。因此,可根据虚拟处理器ID产生测试程序的指令。如果虚拟处理器ID与物理处理器ID之间的关系改变,则测试程序可改变用于执行操作的处理器。
处理器1至8具有固定的物理处理器ID。虚拟处理器ID和物理处理器ID一一对应地映射。然而,本发明构思不限于此。例如,虚拟处理器ID‘1’映射至物理处理器ID‘3’上,虚拟处理器ID‘2’映射至物理处理器ID‘8’上,并且虚拟处理器ID‘3’映射至物理处理器ID‘1’上。另外,虚拟处理器ID‘4’映射至物理处理器ID‘6’上,虚拟处理器ID‘5’映射至物理处理器ID‘7’上,并且虚拟处理器ID‘6’映射至物理处理器ID‘2’上。虚拟处理器ID‘7’映射至物理处理器ID‘4’上,并且虚拟处理器ID‘8’映射至物理处理器ID‘5’上。物理处理器ID‘5’在处理器迁移过程中可为未定义的。
另外,可通过处理器迁移和/或交换操作改变虚拟处理器ID。例如,虚拟处理器ID可在处理器迁移操作改变。在处理器迁移操作可存在未定义的至少一个虚拟处理器ID。虚拟处理器ID‘1’在处理器迁移操作之前映射至物理处理器ID‘3’上。如果执行处理器迁移操作,则虚拟处理器ID‘1’可映射至物理处理器ID‘5’上。因此,物理处理器ID‘3’可为未定义状态。
在各个实施例中,可在处理器交换操作改变虚拟处理器ID。例如,在执行处理器交换操作之前,虚拟处理器ID‘6’和‘4’分别映射至物理处理器ID‘2’和‘6’上。如果执行处理器交换操作,则虚拟处理器ID‘6’和‘4’可分别映射至物理处理器ID‘6’和‘2’上。
如上所述,虚拟处理器ID可在处理器迁移和/或交换操作之后改变为与物理处理器ID不同。测试程序可基于虚拟处理器ID操作。如果虚拟处理器ID改变,则测试程序可在改变后的处理器上执行。
图9是示出根据本发明构思的示例实施例的测试程序产生方法的流程图。将描述通过参照图4描述的包括测试产生器的SoC 410来执行图9的测试程序产生方法。然而,应该注意,具有与SoC 410相同或相似构造的任何SoC器件可操作所述测试程序产生方法。参照图4和图9,包括在SoC 410中的处理器执行测试产生器以产生测试程序。
在操作S110中,测试产生器读取包括在测试模板中的指令语句。
在操作S120中,测试产生器基于第一子组件检测或者确定指令语句是否包括特定条件。例如,特定条件可为关于指令集、权限等级和/或处理器的切换意图的表达。可按照多种方式表达关于指令集、权限等级和/或处理器的切换意图。可利用模板语句的内容表达关于指令集、权限等级和/或处理器的切换意图。另外,可利用通过特定二进制码产生异常引发指令的模板语句来表达关于指令集、权限等级和/或处理器的切换意图。另外,可利用产生两个指令(例如,用于将特定值分配至寄存器的指令和系统调用指令)的模板语句表达关于指令集、权限等级和/或处理器的切换意图。然而,关于指令集、权限等级和/或处理器的切换意图的表达不限于此。
如果指令语句不包括特定条件,则测试产生器前进至操作S130。如果指令语句包括特定条件,则测试产生器前进至操作S150以产生异常引发指令。
在操作S130中,测试产生器产生对应于指令语句的指令。
在操作S140中,测试产生器针对下一个指令计算存储器的地址。例如,在各个实施例中,测试产生器利用程序计数器计算下一个指令的地址。程序计数器通知将存储下一个指令的存储器的位置。
在操作S150中,测试产生器产生异常引发指令。例如,在测试产生器读取模板语句的同时,包括在测试产生器中的第一子组件检测关于指令集、权限等级和/或处理器的切换意图。异常引发指令可包括关于将被使用的指令集、权限等级和/或处理器的切换意图。
在操作S160中,测试产生器设置下一个指令的地址。下一个指令的地址可设为异常引发指令的地址之后紧挨着的存储器地址。例如,当异常引发指令的大小为四个字节时,测试产生器可将‘4’加至当前程序计数器,并用相加的结果设置下一个指令的程序计数器。也就是说,可在存储异常引发指令的地址之后紧挨着的地址存储下一个指令。
在操作S170中,测试产生器确定测试模板是否包括接下来将要读取的指令语句。如果测试模板不包括接下来将要读取的指令语句,则测试产生器可使产生测试程序结束。如果测试模板包括接下来将要读取的指令语句,则测试产生器前进至操作S110,其中测试产生器读取下一个指令语句。
根据上述测试程序产生方法,测试产生器形成或产生测试程序,其包括具有关于指令集、权限等级和/或处理器的切换意图的异常引发指令。包括在SoC 410中的处理器按照异常引发指令改变指令集、权限等级和/或处理器,以随后执行验证操作。
图10是示意性地示出根据本发明构思的示例实施例的测试程序的操作的流程图。将描述通过参照图4描述的SoC 410来执行图10的测试程序的操作。然而,应该注意,具有与SoC 410相同或相似构造的任何SoC器件可根据图10所示的方法操作测试程序。参照图4和图10,包括在SoC 410中的处理器执行在图9中产生的测试程序,以执行验证操作。
在操作S210中,待验证的处理器(下文中,称作“验证目标处理器”)读取包括在测试程序中的指令。
在操作S220中,验证目标处理器确定读取的指令是否是异常引发指令。如果读取的指令不是异常引发指令,则验证目标处理器前进至操作S280,其中验证目标处理器执行在操作S210中读取的指令。如果读取的指令是异常引发指令,则验证目标处理器前进至操作S230,以检查异常引发指令的变元。
例如,在各个实施例中,可通过检查指令的程序计数器确定读取的指令是否是异常引发指令。在这样的实施例中,验证目标处理器确定对应于指令的程序计数器是否在异常处理程序内。如果对应于指令的程序计数器未在异常处理程序内,则可确定指令为普通指令。如果对应于指令的程序计数器在异常处理程序内,则可确定指令为异常引发指令。
在操作S230中,验证目标处理器检查包括在异常引发指令中的变元。如果执行异常引发指令,则验证目标处理器停止测试程序并执行异常处理程序。包括异常处理程序的验证目标处理器检查包括在异常引发指令中的变元。如果检查变元,则包括异常处理程序的验证目标处理器确定关于指令集、权限等级或处理器的切换意图。
在操作S240中,验证目标处理器根据关于变元的测试结果选择性地存储上下文。如果根据关于变元的测试结果检查关于指令集、权限等级或处理器的切换意图,则异常处理程序执行固定指令序列。验证目标处理器在执行固定指令序列的同时选择性地存储上下文。
也就是说,验证目标处理器在切换指令集、权限等级和/或处理器之前存储状态信息。例如,验证目标处理器可将指令集从32位改变为64位。验证目标处理器将权限等级PL1-1(如参照图6的讨论)切换为权限等级PL1-2。可将验证目标处理器切换为SoC 410中的任何其它处理器。结果,测试程序在切换后的处理器上恢复执行。
在操作S260中,验证目标处理器在切换指令集、权限等级和/或处理器之后选择性地恢复上下文。在切换处理器之后,切换后的处理器可变为验证目标处理器。
在操作S270中,验证目标处理器返回至与测试程序中的异常引发指令的地址邻近的地址。因此,验证目标处理器通过切换的指令集、权限等级和/或处理器执行异常引发指令的下一个指令。
在操作S290中,验证目标处理器确定测试程序是否包括待执行的下一个指令。如果测试程序包括待执行的下一个指令,则方法可前进至操作S210,其中验证目标处理器重复执行操作S210至S280。如果测试程序不包括待执行的下一个指令,则验证目标处理器使测试程序结束。
如上所述,验证目标处理器改变指令集、权限等级和/或处理器以执行测试程序,从而使得验证目标处理器可在各种环境下执行验证操作。
图11是示意性地示出根据本发明构思的示例实施例的包括权限等级和指令集中的改变的测试程序的执行的流程图。将描述通过参照图4描述的SoC 410来执行图11所示的测试程序的执行。然而,应该注意,具有与SoC 410相同或相似构造的任何SoC器件可根据图11所示的方法执行测试程序。参照图4和图11,验证目标处理器利用图9中产生的测试程序执行验证操作。
在操作S305中,验证目标处理器执行包括在测试程序中的指令。
在操作S310中,验证目标处理器确定读取的指令是否是异常引发指令。作为确定读取的指令不是异常引发指令的结果,验证目标处理器前进至操作S315,其中验证目标处理器执行读取的指令。作为确定读取的指令是异常引发指令的结果,验证目标处理器前进至操作S320以检查异常引发指令的变元。
例如,验证目标处理器基于检查指令的程序计数器的结果来确定读取的指令是否是异常引发指令。验证目标处理器确定对应于指令的程序计数器是否在异常处理程序内。当对应于指令的程序计数器不在异常处理程序内时,确定指令为普通指令。当对应于指令的程序计数器在异常处理程序内时,确定指令为异常引发指令。
在操作S320中,验证目标处理器检查包括在异常引发指令中的变元。如果执行异常引发指令,则验证目标处理器使测试程序停止片刻(即,使测试程序暂停)并执行异常处理程序。异常处理程序检查包括在异常引发指令中的变元。
在操作S325中,包括异常处理程序的验证目标处理器检查关于指令集和权限等级的切换意图。当指令集和权限等级全部不切换时,验证目标处理器前进至操作S340以确定是否仅其切换指令集。当指令集和权限等级全部切换时,验证目标处理器前进至操作S330。
在操作S330中,验证目标处理器根据变元的检查结果选择性地存储上下文。如果根据变元的检查结果识别关于指令集和权限等级的切换意图,则包括异常处理程序的验证目标处理器执行固定指令序列。在执行固定指令序列的同时,验证目标处理器选择性地存储对应于指令集和权限等级二者的上下文。
在操作S335中,验证目标处理器切换指令集和权限等级二者。
在操作S340中,包括异常处理程序的验证目标处理器确定是否仅切换指令集。如果仅切换权限等级而不切换指令集,则验证目标处理器前进至操作S355,以可选地保存上下文。如果仅切换指令集而不切换权限等级,则验证目标处理器前进至操作S345,以选择性地存储上下文。
在操作S345中,验证目标处理器根据变元的检查结果选择性地存储上下文。如果根据变元的检查结果识别关于指令集的切换意图,则包括异常处理程序的验证目标处理器执行固定指令序列。在执行固定指令序列的同时,验证目标处理器选择性地存储对应于指令集的上下文。
在操作S350中,验证目标处理器仅切换指令集。
在操作S355中,验证目标处理器根据变元的检查结果选择性地存储上下文。如果根据变元的检查结果识别关于权限等级的切换意图,则包括异常处理程序的验证目标处理器执行固定指令序列。在执行固定指令序列的同时,验证目标处理器存储对应于权限等级的上下文。
在操作S360中,验证目标处理器仅切换权限等级。
在操作S365中,在切换指令集或权限等级之后,异常处理程序选择性地恢复上下文。
在操作S370中,验证目标处理器返回至与测试程序中的异常引发指令的地址邻近的地址。因此,验证目标处理器利用改变后的指令集或权限等级执行异常引发指令的下一个指令。
在操作S375中,验证目标处理器确定测试程序是否包括待执行的下一个指令。作为确定测试程序包括待执行的下一个指令的结果,验证目标处理器前进至步骤S305,从而验证目标处理器重复步骤S305至S370。作为确定测试程序不包括待执行的下一个指令的结果,验证目标处理器使测试程序结束。
如上所述,验证目标处理器同时地切换指令集和权限等级并且随后执行测试程序。然而,本发明构思不限于此。例如,验证目标处理器可同时地切换指令集、权限等级和处理器,并且随后执行测试程序。
图12和图13是示意性地示出根据本发明构思的实施例的包括处理器迁移的验证方法的流程图。将描述通过参照图4描述的SoC410来执行如图12和图13所示的包括处理器迁移的验证方法的执行。然而,应该注意,具有与SoC 410相同或相似构造的任何SoC器件可根据图12和图13所示的方法执行包括处理器迁移的验证方法。SoC410包括多个处理器。测试程序可在各个处理器上执行。处理器迁移可在初始处理器与牺牲处理器之间进行。初始处理器是当前执行测试程序的处理器,牺牲处理器是将在处理器切换之后执行测试程序的处理器。
图12是示意性地示出初始处理器在处理器迁移的过程中的操作的流程图。
在操作S410中,在执行测试程序的同时,初始处理器执行异常引发指令。如果执行异常引发指令,则初始处理器执行异常处理程序。
在操作S420中,包括异常处理程序的初始处理器检查包括在异常引发指令中的变元。如果检查变元,则初始处理器确定是否发生处理器迁移。
在操作S430中,在初始处理器确定是否应该发生处理器迁移之后,包括异常处理程序的初始处理器在存储器器件420的分配区域存储初始处理器的上下文。
在操作S440中,初始处理器将中断发送至牺牲处理器。根据各个实施例,在处理器迁移过程中,牺牲处理器处于睡眠模式状态和/或非活动状态。在这样的实施例中,初始处理器响应于中断唤醒牺牲处理器,并且牺牲处理器从睡眠模式状态和/或非活动状态进入活动状态。
在操作S450中,初始处理器进入睡眠模式状态。
图13是示意性地示出牺牲处理器在处理器迁移过程中的操作的流程图。
在操作S510中,牺牲处理器从初始处理器接收中断。牺牲处理器响应于中断唤醒和/或进入活动状态。
在操作S520中,牺牲处理器恢复在图12中存储的初始处理器的上下文。根据初始处理器的恢复的上下文,牺牲处理器的操作从测试程序中的异常引发指令的下一个指令开始。
在操作S530中,牺牲处理器更新参照图8描述的映射表。因此,利用切换后的处理器执行测试程序。
图14和图15是根据本发明构思的实施例的示意性地示出包括处理器交换的验证方法的流程图。将描述通过参照图4描述的SoC410来执行如图14和图15所示的包括处理器交换的验证方法的执行。然而,应该注意,具有与SoC 410相同或相似构造的任何SoC器件可根据图14和图15所示的方法执行包括处理器交换的验证方法。SoC410包括多个处理器。测试程序可在各个处理器上执行。处理器交换可在初始处理器与牺牲处理器之间进行。初始处理器是指出交换测试程序的牺牲处理器的处理器,并且牺牲处理器是将与初始处理器交换测试程序的处理器。
图14是示意性地示出初始处理器在处理器交换过程中的操作的流程图。
在操作S610中,在执行测试程序的同时,初始处理器执行异常引发指令。如果执行异常引发指令,则初始处理器使测试程序停止和/或暂停片刻,并且随后执行异常处理程序。
在操作S620中,包括异常处理程序的初始处理器检查包括在异常引发指令中的变元。如果检查变元,则包括异常处理程序的初始处理器确定关于处理器交换的意图。
在操作S630中,当识别关于处理器交换的意图时,包括异常处理程序的初始处理器在存储器器件420的分配区域存储初始处理器的上下文。
在操作S640中,初始处理器将第一中断发送至牺牲处理器。在各个实施例中,在处理器交换过程中,牺牲处理器运行任何其它测试程序。在这样的实施例中,初始处理器借由第一中断将关于处理器交换的意图发送至牺牲处理器。
在操作S650中,初始处理器从牺牲处理器接收第二中断。例如,在步骤S630中接收第一中断的牺牲处理器在存储器器件420的分配区域存储其自身的上下文。然后,牺牲处理器将第二中断发送至初始处理器。初始处理器等待直至接收到第二中断。
在操作S660中,初始处理器恢复存储在存储器器件420的牺牲处理器的上下文。然后,初始处理器根据牺牲处理器的上下文来执行由牺牲处理器执行的测试程序。
图15是示意性地示出牺牲处理器在处理器交换过程中的操作的流程图。
在操作S710中,牺牲处理器从初始处理器接收第一中断。
在操作S720中,牺牲处理器响应于第一中断在存储器器件420的分配区域存储牺牲处理器的上下文。
在操作S730中,牺牲处理器将第二中断发送至初始处理器。
在操作S740中,牺牲处理器恢复在图14中存储的初始处理器的上下文。根据初始处理器的恢复的上下文,牺牲处理器的操作从由初始处理器执行的测试程序中的异常引发指令的下一个指令开始。
在操作S750中,牺牲处理器更新参照图8描述的映射表。因此,由初始处理器和牺牲处理器执行的测试程序在初始处理器与牺牲处理器之间交换。也就是说,利用切换的处理器执行由初始处理器执行的测试程序。
图16是示意性地示出根据本发明构思的用于系统芯片的验证的构造的另一示例实施例的框图。参照图16,主机计算装置500产生测试程序并将其传递至待验证的计算装置600。主机计算装置500包括主机系统芯片(SoC)510和主机存储器器件520。待验证的计算装置600包括待验证的系统芯片(SoC)610和待验证的存储器器件620。主机SoC 510和待验证的SoC 610包括与图1所示的系统芯片110相同或相似的构造。
主机存储器器件520存储测试模板、参考模型和测试产生器。参考模型和测试产生器可为程序代码和/或软件模块。一旦用于测试产生器的程序代码和/或软件模块从存储器器件520装载到SoC 510的处理器中,就将SoC 110的处理器编程以执行由测试产生器的程序代码描绘的各种操作和功能,从而将SoC 510的处理器转变为专用处理器。包括测试产生器的处理器借由测试模板自动地产生测试程序。将当产生测试程序时产生的指令馈送至参考模型中。
在各个实施例中,可参照包括在待验证的SoC 610中的处理器构造参考模型。例如,参考模型可为通过将包括在待验证的SoC 610中的处理器模型化获得的软件。当执行测试程序的各个指令时,参考模型提供关于包括在待验证的SoC 610中的处理器的状态改变的信息。也就是说,参考模型响应于馈送的指令而输出通过跟踪包括在待验证的SoC 610中的处理器的状态改变获得的模型化结果。参考模型基于馈送的指令向测试产生器提供模型化结果。测试产生器基于从参考模型传递的模型化结果产生下一个指令。将产生的测试程序提供至待验证的计算装置600。
在各个实施例中,测试产生器的第三子组件产生测试程序的指令并且随后更新参考模型的状态。在这样的实施例中,测试产生器可形成各种测试环境。
将传递的测试程序存储在待验证的计算装置600的存储器器件620中。在待验证的SoC 610上执行测试程序。待验证的SoC 610借由测试程序执行验证操作。执行测试程序的方法与参照图4描述的验证操作方法相同或相似,并且为了简单起见,省略其描述。
图17是示出根据本发明构思的示例实施例的图16所示的主机SoC的测试程序产生方法的流程图。将描述通过参照图5描述的SoC 510来执行图17所示的测试程序产生方法的执行。然而,应该注意,具有与SoC 510相同或相似的构造的任何SoC器件可根据图17所示的方法执行测试程序产生方法。参照图16和图17,包括在主机SoC 510中的处理器借由参考模型产生测试程序。
在操作S805中,包括测试产生器的SoC 510读取包括在测试模板中的指令语句。
在操作S810中,包括测试产生器的SoC 510的第一子组件确定是否检测到特定条件。
作为确定未检测到特定条件的结果,在操作S815中,包括测试产生器的SoC 510产生对应于指令语句的指令。
在操作S820中,包括测试产生器的SoC 510将产生的指令馈送到参考模型中。
作为确定检测到特定条件的结果,在操作S825中,包括测试产生器的SoC 510形成或产生异常引发指令。
在操作S830中,包括测试产生器的SoC 510检测包括在异常引发指令中的关于处理器的切换意图。在检测结果指示存在关于处理器的切换意图的情况下,SoC 510前进至操作S835。在检测结果指示不存在关于处理器的切换意图的情况下,SoC 510前进至操作S840。
当存在关于处理器的切换意图时,在步骤S835中,包括测试产生器的SoC 510将无操作指令(下文中,称作NOP指令)馈送至参考模型中。NOP指令改变将产生下一个命令的参考模型的位置,而不改变操作状态。
当不存在关于处理器的切换意图时,在操作S840中,包括测试产生器的SoC 510将异常引发指令馈送至参考模型中。
在操作S845中,包括测试产生器的SoC 510将包括在异常处理程序中的固定指令序列馈送至参考模型。
在操作S850中,包括测试产生器的SoC 510获取由于操作S820、S835或S845的指令馈送导致的参考模型的改变后的状态。包括测试产生器的SoC 510应用所获得的参考模型的改变后的状态来产生下一个指令。
在操作S855中,包括测试产生器的SoC 510确定测试模板是否包括接下来将要读取的指令语句。当测试模板不包括接下来将要读取的指令语句时,包括测试产生器的SoC510使测试程序结束。当测试模板包括接下来将要读取的指令语句时,SoC 510前进至操作S805,其中包括测试产生器的SoC 510读取下一个指令语句。
根据该测试程序产生方法,包括在主机SoC 510中的处理器借由参考模型产生应用了多种测试环境的测试程序。
可根据多种不同封装技术中的任一种封装根据本发明构思的存储器芯片和系统芯片。所述封装技术的示例可包括以下技术:层叠封装(PoP)、球栅阵列(BGA)、芯片尺寸封装(CSP)、塑料引线芯片载体(PLCC)、塑料双列直插式封装(PDIP)、华夫组件芯片、华夫形式芯片、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料公制四方扁平封装(MQFP)、小外形IC(SOIC)、收缩型小外形封装(SSOP)、薄型小外形封装(TSOP)、薄型四方扁平封装(TQFP)、系统级封装(SIP)、多芯片封装(MCP)、晶圆级制造封装(WFP)和晶圆级堆叠封装(WSP)。
虽然已经参照示例性实施例描述了本发明构思,但是本领域技术人员应该清楚,在不脱离本发明构思的精神和范围的情况下,可作出各种改变和修改。因此,应该理解,以上示例实施例是非限制性的,相反,以上示例实施例是说明性的。

Claims (19)

1.一种系统芯片的验证方法,包括步骤:
通过包括在系统芯片中的处理器接收测试产生器和异常处理程序;
基于测试模板,通过包括所述测试产生器的处理器来产生包括异常引发指令的测试程序;
在执行上述测试程序时,通过处理器在第一操作状态下执行第一指令;
当在所述测试程序的执行过程中执行了所述异常引发指令时,通过处理器使所述测试程序的执行停止;
当在所述测试程序的执行过程中执行了所述异常引发指令时,通过处理器执行包括在所述异常处理程序中的固定指令序列;以及
在执行所述固定指令序列之后设置的第二操作状态下从第二指令恢复执行所述测试程序,所述第二指令的地址位于紧挨着所述异常引发指令的地址之后,
其中,所述测试产生器为一种程序、程序代码和/或软件模块。
2.根据权利要求1所述的验证方法,其中所述恢复执行测试程序的步骤包括:
在从所述第一操作状态改变为所述第二操作状态时,(i)在与执行所述第一指令的处理器不同的另一处理器上执行所述第二指令,或者(ii)利用与所述第一指令的权限等级不同的一个权限等级和与所述第一指令的指令集不同的一个指令集二者当中的至少一个来执行所述第二指令。
3.根据权利要求1所述的验证方法,其中,产生所述测试程序的步骤包括:
读取包括在所述测试模板中的第一指令语句;
产生对应于所述第一指令语句的第一指令,从而在所述第一操作状态下执行所述第一指令;
读取包括在所述测试模板中的状态变更指令语句;
产生所述异常引发指令,所述异常引发指令包括关于操作状态的切换意图,所述关于操作状态的切换意图指示了改变系统芯片的操作状态,所述关于操作状态的切换意图对应于所述状态变更指令语句;
读取在所述状态变更指令语句之后紧挨着的第二指令语句;以及
产生对应于所述第二指令语句的第二指令,从而在与所述异常引发指令的地址邻近的地址处在所述第二操作状态下执行所述第二指令。
4.根据权利要求3所述的验证方法,其中,利用所述测试产生器的第一子组件检测所述关于操作状态的切换意图。
5.一种系统芯片的验证方法,所述系统芯片包括处理器并支持至少两个指令集,所述验证方法包括步骤:
通过处理器接收测试产生器和异常处理程序;
基于测试模板,通过包括所述测试产生器的处理器来产生包括异常引发指令的测试程序;
在执行所述测试程序时,通过处理器执行第一指令,所述第一指令是基于所述至少两个指令集中的第一指令集产生的;
当在所述测试程序的执行过程中执行了所述异常引发指令时,通过处理器使所述测试程序的执行停止;
当在所述测试程序的执行过程中执行了所述异常引发指令时,通过处理器执行包括在所述异常处理程序中的固定指令序列;以及
在执行所述固定指令序列之后,从第二指令恢复执行所述测试程序,所述第二指令对应于与所述异常引发指令的地址邻近的地址,并且根据所述至少两个指令集中的第二指令集产生所述第二指令,
其中,所述测试产生器为一种程序、程序代码和/或软件模块。
6.根据权利要求5所述的验证方法,其中,产生所述测试程序的步骤包括:
读取包括在所述测试模板中的第一指令语句;
基于所述第一指令集产生对应于所述第一指令语句的第一指令;
读取包括在所述测试模板中的状态变更指令语句;
产生所述异常引发指令,所述异常引发指令包括关于指令集的切换意图,所述关于指令集的切换意图指示了改变待处理的指令集的状态,所述关于指令集的切换意图对应于所述状态变更指令语句;
读取在所述状态变更指令语句之后紧挨着的第二指令语句;以及
在与所述异常引发指令的地址邻近的地址处,基于所述第二指令集产生对应于所述第二指令语句的第二指令。
7.根据权利要求6所述的验证方法,其中,所述状态变更指令语句包括所述关于指令集的切换意图。
8.根据权利要求7所述的验证方法,其中,利用所述测试产生器的第一子组件检测所述关于指令集的切换意图。
9.根据权利要求8所述的验证方法,其中,通过所述测试产生器的第二子组件检测所述第一指令的内容和所述第二指令的内容。
10.根据权利要求6所述的验证方法,其中,利用包括在所述异常引发指令中的变元检测所述关于指令集的切换意图。
11.根据权利要求6所述的验证方法,还包括步骤:
通过将所述第一指令、第二指令和异常引发指令中的至少一个馈送至参考模型以获得模型化结果,并且
所述模型化结果包括当执行所述第一指令、第二指令和异常引发指令中的所述至少一个时关于验证目标处理器的状态改变的信息。
12.根据权利要求11所述的验证方法,其中,获得所述模型化结果的步骤包括:
当所述验证目标处理器包括至少两个处理器核时,对包括在所述异常引发指令中的关于处理器的切换意图进行检测;以及
当检测到所述关于处理器的切换意图时,将无操作指令馈送至所述参考模型而不馈送所述异常引发指令,并且
所述无操作指令用于在所述参考模型的状态不改变的情况下设置将要产生的下一个指令的位置。
13.根据权利要求11所述的验证方法,其中,
在不包括所述验证目标处理器的主机系统芯片上形成产生的所述测试程序,并且
在包括所述验证目标处理器的系统芯片上完成执行所述第一指令的步骤、执行所述固定指令序列的步骤和恢复执行所述测试程序的步骤。
14.一种系统芯片的验证方法,所述系统芯片包括处理器并支持至少两个权限等级,所述验证方法包括步骤:
通过处理器接收测试产生器和异常处理程序;
基于测试模板,通过包括所述测试产生器的处理器来产生包括异常引发指令的测试程序;
在执行所述测试程序时,通过处理器以所述至少两个权限等级的第一权限等级执行第一指令;
当在所述测试程序的执行过程中执行了所述异常引发指令时,通过处理器使所述测试程序的执行停止;
当在所述测试程序的执行过程中执行了所述异常引发指令时,通过处理器执行包括在所述异常处理程序中的固定指令序列;以及
在执行所述固定指令序列之后,从第二指令恢复执行所述测试程序,所述第二指令对应于与所述异常引发指令的地址邻近的地址,并且以所述至少两个权限等级的第二权限等级执行所述第二指令,
其中,所述测试产生器为一种程序、程序代码和/或软件模块。
15.根据权利要求14所述的验证方法,其中,产生所述测试程序的步骤包括:
读取包括在所述测试模板中的第一指令语句;
产生所述第一指令,所述第一指令对应于所述第一指令语句,从而以所述第一权限等级执行所述第一指令;
读取包括在所述测试模板中的状态变更指令语句;
产生所述异常引发指令,所述异常引发指令包括关于权限等级的切换意图,所述关于权限等级的切换意图指示了从所述第一权限等级切换至所述第二权限等级,所述关于权限等级的切换意图对应于所述状态变更指令语句;
在所述测试模板中读取在所述状态变更指令语句之后紧挨着的第二指令语句;以及
产生所述第二指令,所述第二指令对应于所述第二指令语句,从而在与所述异常引发指令的地址邻近的地址处,以所述第二权限等级执行所述第二指令。
16.根据权利要求14所述的验证方法,其中,执行所述固定指令序列的步骤包括:
当所述系统芯片以所述第一权限等级操作时,存储所述系统芯片的第一状态信息;以及
当在所述固定指令序列的执行过程中所述系统芯片以所述第二权限等级操作时,恢复所述系统芯片的第二状态信息。
17.根据权利要求16所述的验证方法,其中,所述第一状态信息和所述第二状态信息存储在连接至所述系统芯片的存储器器件的第一区域,将所述第一区域分配为以所述第一权限等级存储所述第一状态信息和所述第二状态信息。
18.根据权利要求17所述的验证方法,其中,所述第一状态信息和所述第二状态信息存储在连接至所述系统芯片的存储器器件的第二区域,将所述第二区域分配为以所述第二权限等级存储所述第一状态信息和所述第二状态信息。
19.一种计算系统,包括:
存储器器件,其构造为存储用于产生测试程序的第一数据、测试产生器和异常处理程序;以及
至少两个处理器,所述至少两个处理器中的每一个构造为利用所述第一数据和所述测试产生器产生所述测试程序;
当产生所述测试程序时,所述测试产生器构造为当从所述第一数据中检测到关于处理器的切换意图时由所述测试产生器产生第二数据,并且
当通过所述至少两个处理器的第一处理器执行所述测试程序时,所述第一处理器构造为:
根据所述第二数据停止执行所述测试程序,并且
使用所述异常处理程序根据所述第二数据执行固定指令序列,从而在所述至少两个处理器中的第一处理器和第二处理器之间进行切换之后恢复执行所述测试程序,
其中,所述测试产生器为一种程序、程序代码和/或软件模块。
CN201510167012.8A 2014-04-09 2015-04-09 系统芯片及其验证方法 Expired - Fee Related CN104978249B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461977223P 2014-04-09 2014-04-09
US61/977,223 2014-04-09
KR10-2014-0091962 2014-07-21
KR1020140091962A KR102147172B1 (ko) 2014-04-09 2014-07-21 시스템 온 칩 및 그것의 검증 방법

Publications (2)

Publication Number Publication Date
CN104978249A CN104978249A (zh) 2015-10-14
CN104978249B true CN104978249B (zh) 2019-02-22

Family

ID=54265172

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510167012.8A Expired - Fee Related CN104978249B (zh) 2014-04-09 2015-04-09 系统芯片及其验证方法

Country Status (2)

Country Link
US (2) US9448917B2 (zh)
CN (1) CN104978249B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110275818B (zh) * 2018-03-13 2024-04-30 龙芯中科技术股份有限公司 硅后验证方法、装置及存储介质
CN109344086B (zh) * 2018-11-15 2021-09-17 天津津航计算技术研究所 一种基于sip芯片的软件测试平台
WO2020113526A1 (zh) * 2018-12-06 2020-06-11 华为技术有限公司 一种芯片验证方法和装置
CN111523283B (zh) * 2020-04-16 2023-05-26 北京百度网讯科技有限公司 一种验证处理器的方法、装置、电子设备及存储介质
CN113641538A (zh) * 2020-04-24 2021-11-12 慧荣科技股份有限公司 具有实时中断验证功能的记忆体验证系统及方法
US11740929B2 (en) 2020-10-20 2023-08-29 Micron Technology, Inc. Registering a custom atomic operation with the operating system
US11693690B2 (en) 2020-10-20 2023-07-04 Micron Technology, Inc. Method of completing a programmable atomic transaction by ensuring memory locks are cleared
US11586439B2 (en) 2020-10-20 2023-02-21 Micron Technology, Inc. Detecting infinite loops in a programmable atomic transaction
US11436187B2 (en) * 2020-10-20 2022-09-06 Micron Technology, Inc. Method of notifying a process or programmable atomic operation traps
US11403023B2 (en) 2020-10-20 2022-08-02 Micron Technology, Inc. Method of organizing a programmable atomic unit instruction memory
CN113010361B (zh) * 2021-02-22 2022-03-18 无锡中微亿芯有限公司 全可编程soc芯片的mio功能快速验证方法
US20220283813A1 (en) * 2021-03-02 2022-09-08 Intel Corporation Flexible return and event delivery
CN116776788B (zh) * 2023-08-22 2024-03-19 摩尔线程智能科技(北京)有限责任公司 上下文切换验证方法及装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6606721B1 (en) 1999-11-12 2003-08-12 Obsidian Software Method and apparatus that tracks processor resources in a dynamic pseudo-random test program generator
US6871298B1 (en) 1999-11-12 2005-03-22 Obsidian Software, Inc. Method and apparatus that simulates the execution of paralled instructions in processor functional verification testing
US6928638B2 (en) * 2001-08-07 2005-08-09 Intel Corporation Tool for generating a re-generative functional test
US20030074650A1 (en) * 2001-10-17 2003-04-17 Tankut Akgul Debugger operating system for embedded systems
US7353156B2 (en) * 2002-02-01 2008-04-01 International Business Machines Corporation Method of switching external models in an automated system-on-chip integrated circuit design verification system
US7133816B2 (en) * 2002-11-04 2006-11-07 International Business Machines Corporation Test quality through resource reallocation
US7383540B2 (en) * 2003-12-12 2008-06-03 International Business Machines Corporation Altering execution flow of a computer program
US20050216895A1 (en) * 2004-03-23 2005-09-29 Tran Hieu T Method and apparatus for remote debugging of kernel and application software
US7434101B2 (en) 2005-03-21 2008-10-07 International Business Machines Corporation Highly specialized scenarios in random test generation
US7627843B2 (en) 2005-03-23 2009-12-01 International Business Machines Corporation Dynamically interleaving randomly generated test-cases for functional verification
US7434182B2 (en) * 2005-07-14 2008-10-07 International Business Machines Corporation Method for testing sub-systems of a system-on-a-chip using a configurable external system-on-a-chip
US7958422B2 (en) 2006-03-27 2011-06-07 Sapphire Infotech, Inc. Method and apparatus for generating self-verifying device scenario code
US20080189528A1 (en) 2007-02-02 2008-08-07 Mips Technologies, Inc. System, Method and Software Application for the Generation of Verification Programs
DE102007041212A1 (de) 2007-08-31 2009-03-05 Advanced Micro Devices, Inc., Sunnyvale Latenzabdeckung und Anwendung auf die Erzeugung von Multiprozessor-Testgeneratorvorlagen
KR101470319B1 (ko) 2008-02-15 2014-12-08 삼성전자주식회사 컴포넌트 모델 기반의 가상 소프트웨어 플랫폼을 생성하는방법, 이를 이용하여 소프트웨어 플랫폼 아키텍처를검증하는 방법 및 그 장치
US7945888B2 (en) 2008-02-28 2011-05-17 International Business Machines Corporation Model-based hardware exerciser, device, system and method thereof
US8555123B2 (en) * 2008-07-23 2013-10-08 Industrial Technology Research Institute Test device and method for the SoC test architecture
US8359456B2 (en) 2010-02-22 2013-01-22 International Business Machines Corporation Generating random addresses for verification of distributed computerized devices
US8397217B2 (en) 2010-02-22 2013-03-12 International Business Machines Corporation Integrating templates into tests
US8812826B2 (en) 2010-10-20 2014-08-19 International Business Machines Corporation Processor testing
TW201221981A (en) * 2010-11-24 2012-06-01 Inventec Corp Multi-chip testing system and testing method thereof
US8811912B2 (en) * 2012-04-06 2014-08-19 At&T Mobility Ii Llc Remote control of mobile devices to perform testing of wireless communications networks

Also Published As

Publication number Publication date
US9990205B2 (en) 2018-06-05
US20160371092A1 (en) 2016-12-22
US20150293835A1 (en) 2015-10-15
US9448917B2 (en) 2016-09-20
CN104978249A (zh) 2015-10-14

Similar Documents

Publication Publication Date Title
CN104978249B (zh) 系统芯片及其验证方法
US10522193B2 (en) Processor with host and slave operating modes stacked with memory
US20140040532A1 (en) Stacked memory device with helper processor
US10923463B2 (en) Method and machine-readable medium for configuring processors with base dies having landing slots
US20150199126A1 (en) Page migration in a 3d stacked hybrid memory
US9146609B2 (en) Thread consolidation in processor cores
US10817353B1 (en) Adaptable dynamic region for hardware acceleration
JP4602047B2 (ja) 情報処理装置
US20240078112A1 (en) Techniques for decoupled access-execute near-memory processing
Chen et al. A 3-D CPU-FPGA-DRAM hybrid architecture for low-power computation
CN110727611B (zh) 一种带状态监测的可配置一致性验证系统
TWI743400B (zh) 用以避免負載填充衝突的設備以及系統
CN108693466B (zh) 一种边界扫描器件、装置及控制方法和扫描方法
US20210319138A1 (en) Utilizing logic and serial number to provide persistent unique platform secret for generation of soc root keys
TWI643064B (zh) 系統單晶片及其驗證方法
Cai et al. Fault sharing in a copy-on-write based ATPG system
Park et al. An effective programmable memory bist for embedded memory
US20150154124A1 (en) Secure data partition in nonvolatile memory systems
US9361103B2 (en) Store replay policy
JP2014116013A (ja) 特殊機能レジスタを含むSoC
US10642765B1 (en) Productivity language interface for synthesized circuits
US20230318825A1 (en) Separately storing encryption keys and encrypted data in a hybrid memory
US10747928B2 (en) Diagnostic testing of FPGAs for safety critical systems
US20150178111A1 (en) Hypervisor managed scheduling of virtual machines

Legal Events

Date Code Title Description
C06 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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190222

Termination date: 20210409