掌桥专利:专业的专利平台
掌桥专利
首页

存储芯片随机磨损测试方法、装置及其存储介质

文献发布时间:2024-04-18 19:57:31


存储芯片随机磨损测试方法、装置及其存储介质

技术领域

本发明涉及芯片测试技术领域,尤其是一种存储芯片随机磨损测试方法、装置及其存储介质。

背景技术

在存储芯片的数据保持性能测试过程中,为了保证测试的准确性,需要使芯片所有区域都达到指定的寿命前期、中期或后期的磨损程度。由于这个过程耗时较长,影响了存储芯片的测试效率。为了缩短测试时间,每颗芯片的每种磨损等级所选的区域,往往都是固定的、相同的一小块区域。但是,由于存储芯片不同区域数据保持性能不一致,只选取一小块区域进行测试,可能存在偶然性,不能完全反映出存储芯片的真实性能,也无法保证存储芯片的测试准确性。

发明内容

为解决上述问题,本发明的目的在于提供一种存储芯片随机磨损测试方法、装置及其存储介质,通过根据标识符分配存储芯片的测试存储块,按照不同的磨损等级对测试存储块进行磨损测试,能快速地得到磨损等级确定的磨损存储块,并精准地得到存储芯片的性能结果,提高存储芯片的测试准确性。

本发明解决其问题所采用的技术方案是:

第一方面,本申请实施例提供一种存储芯片随机磨损测试方法,所述方法包括:读取存储芯片的标识符,并根据所述标识符分配所述存储芯片的测试存储块;按照不同的磨损等级对所述测试存储块进行磨损测试,得到磨损存储块;读取所述磨损存储块的磨损参数,其中,所述磨损参数包括所述磨损存储块的磨损等级和擦除次数;根据所述磨损参数对所述磨损存储块进行数据保持测试,得到所述存储芯片的性能结果。

第二方面,本申请实施例提供一种存储芯片随机磨损测试装置,包括:分配模块,用于读取存储芯片的标识符,并根据所述标识符分配所述存储芯片的测试存储块;测试模块,用于按照不同的磨损等级对所述测试存储块进行磨损测试,得到磨损存储块;读取模块,用于读取所述磨损存储块的磨损参数,其中,所述磨损参数包括所述磨损存储块的磨损等级和擦除次数;性能模块,用于根据所述磨损参数对所述磨损存储块进行数据保持测试,得到所述存储芯片的性能结果。

第三方面,本申请实施例提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的存储芯片随机磨损测试方法。

第四方面,本申请实施例提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,实现如上所述的存储芯片随机磨损测试方法。

本申请实施例,通过读取存储芯片的标识符,并根据标识符分配存储芯片的测试存储块;按照不同的磨损等级对测试存储块进行磨损测试,得到磨损存储块;读取磨损存储块的磨损参数,其中,磨损参数包括磨损存储块的磨损等级和擦除次数;根据磨损参数对磨损存储块进行数据保持测试,得到存储芯片的性能结果,能快速地得到磨损等级确定的磨损存储块,并精准地得到存储芯片的性能结果,提高存储芯片的测试准确性。

本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

图1为本发明实施例一种存储芯片随机磨损测试方法的流程图;

图2为图1中步骤S1000的流程图;

图3为图2中步骤S1300的流程图;

图4为图1中步骤S2000的流程图;

图5为图4中步骤S2200的流程图;

图6为图1中步骤S3000的流程图;

图7为图1中步骤S4000的流程图;

图8为本发明实施例一种存储芯片随机磨损测试装置的结构图;

图9是本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。

本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。

本发明实施例涉及的存储芯片随机磨损测试方法及其装置,是基于快闪存储器(flash memory)的测试方法。其中,快闪存储器是一种电子式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器。闪存技术主要用于一般性数据存储,以及在计算机与其他数字产品间交换传输数据,如储存卡与U盘。闪存是一种特殊的、以宏块抹写的可擦除可编程只读存储器(Erasable Programmable Read-Only Memory EPROM)。早期的闪存进行一次抹除,就会清除掉整颗芯片上的数据。由于闪存在没有电流供应的条件下也能够长久地保持数据,因此可以适用于电子设备存储模块等的数据存储,以使得这些模块在掉电重启后数据不会遗失。对于不同厂家生产的闪存而言,每一个闪存都具有一个对应的擦写次数限制,该擦写次数限制将决定电子设备存储模块等的使用寿命。因此对于闪存的擦写次数的测试尤为重要。

然而,在实际测试过程中,在存储芯片的数据保持性能测试过程中,为了保证测试的准确性,需要使芯片所有区域都达到指定的寿命前期、中期或后期的磨损程度。由于这个过程耗时较长,影响了存储芯片的测试效率。为了缩短测试时间,每颗芯片的每种磨损等级所选的区域,往往都是固定的、相同的一小块区域。但是,由于存储芯片不同区域数据保持性能不一致,只选取一小块区域进行测试,可能存在偶然性,不能完全反映出存储芯片的真实性能。

基于以上,本发明实施例提供一种存储芯片随机磨损测试方法、装置及其存储介质,通过根据标识符分配存储芯片的测试存储块,按照不同的磨损等级对测试存储块进行磨损测试,能快速地得到磨损等级确定的磨损存储块,并精准地得到存储芯片的性能结果,提高存储芯片的测试准确性。

请参见图1,图1示出了本发明实施例提供的一种存储芯片随机磨损测试方法的流程。

如图1所示,本发明实施例的存储芯片随机磨损测试方法包括以下步骤:

步骤S1000、读取存储芯片的标识符,并根据标识符分配存储芯片的测试存储块。

可以理解的是,NAND(Not AND)闪存是一种比硬盘驱动器更好的存储设备,在不超过4GB的低容量应用中表现得尤为明显。随着人们持续追求功耗更低、重量更轻和性能更佳的产品,NAND被证明极具吸引力。NAND闪存是一种非易失性存储技术,即断电后仍能保存数据。在本申请实施例中,以NAND作为例子,对其进行随机磨损测试,以得到NAND闪存的精准的性能测试结果。

可以理解的是,与磁性的硬盘有机械硬盘(Hard Disk Drive,HDD)不同,NAND必须处于数据可以被写入的状态,没有HDD所具有的"位写入"(write-in-place)功能。如果数据已经被写在NAND上,那么该数据必须被擦除NAND才能接受新的数据。其中,擦除是一个破环薄层材质的过程。NAND记忆体实质上由被称为页(page)和区块(block)的两类结构组成。每页最常见是4/2KB,代表一个读取和写入单元;多个页组成32/128KB或者128/512KB的区块。NAND读取和写入是在页的级别上被执行的,擦除是在区块级别上被执行的。

可以理解的是,现有的存储芯片测试方法中,为了节省测试时间和降低能耗,往往对存储芯片中固定的区域进行读写操作,测试过程存在偶然性,也影响测试结果的准确性。因此,需要通过对存储芯片的测试存储块进行随机分配,以保证测试过程的严谨性。

请参见图2,图2示出了上述步骤S1000的另一实施例的具体实现过程示意图。如图2所示,步骤S1000至少包括以下步骤:

步骤S1100、读取存储芯片的标识符。

可以理解的是,NAND的标识符即通用唯一识别码(Universally UniqueIdentifier,UUID),是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。其目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。此外,UUID是一个128比特的数值,这个数值可以通过一定的算法计算出来。

可以理解的是,在不同的场景下,能通过对应的指令直接获取存储芯片的标识符。例如,在android下能直接通过读取cat/sys/block/mmcblkx/device/cid来获取NAND的UUID。其中,通过现有的指令获取存储芯片的标识符属于现有技术,此处不再赘述。

步骤S1200、将存储芯片的标识符输入随机函数中,得到随机生成的存储芯片的存储块的序号。

可以理解的是,在获取存储芯片的标识后,需要存储芯片的标识符输入随机函数进行计算,得到存储芯片的存储块的序号。其中,由于NAND的UUID是唯一的,因此,经过随机函数计算后,得到的存储块的序号也是具有随机性和唯一性。

可以理解的是,在android下能通过导入随机(random)模块,然后通过random静态对象调用该方法。其中,random库包含两类函数,常用的有8个:基本随机函数:seed(),random()扩展随机函数:randint(),randrange(),shuffle(),uniform(),choice(),getrandbits()。在实际应用中,能根据存储芯片的容量和测试需求,利用随机函数输出对应的存储块的序号。示例性的,获取的NAND的UUID为ec0f4a56510343630323138dd316,通过随机函数输出随机数426,则存储芯片的存储块的序号以426为准。

请参见图3,图3示出了上述步骤S1200的另一实施例的具体实现过程示意图。如图3所示,步骤S1200至少包括以下步骤:

步骤S1210、根据存储块的序号,得到测试存储块的起始序号。

可以理解的是,为了保证存储芯片中参与测试的存储块的随机性,以上述步骤获取的随机生成的存储芯片的存储块的序号作为测试存储块的起始序号。如上步骤通过随机函数输出随机数为426,即测试存储块的起始序号为426。

步骤S1220、根据读取数据的大小和测试存储块的起始序号,得到测试存储块的终止序号。

可以理解的是,为了确定测试存储块,还需要根据读取数据的大小确定测试存储块的终止序号,以保证进行磨损测试的统一性和精准性。示例性的,读取数据的大小占用10个测试存储块,则进行测试存储块的序号为426-435,即在后续的磨损测试中,需要对存储芯片中第426至435的测试存储块进行相对应的磨损测试。

步骤S1300、根据存储块的序号,得到存储芯片的测试存储块。

可以理解的是,在获取存储块的序号后,为了使测试过程中各个测试存储块能精准地进行磨损测试,需要记录存储块的序号,并将存储块的序号对应的存储块标记为测试存储块。其中,通过存储块的序号,得到存储芯片的测试存储块能通过现有的指令实现,此处不再赘述。

步骤S2000、按照不同的磨损等级对测试存储块进行磨损测试,得到磨损存储块。

可以理解的是,为了保证存储芯片的读写测试结果更加精准,需要使存储芯片所有区域都达到指定的磨损程度。具体地,把磨损等级分为寿命前期、寿命中期和寿命后期的磨损程度。其中,不同的磨损程度的划分,是以测试存储块的擦除次数所在的范围为准。

可以理解的是,由于固态硬盘(Solid State Disk,ssd)没有重写机制,若要对写满的page写入新的数据,ssd需要对已经写入的数据进行擦除操作,而擦除操作的最小单元是由若干个page组成的block。但是每个block可执行有限次数的擦除操作,也称之为pe(program erase,编程擦除)周期,当写入非常频繁时,擦除操作发生得更频繁。现有技术中存在block的pe次数过大的情况,从而导致block本身受损失效,进而影响ssd的使用寿命。因此,根据测试需求,对存储芯片不同存储块进行磨损测试,以达到预设的磨损程度。

请参见图4,图4示出了上述步骤S2000的另一实施例的具体实现过程示意图。如图4所示,步骤S2000至少包括以下步骤:

步骤S2100、将磨损等级按照测试存储块的起始序号进行分配。

可以理解的是,在获取测试存储块的序号后,按照预设的磨损等级对测试存储块进行分配,为了提高测试效率和测试结果的精准性,能按照测试存储块的起始序号分配磨损等级。具体地,通过对测试存储块的起始序号进行排序,把磨损等级匹配到对应的测试存储块。

步骤S2200、按照已分配的磨损等级,对测试存储块进行磨损测试。

可以理解的是,由上述步骤获取测试存储块及其磨损等级后,就能对该测试存储块进行对应的磨损测试。由上可知,根据磨损等级,对存储芯片不同存储块进行不同次数的磨损测试,以达到预设的磨损程度。因此,在获取测试存储块以及已分配的磨损等级,能通过脚本指令快速地对测试存储块进行对应的磨损测试。

请参见图5,图5示出了上述步骤S2200的另一实施例的具体实现过程示意图。如图5所示,步骤S2200至少包括以下步骤:

步骤S2210、获取磨损等级对应的数据擦除次数。

可以理解的是,不同的磨损等级代表了测试存储块完成了不同次数的数据擦除操作,并反应出测试存储块的剩余数据擦除次数,即使用寿命。具体地,在实际测试过程中,把磨损等级划分为16个等级,其数据擦除次数分别为300、1000、1500、2000、2500、3000、3500、4000、4500、10000、20000、25000、30000、35000、40000、45000。

步骤S2220、根据数据擦除次数,对测试存储块进行数据擦除操作。

可以理解的是,在获取磨损等级对应的数据擦除次数后,由上述步骤可知,各个测试存储块分配有对应的磨损等级,因此,能对测试存储块进行与磨损等级对应的数据擦除次数的数据擦除操作。具体地,对于上述步骤序号为426-435的第1磨损等级测试存储块,对其进行300次数据擦除操作,得到以下操作结果:

tlc close block random_pe cycle:300start_block:426end_block:435

步骤S3000、读取磨损存储块的磨损参数,其中,磨损参数包括磨损存储块的磨损等级和擦除次数。

可以理解的是,在完成上述步骤中对测试存储块进行数据擦除操作后,为了提高测试效率和测试结果的精准性,需要记录磨损存储块的磨损等级和擦除次数,以保证测试存储块已完成对应的磨损测试,避免发生磨损测试没完全执行完毕的情况,影响测试结果的准确性;同时,也便于快速地调用磨损存储块的磨损参数,以便于对存储芯片的性能进行分析处理。

请参见图6,图6示出了上述步骤S3000的另一实施例的具体实现过程示意图。如图6所示,步骤S3000至少包括以下步骤:

步骤S3100、读取磨损存储块已进行的数据擦除次数。

可以理解的是,根据上述步骤S2220对测试存储块进行数据擦除操作后,得到的操作结果,能直接读取磨损存储块已进行的数据擦除次数。例如,通过读取上述步骤S2220的操作结果,能直接获取序号为426-435的测试存储块已进行的数据擦除次数为300。可以理解的是,在实际操作中,能通知现有的指令直接读取测试存储块的操作结果,属于现有技术,此处不再赘述。

步骤S3200、记录磨损存储块对应的磨损等级。

可以理解的是,通过读取磨损存储块已进行的数据擦除次数,能根据上述步骤S2210中,磨损等级与数据擦除次数的关系,记录磨损存储块对应的磨损等级。

步骤S3300、根据磨损等级和数据擦除次数,得到磨损存储块的磨损参数。

可以理解的是,在获取磨损存储块的磨损等级和数据擦除次数后,就能得到磨损存储块的磨损参数。其中,磨损等级反应出磨损存储块的磨损程度,便于快速地对磨损存储块进行分类;另外,数据擦除次数能反应出磨损存储块的剩余数据擦除次数,即其使用寿命。

步骤S4000、根据磨损参数对磨损存储块进行数据保持测试,得到存储芯片的性能结果。

可以理解的是,在获取磨损存储块的磨损参数前提下,能对进行存储芯片进行针对性的数据保持测试。其中,数据保持测试包括但不仅限于:在不同的环境下对磨损存储块进行循环测试,其中,环境条件包括:在高温(如存储芯片的温度大于55℃或存储芯片处于最高工作温度)、较低温(如55℃)或常温下进行;循环测试的条件包括:循环方式,如地址、页面和块(或扇区);循环时的电源电压;循环的频率,即单位时间内循环的次数;循环期间的数据图形等;循环次数以及循环间歇等。

可以理解的是,对于耐久试验而言,如果对存储芯片中所有磨损存储块都进行最大编程/擦除次数的擦写,那么试验时间将会很长。因此,在实际的数据保持测试过程中,随着存储芯片容量的增大,对存储芯片的一部分存储块按最大编程/擦除次数进行循环,剩余存储块则进行较少次数的循环。其中,能根据上述步骤获得的磨损存储块的磨损参数对测试的存储块进行选择性的数据保持测试,就能精准地得到存储芯片的极限性能。

