CN106445725A - 一种闪存错误模式的测试方法和系统 - Google Patents
一种闪存错误模式的测试方法和系统 Download PDFInfo
- Publication number
- CN106445725A CN106445725A CN201610846506.3A CN201610846506A CN106445725A CN 106445725 A CN106445725 A CN 106445725A CN 201610846506 A CN201610846506 A CN 201610846506A CN 106445725 A CN106445725 A CN 106445725A
- Authority
- CN
- China
- Prior art keywords
- data
- flash memory
- caching
- bit
- module
- 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.)
- Pending
Links
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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/102—Error in check bits
-
- 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/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1064—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
Abstract
本发明公开了一种闪存错误模式的测试方法,随着闪存存储容量的提升,存储单元受到强烈的噪声干扰,导致比特错误数量超过了当前纠错码的纠错能力,使得当前的纠错码不能满足保证数据可靠性的需求,为了针对闪存的错误特征设计有效的纠错码,需要对闪存的错误模式有一个清晰的理解,因此,本发明涉及一种闪存错误模式的测试方法,该方法包括两个阶段,数据写入和检验。在测试过程中,我们设计了两个关键的数据结构:地址列表用于存储数据写入闪存时的地址和错误信息列表用于存储页对应的比特错误信息,在数据检验阶段,通过特殊的操作绕过控制器中的纠错过程获取存储在闪存中的原始数据,通过该测试方法能够对闪存各种错误模式进行研究和分析。
Description
技术领域
本发明属于固态盘存储技术领域,更具体地,涉及一种闪存错误模式的测试方法和系统。
背景技术
基于闪存的固态盘(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所示)以供对闪存的失效模式进行研究和分析;
本步骤的优点在于:能够对获得的比特错误信息进行管理以备对闪存的失效模式进行分析,为制定有效的纠错码算法提供依据。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种闪存错误模式的测试方法,其特征在于,包括以下步骤:
(1)根据主机发出的写入数据请求,根据该写入数据请求为不同类型的数据分配对应的缓存,所有的缓存组成数据池;
(2)接收来自用户的顺序写入请求,并根据该顺序写入请求为缓存中的所有数据分配页面地址;
(3)根据步骤(2)中分配的页面地址将缓存中的所有数据写入到闪存页面中;
(4)根据步骤(2)中分配的第一个页面地址将存储在闪存页面中的对应数据读出,并将读出的数据与缓存中的对应数据进行比较,以统计第一个数据的比特位的错误数量和错误位置;
(5)将统计出的第一个数据的比特位的错误数量和错误位置和对应的页面地址作为一个信息条目存储在错误信息列表中;
(6)重复步骤(4)和(5),直到对缓存中所有数据执行完对应操作为止;
(7)将错误信息列表中比特位的错误信息包括比特位错误数量和错误位置、以及对应的页面地址通过统计信息操作存储在日志文件中。
2.根据权利要求1所述的测试方法,其特征在于,步骤(1)中缓存的大小等于闪存的页面大小,数据类型包括有随机生成的数据,以及人为指定的数据。
3.一种闪存错误模式的测试系统,其特征在于,包括:
第一模块,用于根据主机发出的写入数据请求,根据该写入数据请求为不同类型的数据分配对应的缓存,所有的缓存组成数据池;
第二模块,用于接收来自用户的顺序写入请求,并根据该顺序写入请求为缓存中的所有数据分配页面地址;
第三模块,用于根据第二模块中分配的页面地址将缓存中的所有数据写入到闪存页面中;
第四模块,用于根据第二模块中分配的第一个页面地址将存储在闪存页面中的对应数据读出,并将读出的数据与缓存中的对应数据进行比较,以统计第一个数据的比特位的错误数量和错误位置;
第五模块,用于将统计出的第一个数据的比特位的错误数量和错误位置和对应的页面地址作为一个信息条目存储在错误信息列表中;
第六模块,用于重复第四模块和第五模块,直到对缓存中所有数据执行完对应操作为止;
第七模块,用于将错误信息列表中比特位的错误信息包括比特位错误数量和错误位置、以及对应的页面地址通过统计信息操作存储在日志文件中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610846506.3A CN106445725A (zh) | 2016-09-20 | 2016-09-20 | 一种闪存错误模式的测试方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610846506.3A CN106445725A (zh) | 2016-09-20 | 2016-09-20 | 一种闪存错误模式的测试方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106445725A true CN106445725A (zh) | 2017-02-22 |
Family
ID=58166931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610846506.3A Pending CN106445725A (zh) | 2016-09-20 | 2016-09-20 | 一种闪存错误模式的测试方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106445725A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391035A (zh) * | 2017-07-11 | 2017-11-24 | 华中科技大学 | 一种通过编程错误感知降低固态盘磨损的方法 |
CN107403643A (zh) * | 2017-07-17 | 2017-11-28 | 华中科技大学 | 一种通过重定向提高3d fg nand闪存可靠性的方法 |
CN109872764A (zh) * | 2019-01-18 | 2019-06-11 | 南京大学 | 一种多级存储单元闪存的ecc多码率编解码系统及方法 |
CN113470728A (zh) * | 2021-06-29 | 2021-10-01 | 成都佰维存储科技有限公司 | 纠错能力测试方法、装置、可读存储介质及电子设备 |
CN113778822A (zh) * | 2021-08-04 | 2021-12-10 | 成都佰维存储科技有限公司 | 纠错能力测试方法、装置、可读存储介质及电子设备 |
CN114822669A (zh) * | 2022-06-29 | 2022-07-29 | 北京得瑞领新科技有限公司 | 闪存错误注入系统、固态存储设备及测试系统 |
CN116072206A (zh) * | 2023-04-04 | 2023-05-05 | 苏州浪潮智能科技有限公司 | 闪存错误数的测试方法、装置、电子设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599305A (zh) * | 2008-06-04 | 2009-12-09 | 威刚科技股份有限公司 | 具有数据修复功能的储存系统及其数据修复方法 |
CN102473138A (zh) * | 2009-06-29 | 2012-05-23 | 甲骨文美国公司 | 具有用于页面错误处理的闪存的扩展主存储器层次结构 |
-
2016
- 2016-09-20 CN CN201610846506.3A patent/CN106445725A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101599305A (zh) * | 2008-06-04 | 2009-12-09 | 威刚科技股份有限公司 | 具有数据修复功能的储存系统及其数据修复方法 |
CN102473138A (zh) * | 2009-06-29 | 2012-05-23 | 甲骨文美国公司 | 具有用于页面错误处理的闪存的扩展主存储器层次结构 |
Non-Patent Citations (1)
Title |
---|
夏倩: "MLC NAND闪存失效模式的测试与分析", 《HTTP://WWW.AIRITILIBRARY.COM/PUBLICATION/ALDETAILEDMESH?DOCID=D01076028》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391035A (zh) * | 2017-07-11 | 2017-11-24 | 华中科技大学 | 一种通过编程错误感知降低固态盘磨损的方法 |
CN107391035B (zh) * | 2017-07-11 | 2019-05-10 | 华中科技大学 | 一种通过编程错误感知降低固态盘磨损的方法 |
CN107403643A (zh) * | 2017-07-17 | 2017-11-28 | 华中科技大学 | 一种通过重定向提高3d fg nand闪存可靠性的方法 |
CN107403643B (zh) * | 2017-07-17 | 2019-12-24 | 华中科技大学 | 一种通过重定向提高3d fg nand闪存可靠性的方法 |
CN109872764A (zh) * | 2019-01-18 | 2019-06-11 | 南京大学 | 一种多级存储单元闪存的ecc多码率编解码系统及方法 |
CN109872764B (zh) * | 2019-01-18 | 2021-01-08 | 南京大学 | 一种多级存储单元闪存的ecc多码率编解码系统及方法 |
CN113470728A (zh) * | 2021-06-29 | 2021-10-01 | 成都佰维存储科技有限公司 | 纠错能力测试方法、装置、可读存储介质及电子设备 |
CN113470728B (zh) * | 2021-06-29 | 2023-11-21 | 成都佰维存储科技有限公司 | 纠错能力测试方法、装置、可读存储介质及电子设备 |
CN113778822A (zh) * | 2021-08-04 | 2021-12-10 | 成都佰维存储科技有限公司 | 纠错能力测试方法、装置、可读存储介质及电子设备 |
CN113778822B (zh) * | 2021-08-04 | 2023-05-23 | 成都佰维存储科技有限公司 | 纠错能力测试方法、装置、可读存储介质及电子设备 |
CN114822669A (zh) * | 2022-06-29 | 2022-07-29 | 北京得瑞领新科技有限公司 | 闪存错误注入系统、固态存储设备及测试系统 |
CN116072206A (zh) * | 2023-04-04 | 2023-05-05 | 苏州浪潮智能科技有限公司 | 闪存错误数的测试方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106445725A (zh) | 一种闪存错误模式的测试方法和系统 | |
US7409623B2 (en) | System and method of reading non-volatile computer memory | |
CN103699344B (zh) | 非易失性存储器装置及其操作方法 | |
CN103270500B (zh) | 事务日志恢复 | |
US9489409B2 (en) | Rollover strategies in a N-bit dictionary compressed column store | |
US9465537B2 (en) | Memory system and method of controlling memory system | |
CN109923514B (zh) | 对数据的存储器操作 | |
CN101105772A (zh) | 控制计算机可读存储器的方法和管理器数据单元的装置 | |
CN106484316A (zh) | 用来管理一记忆装置的方法以及记忆装置与控制器 | |
US20100146194A1 (en) | Storage Device And Data Management Method | |
KR102240261B1 (ko) | 메모리 관리 | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
CN103176916A (zh) | 闪存及闪存的地址转换方法 | |
CN105867834A (zh) | 存储装置数据整理方法 | |
TWI470432B (zh) | 電子系統及其快閃記憶體管理方法 | |
CN102981969A (zh) | 重复数据删除的方法及其固态硬盘 | |
Li et al. | Process variation aware read performance improvement for LDPC-based NAND flash memory | |
TWI697009B (zh) | 寫入控制方法以及資料儲存裝置及其控制器 | |
Zhou et al. | Isolation: Inexpensively separating cold data via garbage collection to improve the lifetime and performance of NAND flash SSDs | |
CN110333966A (zh) | 一种固态硬盘设备 | |
CN108388483A (zh) | 配置码率的方法、装置及计算机可读存储介质 | |
CN205541960U (zh) | 一种与非型闪存中坏列的处理装置及与非型闪存 | |
CN100410889C (zh) | 物理存储器的测试方法 | |
TWI752784B (zh) | 非對稱型平面管理方法以及資料儲存裝置及其控制器 | |
CN103117075B (zh) | 磁盘块检查方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170222 |