测试硬盘驱动器的方法

文档序号:6411742阅读:372来源:国知局
专利名称:测试硬盘驱动器的方法
技术领域
本发明涉及一种测试硬盘驱动器的方法,尤其涉及一种测试随机加载/卸载的多个硬盘驱动器的改进方法。
背景技术
众所周知,硬盘驱动器(HDD)组合和包含了由机械部件组成的磁头磁盘组合件(HDA)和由电路元件组成的印刷电路板组合件(PCBA)。通常将硬盘驱动器(HDD)用作补充存储设备,其中磁头悬浮在旋转的磁盘上一微小距离处,在磁盘上磁记录数据或从磁盘中读取数据,并且能够高速存取大量数据。
HDD的制造过程一般包括机械装配过程,伺服系统写过程,功能测试过程和老化测试过程,然后进行如最后测试过程的后期过程,所述最后测试过程是为了验证经过老化测试的HDD套件是否进行了正常的缺陷处理。现在将详细描述HDD的制造过程。首先,机械装配过程是由机械部件组装成HDA的过程,通常是在一个干净的屋子里进行。第二,执行伺服系统写过程,它是一个在磁盘上为执行机构伺服控制记录伺服系统写模式的过程,该过程通常是由伺服系统写入器来执行。第三,执行功能测试过程,它是将在机械装配过程中产生的HDA和PCBA组合起来,并且测试它们是否正确匹配且一起正常操作。在功能测试过程中,HDA和PCBA的组合是与特定的测试系统组合在一起,并且进行大约20至25分钟的基本测试。第四,执行老化测试过程,该过程在HDD的制造过程中需要最长的时间(通常是8-16个小时)。在老化测试过程中,找出磁盘上的任何缺陷并且予以纠正。
第五,执行最后测试过程,该过程是为了验证经过上述老化测试的HDD套件是否进行了正常的缺陷处理,并且使用特定的测试系统测试每一个HDD套件的缺陷处理状态。最后测试过程将每一个HDD连接到单独的测试计算机并执行测试。每一个测试计算机通过局域网(LAN)和主机相连,通过测试程序来测试连接的HDD并将结果输出给主机。主机在显示器上显示由每一个测试计算机输入的状态数据,并且操作者在监视状态数据的同时判定成功还是失败。通过最后测试过程的HDD经过出厂测试过程、打包和运输等过程作为成品来交付。
如上所述,由于老化测试过程在HDD的制造过程中占据了最长的时间,因此需要一种能够在有限的时间和有限的空间中能够对尽多地的HDD进行可靠的测试的老化测试设备。以下专利公开了传统的测试设备韩国专利公开号1997-76738(1997/12/12)、1998-35445(1998/8/5)、1999-60619(1999/7/26)、1999-65516(1999/8/5),美国专利第6434498号([2001/3/27]2002/8/13)、第6208477号(2001/3/27)和第6434499(2002/8/13)号。


图1示出了本发明受让人三星电子株式会社申请的公开号为1997-76738的韩国专利所公开的传统硬盘驱动器测试设备的外形。参考图1,堆叠HDD的老化室30位于HDD测试设备200的前部,由排成行的电源卡组成的控制室40位于HDD测试设备200的后部,老化室30和控制室40通过隔板80隔开。电源卡控制向堆叠在老化室30中的每一个HDD以及20至24个测试计算机50供应电源。一般来说,每一个测试计算机50控制和监视(测试)6个HDD。
安装在每个控制室40一端的电源分配器为电源卡和主机分配电源,所述主机管理测试计算机50和接收来自管理者的输入输出指令。同时,安装在控制室40另外一端的直流电源给待测试的HDD供应电源。另外,在老化室30的一端还附有作为用户接口的显示器和键盘(未示出),在老化室30的两端还安装有加热器和鼓风机以保持老化室处于高温。
图2是示出图1所示设备的内部配置的框图。参考图2,在图1所示的HDD测试设备200中,一台主机600经由第一控制总线660和20至24个测试计算机612至618相连,3个双通道IDE适配器622,624,626经由第二控制总线630也和每一个测试计算机612-618相连。另外,两个HDD(HDD642-644对,646-648对和650-652对)分别和每一个双通道IDE适配器622,624和626相连。
主机600启动之后,主机600通过第一控制总线660建立与测试计算机612至618的通信网络。第一控制总线660可以用典型的LAN来实现。测试计算机612至618通过第一控制总线660启动以执行测试程序,并在测试计算机612至618和主机600之间建立通信通道。一旦测试计算机612至618和主机600之间建立了通信通道,主机600从每个测试计算机612至618接收状态信息,在显示器的屏幕上显示状态,并且使用加热器控制老化室30内的温度。
当将待测的HDD插入到HDD测试设备200的老化室30中的时候,测试计算机612至618检测HDD(例如HDD652)装置,并由双通道IDE适配器向HDD加载测试代码和脚本。此后,测试计算机612至618通过IDE接口监视测试结果和进展状态,并将数据传到主机600,然后由其在显示器的屏幕上显示测试结果和进展状态。
如图1和2所示的传统测试设备200具有每个测试计算机连接6个HDD的结构,这样就比现有的1对1测试方法更加有效。然而,如图1和2所示的测试设备200需要20-24个测试计算机,这仍然是不经济的。这些测试计算机需要和房子一样大小的控制室40。另外,由于每一个测试计算机需要安装3个昂贵的双通道IDE适配器,所以建造和实施如图1和2所示的测试设备200并不比现有的1对1测试设备便宜多少。另外,如图2所示,由于主机600通过三层复杂的通信结构(即,典型的通信结构是一个计算机和另外一个计算机相连)和测试计算机612至618相连,而每一个测试计算机612至618又通过作为双IDE适配器的另外一种通信结构控制HDD,这样就很有可能产生错误。相应地,由于复杂的通信结构,当产生错误时,调试系统也是有困难的。而且,一旦改变了HDD的接口标准,就必须替换所有的IDE适配器,同时修改测试计算机612至618中加载的测试程序。
此外,测试硬盘驱动器所需要的时间根据所测试的硬盘驱动器的类型或者根据其是否有缺陷而有所不同。硬盘驱动器的测试效率还取决于测试方法。
尤其是,在最简单的测试方法中,考虑到对单个硬盘驱动器留有余地的最大测试时间,将相同的时间量分配给多个硬盘驱动器。然而,由于从测试第一个硬盘驱动器结束到测试最后一个硬盘驱动器结束,可能存在不必要的时间浪费,所以这种方法生产效率低。
因此,需要一种能够随机加载或卸载每个硬盘驱动器的测试多个硬盘驱动器的更有效的方法。

发明内容
本发明提供了一种能够随机加载或卸载待测的每个硬盘驱动器的测试多个硬盘驱动器的有效方法。
本发明的其他方面和/或优点部分地将在下面的描述中阐明,部分经描述后是显而易见的,或者可以从本发明的实践中习知。
本发明可以通过能够随机加载或卸载的多个硬盘驱动器测试方法来实现,该方法包括执行扫描以检查是否已经加载了硬盘驱动器;顺序为每一个已加载硬盘驱动器分配一个测试线程,当调用每一个测试线程并且测试已加载硬盘驱动器需要这样的线程时,每一个测试线程逐一执行一系列的测试任务操作;并且记录每一个已加载硬盘驱动器的测试状态,以便当测试线程的一个任务操作结束后,允许下一个测试线程参考所记录的测试状态。
本发明也可以通过具有嵌入其中的计算机程序的计算机可读介质来实现,其中所述计算机程序用于测试能够随机加载或卸载的多个硬盘驱动器,所述计算机可读介质包括事件等待模块,它等待从一组事件中选择的一个事件的产生,所述一组事件包括HDD扫描线程执行事件、测试线程执行事件、用户接口服务事件、HDD扫描线程执行开始事件和测试线程执行开始事件,并且为每一个产生的事件调用相应的线程;当调用HDD扫描线程执行事件时调用扫描事件服务模块以检测加载/卸载的硬盘驱动器;以及当测试线程执行事件产生时调用测试线程执行事件服务模块以测试已加载硬盘驱动器,通过和硬盘驱动器的串行通信来检查已加载硬盘驱动器的状态。
本发明也可以通过一种在设备测试装置中测试可随机加载和卸载的多个设备的方法来实现,该方法包括根据用以测试多个可加载设备中的每一个的每个任务完成状态,由测试软件线程依次执行多个任务;根据每个已加载设备的测试软件线程任务完成状态记录,经由到每个已加载设备的串行通信接口,给用以测试每个已加载设备的多个任务中的每一个任务分配一个测试软件线程。
本发明也可以通过一种机读数据存储器来实现,机读数据存储器该存储了用于依照以下过程控制装置测试设备的程序,所述过程包括根据所记载的用于测试多个已加载设备中每个设备的每个任务完成状态,由测试线程软件依次执行多个任务;根据每个已加载设备的测试软件线程任务完成状态,经由每个已加载设备的串行通信接口,给每个已加载设备分配测试软件线程,并且多个任务的每个任务分配一个测试软件线程,以便测试每个已加载设备。
本发明也可以通过一种硬盘驱动器(HDD)测试设备来实现,该测试设备包括多个可加载和卸载的HDD;以及单个主计算机,具有可编程计算机处理器,所述计算机处理器用于依照以下过程来控制该单个主计算机,所述过程包括在单个主计算机和每个HDD间有选择地建立通信通道;根据所记录的测试每个已加载HDD的每个任务完成状态,由测试线程软件依次执行多个任务,以及经由与每个已加载HDD可选择地建立的通信接口,根据每个已加载HDD的测试软件线程任务完成状态,给每个已加载HDD分配测试软件线程,并且多个任务中用于测试每个已加载HDD的每个任务分配一个测试软件线程,由此不考虑和单个主计算机的每个HDD接口标准而直接测试每个已加载HDD。
附图简述通过组合以下的附图对实施例的详细描述,本发明的上述和/或其它的特点和优点将会变得更加明显,其中图1示出了传统硬盘驱动器测试设备的外型;图2是图1传统硬盘测试设备内部配置的功能框图;图3至5是根据本发明实施例的用于测试硬盘(磁盘)驱动器的硬盘驱动器测试设备的配置透视图;图6是图3中加载/卸载夹具的透视图;图7是根据本发明实施例的图3所示的硬盘驱动器测试设备内部/外部功能配置和操作图;图8是根据本发明实施例的硬盘驱动器测试的流程图;图9是图8的硬盘驱动器测试方法中硬盘驱动器(HDD)扫描事件服务的流程图;图10是图9中HDD扫描线程的流程图;图11是图8中测试线程执行事件服务的流程图;图12是图11中测试线程执行的任务操作的流程图;
图13是端口信息数据结构、HDD扫描线程、测试线程和显示更新线程之间的关系图;以及图14是图8中用户接口服务模块的操作流程图。
具体实施例方式
现在将组合附图对本发明的实施例进行详细描述,其中相同的附图标记始终代表相同的元素。参考附图通过对实施例的描述来解释本发明。为了清楚和简明,涉及对本发明来说不是新的技术和关于本发明的公知技术在此将不进行描述。
本发明的受让人三星电子株式会社于2003年5月15日申请了申请号为2003-30895的相关韩国专利申请,其中公开了一种仅使用一个主机而不使用测试计算机来测试多个硬盘驱动器的磁盘测试设备,同时也在本发明受让人三星电子株式会社中国专利局申请的(具有代理人编号PLD06459)的未决中国专利申请中公开了,将这些内容引用于此,以供参考。如在的相关未决中国专利申请所公开的那样,可以将配备有串行通信端口的通用计算机用作串行通信HDD测试设备中的主计算机。尤其是,串行通信通道是有选择地建立于待测的硬盘驱动器和使用主机两个串行通信端口的主机以及提供多个可选外围串行端口的串行通信开关设备之间。使用开关的另外一个可以选择的串行通信端口,在具有一个硬盘驱动器的主机和具有另外一个硬盘驱动器的主机间进行串行通信端口的切换是有可能的,这样就能够使用一个主机测试多个硬盘驱动器。为此,串行通信HDD测试设备仍然需要容纳多个硬盘驱动器的老化室。本发明的受让人三星电子株式会社于2003年5月15日申请的韩国专利申请2003-30894公开了这种串行通信开关设备,同时该设备也在本发明的受让人三星电子株式会社在中国专利局(具有代理人编号PLD06458)申请的未决中国专利申请中公开了,将该篇申请的全部内容引用于此,以供参考。
图3至5是根据本发明实施例用于测试硬盘(HDD)驱动器的硬盘驱动器测试设备的配置透视图。参考图3至图5,HDD测试设备300在其中间部分包括老化室302,在所述老化室中,在多个加载/卸载夹具304中可以堆叠多个HDD(图中仅示出一个加载/卸载夹具304)。每一个加载/卸载夹具304上的LED显示了装载到该加载/卸载夹具304上的HDD的测试状态。在HDD测试设备300的中间部分的后部安装有PCB接口板328(如图5和7所示),其具有通过将RS-232信号转换为HDD TTL信号电平、可通信地将HDD和PCB接口板328连接起来的RS-232发送/接收器,反之亦然。PCB接口板328也具有串行通信(RS-232)接口连接器,以在PCB接口板328和串行通信交换器316之间形成串行通信通道,直流电源连接器连接电源卡330(如图7所示)。来自HDD测试设备300的上部306和下部308的RS-232信号线、LED控制信号线和电源线沿着支撑槽310(图中仅示出一根支撑槽310)的后部和每个PCB接口板328的相应接口连接器连接。
典型地,在HDD测试设备的下部308中,在一个外壳内安装电路板334、直流电源332和电源卡330(全部如图7所示),它们控制HDD的电源供应,并且向加载/卸载夹具304上的LED输出测试驱动器状态显示LED控制信号,而且在该外壳上形成通气孔312。提供用于控制电源卡330的控制信号的主机314的信号线,通过位于测试设备300上部306的串行通信交换器316和电源卡330连接,LED控制信号线和电源卡的电源线分别和加载/卸载夹具304上的LED和老化室302中的PCB接口板328连接。根据本发明的一个方面,主机314的控制信号线通过串行通信交换器316和HDD的PCB接口板328连接。
典型地,主机314、串行通信交换器316、包含电路板334和直流电源332以及电源卡330的电源控制器360、风扇318位于测试设备300的上部306,所述风扇通过移走老化室302中HDD产生的热量来使待测试HDD的温度保持和室内温度大体上一致。在上部306的前方安装有接口单元322,一般还包括显示器320和为操作者(用户、控制设备)和主机314提供接口的用作输入单元的键盘、鼠标。另外,位于上部306的前方的还有包括用于直流电源、主机314、风扇318的通/断开关的电源显示单元324,以及显示电源状态的电源显示窗口。在上部306的外壳内部安装有另外一个(上部)的直流电源332、另一个电源卡330和一个电路板334,所述的电路板334为上部的直流电源提供操作信号。上部306的内部和下部308的内部十分相似。在老化室302中,加载/卸载待测HDD的加载/卸载夹具304能够横向和纵向堆叠在支撑槽310上(视情况而定)。
图6是根据本发明实施例的横向加载/卸载夹具304透视图。如图6所示,连接电源针脚和HDD的两个通用异步收发器(UART)针脚的弹簧单高跷销(pogo pin)602和604位于加载/卸载夹具304的内部,而连接弹簧单高跷销602和604的弹簧单高跷销连接器606位于加载/卸载夹具304的外部。韩国专利公布1999-70583(1999/9/15)、1998-31599(1998/7/25)和1998-47465(1998/9/15)公开了这种加载/卸载夹具304。
弹簧单高跷销连接器606通过位于老化室302后部的隔离条326和PCB接口板328相连(参见图5)。PCB接口板328接收来自串行通信交换器316的控制信号,将接收到的控制信号转换成适合HDD的电压电平(例如,一般是TTL电平信号),再将接收的经转换的控制信号提供给弹簧单高跷销连接器606。这样,主机314就能够和HDD进行通信。
关于图3中HDD测试设备300中的如图6所示的加载/卸载夹具304,一般在其前边(左边)提供两个LED 608,每一个LED能够发出三种不同颜色的光,以显示置于加载/卸载夹具304中的HDD的状态。在加载/卸载夹具304的后部,LED控制信号线和连接器610相连,所述的LED控制信号线经过相应的电源卡提供来自主机314的信号,以控制两个三色的LED 608。这样,根据主机314确定的HDD的测试状态来点亮LED 608。
如上所述,在HDD测试设备300的上部306和下部308各安装了电路板334(如图7所示)、直流电源332(如图7所示)和电源卡330,为HDD提供电源并且控制LED 608。当主机314加电且HDD测试设备提供了主电源之后,配置电路板334以开始操作,并且当电路板334经过串行通信交换器316接收了来自主机314的直流上电指令时,操作直流电源332,并且给直流电源332提供直流电压电平调节信号。直流电源332给电源卡330供应电源,所述电源卡330的数量和老化室302中的HDD数量相同。然后,由电源卡330给每一个加载/卸载夹具304上的HDD提供直流电源。
电源卡330通过测量经过与老化室302中的PCB接口板328连接的电源线的电压,来判断HDD是否已经安装在了加载/卸载夹具304中。一般来说,电源卡330经过串行通信交换器316和主机314连接,并向主机发送HDD加载/卸载状态信息、电源供应状态信息和其它信息,执行从主机控制夹具304发送的LED 608的指令以控制夹具304的LED 608,并且用于接通/断开HDD的电源。
控制整个HDD测试设备300和HDD测试的主机314经过串行通信交换器316来控制设备300的每一个部分。根据本发明的一个方面,主机314经过串行通信交换器316的串行通信信号来控制HDD和电源卡330。因此,串行通信交换器316和HDD、PCB接口板328及电源卡330进行串行通信。特别是,为了达到经过串行通信交换器316的串行通信信号将主机314和HDD连接起来以进行通信的目的,当将来自串行通信交换器316的串行通信信号由PCB接口板328传输给HDD时,需改变串行通信信号的电压电平,这是因为用于串行通信交换器316的电压电平和HDD的TTL信号的电压电平一般是不同的。同时,电源卡330响应来自主机314的控制信号控制安装在HDD加载/卸载夹具304上的LED 608。就是说,传输到PCB接口板328的信号包括来自主机314的控制信号和来自电源卡330的LED控制信号。
位于HDD测试设备300上部306前方的显示器320也和主机314相连。显示器320显示能够使操作者监视每一个测试HDD状态的信息。操作者通过接口单元322来执行主程序或主程序的特定功能,接口单元例如是键盘和鼠标。
在电源显示单元324上典型地安装有开/关整个HDD测试设备300电源的主电源按钮、开/关主机314的电源按钮、开/关安装于上部306和下部308内直流电源的电源按钮以及开/关风扇318的电源按钮。此外,通过电源显示单元324的窗口(屏幕)能够快速确认供应的电源的状态。风扇318驱散HDD测试设备300中HDD操作时产生的热量。
图7更详细地示出了图3中根据本发明实施例的HDD测试设备内部/外部的功能配置和操作图。主机314经由网络和历程数据库(MES)通信,并且经由串行通信交换器316与多个HDD、电路板334及多个电源卡330连接进行通信,每个电源卡330控制实施环境(例如受到软件/硬件的限制)所确定的多个HDD的电源和LED信号。换句话说,待控制的HDD最大数量根据软件的不同而不同,并且没有限制。根据本发明的一个方面,串行通信交换器316和电源控制器360和多个串行通信线可通信地连接,并且控制可连接于HDD加载/卸载夹具304的线路。特别地,(串行通信交换器)电源控制器360包括电路板334、电源卡330和直流电源332。如图7所示,主机(PC)314是标准的计算机,串行通信交换器316是标准计算机314的外围设备,其经由串行通信来连接标准计算机314和多个HDD,以便测试HDD。如图3-5和图7所示的根据本发明的一个方面,在一个主体中提供了所有的主机(PC)314、串行通信交换器316和HDD,其中,串行通信交换器316为标准计算机314和多个HDD串行通信提供接口,以便测试HDD。然而,本发明并不局限于这种实施结构。虽然在上面如图7所示的实施例中,电源控制器360做成与串行通信交换器316独立的元件来实现,并且可与其连接通信,但是,本发明并不局限于这样的结构,电源控制器360可以配置成串行通信交换器316的一部分。
首先,当主机314启动时,主机314执行用于测试HDD的主程序。主机314根据主程序、经串行通信交换器316向电路板334发出直流电源供应指令。当在电路板334的控制之下直流电源332开始供应电源时,操作电源卡330,并且主机314经由每一个电源卡330持续地检查加载/卸载夹具304上的HDD的加载/卸载状态。电源卡330一般是通过检测连接于每个HDD上电源线的压降来检查HDD的加载/卸载状态。
根据图7所示的例子,在主机314的控制下,每个电源卡330控制8个PCB接口板328的8个HDD的直流电源的供应,并控制加载/卸载夹具304上的LED 608。如果电源卡330分辨出有新的HDD加载到加载/卸载夹具304上,主机314利用建立于主机314、串行通信交换器316和装入的HDD的PCB接口板328间的串行通信通道立即开始和装入的HDD通信。主机314从HDD中得到驱动信息,例如接口标准、模块名称和版本信息,将驱动信息传给MES,然后从MES中下载适合于HDD的测试脚本和测试代码,并将测试脚本和测试代码传输给HDD并开始测试HDD。
对于装入的HDD来说,主机314通过显示器320显示测试状态,向电源卡330发出指令来控制点亮加载/卸载夹具304上的LED 608。更特别的是,当测试结束后HDD向主机314发送测试结果,主机314向电源卡330发出指令来切断HDD的电源供应,通过显示器320和加载/卸载夹具304上的LED608显示测试结果,并将测试结果传到MES。在如图3至7所示的HDD测试设备300中,例如,如果使用18个电源卡330的情况下,一个电源卡330能处理8个HDD,那么一个主机314就能够在主机314、串行通信交换器316、HDD的PCB接口板328和HDD的UART端口之间,通过经由主机314的串行端口COM1和COM2建立串行通信通道,来直接控制144个HDD、电路板334和18个电源卡330,以便能够同时测试多至144个的HDD。
图8是根据本发明实施例的测试硬盘驱动器的方法的流程图。测试HDD的计算机程序800由硬盘驱动器测试设备,例如由HDD测试设备300中的主机314运行。然而,本发明并不局限于操作/控制HDD测试设备300,能够实施于任何具有加载和卸载硬盘驱动器的硬盘驱动器测试设备。在这个例子中,主机314使用主机314的两个串行通信端口COM1和COM2能够测试多个HDD。例如,一个串行通信端口COM2允许主机314由串行通信通道作为数据路径和HDD通信,作为路由控制路径的另外一个串行通信端口COM1允许主机314控制串行通信交换器316,以便在多个HDD和主机314的串行通信端口COM2之间建立串行通信通道数据路径。
如图8所示,HDD测试程序800包括初始化信息加载模块802、初始化模块804、事件等待模块806、HDD扫描事件服务模块808、测试线程执行事件服务模块810和用户接口服务模块812,用于执行本发明的进程。一般地,初始化信息加载模块802读取具有例如“ini”的扩展名的初始化文件,来经由其每个端口确认每一个电路板334、电源卡330和串行通信交换器316间的连接状态,确认每个串行通信交换器316串行端口和每个硬盘插槽(例如PCB接口板328)间的连接状态以及设备数量等等。
一般地,初始化模块804用于由电路板334向直流电源332提供HDD电源,为电源卡300提供电源,为HDD提供电源并控制加载/卸载夹具304上的LED 608以告知操作者HDD的状态。初始化模块804还初始化内部参数和初始化用户接口(显示器)。
事件等待模块806等待事件的发生,例如HDD扫描线程执行事件、测试线程执行事件、用户接口服务事件、HDD扫描线程执行开始事件、测试线程执行开始事件等,为已经发生的事件调用相应的服务模块,例如HDD扫描事件服务808、测试线程执行事件服务810和用户接口服务812。当测试线程执行事件发生时,将新建立的测试线程执行事件服务810分配给待测试的HDD(端口)(也就是,测试服务软件模块810经由串行通信通道和测试的HDD通信,所述的通道是由主机串行端口、串行通信交换器316串行输入端口和一个串行输出端口、PCB接口板328和测试HDD UART端口在主机和HDD串行端口之间建立的。)HDD扫描线程执行事件是发生在第一时期的中断,测试线程执行事件是发生在第二时期的中断,其中所述第一时期短于第二时期。有关HDD扫描线程执行事件的第一时期可以是50ms,而有关线程执行事件的第二时期可以是100ms。操作者测试开始指令或测试线程非周期地产生用户接口服务事件。更特别地是,例如,在由用户接口向用户呈现已加载HDD测试结果的时候,测试线程就能创建用户接口服务事件。
已经产生HDD扫描线程执行事件时调用的HDD扫描事件服务模块808检查HDD是否已经加载。产生测试线程执行事件时调用的测试线程执行事件服务模块810,经由所建立与其间的串行通信通道和HDD通信的同时检查HDD状态,并执行老化(B/I)测试。当用户接口服务事件已经产生时调用的用户接口服务模块812告知用户HDD测试的处理状态以允许用户操作,并且告知MES(系统)HDD的测试结果以管理HDD测试结果。
作为一个例子,本发明HDD测试设备300的HDD测试方法将组合附图8-13进行描述。主机314启动后执行HDD测试程序800,初始化信息加载模块802检查HDD测试设备300的连接状态,初始化模块804由电路板334来初始化和电源卡330相连的直流电源332。特别地,当串行通信交换器316得知了连接于电路板334端口的ID号后,串行通信交换器316将主机314的串行通信端口COM1连接到电路板334的通信端口。然后,电路板334初始化连接于电源卡330上的直流电源332。接下来,直流电源332为每一个电源卡330提供操作HDD所需要的直流电源。
在最后的初始化操作中,在电路板334和18个电源卡330之间建立通信通道,电源卡330初始化连接于电源卡330的加载/卸载(HDD)夹具304上的LED 608。接下来,操作者将HDD插入到具有指示测试准备状态LED 608的加载/卸载夹具304中。当操作者首次将HDD装入到老化室302中的加载/卸载夹具304中,并且例如经由接口单元322按下测试开始按钮(所述按钮是HDD测试程序800显示在显示器上的用户接口,显示器例如是显示器320(即输入测试开始命令))时,HDD测试程序800的事件等待模块806将产生的测试开始事件作为用户接口服务事件。在辨认出开始事件开始后,HDD测试程序800的HDD扫描事件服务模块808检查(监视)HDD的加载/卸载。更特别的是,当有一个来自HDD测试程序800中HDD扫描事件服务模块808的请求时,电源卡330存储关于由其供应电源的HDD的加载/卸载信息,并将这种加载/卸载信息提供给HDD测试程序800。接下来,HDD测试程序800的测试线程执行事件服务模块810测试单个的已加载HDD。
在本实施例中,主机314使用HDD测试程序800以优先权的顺序测试HDD,HDD是经作为主机314数据路径的串行通信端口COM2及串行通信交换器316的输入输出串行通信端口和主机314连接的。HDD测试程序800包含每个HDD的测试状态信息。由显示更新线程在显示器320上显示每个HDD的测试结果,然后将测试结果传给MES(系统)。
图9是图8中HDD扫描事件服务模块808的流程图。在操作902中,HDD扫描事件服务模块808检查上述HDD扫描线程操作是否已经结束。如果在操作902中上述HDD扫描线程操作还未结束,则扫描事件服务模块808返回到HDD测试程序800。如果在操作902中上述HDD扫描线程操作已经结束,则在操作904中选择下一个扫描的电源卡330。因此,当HDD扫描线程执行事件产生时,顺序地选择下一个电源卡330,然后在操作906中HDD扫描线程扫描选择的电源卡330。通常,HDD扫描线程执行事件是一种例如每50ms发生一次的周期性中断。因此,当HDD扫描线程事件产生时,HDD扫描事件服务808通过HDD扫描线程906读取/接收存储在电源卡330中的信息来检查HDD的加载/卸载。
图10是图9中HDD扫描线程906的流程图。一般地,首先,HDD扫描线程使用电源卡330确定HDD是否已经装载。其次,如果确定了HDD已经加载或卸载,则更新端口信息数据结构1000(或者在此情况下创建)。端口信息数据结构1000存储有关端口数量、相应于端口数量的HDD的加载/卸载、测试状态和测试开始时间等信息。测试线程参考/输入这种端口信息数据结构,下面将对其进行详细描述。最后,终止HDD扫描线程。
图11是图8中测试线程执行事件服务模块810的流程图。当产生测试线程执行事件时,在操作1102中,测试线程执行事件服务模块810检查正在运行的测试线程的数量是否等于“n”。如果在操作1102中正在运行的测试线程的数量等于“n”,则测试线程执行事件服务模块810返回HDD测试程序800。在操作1102中的“n”一般是允许同时运行的测试线程的最大数量,依赖于主机314资源、所需测试时间等的不同,“n”是不同的。需要注意的是允许同时运行的测试线程的数量并不等于测试HDD的数量,这是因为HDD测试任务结束后测试线程对HDD不进行任何操作,从而结束相应的测试线程(如下面更还的详细描述)。根据本发明的一个方面,测试线程执行事件可以以100ms的周期产生。用“n”表示的同时运行测试线程的最大数量可以例如是5,以使得多达5个测试线程可以同时运行。
如果在操作1102中运行的测试线程的数量少于“n”,则为新测试的线程选择一个串行端口(即本发明的串行端口指的是选择自以一个主机314、串行通信交换器316、PCB接口板328和HDD UART之中的、所建立的串行通信通道),在操作1104中,确定是否存在比选择的串行端口具有更高优先权测试状态的串行端口。这些串行端口连接到HDD并按其串行号管理。主机314测试HDD,同时经由作为数据路径的主机314的串行通信端口COM2和由串行通信交换器316的输出串行端口通信连接的多个HDD串行端口,与该HDD通信。连接于HDD的串行端口(在此称为“端口”)依次分配给新的测试线程,以使得串行端口号有顺序。更特别的是,在操作1104中测试线程执行事件服务模块810参考端口信息数据结构1000来检查是否存在比新分配测试线程端口的测试状态具有更高优先权测试状态的端口(即存在这样一个HDD端口,其正执行或待执行的HDD测试任务具有比新测试线程占据的端口中执行的HDD测试任务更高的执行优先权)。经优先权比较的端口包括所有存在的等待端口,包括其它测试线程占据的端口,不包括新测试线程占据的端口。
在操作1104中,如果存在比新分配测试线程端口具有更高优先权的端口,则测试线程执行事件服务模块810结束当前的测试线程,以为更高优先权的端口优先分配另外一个新的测试线程,用于测试连接于更高优先权端口的HDD。因此,测试线程执行事件服务模块810依次为新的测试线程分配端口,以使得串行端口号有顺序,以串行端口号的顺序测试连接于端口的HDD。
在操作1104中,当不存在比新分配测试线程端口具有更高优先权的端口时,在操作1106中,运行测试线程并参考端口信息数据结构来得到在相应HDD上运行的任务列表。在操作1104中执行测试线程(1106)直到来自HDD任务列表中的一个任务结束(即测试线程一次实行/执行一个任务)。一旦测试任务完成,在结束之前测试线程输入/更新端口信息数据结构1000中的测试状态,根据已加载HDD端口HDD测试任务的任务执行顺序来指示HDD测试阶段。这样,每一个HDD测试阶段对应于已加载HDD完成了的HDD测试任务。HDD由多个连续的任务进行测试,这些任务的例子如下表1所例示。
表1