在实际使用中,由于存储芯片不是频繁的使用,部分存储块经常处于闲置状态,能减少存储器中的电荷量,使高低电平电压恢复,从而会缓慢地恢复擦写寿命。而耐久试验是在反复编程/擦除循环中进行试验,从而产生过多的不必要的电荷,这可能导致存储芯片产生早期失效。同样地,根据上述步骤获得的磨损存储块的磨损参数对测试的存储块进行选择性的数据保持测试。

请参见图7,图7示出了上述步骤S4000的另一实施例的具体实现过程示意图。如图5所示,步骤S4000至少包括以下步骤:

步骤S4100、根据磨损参数,对不同磨损等级的磨损存储块进行数据保持测试,得到数据保持测试结果。

可以理解的是,对于不同磨损等级的磨损存储块,能进行更具针对性的数据保持测试。比如,对于磨损等级较高的磨损存储块,采用高温、高频的数据保持测试;对于磨损等级较低的磨损存储块,采用低温、低频的数据保持测试,这样能获取存储芯片两种极端条件下的测试结果,相对于现有技术中对随机区域进行数据保持测试,更具有参考意义。在实际应用中,通过现有的算法对不同磨损等级的磨损存储块进行数据保持测试并输出数据保持测试结果,属于现有技术,此处不再赘述。

步骤S4200、根据保持测试结果,得到存储芯片的性能结果,其中,性能结果包括存储芯片的读写速度和使用寿命。

可以理解的是,综合上述步骤S4100获取的保持测试结果,能得到存储芯片不同磨损等级的磨损存储块的读写速度和使用寿命,这种存储芯片的性能结果能精准地反应出存储芯片在不同的使用环境下的读写速度和使用寿命,使得存储芯片的性能结果能兼顾不同的应用场景。

参见图8,图8是本申请实施例提供的存储芯片随机磨损测试装置500的结构示意图,本申请实施例提供的存储芯片随机磨损测试方法的整个流程中涉及存储芯片随机磨损测试装置中的以下模块:分配模块510、测试模块520、读取模块530和性能模块540。

其中,分配模块510,用于读取存储芯片的标识符,并根据标识符分配存储芯片的测试存储块;

测试模块520,用于按照不同的磨损等级对测试存储块进行磨损测试,得到磨损存储块;

读取模块530,用于读取磨损存储块的磨损参数,其中,磨损参数包括磨损存储块的磨损等级和擦除次数;

性能模块540,用于根据磨损参数对磨损存储块进行数据保持测试,得到存储芯片的性能结果。

需要说明的是,上述装置的模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

图9示出了本申请实施例提供的电子设备600。该电子设备600包括但不限于:

存储器601,用于存储程序;

处理器602,用于执行存储器601存储的程序,当处理器602执行存储器601存储的程序时,处理器602用于执行上述的存储芯片随机磨损测试方法。

处理器602和存储器601可以通过总线或者其他方式连接。

存储器601作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本申请任意实施例描述的存储芯片随机磨损测试方法。处理器602通过运行存储在存储器601中的非暂态软件程序以及指令,从而实现上述的存储芯片随机磨损测试方法。

存储器601可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行上述的存储芯片随机磨损测试方法。此外,存储器601可以包括高速随机存取存储器,还可以包括非暂态存储器,比如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器601可选包括相对于处理器602远程设置的存储器,这些远程存储器可以通过网络连接至该处理器602。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

实现上述的存储芯片随机磨损测试方法所需的非暂态软件程序以及指令存储在存储器601中,当被一个或者多个处理器602执行时,执行本申请任意实施例提供的存储芯片随机磨损测试方法。

本申请实施例还提供了一种存储介质,存储有计算机可执行指令,计算机可执行指令用于执行上述的存储芯片随机磨损测试方法。

在一实施例中,该存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器602执行,比如,被上述电子设备600中的一个处理器602执行,可使得上述一个或多个处理器602执行本申请任意实施例提供的存储芯片随机磨损测试方法。

以上所描述的实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

技术分类

06120116458636