CN102915764A - 提高闪存芯片缺陷容忍度的方法、闪存存储系统及其控制器 - Google Patents
提高闪存芯片缺陷容忍度的方法、闪存存储系统及其控制器 Download PDFInfo
- Publication number
- CN102915764A CN102915764A CN2012103227963A CN201210322796A CN102915764A CN 102915764 A CN102915764 A CN 102915764A CN 2012103227963 A CN2012103227963 A CN 2012103227963A CN 201210322796 A CN201210322796 A CN 201210322796A CN 102915764 A CN102915764 A CN 102915764A
- Authority
- CN
- China
- Prior art keywords
- flash memory
- flash
- memory pages
- data
- chip
- 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
Images
Abstract
本发明公开了一种提高闪存芯片缺陷容忍度的方法,其中每一闪存芯片包括多个闪存页面,该方法包括步骤:实时检测记录每一闪存芯片的闪存页面的最长数据保持时间;根据记录的每一闪存芯片的闪存页面的最长数据保持时间,将接收到的用户数据并按照用户数据所需的最长数据保持时间而写入相应的可用的闪存页面。本发明还公开了一种闪存存储系统及其控制器。采用本发明实施例,能够有效地利用有限的编码冗余来容忍缺陷信息存储单元,并提高闪存芯片的缺陷容忍度以及闪存芯片页面利用率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种提高闪存芯片缺陷容忍度的方法、闪存存储系统及其控制器。
背景技术
作为唯一主流的固态非挥发数据储存技术,闪存已经成为了全球半导体产业体系中发展最为迅速的一环。2010年市场研究报告显示,闪存产品的市场已突破200亿美元。基于闪存芯片的固态数据存储系统主要包含一个固态存储系统控制器和一个以上闪存芯片。
闪存芯片的基本信息存储单元是浮栅金属氧化物半导体晶体管 (Floating-Gate Transistor)。浮栅金属氧化物半导体晶体管的阈值电压可以通过注射一定数量的电子进入浮栅而改变。因此,通过对浮栅内电子数目的精确控制,每个存储单元,即浮栅金属氧化物半导体晶体管,可储存多个比特信息。精确控制浮栅内电子数目的过程通常被称为编程。在每一个存储单元可以被编程之前,其浮栅内的所有电子必须被移走,从而使得其阈值电压被置为最低,这个过程被称为擦除。在对信息存储单元编程的过程中,业界使用一种渐进式的“编程-校验-再编程”的方法以实现对浮栅内电子数目的精确控制。由于各种原因如电子隧道效应,浮栅内电子数目会随着时间而降低,这会导致闪存芯片只能保证有限的数据非挥发存储保持时间。
重复的“编程/擦除”的操作会逐渐降低浮栅金属氧化物半导体晶体管的噪音容限,从而使得闪存芯片只有一定的“编程/擦除”次数限度,加上随着闪存制造工艺精度的不断提高,闪存器件的存储密度不断升高、价格不断下降,这样更加重了重复“编程/擦除”操作对于信息存储单元的副作用,使得闪存芯片的使用寿命、数据保持时间、及可靠性不断下降,由此固态存储系统控制器必须采用越来越强大而复杂的纠错码来应付不断下降的闪存信息存储单元可靠性,以保证整个固态存储系统的可靠性、使用寿命、及数据保持时间。
由于不可避免的闪存芯片生产过程中的制程变差、以及不同物理位置的页面所承受的不同的噪音强度,不同的存储页面会具有不同的噪音容限。同时,随着闪存制造工艺精度的不断提高,信息存储单元的缺陷率也会不断上升。在现有设计中,固态存储系统控制器总是将同样大小的用户数据写入每一个存储页面并保证同样的数据非挥发存储的保持时间(如一年),所使用的纠错码必须含有足够多的编码冗余、以实现足够强大的纠错能力从而能够容忍最差可能的存储页面并同时保证最长可能的数据保持时间。同时,若某一页面包含过多的缺陷信息存储单元,此页面以及甚至包含此页面的存储块就会无法用来存储用户数据。这些因素就会导致较低的闪存芯片存储效率。
可见,提高闪存芯片缺陷容忍度,以提高固态存储系统的芯片存储单元的使用效率,从而延长闪存芯片的使用寿命,是当前本领域技术人员所致力的目标。
在现有技术中,提高闪存芯片缺陷容忍度的方式主要是通过改变闪存芯片的封装工艺以及结构来提高存储单元的电荷(数据)保持时间,例如,申请号为200980142451.6的中国申请专利公开了一种具有氮化硅电荷陷阱层的非挥发性内存,包括一掺杂氮化硅层,其包含碳、硼或氧的一掺杂剂。该掺杂氮化硅层在该层中产生较高数目且较高浓度的氮及硅悬键且提供一非挥发性内存装置的单位单元的电荷保持能力及电荷保持时间的增加,从而提高数据保持时间。虽然所公开的内存结构(方法)在一定程度能够提高数据保持时间,其仅仅是通过掺杂氮化硅层产生较高数目且较高浓度的氮及硅悬键而提高非挥发性内存装置的单位单元的电荷保持能力,但是随着重复的“编程/擦除”(program/erase) 的操作而降低存储页面的噪音容限,随着页面包含的缺陷信息存储单元越来越多而无法满足用户数据的固定数据保持时间时,则被标志为不可用页面而无法参与任何的数据存储,因此闪存芯片存储效率还是较低。
另外,申请号为US 6,426,898 B1的美国申请专利则公开了一种减少闪存中由于擦除操作引起的隧道氧化层电子陷阱的方法,具体公开了:在擦除操作过程中执行擦除操作以过擦除(over-erases)所有的闪存单元, 然后对过擦除(over-erases)的闪存单元进行单元修复操作。该修复操作能够有效导致电子穿过隧道氧化层而与陷阱再结合,从而减少由于擦除操作引起积累在隧道氧化层的电子陷阱,进而提高闪存芯片缺陷容忍度及数据保持时间。但是,该方法实现过程比较复杂,而且需要改变现有闪存存储系统的编程/擦除程序而实现,不利于普及使用。
发明内容
本发明的实施例提供一种提高闪存芯片缺陷容忍度的方法、闪存存储系统及其控制器,能够有效地利用有限的编码冗余来容忍缺陷信息存储单元,且实现过程简单、易行。
为达到上述目的,本发明的实施例采用如下技术方案:
一种提高闪存芯片缺陷容忍度的方法,其中每一闪存芯片包括多个闪存页面,该方法包括步骤:
实时检测记录每一闪存芯片的闪存页面的最长数据保持时间;
根据记录的每一闪存芯片的闪存页面的最长数据保持时间,将接收到的用户数据并按照用户数据所需的最长数据保持时间而写入相应的可用的闪存页面。
一种控制器,包括:
微处理单元;
闪存接口,耦接至所述微处理单元以及多个闪存芯片,其中每一闪存芯片包括多个闪存页面;
闪存管理模块,耦接至所述微处理单元以通过微处理单元对所述多个闪存芯片执行闪存管理程序,包括:实时检测记录每一闪存芯片的闪存页面的最长数据保持时间,并根据记录的每一闪存页面的最长数据保持时间,将接收到的用户数据并按照用户数据所需的最长数据保持时间而写入相应的可用的闪存页面。
一种闪存存储系统,包括:
多个闪存芯片,其中每一闪存芯片包括多个闪存页面;
控制器,耦接至所述多个闪存芯片以实时检测记录每一闪存芯片的闪存页面的最长数据保持时间,并根据记录的每一闪存页面的最长数据保持时间,将接收到的用户数据并按照用户数据所需的最长数据保持时间而写入相应的可用的闪存页面。
本发明实施例提供的一种提高闪存芯片缺陷容忍度的方法、闪存存储系统及其控制器, 通过实时检测记录的每一闪存芯片的闪存页面的最长数据保持时间,并根据记录的信息从中挑出可满足用户数据所需保持时间要求的闪存页面进行存储,由于不同的用户数据会需要非常不同的数据保持时间这样,对于用户数据所需保持时间比较小的,尽可能的充分利用包含缺陷信息存储单元的闪存页面提供数据存储功能。因此,有效的提高闪存芯片的缺陷容忍度以及闪存芯片页面利用率,进而达到延长闪存芯片使用寿命的目的。并且本发明实施例的实现与现有固态存储系统设计直接兼容,实现过程简单易行。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1中一种闪存存储系统的组成框图;
图2是本发明实施例1中闪存芯片的组成框图;
图3是本发明实施例2中一种控制器的组成框图;
图4是本发明实施例3中一种控制器的组成框图;
图5是本发明实施例4中一种提高闪存芯片缺陷容忍度的方法流程图;
图6是本发明实施例5中一种提高闪存芯片缺陷容忍度的方法流程图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供一种闪存存储系统,如图1所示,闪存存储系统100包括控制器110和闪存120,通常闪存存储系统100会与主机140一起使用,并通过通信接口130连接,以使主机140可将数据写入至存储系统100或从存储系统100中读取数据。在本实施例中,主机140可以是计算机、数字相机、摄影机、通信装置、音频播放器或视频播放器等可存储数据的任意系统。通信接口130可以是USB接口、PCI Express 接口、SATA接口、MS接口、MMC接口、SD接口、CF接口、IDE接口或其他适合的数据传输接口。在本实施例中,所述闪存存储系统100为固态硬盘(Solid State Drive, SDD), 但可理解的,在其他实施例中该闪存存储系统100也可以是随身碟或存储卡。
闪存120耦接控制器110并且用以存储数据。在本实施例中,闪存120包括多个闪存芯片122,如图2所示,每一闪存芯片122通常实质上分成多个实体区块(physical block)124,一般而言,在闪存中区块为擦除(erase)的最小单元。每一区块含有最小数码的一病被擦除的存储单元(memory cell)。每一区块通常会分割成数个闪存页面(page)126, 其中一个闪存页面通常为编程/读取(program/read)的最小单元,但是针对不同的闪存设计,最小的编程/读取(program/read)单元也可为一个扇区(sector)大小,即一页中有多个扇区并以一扇区为编程/读取(program/read)的最小单元。在本实施例中,每一闪存芯片122包括多个闪存页面(page)126,而每一个闪存页面(page)126以扇区作为最小的存储单元128。且每一闪存页面包括用户数据存放区和冗余区,而冗余区通常又包括系统管理区与错误更正区。其中,用户数据存放区用以存储用户的数据,系统管理区用以存储系统管理数据(例如每一区块的逻辑实体地址对应关系、区块的起始分页…等),而错误更正区则用以存储经纠错码编码模块(后面描述)计算后的ECC的纠错码(parity) 。
控制器110用于协调主机140与闪存120的整体运作,例如数据的写入、读取与擦除等。控制器110包括微处理单元110a、闪存接口110b、闪存管理模块110c以及纠错码编码模块110d。
微处理单元110a用于协调控制闪存接口110b、闪存管理模块110c以及纠错码编码模块,以及进行对闪存120的写入、读取与抹除等运作。
闪存接口110b电性连接至微处理单元110a并且用以存取闪存120, 也就是,主机140欲写入至闪存120的用户数据会经由闪存接口110b转换为闪存120所能接受的格式。特别是,在本实施中,闪存管理模块110c对闪存120的信息获取以及发送控制命令等也是需要通过闪存接口110b。
纠错码编码模块110d电性连接至微处理单元210a并且用于对欲写入的用户数据进行纠错码编码,从而产生相应的纠错码编码冗余并且与此数据一同储存至闪存芯片122的同一闪存页面124内,其中之后当从闪存页面124中读取此数据时,纠错码编码模块110d可依据纠错码编码冗余来检查数据是否正确,或者当数据不正确时尝试将错误的数据恢复为正确的数据。纠错码编码冗余是由所选择的纠错码本身所决定的。纠错码编码冗余量的大小直接决定了纠错码编码模块的纠错强度。
闪存管理模块110c电性连接至微处理单元110a以通过微处理单元对所述多个闪存芯片执行闪存管理程序。闪存管理模块110c用于管理闪存120,例如执行平均磨损(wear 1eve1i ng)方法、坏区块管理、维护对映表(mapping table)等。特别是,在本发明实施例中,闪存管理模块110c还用于实时检测记录每一闪存芯片的闪存页面的最长数据保持时间,并根据记录的每一闪存页面的最长数据保持时间,将接收到的用户数据并按照用户数据所需的最长数据保持时间而写入相应的可用的闪存页面;而且实时跟踪每一闪存芯片的闪存页面中的数据保持时间,当发现任一闪存页面内的数据保持时间达到所述最长数据保持时间时,将所述闪存页面内的数据拷贝到另外一闪存页面。
在具体实施时,控制器110的闪存管理模块110c实时检测记录每一闪存芯片的闪存页面经历过的编程/擦除次数以及实时检测记录每一闪存芯片的闪存页面包含的缺陷信息存储单元个数,并且根据记录的编程/擦除次数、记录的缺陷信息存储单元个数、纠错码编码冗余以及按照闪存芯片存储单元的老化模型而估算并记录每一闪存芯片的闪存页面所能够保证的最长数据保持时间。当用户操作系统将一用户数据传送至闪存存储系统100进行存储时,同时须对此用户数据所需的最长数据保持时间进行预测,并将此预测结果(用户数据所需的最长数据保持时间)与用户数据本身一起传送至闪存存储系统100的控制器110。闪存存储系统100的控制器110欲将此用户数据写入某一闪存芯片的闪存页面前,先利用纠错码编码模块110d对此数据进行纠错码编码,从而产生相应的纠错码编码冗余;并同时根据闪存管理模块110c记录的每一闪存芯片的闪存页面的最长数据保持时间中,在所有可用的闪存页面中挑出能够恰好等于用户数据所需的最长数据保持时间的闪存页面,然后将已经编码的用户数据以及产生的纠错码编码冗余一同写入该闪存页面内。
另外,由于用户操作系统有可能对于用户数据所需的最长数据保持时间的预测出现较大的偏差,闪存存储系统100的控制器110必须防止此预测偏差所导致的数据丢失。首先,控制器110利用闪存管理模块110c对所有闪存页面中的数据保持时间进行实时跟踪与纪录,一旦发现某一闪存页面内的数据保持时间达到所预测的最长数据保持时间时,则通知微处理单元110a将此闪存页面内的数据拷贝到另外一闪存页面,从而防止因为预测偏差而导致数据丢失。
此外,虽未绘示于本实施例,但控制器110可还包括一般闪存控制器常
见的功能模块,例如电源管理模块等。
为了进一步阐述本发明实施例的效果,以下进一步比较现有技术和本发明的区别。在现有闪存存储系统中,用户操作系统仅仅将所要存储的数据本身传至闪存存储系统,所以闪存存储系统的控制器没有任何关于用户数据的所需最长保持时间的信息。这样,闪存存储系统必须保证所有的用户数据拥有同样的最保守的最长保持时间(如一年),由此每一页面只能利用固定并有限的编码冗余来容忍缺陷信息存储单元,这会导致相当低的缺陷信息存储单元的容忍能力。因此,当任一闪存页面由于包含一定数量的缺陷信息存储单元而无法保证此最长数据保持时间要求时,此闪存页面则被标志为不可用页面而无法参与任何的数据存储。随着信息存储单元的缺陷率的不断上升,这种现行的设计方法会导致越来越低的闪存页面使用率。然而,在实际系统运行中,不同的数据对其存储保持时间会有不同的要求,当使用本发明的闪存存储系统时,闪存存储系统根据实时检测记录的每一闪存芯片的闪存页面的最长数据保持时间信息,从中挑出可满足用户数据所需保持时间要求的闪存页面进行存储,尽可能的充分利用包含缺陷信息存储单元的存储页面提供数据存储功能。这样可大幅度提高闪存芯片页面利用率,进而达到延长闪存芯片使用寿命的目的。
实施例2
本发明实施例提供一种控制器,适用于具有闪存的闪存存储系统上,其中,该闪存包括多个闪存芯片,每一闪存芯片包括多个闪存页面(page),而每一个闪存页面(page)以扇区作为最小的存储单元,关于闪存芯片的具体结构请参考图2以及上述实施例1的相关描述,在此不再重复描述。如图3所示,本发明实施例的控制器300包括微处理单元310、闪存接口320、闪存管理模块330以及纠错码编码模块340。
微处理单元310用于协调控制闪存接口320、闪存管理模块330和纠错码编码模块340,以及进行对闪存的写入、读取与抹除等运作。
闪存接口320电性连接至微处理单元310并且用以存取闪存, 也就是,控制器欲将写入至闪存的用户数据会经由闪存接口320转换为闪存120所能接受的格式。特别是,在本实施中,闪存管理模块330对闪存的信息获取以及发送控制命令等也是需要通过闪存接口320传送。
纠错码编码模块340电性连接至微处理单元310并且用于对欲写入的用户数据进行纠错码编码,从而产生相应的纠错码编码冗余并且与此数据一同储存至闪存芯片的同一闪存页面内,其中之后当从闪存页面中读取此数据时,纠错码编码模块340可依据纠错码编码冗余来检查数据是否正确,或者当数据不正确时尝试将错误的数据恢复为正确的数据。纠错码编码冗余是由所选择的纠错码本身所决定的。纠错码编码冗余量的大小直接决定了纠错码编码模块的纠错强度。
闪存管理模块330电性连接至微处理单元310。闪存管理模块330用于管理闪存, 特别是,在本发明实施例中,闪存管理模块330用于实时检测记录每一闪存芯片的闪存页面的最长数据保持时间,并根据记录的每一闪存页面的最长数据保持时间,将接收到的用户数据并按照用户数据所需的最长数据保持时间而写入相应的可用的闪存页面。
具体的,该闪存管理模块330:
编程/擦除次数记录单元332,用于实时检测记录每一闪存芯片的闪存页面经历过的编程/擦除次数;
缺陷信息存储单元个数记录单元334,用于实时检测记录每一闪存芯片的闪存页面包含的缺陷信息存储单元个数;
闪存页面最长数据保持时间记录单元336,用于根据记录的编程/擦除次数、记录的缺陷信息存储单元个数、纠错码编码冗余以及闪存芯片存储单元的老化模型而估算并记录每一闪存芯片的闪存页面的最长数据保持时间。
在具体实施时,控制器300的闪存管理模块330通过编程/擦除次数记录单元332实时检测记录每一闪存芯片的闪存页面经历过的编程/擦除次数,并通过缺陷信息存储单元个数记录单元334实时检测记录每一闪存芯片的闪存页面包含的缺陷信息存储单元个数,从而闪存页面最长数据保持时间记录单元336根据编程/擦除次数记录单元332记录的编程/擦除次数、陷信息存储单元个数记录单元334记录的缺陷信息存储单元个数、纠错码编码冗余以及按照闪存芯片存储单元的老化模型而估算并记录每一闪存芯片的闪存页面所能够保证的最长数据保持时间。当用户操作系统将一用户数据传送至闪存存储系统进行存储时,同时须对此用户数据所需的最长数据保持时间进行预测,并将此预测结果(用户数据所需的最长数据保持时间)与用户数据本身一起传送至的控制器300。控制器300欲将此用户数据写入某一闪存芯片的闪存页面前,先利用纠错码编码模块340对此数据进行纠错码编码,从而产生相应的纠错码编码冗余;并同时根据闪存页面最长数据保持时间记录单元336记录的每一闪存芯片的闪存页面的最长数据保持时间中,在所有可用的闪存页面中挑出能够恰好用户数据所需的最长数据保持时间的闪存页面,然后将已经编码的用户数据以及产生的纠错码编码冗余一同写入该闪存页面内。
本发明实施例中,控制器300能够实时检测记录的每一闪存芯片的闪存页面的最长数据保持时间,并根据记录的信息从中挑出可满足用户数据所需保持时间要求的闪存页面进行存储,这样,对于用户数据所需保持时间比较小的,尽可能的充分利用包含缺陷信息存储单元的闪存页面提供数据存储功能。这样,有效的提高闪存芯片的缺陷容忍度以及闪存芯片页面利用率,进而达到延长闪存芯片使用寿命的目的。
实施例3
本发明实施例提供了另一种控制器,适用于具有闪存的闪存存储系统上,其中,该闪存包括多个闪存芯片,每一闪存芯片包括多个闪存页面(page),而每一个闪存页面(page)以扇区作为最小的存储单元,关于闪存芯片的具体结构请参考图2以及上述实施例1的相关描述,在此不再重复描述。如图4所示,本发明实施例的控制器400包括微处理单元410、闪存接口420、闪存管理模块430以及纠错码编码模块440。
微处理单元410用于协调控制闪存接口420、闪存管理模块430和纠错码编码模块440,以及进行对闪存的写入、读取与抹除等运作。
闪存接口420电性连接至微处理单元410并且用以存取闪存, 也就是,控制器欲将写入至闪存的用户数据会经由闪存接口420转换为闪存420所能接受的格式。特别是,在本实施中,闪存管理模块430对闪存的信息获取以及发送控制命令等也是需要通过闪存接口420传送。
纠错码编码模块440电性连接至微处理单元410并且用于对欲写入的用户数据进行纠错码编码,从而产生相应的纠错码编码冗余并且与此数据一同储存至闪存芯片的同一闪存页面内,其中之后当从闪存页面中读取此数据时,纠错码编码模块440可依据纠错码编码冗余来检查数据是否正确,或者当数据不正确时尝试将错误的数据恢复为正确的数据。纠错码编码冗余是由所选择的纠错码本身所决定的。纠错码编码冗余量的大小直接决定了纠错码编码模块的纠错强度。
闪存管理模块430电性连接至微处理单元410。闪存管理模块430用于管理闪存, 特别是,在本发明实施例中,闪存管理模块430用于实时检测记录每一闪存芯片的闪存页面的最长数据保持时间,并根据记录的每一闪存页面的最长数据保持时间,将接收到的用户数据并按照用户数据所需的最长数据保持时间而写入相应的可用的闪存页面;以及还用于实时跟踪每一闪存芯片的闪存页面中的数据保持时间,当发现任一闪存页面内的数据保持时间达到所述最长数据保持时间时,将所述闪存页面内的数据拷贝到另外一闪存页面。
具体的,该闪存管理模块430包括:
编程/擦除次数记录单元432,用于实时检测记录每一闪存芯片的闪存页面经历过的编程/擦除次数;
缺陷信息存储单元个数记录单元434,用于实时检测记录每一闪存芯片的闪存页面包含的缺陷信息存储单元个数;
闪存页面最长数据保持时间记录单元436,用于根据记录的编程/擦除次数、记录的缺陷信息存储单元个数、纠错码编码冗余以及闪存芯片存储单元的老化模型而估算并记录每一闪存芯片的闪存页面的最长数据保持时间;以及
闪存页面数据保持时间跟踪单元438,用于实时跟踪每一闪存芯片的闪存页面中的数据保持时间,当发现任一闪存页面内的数据保持时间达到所述最长数据保持时间时,通知微处理单元将所述闪存页面内的数据拷贝到另外一闪存页面。
在具体实施时,控制器400的闪存管理模块430通过编程/擦除次数记录单元432实时检测记录每一闪存芯片的闪存页面经历过的编程/擦除次数,并通过缺陷信息存储单元个数记录单元434实时检测记录每一闪存芯片的闪存页面包含的缺陷信息存储单元个数,从而闪存页面最长数据保持时间记录单元436根据编程/擦除次数记录单元432记录的编程/擦除次数、陷信息存储单元个数记录单元434记录的缺陷信息存储单元个数、纠错码编码冗余以及按照闪存芯片存储单元的老化模型而估算并记录每一闪存芯片的闪存页面所能够保证的最长数据保持时间。当用户操作系统将一用户数据传送至闪存存储系统进行存储时,同时须对此用户数据所需的最长数据保持时间进行预测,并将此预测结果(用户数据所需的最长数据保持时间)与用户数据本身一起传送至的控制器400。控制器400欲将此用户数据写入某一闪存芯片的闪存页面前,先利用纠错码编码模块440对此数据进行纠错码编码,从而产生相应的纠错码编码冗余;并同时根据闪存页面最长数据保持时间记录单元436记录的每一闪存芯片的闪存页面的最长数据保持时间中,在所有可用的闪存页面中挑出能够恰好用户数据所需的最长数据保持时间的闪存页面,然后将已经编码的用户数据以及产生的纠错码编码冗余一同写入该闪存页面内。
另外,由于用户操作系统有可能对于用户数据所需的最长数据保持时间的预测出现较大的偏差,本实施例的控制器400还设置了闪存页面数据保持时间跟踪单元438以防止此预测偏差所导致的数据丢失。首先,控制器400利用闪存页面数据保持时间跟踪单元438对所有闪存页面中的数据保持时间进行实时跟踪与纪录,一旦发现某一闪存页面内的数据保持时间达到所预测的最长数据保持时间时,则通知微处理单元410将此闪存页面内的数据拷贝到另外一闪存页面,从而防止因为预测偏差而导致数据丢失。
本发明实施例中,控制器400能够实时检测记录的每一闪存芯片的闪存页面的最长数据保持时间,并根据记录的信息从中挑出可满足用户数据所需保持时间要求的闪存页面进行存储,这样,对于用户数据所需保持时间比较小的,尽可能的充分利用包含缺陷信息存储单元的闪存页面提供数据存储功能。因此,有效的提高闪存芯片的缺陷容忍度以及闪存芯片页面利用率,进而达到延长闪存芯片使用寿命的目的;而且对所有闪存页面中的数据保持时间进行实时跟踪与纪录,以防止因预测偏差所导致的数据丢失。
实施例4
本发明实施例提供一种提高闪存芯片缺陷容忍度的方法,适用于闪存存储系统的控制器对闪存的控制上,其中,该闪存包括多个闪存芯片,每一闪存芯片包括多个闪存页面(page),而每一个闪存页面(page)以扇区作为最小的存储单元,关于闪存芯片的具体结构请参考图2以及上述实施例1的相关描述,在此不再重复描述。如图5所示,该方法包括:
步骤S101:实时检测记录每一闪存芯片的闪存页面的最长数据保持时间;
具体的,在本实施例中,可以通过多种现有的方式检测每一闪存芯片的闪存页面的最长数据保持时间。
步骤S102:根据记录的每一闪存芯片的闪存页面的最长数据保持时间,将接收到的用户数据并按照用户数据所需的最长数据保持时间而写入相应的可用的闪存页面。
具体的,当用户操作系统将一用户数据传送至闪存存储系统进行存储时,同时须对此用户数据所需的最长数据保持时间进行预测,并将此预测结果(用户数据所需的最长数据保持时间)与用户数据本身一起传送至闪存存储系统的控制器。闪存存储系统的控制器欲将此用户数据写入某一闪存芯片的闪存页面前,先对此数据进行纠错码编码,从而产生相应的纠错码编码冗余;并同时根据记录的每一闪存芯片的闪存页面的最长数据保持时间的信息中,在所有可用的闪存页面中挑出能够恰好等于用户数据所需的最长数据保持时间的闪存页面,然后将已经编码的用户数据以及产生的纠错码编码冗余一同写入该闪存页面内。
本发明实施例中,提高闪存芯片缺陷容忍度的方法能够实时检测记录的每一闪存芯片的闪存页面的最长数据保持时间,并根据记录的信息从中挑出可满足用户数据所需保持时间要求的闪存页面进行存储,由于不同的用户数据会需要非常不同的数据保持时间这样,对于用户数据所需保持时间比较小的,该方法尽可能的充分利用包含缺陷信息存储单元的闪存页面提供数据存储功能。因此,有效的提高闪存芯片的缺陷容忍度以及闪存芯片页面利用率,进而达到延长闪存芯片使用寿命的目的。
图5是根据本发明实施例示出的提高闪存芯片缺陷容忍度的方法的流程图,其中这些步骤是闪存存储系统的控制器的微处理器执行闪存管理模块的机械指令所完成的。必须了解的是,本发明所提出的提高闪存芯片缺陷容忍度的方法步骤并不限于图5所示的执行顺序,本领域技术人员可根据本发明的精神任意更动提高闪存芯片缺陷容忍度的方法步骤。
实施例5
本发明实施例提供另一种提高闪存芯片缺陷容忍度的方法,适用于闪存存储系统的控制器对闪存的控制上,其中,该闪存包括多个闪存芯片,每一闪存芯片包括多个闪存页面(page),而每一个闪存页面(page)以扇区作为最小的存储单元,关于闪存芯片的具体结构请参考图2以及上述实施例1的相关描述,在此不再重复描述。如图6所示,该方法包括:
步骤S201:实时检测记录每一闪存芯片的闪存页面经历过的编程/擦除次数;
步骤S202:实时检测记录每一闪存芯片的闪存页面包含的缺陷信息存储单元个数;
步骤S203:根据记录的编程/擦除次数、记录的缺陷信息存储单元个数、纠错码编码冗余以及闪存芯片存储单元的老化模型而估算并记录每一闪存芯片的闪存页面的最长数据保持时间;
具体的,纠错码编码冗余由控制器的纠错码编码模块设定,纠错码编码模块用于对欲写入的用户数据进行纠错码编码,从而产生相应的纠错码编码冗余并且与此数据一同储存至闪存芯片的同一闪存页面内,其中之后当从闪存页面中读取此数据时,纠错码编码模块可依据纠错码编码冗余来检查数据是否正确,或者当数据不正确时尝试将错误的数据恢复为正确的数据。纠错码编码冗余是由所选择的纠错码本身所决定的,纠错码编码冗余量的大小直接决定了纠错码编码模块的纠错强度。
步骤S204:根据记录的每一闪存芯片的闪存页面的最长数据保持时间,将接收到的用户数据进行纠错码编码操作后,并按照用户数据所需的最长数据保持时间而将用户数据及产生的纠错码编码冗余一起写入相应的可用的闪存页面。
具体的,当用户操作系统将一用户数据传送至闪存存储系统进行存储时,同时须对此用户数据所需的最长数据保持时间进行预测,并将此预测结果(用户数据所需的最长数据保持时间)与用户数据本身一起传送至闪存存储系统的控制器。闪存存储系统的控制器欲将此用户数据写入某一闪存芯片的闪存页面前,先对此数据进行纠错码编码,从而产生相应的纠错码编码冗余;并同时根据记录的每一闪存芯片的闪存页面的最长数据保持时间的信息中,在所有可用的闪存页面中挑出能够恰好等于用户数据所需的最长数据保持时间的闪存页面,然后将已经编码的用户数据以及产生的纠错码编码冗余一同写入该闪存页面内。
步骤S205:实时跟踪每一闪存芯片的闪存页面中的数据保持时间,当发现任一闪存页面内的数据保持时间达到所述最长数据保持时间时,将所述闪存页面内的数据拷贝到另外一闪存页面。
具体的,由于用户操作系统有可能对于用户数据所需的最长数据保持时间的预测出现较大的偏差,因此必须对闪存页面中的数据保持时间进行跟踪以防止此预测偏差所导致的数据丢失。因此,需要实时对所有闪存页面中的数据保持时间进行跟踪与纪录,一旦发现某一闪存页面内的数据保持时间达到所预测的最长数据保持时间时,则将此闪存页面内的数据拷贝到另外一闪存页面,从而防止因为预测偏差而导致数据丢失。
图6是根据本发明实施例示出的提高闪存芯片缺陷容忍度的方法的流程图,其中这些步骤是闪存存储系统的控制器的微处理器执行闪存管理模块的机械指令所完成的。必须了解的是,本发明所提出的提高闪存芯片缺陷容忍度的方法步骤并不限于图6所示的执行顺序,本领域技术人员可根据本发明的精神任意更动提高闪存芯片缺陷容忍度的方法步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以借助软件加必须的通用硬件的方式来实现,当然也可以通过硬件来完成,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以使个人计算机,服务器,或者网络设备等)来执行本发明哥哥实施例所述的方法。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种提高闪存芯片缺陷容忍度的方法,其中每一闪存芯片包括多个闪存页面,其特征在于,该方法包括步骤:
实时检测记录每一闪存芯片的闪存页面的最长数据保持时间;
根据记录的每一闪存芯片的闪存页面的最长数据保持时间,将接收到的用户数据并按照用户数据所需的最长数据保持时间而写入相应的可用的闪存页面。
2.如权利要求1所述的提高闪存芯片缺陷容忍度的方法,其特征在于,将接收到的用户数据并按照用户数据所需的最长数据保持时间而写入相应的闪存页面前先对所述用户数据进行纠错码编码操作。
3.如权利要求2所述的提高闪存芯片缺陷容忍度的方法,其特征在于,每一闪存页面包括多个用于存储数据的存储单元,所述实时检测和记录每一闪存芯片的闪存页面的最长数据保持时间步骤具体包括:
实时检测记录每一闪存芯片的闪存页面经历过的编程/擦除次数;
实时检测记录每一闪存芯片的闪存页面包含的缺陷信息存储单元个数;
根据记录的编程/擦除次数、记录的缺陷信息存储单元个数、纠错码编码冗余以及闪存芯片存储单元的老化模型而估算并记录每一闪存芯片的闪存页面的最长数据保持时间。
4.如权利要求1所述的提高闪存芯片缺陷容忍度的方法,其特征在于,将接收到的用户数据并按照用户数据所需的最长数据保持时间而写入相应的闪存页面后还包括步骤:
实时跟踪每一闪存芯片的闪存页面中的数据保持时间,当发现任一闪存页面内的数据保持时间达到所述最长数据保持时间时,将所述闪存页面内的数据拷贝到另外一闪存页面。
5.一种控制器,其特征在于,包括:
微处理单元;
闪存接口,耦接至所述微处理单元以及多个闪存芯片,其中每一闪存芯片包括多个闪存页面;
闪存管理模块,耦接至所述微处理单元以通过微处理单元对所述多个闪存芯片执行闪存管理程序,包括:实时检测记录每一闪存芯片的闪存页面的最长数据保持时间,并根据记录的每一闪存页面的最长数据保持时间,将接收到的用户数据并按照用户数据所需的最长数据保持时间而写入相应的可用的闪存页面。
6.如权利要求5所述的控制器,其特征在于,还包括纠错码编码模块,用于对接收到的用户数据进行纠错码编码,从而产生相应的纠错码编码冗余以与用户数据一起写入闪存芯片的闪存页面。
7.如权利要求6所述的控制器,其特征在于,每一闪存页面包括多个用于存储数据的存储单元,而所述闪存管理模块包括:
编程/擦除次数记录单元,用于实时检测记录每一闪存芯片的闪存页面经历过的编程/擦除次数;
缺陷信息存储单元个数记录单元,用于实时检测记录每一闪存芯片的闪存页面包含的缺陷信息存储单元个数;
闪存页面最长数据保持时间记录单元,用于根据记录的编程/擦除次数、记录的缺陷信息存储单元个数、纠错码编码冗余以及闪存芯片存储单元的老化模型而估算并记录每一闪存芯片的闪存页面的最长数据保持时间。
8.如权利要求7所述的控制器,其特征在于,所述闪存管理模块还包括:
闪存页面数据保持时间跟踪单元,用于实时跟踪每一闪存芯片的闪存页面中的数据保持时间,当发现任一闪存页面内的数据保持时间达到所述最长数据保持时间时,通知微处理单元将所述闪存页面内的数据拷贝到另外一闪存页面。
9.一种闪存存储系统,其特征在于,包括:
多个闪存芯片,其中每一闪存芯片包括多个闪存页面;
控制器,耦接至所述多个闪存芯片以实时检测记录每一闪存芯片的闪存页面的最长数据保持时间,并根据记录的每一闪存页面的最长数据保持时间,将接收到的用户数据并按照用户数据所需的最长数据保持时间而写入相应的可用的闪存页面。
10.如权利要求9所述的闪存存储系统,其特征在于,所述控制器还实时跟踪每一闪存芯片的闪存页面中的数据保持时间,当发现任一闪存页面内的数据保持时间达到所述最长数据保持时间时,通知微处理单元将所述闪存页面内的数据拷贝到另外一闪存页面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103227963A CN102915764A (zh) | 2012-09-04 | 2012-09-04 | 提高闪存芯片缺陷容忍度的方法、闪存存储系统及其控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103227963A CN102915764A (zh) | 2012-09-04 | 2012-09-04 | 提高闪存芯片缺陷容忍度的方法、闪存存储系统及其控制器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102915764A true CN102915764A (zh) | 2013-02-06 |
Family
ID=47614098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103227963A Pending CN102915764A (zh) | 2012-09-04 | 2012-09-04 | 提高闪存芯片缺陷容忍度的方法、闪存存储系统及其控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102915764A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880554A (zh) * | 2012-10-09 | 2013-01-16 | 邹粤林 | 提高闪存芯片存储效率的方法、闪存存储系统及其控制器 |
CN109582224A (zh) * | 2018-11-12 | 2019-04-05 | 哈尔滨工业大学 | 一种基于自恢复效应的NAND Flash存储可靠性优化方法 |
CN113948145A (zh) * | 2020-07-17 | 2022-01-18 | 长鑫存储技术有限公司 | 封装芯片的测试方法、系统、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101208753A (zh) * | 2005-03-14 | 2008-06-25 | 晟碟以色列有限公司 | 使用相对等级来实现闪存中的磨损均衡的方法 |
CN101533670A (zh) * | 2009-04-23 | 2009-09-16 | 北京握奇数据系统有限公司 | 实现存储设备损耗均衡的方法及存储设备 |
CN101874240A (zh) * | 2007-11-19 | 2010-10-27 | 三德动力有限公司 | 增加存储器的多个块的寿命 |
CN102403036A (zh) * | 2010-09-16 | 2012-04-04 | 英飞凌科技股份有限公司 | 用于对非易失性存储器中的数据进行编程的方法和装置 |
-
2012
- 2012-09-04 CN CN2012103227963A patent/CN102915764A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101208753A (zh) * | 2005-03-14 | 2008-06-25 | 晟碟以色列有限公司 | 使用相对等级来实现闪存中的磨损均衡的方法 |
CN101874240A (zh) * | 2007-11-19 | 2010-10-27 | 三德动力有限公司 | 增加存储器的多个块的寿命 |
CN101533670A (zh) * | 2009-04-23 | 2009-09-16 | 北京握奇数据系统有限公司 | 实现存储设备损耗均衡的方法及存储设备 |
CN102403036A (zh) * | 2010-09-16 | 2012-04-04 | 英飞凌科技股份有限公司 | 用于对非易失性存储器中的数据进行编程的方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102880554A (zh) * | 2012-10-09 | 2013-01-16 | 邹粤林 | 提高闪存芯片存储效率的方法、闪存存储系统及其控制器 |
CN102880554B (zh) * | 2012-10-09 | 2013-12-25 | 邹粤林 | 提高闪存芯片存储效率的方法、闪存存储系统及其控制器 |
CN109582224A (zh) * | 2018-11-12 | 2019-04-05 | 哈尔滨工业大学 | 一种基于自恢复效应的NAND Flash存储可靠性优化方法 |
CN113948145A (zh) * | 2020-07-17 | 2022-01-18 | 长鑫存储技术有限公司 | 封装芯片的测试方法、系统、计算机设备和存储介质 |
WO2022012147A1 (zh) * | 2020-07-17 | 2022-01-20 | 长鑫存储技术有限公司 | 封装芯片的测试方法、系统、计算机设备和存储介质 |
US11862269B2 (en) | 2020-07-17 | 2024-01-02 | Changxin Memory Technologies, Inc. | Testing method for packaged chip, testing system for packaged chip, computer device and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10007431B2 (en) | Storage devices configured to generate linked lists | |
TWI342490B (en) | Flash memory data read/write processing method | |
CN102915770B (zh) | 降低闪存芯片内部数据互相串扰的方法、闪存存储系统及其控制器 | |
CN107622783B (zh) | 译码方法、存储器存储装置及存储器控制电路单元 | |
CN102880554B (zh) | 提高闪存芯片存储效率的方法、闪存存储系统及其控制器 | |
US8099543B2 (en) | Methods of operarting memory devices within a communication protocol standard timeout requirement | |
US9639463B1 (en) | Heuristic aware garbage collection scheme in storage systems | |
JP2012022422A (ja) | 半導体記録再生装置 | |
KR102456104B1 (ko) | 데이터 신뢰성에 따라 동작 조건을 변경하는 저장 장치의 동작 방법 | |
CN102880432B (zh) | 利用数据有限寿命提高闪存芯片写入速度的方法、系统及其控制器 | |
KR102393323B1 (ko) | 재사용 주기를 이용하여 사용자 데이터를 쓰기 위한 워드라인을 결정하는 저장 장치의 동작 방법 | |
CN102915261A (zh) | 提高闪存芯片存储单元利用率的方法、装置和系统 | |
CN105022695A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN102915764A (zh) | 提高闪存芯片缺陷容忍度的方法、闪存存储系统及其控制器 | |
CN104252317B (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
CN105843746A (zh) | 固态硬盘的写入方法 | |
CN102253899A (zh) | 一种提高闪存芯片存储单元使用效率的方法 | |
CN101645026B (zh) | 根据错误更正码更新闪存页面的储存装置与方法 | |
US20100020619A1 (en) | Memory controller, memory system, recording and reproducing method for memory system, and recording apparatus | |
CN106205699B (zh) | 存储器管理方法、存储器存储装置与存储器控制电路单元 | |
CN106354651B (zh) | 平均磨损方法、存储器控制电路单元及存储器储存装置 | |
CN102915277A (zh) | 提高闪存芯片内部数据拷贝速度的方法、闪存存储系统及其控制器 | |
US20220075718A1 (en) | Keeping Zones Open With Intermediate Padding | |
US11294598B2 (en) | Storage devices having minimum write sizes of data | |
KR20130050586A (ko) | 낸드 플래시 메모리의 셀 방식 변경 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130206 |