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

读干扰测试方法、装置、计算机可读存储介质及电子设备

文献发布时间:2023-06-19 09:27:35


读干扰测试方法、装置、计算机可读存储介质及电子设备

技术领域

本发明涉及测试领域,尤其涉及一种读干扰测试方法、装置、计算机可读存储介质及电子设备。

背景技术

对于NAND(计算机闪存设备)来说,其存在读干扰(Read Disturb),即在读页操作时,会对同一个块内的其它页造成干扰。随着NAND的更新迭代,一个块block内的页page更多,一个存储单元存储的信息越多,出现读干扰读程度越大。

正是因为NAND存在读干扰的特性,所以需要记录当前block的读次数,在读次数超过阈值的时候,把块内的数据进行搬迁,避免数据的丢失,或者刷新块上的数据。所以获取需要进行搬迁或者刷新动作的阈值至关重要。

但是,现有为了得到该阈值,通常都是人工操作,既耗人力,效率也不高。

发明内容

本发明所要解决的技术问题是:提供一种读干扰测试方法、装置、计算机可读存储介质及电子设备,实现对读干扰的自动化测试,提高测试效率。

为了解决上述技术问题,本发明采用的一种技术方案为:

一种读干扰测试方法,包括步骤:

接收测试参数,所述测试参数包括块信息、页信息以及预设ECC值;

获取待测试闪存的设备信息,根据所述块信息、页信息和设备信息确定所述待测试闪存待测试的块及其对应的待读取区域;

对所述待测试的块进行擦除并写操作;

对所述待读取区域进行连续读操作直至所述待测试的块的实际ECC值大于所述预设ECC值,并输出测试结果。

为了解决上述技术问题,本发明采用的另一种技术方案为:

一种读干扰测试装置,包括步骤:

接收模块,用于接收测试参数,所述测试参数包括块信息、页信息以及预设ECC值;

获取模块,用于获取待测试闪存的设备信息,根据所述块信息、页信息和设备信息确定所述待测试闪存待测试的块及其对应的待读取区域;

擦写模块,用于对所述待测试的块进行擦除并写操作;

读取模块,用于对所述待读取区域进行连续读操作直至所述待测试的块的实际ECC值大于所述预设ECC值,并输出测试结果。

为了解决上述技术问题,本发明采用的另一种技术方案为:

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种读干扰测试方法中的各个步骤。

为了解决上述技术问题,本发明采用的另一种技术方案为:

一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种读干扰测试方法中的各个步骤。

本发明的有益效果在于:根据输入的测试数据确定待测试闪存待测试的块及其对应的待读取区域,对待读取区域进行连续读操作直至所述待测试的块的实际ECC值大于预设ECC值,并输出测试结果,通过自动化测试方式,有效检测待测试闪存持续读操作下,不同读次数所对应的块的稳定程度,从而在对闪存的数据安全处理上,获取到一个可以明确需要数据搬移或刷新的读次数的阈值,通过自动化的方式实现了测试对比动作,实现对读干扰的自动化测试,提高了测试效率,并且能够输出直观的测试结果,方便对闪存进行特性分析和之后的算法调试。

附图说明

图1为本发明实施例的一种读干扰测试方法的步骤流程图;

图2为本发明实施例的一种读干扰测试装置的结构示意图;

图3为本发明实施例的一种电子设备的结构示意图;

图4为本发明实施例的一种读干扰测试方法的详细步骤流程图。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

请参照图1,本发明实施例提供了一种读干扰测试方法,包括步骤:

接收测试参数,所述测试参数包括块信息、页信息以及预设ECC值;

获取待测试闪存的设备信息,根据所述块信息、页信息和设备信息确定所述待测试闪存待测试的块及其对应的待读取区域;

对所述待测试的块进行擦除并写操作;

对所述待读取区域进行连续读操作直至所述待测试的块的实际ECC值大于所述预设ECC值,并输出测试结果。

从上述描述可知,本发明的有益效果在于:根据输入的测试数据确定待测试闪存待测试的块及其对应的待读取区域,对待读取区域进行连续读操作直至所述待测试的块的实际ECC值大于预设ECC值,并输出测试结果,通过自动化测试方式,有效检测待测试闪存持续读操作下,不同读次数所对应的块的稳定程度,从而在对闪存的数据安全处理上,获取到一个可以明确需要数据搬移或刷新的读次数的阈值,通过自动化的方式实现了测试对比动作,实现对读干扰的自动化测试,提高了测试效率,并且能够输出直观的测试结果,方便对闪存进行特性分析和之后的算法调试。

