CN112017723B - 存储器的掉电测试方法、装置、可读存储介质及电子设备 - Google Patents
存储器的掉电测试方法、装置、可读存储介质及电子设备 Download PDFInfo
- Publication number
- CN112017723B CN112017723B CN202010894417.2A CN202010894417A CN112017723B CN 112017723 B CN112017723 B CN 112017723B CN 202010894417 A CN202010894417 A CN 202010894417A CN 112017723 B CN112017723 B CN 112017723B
- Authority
- CN
- China
- Prior art keywords
- memory
- tested
- test data
- power
- writing
- 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
- 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
-
- 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/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本发明公开一种存储器的掉电测试方法、装置、可读存储介质及电子设备,先在待测试存储器中写入第一测试数据,然后对待测试存储器的实时状态进行监测,在监测过程中,如果待测试存储器处于上电状态下,则触发待测试存储器始终执行垃圾回收机制,并且如果一旦监测到待测试存储器掉电,即对其掉电前的第一检测状态进行保存,待其上电后,基于保存的第一检测状态继续触发待检测存储器继续执行垃圾回收机制,通过对第一测试数据的校验能够实现对GC算法性能的自动化测试,不仅能够保证普通读写测试不因意外或主动掉电而受到影响,而且可以有效检测待测试存储器应对异常掉电情况下的GC算法的可靠性和稳定性。
Description
技术领域
本发明涉及存储器检测领域,尤其涉及一种存储器的掉电测试方法、装置、可读存储介质及电子设备。
背景技术
由于EMMC(Embedded Multi-Media Card,嵌入式多媒体存储器)的算法,当EMMC的数据写入量超过一定范围时,会触发垃圾回收(garbage collection,以下简称GC)机制,此时在EMMC内部会进行一些数据搬迁的操作。如果在GC过程中存储器出现意外掉电的情况,GC算法不够完善的存储器则会因此失去一些重要的数据。但是,目前,并没有针对此机制进行测试的相关方法。
发明内容
本发明所要解决的技术问题是:提供一种存储器的掉电测试方法、装置、可读存储介质及电子设备,能够对存储器的GC算法的性能进行自动化测试。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种存储器的掉电测试方法,包括步骤:
接收第一测试数据写入请求,根据所述第一测试数据写入请求将所述第一测试数据写入已连接的未格式化的待测试存储器,在写入所述第一测试数据的过程中,所述待测试存储器保持上电状态;
当接收到所述第一测试数据写入完成的信号后,对所述待测试存储器的实时状态进行监测,在所述监测过程中,当所述待测试存储器处于上电状态下,触发所述待测试存储器始终执行垃圾回收机制;
当监测到所述待测试存储器掉电时,保存所述待测试存储器的第一检测状态;
当监测到所述待测试存储器重新上电时,根据所述第一检测状态继续触发所述待测试存储器继续执行垃圾回收机制;
判断是否接收到校验请求,若是,对所述第一测试数据进行校验,若否,返回执行对所述待测试存储器的实时状态进行监测的步骤。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种存储器的掉电测试装置,包括:
数据写入模块,用于接收第一测试数据写入请求,根据所述第一测试数据写入请求将所述第一测试数据写入已连接的未格式化的待测试存储器,在写入所述第一测试数据的过程中,所述待测试存储器保持上电状态;
监测模块,用于当接收到所述第一测试数据写入完成的信号后,对所述待测试存储器的实时状态进行监测,在所述监测过程中,当所述待测试存储器处于上电状态下,触发所述待测试存储器始终执行垃圾回收机制;
当监测到所述待测试存储器掉电时,保存所述待测试存储器的第一检测状态;
当监测到所述待测试存储器重新上电时,根据所述第一检测状态继续触发所述待测试存储器继续执行垃圾回收机制;
检验模块,用于判断是否接收到校验请求,若是,对所述第一测试数据进行校验,若否,返回执行对所述待测试存储器的实时状态进行监测的步骤。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种存储器的掉电测试方法中的各个步骤。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种存储器的掉电测试方法中的各个步骤。
本发明的有益效果在于:先在待测试存储器中写入第一测试数据,然后对待测试存储器的实时状态进行监测,在监测过程中,如果待测试存储器处于上电状态下,则触发待测试存储器始终执行垃圾回收机制,并且如果一旦监测到待测试存储器掉电,即对其掉电前的第一检测状态进行保存,待其上电后,基于保存的第一检测状态继续触发待检测存储器继续执行垃圾回收机制,通过对第一测试数据的校验能够实现对GC算法性能的自动化测试,不仅能够保证普通读写测试不因意外或主动掉电而受到影响,而且可以有效检测待测试存储器应对异常掉电情况下的GC算法的可靠性和稳定性。
附图说明
图1为本发明实施例的一种存储器的掉电测试方法的步骤流程图;
图2为本发明实施例的一种存储器的掉电测试装置的结构示意图;
图3为本发明实施例的一种电子设备的结构示意图;
图4为本发明实施例的测试软件执行存储器的掉电测试方法的步骤流程图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种存储器的掉电测试方法,包括步骤:
接收第一测试数据写入请求,根据所述第一测试数据写入请求将所述第一测试数据写入已连接的未格式化的待测试存储器,在写入所述第一测试数据的过程中,所述待测试存储器保持上电状态;
当接收到所述第一测试数据写入完成的信号后,对所述待测试存储器的实时状态进行监测,在所述监测过程中,当所述待测试存储器处于上电状态下,触发所述待测试存储器始终执行垃圾回收机制;
当监测到所述待测试存储器掉电时,保存所述待测试存储器的第一检测状态;
当监测到所述待测试存储器重新上电时,根据所述第一检测状态继续触发所述待测试存储器继续执行垃圾回收机制;
判断是否接收到校验请求,若是,对所述第一测试数据进行校验,若否,返回执行对所述待测试存储器的实时状态进行监测的步骤。
由上述描述可知,本发明的有益效果在于:先在待测试存储器中写入第一测试数据,然后对待测试存储器的实时状态进行监测,在监测过程中,如果待测试存储器处于上电状态下,则触发待测试存储器始终执行垃圾回收机制,并且如果一旦监测到待测试存储器掉电,即对其掉电前的第一检测状态进行保存,待其上电后,基于保存的第一检测状态继续触发待检测存储器继续执行垃圾回收机制,通过对第一测试数据的校验能够实现对GC算法性能的自动化测试,不仅能够保证普通读写测试不因意外或主动掉电而受到影响,而且可以有效检测待测试存储器应对异常掉电情况下的GC算法的可靠性和稳定性。
进一步的,所述触发所述待测试存储器始终执行垃圾回收机制包括:
接收第二测试数据写入请求,根据所述第二测试数据写入请求将所述第二测试数据持续写入所述待测试存储器,使得所述待测试存储器始终执行垃圾回收机制,所述第二测试数据的写入地址与所述第一测试数据的写入地址不同。
由上述描述可知,通过对数据的写入提供了一种触发待测试存储器执行垃圾回收机制的方式,并且设置第二测试数据的写入地址与第一测试数据的写入地址不同,保证第一测试数据与第二测试数据互不影响,提高测试的可靠性。
进一步的,所述保存所述待测试存储器的第一检测状态包括:
保存所述待测试存储器掉电之前最后一个写入成功的逻辑数据块的地址;
所述根据所述第一检测状态继续触发所述待测试存储器继续执行垃圾回收机制包括:
根据所述保存的逻辑数据块的地址在所述待测试存储器的所述保存的逻辑数据块的地址之后继续写入所述第二测试数据,使得所述待测试存储器继续执行垃圾回收机制。
由上述描述可知,在进行第二测试数据的写入过程中,一旦监测到待测试存储器掉电,立即保存掉电前最后一个写入成功的逻辑数据块的地址,待待测试存储器重新上电后,基于保存的地址继续执行第二测试数据的写入,实现在待测试存储器上电状态下垃圾回收机制的持续进行,一方面保证了第二测试数据的正常写入,避免异常掉电对其产生的影响,另一方面通过保证第二测试数据的正常写入确保待测试存储器上电状态下垃圾回收机制的持续进行,从而实现对垃圾回收机制的有效测试。
进一步的,还包括:
保存所述连接的待测试存储器的设备路径、第一VID值以及第一PID值;
所述对所述待测试存储器的实时状态进行监测包括:
监测预设的USB接口,当接收到从所述预设的USB接口发送来的存储器掉电信号时,根据所述存储器掉电信号,确定其对应的掉电的存储器的第二VID值和第二PID值;
判断所述第二VID值和第二PID值是否分别等于所述第一VID值和第一PID值,若是,则判断所述待测试存储器掉电;若否,则返回执行监测预设的USB接口的步骤;
当接收到从所述预设的USB接口发送来的存储器上电信号时,根据所述存储器上电信号,确定其对应的上电的存储器的第三VID值和第三PID值;
判断所述第三VID值和第三PID值是否分别等于所述第一VID值和第一PID值,若是,则判断所述待测试存储器重新上电,并根据保存的所述设备路径重新连接所述待测试存储器;若否,则返回执行监测预设的USB接口的步骤。
由上述描述可知,通过对预设USB接口的监测,根据连接到预设USB接口的外部存储器的VID值和PID值能够确定其是否为待测试存储器,当确定为待测试存储器时,基于预先存储的待测试存储器的设备路径能够重新连接待测试存储器以进行后续的进一步操作,保证后续操作的有序、顺利进行。
进一步的,还包括接收待测试设备添加请求,所述待测试设备添加请求包括添加的待测试设备的VID值和PID值;
根据所述待测试设备添加请求,将其对应的VID值和PID值进行保存。
由上述描述可知,通过待测试设备添加请求能够动态添加要进行测试的存储器,灵活方便。
进一步的,所述第一测试数据包括连续的数据以及不连续的数据,所述不连续的数据包括分割开的多个预设大小的数据块。
由上述描述可知,通过构造包括连续和不连续的数据,能够模拟真实的环境,使得测试更加真实可靠。
进一步的,还包括接收日志保存请求,根据所述日志保存请求保存测试过程中打印的日志。
由上述描述可知通过对测试过程中打印的日志进行保存,方便后续追踪查看,提高测试的灵活度。
请参照图2,本发明另一实施例提供了一种存储器的掉电测试装置,包括:
数据写入模块,用于接收第一测试数据写入请求,根据所述第一测试数据写入请求将所述第一测试数据写入已连接的未格式化的待测试存储器,在写入所述第一测试数据的过程中,所述待测试存储器保持上电状态;
监测模块,用于当接收到所述第一测试数据写入完成的信号后,对所述待测试存储器的实时状态进行监测,在所述监测过程中,当所述待测试存储器处于上电状态下,触发所述待测试存储器始终执行垃圾回收机制;
当监测到所述待测试存储器掉电时,保存所述待测试存储器的第一检测状态;
当监测到所述待测试存储器重新上电时,根据所述第一检测状态继续触发所述待测试存储器继续执行垃圾回收机制;
检验模块,用于判断是否接收到校验请求,若是,对所述第一测试数据进行校验,若否,返回执行对所述待测试存储器的实时状态进行监测的步骤。
本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述存储器的掉电测试方法中的各个步骤。
请参照图3,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述存储器的掉电测试方法中的各个步骤。
本发明上述存储器的掉电测试方法、装置、可读存储介质及电子设备可以应用于任何类型的需要检测存储器中GC算法的性能的外部存储器,下面通过具体的实施方式进行说明:
实施例一
请参照图1,一种存储器的掉电测试方法,包括步骤:
接收第一测试数据写入请求,根据所述第一测试数据写入请求将所述第一测试数据写入已连接的未格式化的待测试存储器,在写入所述第一测试数据的过程中,所述待测试存储器保持上电状态;
其中,第一测试数据写入请求中包含写入的第一测试数据的大小、分配写入的LBA(Logic Block Address)起始地址以及写入的LBA长度;
为了模拟真实环境,所述第一测试数据包括连续的数据以及不连续的数据,所述不连续的数据包括分割开的多个预设大小的数据块,比如可以设置连续的数据是大小为512M的连续的一段数据,不连续的数据是分割为多个单位大小为64K的数据,不连续的数据总量也为512M;
该第一测试数据存储在待测试的存储器的固定位置,其大小可以根据待测试存储器的容量进行动态设置;
当接收到所述第一测试数据写入完成的信号后,对所述待测试存储器的实时状态进行监测,在所述监测过程中,当所述待测试存储器处于上电状态下,触发所述待测试存储器始终执行垃圾回收机制;
当监测到所述待测试存储器掉电时,保存所述待测试存储器的第一检测状态;
当监测到所述待测试存储器重新上电时,根据所述第一检测状态继续触发所述待测试存储器继续执行垃圾回收机制;
其中,通过调取Windows函数来对预设的USB接口进行监测;
在连接到待测试存储器时或这在将第一测试数据写入待测试存储器的过程中,对待测试存储器的的设备路径、第一VID值以及第一PID值进行保存;
当通过Windows函数捕捉到有USB设备从预设的USB接口拔下时,会接收到从预设的USB接口发送的USB设备掉电信号,该掉电信号中包含拔下的USB设备的第二VID值和第二PID值;
判断所述第二VID值和第二PID值是否分别等于所述第一VID值和第一PID值,若是,则判断所述USB设备为待测试存储器掉电;若否,则返回执行监测预设的USB接口的步骤;
当通过Windows函数捕捉到有USB设备从预设的USB接口插上时,会接收到从所述预设的USB接口发送来的USB设备上电信号,该上电信号包含插上的USB设备的第三VID值和第三PID值;
判断所述第三VID值和第三PID值是否分别等于所述第一VID值和第一PID值,若是,则判断所述待测试存储器重新上电,并根据保存的所述设备路径重新连接所述待测试存储器;若否,则返回执行监测预设的USB接口的步骤;
其中,为了支持扩展对新的存储器的测试,在一个可选的实施方式中,还包括:
接收待测试设备添加请求,所述待测试设备添加请求包括添加的待测试设备的VID值和PID值;
根据所述待测试设备添加请求,将其对应的VID值和PID值进行保存;
在另一个可选的实施方式中,还包括:
接收待测试设备删除请求,所述待测试设备删除请求包括要删除的待测试设备的VID值和PID值;
根据所述待测试设备删除请求,将其对应的VID值和PID值进行删除;
在另一个可选的实施方式中,还包括:
接收待测试设备修改请求,所述待测试设备修改请求包括要修改的待测试设备的VID值和PID值以及修改后的待测试设备的VID值和PID值;
根据所述待测试设备修改请求,将要修改的待测试设备的VID值和PID值修改为修改后的待测试设备的VID值和PID值;
判断是否接收到校验请求,若是,对所述第一测试数据进行校验,若否,返回执行对所述待测试存储器的实时状态进行监测的步骤;
其中,可以从第一测试数据写入的地址中读取出第一测试数据,然后与之前写入的第一测试数据进行比较,判断是否相同,如果相同,则说明GC算法性能稳定,没有因为突然掉电而导致数据错误,如果不同,则说明GC算法存在一定的不稳定性;
校验过程可以根据需要设置为定时校验、重新上电后校验或手动校验;
如果经过预设时间段的掉电测试后待测试存储器仍可正常断电、上电、测试并且数据校验没有出现错误,则证明针对该待测试存储器应对意外掉电的上述测试算法足够可靠;
在另一个可选的实施方式中,还包括接收日志保存请求,根据所述日志保存请求保存测试过程中打印的日志。
实施例二
本实施例进一步限定了如何触发所述待测试存储器执行垃圾回收机制,具体的:
接收第二测试数据写入请求,根据所述第二测试数据写入请求将所述第二测试数据持续写入所述待测试存储器,使得所述待测试存储器始终执行垃圾回收机制,所述第二测试数据的写入地址与所述第一测试数据的写入地址不同;
可以设置写入的数据量超过一阈值,超过该阈值的数据写入能够触发待测试存储器执行垃圾回收机制;
所述保存所述待测试存储器的第一检测状态包括:
保存所述待测试存储器掉电之前最后一个写入成功的逻辑数据块的地址;
在第二测试数据写入的过程中,每成功写入一笔数据(比如每笔数据大小为128K或64K),会自动记录该笔数据的最后一个地址,则当掉电时,读取掉电之前最后一笔成功写入的数据的最后一个地址,即是待测试存储器掉电之前最后一个写入成功的逻辑数据块的地址;
其中,仅用一个全局变量来记录上述地址值,即当有新的一笔数据成功写入后,则上一笔成功写入的数据的最后一个地址就会被当前新的一笔数据的最后一个地址替换;
所述根据所述第一检测状态继续触发所述待测试存储器继续执行垃圾回收机制包括:
根据所述保存的逻辑数据块的地址在所述待测试存储器的所述保存的逻辑数据块的地址之后继续写入所述第二测试数据,使得所述待测试存储器继续执行垃圾回收机制。
任何能够促发待测试存储器执行垃圾回收机制的方法都可以,并不局限于本实施例所举的方式。
实施例三
请参照图2,一种存储器的掉电测试装置,包括:
数据写入模块,用于接收第一测试数据写入请求,根据所述第一测试数据写入请求将所述第一测试数据写入已连接的未格式化的待测试存储器,在写入所述第一测试数据的过程中,所述待测试存储器保持上电状态;
监测模块,用于当接收到所述第一测试数据写入完成的信号后,对所述待测试存储器的实时状态进行监测,在所述监测过程中,当所述待测试存储器处于上电状态下,触发所述待测试存储器始终执行垃圾回收机制;
当监测到所述待测试存储器掉电时,保存所述待测试存储器的第一检测状态;
当监测到所述待测试存储器重新上电时,根据所述第一检测状态继续触发所述待测试存储器继续执行垃圾回收机制;
检验模块,用于判断是否接收到校验请求,若是,对所述第一测试数据进行校验,若否,返回执行对所述待测试存储器的实时状态进行监测的步骤。
实施例四
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例一至三中任一个所述的存储器的掉电测试方法中的各个步骤。
实施例五
请参照图3,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述实施例一至三中任一个所述的存储器的掉电测试方法中的各个步骤。
实施例六
本实施例将上述存储器的掉电测试方法应用于具体的场景中:
如图4所示,通过一测试软件来实现上述存储器的掉电测试方法,在外部存储器随时可能掉电、上电的情况下,通过测试软件监视外部存储器的状态并及时做出响应,即测试软件在外部存储器掉电时能够记录当前的测试状态,在外部存储器上电时能够根据之前存储的测试状态重新开启测试流程,具体的:
本测试软件基于MFC框架进行开发,包括第一测试数据的写入、第二测试数据的写入以及第一测试数据的校验三个模块,通过三个线程来完成;
在实际应用过程中,用户先启动测试软件,通过测试软件界面的用于设置写入的第一测试数据的输入框输入写入的第一测试数据的大小、分配写入的LBA起始地址以及写入的LBA长度,其中,分配写入的LBA起始地址是固定的,即将第一测试数据写入待测试存储器的固定位置,如果多次写入第一测试数据,则会覆盖之前的数据,第一测试数据可以模拟待测试存储器中的固件代码;
第一测试数据的写入设置完成后,通过测试软件连接一个未格式化的待测试存储器;
然后用户点击测试软件上的写入按钮,则测试软件就会触发一个写入数据的线程函数AfxBeginThread(),通过该线程函数获取窗口控件中用户输入的写入的第一测试数据的大小、分配写入的LBA起始地址以及写入的LBA长度;
其中,为了模拟真实环境,可以将写入的第一测试数据分割成大大小小许多块,比如,要写入1G数据,可以在写入线程中将其分割如下:
一段连续的512M的数据;
一段不连续的,分割为许多单位大小为64K的数据,该数据总量也为512M;
在要写入的数据配置好参数后,写入线程会根据用户设置的分配写入的LBA起始地址以及写入的LBA长度对写入数据的格式进行配置,然后保存在预设的缓存区;再调用SCSI写函数进行数据写入的配置,最后使用DeviceIoControl()函数将SCSI写函数配置的参数直接发送待测试存储器的驱动程序,此时缓存区中的数据就会被持续的写入待测试存储器中;
在该过程中,测试软件会将待测试存储器的设备路径、VID值和PID值进行存储;
在整个第一测试数据写入的过程中,要保证待测试存储器处于上电状态;
在第一测试数据写入完成后,测试软件开始对其所在的设备(比如PC)的USB接口进行监测,以对其连接的USB设备的连接状态(上电状态、掉电状态)进行实时监测,具体的,可以通过调取Windows函数(监测移动设备的函数OnDeviceChange())进行监视;
通过OnDeviceChange()函数,当监测到有USB设备从PC的USB接口拔下时,其能够即时监测到,并获取该拔下的USB设备的VID值和PID值,则将获取的拔下的USB设备的VID值和PID值与存储的待测试存储器的VID值和PID值进行比对,如果均相同,则为待测试存储器,如果不同,则不是待测试存储,继续返回对PC机的USB接口的监测直至测试软件关闭;
当监测到有USB设备从PC的USB接口插上时,获取该插上的USB设备的VID值和PID值,将该插上的USB设备的VID值和PID值与存储的待测试存储器的VID值和PID值进行比对,如果均相同,则为待测试存储器,表示待测试存储器已连接,此时根据存储的待测试存储器的设备路径重新连接待测试设备,否则,返回继续监测PC上的USB接口直至测试软件关闭;
当第一测试数据写入完毕后,并且待测试存储器处于上电状态下,则测试软件根据接收的第二测试数据写入请求,持续不断地向待测试存储器写入数据,写入的数据超过阈值,超过该阈值的数据写入能够触发待测试存储器始终执行GC算法,即执行垃圾回收机制;
如果监测到待测试存储器从PC的USB接口拔下时,即掉电时,测试软件会记录当前第二测试数据写入成功的最后一个地址,即测试软件保存断电前最后一个写入成功的LBA的地址,当有新的数据写入时,这个地址会被更新,也就是说,是通过一个全局变量来记录这个地址值,每成功写入一笔数据(比如128K大小的数据),这个全局变量就会记录下来写入成功的最后一个LBA地址值,随着一笔一笔数据的成功写入,该全局变量就会不断的更新;而当待测试设备重新连接后,测试软件会读取记录的掉电前最后一个成功写入的LBA地址值,并紧跟其后继续写入第二测试数据;
第二测试数据模拟的是存储器需要保存的数据,其与第一测试数据的存储位置不同且互不影响,并不会覆盖写入的第一测试数据;
测试软件上还设置有校验按钮,当待测试设备重新上电并连接后,测试软件判断是否校验按钮被点击,若是,则对第一测试数据进行校验,否则,根据之前存储的掉电前写入成功的最后一个LBA地址继续执行第二测试数据的写入;
如果监测到待测试存储器再次断开,则测试软件继续返回执行对PC上的USB接口的实时检测步骤;
测试软件上还设置有“save log”按钮,用户可以随时点击该按钮来保存测试过程中打印的日志,该日志文件保存在测试软件所在的路径下。
综上所述,本发明提供的一种存储器的掉电测试方法、装置、计算机可读存储介质及电子设备,基于测试软件先在待测试存储器中写入第一测试数据,然后对待测试存储器的实时状态进行监测,在监测过程中,如果待测试存储器处于上电状态下,则触发待测试存储器始终执行垃圾回收机制,并且如果一旦监测到待测试存储器掉电,即对其掉电前的第一检测状态进行保存,待其上电后,基于保存的第一检测状态继续触发待检测存储器继续执行垃圾回收机制,当接收到校验请求时,对第一测试数据进行校验,通过对第一测试数据的校验能够实现对GC算法性能的自动化测试,不仅能够保证普通读写测试不因意外或主动掉电而受到影响,而且可以有效检测待测试存储器应对异常掉电情况下的GC算法的可靠性和稳定性。
在本申请所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种存储器的掉电测试方法,其特征在于,包括步骤:
接收第一测试数据写入请求,根据所述第一测试数据写入请求将所述第一测试数据写入已连接的未格式化的待测试存储器,在写入所述第一测试数据的过程中,所述待测试存储器保持上电状态;
当接收到所述第一测试数据写入完成的信号后,对所述待测试存储器的实时状态进行监测,在所述监测过程中,当所述待测试存储器处于上电状态下,触发所述待测试存储器始终执行垃圾回收机制;
当监测到所述待测试存储器掉电时,保存所述待测试存储器的第一检测状态;
当监测到所述待测试存储器重新上电时,根据所述第一检测状态继续触发所述待测试存储器继续执行垃圾回收机制;
判断是否接收到校验请求,若是,对所述第一测试数据进行校验,若否,返回执行对所述待测试存储器的实时状态进行监测的步骤。
2.根据权利要求1所述的一种存储器的掉电测试方法,其特征在于,所述触发所述待测试存储器始终执行垃圾回收机制包括:
接收第二测试数据写入请求,根据所述第二测试数据写入请求将所述第二测试数据持续写入所述待测试存储器,使得所述待测试存储器始终执行垃圾回收机制,所述第二测试数据的写入地址与所述第一测试数据的写入地址不同。
3.根据权利要求2所述的一种存储器的掉电测试方法,其特征在于,所述保存所述待测试存储器的第一检测状态包括:
保存所述待测试存储器掉电之前最后一个写入成功的逻辑数据块的地址;
所述根据所述第一检测状态继续触发所述待测试存储器继续执行垃圾回收机制包括:
根据所述保存的逻辑数据块的地址在所述待测试存储器的所述保存的逻辑数据块的地址之后继续写入所述第二测试数据,使得所述待测试存储器继续执行垃圾回收机制。
4.根据权利要求1至3中任一项所述的一种存储器的掉电测试方法,其特征在于,还包括:
保存所述连接的待测试存储器的设备路径、第一VID值以及第一PID值;
所述对所述待测试存储器的实时状态进行监测包括:
监测预设的USB接口,当接收到从所述预设的USB接口发送来的存储器掉电信号时,根据所述存储器掉电信号,确定其对应的掉电的存储器的第二VID值和第二PID值;
判断所述第二VID值和第二PID值是否分别等于所述第一VID值和第一PID值,若是,则判断所述待测试存储器掉电;若否,则返回执行监测预设的USB接口的步骤;
当接收到从所述预设的USB接口发送来的存储器上电信号时,根据所述存储器上电信号,确定其对应的上电的存储器的第三VID值和第三PID值;
判断所述第三VID值和第三PID值是否分别等于所述第一VID值和第一PID值,若是,则判断所述待测试存储器重新上电,并根据保存的所述设备路径重新连接所述待测试存储器;若否,则返回执行监测预设的USB接口的步骤。
5.根据权利要求4所述的一种存储器的掉电测试方法,其特征在于,还包括接收待测试设备添加请求,所述待测试设备添加请求包括添加的待测试设备的VID值和PID值;
根据所述待测试设备添加请求,将其对应的VID值和PID值进行保存。
6.根据权利要求1至3中任一项所述的一种存储器的掉电测试方法,其特征在于,所述第一测试数据包括连续的数据以及不连续的数据,所述不连续的数据包括分割开的多个预设大小的数据块。
7.根据权利要求1至3中任一项所述的一种存储器的掉电测试方法,其特征在于,还包括接收日志保存请求,根据所述日志保存请求保存测试过程中打印的日志。
8.一种存储器的掉电测试装置,其特征在于,包括:
数据写入模块,用于接收第一测试数据写入请求,根据所述第一测试数据写入请求将所述第一测试数据写入已连接的未格式化的待测试存储器,在写入所述第一测试数据的过程中,所述待测试存储器保持上电状态;
监测模块,用于当接收到所述第一测试数据写入完成的信号后,对所述待测试存储器的实时状态进行监测,在所述监测过程中,当所述待测试存储器处于上电状态下,触发所述待测试存储器始终执行垃圾回收机制;
当监测到所述待测试存储器掉电时,保存所述待测试存储器的第一检测状态;
当监测到所述待测试存储器重新上电时,根据所述第一检测状态继续触发所述待测试存储器继续执行垃圾回收机制;
检验模块,用于判断是否接收到校验请求,若是,对所述第一测试数据进行校验,若否,返回执行对所述待测试存储器的实时状态进行监测的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-7任意一项所述的一种存储器的掉电测试方法中的各个步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-7任意一项所述的一种存储器的掉电测试方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010894417.2A CN112017723B (zh) | 2020-08-31 | 2020-08-31 | 存储器的掉电测试方法、装置、可读存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010894417.2A CN112017723B (zh) | 2020-08-31 | 2020-08-31 | 存储器的掉电测试方法、装置、可读存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112017723A CN112017723A (zh) | 2020-12-01 |
CN112017723B true CN112017723B (zh) | 2022-11-15 |
Family
ID=73503881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010894417.2A Active CN112017723B (zh) | 2020-08-31 | 2020-08-31 | 存储器的掉电测试方法、装置、可读存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112017723B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112579371B (zh) * | 2020-12-03 | 2024-06-18 | 中山市江波龙电子有限公司 | 存储装置的测试方法、测试装置、测试*** |
CN112905445A (zh) * | 2020-12-09 | 2021-06-04 | 江苏苏宁云计算有限公司 | 一种基于日志的测试方法、装置及计算机*** |
CN113257330B (zh) * | 2021-06-23 | 2021-10-01 | 北京智芯半导体科技有限公司 | 存储装置掉电保护的测试方法、测试装置以及存储介质 |
CN113960391A (zh) * | 2021-09-13 | 2022-01-21 | 珠海亿智电子科技有限公司 | 存储介质异常掉电测试装置及方法 |
CN113835970B (zh) * | 2021-10-09 | 2022-05-10 | 南阳理工学院 | 一种计算机存储器优化装置及其优化方法 |
CN116719675B (zh) * | 2023-05-06 | 2024-05-07 | 深圳市晶存科技有限公司 | 硬盘磨损测试方法、装置及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004706A (zh) * | 2009-09-01 | 2011-04-06 | 联芯科技有限公司 | 一种基于ftl的闪存擦写掉电保护方法 |
CN108733575A (zh) * | 2017-04-20 | 2018-11-02 | 立而鼎科技(深圳)有限公司 | 一种断电重启后逻辑对物理映像表的重建方法、固态硬盘 |
CN108874574A (zh) * | 2018-05-31 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种垃圾回收处理方法及相关装置 |
CN109189605A (zh) * | 2018-07-23 | 2019-01-11 | 杭州电子科技大学 | 一种固态硬盘掉电保护方法 |
CN110058795A (zh) * | 2018-01-19 | 2019-07-26 | 慧荣科技股份有限公司 | 管理闪存模块的方法及相关的闪存控制器及电子装置 |
CN111324289A (zh) * | 2018-12-14 | 2020-06-23 | 北京兆易创新科技股份有限公司 | 一种存储器 |
-
2020
- 2020-08-31 CN CN202010894417.2A patent/CN112017723B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004706A (zh) * | 2009-09-01 | 2011-04-06 | 联芯科技有限公司 | 一种基于ftl的闪存擦写掉电保护方法 |
CN108733575A (zh) * | 2017-04-20 | 2018-11-02 | 立而鼎科技(深圳)有限公司 | 一种断电重启后逻辑对物理映像表的重建方法、固态硬盘 |
CN110058795A (zh) * | 2018-01-19 | 2019-07-26 | 慧荣科技股份有限公司 | 管理闪存模块的方法及相关的闪存控制器及电子装置 |
CN108874574A (zh) * | 2018-05-31 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种垃圾回收处理方法及相关装置 |
CN109189605A (zh) * | 2018-07-23 | 2019-01-11 | 杭州电子科技大学 | 一种固态硬盘掉电保护方法 |
CN111324289A (zh) * | 2018-12-14 | 2020-06-23 | 北京兆易创新科技股份有限公司 | 一种存储器 |
Also Published As
Publication number | Publication date |
---|---|
CN112017723A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112017723B (zh) | 存储器的掉电测试方法、装置、可读存储介质及电子设备 | |
US8793532B1 (en) | Hard-disk drive work load profiling and capturing systems and methods | |
CN111078515B (zh) | Ssd分层日志记录方法、装置、计算机设备及存储介质 | |
CN116340076B (zh) | 硬盘性能测试方法、装置及介质 | |
CN109542341B (zh) | 一种读写io监测方法、装置、终端及计算机可读存储介质 | |
CN108897657B (zh) | 一种面向ssd仿真平台错误注入方法及相关装置 | |
CN114155906A (zh) | 一种数据块修复方法、装置、设备及存储介质 | |
CN113590405A (zh) | 硬盘错误的检测方法、装置、存储介质和电子装置 | |
CN113204456A (zh) | 一种服务器vpp接口的测试方法、治具、装置及设备 | |
US20110202903A1 (en) | Apparatus and method for debugging a shared library | |
CN110990207B (zh) | 基于Whitley平台的BPS内存测试方法、***、终端及存储介质 | |
WO2024124862A1 (zh) | 基于服务器的内存处理方法和装置、处理器及电子设备 | |
CN116627737A (zh) | 一种硬盘测试方法、装置、设备及介质 | |
CN110008105A (zh) | 一种bmc时间保留方法、装置及电子设备和存储介质 | |
CN108009039B (zh) | 终端信息的记录方法、装置、存储介质及电子设备 | |
CN115562588A (zh) | 虚拟磁盘阵列配置方法、装置、计算机设备及存储介质 | |
US10922023B2 (en) | Method for accessing code SRAM and electronic device | |
CN114791868B (zh) | 故障类型检测方法、装置、计算机设备及可读存储介质 | |
CN112286804B (zh) | ***的调试方法、装置、设备和介质 | |
CN112579371B (zh) | 存储装置的测试方法、测试装置、测试*** | |
TWI700579B (zh) | 儲存裝置測試系統及儲存裝置測試方法 | |
KR20170138368A (ko) | 컴퓨터 시스템에 포함된 하드웨어의 에러 발생 여부를 통합적으로 관리하여 백업 및 복구를 수행하여 외부 단말에 알리는 방법 | |
CN115934395A (zh) | 固态硬盘的故障注入方法、装置、计算机设备及存储介质 | |
CN115798530A (zh) | 一种掉电保护所需电容容量的测量方法及装置 | |
CN117992294A (zh) | 基于Emulator仿真平台的固态硬盘预埋测试方法、装置、设备及介质 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 518000 floors 1-3 and 4 of buildings 4 and 8, zone 2, Zhongguan honghualing Industrial South Zone, No. 1213 Liuxian Avenue, Pingshan community, Taoyuan Street, Nanshan District, Shenzhen, Guangdong Applicant after: BIWIN STORAGE TECHNOLOGY Co.,Ltd. Address before: 518000 1st, 2nd, 4th and 6th floors of No.4 factory building of tongfuyu industrial city, Taoyuan Street, Nanshan District, Shenzhen City, Guangdong Province Applicant before: BIWIN STORAGE TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |