具有可变并行性和固件可升级性的灵活存储接口测试器的制作方法

文档序号:6360734阅读:197来源:国知局
专利名称:具有可变并行性和固件可升级性的灵活存储接口测试器的制作方法
技术领域
实施例涉及测试,并且具体涉及固态存储设备的测试。
背景技术
固态驱动器(SSD)是使用固态存储器来存储永久数据的数据存储设备。SSD模拟硬盘驱动接口,因此在大部分应用中容易将其替换。SSD通过标准化电气通信协议和物理接口连接器连接至个人计算机(PC)。SSD的常见示例为由电池供电的动态随机存取存储(DRAM)易失性存储器、基于NAND/N0R的闪速存储器和其他非易失性存储类技术。SSD可以具有不同的外形参数。SSD是相对较新的产品,并且行业处于定义如何对其进行测试的过程中。测试各种外形参数和接口标准存在机械上的挑战和协议/电气上的挑战。为了测试SSD,测试器需要能够通过物理连接器进行连接,并且支持接口协议和电信号传输。目前,主导的测试架构使用基于PC的测试器。PC可以通过主机总线适配器(HBA)和线缆连接到存储设备。HBA及其软件驱动程序提供物理连接器、通信协议和电机从而将来自计算机的操作系统和存储协议级命令转换成存储设备可以理解的命令。HBA可以插入母板中。PC母板可以包括中央处理器(CPU)、存储器以及总线和控制器芯片以运行CPU、存储器和主机总线适配器。需要操作系统和驱动器来在PC上运行程序。CPU和存储器通过运行程序以发送数据到存储设备并从存储设备接收数据而允当共享模式发生器资源。基于PC的测试器的问题是它们存在基于所使用的组件的性能的性能和并行性限制。此外,增强性能和提高并行性的方法可能是昂贵的。

发明内容
在一个实施例中,提供了一种用在自动测试设备中的系统。在一个实施例中,该系统包括可配置的集成电路(1C),该集成电路可编程为提供用在自动测试设备中的测试模式。可配置的IC包括可配置的接口核,该接口核可编程为提供对于被测设备(DUT)的一个或多个基于协议的接口的功能并且可编程为与DUT接口。该系统还包括连接,该连接可配置成将可配置的IC耦合到DUT。


图1示出了示例的基于PC的测试系统的方块图;图2示出了根据一个实施例的示例的基于现场可编程门阵列(FPGA)的测试系统的方块图;图3A-3D示出了根据几个实施例的基于FPGA的测试系统的4种示例配置的方块图;图4A和4B示出了基于FPGA的测试系统与基于PC的测试系统之间的尺寸差异;图5示出了根据一个实施例的使用内插器(interposer)的基于FPGA的测试系统的方块图,该内插器使FPGA能够连接到不同类型的存储设备;图6A-6E示出了根据几个实施例的使用内插器和卡盒(caddy)的基于FPGA的测试系统的方块图,该内插器和卡盒使FPGA能够连接到不同类型的存储设备;图7示出了根据一个实施例的使用可编程片上系统的基于FPGA的测试系统的方块图;图8A和8B示出了基于FPGA的测试系统可以测试的各种被测设备(DUT);图9为根据一个实施例的用于测试存储设备的示例方法的流程图。
具体实施例方式本文所述实施例提供了一种用在自动测试设备中的系统。实施例还提供了一种用于测试被测设备(DUT)的相应方法,其中可以利用本文公开的系统实施例来使用该方法。在一个实施例中,系统包括可配置的集成电路(1C),例如现场可编程门阵列(FPGA),该集成电路被编程为提供用在自动测试设备中的测试模式。可配置的IC包括接口核,该接口核与至少一个DUT接口并且提供主机总线适配器的功能。短语“接口核”和“IP核”可互换使用。该系统还包括与至少一个DUT的连接,其中该连接是直接耦合在可配置的IC与至少一个DUT之间。如以下更加详细地描述,可配置的IC实现基于PC的测试器的功能,然而避免了基于PC的测试器在灵活性、可缩放性、性能和成本上的固有缺陷。如以下更加详细地描述,可配置的IC在测试DUT上提供了很大灵活性。如以下更加详细地描述,一些优点包括更小的测试器尺寸、增加的接口灵活性、极大简化的产品组合支持、更低的成本和改进的相关性和兼容性。图1示出了示例的基于PC的测试系统的方块图。通常,基于PC的测试器是基于板/组件的测试器。基于PC的测试器100包括母板103、CPU 105,DRAM存储器107、HBA卡110,所有的这些都是建立基于PC的测试器所需的。在小型塔式外壳中的这样的测试器的典型的尺寸是420x175x360mm。在一个实施例中,CPU 105通过高速接口(例如PCIe) 112连接到HBA卡110,HBA卡通常可以包括I至4个端口。HBA卡110通过插入到可用的HBA端口中的连接线缆120连接到一个或多个SSD 115。基于计算机的系统控制器125连接至一个或多个基于PC的测试器100,并且用于控制单独的PC测试器。可以有多个基于PC的测试器100,也称为测试片100,每个测试器包括母板、CPU、存储器和相关联的HBA卡。要注意术语CPU和处理器可互换地使用。对于SSD的生产测试和基准测试而言,成本直接地受到你可以并行测试的设备的数量的影响。每个基于PC的测试器针对固定的并行性和接口标准而被优化。在不更换HBA卡的情况下,不可能支持多个标准或更高层次的并行性。更换HBA卡增加了测试器的成本。对于基于PC的测试器的当前64-128个DUT的并行性,需要更换8_16个HBA卡,这是费时但是可行的。在更高的并行性(例如,1024个DUT= 128个HBA卡)下,如果手动地对测试器进行重新配置,则该过程可能是不可行的并且引入很多错误。
对于基于PC的测试器,测试多个接口的灵活性受到了增加HBA卡的可用性和成本的限制。另外,HBA卡需要在物理上被换出,从而随着并行性的增加需要大量的停机时间。因为基于PC的测试器利用了现有的用于如主机总线适配器的PC应用的版,所以当新的或现有的接口标准需要连接到DUT时,就存在受限的灵活性。通常,每个需要支持的接口标准需要一个HBA。并行性固定在每个HBA卡4-8个DUT之间并且无法修改。此外,HBA卡需要在物理上从母板移除并且更换为不同的HBA卡以支持不同的接口。例如,如果基于PC的测试器被配置成连接到SATA设备,则需要SATA HBA。具体的HBA可以在母板上或在分开的HBA卡上。如果PC测试器然后需要支持光纤通道DUT,则需要购买新的光纤通道HBA0在物理上移除SATA HBA并且然后在物理上插入光纤通道HBA代替SATA HBA0 PC不意味着灵活的存储测试器,因为PC通常起到用于桌面或数据中心应用的通用计算机的作用。更小的尺寸/占用面积导致更高成本的定制板。将PC用于测试存储设备的主要原因在于1)PC是公知的通用计算机架构;2)PC通常更便宜(例如,更少的开发成本和大量PC组件的利用);以及3)测试的存储设备最终在PC中使用。正因如此,具有能够建立十分接近最终使用场景的测试环境的另外的优点。随着发货的SSD产品的数量增加,需要更加高效地测试这些存储产品。这将需要能够在单个测试器中处理多种接口和外形参数的设备,以便a)提高测试产品组合的灵活性和效率;b)提供每平方英尺更高的密度/更高的并行性的测试站;以及c)提高测试器速度/性能以使能够实现最佳的测试次数并且避免共享资源架构的测试时间开销的缺点。如以下结合图2-8更加详细地描述,本文所述实施例采用实现定制固件和软件镜像的可配置的/可编程的ic(例如,FPGA),所述镜像在单个芯片中实现一个或多个基于PC的测试器的功能。本文所述实施例使用可编程的1C,可编程的IC进而允许高度的灵活性以对性能、并行性和成本进行优化,并且使得能够实现到达类似SSD、HDD等的存储测试应用的有待发布的协议接口的基于软件的升级路径。与需要不同的HBA卡或潜在不同的测试器来测试不同的存储设备外形参数、物理连接器和接口标准的基于PC的测试器不同,诸如基于FPGA的测试器的基于单个可编程的IC的测试器可以测试广泛的不同存储设备外形参数、物理连接器和接口标准。基于FPGA的测试器通过用户简单地加载新的合适的配置到可编程的芯片/FPGA中而实现这种灵活性。本文所述实施例利用FPGA的可编程性以便(a)代替物理HBA用于测试存储器的自动测试设备(ATE) ;(b)优化一种给定接口的拷贝的数量以获得最大的并行性并且因此降低成本;(c)具有在不购买新的测试器的情况下支持未来接口标准或升级现有接口标准的能力;以及(d)使得能够采用新的商业模式,比如按使用付费,在该情况下用户为测试系统支付低基础费用并且当用户使用/需要新的接口时你只要支付额外的费用。图2示出了根据一个实施例的示例的基于FPGA的测试系统的方块图。一个或多个FPGA 200各包括紧邻接口协议(IP)核210的测试模式发生器(TPG) 205。IP核210直接耦合到DUT 215,该DUT可以是存储设备,例如SSD。在一些实施例中,其他类型的存储设备可以包括硬盘驱动器(HDD)、USB驱动器、闪存卡和基于DRAM的盘。TPG与IP核之间的连接可以是具有一个或多个链接的总线(并行或串行)以提供足够的带宽。在一个实施例中,每个FPGA实现定制固件和软件镜像以在单芯片中实现一个或多个基于PC的测试器的功能。所需的电信号传输和基于协议的信号传输是由FPGA中的片上IP核提供。在一个实施例中,接口核提供HBA的功能。在一个实施例中,每个FPGA可编程有预先验证的接口核。这确保了根据给定接口标准的顺应性和兼容性。在一个实施例中,通过选择合适的FPGA速度等级实现了目标接口信号传输速度等级。芯片的可编程性被用于优化来自SSD、HDD和其他基于协议的存储设备的存储测试应用的灵活性、成本、并行性和可升级性。在一个实施例中,接口核可以从第三方供应商获取,但是可能需要一些用户定制化来和本文所述的实施例兼容。在一个实施例中,接口核/HBA提供两个功能1)将存储命令打包在标准协议中而通过物理通道进行传输;以及2)作为电信号发生器和接收器。在一个实施例中,每个DUT具有专用电源,该电源可以包括电流感测能力并且通过通信总线受到测试器的控制。在一个实施例中,操纵器可以包括机械爪218,该机械爪将DUT从工厂输送系统移动到测试器并且初始化物理连接并且从测试器资源释放。保持DUT215的机架220提供环境控制以在测试过程中对DUT施压。在一个实施例中,可以在五种变型中实现环境控制每个DUT的热处理室;多个DUT的共享的热处理室;模拟PC中的其他组件的电磁噪音;湿度;以及对于纯电气功能测试没有热控制。集中协调单独的测试器电子设备、电源、操纵器及环境控制的基于PC的系统控制器225被耦合到每个FPGA、电源和操纵器。操纵器219可以将DUT从皮带/装载器230传送到机架220。在一个实施例中,模式发生器和匹配的IP接口核是彼此相邻地在芯片上实现的并且使用专用总线链路来进行连接。系统组件的这种紧邻性允许链路的优化以匹配目标接口速度,避免共享总线架构中固有的瓶颈,并且将总线转换开销保持在绝对最小。在一个实施例中,可以包括存储模式加速、系统逻辑彼此紧邻和专用总线链路的专用片上资源的组合确保对于任何目标接口标准的全速测试。使用可编程的IC允许完全控制以在性能与成本之间进行优化。例如,在可编程的芯片方案的CPU很快而足以全速支持多于一个接口的情况下,通过去除专用模式发生器资源就可以降低成本。在一个实施例中,如果目标接口不需要3Gbps或更高的速度,则可以选择更低速度并且更低成本的可编程芯片以降低成本。在一个实施例中,如果目标接口使用不那么高速度的通道来与DUT通信,则可编程的芯片可以被重新配置成生成另外的每个DUT的测试器的实例。虽然在本文所述的一些示例中,基于FPGA的测试器可以测试作为SSD的DUT,但是在其它示例中,基于FPGA的测试器也可以测试包括基于协议的模块在内的各种不同种类的DUT。例如,DUT可以是存储模块、固态驱动器、射频(RF)模块、无线网络(WiFi)模块、具有光学连接性的模块、硬盘驱动器、非易失性存储器设备或模块、NAND快闪存储设备或模块、存储类存储器存储设备或模块、易失性存储器设备或模块、需要基于协议的通信作为测试模式的模块或设备、需要基于协议的通信用于在ATE测试系统中的设置的模块或设备
坐寸ο在一个实施例中,对于存储/SSD/HDD而言,基于FPGA的测试器可以包括可配置的IC, IC连接至SSD并且可编程为通过诸如SATA或SAS的存储特定接口提供基于存储的模式。在一个实施例中,对于RF模块而言,基于FPGA的测试器可以包括可配置的1C,其中可配置的接口核可编程为提供使用当前的RF模块的USB或PCIe接口连接。
在一个实施例中,基于FPGA的测试器可以是使用基于协议的通信来与DUT或模块接口的基于SSD或RF模块的测试器。在一个实施例中,可配置的接口核可以被编程为提供任何标准化的基于协议的通信接口。例如,在一个实施例中,在基于SSD模块的测试的情况中,接口核可以被编程为提供标准化的基于协议的通信接口,例如SATA、SAS等。在一个实施例中,在基于RF模块的测试器的情况中,接口核可以被编程为提供标准化的基于协议的通信接口,例如提供USB、PCIe等。在一个实施例中,在具有光学互连的模块的情况中,接口核可以被编程为提供用于通过光学互连与模块进行通信的标准化的基于协议的通信。图3A-3D示出了具有测试模式发生器的不同并行性和不同实例的几种配置。每种配置可以被上载到可编程的芯片,从而针对给定应用基于应用的并行性、性能和成本需求来优化测试器。当应用需要改变时,可以在使用同一个测试器的情况下上载新的配置。图3A示出了根据一个实施例的使用FPGA 300的示例系统的方块图。FPGA 300包括一个或多个专用测试器305,每个测试器连接到单个DUT300。在一个实施例中,DUT 310可以是存储设备。在一个实施例中,DUT310可以是SSD。每个专用测试器305包括直接连接到DUT 310的IP核315。如图3A所示,每个专用测试器305具有其自身的片上测试模式发生器,该片上测试模式发生器由CPU 330、存储器335和功能加速块312组成。因此,该配置不具有共享资源。在一个实施例中,FPGA 300还包括一个或多个功能加速块312和接口核315。在一个实施例中,每个功能加速块包括专用模式发生器320和接收器325。在一个实施例中,通过由模式发生器320和接收器325提供的逻辑来提供测试激励(例如,测试模式),该接收器受到带有相关联的存储器335的片上CPU 330的控制。在一个实施例中,单个FPGA 300上的多个测试器305可以通过以太网连接器345进行链接。多个FPGA 300可以通过以太网(GbE)接口或通过开关355连接到系统控制器350。在一个实施例中,系统控制器350可以由处理器实现并且可以包括操作系统(OS)、驱动程序、测试器控制软件、包括编译器、调试器、低级API和测试库的程序开发环境。图3B、3C和3D示出了根据其他实施例的三种其他示例的FPGA配置。要注意这些实施例是示例的配置选择,但不是配置选择的完整的或限制性集合。图3B示出了根据一个实施例的使用FPGA 300的示例系统的方块图。FPGA 300包括一个或多个专用测试器305,每个测试器连接到单个DUT300。在一个实施例中,每个测试器305的专用部分包括功能加速块312和接口协议核318。在一个实施例中,每个功能加速块312包括模式发生器320和接收器325。除了图3B的CPU 300和相关联的存储器335在多个测试器305之间共享之外,图3B的系统与图3A的系统相似。这种配置从成本的角度看是可取的,当CPU处理能力能够生成并且接收激励以便以全速支持与其连接的多个DUT时,这种配置是实用的。这种配置与共享资源的PC架构的不同之处在于这种配置是在其布局和专用总线优化的情况下在片上实现的,从而能够使用更慢的片上处理器。图3C示出了根据另一个实施例的使用FPGA 300的示例系统的方块图。除了每个专用测试器305连接到多个DUT 310之外,图3C的系统与图3B的系统相似。这可以被称为扇出配置。图3D示出了根据另一个实施例的使用FPGA 300的示例系统的方块图。在一个实施例中,模式发生器320和接收器325位于PC刀片上。本文所述的实施例的主要优点是它们通过将模式发生器和接口逻辑集成在单个可编程芯片上并且使其紧邻以最小化瓶颈来优化性能或成本的灵活性。在一个实施例中,系统可以配置成每个接口逻辑带有一个专用CPU,或者如果CPU速度与接口和DUT的所需资源相比足够高,则单个CPU可以在多个接口之间共享。如以下更加详细地描述,基于FPGA的测试系统的一些优点包括更小的测试器尺寸、增加的接口灵活性、极大简化的产品组合支持、更低的成本和改进的相关性和兼容性。尺寸图4A和4B示出了基于FPGA的测试系统与基于PC的测试系统之间的尺寸差异。图4A不出了根据一个实施例的基于FPGA的测试系统和基于PC的测试系统400。基于FPGA的测试系统400包括可编程的IC 405和可编程的引脚410。在具体实施例中,可编程的IC 405可以包括多个测试器(例如,4至8个或更多个)。每个测试器可以具有CPU、存储器、加速器和IP核。可编程的IC 405可以是FPGA并且具有35mmX 35mm的尺寸。其他尺寸也是可能的。连接至可编程的IC 405的可编程的引脚410可以被重新配置成支持各种DUT(例如,8x SATA、16x USB、具有8/2/1通路的l/4/8x PCIe、具有4-1通路的2_8xSAS、8x光纤通道等)。这种可配置的IC芯片比塔式外壳中的基于PC的测试器小得多,而基于PC的测试器的尺寸可以是420x175x360mm。DUT测试器的每个实例支持本文所述的实施例的灵活的全速测试特征。在一个实施例中,DUT测试器可以在单个可编程的芯片上实现。在每个可编程的芯片具有4至8个DUT测试器的情况下,本文所述的系统能够实现与基于PC的测试器相同或比它低的成本,增加了灵活性和确定性的全速并行测试的优点,这对于类似价格的共享资源的PC测试器来说是无法保证的。利用具有更强逻辑能力的更大可编程芯片,有可能实现更高的并行性。图4B示出了基于PC的测试系统,该系统包括母板450,该母板连接到多种类型的HBA板460以便容纳多种类型的DUT。这样的DUT可以包括3Gbps SATA HBA、6Gbps SATAHBA、3Gbps SAS HBA、6Gbps SASHBA、4g光纤通道HBA等。其他的HBA可以包括多链路SAS、12GbpsSAS、8G光纤通道等。如图所示,图4B的母板450和任何另外需要的HBA板460的组合比图4A的基于FPGA的测试系统400大得多,图4A的该测试系统可以用单个可编程的IC 405容纳多种类型的DUT。在使用基于PC的测试器的情况下,用户需要将所有的不同的HBA插入PC母板中,以便支持可配置有单个FPGA解决方案的不同标准。基于FPGA的测试器解决方案支持这8个或更多个测试器。接口灵活件:本文所述的实施例实现了测试器的灵活性在于,测试器使用了使得能够实现基于软件的接口改变的IP核。实施例提供了测试独立于HBA卡的多种DUT的能力。由于具有这种接口灵活性,新的接口可以被载入到可编程的芯片的IP核中,从而消除对PC卡主机总线适配器的需求。在一个实施例中,从电气角度来讲,FPGA测试器使用IP核代替HBA。通过对FPGA的可编程的芯片资源进行软件编程,使得能够在不改变物理FPGA芯片或其他硬件组件的情况下,给定IP核可以容易地被重新编程和更换为另一个IP核。例如,如果给定的基于FPGA的测试器当前支持SATA,则为了能连接到光纤通道DUT所需做的全部事情就是对FPGA进行重新编程以使用光纤通道IP核代替被配置用于SATA的现有的IP核。基于FPGA的测试器的实施例的接口灵活性的另一个优点是新的接口标准在被标准化机构发布之后可以被快速实现。然后在物理的HBA板可以作为解决方案被制造和在PC市场上出售之前很久,这样的新的接口标准就可以在基于FPGA的测试器的可编程的芯片上实现。本文所述的实施例还提供在HBA可广泛使用之前生成接口的早期版本的能力以及当标准确立之后对其进行升级的能力。例如,在一个实施例中,有可能实现一个新标准的早期版本并且在该标准确立之后对其进行升级。例如,在一个实施例中,当发布了一个标准的第一个版本(例如,SAS 12G)时,有可能生成或者以更低的速度(例如,低于12Gbps)实现协议或者实现协议的简洁版本的IP核版本。然后,当标准被确立,有可能在不改变测试器硬件的情况下进行软件升级(例如,使得能够实现宽端口相对于窄端口或增加12Gbps全速或增加超过2倍的多通路的能力等)。图5不出了根据一个实施例的使用内插器的系统的方块图,内插器使FPGA能够连接到不同类型的存储设备。系统测试需要不同数量的引脚和电气资源的不同类型的DUT。在一个实施例中,基于FPGA的测试器可以通过更换IP核部分来改变协议支持。在一个实施例中,系统包括具有固件镜像的FPGA 500,该固件镜像包括具有模式发生器的CPU 502、IP核503和测试器引脚507的引脚图505。在一个实施例中,FPGA 500可以根据DUT而被加载或编程有不同的镜像。例如,如果FPGA 500被编程有SATA镜像,则SATA镜像会包括CPU、模式发生器、SATA IP核和SATA引脚映射。在一个实施例中,SATA内插器509使得FPGA 500能够连接到SATA DUT (例如,SATA SSD 511)并对其进行测试。具体地讲,在一个实施例中,FPGA 500通过测试器引脚507和SATA内插器509连接到SATASSD 511。如果FPGA 500被编程有USB镜像,则USB镜像会包括CPU、模式发生器、USB IP核和USB引脚映射。在一个实施例中,USB内插器513使得FPGA 500能够连接到USB DUT (例如,USB SSD 515)并对其进行测试。具体地讲,在一个实施例中,FPGA 500通过测试器引脚507和USB内插器513连接到USB SSD 515。本文所述实施例还提供了对可用的高速引脚资源的灵活使用以实现不同的DUT并行性。例如,如果不同的DUT接口使用比可编程的芯片上可用的引脚更少的引脚,则可以通过编程实现到DUT的接口的多个实例。因此,可以针对每个独特的接口来优化可测试设备的数量。单个硬件和软件的解决方案降低了支持DUT组合的测试器复杂性并且消除了对于每种接口类型的专用测试器的需求。图6A-6E示出了根据几个实施例的使用内插器和卡盒的系统的方块图,内插器和卡盒使得FPGA能够连接到不同类型的存储设备。图6A示出了采用内插器和单个卡盒的系统的方块图。在一个实施例中,系统测试具有不同数量的引脚并且需要不同的电气资源的不同类型的DUT。在一个实施例中,系统包括FPGA 600、内插器609和卡盒610,该FPGA具有带有可配置的映射的测试器引脚607。卡盒610包括卡盒引脚612和接收DUT 616的DUT特定接口连接器614。在一个实施例中,内插器609和卡盒610使得基于FPGA的测试器能够根据合适的电气引脚和接口协议而被重新配置。正因如此,从机械的角度来看,该系统容纳具有带有不同数量的引脚的不同特定接口连接器的不同的DUT。在一个实施例中,内插器在FPGA与DUT之间提供了规定的一致的连接。如以上所指出,FPGA测试器包括可配置的测试器引脚。在一个实施例中,内插器连接在测试器引脚与一个或多个卡盒的卡盒引脚之间。在一个实施例中,内插器包括接收测试器引脚和卡盒引脚的凹陷的接收座。在一个实施例中,内插器具有刚性平面,该刚性平面提供可靠的接触、测试器电子设备与DUT环境的电气和环境/热隔离。在一个实施例中,环境隔离方面的意思是室的内部温度可以在不损坏室的外部的组件的情况下升高。在一个实施例中,卡盒连接在内插器接口和卡盒接口之间。在一个实施例中,卡盒包括连接到DUT的DUT特定接口。在一个实施例中,卡盒是一次性的。在一个实施例中,可以存在不同的灵活的配置选择。例如,图6B示出了使用内插器和两个卡盒615的系统的方块图,每个卡盒可以接收中等引脚数的存储设备。图6C示出了使用内插器和一个卡盒617的系统的方块图,该卡盒可以接收高引脚数的存储设备。图6D示出了使用内插器和卡盒619的系统的方块图,每个卡盒可以接收低引脚数的存储设备。图6E示出了使用内插器和三个卡盒的系统的方块图,每个卡盒621可以接收低引脚数的存储设备并且卡盒623可以接收中等引脚数的存储设备。图6A-6E是示例组合,而其他组合也是可能的。在一个实施例中,卡盒具有通用的形状,因为它们能够容纳具有不同形状和尺寸的不同DUT。提供一致的形状允许DUT在自动化处理中由单个机器人机械爪来处理。内插器上的连接到卡盒的区域可以被优化成连接到固定的形状,这与必须适配于每个单独的DUT外形参数相对。在一个实施例中,卡盒充当牺牲元件,以在至少一个被测设备使用了比可配置的测试器所使用的连接器失效得更快的连接器时保护可配置的测试器引脚。当所述至少一个DUT使用低插入数连接器时,这是特别有益的。在一些实现方式中,被测试的DUT使用在其被连接数百万次的测试环境中不打算使用的连接器。用于PC消耗应用(例如,SSD)的典型的DUT连接器可以持续大约1000次插入。这意味着在1000次插入之后,连接器具有高破损风险。在使用PC的情况中,连接器绝不会达到1000次插入。在测试器环境中,一天内测试多个SSD,并且每个被测试的SSD代表一次插入和移除。人们可以很快地看到如果测试器与DUT使用同一个连接器,该连接器将会很快失效。如果测试器的连接器破损,则用户将需要更换连接器被连接到的整个板,而整个板是全部的测试器电子设备并且非常昂贵。因此,使用内插器和卡盒的概念提供了廉价的牺牲连接器的有益效果以及有益的空间转换。本文所述的实施例提供了几个优点。将连接器放置在一次性的低成本的卡盒中的一个优点是低成本的卡盒随时间推移而破损,而不是连接器随时间推移而破损。例如,DUT特定连接器并不打算支持高容量测试器所需的上千次插入。连接器在数百次插入之后会破损。卡盒因此提供对于连接器破损的成本高效的解决方案。另一个优点是卡盒提供了 DUT特定接口引脚与测试器引脚之间的空间转换。另一个优点是如果一个具体接口协议需要比另一个接口协议更多或更少的引脚,则测试器引脚可以被重新编程以使得更高引脚数的DUT以并行性为代价仍然能够被测试。更低引脚数的DUT通常以更高的并行性被测试。
相关性和兼容性:本文描述的实施例还提供了相关联和兼容性。使用来自经验证的供应商的经证明的IP核确保了在进行基于协议的测试时与现有的接口标准的相关性和兼容性。诸如协议分析器的工具可供使用,可以用于验证IP核是否满足标准要求。本文所述的实施例还提供了(例如,通过上载测试器的不同版本等来优化性能和成本的)完全的灵活性。从每个接口的专用资源来看,在可编程的芯片中对基于Linux的PC的多个接口之间共享。在一个实施例中,基于FPGA的测试器的SOPC方法可以包括CPU和存储器,该CPU和存储器允许在与FPGA —起使用的每个CPU上运行整个Linux操作系统。这为测试应用提供了另外一层兼容性和相关性。在一个实施例中,基于Linux的PC软件、基准测试程序和驱动程序可以被移植到基于FPGA的测试器并且在其上运行以提供类似于PC环境的最终使用环境。例如,基准测试软件IOmeter可以被移植到FPGA并且作为守护进程(daemon)在FPGA测试器上运行,从而允许所附接的DUT接收如同来自运行IOmeter的基于PC的测试器的相同的基准测试应力。在一个实施例中,使用SOPC的基于FPGA的测试器具有充当基于PC的测试器的优点。例如,基于PC的测试器可以被配置成使用与实际用户环境中DUT将会使用的相同的硬件、操作系统、驱动程序和应用软件。例如,SSD是连接到位于具有CPU和存储器(这是台式PC系统的基本硬件组件)的母板上的HBA的存储设备。为了将SSD用于台式PC上的存储应用,可以安装诸如Linux的操作系统,该操作系统将包括用于HBA和存储设备的驱动程序。在操作程序之上,最终用户可以开发诸如文件系统浏览器或基准测试程序的应用程序,以便测试SSD的性能。使用这样的应用程序或基准测试程序是测试DUT的好方法,因为这需要整个系统工作,而不仅仅是单独的组件。这还是成本高效的方法,因为使DUT在最终用户环境中使用所需的许多现有的软件组件和工具可以被重复使用。可配置的基于FPGA的测试器是定制的测试系统,并且正因如此,通常需要定制的软件代码以控制定制的硬件。通过选择合适的CPU架构(例如,PowerPC、x86或ARM)与可配置的IC和诸如Linux的开源操作系统一起使用或嵌入其中,创造类似台式PC系统的环境的复杂度被极大地减小为开发在可编程的IC上使用的软件驱动程序和片上系统架构。图7示出了根据一个实施例的使用可编程片上系统(SOPC) 702的基于FPGA的测试系统700的方块图。在一个实施例中,基于FPGA的测试系统700可以与基于PC的测试器710 —起工作。将基于FPGA的测试器中的SOPC设计用于ATE应用通过利用现有的驱动程序、操作系统、应用工具和基准测试程序而允许类似台式PC的相关性。基于FPGA的测试器中的SOPC设计的其他优点包括改进的性能、更低的成本以及在单个可编程的IC解决方案中优化的占用面积。
_2] 极大简化的产品组合支持:本文所述的实施例提供了对产品组合支持的更大简化。传统上,制造商购买专用测试器以支持特定接口标准。如果制造商构建需要同一个标准的更多设备,就要购买一种测试器的多个。制造商购买具有不同接口标准的不同测试器以支持其产品组合中的其他不同的产品。例如,如果制造商一周构建1000个SATA驱动器和100个光纤通道驱动器,贝Ij制造商将要购买10x100个SATA驱动测试器和I个光纤通道驱动测试器。制造商购买如此多的测试器是因为将SATA测试器改变成光纤通道测试器非常耗时并且产生费用。如果光纤通道的需求下降,则光纤通道测试器就会闲置。如果需求上升,则制造商将会需要购买更多的测试器。由于基于软件对基于FPGA的测试器进行重新编程,本文所述的实施例对自动测试设备(ATE)产生了重要的积极影响。例如,假定具有100个SATA HBA的基于PC的测试器,则需要几个小时来拆卸测试器以能接触到SATA HBA,拔出HBA,将其更换为光纤通道HBA,然后重新组装测试器。利用基于FPGA的测试器,重新配置在软件中进行并且可以在几分钟之内完成。利用基于FPGA的软件可重新配置的测试器,将有可能增加现有的测试器的利用率来应对产品组合的变化。例如,制造商具有基于FPGA的10个SATA测试器和I个光纤通道测试器。如果对光纤通道驱动器的需求上升而对SATA测试器的需求下降,则制造商将不需要购买新的测试器。他们将他们的一些SATA测试器重新配置成光纤通道测试器。这可以非常快速地并且以最少的努力来完成,因此减少了重新配置的成本和停机时间以及资本设备成本节约,因为他们不需要购买新的测试器。可升级件:本文所述的实施例还提供了在无需修改或处理硬件的情况下在装运之后现场升级或更新测试器功能的能力。这种更新可以包括,例如,新的接口标准或版本的按使用付费的更新。图8A和8B示出了基于FPGA的测试器可以测试的各种类型的DUT。图8A图示了示出产品类别(例如,盘和PC卡)和相应的外形参数、协议、性能等级、设备引脚/通路的数量以及DUT的数量的表格。图SB示出了单个基于FPGA的测试器可以代替的各种类型的HBA。这种HBA例如可以包括(例如,并行高级技术附件(PATA) /零插拔力(ZIF)、串行ATA(SATA)、SAS、外围组件互连高速(PCIe)和光纤通道(FC)等。换句话讲,利用单个基于FPGA的测试器有可能实现不同的并行性。这是通过加载用于编程FPGA的不同的固件镜像来实现的。每个协议标准可以具有不同的协议、引脚数量、速度性能、连接器等。成本:本文所述的实施例通过在单个芯片中实现多个测试器实现了更高的成本节约,因为可编程的芯片以与PC相同或更低的成本实现了功能。当大批量采购时,较贵的FPGA价格下降,使得测试器甚至更具有竞争性。间接成本收益包括更快的交换接口时间以及每平方英尺更高的并行性,这在工厂占地面积有限或占地面积非常珍贵的情况下允许较高的利用率和生产量。提供更多测试器的优点是更小的占用面积,这在占地面积有限或占地面积非常珍贵的情况下对于制造商是非常重要的。在一个实施例中,片上实现功能加速器块确保了被优化为匹配目标接口的速度的专用的每个DUT资源。这种功能加速器块允许独立于在芯片测试器上实现的另一个的DUT的确定性激励。在一个实施例中,功能加速器块可以起到从主处理器卸载工作的作用。在一个实施例中,卸载工作可以通过加速器生成和接收模式来实现。在一个实施例中,卸载工作还可以通过加速器将多步测试功能中的多个步骤组合为单个步骤来实现。例如,在一个实施例中,加速器可以提供写入模式、读回所写入的模式然后比较这两个模式的比较功能。在一个实施例中,功能加速块可以起到写入比较功能的作用。在一个实施例中,功能加速块可以起到逻辑比较单元的作用。这允许对于给定的存储地址的写入的数据和读回的同一数据的比较。该硬件实现方式允许当与需要在处理器中执行这些软件算法的基于软件的比较算法进行比较时非常快速的比较(微秒相对于毫秒)。利用基于软件的比较算法,写入数据需要被存储在存储器中,并且通过多个总线发送到DUT,然后通过多个总线读回以进行比较。由于通过多个总线传送数据,这造成了很多开销,并且需要快速的处理器以执行比较代码。在一个实施例中,功能加速块起到协处理器的作用在于,它被用作补充主处理器(例如,CPU)的功能的处理器。在一个实施例中,功能加速块所执行的操作可以是浮点运算、图表算法、信号处理、字符串处理或加密。通过从主处理器卸载处理器密集型任务到功能加速块,功能加速块加速了整个系统的性能。在一个实施例中,功能加速块可以用于单个DUT和并行DUT测试二者。图9为根据一个实施例的用于测试数据存储设备的示例方法的流程图。在一个实施例中,数据存储设备是SSD。该方法从块902开始,其中可配置的IC提供测试模式。在一个实施例中,测试模式用于测试DUT。在一个实施例中,测试模式是使用可配置的IC来提供的,其中测试模式被用在自动测试设备中以测试DUT。在一个实施例中,块904中提供了与DUT的接口。在一个实施例中,该接口是使用可配置的接口核来提供的,该接口核可编程为为DUT提供一个或多个基于协议的接口的功能并且可编程为与所述至少一个DUT接口。在一个实施例中,在块906中提供了与DUT的连接。在一个实施例中,该连接是使用可配置成将可配置的IC耦合到DUT的连接来提供的。在一个实施例中,可配置的IC的每个处理器(例如,图4的CPU 430)生成测试模式。在一个实施例中,可配置的IC的每个功能加速块(例如,图4的功能加速块412)生成测试模式。在一个实施例中,其中一个或多个处理器生成测试模式,一个或多个功能加速块可以协助一个或多个处理器生成测试模式。例如,在一个实施例中,同一个可配置的IC中给定的功能加速块可以协助同一个可配置的IC中的处理器生成测试模式。在一个实施例中,为了提供测试模式,可配置的IC可以执行在处理器上或在处理器与接口之间的功能加速块上运行的程序。在一个实施例中,测试模式是基于协议的测试模式。在一个实施例中,给定的存储接口协议可以是SATA、SAS、光纤通道、PCIe、USB、紧凑式闪存、SD、ONFI,并且连接的DUT是SATA、SAS、光纤通道、PCIe、USB、紧凑式闪存、SD、ONFI存储设备。在一个实施例中,基于协议的通信可以是并行或串行协议,例如以太网、SATA、PATA, WiFi,并且连接的DUT是需要以太网、SATA、PATA, WiFi连接来与它们进行通信的设备。该硬件实现的功能加速块可以用于加速各种软件测试功能。这种软件测试功能可以包括,例如执行来自可编程缓冲器的预定义模式、类似计数器的算法模式、棋盘模式、随机生成的数据、在单个步骤中将写入数据与读回数据进行比较的比较单元、协议分析程序和通过允许访问协议级通信的注入程序等。在块804中,可配置的IC提供与DUT的接口。在块806中,对至少一个DUT提供连接,其中该连接被直接耦合在可配置的IC与至少一个DUT之间。本文所述的实施例或其各部分可以是计算机实现的。计算机系统可以包括处理器(例如,处理器核、微处理器、计算设备等)、主存储器和静态存储器,它们通过总线彼此通信。该机器可以进一步包括显示单元,该显示单元可以包括触屏、或液晶显示器(LCD)或发光二极管(LED)显示器或阴极射线管(CRT)。如图所示,计算机系统还可以包括人体输入/输出(I/O)设备(例如,键盘、字母数字小键盘等)、点击设备(例如,鼠标、触屏等)、驱动单元(例如,盘驱动单元、CD/DVD驱动器、有形的计算机可读可移除介质驱动器、SSD存储设备等)、信号发生设备(例如,扬声器、音频输出等)和网络接口设备(例如,以太网接口、有线网络接口、无线网络接口、传播信号接口等)。驱动单元可以包括其上存储了实施以上所述方法中的任一个或全部方法的指令集(例如,软件、固件、中间件等)的机器可读介质。该指令集还被示为完全或至少部分地驻留在主存储器内和/或处理器内。该指令集可以进一步通过网络总线经由网络接口设备进行发送或接收。应当理解本发明的实施例可以用作或支持在某种形式的处理核(例如计算机的CPU)上执行或者以其他方式在机器或计算机可读介质上或其中实施或实现的指令集。机器可读介质包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制。例如,机器可读介质包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;快闪存储设备;电、光、声或其他形式的传播信号(例如,载波、红外线信号、数字信号等);或适合于存储或传输信息的任何其他类型的介质。不希望本发明局限于本文公开的确切的实施例。本领域的技术人员将会认识到在不脱离本发明构思的情况下可以进行改变和修改。例如,可以使用除FPGA之外的可配置的集成电路。可以使用以成本等于或低于可配置的IC的方式实现本发明的灵活性和尺寸优点的不可配置的集成电路。可以考虑权利要求书来理解本发明的范围。
权利要求
1.一种系统,包括 可配置的集成电路(1C),该集成电路可编程为提供用在自动测试设备中的测试模式,其中所述可配置的IC包括可配置的接口核,并且其中所述可配置的接口核可编程为对于至少一个被测设备(DUT)提供一个或多个基于协议的接口的功能并且可编程为与所述至少一个DUT接口 ;以及 连接,所述连接可配置成将所述可配置的IC耦合到所述至少一个DUT。
2.根据权利要求1所述的系统,其中,所述可配置的接口核被编程有用于测试具有不同的基于协议的通信接口的多个DUT的多个不同的协议。
3.根据权利要求1所述的系统,其中,同时实现两个或更多个协议,使得能够测试多个协议并且同时使得能够测试具有多个协议的模块。
4.根据权利要求1所述的系统,其中,一次实现一个协议,并且对所述接口核重编程使得能够测试不同协议并且使得能够优化多个并行的DUT。
5.根据权利要求1所述的系统,其中,所述可配置的接口核是用户可升级的以允许现场重编程。
6.根据权利要求1所述的系统,其中,所述可配置的接口核被预先验证完全符合至少一个标准化的基于协议的通信接口。
7.根据权利要求1所述的系统,其中,所述可配置的IC是使得能实现与基于PC的测试系统的相关性的可编程片上系统(SOPC)。
8.根据权利要求1所述的系统,还包括耦合到所述可配置的IC的内插器。
9.根据权利要求1所述的系统,还包括以下各项中的一个或多个 内插器,所述内插器耦合到所述可配置的IC;以及 卡盒,所述卡盒耦合到所述内插器并且耦合到所述至少一个DUT,其中所述卡盒提供所述可编程的IC的可配置的测试器引脚与DUT特定接口之间的空间转换。
10.根据权利要求1所述的系统,还包括以下各项中的一个或多个 内插器,所述内插器耦合到所述可配置的IC;以及 卡盒,所述卡盒耦合到所述内插器并且耦合到所述至少一个DUT,其中所述卡盒为了操纵的目的而具有接收不同DUT的通用形状。
11.根据权利要求1所述的系统,还包括耦合在所述可编程的IC的可配置的测试器引脚与所述至少一个DUT之间的卡盒,其中所述卡盒是牺牲元件,以在所述至少一个DUT使用比所述可配置的测试器所使用的连接器失效得更快的连接器时保护可配置的测试器引脚。
12.—种可配置的集成电路(1C),包括 可配置的接口核,其中所述可配置的接口核可编程为 为至少一个被测设备(DUT)提供一个或多个基于协议的接口的功能;并且 与所述至少一个DUT接口,并且其中所述可配置的IC提供用在自动测试设备中的测试模式。
13.根据权利要求12所述的可配置的1C,其中,所述可配置的接口核被编程有用于测试具有不同的基于协议的通信接口的多个DUT的多个不同的协议。
14.根据权利要求12所述的可配置的1C,其中,同时实现两个或更多个协议,使得能够测试多个协议并且同时使得能够测试具有多个协议的模块。
15.根据权利要求12所述的可配置的1C,其中,一次实现一个协议,并且对所述接口核重编程使得能够测试不同的协议并且使得能够优化多个并行的DUT。
16.根据权利要求12所述的可配置的1C,其中,所述可配置的接口核是用户可升级的以允许现场重编程。
17.根据权利要求12所述的可配置的1C,其中,所述可配置的接口核被预先验证完全符合至少一个标准化的基于协议的通信接口。
18.根据权利要求12所述的可配置的1C,其中,所述可配置的IC是使得能实现与基于PC的测试系统的相关性的可编程片上系统(SOPC)。
19.根据权利要求12所述的可配置的1C,还包括耦合到所述可配置的IC的内插器。
20.—种方法,包括 使用可配置的集成电路(IC)提供测试模式,其中所述测试模式用在自动测试设备中以测试至少一个被测设备(DUT); 提供可配置的接口核,所述接口核可编程为对于至少一个被测设备(DUT)提供一个或多个基于协议的接口的功能并且可编程为与所述至少一个DUT接口;以及 提供连接,所述连接可配置成将所述可配置的IC耦合到所述至少一个DUT。
全文摘要
一种用在自动测试设备中的系统。在一个实施例中,该系统包括可配置的集成电路(IC),该集成电路可编程为提供用在自动测试设备中的测试模式。该可配置的IC包括可配置的接口核,该接口核可编程为对于被测设备(DUT)提供一个或多个基于协议的接口的功能并且可编程为与DUT接口。该系统还包括可配置成将可配置的IC耦合到DUT的连接。
文档编号G06F13/14GK103038751SQ201180026574
公开日2013年4月10日 申请日期2011年5月18日 优先权日2010年5月28日
发明者斯科特·费勒尔, 亨德里克·简(埃里克)·沃克里克, 艾哈迈德·萨米·坦塔维 申请人:爱德万测试公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1