一种闪存错误模式的测试方法和系统与流程

文档序号:12271112阅读:781来源:国知局
一种闪存错误模式的测试方法和系统与流程

本发明属于固态盘存储技术领域,更具体地,涉及一种闪存错误模式的测试方法和系统。



背景技术:

基于闪存的固态盘(Solid State Disk,简称SSD)具有存取速度快、抗震防摔、高性能、低功耗等被广泛应用于存储解决方案中。随着人们对存储需求的不断增大,SSD逐渐成为计算机存储系统的重要组成部分。

随着SSD闪存中每个单元存储的比特数越来越多,SSD的存储容量得以提升,然而与此同时,SSD的可靠性却急剧下降,这使得当前的纠错码(例如BCH纠错码)不能满足保证SSD可靠性的需求。为了提供有效的纠错码算法,以保证SSD的可靠性和使用寿命,需要对SSD的失效模式进行深入的研究,然而,目前对闪存失效模式测试方法的研究存在以下两个不足之处:(1)现有的闪存失效模式测试方法不能研究特定的数据模式对闪存失效模式的影响;(2)现有的闪存失效模式测试方法不能研究固态盘闪存页面中特定位置的失效模式。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种闪存错误模式的测试方法和系统,其目的在于,通过对SSD的失效模式进行分析,其分析结果可供纠错码算法使用,从而保证SSD的可靠性和使用寿命。

为实现上述目的,按照本发明的一个方面,提供了一种闪存错误模式的测试方法,包括以下步骤:

(1)根据主机发出的写入数据请求,根据该写入数据请求为不同类型的数据分配对应的缓存,所有的缓存组成数据池;

(2)接收来自用户的顺序写入请求,并根据该顺序写入请求为缓存中的所有数据分配页面地址;

(3)根据步骤(2)中分配的页面地址将缓存中的所有数据写入到闪存页面中;

(4)根据步骤(2)中分配的第一个页面地址将存储在闪存页面中的对应数据读出,并将读出的数据与缓存中的对应数据进行比较,以统计第一个数据的比特位的错误数量和错误位置;

(5)将统计出的第一个数据的比特位的错误数量和错误位置和对应的页面地址作为一个信息条目存储在错误信息列表中;

(6)重复步骤(4)和(5),直到对缓存中所有数据执行完对应操作为止;

(7)将错误信息列表中比特位的错误信息包括比特位错误数量和错误位置、以及对应的页面地址通过统计信息操作存储在日志文件中。

优选地,步骤(1)中缓存的大小等于闪存的页面大小,数据类型包括有随机生成的数据,以及人为指定的数据。

按照本发明的另一方面,提供了一种闪存错误模式的测试系统,包括:

第一模块,用于根据主机发出的写入数据请求,根据该写入数据请求为不同类型的数据分配对应的缓存,所有的缓存组成数据池;

第二模块,用于接收来自用户的顺序写入请求,并根据该顺序写入请求为缓存中的所有数据分配页面地址;

第三模块,用于根据第二模块中分配的页面地址将缓存中的所有数据写入到闪存页面中;

第四模块,用于根据第二模块中分配的第一个页面地址将存储在闪存页面中的对应数据读出,并将读出的数据与缓存中的对应数据进行比较,以统计第一个数据的比特位的错误数量和错误位置;

第五模块,用于将统计出的第一个数据的比特位的错误数量和错误位置和对应的页面地址作为一个信息条目存储在错误信息列表中;

第六模块,用于重复第四模块和第五模块,直到对缓存中所有数据执行完对应操作为止;

第七模块,用于将错误信息列表中比特位的错误信息包括比特位错误数量和错误位置、以及对应的页面地址通过统计信息操作存储在日志文件中。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)本发明提供了SSD的失效模式的分析结果,其能够供纠错码算法使用,从而保证SSD的可靠性和使用寿命;

(2)本发明方法能够对闪存中各种失效模式特征进行研究和分析;

(3)本发明通过使用特殊的数据结构和操作能够获得存储在闪存单元中的具体比特错误行为特征,深刻的理解比特错误特征,有利于设计相应的纠错技术以保证数据可靠性。

附图说明

图1为本发明闪存错误模式的测试方法的设计结构图。

图2为本发明闪存错误模式的测试方法的基本流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本发明的结构设计图如附图1所示,在对闪存的错误模式进行测试时,访问闪存的页地址序列,一般称为IO模式;访问闪存时传输到数据块中的“0”,“1”比特序列,一般称为数据模式。为了有效地统计出在访问闪存的过程中,闪存介质中出现的比特错误,我们读取闪存页中的数据时会绕过纠错码操作,获得存储在单元中的原始数据,因为在闪存测试系统中,如果有纠错码模块的存在,那么返回的数据是经过纠错码纠正以后的数据,如果这样我们就不能获得存储在底层单元中的最初的比特数据,也就不能获得相关的比特错误特征信息。测试主要分为两个阶段进行,第一阶段:数据的写入,第二阶段:数据的读出检验。在数据写入阶段,在内存中初始化一个大的数据池,用于提供被写入到闪存物理页中的数据,数据池中的数据被存储在相应的缓存中,每一个缓存的大小与一个页的大小相同。当数据写入闪存介质时,会根据一定的规则计算出一个缓存索引,根据该索引,从缓存中提取对应的数据,将其中的数据写入物理页中。在数据检验阶段,先对该页执行绕过纠错码操作,目的是提取出存储在闪存单元中的原始数据,根据同样的规则计算缓存索引,将缓存中的数据与从闪存物理页中读出的原始数据进行比对,统计介质中产生的比特错误数量和位置。在测试系统中,我们设计了两个关键的数据结构:用于存储访问闪存地址序列的地址列表和用于存储每一个页对应的比特错误信息(比特错误位置和数量)的错误信息列表。在地址列表中,每一个条目对应一个物理页地址,地址结构为(通道D、晶元C、块B、页P),根据访问方式的不同,列表中的地址序列不同。在数据写入阶段,物理页的写入顺序以及数据检验阶段物理页的读取顺序都由地址列表中的地址指定。在错误信息列表中,每一个条目存储的信息包括两个部分,物理页的地址和对应的比特错误信息,错误信息列表中的页地址序列与地址列表中的地址保持一致。

本发明的测试方法主要包括数据写入到闪存中和数据从闪存中读出检验错误两个阶段,结合图1来说明该测试方法在具体实施时,主要的步骤如下:

(1)根据主机发出的写入数据请求,根据该写入数据请求为不同类型的数据分配对应的缓存,所有的缓存组成数据池;具体而言,该缓存的大小等于闪存的页面大小,数据类型包括有随机生成的数据,以及人为指定的数据(比如全0数据,以及全1数据等);

如图1所示,该不同类型的数据根据主机发出的写入数据请求由数据模式生成器提供;

本步骤的优点在于,能够根据主机发出的写入数据请求,生成各种类型的数据,这为研究各种数据写入闪存时的失效模式研究提供保证;

(2)接收来自用户的顺序写入请求,并根据该顺序写入请求为缓存中的所有数据分配页面地址;

如图3所示,该地址根据用户发出的顺序写入请求由IO模式生成器分配,其中Ci,Di,Bi,Pi,代表SSD中的地址结构,意思是SSD中第i个通道、第i个通道中的第i闪存芯片的第i个晶元、闪存第i个晶元的第i个块,闪存第i个块中第i个页;

本步骤的优点在于,能够为缓存中的数据指定一个对应的写入闪存中的地址,清楚的指定写入的数据的类型;

(3)根据步骤(2)中分配的页面地址将缓存中的所有数据写入到闪存页面中;

如图1所示,通过数据写入闪存操作和对应的闪存页地址能够将缓存中的数据写到闪存中;

本步骤的优点在于:能够地址将数据写到闪存中的特定位置,从而研究该特定位置的失效模式;

(4)根据步骤(2)中分配的第一个页面地址将存储在闪存页面中的对应数据读出,并将读出的数据与缓存中的对应数据进行比较,以统计第一个数据的比特位的错误数量和错误位置;

如图1所示,通过绕过纠错码操作能够读取闪存中的原始数据,从而将从缓存中读出的原始数据和数据缓存中的数据进行比较;

本步骤的优点在于:能够准确无误地统计出比特错误数量和位置,高效地研究闪存的失效模式;

(5)将统计出的第一个数据的比特位的错误数量和错误位置和对应的页面地址作为一个信息条目存储在错误信息列表中;

本步骤的优点在于:能够统计出闪存页中对应的比特错误信息(包括比特错误的数量和位置),能够重点的对闪存中某一个页中的失效模式进行研究和分析;

(6)重复步骤(4)和(5),直到对缓存中所有数据执行完对应操作为止;

(7)将错误信息列表中比特位的错误信息包括比特位错误数量和错误位置、以及对应的页面地址通过统计信息操作存储在日志文件中(如图1所示)以供对闪存的失效模式进行研究和分析;

本步骤的优点在于:能够对获得的比特错误信息进行管理以备对闪存的失效模式进行分析,为制定有效的纠错码算法提供依据。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1