CN103198020B - 一种提高闪存使用寿命的方法 - Google Patents
一种提高闪存使用寿命的方法 Download PDFInfo
- Publication number
- CN103198020B CN103198020B CN201310085719.5A CN201310085719A CN103198020B CN 103198020 B CN103198020 B CN 103198020B CN 201310085719 A CN201310085719 A CN 201310085719A CN 103198020 B CN103198020 B CN 103198020B
- Authority
- CN
- China
- Prior art keywords
- page
- flash memory
- correcting code
- service life
- memory
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种提高闪存使用寿命的方法,将闪存页进行分组,并通过闪存逻辑转换层基于并行读写的方法将组内页面映射为一个总页面,分配该总页面的一个存储空间用于存放纠错码,用于对所属组的页面进行读写时的纠错。依据本发明在通过提高纠错码纠错位数以提高闪存使用寿命的同时,减少纠错码对存储空间的占用率。
Description
技术领域
本发明涉及一种提高闪存使用寿命的方法,具体是一种通过错误矫正增加错误纠正能力提高闪存使用寿命的方法。
背景技术
随着嵌入式技术发展,NAND(与非)闪存的应用越来越广泛。闪存是一种常用的存储介质,具有体积小、容量大、成本低、掉电数据不丢失等一系列优点。通常,一个闪存是由若干个闪存组块组成,每个闪存块又分为若干物理页。闪存块是擦除操作的最小单位,而读写都是以页为单位进行,对于每个物理页进行重写之前,必须先对该页所在的块执行擦除操作。
由于在NAND闪存的生产及使用过程中会产生坏块,为了检测数据的可靠性,在应用闪存的***中都会采用一定的坏区管理策略。因此,在不影响正常使用情况下如何延长闪存使用寿命,成为目前的一个研究热点。
在本领域,对于ECC(ErrorCorrectingCode,错误检查和纠正,简称错误校正码或纠错码)的一般认识是,由于存储于闪存的数据的码元有可能产生错误,为保证读写的正确性,在闪存中写入数据时,会根据与写入的数据产生一个错误校正码,该错误校正码会被存放在闪存的相应页预先分配的存储空间中,该部分存储空间不能被数据所占用。
依据错误码,当读取闪存中存放的数据时,即可根据所对应的页面的错误码对所读取的数据进行错误校正。然而,随着闪存的使用或者产品的某些区块本身的制造缺陷,使得其错误位数超出最大矫正位数,使得数据不能被正确读出时,相应块就会被标记为坏块,当坏块数到达预定阈值时,闪存便被报废。
由此可知,纠错码的位数对闪存使用寿命有至关重要的影响,更具体地,以三星某款MLC(Multi-level,多层单元)芯片为例,官方对该闪存芯片的要求是24bits/1KB,寿命是3000次EP(擦除),当我们配置为24bit/1KB的纠错时,擦写某块超过3000次后便会出现ECC无法纠错,该块达到寿命,如果将NFC配置改为30bit/1KB,擦写某块超过5000次后还可以正常工作,由此可知,ECC的纠错数对闪存的寿命影响重大。
从而,提高纠错码必然能够提高闪存的使用寿命。然而,如前所述,纠错码必然要占据一定的存储空间。通常闪存芯片都会预留一定的存储空间(sqare)备用,比如这款三星的flash空闲区的大小为448bit,允许最多采用32bit/1KB的ECC纠错,加之还要用一些作为软件的预留区来存放数据,纠错码的位数通常被固定设置。
如果将闪存中每个页牺牲1K容量作为增加的spare空间,可以增加ECC的纠错位数。但普通的闪存每页大小如为8K,如果牺牲1K即牺牲产品容量的1/8,这样很难让用户接受。
中国CN102693760A号发明专利申请公开即涉及ECC位数对闪存使用寿命的讨论,其错误校正码是动态配置的,具体是当以NAND快闪存储器中的第一页被写入第一数据时,根据该第一页发生位错误的机率,决定该第一页所对应的错误校正码的类型,然后根据该第一页对应的错误校正码的类型与该第一数据,产生第一错误校正码。如此,针对发生位错误的机率较高的页可使用矫正能力较强的错误校正码,从而减少该NAND快闪存储器中不可使用的区块的数目,来延长其使用寿命。
上述动态调整方式能够在整体上有效地降低纠错码所占用的空间。然而,该文献并没有提供针对纠错码如何分配存储空间的策略,如果是传统的分配方式,后期较大的纠错码仍然需要占据较大的存储空间。因此,有必要寻找新的途径,在提高纠错码大小的同时,使所被占用空间能够被接受。
发明内容
有鉴于此,本发明的目的在于提供一种新的提高闪存使用寿命的方法,在通过提高纠错码纠错位数以提高闪存使用寿命的同时,减少纠错码对存储空间的占用率。
本发明采用以下技术方案:
一种提高闪存使用寿命的方法,将闪存页进行分组,并通过闪存逻辑转换层基于并行读写的方法将组内页面映射为一个总页面,分配该总页面的一个存储空间用于存放纠错码,用于对所属组的页面进行读写时的纠错。
从以上方案可以看出,依据本发明,闪存的物理页被分组,组内的物理页被映射为一个逻辑页,所分配的用于存放纠错码的存储空间平均给每个物理页后,对该其存储空间的影响减少,使较大的纠错码存放的约束减少,使使用寿命与存储空间的性耗比得到较大幅度的提升,从而在提高闪存使用寿命的同时,减少了纠错码对存储空间的占用率。
上述提高闪存使用寿命的方法,所适用闪存的闪存控制器支持多片自动跳转功能,从而通过所述逻辑转换层将多片相同偏移地址页映射为一个总页面。
附图说明
图1闪存中ECC纠错位数及存储改变的图例。
具体实施方式
为使本领域的技术人员更清楚的理解本发明,参照说明书附图1,以单页8K两两映射为一个16K页为例进行说明。
当前,正常情况下ECC可以纠正的错误为24bits/1KB,需要的校验位数为14*24=336bits。如果我们将两个片(plane)相同地址映射为(以下简称合并)为16K的页,则整个页中所需要的纠错位数为336bits*16=5376bits。对于单页大小为16K,取出1K作为增加的ECC保护时,总的纠错位数可以扩充为5376+1024*8=13568bits。
对于每个1K的纠正的错误大概为13586bits/(15*14)=64bits/1KB。如图1所示,使用两个8K的页,每个页为8*(1K+24bits),将两个8K页合并后可以视为16*(1K+24bits)。合并后的页取出1K作为增加的ECC保护,每页存储15K的数据,每页为15*(1K+64bits)。
具体的实现方法如下:首先当上位机的写命令经过FTL(闪存转换层)后,每个multi-plane的page已经在物理上已经变为15KB,当NFC(NANDFlashController,闪存控制器)接到对闪存的写命令后,会将下发闪存的program(程序)命令,同时数据会经过ECC硬件模块,ECC纠错在这里以1KB为单位,这时采用64bits/1KB的ECC纠错,每次向闪存写1KB的数据,后面都会跟112Byte的ECC校验位,依此写入15KB的数据,总共的ECC校验位是1680Byte,而这时所拥有的空闲区是1024+448×2为1920Byte,满足需求。
当上位机发送读命令的时候,同样先经过FTL层,然后通过NFC对闪存发送读命令,闪存在将1KB数据送给NFC和ECC纠错模块的同时,也将112Byte的校验数据传送给ECC纠错模块,ECC模块在解码后对数据进行纠错,当1KB的数据错误位小于64bit的时候能完全纠错恢复出之前的写入数据,从而保证了数据的正确性,而且64bit的纠错能力比起之前的24bit纠错能力,大大提高了闪存的寿命。
该方法与之前的的纠错方式相比在大幅增加了闪存寿命的同时只损失了1/16的容量。该方法采用硬件与软件相结合的方式来实现。硬件用来实现1KB数据对应的ECC纠错码在闪存页位置的定位,而软件则用来实现FTL层中关于multi-plane物理页的容量从16Kbyte到15Kbyte的转换,主要是上位机传送的LBA(LogicalBlockAddressing,逻辑块寻址)与逻辑页的关系转换。
通过以上实现可以看出,其是以牺牲合并页的一小部分空间来换取了闪存的使用寿命。以合并页大小为16K计算,每合并页只包含15K的数据区,但ECC却增加了40bits,是24bits的一倍多。采用multi-plane操作的另一个优点就是可以提高闪存的读写操作速度,这与闪存的内部结构有关系。
以上内容只是表明两个页合并为一个页的操作,其实而每个闪存芯片由2~4个片(plane)或者更多个片组成,因而针对如单页8K的闪存可以扩展单页大小为16K或更高,方法跟之前一样,同样取出一部分闪存页的内部空间来用存放多出位数的ECC的纠错码。
在一些应用中,最好使用NFC支持multi_plane自动跳转功能的闪存,以达到更容易将multi_plane相同偏移地址页合并为单个page的目的,减少不同片上页进行逻辑转换的***消耗。
依据上述内容,针对提高闪存ECC位数来提高闪存的使用寿命。将两个或多个小的plane合并为一个大的page,在单个页中拿出1K来作为增加的ECC保护,只是牺牲了一小部分的容量,而每页中增加的校正位数却很明显,提高了数据的错误检测及纠错能力,增加了闪存的擦写次数,能明显增加闪存的使用寿命。
术语:闪存转换层FTL(flashtranslationlayer),FTL是一种软件中间层,最初是由intel提出的,用于将闪存模拟成为虚拟块设备,从而能够在闪存上实现FAT(FileAllocationTable,文件分配表)等块设备类文件***。主要是将闪存模拟成磁盘设备,为上层应用提供与磁盘一样的接口,而不需要修改应用软件和文件***。
并行调度是FTL的关键技术之一,这种技术可以有效地提高设备的I/O带宽。如闪存固态盘(FlashSSD)中有大量的闪存芯片(chip),而每个闪存芯片由2~4个片(plane)组成。并行调度可以实现各个plane间的负载均衡和损耗均衡,这就保证了读操作的低延时。那么并行调度也更有利于本文中替提出方案的实现,不仅有效地减少对存储空间的占用,而且是的存取速度更快。
Claims (1)
1.一种提高闪存使用寿命的方法,其特征在于,以闪存上包含于不同片的具有相同地址的页分为一组的分组方式将闪存页进行分组,并通过闪存逻辑转换层基于并行读写的方法将组内页面映射为一个总页面,分配该总页面的一个存储空间用于存放纠错码,所分配的用于存放纠错码的存储空间平均给组内每个物理页,用于对所属组的页面进行读写时的纠错;
所适用闪存的闪存控制器支持多片自动跳转功能,从而通过所述逻辑转换层将多片相同偏移地址页映射为一个总页面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310085719.5A CN103198020B (zh) | 2013-03-18 | 2013-03-18 | 一种提高闪存使用寿命的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310085719.5A CN103198020B (zh) | 2013-03-18 | 2013-03-18 | 一种提高闪存使用寿命的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103198020A CN103198020A (zh) | 2013-07-10 |
CN103198020B true CN103198020B (zh) | 2016-05-25 |
Family
ID=48720601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310085719.5A Active CN103198020B (zh) | 2013-03-18 | 2013-03-18 | 一种提高闪存使用寿命的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103198020B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022695A (zh) * | 2014-04-21 | 2015-11-04 | 群联电子股份有限公司 | 数据存储方法、存储器控制电路单元与存储器存储装置 |
CN107562563B (zh) * | 2016-07-01 | 2021-06-15 | 龙芯中科技术股份有限公司 | Nand Flash控制方法和装置 |
CN108022624A (zh) * | 2017-11-22 | 2018-05-11 | 深圳忆联信息***有限公司 | 一种提升tlc闪存编码率的方法及tlc闪存 |
CN108345429B (zh) * | 2017-12-27 | 2021-08-31 | 北京兆易创新科技股份有限公司 | 一种Nand flash元件 |
CN108762975B (zh) * | 2018-05-24 | 2021-06-08 | 深圳市德明利技术股份有限公司 | 一种ecc数据存储方法、***及存储介质 |
CN111736760B (zh) * | 2020-05-11 | 2022-05-13 | 瑞芯微电子股份有限公司 | 一种动态随机存储方法及*** |
CN112613165B (zh) * | 2020-12-11 | 2024-03-19 | 武汉虹信科技发展有限责任公司 | 通信设备寿命预测方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5896404A (en) * | 1997-04-04 | 1999-04-20 | International Business Machines Corporation | Programmable burst length DRAM |
CN101593156A (zh) * | 2008-05-28 | 2009-12-02 | 群联电子股份有限公司 | 多种存储器的管理方法、***及控制器 |
CN102693760A (zh) * | 2011-03-24 | 2012-09-26 | 扬智科技股份有限公司 | Nand快闪存储器的错误校正方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101378349B1 (ko) * | 2008-01-30 | 2014-03-28 | 삼성전자주식회사 | 메모리 장치 및 메모리 데이터 읽기 방법 |
-
2013
- 2013-03-18 CN CN201310085719.5A patent/CN103198020B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5896404A (en) * | 1997-04-04 | 1999-04-20 | International Business Machines Corporation | Programmable burst length DRAM |
CN101593156A (zh) * | 2008-05-28 | 2009-12-02 | 群联电子股份有限公司 | 多种存储器的管理方法、***及控制器 |
CN102693760A (zh) * | 2011-03-24 | 2012-09-26 | 扬智科技股份有限公司 | Nand快闪存储器的错误校正方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103198020A (zh) | 2013-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103198020B (zh) | 一种提高闪存使用寿命的方法 | |
US9128871B2 (en) | Memory system with variable length page stripes including data protection information | |
US9092320B2 (en) | Storage system which includes non-volatile semiconductor storage medium, and storage control method of storage system | |
US9268687B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
CN104699413B (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
US20100017650A1 (en) | Non-volatile memory data storage system with reliability management | |
US11762567B2 (en) | Runtime memory allocation to avoid and delay defect effects in memory sub-systems | |
CN112513804B (zh) | 一种数据处理方法及装置 | |
CN102193869B (zh) | 存储器管理与写入方法及其存储器控制器与储存*** | |
CN105786411A (zh) | 非易失性存储器装置的操作方法 | |
US20160034341A1 (en) | Orphan block management in non-volatile memory devices | |
CN105573681A (zh) | 一种ssd盘片内部raid组建方法及*** | |
US20170242597A1 (en) | Wear leveling method, memory control circuit unit and memory storage device | |
CN101714065A (zh) | 一种闪存控制器的映射信息管理方法 | |
CN102890645B (zh) | 存储器储存装置、存储器控制器与数据写入方法 | |
CN103678162B (zh) | ***数据储存方法、存储器控制器与存储器储存装置 | |
CN103544118B (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
CN103106148B (zh) | 区块管理方法、存储器控制器与存储器存储装置 | |
WO2011019794A2 (en) | Method and apparatus for addressing actual or predicted failures in a flash-based storage system | |
CN102402396B (zh) | 复合式储存装置及其复合式储存媒体控制器与编址方法 | |
US20220283934A1 (en) | Storage System and Method for Automatic Defragmentation of Memory | |
CN113138720A (zh) | 数据存储方法、存储器控制电路单元以及存储器存储装置 | |
CN110364207B (zh) | 解码方法以及储存控制器 | |
US20210081316A1 (en) | Storage System and Method for Validation of Hints Prior to Garbage Collection | |
CN106920572B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |