CN103744775A - 测试用例崩溃恢复 - Google Patents

测试用例崩溃恢复 Download PDF

Info

Publication number
CN103744775A
CN103744775A CN201310350613.3A CN201310350613A CN103744775A CN 103744775 A CN103744775 A CN 103744775A CN 201310350613 A CN201310350613 A CN 201310350613A CN 103744775 A CN103744775 A CN 103744775A
Authority
CN
China
Prior art keywords
test
collapse
data logging
voltage
test procedure
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
Application number
CN201310350613.3A
Other languages
English (en)
Inventor
J·德迈
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of CN103744775A publication Critical patent/CN103744775A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2851Testing of integrated circuits [IC]
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/30Marginal testing, e.g. by varying supply voltage
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/30Marginal testing, e.g. by varying supply voltage
    • G01R31/3004Current or voltage test
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31718Logistic aspects, e.g. binning, selection, sorting of devices under test, tester/handler interaction networks, Test management software, e.g. software for test statistics or test evaluation, yield analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/24Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明涉及测试用例崩溃恢复。可以通过为集成电路(IC)选择在第一电压和第一频率的工作点来确定复杂集成电路的安全工作区。测试程序由在IC内包含的中央处理单元(CPU)执行从而测试该IC的一部分。在测试程序正在执行的同时,记录IC和主机系统之间的通信活动从而形成数据日志。通过周期性地存储并且检查数据日志来检测崩溃,并且当在数据日志的检查期间检测到一组预定的崩溃状况中的任何一个时,认为测试程序已崩溃。可以反复改变工作点并且重复测试程序的执行,同时继续检查崩溃,直到检测到崩溃。

Description

测试用例崩溃恢复
技术领域
本发明总体涉及复杂集成电路的测试和评估,并且特别涉及以时间高效的方式确定电压和频率操作的极限。
背景技术
片上系统(SoC)是已存在了长时间的概念;基本途径是将越来越多的功能集成到给定器件中。该集成可以采取硬件和解决方案软件的形式。性能增益传统上通过增加时钟频率并且通过使用更先进的处理器节点来实现。许多SoC设计将数字信号处理器(DSP)与精简指令集(RISC)处理器配对从而瞄准特定应用。
当设计新的SoC时,其必须被表征以确定在SoC上的各种处理器、存储器和其他逻辑模块正确工作的电压和频率的范围。这一般通过执行各种测试程序来完成,各种测试程序在选定的电压、频率和温度的工作点下对SoC内的各种数据路径、存储器和控制逻辑的全部或大部分进行测试。如果测试套件崩溃,或如果其检测到错误结果,则可以认为,当前工作点在安全工作区外。相似地,如果测试套件成功完成,则可以认为,当前工作点在安全工作区内。在每个测试通过或失败之后,可以改变电压、频率和/或温度并且重复测试。重复该过程,直到识别安全工作区。
发明内容
附图说明
现在通过示例并且参考附图描述根据本发明的特定实施例:
图1是包括本发明的实施例的测试台的框图;
图2是图解用于确定安全工作区的测试流程的流程图;
图3是图解基于UART日志文件的分析检测崩溃的流程图;以及
图4是图解安全工作区的图表;
图5是片上系统(SoC)的功能框图;
本实施例的其他特征从附图并且从以下详细描述中将显而易见。
具体实施方式
现在参考附图详细描述本发明的具体实施例。在各种附图中,相似元素由相似参考数字标注,以便保持一致。在本发明的实施例的以下详细描述中,阐述众多具体细节是为了提供对本发明的更透彻理解。然而,对本领域技术人明显的是,可以在没有这些具体细节的情况下实施本发明。在其他实例中,不详细描述众所周知的特征从而避免将描述不必需地复杂化。
当设计新的SoC(片上系统)时,其必须被表征以确定在SoC上的各种处理器、存储器和其他逻辑模块正确工作的电压和频率的范围。主机测试系统可以用来指导SoC执行一套测试程序,这些测试程序在选定的电压、频率和温度的工作点下对SoC内的各种数据路径、存储器和控制逻辑的全部或大部分进行历练(exercise)。如果测试套件崩溃,或如果其检测到错误结果,则可以认为,当前工作点在安全工作区外。相似地,如果测试套件成功完成,则可以认为,当前工作点在安全工作区内。在每个测试通过或失败之后,可以改变电压、频率和/或温度并且重复测试。重复该过程,直到识别安全工作区。
崩溃可能发生在测试程序执行期间的任何时间。通常,崩溃可能在不向控制表征过程的主机测试系统提供任何指示的情况下发生。结果,主机测试系统必须在其没有从SoC接收状态更新时确定SoC是否已经崩溃。主机测试系统可以在接收最后的状态更新之后等待定义的超时时间段;然而,超时时间段必须足够长以覆盖在测试程序套件中的最坏情况响应时间。结果,超时时间段可能需要足够长,使得完全确定安全工作区所需要的总测试时间过多。
在此将描述一种时间更高效的崩溃检测过程,其允许在不等待定义的超时时间段的情况下检测崩溃。该改善的崩溃检测过程在时间上被优化,以允许迅速检测崩溃,而不过早地停止仅仅是响应缓慢的测试程序。
本发明的实施例可以包括耦合到被表征的SoC的主机测试系统。该耦合可以经由通信信道来实现,该通信信道建立在主机测试系统上的通信端口和SoC上的通信端口之间。例如,通用异步接收器/发射器(UART)可以被包括在主机测试系统内和SoC内,从而提供串行通信信道。使用该信道,主机测试系统可以指导SoC内的处理器执行测试程序。在测试程序的执行期间,由在SoC上的处理器执行的另一过程可以经由通信信道将状态更新消息发送回到主机测试系统。来自SoC的状态更新消息流可以通过主机测试系统上执行的过程收集在日志文件中。该日志文件在此称为UART日志文件。在其他实施例中,可以使用不是UART的通信接口;例如其可以是并行通信信道,其可以基于有线或无线技术等。在全部实施例中,通用术语“UART日志文件”可以用来指代在一段时间内从被测试的SoC收集的一组状态数据。
为了高效检测崩溃并且从崩溃恢复,主机测试系统需要处理崩溃情形,例如以下崩溃情形:空的UART日志文件,其可能由设置错误导致;过大的UART日志文件,其可能在SoC崩溃时该SoC发送未知的和不可预测的字符时导致;检测到已知的关键字,该关键字可以在测试程序检测到错误但没有崩溃时被发送;以及冻结的UART日志文件,在其中没有新信息被接收。关键字检测可以发生在测试程序历练SoC内的一部分逻辑并且该测试失败时;然而,测试程序自身仍然在执行,并且其可能使关键字例如“中止”或一些其他预定义的消息被发送到主机测试系统。
另一实施例可以在大量SoC的生产测试期间使用。在生产测试期间,向被测试的SoC提供通信链路可能不是经济的。然而,生产测试台可以经由SoC封装(例如球栅阵列)上的连接点耦合到SoC上的存储器电路。在此情况下,主机测试系统可以监控由SoC内的处理器执行的测试套件写入到存储器的区域的状态消息。写入到存储器区的数据可以用来为该实施例创建“UART日志文件”。
由于计算和通信能力指数增长同时受到便携装置的电池能量存储、最大表面和内部温度约束,因此设计师需要越来越复杂的省电技术。由CMOS器件消耗的开关功率是P=CV2F,其中C=负载电容,V=供电电压并且F=开关频率。降低供电电压减小了消耗的功率,并且因此节省了电池能量,并且便携器件的内部温度控制更容易。因此在许多应用中识别器件可靠工作的最低电压是有利的。
图1是包括本发明的实施例的测试台100的框图。SoC110是要被表征的目标器件。其可以被安装在连接器中,该连接器耦合到平台电路板112从而提供到测试台其他部分的电缆连接。电路板112可以包括由测试台使用的其他部件,或其可以除了用于SoC110的插座之外基本上是空的。在该实施例中,电源管理集成电路(PMIC)144被包括并且耦合,从而接收由电源140提供的电力,并且供应SoC110需要的各种电压。
测试主机系统120可以是个人计算机、膝上计算机或另一类型的处理系统,该处理系统包括处理器和可以由该处理器执行从而实施系统监控器122的程序。系统监控器122访问测试用例程序123,测试用例程序123可以经由JTAG通信信道125下载到SoC110。代码编译器环境(Code Composer Studio)(CCS)是众所周知的电路内仿真器,其可以从德州仪器公司获得的,并且被包括在该实施例中作为系统监控器122。
JTAG(联合测试行动组)总线125也在SoC110和系统监控器122之间提供通信信道。JTAG是后来被标准化为IEEE1149.1的公共名称。它是在SoC110内包括标准化测试访问端口和边界扫描逻辑的众所周知的方案。JTAG通常用作访问集成电路的子模块的主装置,从而使其成为用于调试可能不支持任何其他能够调试的通信信道的嵌入式系统的有用机构。在大多数系统上,基于JTAG的调试可以从CPU复位之后的第一条指令获得,从而使其支持在任何软件安装之前运行的早期引导软件的开发。所谓的电路内仿真器(例如CCS)(或更正确地,“JTAG适配器”)使用JTAG作为传送机构,从而访问目标CPU内的片上调试模块。这些模块使软件开发者在需要时在机器指令级下直接调试嵌入式系统的软件,或(更通常地)用高级语言源代码调试嵌入式系统的软件。除调试之外,JTAG的另一应用是允许主机测试系统将数据传递到内部易失性器件存储器中。
系统监控器122可以在SoC110的表征过程期间和/或在该过程的结束时创建报告126。系统监控器122也可以发出电子邮件通知127,从而更新可能在远程位置的操作员。
电源140提供5V供电电压,该供电电压被提供到SoC平台板112,以便由SoC110使用。通过一旦检测到崩溃或测试错误则切换到从系统监控器122断开并且接着再次接通,电源140允许SoC平台板112正确恢复。在其他实施例中,可以基于被测试的SoC的需求提供不同的供电电压。在该实施例中,PMIC114接收5V,并且可以响应于经由UART信道接收的命令而提供从0.5V到1.8V的电压。然而在该示例中,SoC110工作在从0.7V到1.4V的范围内。在该实施例中,SoC110需要三个供电电压,一个用于片上微处理器(MPU),一个用于图像、视频和音频加速器(IVA),以及一个用于核心逻辑(CORE)的剩余部分。在该示例中,SoC110的工作频率范围,对于MPU(微处理器单元)子系统是400MHz到1.7GHz,对于IVA(图像、视频和音频)子系统是200MHz到500MHz,以及对于存储器子系统是200MHz到450MHz。
数字式万用表130耦合到中继器模块132,中继器模块132允许在测试期间选择并监控由PMIC114产生的三个电压中的每一个电压。万用表130经由GPIB电缆(通用接口总线)耦合到主机测试系统120,GPIB电缆也称为IEEE-488,是在测试系统中普遍使用的短距离数字通信总线规范。中继器模块132由系统监控器122经由另一众所周知的接口标准即USB(通用串行总线)连接控制。
在SoC110上的UART由UART驱动器管理,该UART驱动器是被包括在SoC上的公共环境软件的一部分。这允许独立于在SoC上执行的测试用例/模式而使用UART。公共环境软件用来通过设定电压、启用时钟、唤醒一些IP如CPU、UART等,从而将SoC初始化。在主机测试系统120内的UART由通信包(communication package)管理,该通信包能够创建日志文件以保存经由UART通信信道124传输的全部信息。在该实施例中,使用称为Tera Term的通信包,其为支持UTF-8(UCS变换格式-8位)协议的开源自由软件终端仿真器。它也可以支持SSH1(安全外壳1)和/或SSH2(安全外壳2)协议。
在执行测试时,可能发生两级通信。第一级通信独立于测试用例/模式。系统监控器可以向SoC平台112发送一些命令以改变电压、时钟频率和其他具体配置,从而建立特定的工作点。然后SoC平台112回答系统监控器,从而指示执行所请求的改变是否成功。如果一切良好,则系统监控器请求SoC起动/执行指定测试用例/模式。否则,执行重试并且在某个数目的尝试之后,测试可以被指示为失败。
第二级通信是依赖于测试用例/模式的。SoC110经由UART信道124向系统监控器发送信息。该信息可以包括与什么在测试自身内运行有关的陈述,例如其在哪里、是否一切良好等,针对测试用例/模式的信息。当每个测试用例/模式结束时,如果该测试用例/模式可以被执行直到其结束而没有崩溃,则由已知关键字报告其状态,例如报告为“测试用例失败”或“测试用例通过”。
图2是图解用于确定安全工作区的测试流程的流程图,该测试流程利用在此描述的检测程序崩溃的例程。由于如在早先描述的,当前实施例的SoC具有三个电压域(MPU、IVA和CORE),因此选择202其中一个域以便进行表征。测试用例程序123能够通过仅提供位置路径逐一找到全部测试用例程序123并且运行它们,而不需要提供要被加载并且运行的测试用例程序123的名称或列表。每个测试用例程序123也伴随有文本文件,该文本文件包括由系统监控器122使用的一些环境变量。这样的环境变量向系统监控器122指示使用哪个UART端口号、选择202哪个电压域等。选择204初始工作点。如在早先提到的,工作点可以包括例如电压、频率和温度。一旦选择了工作点,就从系统监控器发送命令,以将数字锁相环(DPLL)锁定206到选定的频率。命令还被发送到中继器模块132,从而监控选定的电压域。接着通过从系统监控器122向PMIC114发送命令从而生成指定电压,将提供到选定的电压域的电压设定208到应该良好位于安全工作区内的初始电压搜索值。系统监控器122可以读取数字式万用表130,从而验证已经生成选定的电压,并且如果需要,则发送另外的PMIC命令。
接着,系统监控器122选择测试用例程序123中合适的一个测试用例程序,并且经由JTAG接口125将其下载到SoC110。一旦下载了测试用例,系统监控器122就经由JTAR UART信道124向SoC110发送命令,该命令使测试用例被SoC110内的处理器执行。当执行测试用例时,状态信息经由JTAR UART信道124被发送回到系统监控器122,如在早先描述的。接着,系统监控器122分析UART日志文件,从而确定212测试用例是否成功完成、是否检测到错误或崩溃。每当测试用例成功完成时,域搜索电压被减小214传递到PMIC114的步进值,并且接着重启210测试。该迭代循环继续,直到检测到212崩溃或故障。
一旦检测到崩溃,当前搜索电压值就被保存216并且识别为故障值。接着,通过在系统监控器122的控制下切断并且然后再次接通电源140,由电源140帮助执行SoC平台板112的正确恢复。接着,通过从系统监控器经由JTAG125接口向SoC110发送命令,重新启动SoC。在重新启动之后,频率再次被锁定220在DPLL中。接着,将用于选定域的搜索电压设定222到比上次故障电压高一个步进的值。接着,通过如上面描述地向SoC110发送命令来运行224测试用例,并且UART日志再次被监控以检测228测试用例执行的成功或失败。每当测试用例失败228时,执行SoC平台板112的正确恢复,重新启动SoC并且将域搜索电压增加230传递到PMIC114的步进值,并且接着重新启动224测试。该迭代循环继续,直到测试用例被正确执行228。接着测量232域电压,并且将其保存为在当前频率值下正确工作的最终最小电压值。以此方式,针对电压的向下斜降确定初始故障电压,并且接着针对电压的向上斜升确定最终最小工作电压。
用新的工作点238重复234该整个迭代过程,直到完成最后的工作点。此时,可以基于在一频率范围上所测得的电压232生成236记载了安全工作区的报告。
SoC110的完整表征可能花费若干小时,这取决于测试用例程序套件的复杂性和执行时间、崩溃检测时间以及每次崩溃之后重新启动的时间。在该时间期间,系统监控器122可以向监督表征过程的技术人员发送电子邮件通知,从而提供关于表征过程进展的更新。
图3是图解基于在关于图2描述的测试过程期间创建的UART日志文件的分析检测崩溃的流程图。每当运行302测试用例时,崩溃检测过程开始。运行测试用例302是指图2中的210和224。初始化304两个变量:emptylog被设定为“0”并且freezeuart被设定为“0”。当开始测试用例时,UART日志文件被清空,使得初始UART日志文件长度为零。接着,当前日志文件的内容被复制306到称为“log1”的文件,以便以后使用。接着,崩溃检测过程等待308一指定睡眠时间段/周期(period),同时测试用例继续运行。睡眠时间段(其总是较短的以优化崩溃时间检测)可以是默认值,或在一些实施例中,操作员对系统监控器122的输入可以用来指定该睡眠时间段。
在睡眠时间段结束时,崩溃检测过程恢复,并且扫描310当前UART日志文件的大小。如果UART日志文件长度仍等于零312,则emptylog变量被递增322一增量值,通常是1。如果emptylog变量的值超过324最大emptylog值,则认为,崩溃已发生并且启动330崩溃恢复过程。如果emptylog变量的值小于324最大emptylog值,则崩溃检测过程返回到睡眠308。最大emptylog值可以是默认值,或在一些实施例中,操作员对系统监控器122的输入可以用来指定该最大emptylog值。空的UART日志文件可能由设置错误或阻止测试用例运行的一些其他问题导致。
如果UART日志文件长度不等于零312,则将UART日志文件的大小与UART日志文件大小极限值进行比较314。如果UART日志的大小等于或大于极限值,则认为崩溃已发生,并且启动崩溃恢复过程330。过大的UART日志文件可能在SoC崩溃时由该SoC传输未知的和不可预测的字符时导致。
如果UART日志的大小不等于或大于极限值314,则针对具体已知的关键字解析UART日志文件。在该实施例中,已知关键字是:“中止”、“达到最小SMPS电压”和“测试用例故障”。当测试用例在其正在测试的硬件中检测到故障,但是硬件故障没有导致测试用例程序的执行崩溃时,关键字将出现在UART日志文件中。其他实施例可以具有更多、更少或不同的关键字,这取决于使用的测试用例程序。如果检测到关键字318,则认为一些种类的故障已发生并且启动330崩溃恢复过程330。
如果没有检测到关键字318,则将当前UART日志文件与存储306在名为log1的文件中的UART日志文件的先前内容进行比较。如果它们相同,则freezeuart变量被递增328一增量值,通常为1。如果freezeuart变量的值超过328最大freezeuart值,那么认为崩溃已发生并且启动崩溃恢复过程330。如果freezeuart变量的值小于328最大freezeuart值,则崩溃检测过程返回到睡眠308。最大freezeuart值可以是默认值,或在一些实施例中,操作员对系统监控器122的输入可以用来指定该最大freezeuart值。
一旦基于在上面描述的测试认为崩溃状况发生,就保存330当前日志文件。保存的内容可以在以后的时间进行分析。接着,杀死332系统监控器122上的可能正在等待来自测试用例的响应的任何过程。杀死334系统监控器上的正在监控UART的终端仿真器程序。接着关闭336SoC平台112,使得SoC110被复位。在复位SoC并且杀死全部未决过程之后,接着接通338SoC平台112。接着由系统监控器122使用JTAG接口执行SoC110的完全重新启动,如上面描述的。
在SoC完成重新启动之后,接着系统监控器在图2中的212或228处恢复测试用例执行。注意,重新启动操作218不是另外的重新启动;其仅为清晰而示出。
图4是电压与工作频率关系的曲线图,其图解可以使用上面描述的过程高效确定的安全工作区。在该示例中,曲线402代表SoC110内的MPU电压域上的N-MOS晶体管的设计目标,曲线404代表SoC110内的MPU电压域上的P-MOS晶体管的设计目标,并且曲线406代表如上面描述的表征过程期间确定的实际安全区电压(VSR)。
图5是可以如在此描述地表征的示例性SoC500的功能框图,该示例性SoC500包括基于DSP的图像协处理器(ICP)502、RISC处理器504和视频处理引擎(VPE)506以及其他部件。RISC处理器504可以是任何合适配置的RISC处理器。VPE506包括用于从成像外围设备(例如图像传感器、视频解码器等)捕捉视频的可配置视频处理前端(视频FE)508输入接口、用于显示装置(例如SDTV显示器、数字式LCD面板、HDTV视频编码器等)的可配置视频处理后端(视频BE)510输出接口以及由视频FE508和视频BE510共享的存储器接口524。数字系统还包括用于各种外围设备的外围设备接口512,其可以包括多媒体卡、音频串行端口、通用串行总线控制器、UART串行端口接口等。SoC500可以是例如可以从德州仪器公司获得的OMAP(开放媒体访问平台)器件家族中的一种。
视频FE508包括图像信号处理器(ISP)516和3A统计发生器(3A)518。ISP516向图像传感器和数字视频源提供接口。更具体地,ISP516可以从传感器(CMOS或CCD)接受原始图像/视频数据,并且可以接受多种格式的YUV视频数据。ISP516还包括参数化的图像处理模块,该模块具有以彩色格式(例如RGB)从原始CCD/CMOS数据生成图像数据的功能。ISP516对于每个传感器类型是可定制的,并且支持用于捕捉数字图像的预览显示和用于视频记录模式的视频帧速率。除了其他功能之外,ISP516还包括图像大小改变器、统计收集功能和边界信号计算器。3A模块518包括通过在来自ISP516或外部存储器的原始图像数据上收集度量值来支持用于自动聚焦、自动白平衡和自动曝光的控制环路的功能。
视频BE510包括屏上显示引擎(OSD)520和视频模拟编码器(VAC)522。OSD引擎520包括针对若干不同类型的硬件显示窗口管理各种格式的显示数据的功能,并且该OSD引擎520还处理在以YCbCr格式向VAC522提供数据之前,将视频数据和显示/位图数据聚集且混合到单个显示窗口中。VAC522包括从OSD引擎520取得显示帧并且将其格式化成希望的输出格式,并且将所需要的信号输出到显示装置的接口的功能。VAC522可以接合到复合NTSC/PAL视频装置、S-Video装置、数字式LCD装置、高清晰度视频编码器、DVI/HDMI装置等。
存储器接口524用作对视频FE508和视频BE510中向外部存储器请求和/或传递数据和/或从外部存储器请求和/或传递数据的模块的主要出口(source)和入口(sink)。存储器接口524包括读取和写入缓冲器与仲裁逻辑。
ICP502包括执行对捕捉图像进行视频编码和其他处理所需的计算操作的功能。支持的视频编码标准可以包括JPEG标准、MPEG标准和H.26x标准中的一个或更多。
显然,由于这个复杂度量,对所有功能单元、数据路径、存储器电路等进行完全测试需要大量的测试用例程序。一般地,在SoC中例如该SoC中使用的每个主要部件都具有针对其编写的测试用例程序。当设计SoC时,各种主要部件可以从几乎类似于零件目录的设计库中选择,并且用适当的数据路径和胶合逻辑(glue logic)组合在一起,从而为SoC提供所需的功能。
一旦设计了SoC,那么将所有预先编写的测试用例收集到针对该特定SoC的测试套件中。当制造了第一样品SoC时,其必须接着被表征以确定其是否工作在所需的电压、频率和温度的范围上。使用在此描述的具有时间高效崩溃检测的表征过程可以显著加速表征过程。
用于特定SoC的每一个预先编写的测试模式可以是任何种类的测试模式。在此描述的时间高效崩溃检测过程允许任何测试模式按其原本那样进行使用,不用做任何改变,不需要理解测试模式本身的细节。通常,并没有针对此目的具体构建用于安全电压区搜索的测试模式;它们来自具体测试,例如DDR存储器吞吐量性能、视频H.264编码1080p、L1缓存存储器压力等。可以使用如在此描述的表征过程“按其原本那样”来使用它们。
在测试模式内使用简单的程序监控计时器(dead man timer)来检测崩溃具有许多缺点:1)调整计时器将是耗时的,因为这将必须针对每个测试模式进行;2)在不同的频率(即不同的速度)下运行测试模式也将需要为每个频率进一步调整计时器;以及3)对于测试模式本身内的任何(甚至较小的)改变,需要再次调整计时器。
其他实施例
尽管参考说明性实施例描述了本发明,但本描述无意以限制意义进行解释。在参考本描述之后,本发明的各种其他实施例对于本领域技术人员将是明显的。例如,尽管描述了SoC的表征,但在此公开的原理可以用于许多类型的复杂集成电路以及复杂电路板系统、个人计算机、笔记本计算机等的测试和表征。
尽管本发明的实施例特别适用于片上系统(SoC),但其也适用于其他形式的集成电路。SoC可以含有一个或更多巨型单元(megacell)或模块,其每个都包括与由设计库提供的预先设计的功能电路组合的定制设计功能电路。
尽管在此描述的本发明的实施例针对最小安全工作电压进行测试,但其他实施例可以检查最大或最小安全工作频率、最大或最小安全工作温度、最大或最小安全压力等。
尽管在此描述的本发明的实施例分析由UART通信信道产生的日志文件,但其他实施例可以使用服从于从被测试的系统接收状态数据并且形成已接收状态数据的日志文件的其他形式的通信,例如并行信道、无线信道等。例如,其他实施例可以在被测试的系统内的存储器区中形成系统监控器可访问的日志文件。
在本公开中描述的技术可以以硬件、软件、固件或其任何组合实施。如果以软件实施,则该软件可以在一个或更多处理器中执行,例如微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或数字信号处理器(DSP)。执行该技术的软件可以初始存储在计算机可读介质中,例如紧凑光盘(CD)、磁盘、磁带、文件、存储器或任何其他计算机可读存储装置,并且在处理器中加载和执行。在一些情况下,软件也可以在计算机程序产品中出售,计算机程序产品包括计算机可读介质和用于该计算机可读介质的包装材料。在一些情况下,软件指令可以经由可移除计算机可读介质(例如软盘、光盘、闪存、USB密钥)分发,经由传输路径从另一数字系统上的计算机可读介质分发等。
在说明书和权利要求中使用某些术语来指代特定的系统部件。如本领域技术人员认识到,在不偏离描述的功能的情况下,数字系统中的部件可以由不同的名称指代,和/或可以用未在此示出的方式组合。本文件无意在名称不同但是功能相同的部件之间进行区分。在以下讨论中并且在权利要求中,术语“包括”和“包含”以开放形式使用,并且因此应该解释为意思是“包括但不限于…”。同样,术语“耦合”及其变体意在表示间接的、直接的、光学的和/或无线的电气连接。因此,如果第一装置耦合到第二装置,则该连接可以是通过直接电气连接、通过经由其他装置和连接的间接电气连接、通过光学电气连接和/或通过无线电气连接。
尽管在此可以以顺序方式呈现并且描述方法步骤,但示出并且描述的步骤中的一个或更多可以省略、重复、同时执行和/或以与在附图中示出和/或在此描述的顺序不同的顺序执行。因此,不应认为本发明的实施例限于在附图中示出和/或在此描述的步骤的具体顺序。
因此可以认为,随附的权利要求覆盖落入本发明的真实保护范围和精神内的实施例的任何这样的修改。

Claims (20)

1.一种用于测试集成电路的方法,所述方法包含:
为所述集成电路即IC选择在第一电压和第一频率的工作点;
由包含在所述IC内的中央处理单元即CPU执行测试程序,从而测试所述IC的一部分;
在执行所述测试程序的同时,记录所述IC和主机系统之间的通信活动,从而形成数据日志;以及
通过周期性地存储并且检查所述数据日志来检查崩溃,并且当在所述数据日志的检查期间检测到一组预定的崩溃状况中的任何一个时,认为所述测试程序已崩溃。
2.根据权利要求1所述的方法,进一步包含反复改变所述工作点并且重复执行所述测试程序,同时继续检查崩溃,直到检测到崩溃。
3.根据权利要求1所述的方法,其中预定崩溃状况是,对于指定数目的周期,所述数据日志为空。
4.根据权利要求1所述的方法,其中预定崩溃状况是,所述数据日志的大小等于最大值。
5.根据权利要求1所述的方法,其中预定崩溃状况是,对于指定数目的周期,所述数据日志不改变。
6.根据权利要求1所述的方法,其中预定崩溃状况是,所述数据日志中存在关键字。
7.根据权利要求2所述的方法,进一步包含递减向所述IC提供的工作电压并且执行所述测试程序,直到在初始故障电压下检测到崩溃;
从所述初始故障电压递增向所述IC提供的所述工作电压并且执行所述测试程序,直到在最终最小电压下没有检测到崩溃;以及
记录所述最终最小电压,作为在所述第一频率下的最小安全电压。
8.根据权利要求7所述的方法,进一步包含每当在执行所述测试程序之前检测到崩溃时重新启动所述IC。
9.一种用于表征系统的测试系统,其包含:
系统监控器,所述系统监控器可操作以发送命令从而在所述系统内建立工作点,并且发送命令从而由所述系统执行测试程序;
通信信道,所述通信信道被配置为响应于所述测试程序的执行而接收从所述系统传输的状态数据;
控制模块,所述控制模块被配置为创建所接收的状态数据的日志文件;以及
控制模块,所述控制模块被配置为通过周期性存储并且检查所述数据日志来检查崩溃,并且当在所述数据日志的检查期间检测到一组预定的崩溃状况中的任何一个时,认为所述测试程序已崩溃。
10.根据权利要求1所述的方法,进一步包含反复改变所述工作点并且重复执行所述测试程序,同时继续检查崩溃,直到检测到崩溃。
11.根据权利要求9所述的测试系统,其中预定崩溃状况是,对于指定数目的周期,所述数据日志为空。
12.根据权利要求9所述的测试系统,其中预定崩溃状况是,所述数据日志的大小等于最大值。
13.根据权利要求9所述的测试系统,其中预定崩溃状况是,对于指定数目的周期,所述数据日志不改变。
14.根据权利要求9所述的测试系统,其中预定崩溃状况是,在所述数据日志中存在关键字。
15.根据权利要求9所述的测试系统,其中所述系统是在单个集成芯片上的系统。
16.根据权利要求9所述的测试系统,其中所述工作点包含电压和频率。
17.一种用于表征系统的测试系统,其包含
用于为所述集成电路即IC选择在第一电压和第一频率的工作点的装置;
用于将所述IC初始化,从而由包含在所述IC内的中央处理单元即CPU执行测试程序从而测试所述IC的一部分的装置;
用于在执行所述测试程序的同时,记录所述IC和测试系统之间的通信活动从而形成数据日志的装置;以及
用于通过周期性地存储并且检查所述数据日志来检查崩溃,并且当在所述数据日志的检查期间检测到一组预定的崩溃状况中的任何一个时,认为所述测试程序已崩溃的装置。
18.根据权利要求17所述的方法,其中预定崩溃状况是,对于指定数目的周期,所述数据日志为空。
19.根据权利要求17所述的方法,其中预定崩溃状况是,所述数据日志的大小等于最大值。
20.根据权利要求17所述的方法,其中预定崩溃状况是,对于指定数目的周期,所述数据日志不改变。
CN201310350613.3A 2012-08-13 2013-08-13 测试用例崩溃恢复 Pending CN103744775A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP12290271 2012-08-13
EP12290271.1 2012-08-13
US13/585,584 US20140046615A1 (en) 2012-08-13 2012-08-14 Test Case Crash Recovery
US13/585,584 2012-08-14

Publications (1)

Publication Number Publication Date
CN103744775A true CN103744775A (zh) 2014-04-23

Family

ID=47010433

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310350613.3A Pending CN103744775A (zh) 2012-08-13 2013-08-13 测试用例崩溃恢复

Country Status (2)

Country Link
US (2) US20140046615A1 (zh)
CN (1) CN103744775A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107272862A (zh) * 2016-04-06 2017-10-20 华为技术有限公司 确定终端处理器电压的方法和终端
CN107851054A (zh) * 2015-09-15 2018-03-27 德克萨斯仪器股份有限公司 具有多个内核的集成电路芯片
CN113127244A (zh) * 2019-12-30 2021-07-16 美光科技公司 用于转储错误日志的实时触发
WO2022089505A1 (zh) * 2020-10-29 2022-05-05 华为技术有限公司 一种错误检测方法及相关装置
CN116541312A (zh) * 2023-07-06 2023-08-04 广汽埃安新能源汽车股份有限公司 一种汽车软件持续集成测试方法及系统
US11829232B2 (en) 2019-12-30 2023-11-28 Micron Technology, Inc. Real-time trigger to dump an error log
CN118465599A (zh) * 2023-09-18 2024-08-09 荣耀终端有限公司 测试方法和测试装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106484600A (zh) * 2016-09-13 2017-03-08 云安全(深圳)测评技术有限公司 一种测试装置及方法
US10430310B2 (en) * 2017-04-01 2019-10-01 Intel Corporation Dynamic voltage-frequency curve management
CN107219472A (zh) * 2017-06-08 2017-09-29 杭州茂力半导体技术有限公司 一种自动测试稳压器的方法和系统
KR101904911B1 (ko) * 2017-10-13 2018-10-08 한국인터넷진흥원 하이브리드 퍼징 기반 보안 취약점 자동 탐색 방법 및 그 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080077348A1 (en) * 2006-03-27 2008-03-27 Infineon Technologies Ag Integrated circuit and method for determining the operating range of an integrated circuit
CN101354675A (zh) * 2008-08-19 2009-01-28 华南理工大学 一种嵌入式软件动态内存检测的方法
CN101770388A (zh) * 2009-01-06 2010-07-07 华为技术有限公司 获取芯片代码信息的方法和装置
CN101969475A (zh) * 2010-11-15 2011-02-09 张军 基于云计算的商业数据可控分发与融合应用系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080077348A1 (en) * 2006-03-27 2008-03-27 Infineon Technologies Ag Integrated circuit and method for determining the operating range of an integrated circuit
CN101354675A (zh) * 2008-08-19 2009-01-28 华南理工大学 一种嵌入式软件动态内存检测的方法
CN101770388A (zh) * 2009-01-06 2010-07-07 华为技术有限公司 获取芯片代码信息的方法和装置
CN101969475A (zh) * 2010-11-15 2011-02-09 张军 基于云计算的商业数据可控分发与融合应用系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107851054A (zh) * 2015-09-15 2018-03-27 德克萨斯仪器股份有限公司 具有多个内核的集成电路芯片
CN107851054B (zh) * 2015-09-15 2022-02-08 德克萨斯仪器股份有限公司 具有多个内核的集成电路芯片
US11269742B2 (en) 2015-09-15 2022-03-08 Texas Instruments Incorporated Integrated circuit chip with cores asymmetrically oriented with respect to each other
US11698841B2 (en) 2015-09-15 2023-07-11 Texas Instruments Incorporated Integrated circuit chip with cores asymmetrically oriented with respect to each other
CN107272862A (zh) * 2016-04-06 2017-10-20 华为技术有限公司 确定终端处理器电压的方法和终端
CN113127244A (zh) * 2019-12-30 2021-07-16 美光科技公司 用于转储错误日志的实时触发
US11829232B2 (en) 2019-12-30 2023-11-28 Micron Technology, Inc. Real-time trigger to dump an error log
US11971776B2 (en) 2019-12-30 2024-04-30 Micron Technology, Inc. Real-time trigger to dump an error log
WO2022089505A1 (zh) * 2020-10-29 2022-05-05 华为技术有限公司 一种错误检测方法及相关装置
CN116541312A (zh) * 2023-07-06 2023-08-04 广汽埃安新能源汽车股份有限公司 一种汽车软件持续集成测试方法及系统
CN116541312B (zh) * 2023-07-06 2023-09-22 广汽埃安新能源汽车股份有限公司 一种汽车软件持续集成测试方法及系统
CN118465599A (zh) * 2023-09-18 2024-08-09 荣耀终端有限公司 测试方法和测试装置

Also Published As

Publication number Publication date
US20140046615A1 (en) 2014-02-13
US20160239376A1 (en) 2016-08-18

Similar Documents

Publication Publication Date Title
CN103744775A (zh) 测试用例崩溃恢复
US10929260B2 (en) Traffic capture and debugging tools for identifying root causes of device failure during automated testing
CN102244591B (zh) 客户端服务器及对其功能测试全程监测的方法
KR100374328B1 (ko) 칩 설계 검증 및 테스트 장치 및 방법
US8832615B2 (en) Method for detecting and debugging design errors in low power IC design
US8484524B2 (en) Integrated circuit with self-test feature for validating functionality of external interfaces
US8140837B2 (en) Automatically making selective changes to firmware or configuration settings
Paunović et al. A methodology for testing complex professional electronic systems
US20070021848A1 (en) Testing system and related method for testing an electronic device by determining a power on/off signal
CN106547653B (zh) 计算机系统故障状态检测方法、装置及系统
US10120702B2 (en) Platform simulation for management controller development projects
US20210111967A1 (en) Graphical user interface for traffic capture and debugging tool
US8726088B2 (en) Method for processing booting errors
US20070118779A1 (en) Intelligent Test System and Related Method for Testing an Electronic Product
US11507464B2 (en) System and method to implement a guided resolution of a non-booting information handling system
CN212364515U (zh) 一种soc芯片自动化qc装置
CN111277818B (zh) 多媒体格式的测试方法、装置、系统、终端及存储介质
CN113204456A (zh) 一种服务器vpp接口的测试方法、治具、装置及设备
CN108536586B (zh) Android移动终端的信息获取方法、设备以及系统
CN115552894B (zh) 激光投影系统及其启动方法
CN111061677B (zh) Fpga配置方法、装置以及fpga器件
US8930666B1 (en) Virtual disk carousel
CN114489817B (zh) 处理器启动方法、装置、设备及存储介质
Michael et al. Methodology to improve Safety Critical SoC based platform: a case study
CN115883823A (zh) 电视机异常分析方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20140423