CN110058973B - 数据储存装置的测试系统与数据储存装置的测试方法 - Google Patents
数据储存装置的测试系统与数据储存装置的测试方法 Download PDFInfo
- Publication number
- CN110058973B CN110058973B CN201810685492.0A CN201810685492A CN110058973B CN 110058973 B CN110058973 B CN 110058973B CN 201810685492 A CN201810685492 A CN 201810685492A CN 110058973 B CN110058973 B CN 110058973B
- Authority
- CN
- China
- Prior art keywords
- electronic device
- data storage
- test
- storage device
- computer
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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
- G06F11/073—Error 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 in a memory management context, e.g. virtual memory or cache management
-
- 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/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- 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/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2221—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
-
- 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/2273—Test methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/264—Microinstruction selection based on results of processing
- G06F9/267—Microinstruction selection based on results of processing by instruction selection on output of storage
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0407—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals on power on
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种数据储存装置的测试系统与数据储存装置的测试方法。该数据储存装置的测试系统包括一数据储存装置、一电子装置以及一电脑装置。电子装置包含一主机装置,主机装置耦接至数据储存装置,并且利用一介面逻辑与数据储存装置沟通。电脑装置耦接至电子装置,用以于一测试程序中发出多个指令测试数据储存装置。于电子装置成功地被启动后,电脑装置发出一第一指令给电子装置,用以驱使电子装置进入一休眠状态,并且于等待一第一既定时间后,电脑装置发出一第二指令给电子装置,用以唤醒电子装置。
Description
技术领域
本发明有关于一种数据储存装置的测试方法,可快速且有效地验证数据储存装置。
背景技术
随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合SD/MMC规格、CF规格、MS规格与XD规格的记忆卡、固态硬碟、嵌入式多媒体记忆卡(embeddedMulti Media Card,缩写为eMMC)以及通用快闪存储器储存(Universal Flash Storage,缩写为UFS)已经广泛地被应用在多种用途上。由于数据储存装置可被广泛地应用于各种不同的主机装置上,如何快速且有效地验证数据储存装置的稳定度以及应用于各平台上的相容性,为数据储存装置制造商一个重要的议题。
为了确保数据储存装置的验证效能,本发明提出一种新的测试方法,可快速且有效地验证数据储存装置应用于各种不同的主机装置的运作稳定度,及数据储存装置与各平台的相容性。
发明内容
本发明揭示一种数据储存装置的测试系统,包括一数据储存装置、一电子装置以及一电脑装置。电子装置包含一主机装置,主机装置耦接至数据储存装置,并且利用一介面逻辑与数据储存装置沟通。电脑装置耦接至电子装置,用以于一测试程序中发出多个指令测试数据储存装置。于电子装置成功地被启动后,电脑装置发出一第一指令给电子装置,用以驱使电子装置进入一休眠状态,并且于等待一第一既定时间后,电脑装置发出一第二指令给电子装置,用以唤醒电子装置。
本发明揭示一种数据储存装置的测试方法,用以测试一数据储存装置,其中数据储存装置耦接至一电子装置,电子装置耦接至一电脑装置,电脑装置于一测试程序中发出多个指令测试数据储存装置,数据储存装置的测试方法包括:于电子装置成功地被启动后,由电脑装置发出一第一指令给电子装置,用以驱使电子装置进入一休眠状态;以及等待一第一既定时间后,由电脑装置发出一第二指令给电子装置,用以唤醒电子装置。
附图说明
图1是显示根据本发明的一实施例所述的一种存储器装置的示意图。
图2是显示根据本发明的一实施例所述的一数据储存装置的测试系统示意图。
图3A与3B是显示根据本发明的第一实施例所述的数据储存装置的测试方法流程图。
图4A与4B是显示根据本发明的第二实施例所述的数据储存装置的测试方法流程图。
符号说明
100、210-数据储存装置;
110-存储器控制器;
112-微处理器;
112M-只读存储器;
112C-程式码;
114-控制逻辑;
116-缓冲存储器;
118-介面逻辑;
120-存储器装置;
130-主机装置;
132-编码器;
134-解码器;
200-测试系统;
220-电脑装置;
230-电子装置。
具体实施方式
为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
图1是显示根据本发明的一实施例所述的一种数据储存装置100的示意图。数据储存装置100包含有一存储器装置120,例如,一快闪存储器(Flash Memory)模块,以及一存储器控制器110,且存储器控制器110用来存取存储器装置120。根据本发明一实施例,存储器控制器110包含一微处理器112、一只读存储器(Read Only Memory,ROM)112M、一控制逻辑114、一缓冲存储器116、与一介面逻辑118。只读存储器112M用来储存一程式码112C,而微处理器112则用来执行程式码112C以控制对存储器装置120的存取(Access)。控制逻辑114包含了一编码器132以及一解码器134,其中编码器132用来对写入到存储器装置120中的数据进行编码以产生对应的校验码(或称,错误更正码(Error Correction Code),ECC),而解码器134用来将从存储器装置120所读出的数据进行解码。
于典型状况下,存储器装置120包含了多个快闪存储器芯片,而每一个快闪存储器芯片包含多个区块(Block),而该控制器(例如:透过微处理器112执行程式码112C的存储器控制器110)对存储器装置120进行抹除数据运作是以区块为单位来进行。另外,一区块可记录特定数量的数据页(Page),其中该控制器(例如:透过微处理器112执行程式码112C的存储器控制器110)对存储器装置120进行写入数据的运作是以数据页为单位来进行写入。
实作上,透过微处理器112执行程式码112C的存储器控制器110可利用其本身内部的元件来进行诸多控制运作,例如:利用控制逻辑114来控制存储器装置120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用介面逻辑118来与一主机装置(Host Device)130沟通。缓冲存储器116是以随机存取存储器(Random Access Memory,RAM)来实施。例如,缓冲存储器116可以是静态随机存取存储器(Static RAM,SRAM),但本发明不限于此。
在一实施例中,数据储存装置100可以是可携式存储器装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡),且主机装置130为一可与数据储存装置连接的电子装置,例如手机、笔记型电脑、桌上型电脑…等等。而在另一实施例中,数据储存装置100可以是固态硬碟或符合通用快闪存储器储存(Universal Flash Storage,UFS)或嵌入式多媒体记忆卡(Embedded Multi Media Card,EMMC)规格的嵌入式储存装置,以设置在一电子装置中,例如设置在手机、笔记型电脑、桌上型电脑之中,而此时主机装置130可以是该电子装置的一处理器。
主机装置130可对数据储存装置100发出指令,例如,读取指令或写入指令,用以存取存储器装置120所储存的数据,或者进一步控制、管理数据储存装置100。
图2是显示根据本发明的一实施例所述的一数据储存装置的测试系统示意图。数据储存装置的测试系统200可包括电脑装置220、电子装置230以及数据储存装置210。电脑装置220耦接至电子装置230,用以于一测试程序中发出多个指令测试数据储存装置210的运作稳定度。电子装置230可以是手机、笔记型电脑、桌上型电脑…等等。于此实施例中,数据储存装置210可以是符合通用快闪存储器储存(UFS)或嵌入式多媒体记忆卡(EMMC)规格的嵌入式储存装置,并设置在电子装置230中。
例如,当数据储存装置210为符合通用快闪存储器储存(UFS)的规范的嵌入式储存装置时,电子装置230内设置的主机装置(未示于图2)与数据储存装置210可透过符合UFS规范的介面逻辑相互连接,并透过此介面逻辑与数据储存装置210沟通。又例如,当数据储存装置210为符合内嵌式多媒体记忆卡(EMMC)规格的嵌入式储存装置时,电子装置230内设置的主机装置与数据储存装置210可透过符合EMMC规范的介面逻辑相互连接,并透过此介面逻辑与数据储存装置210沟通。
图3A与3B是显示根据本发明的第一实施例所述的数据储存装置的测试方法流程图。首先,电脑装置220可先确认电子装置230已成功地被启动(步骤S302)。根据本发明的一实施例,一测试人员可藉由按下电子装置230的一电源键启动电子装置230。根据本发明的另一实施例,电脑装置220可藉由发出一开机指令或重新开机指令给电子装置230,用以强制启动或重新启动电子装置230。
于本发明的实施例,电脑装置220可发出一或多个确认(Confirm)指令给电子装置230,并根据电子装置230回复的讯息判断电子装置230是否已成功地被启动。举例而言,当电子装置230回复的讯息所夹带位元值被设定为'1',代表电子装置230已成功地被启动。当电子装置230回复的讯息所夹带位元值被设定为'0',代表电子装置230尚未成功地被启动,或者启动失败。
根据本发明的一实施例,当电子装置230第一次成功地被启动时,可被视为该电子装置于测试程序中第一次成功地被启动。电脑装置220可根据电子装置230第一次被启动的方式及结果,判断电子装置230是否通过第一阶段的开机测试,或分析造成启动失败的根本原因。举例而言,若电脑装置220系藉由发出一开机指令强制启动电子装置230,而电子装置230未能成功地被启动,可能是电子装置230或数据储存装置210内部的信号传导层(物理层)或传输协定层的物理信号不稳定,导致开机相关的指令信号未能正确地被传递而导致。
于确认电子装置230已成功地被启动后,电脑装置220可发出一休眠指令(第一指令)给电子装置230,用以驱使电子装置230进入一休眠状态(步骤S304)。当电子装置230自电脑装置220成功地接收到休眠指令时,可回传一确认信号(ACK),电脑装置220可根据是否接收到确认信号判断电子装置230是否进入休眠状态。
当电子装置230进入休眠状态后,电子装置230的屏幕会被关闭,且以低功耗的方式运作,其中,数据储存装置210于休眠状态不会执行读写操作。
接着,电脑装置220等待一既定时间DEVICE_SUSPEND_TIME(第一既定时间)后,发出一唤醒指令(第二指令)给电子装置,用以唤醒该电子装置(步骤S306)。
电脑装置220可发出一确认(Confirm)信号给电子装置230,用以确认电子装置是否成功地被唤醒(步骤S308)。
根据本发明的一实施例,电脑装置220可藉由步骤S304~步骤S308测试电子装置230于运作于休眠模式时的沟通是否正常。若电子装置230无法于休眠状态中被唤醒,则电脑装置220判定数据储存装置210无法通过第二阶段的唤醒测试(步骤S310)。藉此,电脑装置220可进一步分析造成测试失败的根本原因。举例而言,当电子装置230或数据储存装置210内部的信号品质不稳定,或者信号品质不良,都有可能造成电子装置230无法于休眠状态中被唤醒。
若电子装置230成功地响应唤醒指令于休眠状态中被唤醒,则电脑装置220可更发出一撷取指令(第三指令)给电子装置230,用以请求电子装置230或对应的主机装置自数据储存装置210读取一操作记录(kernel log)档,并将操作记录档回传给电脑装置220(步骤S312)。
操作记录(kernel log)档为电子装置230所维护的一核心记录档,用以记录电子装置230于运作过程中发生过的所有事件。电脑装置220可藉由执行一些对应的程式分析操作记录档的内容,以判断造成先前测试失败的根本原因。举例而言,电脑装置220可藉由搜寻操作记录档所记录的关键字,找出是否有因数据储存装置210的异常而导致的测试失败。
举例而言,关键字"_ufs_do_card_reset"可表示数据储存装置210(例如,一UFS装置)曾经发生设置错误并且电子装置230系统对数据储存装置210执行重新设置。关键字"hibern8 enter failed"可表示数据储存装置210在进入休眠状态时发生错误。关键字"hibern8 exit failed"可表示数据储存装置210在离开休眠状态时发生错误。关键字"ufshcd_abort"可表示数据储存装置210被中断,通常伴随着休眠状态进入/离开的错误。关键字"query_flag_retry"可表示数据储存装置210传送参数讯息时发生错误。
接着,电脑装置220可发出一重新启动指令(第四指令)给电子装置230,用以重新启动电子装置230(步骤S314)。
当电子装置230自电脑装置220成功地接收到重新启动指令时,可回传一确认信号(ACK),以告知电脑装置220电子装置230已执行重新启动。电脑装置220可根据是否接收到确认信号判断重新启动指令是否可成功地被传送(步骤S316)。举例而言,电脑装置220可设定另一既定时间DEVICE_REBOOTING_TIME(第二既定时间),如果于既定时间DEVICE_REBOOTING_TIME内都没有自电子装置230接收到确认信号,则判定重新启动指令无法于既定时间DEVICE_REBOOTING_TIME内成功地被传送,数据储存装置210无法通过第三阶段的重新启动测试(步骤S318)。
若电脑装置220于既定时间DEVICE_REBOOTING_TIME内自电子装置230接收到确认信号,则判定重新启动指令可成功地被传送。接着,电脑装置220进一步判断电子装置230于测试程序中执行重新开机的次数是否大于一既定数值(步骤S320)。根据本发明的一实施例,电脑装置220可持续计算电子装置230于测试程序中执行重新开机的次数。每当电子装置230藉由回传确认信号(ACK)告知电脑装置220已执行重新启动时,电脑装置220可将执行重新开机的次数加1。当电子装置230于测试程序中执行重新开机的次数大于系统设定的一既定数值TOTAL_DEVICE_REBOOT_LOOP,代表电子装置230执行重新启动的次数已超过测试系统设定的临界值,则电脑装置220可判定数据储存装置210已通过整体的测试(步骤S322)。
另一方面,若电子装置230于测试程序中执行重新开机的次数不大于既定数值TOTAL_DEVICE_REBOOT_LOOP,代表电子装置230执行重新启动的次数尚未超过测试系统设定的临界值,则测试程序可回到步骤S302,由电脑装置220再度确认电子装置230是否已成功地被重新启动。
根据本发明的一实施例,于测试程序中,不同时间点被安排了不同的测试(例如,第一阶段的开机测试、第二阶段的唤醒测试、及第三阶段的重新启动测试等)。藉由上述的安排,当电子装置230或数据储存装置210发生任何操作错误时,电脑装置220可藉由测试程序中断的步骤、测试程序执行的历程及电脑装置220与电子装置230之间传送的沟通讯息等,迅速判断出错误类型。举例而言,如上述,电脑装置220可根据电子装置230第一次被启动的方式及结果,判断电子装置230是否通过第一阶段的开机测试,或分析造成启动失败的根本原因。
举另一例而言,电脑装置220亦可根据电子装置230是否可顺利地自休眠状态中被唤醒的结果,判断出是否数据储存装置210在进入/离开休眠状态时发生错误。
举又另一例而言,电脑装置220可根据电子装置230是否可成功地接收到重新启动指令,及/或是否可成功地被重新启动,判断出是否数据储存装置210发生低速至高速切换错误(因重新启动时会先将主机装置与数据储存装置210之间介面逻辑的数据传输速率设定于低速档位,并于主机装置成功送出LinkStartUP或LineReset等请求重新启动的指令后,将介面逻辑的数据传输速率设定于高速档位)、电源模式同步错误(Device power modeSync error)等。
此外,由于操作记录档会记录电子装置230于运作过程中发生过的所有事件,藉由透过电脑装置220于电子装置230成功开机后撷取出操作记录档,并分析操作记录档所记录的内容,亦可判断造成先前测试失败(若有)的根本原因。
图4A与4B是显示根据本发明的第二实施例所述的数据储存装置的测试方法流程图。首先,电脑装置220可先确认电子装置230是否已成功地被启动。根据本发明的一实施例,一测试人员可藉由按下电子装置230的一电源键启动电子装置230。根据本发明的另一实施例,电脑装置220可藉由发出一开机指令或重新开机指令给电子装置230,用以强制启动或重新启动电子装置230。
根据本发明的一实施例,电脑装置220可设定一等待时间WAIT_DEVICE_CHECKING_TIME(第三既定时间),并于等待此既定时间WAIT_DEVICE_CHECKING_TIME过后,发出一确认(Confirm)指令(第五指令)给电子装置230(步骤S402),用以进一步确认电子装置230是否已成功地被启动(步骤S404)。
根据本发明的一实施例,电脑装置220可发出一或多个确认指令给电子装置230,并根据电子装置230回复的讯息判断电子装置230是否已成功地被启动。举例而言,当电子装置230回复的讯息所夹带位元值被设定为'1',代表电子装置230已成功地被启动。当电子装置230回复的讯息所夹带位元值被设定为'0',代表电子装置230尚未成功地被启动或启动失败。
此外,根据本发明的一实施例,电脑装置220可于每发出一次确认指令后,累加一确认计数值n。若电脑装置220未成功地被启动,则电脑装置220进一步判断确认计数值n是否超过确认临界值CHECKING_COUNT(步骤S406)。若确认计数值尚未超过确认临界值CHECKING_COUNT,则测试程序回到步骤S402,再度进行确认。若确认计数值已超过确认临界值CHECKING_COUNT,代表确认的次数已超过测试系统设定的确认临界值,则判定为测试未通过(步骤S408)。
根据本发明的一实施例,电脑装置220可藉由测试程序中断的步骤、测试程序执行的历程及电脑装置220与电子装置230之间传送的沟通讯息等,判断出目前的测试失败属于电子装置230未通过第一阶段的开机测试而导致的测试失败。此外,根据本发明的一实施例,电脑装置220亦可根据电子装置230被启动的方式及结果,分析造成启动失败的根本原因。举例而言,若电脑装置220藉由发出一开机指令强制启动电子装置230,而电子装置230未能成功地被启动,可能是电子装置230或数据储存装置210内部的信号传导层(物理层)或传输协定层的物理信号不稳定,导致开机相关的指令信号未能正确地被传递而导致。
另一方面,于确认电子装置230已成功地被启动后,电脑装置220可发出一休眠指令(第一指令)给电子装置230,用以驱使电子装置230进入一休眠状态(步骤S410)。当电子装置230自电脑装置220成功地接收到休眠指令时,可回传一确认信号(ACK),电脑装置220可根据是否接收到确认信号判断电子装置230是否进入休眠状态。
当电子装置230进入休眠状态后,电子装置230的屏幕会被关闭,且以低功耗的方式运作,其中,数据储存装置210于休眠状态不会执行读写操作。
接着,电脑装置220等待一既定时间DEVICE_SUSPEND_TIME(第一既定时间)后,发出一唤醒指令(第二指令)给电子装置,用以唤醒该电子装置(步骤S412)。
电脑装置220可发出一确认(Confirm)信号给电子装置230,用以确认电子装置是否成功地被唤醒(步骤S414)。
根据本发明的一实施例,电脑装置220可藉由步骤S410~步骤S414测试电子装置230于运作于休眠模式时的沟通是否正常。若电子装置230无法于休眠状态中被唤醒,则电脑装置220判定数据储存装置210未通过测试(步骤S408)。
值得注意的是,电脑装置220可藉由测试程序中断的步骤、测试程序执行的历程及电脑装置220与电子装置230之间传送的沟通讯息等,判断于此阶段的测试失败属于电子装置230未通过第二阶段的唤醒测试而导致的测试失败。此外,电脑装置220可进一步分析造成测试失败的根本原因。举例而言,当电子装置230或数据储存装置210内部的信号品质不稳定,或者信号品质不良,都有可能造成电子装置230无法于休眠状态中被唤醒。
若电子装置230成功地响应唤醒指令于休眠状态中被唤醒,则电脑装置220可更发出一撷取指令(第三指令)给电子装置230,用以请求电子装置230或对应的主机装置自数据储存装置210读取一操作记录(kernel log)档,并将操作记录档回传给电脑装置220(步骤S416)。
操作记录(kernel log)档为电子装置230所维护的一核心记录档,用以记录电子装置230于运作过程中发生过的所有事件。电脑装置220可藉由执行一些对应的程式分析操作记录档的内容,以判断造成先前测试失败的根本原因。举例而言,电脑装置220可藉由搜寻操作记录档所记录的关键字,找出是否有因数据储存装置210的异常而导致的测试失败。
举例而言,关键字"_ufs_do_card_reset"可表示数据储存装置210(例如,一UFS装置)曾经发生设置错误并且电子装置230系统对数据储存装置210执行重新设置。关键字"hibern8 enter failed"可表示数据储存装置210在进入休眠状态时发生错误。关键字"hibern8 exit failed"可表示数据储存装置210在离开休眠状态时发生错误。关键字"ufshcd_abort"可表示数据储存装置210被中断,通常伴随着休眠状态进入/离开的错误。关键字"query_flag_retry"可表示数据储存装置210传送参数讯息时发生错误。
接着,电脑装置220可发出一重新启动指令(第四指令)给电子装置230,用以重新启动电子装置230(步骤S418)。
当电子装置230自电脑装置220成功地接收到重新启动指令时,可回传一确认信号(ACK),以告知电脑装置220电子装置230已执行重新启动。电脑装置220可根据是否接收到确认信号判断重新启动指令是否可成功地被传送(步骤S420)。举例而言,电脑装置220可设定另一既定时间DEVICE_REBOOTING_TIME(第二既定时间),如果于既定时间DEVICE_REBOOTING_TIME内都没有自电子装置230接收到确认信号,则判定重新启动指令无法于既定时间DEVICE_REBOOTING_TIME内成功地被传送,则电脑装置220判定数据储存装置210未通过测试(步骤S408)。如上述,电脑装置220可藉由测试程序中断的步骤、测试程序执行的历程及电脑装置220与电子装置230之间传送的沟通讯息等,判断于此阶段的测试失败属于数据储存装置210无法通过第三阶段的重新启动测试。
若电脑装置220于既定时间DEVICE_REBOOTING_TIME内自电子装置230接收到确认信号,则判定重新启动指令可成功地被传送。接着,电脑装置220进一步判断电子装置230于测试程序中执行重新开机的次数是否大于一既定数值(步骤S422)。根据本发明的一实施例,电脑装置220可持续计算电子装置230于测试程序中执行重新开机的次数。每当电子装置230藉由回传确认信号(ACK)告知电脑装置220已执行重新启动时,电脑装置220可将执行重新开机的次数加1。当电子装置230于测试程序中执行重新开机的次数大于系统设定的一既定数值TOTAL_DEVICE_REBOOT_LOOP,代表电子装置230执行重新启动的次数已超过测试系统设定的临界值,则电脑装置220可判定数据储存装置210已通过整体的测试(步骤S424)。
另一方面,若电子装置230于测试程序中执行重新开机的次数不大于既定数值TOTAL_DEVICE_REBOOT_LOOP,代表电子装置230执行重新启动的次数尚未超过测试系统设定的临界值,则测试程序可回到步骤S402,由电脑装置220再度确认电子装置230是否已成功地被重新启动。
如上述,根据本发明的一实施例,于测试程序中,不同时间点被安排了不同的测试(例如,第一阶段的开机测试、第二阶段的唤醒测试、及第三阶段的重新启动测试等)。藉由上述的安排,当电子装置230或数据储存装置210发生任何操作错误时,电脑装置220可藉由测试程序中断的步骤、测试程序执行的历程及电脑装置220与电子装置230之间传送的沟通讯息等,迅速判断出错误类型。举例而言,如上述,电脑装置220可根据电子装置230第一次被启动的方式及结果,判断电子装置230是否通过第一阶段的开机测试,或分析造成启动失败的根本原因。
举另一例而言,电脑装置220亦可根据电子装置230是否可顺利地自休眠状态中被唤醒的结果,判断出是否数据储存装置210在进入/离开休眠状态时发生错误。
举又另一例而言,电脑装置220可根据电子装置230是否可成功地接收到重新启动指令,及/或是否可成功地被重新启动,判断出是否数据储存装置210发生低速至高速切换错误(因重新启动时会先将主机装置与数据储存装置210之间介面逻辑的数据传输速率设定于低速档位,并于主机装置成功送出LinkStartUP或LineReset等请求重新启动的指令后,将介面逻辑的数据传输速率设定于高速档位)、电源模式同步错误(Device power modeSync error)、重新启动时序错(DMR Reset timing error)等。
此外,由于操作记录档会记录电子装置230于运作过程中发生过的所有事件,藉由透过电脑装置220于电子装置230成功开机后撷取出操作记录档,并分析操作记录档所记录的内容,亦可判断造成先前测试失败(若有)的根本原因。
一般而言,在电子装置验证阶段时,会透过重新启动测试(rebooting test)来验证整体系统内所配置的各元件的稳定性,例如,确认数据储存装置可以在断电/上电之后能够稳定地重新连结到主机装置,并完成正常开机。然而,传统技术中,由于电子装置的验证系透过电子装置内建的应用程式(APK)执行,因而于电子装置无法顺利开机的当下,无法保留任何的错误讯息,导致尔后需要耗费许多时间等待错误复现,间接延长除错时间以及增加确认问题点的难度。
为解决上述问题,本发明提出了新颖的测试系统及测试方法,其可快速且有效地验证数据储存装置应用于各种不同的电子装置的运作稳定度,及数据储存装置与各系统平台的相容性,并且可有效率的缩短启动测试时间,解决传统启动测试时间过长的问题,并且能提高错误检测率。于测试程序中,因不同时间点被安排了不同的测试(例如,第一阶段的开机测试、第二阶段的唤醒测试、及第三阶段的重新启动测试等),当电子装置230或数据储存装置210发生任何操作错误时,电脑装置220可藉由测试程序中断的步骤、测试程序执行的历程及电脑装置220与电子装置230之间传送的沟通讯息等,迅速判断出错误类型,以协助研发人员能快速检查以厘清错误的根本原因并提出改善方案。此外,本发明所提出的测试方法可全程藉由电脑装置自动化控制,并且可同时对多个电子装置执行测试,相较于传统技术,可大幅提升测试的效率,解决了传统技术的问题。此外,于本发明所提出的测试方法,在检测到测试失败当下能够停止测试,并且保留测试程序的执行记录,再利用电脑装置分析各个记录档,有效提高错误检测率。
权利要求书中用以修饰元件的"第一"、"第二"等序数词的使用本身未暗示任何优先权、优先次序、各元件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。
Claims (2)
1.一种数据储存装置的测试系统,用以测试数据储存装置,包括:
一数据储存装置;
一电子装置,包含一主机装置,该主机装置耦接至该数据储存装置,并且利用一介面逻辑与该数据储存装置沟通;以及
一电脑装置,耦接至该电子装置,用以于一测试程序中发出多个指令测试该数据储存装置;
其中该电脑装置先确认该电子装置是否已成功地被启动,若该电子装置未能成功地被启动,则判断是由于该电子装置或该数据储存装置内部的信号传导层或传输协定层的物理信号不稳定,开机相关的指令信号未能正确地被传递而导致该电子装置未能成功地被启动,若该电子装置成功启动,则在启动后,该电脑装置发出一第一指令给该电子装置,用以驱使该电子装置进入一休眠状态,并且于等待一第一既定时间后,该电脑装置发出一第二指令给该电子装置,用以唤醒该电子装置,若该电子装置无法于休眠状态中被唤醒,则该电脑装置判定该数据储存装置未通过测试,
其中于该电子装置响应该第二指令被唤醒后,该电脑装置更发出一第三指令给该电子装置,用以请求该主机装置自该数据储存装置读取一操作记录档,并将该操作记录档回传给该电脑装置,其中该操作记录档为该电子装置所维护的一核心记录档,用以记录该电子装置于运作过程中发生过的所有事件;该电脑装置藉由分析操作记录档的内容,以判断造成先前测试失败的根本原因;接着该电脑装置还发出一第四指令给该电子装置,用以驱使该电子装置重新开机,并且根据该电脑装置是否于一第二既定时间内接收到一确认信号判断该第四指令是否成功地被传送,其中该电脑装置更于判断该第四指令成功地被传送后,根据于该第二既定时间内接收到的该确认信号计算该电子装置于该测试程序中重新开机的一次数,以及
其中当该电子装置于该测试程序中重新开机的该次数大于一既定数值时,该电脑装置判断该数据储存装置通过测试,并且当该电子装置于该测试程序中重新开机的该次数不大于该既定数值时,该电脑装置重新执行该测试程序。
2.一种数据储存装置的测试方法,用以测试一数据储存装置,其中该数据储存装置耦接至一电子装置,该电子装置包含一主机装置,并且耦接至一电脑装置,该主机装置耦接至该数据储存装置,并且利用一介面逻辑与该数据储存装置沟通,该电脑装置于一测试程序中发出多个指令测试该数据储存装置,该测试方法包括:
确认该电子装置是否已成功地被启动,若该电子装置未能成功地被启动,则判断是由于该电子装置或该数据储存装置内部的信号传导层或传输协定层的物理信号不稳定,开机相关的指令信号未能正确地被传递而导致该电子装置未能成功地被启动,若该电子装置成功启动,则在启动后,由该电脑装置发出一第一指令给该电子装置,用以驱使该电子装置进入一休眠状态;
等待一第一既定时间后,由该电脑装置发出一第二指令给该电子装置,用以唤醒该电子装置,若该电子装置无法于休眠状态中被唤醒,则该电脑装置判定该数据储存装置未通过测试;
于该电子装置响应该第二指令被唤醒后,由该电脑装置更发出一第三指令给该电子装置,用以请求该主机装置自该数据储存装置读取一操作记录档,并将该操作记录档回传给该电脑装置,其中该操作记录档为该电子装置所维护的一核心记录档,用以记录该电子装置于运作过程中发生过的所有事件;该电脑装置藉由分析操作记录档的内容,以判断造成先前测试失败的根本原因;接着由该电脑装置发出一第四指令给该电子装置,用以驱使该电子装置重新开机,并且根据该电脑装置是否于一第二既定时间内接收到一确认信号判断该第四指令是否成功地被传送;
于判断该第四指令成功地被传送后,根据于该第二既定时间内接收到的该确认信号计算该电子装置于该测试程序中重新开机的一次数,以及
当该电子装置于该测试程序中重新开机的该次数大于一既定数值时,判断该数据储存装置通过测试,并且当该电子装置于该测试程序中重新开机的该次数不大于该既定数值时,重新执行该测试程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107102033A TWI665606B (zh) | 2018-01-19 | 2018-01-19 | 資料儲存裝置之測試系統與資料儲存裝置之測試方法 |
TW107102033 | 2018-01-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110058973A CN110058973A (zh) | 2019-07-26 |
CN110058973B true CN110058973B (zh) | 2022-10-14 |
Family
ID=67298151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810685492.0A Active CN110058973B (zh) | 2018-01-19 | 2018-06-28 | 数据储存装置的测试系统与数据储存装置的测试方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10691569B2 (zh) |
CN (1) | CN110058973B (zh) |
TW (1) | TWI665606B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641601A (zh) | 2020-04-27 | 2021-11-12 | 三星电子株式会社 | 存储设备的链路启动方法、存储设备、主机及其实现系统 |
TWI800327B (zh) * | 2022-03-23 | 2023-04-21 | 慧榮科技股份有限公司 | 資料儲存系統與參數裕度估計方法 |
CN116453582B (zh) * | 2023-06-14 | 2023-09-22 | 合肥康芯威存储技术有限公司 | 一种存储器的信号测试系统及测试方法 |
CN117667547B (zh) * | 2023-12-13 | 2024-05-14 | 湖南进芯电子科技有限公司 | 一种上电后存储并行自检系统及方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106205692A (zh) * | 2015-05-27 | 2016-12-07 | 慧荣科技股份有限公司 | 存储器控制器与存储器模块 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1391164A (zh) * | 2002-06-04 | 2003-01-15 | 威盛电子股份有限公司 | 计算机主机板开关机测试方法 |
JP4229715B2 (ja) * | 2003-01-29 | 2009-02-25 | Necエレクトロニクス株式会社 | テスト回路及び半導体装置 |
CN100426248C (zh) * | 2005-06-03 | 2008-10-15 | 鸿富锦精密工业(深圳)有限公司 | 网络附加存储设备测试系统及方法 |
JP2007066126A (ja) * | 2005-09-01 | 2007-03-15 | Hitachi Global Storage Technologies Netherlands Bv | データ記憶装置のテスト方法及びデータ記憶装置の製造方法 |
US8640007B1 (en) * | 2011-09-29 | 2014-01-28 | Western Digital Technologies, Inc. | Method and apparatus for transmitting diagnostic data for a storage device |
CN103744787A (zh) * | 2014-01-21 | 2014-04-23 | 上海斐讯数据通信技术有限公司 | 一种手机自动化测试方法 |
US9268635B2 (en) * | 2014-05-21 | 2016-02-23 | Sandisk Technologies Inc. | Error correction using multiple data sources |
US9824760B2 (en) * | 2015-07-29 | 2017-11-21 | Sandisk Technologies Llc | Systems and methods of generating shaped random bits |
US9865360B2 (en) * | 2015-10-22 | 2018-01-09 | Sandisk Technologies Llc | Burn-in memory testing |
CN111971742B (zh) * | 2016-11-10 | 2024-08-20 | 赛轮思软件技术(北京)有限公司 | 与语言无关的唤醒词检测的技术 |
US20190163254A1 (en) * | 2017-11-30 | 2019-05-30 | Nvidia Corporation | Core off sleep mode with low exit latency |
-
2018
- 2018-01-19 TW TW107102033A patent/TWI665606B/zh active
- 2018-06-28 CN CN201810685492.0A patent/CN110058973B/zh active Active
- 2018-10-18 US US16/163,831 patent/US10691569B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106205692A (zh) * | 2015-05-27 | 2016-12-07 | 慧荣科技股份有限公司 | 存储器控制器与存储器模块 |
Also Published As
Publication number | Publication date |
---|---|
US20190227894A1 (en) | 2019-07-25 |
CN110058973A (zh) | 2019-07-26 |
TW201933091A (zh) | 2019-08-16 |
US10691569B2 (en) | 2020-06-23 |
TWI665606B (zh) | 2019-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110058973B (zh) | 数据储存装置的测试系统与数据储存装置的测试方法 | |
US9417967B2 (en) | Computing device and method for automatically recovering bios of computing device | |
US9158628B2 (en) | Bios failover update with service processor having direct serial peripheral interface (SPI) access | |
US7900090B2 (en) | Systems and methods for memory retention across resets | |
KR100430468B1 (ko) | 운영체제의 초기화 및 재시작 방법 및 장치 | |
US6463550B1 (en) | Computer system implementing fault detection and isolation using unique identification codes stored in non-volatile memory | |
US8468389B2 (en) | Firmware recovery system and method of baseboard management controller of computing device | |
CN102135927B (zh) | 一种基于nand flash的系统引导方法和装置 | |
JP2009517742A (ja) | マイクロコントローラに基づくフラッシュメモリデジタルコントローラシステムのためのコマンドデコーダ | |
US20070101114A1 (en) | Method and apparatus for memory initializing in a computer system | |
CN101634960A (zh) | 一种修改bios参数及重新生成校验和的方法 | |
US20150095632A1 (en) | Computer booting system and method for computer system | |
CN113703799B (zh) | 计算设备及其bios更新方法和介质 | |
CN101593083A (zh) | 对计算机配置信息进行保护和恢复的装置、计算机和方法 | |
TW201020779A (en) | System for auto-operating backup firmware and method thereof | |
TWI534707B (zh) | 電腦系統及其開關機方法 | |
TW202213114A (zh) | 主機裝置及記憶體系統 | |
CN114661368B (zh) | 一种芯片及其启动方法 | |
CN112035171B (zh) | 基于uefi固件的恢复出厂设置方法及系统 | |
CN101436097B (zh) | 电子装置及其唤醒方法 | |
CN105630523A (zh) | 计算机bios资料恢复系统及方法 | |
KR20090037223A (ko) | 시스템 종료 후 자기진단 수행시스템 및 방법, 그리고 그를이용한 부팅방법 | |
KR101022468B1 (ko) | 비정상 종료된 시스템의 재부팅 시간을 단축할 수 있는임베디드 컴퓨터 시스템 | |
US11250929B2 (en) | System for detecting computer startup and method of system | |
TWI521354B (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 |