进一步的,所述块信息包括块编号,所述页信息包括页编号;

所述根据所述块信息、页信息和设备信息确定所述待测试闪存待测试的块及其对应的待读取区域包括:

根据所述设备信息确定所述待测试闪存的物理块信息,根据所述块编号在所述物理块信息中进行检索,确定所述待测试闪存待测试的块;

根据所述页编号在确定出的所述待测试的块中进行检索,确定所述待测试的块的待读取区域。

由上述描述可知,从获取的设备信息中基于接收的测试参数中的块编号和页编号进行检索,进行检索时先进行块编号的检索,接着进行页编号的检索,不仅能够避免对不存在的块进行误操作,提高操作的有效性和可靠性,而且提高了检索的命中率。

进一步的,所述块信息包括起始块编号、块数、起始页编号和页数;

所述根据所述块信息、页信息和设备信息确定所述待测试闪存待测试的块及其对应的待读取区域包括:

根据所述设备信息确定所述待测试闪存的物理块信息,根据所述起始块编号在所述物理块信息中进行检索,确定所述待测试闪存待测试的起始块;

根据所述待测试的起始块和所述块数确定待测试的块;

根据所述起始页编号在确定出的每一块待测试的块中进行检索,确定每一块待测试的块的待读取起始页;

根据每一块待测试的块的待读取起始页和所述页数确定每一块待测试的块对应的待读取区域,每一个待读取区域包括多页。

由上述描述可知,通过在块信息中设置起始块编号、块数、起始页编号和页数,能够在一次读操作中对多个数据块进行数据读取,实现一次性对多个数据块的测试,进一步提高了测试效率。

进一步的,所述测试参数还包括读长度;

所述对所述待读取区域进行连续读操作包括:

从所述待读取区域的起始地址开始根据所述读长度连续访问同一地址并执行读操作。

由上述描述可知,通过对同一地址的连续访问并读取,实现了对数据块的反复读操作,并且进行读操作的是针对同一地址,能够提高连续读的速度,从而提高了测试效率。

进一步的,所述对所述待读取区域进行连续读操作包括:

对每一块待测试的块的待读取区域进行连读读操作;

在执行每次读操作时,按照随机顺序从待测试的块中选取一块,并且从所述选取的块的待读取区域中随机选取一页进行读取直至遍历完待测试的所有块。

由上述描述可知,当一次读操作读取的是多个数据块时,在一次的读操作中,可以采用随机顺序对多个数据块进行选取并读取,并且每个数据块的待读取区域包含多个数据页,进行读取时,可以随机选择一页进行读取,更加贴合实际的应用场景,更好的模拟实际读操作,能够提高测试精度。

进一步的,所述测试参数还包括检验频率;

所述对所述待读取区域进行连续读操作直至所述待测试的块的实际ECC值大于所述预设ECC值,并输出测试结果包括:

在对所述待读取区域进行连续读操作的过程中,根据所述检验频率获取待测试的块的实际ECC值,并将所述实际ECC值与所述预设ECC值进行对比;

判断所述实际ECC值是否大于所述预设ECC值,若是,则输出测试结果,若否,返回执行对所述待读取区域进行连续读操作步骤。

由上述描述可知,通过设置检验频率,根据检验频率进行实际ECC值的获取并比较,能够提高测试效率,避免执行一次读操作就要进行一次比较。

进一步的,还包括将所述测试结果进行保存;

所述测试结果包括待测试的块在不同的读操作次数下对应的ECC值。

由上述描述可知,通过对待测试的块在不同的读操作次数下对于的ECC值进行保存并输出,能够进行特定块读次数和块不稳定性的对应,从而获知当前闪存在经过多少次读会变得不稳定,获得确切的连续的次数限制。

请参照图2,本发明另一实施例提供了一种读干扰测试装置,包括步骤:

接收模块,用于接收测试参数,所述测试参数包括块信息、页信息以及预设ECC值;

获取模块,用于获取待测试闪存的设备信息,根据所述块信息、页信息和设备信息确定所述待测试闪存待测试的块及其对应的待读取区域;

擦写模块,用于对所述待测试的块进行擦除并写操作;

读取模块,用于对所述待读取区域进行连续读操作直至所述待测试的块的实际ECC值大于所述预设ECC值,并输出测试结果。

本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种读干扰测试方法中的各个步骤。

请参照图3,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种读干扰测试方法中的各个步骤。

本发明上述一种读干扰测试方法、装置、计算机可读存储介质及电子设备能够适用于任何需要进行读干扰测试NAND闪存,比如SLC(Single-level Cell,单层单元)、MLC(Multi-level Cell,多层单元)、eMLC(Enterprise Multi-level Cell,增强型多层单元)、TLC(Triple-level Cell,三层单元)等,以下通过具体的实施方式进行说明:

实施例一

本实施例中可以通过开发一个测试软件来实现对特定NAND闪存的读干扰的自动化测试,上述测试软件可以基于MFC框架进行开发,主要包括如下几个流程:1、用户写入测试数据;2、用户写入测试参数;3、对待测试的NAND闪存进行测试;4、获得测试结果数据,具体的如图4所示,包括步骤:

S1、用户首先打开软件,然后在测试数据输入框写入测试数据,即写入要测试的NAND闪存标识等,以让测试软件明确是对哪一块特定的NAND闪存进行测试;

S2、接收用户输入的测试参数,测试参数可以在测试软件的操作页面进行自由设定,所述测试参数包括块信息、页信息以及预设ECC值;

其中,ECC(Error Correction Code)值表示其对应的块的稳定程度,是对数据的错误检查和纠正,每有一次数据出错并得到纠正,则ECC值会增加;

预设ECC值由NAND的校验能力决定,一般设置为校验极限的百分之八十;

本实施中,所述块信息包括块编号,所述页信息包括页编号;

根据所述设备信息确定所述待测试闪存的物理块信息,根据所述块编号在所述物理块信息中进行检索,确定所述待测试闪存待测试的块;

根据所述页编号在确定出的所述待测试的块中进行检索,确定所述待测试的块的待读取区域;

具体的,通过GetDeviceInfo()函数获取待测试的NAND闪存的设备信息,包括所需要的物理块、页信息以及容量大小等等;

S3、对所述待测试的块进行擦除并写操作;

S31、通过pWnd->PhyEraseBlock(Block,Count)对待测试的块进行擦除操作,其中,Block表示要操作的block块号,Count表示这次操作的块的个数,本实施例中要操作的块个数为1,则Count值为1,因为NAND的特性,在对块进行写操作之前,先把块擦除一遍,以便后续进行的写操作;

S32、通过pWnd->PhyWrite(Block,Count)对待测试的块进行写操作,Block表示要操作的block块号,Count表示这次操作的块的个数,给选定的块写入信息,填充的信息内容为默认的一些数据,一般是block的地址信息,方便后续进行读信息动作;

S4、对所述待读取区域进行连续读操作直至所述待测试的块的实际ECC值大于所述预设ECC值,并输出测试结果;

其中,所述测试参数还包括读长度;

从所述待读取区域的起始地址开始根据所述读长度连续访问同一地址并执行读操作;

具体的,通过pWnd->OnlyRLba(LbaStartAddr,LbaLen),LbaStartAddr表示读的起始地址,LbaLen:表示读的长度(读的长度在32k以下,大于32k无法连续访问同一地址),对选定的区域进行反复的读操作,当检测到待测试的块的实际ECC值大于预设ECC值时,则停止读操作,并记录当前的实际ECC值及其对应的读操作的执行次数,输出测试结果,通过测试结果就可以直观地确定出需要进行数据搬移或者刷新的读次数的阈值。

实施例二

本实施例与实施例一的不同在于,本实施例可以一次对多个数据块进行测试,即每次读操作时,读取的是多个数据块,从而能够进一步提高测试效率,同时在对每一块进行数据读取时,有多个数据页供随机选择,更贴近于实际的数据读取场景,具体的:

所述块信息包括起始块编号、块数、起始页编号和页数;

所述根据所述块信息、页信息和设备信息确定所述待测试闪存待测试的块及其对应的待读取区域包括:

根据所述设备信息确定所述待测试闪存的物理块信息,根据所述起始块编号在所述物理块信息中进行检索,确定所述待测试闪存待测试的起始块;

根据所述待测试的起始块和所述块数确定待测试的块,即在起始块后的连续所述块数的数据块即为所有待测试的块;

根据所述起始页编号在确定出的每一块待测试的块中进行检索,确定每一块待测试的块的待读取起始页;

根据每一块待测试的块的待读取起始页和所述页数确定每一块待测试的块对应的待读取区域,每一个待读取区域包括多页;

所述对所述待读取区域进行连续读操作包括:

对每一块待测试的块的待读取区域进行连读读操作;

在执行每次读操作时,按照随机顺序从待测试的块中选取一块,并且从所述选取的块的待读取区域中随机选取一页进行读取直至遍历完待测试的所有块;

比如,本次要进行测试的数据块编号为block2-block8,并且它们各自对应的待读取区域均为page23-page35,则在每次进行读操作时,以随机顺序选取block2-block8中的每一块,并且对于每一块,随机选取page23-page35的其中一页作为起始地址,按照预设读取长度进行数据读取;一次读操作完成后,再接着进行下一次读操作,如此反复执行;

在进行测试结果输出和保存时,测试结果包含每个数据块的标识、其对应的读次数以及对应的ECC值,即显示了不同的数据块不同的读次数下对应的ECC值;

当实际ECC值达到或超过预设ECC值时,则停止对该实际ECC值对应的数据块的读操作,并将该数据块的测试结果进行输出,对于其它实际ECC值未达到或超过预设ECC值的数据块,则继续执行连续读操作直至所有数据块的实际ECC值均达到或超过预设ECC值,则停止测试软件的运行。

实施例三

本实施与实施例一或实施例二的不同在于,进一步限定了所述测试参数还包括检验频率;

所述对所述待读取区域进行连续读操作直至所述待测试的块的实际ECC值大于所述预设ECC值,并输出测试结果包括:

在对所述待读取区域进行连续读操作的过程中,根据所述检验频率获取待测试的块的实际ECC值,并将所述实际ECC值与所述预设ECC值进行对比;

判断所述实际ECC值是否大于所述预设ECC值,若是,则输出测试结果,若否,返回执行对所述待读取区域进行连续读操作步骤;

如图4所示,在选定区域进行数据读取之后,会判断是否达到校验的时机,若是,则获取实际ECC值,并与预设ECC值进行对比,若否,则返回执行读操作;

比如设置校验频率为1万/次,则会在进行了一万次的读操作后,去获取一次当前读取的数据块对应的实际ECC值,然后将实际ECC值与预设ECC值进行对比;

在一个可选的实施方式中,该校验频率可以进行动态设置,并且在软件的实际运行过程中,可以根据实际ECC值的比对结果进行适应性地改变,比如当一数据块的实际ECC值与预设ECC值之间的差值小于预设值时,则对该数据块对应的校验频率进行调整,以一预设调整幅度将其调小到一预设校验频率值,比如可以将1万/次调整为8千/次,这样能够更加精确的确定出需要执行数据搬移或刷新的读次数的阈值。

实施例四

请参照图2,一种读干扰测试装置,包括步骤:

接收模块,用于接收测试参数,所述测试参数包括块信息、页信息以及预设ECC值;

获取模块,用于获取待测试闪存的设备信息,根据所述块信息、页信息和设备信息确定所述待测试闪存待测试的块及其对应的待读取区域;

擦写模块,用于对所述待测试的块进行擦除并写操作;

读取模块,用于对所述待读取区域进行连续读操作直至所述待测试的块的实际ECC值大于所述预设ECC值,停止读操作,并输出测试结果。

实施例五

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例一至实施例三任意一个所述的一种读干扰测试方法中的各个步骤。

实施例六

请参照图3,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例一至实施例三任意一个所述的一种读干扰测试方法中的各个步骤。

综上所述,本发明提供的一种读干扰测试方法、装置、计算机可读存储介质及电子设备,根据输入的测试数据确定待测试闪存待测试的块及其对应的待读取区域,对待读取区域进行连续读操作并根据校验频率获取待测试的块对应的实际ECC值与预设ECC值进行比较,直至所述待测试的块的实际ECC值大于预设ECC值,输出测试结果,并且能够一次性对多个数据块进行测试,通过自动化测试方式,高效检测待测试闪存持续读操作下不同读次数所对应的块的稳定程度,实现待测试块的读次数和块不稳定性的对应,从而获知在当前NAND的block在经过多少次读会变得不稳定,获取到确切的连续的读次数限制,能够获取到一个可以明确需要数据搬移或刷新的读次数的阈值,在对闪存的数据安全处理上,当快达到这个极限的时候能够提前对里面的数据进行防丢失处理,通过自动化的方式实现了测试对比动作,实现对读干扰的自动化测试,提高了测试效率,并且能够输出直观的测试结果,方便对闪存进行特性分析和之后的算法调试。

在本申请所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

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

另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

技术分类

06120112172751