表1中左栏的执行顺序代表任务执行顺序。表1右栏的优先权顺序代表每个任务执行的优先权。如下将详细描述测试线程执行或者响应的每个任务。
1.通电1)向电源卡330输入将和所选端口连接的HDD的通电命令。
2)以端口信息数据结构1000记录测试开始时间。端口信息数据结构1000一般也包括了该端口上的HDD测试信息或者适用于该端口的HDD测试信息数据结构的链接。HDD测试信息数据结构一般包括HDD序号、模块信息、代码信息、测试状态信息、容量信息、测试结果和测试时间等。当将测试结果传到MES(系统)时涉及HDD测试信息数据结构。
3)向电源卡330输入接通加载/卸载夹具304上指示测试开始的LED的命令。
4)更新端口信息数据结构1000的状态信息。
5)导出显示更新事件,并终止测试线程。
2.重启1)向HDD输入重启命令。
2)检查HDD测试是否准备就绪。
3)更新端口信息数据结构1000的状态信息。
4)导出显示更新事件,并终止测试线程。
3.HDD识别1)接收HDD上的代码信息,在HDD测试信息数据结构中存储信息2)更新端口信息数据结构1000的状态信息。
3)导出显示更新事件,并终止测试线程。
4.模块名称识别
1)基于存储在HDD测试信息数据结构中的代码信息识别模块名称并提供给MES(系统)。当从MES(系统)下载B/I脚本和代码时涉及HDD模块名称。
2)在HDD测试信息数据结构中存储识别信息3)更新端口信息数据结构1000的状态信息。
4)导出显示更新事件,并终止测试线程。
5.B/I脚本和代码下载1)根据HDD测试信息将B/I脚本和代码下载到HDD中。
2)更新端口信息数据结构1000的状态信息。
3)导出显示更新事件,并终止测试线程。
6.电源关-开1)重启已经下载了代码的HDD以初始化测试。
2)更新端口信息数据结构1000的状态信息。
3)导出显示更新事件,并终止测试线程。
7.测试结果监视1)监视是否已经报告了HDD测试结果。
2)HDD测试结束后,在HDD测试信息数据结构中存储测试结果并向MES(系统)报告测试结果。
3)更新端口信息数据结构1000的状态信息。
4)导出显示更新事件,并终止测试线程。
8.电源断开1)向电源卡330输入用来连接到所选择的端口HDD的关电源命令,并终止测试线程。
在HDD测试中,从第六个任务即电源关-开操作结束至第七个任务即监视测试结果结束,任务操作都是独立于主机314而在HDD中执行的。本发明同一申请人申请的韩国公告专利公开1997-7634(1997/2/21)详细公开了使用下载的脚本和代码在HDD中执行的进程。
当有多个待测试的HDD时,将上述表1中的任务操作的优先等级,给正在执行更高优先权任务操作的HDD优先权。更多时间消耗的任务操作一般拥有更高的优先权。例如,重启操作和HDD模块名称识别操作比其它的操作占用更多的时间,拥有更高的优先权。尽管在上述实施例中的优先权与任务时间消耗有关,但是本发明并不局限于这样的结构,本发明根据任何的优先权标准(例如,下一个任务等待时间,其它重要的标准,HDD测试结果或者执行顺序等等)来处理任务。
图12是图11中的测试线程1106中执行的任务操作的流程图。在操作1104中,每个测试线程允许不按请求依次执行HDD测试所涉及的任何任务操作(此实施例中的8个任务),如表1所列和图12所示。因此,可以由同时运行的测试线程有效运行依据涉及HDD测试的任务执行顺序和任务执行优先权顺序(如表1所列)的一系列任务操作。如图12所示,在通过终止线程来终止每个任务操作之前,每个测试线程根据任务执行顺序更新HDD端口信息数据结构1000中的测试状态信息,从而允许另一个测试线程参考用于HDD的更新的测试状态信息,并以执行顺序和根据所占据的端口中的任务的执行优先权顺序继续下一个任务。
图13是端口信息数据结构1000、测试线程、HDD扫描线程和显示更新线程之间的关系图。端口信息数据结构1000包括HDD测试信息数据结构,存储了关于连接于端口的每个HDD测试状态的不同种类的信息,供HDD扫描线程、测试线程和显示更新线程参考来确定单个端口的磁盘加载/卸载和端口上的HDD测试任务状态,并在显示的用户接口上更新端口的HDD测试任务状态信息。端口信息数据结构1000具有如图10所示的格式,存储了关于端口数量、HDD的加载/卸载、测试状态和测试开始时间等等的信息。
HDD扫描线程更新端口数据结构1000中的信息,所述信息涉及HDD是否已经在HDD端口上加载或卸载。HDD扫描线程执行事件产生时运行的HDD扫描线程以和电源卡有关的顺序来检查HDD已经加载,基于这种结果来更新端口信息数据结构1000中的HDD加载/卸载信息。每个测试线程根据HDD端口中HDD测试任务结束情况来更新端口信息数据结构1000中的测试状态信息。每个测试线程在端口信息数据结构1000中也存储了测试时间开始信息,即HDD测试开始的时间点信息,还存储了HDD测试结果信息。显示更新线程参考端口信息数据结构1000来在显示单元上显示每个已加载HDD的测试状态和测试结果,显示单元例如为操作者的显示器。
图14是图8中用户接口服务模块812的流程图。当产生用户接口服务事件时调用用户接口服务模块812。如上所述,用户接口服务事件由输入开始按钮(即输入命令)或测试线程来触发。例如,当按下开始按钮时,用户接口服务模块812触发HDD扫描开始事件和测试线程开始事件。HDD扫描开始事件和测试线程开始事件分别周期地触发HDD扫描线程执行事件和测试线程执行事件。
用户接口服务模块812调用显示更新线程。用户接口服务模块812根据端口信息数据结构1000通过显示器将HDD测试状态告知用户。用户接口服务模块812也将测试结果提供给MES(系统)和/或显示器320上的用户接口。优选地,包括HDD测试信息数据结构的端口信息数据结构1000允许根据HDD端口和经由HDD序号在HDD端口上加载和测试的HDD来记录HDD测试结果。
在根据本发明的HDD测试方法中,可以同时运行多至“n”个测试线程。这“n”个测试线程互相通信且相互同步以有效地使用通信资源,即通信通道,而不是互相竞争占用通信通道。为此,可以使用基于窗口的多用户终端执行程序对象。多用户终端执行程序对象即多种内核对象用于得到执行最小数量的进程所需要的尽可能多的资源,并能够使多个线程互相通信。因此,本发明提供了同时测试多个HDD的最佳化的HDD测试方法,并由此改善了效率。HDD容量的增大导致了需要消耗更多的测试时间和测试设备的扩大,本发明的HDD测试方法提供了极大节省耗费的效果。
在图8-14的如上所述模块中实现的本发明的进程可以以软件和/或计算机硬件来实现(视情况而定)。因此,本发明提供了一种根据随机请求来检查硬盘驱动器的方法,该方法通过检查是否已经加载了硬盘驱动器,并且为每个已加载硬盘驱动器顺序地分配一个测试线程来实现。当调用和请求测试已加载硬盘驱动器时,每个分配的线程依次执行一系列的测试任务操作,并且记录每一个硬盘驱动器的测试状态,只要一个测试线程的一个测试任务操作结束以允许下一个测试线程参考记录的测试状态,就继续下个测试任务操作。根据硬盘驱动器所需要的时间来测试每一个硬盘驱动器。尤其是,本发明并不局限于测试硬盘驱动器,还能用于由设备的串行端口测试多个设备,并且因此,本发明提供了一种方法,包括根据已加载设备记载的每个任务完成状态,测试线程依次执行多个测试任务;根据每个已加载设备的测试线程任务完成状态报告,经由每个已加载设备的串行通信端口给多个已加载设备的每个已加载硬盘驱动器分配任务,并且多个任务的每一个任务分配一个测试线程。
此外,执行本发明进程的设备可以实现本发明。例如,本发明提供了一种硬盘驱动器(HDD)测试设备,包括多个可加载/卸载的HDD;以及一个包括可编程计算机处理器的单个主机,该处理器用于根据以下过程来控制单个主机,所述过程包括在单个主机和HDD之间建立可选通信通道,根据记载的每个任务的完成状态、由测试软件逐一执行多个任务以便测试每个已加载HDD,并且根据每个加载HDD的测试软件线程任务完成状态报告,经由与每个加载HDD可选择地建立通信通道、向每个加载HDD分配一个测试软件线程以便测试每个已加载HDD,其中多个任务的每一个分配一个测试软件线程,由此直接测试每个已加载HDD,不管每个HDD和单个主机的接口标准而直接来测试每一个已加载HDD。
根据本发明的HDD测试方法可以在计算机系统中由可执行的软件来实施。在这种情况下,上述操作模块作为执行本发明进程的代码段来实现。软件或代码段可以存储在计算机可读介质中,所述存储介质包括但不局限于半导体存储设备、ROM、闪存、可擦除的ROM(EROM)、软驱、光盘、硬盘、光纤介质、无线射频网络等等。软件或代码段可以作为数据信号连同载波在传输媒介或通信网络(例如电子网络频道、空气、电磁领域、RF网络等等)上传输。
虽然本发明组合实施例已经做了显示和说明,可以理解本领域的普通技术人员在不脱离本发明如下权利要求及其同类所限定的精神和范围的情况下,可以对形式和细节方面做出修改。
权利要求
1.一种在硬盘驱动器测试设备中测试可随机加载和卸载的多个硬盘驱动器的方法,该方法包括检查硬盘驱动器是否已经加载;顺序分配同时运行的测试线程,每个已加载硬盘驱动器分配一个测试线程;当将每个测试线程分配给相应的已加载硬盘驱动器时,每个测试线程对相应的已加载硬盘驱动器依次执行一系列测试任务操作;每当一个测试线程的一个测试任务操作完成就记录每个已加载硬盘驱动器的测试状态,以允许下一个测试线程参考所记录的测试状态来继续对相应的已加载硬盘驱动器的下一个测试任务操作。
2.如权利要求1所述的方法,其中所述一系列测试任务操作是以优先顺序排列的,并且该方法还包括每个测试线程将计划要对测试线程相应的已加载硬盘驱动器执行的测试任务操作的优先等级,与计划对其他已加载硬盘驱动器执行的测试任务操作的优先等级;如果该测试线程相应的已加载硬盘驱动器的测试任务操作的优先等级等于或低于其它已加载硬盘驱动器的测试任务操作的优先等级,那么由每个测试线程终止运行测试线程。
3.如权利要求2所述的方法,其中用于该相应的已加载硬盘驱动器的一系列测试任务操作包括向硬盘驱动器提供电源,重启硬盘驱动器,根据下载的相关测试脚本和代码自测硬盘驱动器,监视硬盘驱动器测试终止,以及如果测试已经终止则切断硬盘驱动器的电源供应,其中重启硬盘驱动器拥有最高的测试任务操作优先等级。
4.如权利要求1所述的方法,其中同时分配给已加载硬盘驱动器的多个测试线程受到硬盘驱动器测试设备资源的限制。
5.如权利要求4所述的方法,其中所述测试线程互相通信以便根据每个已加载硬盘驱动器的测试状态记录有效地共享硬盘驱动器测试设备的资源。
6.如权利要求1所述的方法,其中周期性地执行所述检查和为每个硬盘驱动器分配测试线程步骤。
7.如权利要求6所述的方法,其中所述检查步骤在第一时期内执行,所述为每个硬盘驱动器分配测试线程步骤在第二时期内执行,并且所述第一时期短于第二时期。
8.如权利要求1所述的方法,其中用于测试相应的已加载硬盘驱动器的一系列测试任务操作包括向硬盘驱动器供应电源,重启硬盘驱动器,根据下载的相关测试脚本和代码自测硬盘驱动器,监视硬盘驱动器测试终止,如果测试已经终止则切断硬盘驱动器的电源供应。
9.如权利要求8所述的方法,所述用于测试相应的已加载硬盘驱动器的一系列测试任务操作还包括识别已加载硬盘驱动器的模块名称,以及从数据库中下载已加载硬盘驱动器的相关测试脚本和代码。
10.如权利要求1所述的方法,还包括经由连接到每个已加载硬盘驱动器的串行端口的多端口串行通信开关的多个输入/输出串行端口,有选择地建立到每个已加载硬盘驱动器的一个串行通信通道;对应于已加载硬盘驱动器的每个测试来创建HDD端口信息数据结构;在每个测试的HDD端口信息数据结构中记录多端口串行通信开关的一个输入/输出串行端口的端口号,其中在所述多端口串行通信开关上为测试和测试状态建立到已加载硬盘驱动器的串行通信通道;以及根据HDD端口信息数据结构,每个测试线程同步执行每个测试的任务操作。
11.一种在设备测试装置中测试可随机加载和卸载的多个设备的方法,该方法包括根据用以测试多个可加载设备中的每一个的每个任务完成状态,由测试软件线程依次执行多个任务;根据每个已加载设备的测试软件线程任务完成状态记录,经由到每个已加载设备的串行通信接口,给用以测试每个已加载设备的多个任务中的每一个任务分配一个测试软件线程。
全文摘要
一种响应检查诸如硬盘驱动器之类设备的随机请求来测试多个这种设备的方法,它顺序为每个已加载硬盘驱动器分配一个测试线程。当调用和需要测试每个已加载硬盘驱动器时,每个分配的线程依次执行一系列的任务操作,每当测试线程的一个任务操作终止时记录每个硬盘驱动器的测试状态,以允许下一个测试线程参考所记录的测试状态。依据测试硬盘驱动器所需要的时间来测试每一个硬盘驱动器。
文档编号G06F11/26GK1573707SQ20041005508
公开日2005年2月2日 申请日期2004年5月17日 优先权日2003年5月15日
发明者申昌益 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1