CN110050441B - 在故障情况下实时捕获流量以进行协议调试 - Google Patents
在故障情况下实时捕获流量以进行协议调试 Download PDFInfo
- Publication number
- CN110050441B CN110050441B CN201880004891.4A CN201880004891A CN110050441B CN 110050441 B CN110050441 B CN 110050441B CN 201880004891 A CN201880004891 A CN 201880004891A CN 110050441 B CN110050441 B CN 110050441B
- Authority
- CN
- China
- Prior art keywords
- capture
- communications
- device under
- test
- under test
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3177—Testing of logic operation, e.g. by logic analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/27—Built-in tests
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
在故障情况下实时捕获流量以进行协议调试。根据本发明的实施例,用于同时测试多个器件的自动测试设备包括:流量捕获电路,被配置为捕获与被测器件的通信;捕获存储器,被配置为存储由流量捕获电路捕获的通信;路由逻辑,被配置为从捕获存储器(例如,随机存取存储器(RAM))读取通信。针对多个器件中的每个器件,可以存在一个流量捕获电路、一个捕获RAM以及一个路由逻辑。
Description
相关申请
本申请涉及于2013年2月11日提交的名称为“Test Architecture HavingMultiple FPGA Based Hardware Accelerator Blocks for Testing Multiple DUTsIndependently”、序列号为13/773,569、发明人为Chan等的美国专利申请,其全部内容出于所有目的在此通过引入并入本文。
技术领域
本发明的实施例总体涉及电子器件测试***领域,并且更具体地涉及用于为这样的测试***和在该测试***上被测试的器件提供调试功能的***和方法。
背景技术
现有测试技术涉及在受控环境中随时间操纵一个或多个被测器件(DUT)。例如,被测器件的温度可以相对于正常操作范围而升高,以增加与温度相关的应力。某些测试环境可能使用布置在DUT和器件测试器之间的高能力协议分析仪。在DUT发生故障时,可以获得详细的故障信息,因为DUT和器件测试器之间的所有通信可以由协议分析仪记录和分析以确定故障的原因。
然而,在每个被测器件和其相应的器件测试器之间布置高能力且昂贵的协议分析仪在商业上是不可行的。例如,典型的单个器件测试器被配置为测试数十或数百个被测器件。相应数量的高能力协议分析仪的成本令人望而却步。另外,通常不可能物理地定位和训练技术人员在典型的环境室中使用如此大量的高能力协议分析仪。此外,这样的外部协议分析仪测试器不能捕获不是与被测器件交换的数据。例如,测试***控制器与测试***的其他功能块之间的通信对于外部协议分析仪是不可见的。因此,传统的质量测试***通常不使用高能力协议分析仪测试器。
不幸的是,根据传统技术,关于被测器件的故障的本质知之甚少。例如,可用的故障信息可能限于到故障的时间,例如,直到故障所经过的时间。关于故障时测试器***的状态可能知之甚少。
发明内容
在质量测试环境中获得与测试故障相关的更多信息将是非常有价值和期望的。更具体地,期望捕获导致测试***内的点处的测试故障的通信信息。此外,期望确定是否存在通信协议故障、器件机制故障或其他与硬件相关的故障。
因此,需要的是在故障的情况下实时捕获流量以进行协议调试的***和方法。另外需要的是在故障的情况下实时捕获流量以进行协议调试的***和方法,该***和方法捕获导致测试***内的点处的测试故障的通信信息。还需要的是在故障的情况下实时捕获流量以进行协议调试的***和方法,该***和方法与现有的自动测试设备的***和方法兼容并互补。本发明的实施例提供这些优点并增强用户的体验。
根据本发明的实施例,用于同时测试多个器件的自动测试设备包括:流量捕获电路,被配置为捕获与被测器件的通信;捕获存储器,被配置为存储由流量捕获电路捕获的通信;和路由逻辑,被配置为从捕获存储器(例如,随机存取存储器(RAM))读取通信。针对多个器件中的每个器件,可以有一个流量捕获电路、一个捕获RAM以及一个路由逻辑。
根据本发明的另一实施例,一种自动测试设备装置包括:计算机***,该计算机***包括***控制器,该***控制器被通信地耦合到测试器处理器,其中***控制器能操作以将指令发送到测试器处理器,并且其中测试器处理器能操作以从指令生成命令和数据以用于协调多个被测器件(DUT)的测试;多个FPGA组件,通过总线被通信地耦合到测试器处理器,其中多个FPGA组件中的每个FPGA组件包括至少一个硬件加速器电路,所述硬件加速器电路可操作来以对于所述测试器处理器而言透明的方式内部地生成命令和数据,以用于测试多个DUT中的相应DUT;多个下游端口,每个下游端口用于与相应的DUT通信并且每个下游端口被通信地耦合到多个FPGA中的相应FPGA。
每个下游端口还包括:流量捕获电路,被配置为捕获与被测器件的通信;捕获RAM,被配置为存储由流量捕获电路捕获的通信;以及路由逻辑,被配置为从捕获随机存取存储器(RAM)中读取通信。
根据本发明的方法实施例,一种方法包括:捕获测试***和被测器件之间的所有通信以形成捕获的通信,并将捕获的通信存储到捕获存储器中。响应于被测器件的测试故障,存储被停止。响应于测试故障,来自捕获存储器的捕获的通信被读取到计算机***的故障分析功能。捕获的通信被分析以确定故障类型,并且列出测试故障的故障类型的人类可读报告被生成。
附图说明
包含在本说明书中并形成本说明书的一部分的附图示出了本发明的实施例,并且与描述一起用于解释本发明的原理。附图并非按比例绘制,除非另有说明。
图1示出了可以用作实现本发明实施例的平台的示例性电子测试***的示例性框图。
图2是根据本发明实施例的示例性实例化FPGA测试器块的详细示意框图。
图3A示出了根据本发明实施例的示例性下游端口的细节。
图3B示出了根据本发明实施例的示例性数据捕获***的多个实例。
图3C示出了根据本发明实施例的捕获存储器的两个示例性组织布置。
图4示出了根据本发明实施例的捕获和报告用于故障分析和调试的通信信息的示例性方法。
具体实施方式
现在将详细参考本发明的各种实施例,其示例在附图中示出。虽然将结合这些实施例描述本发明,但是应当理解,它们并不旨在将本发明限制于这些实施例。相反,本发明旨在覆盖可以包括在由所附权利要求限定的本发明的精神和范围内的替代、修改和等同物。此外,在本发明的以下详细描述中,阐述了许多具体细节以便提供对本发明的透彻理解。然而,对于本领域普通技术人员显而易见的是,可以在没有这些具体细节的情况下实践本发明。在其他情况下,没有详细描述公知的方法、过程、组件和电路,以免不必要地模糊本发明的各方面。
注释和术语
以下详细描述的一些部分(例如,方法400)是针对可以在计算机存储器上执行的数据位的操作的过程、步骤、逻辑块、处理和其他符号表示来呈现的。这些描述和表示是数据处理领域的技术人员用来最有效地将他们工作的实质传达给本领域其他技术人员的手段。过程、计算机执行的步骤、逻辑块、处理等在此处并且一般被设想为导致期望结果的自相一致的步骤或指令序列。这些步骤是需要对物理量进行物理操纵的步骤。通常,尽管不是必须的,这些量采用能够在计算机***中存储、传输、组合、比较和以其他方式操纵的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元素、符号、字符、术语、数字、数据等是方便的。
然而,应当记住,所有这些和类似术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。除非从以下讨论中明确指出,否则应当理解,贯穿本发明,利用诸如“捕获”或“存储”或“读取”或“分析”或“生成”或“解析”或“接受”或“选择”或“确定”或“显示”或“呈现”或“计算”或“发送”或“接收”或“减少”或“检测”或“设定”或“访问”或“布置”或“测试”或“形成”或“安装”或“移除”或“停下”或“停止”或“涂覆”或“处理”或“执行”或“生成”或“调整”或“创建”或“运行”或“继续”或“索引”或“转化”或“计算”或“测量”或“收集”或“运行”等术语的讨论指的是计算机***或类似电子计算设备的动作和处理或者在计算机***或类似电子计算设备的控制下,其中计算机***或类似电子计算设备将在计算机***的寄存器和存储器内表示为物理(电子)量的数据操纵和转换为在计算机***存储器或寄存器或其他此类信息存储、传输或显示设备内类似地表示为物理量的其他数据。
“非暂态计算机可读介质”的含义应被解释为在In re Nuijten,500F.3d 1346,1356-57(Fed.Cir.1007)中确认的仅排除那些被发现超出35U.S.C§101规定的可专利主题范围的暂态计算机可读介质。该术语的使用应当理解为仅从权利要求范围中去除传播的暂态信号本身,并且不放弃对并非传播的暂态信号本身的所有标准计算机可读介质的权利。
在故障的情况下实施捕获流量以进行协议调试
图1示出了可以用作实现本发明实施例的平台的示例性电子测试***100的示例性框图。***100也可以认为或称为自动测试装备或自动测试环境(ATE)。在一个实施例中,ATE装置100可以在能够同时测试多个DUT的任何测试***内实现。被测器件可包括例如集成电路、包括无数集成电路和其他电子组件的电路板、旋转磁介质器件(“硬盘驱动器”)、固态驱动器(“SSD”)等。
参考图1,根据本发明实施例的用于测试器件的ATE装置100包括***控制器101;将***控制器耦合到站点模块板130A-130N的网络交换机102;包括实例化FPGA测试器块110A-110N的FPGA器件111A-111M;存储器块模块140A-140M,其中每个存储器块140A-140M被耦合到FPGA器件111A-111M之一;以及被测器件(DUT)120A-120N,其中每个被测器件120A-120N被耦合到实例化FPGA测试器块110A-110N之一。
在一个实施例中,***控制器101可以是计算机***,例如,个人计算机(PC),其为ATE的用户提供用户界面以加载测试程序并针对耦合到ATE 100的DUT运行测试。VerigyStylusTM操作***是在器件测试期间经常使用的测试软件的一个示例。它为用户提供了图形用户界面,从该图形用户界面可以配置和控制测试。它还可以包括控制测试流、控制测试程序状态、确定正在运行的测试程序、以及记录测试结果和与测试流相关的其他数据的功能。在一个实施例中,***控制器可以被耦合到并控制多达512个DUT。
在一个实施例中,***控制器101可以通过网络交换机(例如以太网交换机)被耦合到站点模块板130A-130N。在其他实施例中,网络交换机可以与不同的协议(诸如光纤信道、802.11、ATM和/或PCIe)兼容。
在一个实施例中,每个站点模块板130A-130N可以是用于评估和开发目的的单独的独立板,其附接到定制的负载板固定装置(例如负载板180,DUT 120A-120N加载于负载板180上),并且还附接到接收测试程序的***控制器101。在其他实施例中,站点模块板可以实现为***式扩展卡或者直接******控制器101的机箱中的子板。
每个站点模块板130A-130N可以包括至少一个测试器处理器104和至少一个FPGA器件。站点模块板上的测试器处理器104和FPGA器件111A-111M根据从***控制器101接收的测试程序指令运行每个测试用例的测试方法。在一个实施例中,测试器处理器可以是市售的Intel 8086 CPU或任何其他公知处理器。此外,测试器处理器可以在Ubuntu OS x64操作***上运行并运行核心软件,该软件允许测试器处理器与在***控制器上运行的Stylus软件通信,以运行测试方法。测试器处理器104基于从***控制器接收的测试程序来控制站点模块上的FPGA器件和耦合到站点模块的DUT。
测试器处理器104通过总线公共总线112被耦合到FPGA器件111A-111M并且可以与FPGA器件111A-111M通信。在一个实施例中,测试器处理器104通过单独的专用总线与各个FPGA设备111A-111M通信。在一个实施例中,测试器处理器104可以利用分配给FPGA器件的最小处理功能来通过FPGA透明地控制DUT 120A-120N的测试。在该实施例中,总线112的数据流量容量可能快速耗尽,因为测试器处理器产生的所有命令和数据需要通过总线传送到FPGA器件。在其他实施例中,测试器处理器104可以把控制对DUT的测试的功能分派到FPGA器件来分摊处理负荷。在这些实施例中,通过总线112的流量减少,因为FPGA器件可以生成其自己的命令和数据。
在一个实施例中,每个FPGA器件111A-111M被耦合到其自己的专用存储器块140A-140M。其中,这些存储器块可用于存储写出到DUT的测试模式数据等。在一个实施例中,每个FPGA器件可以包括两个实例化FPGA测试器块110A-110B,其功能模块用于执行包括如本文进一步描述的通信协议引擎和硬件加速器的实现的功能。每个存储器块140A-140M可以包含一个或多个存储器模块,其中存储器块内的每个存储器模块可以专用于一个或多个实例化FPGA测试器块110A-110B。因此,每个实例化FPGA测试器块110A-110B可以被耦合到存储器块140A内其自己的专用存储器模块。在另一实施例中,实例化FPGA测试器块110A和110B可以共享存储器块140A内的一个存储器模块。
此外,***中的每个DUT 120A-120N可以在“每DUT配置测试器”的配置中被耦合到专用的实例化FPGA测试器块110A-110N,其中每个DUT获得其自己的测试器块。这允许为每个DUT单独运行测试。这种配置中的硬件资源被设计为以最小的硬件共享支持各个DUT。此配置还允许并行测试许多DUT,其中每个DUT可以被耦合到其自己的专用FPGA测试器模块,并且运行不同的测试程序。
图1中描绘的本发明的实施例的架构具有若干优点。首先,它消除了***中对协议专用硬件总线适配器(“HBA”)插槽和卡的需要,因为通信协议模块可以直接在FPGA器件内的实例化测试器块上编程。实例化测试器块可以被配置为在DUT支持的任何协议中与DUT通信。因此,如果需要测试具有不同协议支持的DUT,则可以将它们耦合到同一***,并且可以重新编程FPGA以支持相关联协议。因此,可以轻松配置一个ATE主体来测试支持许多不同类型协议的DUT。
在一个实施例中,可以通过从***控制器101上的高速缓存的简单比特流下载直接下载新协议并将其安装在FPGA上,而无需任何类型的硬件交互。例如,ATE装置100中的FPGA 111A-111M可以被配置有PCIe协议以最初测试PCIe器件,并且随后通过软件下载重新配置以测试SATA器件。此外,如果发布了新协议,FPGA可以通过比特流下载被轻松配置有该协议,而无需物理地切换***中的所有硬件总线适配器卡。最后,如果需要实现非标准协议,FPGA仍然可以配置为实现这样的协议。
在另一实施例中,FPGA 111A-111M可以被配置(例如,编程)以运行一个以上的通信协议,其中这些协议也可以从***控制器101下载并通过软件配置。例如,实例化FPGA测试器块110A可以被配置为运行PCIe协议,而实例化FPGA测试器块110B可以被配置为运行SATA协议。这允许测试器硬件同时测试支持不同协议的DUT。FPGA 111A现在可以耦合以测试支持PCIe和SATA这二者协议的DUT。替代地,它可以耦合以测试两个不同的DUT,一个DUT支持PCIe协议,另一DUT支持SATA协议。
图1中呈现的体系结构的另一优点是通过将命令和测试模式生成功能分发到FPGA设备(其中每个DUT具有专用FPGA模块来运行特定于该DUT的测试程序)来减少测试器处理器104上的处理负荷。例如,实例化FPGA测试器块110A耦合到DUT 120A并运行特定于DUT120A的测试程序。这种配置中的硬件资源被设计为以最小的硬件共享支持各个DUT。这种“每DUT配置测试器”的配置还允许每个处理器测试更多DUT,并且可以并行测试更多DUT。此外,由于FPGA能够在某些模式下生成自己的命令和测试模式,因此总线112上耦合测试器处理器与其他硬件组件(包括FPGA器件、器件电源(DPS)和DUT)的带宽要求也会降低。因此,与现有的配置相比,可以同时测试更多的DUT。
图2是根据本发明实施例的图2的示例性实例化FPGA测试器块的详细示意框图。
参考图2,实例化FPGA测试器块210通过PCIe上游端口270连接到测试器处理器,并通过下游端口280连接到DUT,例如图1的DUT 120A。应当理解,下游端口280被配置为与被测器件通信,并且可以实现任何所需的接口,包括总线接口,例如PCIe、ATA、SATA、NVMe、USB、SPI、JTAG和/或SAS。
实例化FPGA块210可包括协议引擎模块230、逻辑块模块250和硬件加速器块240。硬件加速器块240还可包括存储器控制模块244、比较器模块246、分组构建器模块245、和算法模式生成器(APG)模块243。
在一个实施例中,逻辑块模块250包括:解码逻辑,用于解码来自测试器处理器的命令;路由逻辑,用于将来自测试器处理器104的所有传入命令和数据以及由FPGA器件生成的数据路由到适当的模块;以及仲裁逻辑,用于在实例化FPGA测试器块210内的各种通信路径之间进行仲裁。
在一个实施例中,用于在测试器处理器和DUT之间通信的通信协议可以有利地重新配置。在一些实施例中,这种实现方式中的通信协议引擎可以直接编程到实例化FPGA测试器块210的协议引擎模块230中。因此,实例化FPGA测试器块210可以被配置为以DUT支持的任何协议与DUT通信。这有利地消除了对硬件总线适配器卡的需要,并且不需要替换协议专用硬件来测试具有不同协议支持的DUT。在一个实施例中,协议可以是高速串行协议,包括但不限于SATA、SAS或PCIe等。可以通过藉由测试仪处理器从***控制器进行简单的比特流下载来直接下载新的或修改的协议并将其安装在FPGA上,而无需任何硬件交互。此外,如果发布了新协议,可以通过软件下载轻松地使用该协议配置FPGA。
在图2中,如果耦合到下游端口280的DUT是PCIe器件,例如包含PCIe协议的实例化的位文件可以例如通过JTAG接口下载到FPGA器件111A-111M。每个FPGA器件111A或111B(图1)可以包括一个或多个实例化FPGA测试器块,并且因此包括一个或多个协议引擎模块。任何一个FPGA器件可以支持的协议引擎模块的数量仅受FPGA的大小和门数的限制。
在本发明的一个实施例中,FPGA器件内的每个协议引擎模块可以配置有不同的通信协议。因此,FPGA器件可被连接以同时测试多个DUT,每个DUT支持不同的通信协议。替代地,FPGA器件可被连接到支持多种协议的单个DUT,并同时测试该器件上运行的所有模块。例如,如果FPGA被配置为运行PCIe和SATA协议,则其可被连接以测试支持PCIe和SATA协议的DUT。替代地,该FPGA可被连接以测试两个不同的DUT,一个DUT支持PCIe协议,另一个DUT支持SATA协议。
图2的硬件加速器块240可用于加速FPGA硬件上的某些功能,而不是在测试器处理器上的软件中进行这种加速。硬件加速器块240可以提供在测试DUT时使用的初始测试模式数据。硬件加速器块240还可以包含用于生成用于控制DUT的测试的某些命令的功能。为了生成测试模式数据,加速器块240使用算法模式生成器模块243。
硬件加速器块240可以使用比较器模块246来将从DUT读取的数据与在先前周期中写入DUT的数据进行比较。比较器模块246包括向测试器处理器104标记不匹配的功能,以识别不符合的器件。更具体地,比较器模块246可以包括错误计数器,其追踪不匹配并将它们传送到测试器处理器304。
硬件加速器块240可以连接到本地存储器模块220。存储器模块220执行与任何存储器块240A-240M内的存储器模块类似的功能。存储器模块220可以由硬件加速器块240和测试器处理器104(图1)控制。测试器处理器104可以控制本地存储器模块220并将初始测试模式数据写入其中。
存储器模块220存储要写入DUT的测试模式数据,并且硬件加速器块240访问此测试模式数据以在写周期之后将存储的数据与从DUT读取的数据进行比较。本地存储器模块220还可用于记录故障。存储器模块将存储日志文件,其中包含DUT在测试期间遇到的所有故障的记录。在一个实施例中,加速器块240具有专用的本地存储器模块块220,其不能被任何其他实例化FPGA测试器块访问。在另一实施例中,该本地存储器模块块220被与另一实例化FPGA测试器块中的硬件加速器块共享。
硬件加速器块240还可以包括存储器控制模块244。存储器控制模块244与存储器模块220交互并控制对存储器模块220的读取和写入访问。
硬件加速器块240包括分组构建器模块245。分组构建器模块在某些模式中由硬件加速器块使用以构造要写出到DUT的包括头/命令数据和测试模式数据的分组。
在某些实施例中,硬件加速器块240可以由测试器处理器104编程,以在若干硬件加速模式之一中操作。在旁路模式中,硬件加速器被旁路,并且测试器处理器104通过路径272将命令和测试数据直接发送到DUT。在硬件加速器模式生成器模式中,测试模式数据由APG模块243生成,而命令由测试器处理器304生成。测试分组通过路径274被发送到DUT。在硬件加速器存储器模式中,测试模式数据从本地存储器模块220访问,而命令由测试器处理器304生成。测试模式数据通过路径276被发送到DUT。路由逻辑282被配置为在路径272、274和276之间进行仲裁,以控制到DUT的数据流。
站点模块可以包括多个通用连接器181。因为协议引擎模块230可以被配置为运行任何数量的各种通信协议,所以站点模块上可能需要通用的高速连接器181。因此,如果需要改变在协议引擎模块230上实现的协议,则不需要对站点模块进行伴随的物理修改。站点模块使用负载板(例如,图1的负载板180)连接到DUT,负载板可以连接到站点模块端上的通用连接器181,但是特定于在DUT上实现的协议和连接器。支持不同通信协议的DUT将需要不同的配置。因此,如果协议被重新编程以适应需要不同配置的DUT,则可能需要切换和更换负载板。
图3A示出了根据本发明实施例的示例性数据捕获***300的细节。数据捕获***300可以在物理上和/或功能上位于任何合适的位置,提供对与被测器件的通信的访问。例如,数据捕获***300可以位于下游端口内,例如图2的下游端口280。替代地,数据捕获***300可以位于实例化FPGA测试器块内,例如图2的实例化FPGA测试器块。通常,对于每个被测器件存在数据捕获***300的一个实例。应当理解,数据捕获***300被配置为与被测器件通信,并且可以实现任何所需的接口,包括串行和/或并行总线接口,例如PCIe、ATA、SATA、NVMe、USB、SPI、JTAG、和/或SAS。
数据捕获***300包括流量捕获电路360。流量捕获电路360监视与DUT(例如,图1的DUT 120A)的通信320。在一些实施例中,流量捕获电路360对通信320是透明的。例如,流量捕获电路360不改变DUT与数据捕获***300的其他元件(例如,通信路径272、274和/或276)之间的通信320。例如,通信320与通信320'基本相同。流量捕获电路360“窥探”与DUT的通信320,并且在365处将通信存储到捕获存储器350中,捕获存储器350例如可以是随机存取存储器(RAM)结构和/或器件。
捕获并存储到捕获存储器350中的流量可以包括与DUT的通信320以及未从DUT发送和/或接收的元数据。例如,元数据可以包括与(一个或多个)实例化FPGA测试器块相关的配置信息。根据本发明的实施例,捕获并存储到捕获存储器350中的示例性信息例如可以包括用于通信272、274、276和/或320的读/写数据、协议命令、确认状态信息、故障报告、链路状态、路由信息等。
存储在捕获存储器350中的数据的实际格式(例如,数据成帧、语言语法等)通常根据通信272、274、276和/或320的协议而变化,并且信息可以以任何合适的格式存储在捕获存储器350中。在一些实施例中,当通信272、274、276和/或320数据被存储到捕获存储器350中时,流量捕获电路360可以用时间戳标记此数据。在一些实施例中,当信息被存储到捕获存储器350中时,流量捕获电路360还可以用通信320的源和/或目的地的信息(例如,包括利用哪个数据路径272、274和/或276)标记和/或分离通信272、274、276和/或320。
在一些实施例中,捕获存储器350可以被划分为用于记录发送到DUT 120A的数据的第一分区,以及用于记录从DUT 120A接收的数据的第二分区。在其他实施例中,捕获存储器350可以包括用于存储发送的数据和接收的数据的不同的存储器结构和/或存储器器件。
流量捕获电路360连续地向BAM 350发送发送和接收流量320。由于捕获存储器350具有固定的存储容量,所以存储在捕获存储器350内的信息被连续更新,例如,作为循环缓冲器。
在检测到DUT的测试中的错误时,通常停止与DUT的通信320。替代地,可以发生与DUT的有限量的通信,例如,以从DUT撷取错误代码或其他状态信息。在流量320停止时,捕获存储器350包括在停止之前(例如,在故障之前)的流量320的历史。
数据捕获***300包括路由逻辑382。路由逻辑382使得实例化FPGA测试器块210能够例如经由流量捕获电路360与DUT通信,或者与捕获存储器350通信。路由逻辑382使得捕获存储器350的内容能够例如由***控制器101(图1)通过通信272读取。例如,在测试DUT中发生故障之后,捕获存储器350的内容可以由***控制器101通过路由逻辑382读取。
在一些实施例中,测试***中的一些或全部可以在故障的情况下“冻结”或停止操作。例如,站点模块130A可以停止测试操作。在这种情况下,可以在重新启动(例如,重启)测试***或测试***部分时检查捕获存储器350和/或撷取其数据。
***控制器101可以包括协议故障分析功能,例如,用于协议故障分析的软件模块。协议故障分析功能可以理解所有支持的测试和DUT通信协议。协议故障分析功能通常还能够基于对从捕获存储器350撷取的捕获数据的分析来确定故障类型。通过检查测试***和DUT之间的通信历史,故障分析功能可能能够确定DUT故障的原因,例如协议故障、不良闪存位故障、垃圾收集故障、其他类型的硬件故障等。这些信息例如可用于为客户产生故障报告。
根据本发明的实施例,故障报告还可以或替代地包括来自捕获RAM 350的所有捕获的原始数据,使得客户可以直接检查数据,例如,用于根据客户的分析进行故障确定和/或调试。
应当理解,根据本发明的实施例非常适合于捕获和分析与许多故障类型相关联的数据,包括例如与被测器件(DUT)的动作无关的故障。例如,如果PCIe链路在DUT的测试期间进入PCIe链路训练时段,则这样的动作可能阻止与DUT的命令和/或数据的及时交换。这例如对于测试器处理器104和/或***控制器101(图1)而言看起来是DUT测试故障,例如看起来DUT没有响应于命令。
根据本发明的实施例,在上述场景下,捕获存储器350的内容可以证明DUT正确执行,并且故障发生在***中的其他地方。此外,将通信272、274和/或276的协议通信捕获到捕获存储器350中可以指示链路进入了训练时段,这导致测试错误。
图3B示出了根据本发明实施例的示例性数据捕获***的多个实例。如前所述,对于每个被测器件,通常存在数据捕获***300的一个实例,并且对于每个实例化FPGA测试器块,例如图1的实例化的FPGA测试器块110A到110N,通常存在数据捕获***300的一个实例。图3B示出了与被测器件(DUT)“A”相关联的数据捕获***300a。对应于图3A的数据捕获***300,数据捕获***300a可以在物理上和/或功能上位于任何合适的位置,提供对与被测器件的通信的访问。
数据捕获***300a包括流量捕获电路360a。流量捕获电路360a监视与DUT-A(例如图1的DUT 120A)的通信320a。在一些实施例中,流量捕获电路360a对于通信320a是透明的。例如,流量捕获电路360不会改变DUT与数据捕获***300a的其他元件(例如通信路径272a、274a和/或276a)之间的通信320a。流量捕获电路360a“窥探”与DUT-A的通信320a,并将通信存储到捕获存储器350a中,捕获存储器350a例如可以是随机存取存储器(RAM)结构和/或器件。
相应类似的数据捕获***300b被提供以用于与第二被测器件DUT-B通信。应当理解,通常,数据捕获***300b的元件是独立于数据捕获***300a而单独的并且独立于数据捕获***300a而起作用。例如,通常,捕获存储器350b不承担DUT-A的通信负担。
图3C示出了根据本发明实施例的捕获存储器350的两个示例性组织布置。在示例性捕获存储器组织布置370(图3的捕获存储器,例如,捕获存储器350)中,通信数据357可以标记有时间戳353以及关于通信信道的指示354。例如,关于通信信道的指示354可以指示通信信道272、274、276(图2)中的哪个将通信数据357耦合到被测器件,或者通信信道272、274、276中的哪个旨在从被测器件接收通信数据357。
通信数据357还可以与通信数据357的目的地和/或源信息355相关联。在一些实施例中,目的地和/或源信息355例如可以指示通信数据357是否源自或者去往图1的***控制器101、测试器处理器104、实例化FPGA测试器块110A至110N、FPGA 111A至111M、网络交换机102、站点模块130A至130N、存储器块140A至140M、负载板180、DUT 120A至120N、图2的PCIe端口270和/或280、逻辑块250、协议引擎模块230、和/或硬件加速器块240。
另外,通信数据357还可以与元数据356相关联。此外,示例性捕获存储器组织布置370被划分为去往被测器件的通信351以及从被测器件接收的通信352。
在示例性捕获存储器组织布置375中,捕获存储器(例如,图3的捕获存储器350)包括两个单独的存储器结构和/或存储器器件,用于存储发送和接收的数据。捕获存储器结构或器件376
图4示出了根据本发明实施例的捕获和报告用于故障分析和调试的通信信息的示例性方法400。在410中,测试***和被测器件之间的所有通信被捕获并被存储到例如图3A的捕获存储器350中。在420中,响应于被测器件的测试故障或响应于用户发起的命令,对通信的存储被停止。在430中,响应于故障或用户发起的命令或响应于***重启,计算机通信被读取到计算机***的故障分析功能。在一些实施例中,故障分析功能可以是软件程序产品。
在440中,捕获的通信被分析以确定故障类型。应当理解,并非所有故障类型都必然是由被测器件的故障引起的。在450中,列出故障类型的人类可读报告被生成。人类可读报告可以采用任何合适的形式,包括例如视频显示和/或印刷在纸上。在人类可读报告中,可以分离不同的数据类型和元数据以及来自不同通信的和/或与不同的DUT相关的数据。
根据本发明的实施例提供了在故障情况下实时捕获流量以进行协议调试的***和方法。此外,根据本发明的实施例提供了在故障情况下实时捕获流量以进行协议调试的***和方法,其捕获导致测试***内的点处的测试故障的通信信息。此外,根据本发明的实施例提供了在故障情况下实时捕获流量以进行协议调试的***和方法,其与现有的自动测试装备的***和方法兼容并互补。
本发明的各种实施例因此被描述。虽然已经在特定实施例中描述了本发明,但是应当理解,本发明不应被解释为受这些实施例的限制,而是根据下面的权利要求来解释。
Claims (19)
1.一种用于同时测试多个器件的自动测试设备,包括:
流量捕获电路,被配置为捕获与被测器件的所有通信;
捕获存储器,被配置为存储由所述流量捕获电路捕获的所有所述通信;
路由逻辑,被配置为从所述捕获存储器读取所述通信;并且
其中,所述流量捕获电路和所述路由逻辑还被配置为发送不是向所述被测器件发送和不是从所述被测器件接收的通信的元数据。
2.根据权利要求1所述的自动测试设备,还包括针对所述多个器件中的每个器件的一个所述流量捕获电路、一个所述捕获存储器以及一个所述路由逻辑。
3.根据权利要求1所述的自动测试设备,其中,所述路由逻辑还被配置为将多于一个通信信道路由到所述被测器件。
4.根据权利要求1所述的自动测试设备,其中,所述捕获存储器被划分为第一分区和第二分区,所述第一分区用于记录被发送到所述被测器件的通信,所述第二分区用于记录从所述被测器件接收的通信。
5.根据权利要求1所述的自动测试设备,其中,所述捕获存储器包括用于存储被发送到所述被测器件的通信和用于存储从所述被测器件接收的通信的不同的存储器结构。
6.根据权利要求1所述的自动测试设备,其中,所述流量捕获电路还被配置为将时间戳应用于由所述流量捕获电路捕获以存储在所述捕获存储器中的所述通信。
7.根据权利要求1所述的自动测试设备,其中,所述捕获存储器还被配置为存储所述元数据。
8.一种自动测试设备ATE装置,包括:
计算机***,包括***控制器,所述***控制器被通信地耦合到测试器处理器,其中所述***控制器能操作以将指令发送到所述测试器处理器,并且其中所述测试器处理器能操作以从所述指令生成命令和数据以用于协调多个被测器件DUT的测试;
多个现场可编程门阵列FPGA组件,通过总线被通信地耦合到所述测试器处理器,其中所述多个FPGA组件中的每一个FPGA组件包括至少一个硬件加速器电路,所述硬件加速器电路能操作来以对于所述测试器处理器而言透明的方式内部地生成命令和数据,以用于测试多个DUT中的相应DUT;
多个下游端口,每个下游端口用于与相应的DUT通信,并且每个下游端口被通信地耦合到所述多个FPGA中的相应FPGA,
其中每个所述下游端口还包括:
流量捕获电路,被配置为捕获与相应被测器件的所有通信;
捕获随机存取存储器RAM,被配置为存储由所述流量捕获电路捕获的所有所述通信;
路由逻辑,被配置为从所述捕获RAM读取所述通信,并且
其中,所述流量捕获电路和所述路由逻辑还被配置为发送不是向所述DUT发送和不是从所述DUT接收的通信的元数据。
9.根据权利要求8所述的自动测试设备,其中,每个所述下游端口被配置为与至所述相应FPGA的至少两个通信信道通信。
10.根据权利要求9所述的自动测试设备,其中,所述路由逻辑还被配置为将所述至少两个通信信道路由到所述被测器件。
11.根据权利要求8所述的自动测试设备,其中,所述捕获RAM被划分为第一分区和第二分区,所述第一分区用于记录被发送到所述被测器件的通信,所述第二分区用于记录从所述被测器件接收的通信。
12.根据权利要求8所述的自动测试设备,其中,所述捕获RAM包括用于存储被发送到所述被测器件的通信和用于存储从所述被测器件接收的通信的不同的RAM结构。
13.根据权利要求8所述的自动测试设备,其中,所述流量捕获电路还被配置为将时间戳应用于由所述流量捕获电路捕获以存储在所述捕获RAM中的所述通信。
14.根据权利要求8所述的自动测试设备,其中所述捕获RAM还被配置为存储所述元数据。
15.一种方法,包括:
捕获测试***和被测器件之间的所有通信,以形成捕获的通信;
将所述捕获的通信存储到作为所述测试***的一部分的捕获存储器中;
响应于所述被测器件的测试故障,停止所述存储;
响应于所述测试故障,将所述捕获的通信从所述捕获存储器读取到计算机***的故障分析功能;
分析所述捕获的通信以确定故障类型;
生成列出所述测试故障的故障类型的人类可读报告,并且
其中,所述捕获还包括捕获不是向所述被测器件发送和不是从所述被测器件接收的通信的元数据。
16.根据权利要求15所述的方法,其中,所述捕获和所述存储针对多个被测器件同时发生。
17.根据权利要求15所述的方法,其中,存储在所述捕获存储器中的所述捕获的通信包括与每个捕获的通信相对应的时间戳。
18.根据权利要求15所述的方法,其中,所述捕获对于所述测试***和所述被测器件之间的所述通信是透明的。
19.根据权利要求15所述的方法,其中,所述故障类型包括独立于被测器件的操作引起的测试***故障。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/429,034 | 2017-02-09 | ||
US15/429,034 US10379158B2 (en) | 2017-02-09 | 2017-02-09 | Real-time capture of traffic upon failure for protocol debug |
PCT/US2018/017418 WO2018148405A1 (en) | 2017-02-09 | 2018-02-08 | Real-time capture of traffic upon failure for protocol debug |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110050441A CN110050441A (zh) | 2019-07-23 |
CN110050441B true CN110050441B (zh) | 2022-07-05 |
Family
ID=63037608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880004891.4A Active CN110050441B (zh) | 2017-02-09 | 2018-02-08 | 在故障情况下实时捕获流量以进行协议调试 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10379158B2 (zh) |
KR (1) | KR20190107183A (zh) |
CN (1) | CN110050441B (zh) |
TW (1) | TWI759423B (zh) |
WO (1) | WO2018148405A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11227090B2 (en) * | 2017-02-15 | 2022-01-18 | Michael Alexander Green | System and method for achieving functional coverage closure for electronic system verification |
US10699046B2 (en) * | 2017-02-15 | 2020-06-30 | Michael Alexander Green | System and method for achieving functional coverage closure for electronic system verification |
US10955461B2 (en) * | 2018-05-16 | 2021-03-23 | Advantest Corporation | Smart and efficient protocol logic analyzer configured within automated test equipment (ATE) hardware |
US10929260B2 (en) | 2018-05-16 | 2021-02-23 | Advantest Corporation | Traffic capture and debugging tools for identifying root causes of device failure during automated testing |
US11516106B2 (en) * | 2018-06-27 | 2022-11-29 | Intel Corporation | Protocol analyzer for monitoring and debugging high-speed communications links |
US20200004666A1 (en) * | 2018-07-02 | 2020-01-02 | International Business Machines Corporation | Debug boundaries for hardware accelerators |
US10948540B2 (en) * | 2018-07-27 | 2021-03-16 | Advantest Corporation | Integrated protocol analyzer configured within automated test equipment (ate) hardware |
US10831975B2 (en) | 2018-11-29 | 2020-11-10 | International Business Machines Corporation | Debug boundaries in a hardware accelerator |
US11828787B2 (en) * | 2020-02-28 | 2023-11-28 | Advantest Corporation | Eye diagram capture test during production |
US11899550B2 (en) | 2020-03-31 | 2024-02-13 | Advantest Corporation | Enhanced auxiliary memory mapped interface test systems and methods |
US20210302469A1 (en) * | 2020-03-31 | 2021-09-30 | Advantest Corporation | Universal Test Interface Systems and Methods |
US11650893B2 (en) | 2020-03-31 | 2023-05-16 | Advantest Corporation | Multiple name space test systems and methods |
US20220382668A1 (en) * | 2021-05-28 | 2022-12-01 | Advantest Corporation | Systems and methods for concurrent and automated testing of zoned namespace solid state drives |
US11842782B2 (en) * | 2021-09-30 | 2023-12-12 | EMC IP Holding Company LLC | Phased parameterized combinatoric testing for a data storage system |
US11669381B1 (en) | 2021-11-15 | 2023-06-06 | International Business Machines Corporation | Real-time error debugging |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011144158A1 (zh) * | 2010-10-27 | 2011-11-24 | 华为技术有限公司 | 用于中间节点自主实现故障定位的方法及*** |
CN105378494A (zh) * | 2013-02-21 | 2016-03-02 | 爱德万测试公司 | 具有用于独立测试多个dut的多个基于fpga的硬件加速器块的测试体系架构 |
WO2016036438A1 (en) * | 2014-09-04 | 2016-03-10 | Litepoint Corporation | System and method for capturing and enabling analysis of test data packets from a radio frequency data packet signal transceiver |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287363A (en) | 1991-07-01 | 1994-02-15 | Disk Technician Corporation | System for locating and anticipating data storage media failures |
US5668745A (en) * | 1995-10-20 | 1997-09-16 | Lsi Logic Corporation | Method and apparatus for testing of semiconductor devices |
US7444567B2 (en) * | 2002-04-09 | 2008-10-28 | Syntest Technologies, Inc. | Method and apparatus for unifying self-test with scan-test during prototype debug and production test |
US7743143B2 (en) | 2002-05-03 | 2010-06-22 | Oracle America, Inc. | Diagnosability enhancements for multi-level secure operating environments |
US7415643B2 (en) * | 2003-05-09 | 2008-08-19 | Hewlett-Packard Development Company, L.P. | Coverage circuit for performance counter |
US7543198B2 (en) | 2005-10-21 | 2009-06-02 | International Business Machines Corporation | Test data reporting and analyzing using data array and related data analysis |
US7417449B1 (en) * | 2005-11-15 | 2008-08-26 | Advanced Micro Devices, Inc. | Wafer stage storage structure speed testing |
US7567521B2 (en) * | 2006-06-06 | 2009-07-28 | Litepoint Corp. | Apparatus for capturing multiple data packets in a data signal for analysis |
US7953092B2 (en) | 2009-04-08 | 2011-05-31 | Ixia | Traffic receiver using parallel capture engines |
US8386867B2 (en) * | 2009-07-02 | 2013-02-26 | Silicon Image, Inc. | Computer memory test structure |
US9088520B2 (en) | 2011-09-15 | 2015-07-21 | Ixia | Network impairment unit for concurrent delay and packet queue impairments |
US8627158B2 (en) | 2011-12-08 | 2014-01-07 | International Business Machines Corporation | Flash array built in self test engine with trace array and flash metric reporting |
US9952276B2 (en) * | 2013-02-21 | 2018-04-24 | Advantest Corporation | Tester with mixed protocol engine in a FPGA block |
US9810729B2 (en) * | 2013-02-28 | 2017-11-07 | Advantest Corporation | Tester with acceleration for packet building within a FPGA block |
US9264340B2 (en) | 2013-03-15 | 2016-02-16 | Ixia | Methods, systems, and computer readable media for misdirected packet drill down and negative packet capture at a network test device |
US9785526B2 (en) * | 2013-04-30 | 2017-10-10 | Advantest Corporation | Automated generation of a test class pre-header from an interactive graphical user interface |
US9905483B2 (en) * | 2014-01-09 | 2018-02-27 | Advantest Corporation | Adaptive value capture for process monitoring |
US9755766B2 (en) * | 2015-12-07 | 2017-09-05 | Teradyne, Inc. | Front end module for automatic test equipment |
-
2017
- 2017-02-09 US US15/429,034 patent/US10379158B2/en active Active
-
2018
- 2018-02-08 KR KR1020197026354A patent/KR20190107183A/ko not_active IP Right Cessation
- 2018-02-08 CN CN201880004891.4A patent/CN110050441B/zh active Active
- 2018-02-08 WO PCT/US2018/017418 patent/WO2018148405A1/en active Application Filing
- 2018-02-09 TW TW107104783A patent/TWI759423B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011144158A1 (zh) * | 2010-10-27 | 2011-11-24 | 华为技术有限公司 | 用于中间节点自主实现故障定位的方法及*** |
CN105378494A (zh) * | 2013-02-21 | 2016-03-02 | 爱德万测试公司 | 具有用于独立测试多个dut的多个基于fpga的硬件加速器块的测试体系架构 |
WO2016036438A1 (en) * | 2014-09-04 | 2016-03-10 | Litepoint Corporation | System and method for capturing and enabling analysis of test data packets from a radio frequency data packet signal transceiver |
Also Published As
Publication number | Publication date |
---|---|
KR20190107183A (ko) | 2019-09-18 |
TWI759423B (zh) | 2022-04-01 |
US10379158B2 (en) | 2019-08-13 |
CN110050441A (zh) | 2019-07-23 |
WO2018148405A1 (en) | 2018-08-16 |
US20180224502A1 (en) | 2018-08-09 |
TW201833570A (zh) | 2018-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110050441B (zh) | 在故障情况下实时捕获流量以进行协议调试 | |
US10948540B2 (en) | Integrated protocol analyzer configured within automated test equipment (ate) hardware | |
US10929260B2 (en) | Traffic capture and debugging tools for identifying root causes of device failure during automated testing | |
US9810729B2 (en) | Tester with acceleration for packet building within a FPGA block | |
US9952276B2 (en) | Tester with mixed protocol engine in a FPGA block | |
US10161993B2 (en) | Tester with acceleration on memory and acceleration for automatic pattern generation within a FPGA block | |
CN111426935B (zh) | 自动化测试设备装置 | |
US10162007B2 (en) | Test architecture having multiple FPGA based hardware accelerator blocks for testing multiple DUTs independently | |
US10955461B2 (en) | Smart and efficient protocol logic analyzer configured within automated test equipment (ATE) hardware | |
CN103853639B (zh) | 自测试***和用于自测试功能逻辑模块的方法 | |
US20210111967A1 (en) | Graphical user interface for traffic capture and debugging tool | |
CN113391142A (zh) | 使用主机总线适配器在自动化测试设备中提供协议灵活性 | |
US11430536B2 (en) | Software-focused solution for arbitrary all-data odd sector size support | |
CN113327642B (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 |