提高闪存芯片存储效率的方法、闪存存储系统及其控制器的制作方法

文档序号:6378462阅读:146来源:国知局

专利名称::提高闪存芯片存储效率的方法、闪存存储系统及其控制器的制作方法
技术领域
:本发明涉及通信
技术领域
,尤其涉及一种提高闪存芯片存储效率的方法、闪存存储系统及其控制器。
背景技术
:作为唯一主流的固态非挥发数据储存技术,闪存已经成为了全球半导体产业体系中发展最为迅速的一环。2010年市场研究报告显示,闪存产品的市场已突破200亿美元。基于闪存芯片的固态数据存储系统主要包含一个固态存储系统控制器和一个以上闪存芯片。闪存芯片的基本信息存储单元是浮栅金属氧化物半导体晶体管(Floating-GateTransistor)。浮栅金属氧化物半导体晶体管的阈值电压可以通过注射一定数量的电子进入浮栅而改变。因此,通过对浮栅内电子数目的精确控制,每个存储单元,即浮栅金属氧化物半导体晶体管,可储存多个比特信息。精确控制浮栅内电子数目的过程通常被称为编程。在每一个存储单元可以被编程之前,其浮栅内的所有电子必须被移走,从而使得其阈值电压被置为最低,这个过程被称为擦除。在对信息存储单元编程的过程中,业界使用一种渐进式的“编程一校验一再编程”的方法以实现对浮栅内电子数目的精确控制。由于各种原因如电子隧道效应,浮栅内电子数目会随着时间而降低,这会导致闪存芯片只能保证有限的数据非挥发存储保持时间。重复的“编程/擦除”的操作会逐渐降低浮栅金属氧化物半导体晶体管的噪音容限,从而使得闪存芯片只有一定的“编程/擦除”次数限度,加上随着闪存制造工艺精度的不断提高,闪存器件的存储密度不断升高、价格不断下降,这样更加重了重复“编程/擦除”操作对于信息存储单元的副作用,使得闪存芯片的使用寿命、数据保持时间、及可靠性不断下降,由此固态存储系统控制器必须采用越来越强大而复杂的纠错码来应付不断下降的闪存信息存储单元可靠性,以保证整个固态存储系统的可靠性、使用寿命、及数据保持时间。随着闪存制造工艺精度的不断提高,信息存储单元的缺陷率也会不断上升。若闪存芯片中的某一存储页面含有过多的缺陷存储单元,此存储页面就会被标示为坏页面而被禁止使用。在现有设计中,在决定某一存储页面是否应被标示为坏页面时,其使用的标准相当严格和保守若所含的缺陷存储单元使得此存储页面无法完全保证在最差情况下(即最多所允许的编程/擦除次数和最长标定的存储保持时间)的数据可靠性,此页面即被标示为坏页面。可见,在现有实现中,对坏页面的标示完全根据最差可能发生的情况。显然,如果信息存储单元的缺陷率足够低,这种严格并且保守的坏页面标示标准可简化闪存芯片的管理,并同时不会造成过低的信息存储单元的使用效率。但是,随着信息存储单元缺陷率的不断上升,这种严格并且保守的坏块标示标准会导致急剧下降的信息存储单元使用效率。在现有技术中,申请号为201110214689.4的中国申请专利公开了一种提高闪存芯片存储单元使用效率的方法,包括首先固态存储系统控制器将与其通信连接的闪存芯片内的所有存储块划分为好块、灰块和死块三类,其中存储块划分标准为,若存储块内所有存储页面不存在按照判定标准所设定的缺陷存储单元,此存储块即为好块,若存储块内超过预定数目的存储页面存在有缺陷存储单元,此存储块即为死块,除去好块和坏块之外的存储块均为灰块,另外将同固态存储系统控制器相通信连接的灰块特性存储模块中存储上所有灰块的特性指标,并且在固态存储系统控制器中设置灰块查询模块和存储块监控模块,在当用户在往对应的闪存芯片写入用户数据时,固态存储系统控制器根据当前的灰块的是否被使用情况决定是否能将此用户数据写入该灰块内,如果该灰块正在被使用,就不能将此用户数据写入该灰块内,如果该灰块未在被使用,就能将此用户数据写入该灰块内,在将此用户数据写入灰块内时,固态存储系统控制器中的灰块查询模块通过调动固态存储系统控制器对灰块特性存储模块进行访问,获取相应灰块的具体特性指标,根据此特性指标信息,固态存储系统控制器就选择能存储该用户数据的灰块内物理页面进行存储,同时固态存储系统控制器通过存储块监控模块实现对所有好块和灰块的动态监控,实时地检测好块和灰块以动态决定是否应将该好块降格为灰块,和是否应将该灰块降格为死块,该动态决定的标准为,在实时检测过程中,如果检测到好块中的存储页面出现缺陷存储单元且缺陷存储单元未超过预定数目,即将该好块降格为灰块,如果检测到灰块中的存储页面出现缺陷存储单元且缺陷存储单元超过预定数目,即将该灰块降格为死块。但是,该方法是以闪存的存储块作为管理单元而进行判断处理的,即根据划分标准将存储块划分为好块、灰块和死块三类,那么当存储块内超过预定数目的存储页面存在有缺陷存储单元时,即存储块中的部分页出错或者失效时,控制器会将该块标记为坏块(badblock),并将其弃用,严重浪费资源。另外,申请号为US2012,0600,54A1的美国申请专利则公开了一种闪存坏块的利用方法,具体公开了首先借助量产工具软件扫描闪存,发现其中的坏块并记录在闪存控制器内;再对量产工具软件扫描发现的闪存坏块根据事先设定的“可供利用”之筛选条件再次扫描,符合筛选条件的所述坏块被标记并记录在闪存控制器内,等待使用;不符合筛选条件的坏块则标记为真正的坏块被记录在闪存控制器内,不再使用;重复所述扫描和标记过程直到所有闪存坏块都被标记和记录;最后将闪存中符合“可供利用”之筛选条件的坏块放在替换区等待使用。该方法充分利用了闪存的坏块,将那些超出闪存控制器ECC纠错范围,但仅仅是对某些数据不能存取,而某些数据能够存取的坏块作为能使用的闪存块;这样可扩展闪存的可用容量。。但是,该方法实现过程比较复杂,而且需要改变现有闪存存储系统的编程/擦除程序而实现,不利于普及使用。
发明内容本发明的实施例提供一种提高闪存芯片存储效率的方法、闪存存储系统及其控制器,能够有效地提高闪存页面的存储效率,且实现过程简单、易行。为达到上述目的,本发明的实施例采用如下技术方案一种提高闪存芯片存储效率的方法,其中每一闪存芯片包括多个闪存页面,该方法包括步骤实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间,并与所述闪存页面的最长数据保持时间标定值对比以将所述闪存页面记录为安全页面、危险页面或坏页面;将接收到的用户数据写入可用的且记录为安全页面的闪存页面,在没有可用的安全页面的情况下才将接收到的用户数据写入可用的且记录为危险页面的闪存页面,记录为坏页面的存储页面禁止写入数据。一种控制器,包括微处理单元;闪存接口,耦接至所述微处理单元以及多个闪存芯片,其中每一闪存芯片包括多个闪存页面;闪存管理模块,耦接至所述微处理单元以通过微处理单元对所述多个闪存芯片执行闪存管理程序,包括实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间,并与所述闪存页面的最长数据保持时间标定值对比以将所述闪存页面记录为安全页面、危险页面或坏页面;将接收到的用户数据写入可用的且记录为安全页面的闪存页面,在没有可用的安全页面的情况下才将接收到的用户数据写入可用的且记录为危险页面的闪存页面,记录为坏页面的存储页面禁止写入数据。一种闪存存储系统,包括多个闪存芯片,其中每一闪存芯片包括多个闪存页面;控制器,耦接至所述多个闪存芯片以实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间,并与所述闪存页面的最长数据保持时间标定值对比以将所述闪存页面记录为安全页面、危险页面或坏页面;将接收到的用户数据写入可用的且记录为安全页面的闪存页面,在没有可用的安全页面的情况下才将接收到的用户数据写入可用的且记录为危险页面的闪存页面,记录为坏页面的存储页面禁止写入数据。本发明实施例提供的一种提高闪存芯片存储效率的方法、闪存存储系统及其控制器,通过实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间,并与所述闪存页面的最长数据保持时间标定值对比以将所述闪存页面记录为安全页面、危险页面或坏页面;并系统实际运行过程中,当需要写入用户数据时,总是先查看在保证最快写入速度的前提下是否有安全页面可用于存储该数据,若是这样的可用的安全页面存在,则总是优先用来存储用户数据;否则,才会选择可用的危险页面进行数据存储。当采用这样的页面选择的方式时,可尽量减少对于危险页面的操作、降低危险页面降格为坏页面的概率,进而保证整体固态存储系统尽可能地长时间保持可用的存储空间,从而提高闪存芯片存储效率。并且本发明实施例的实现与现有固态存储系统设计直接兼容,实现过程简单易行。为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是本发明实施例I中一种闪存存储系统的组成框图2是本发明实施例I中闪存芯片的组成框图3是本发明实施例2中一种控制器的组成框图4是本发明实施例3中一种提高闪存芯片存储效率的方法流程图;图5是本发明实施例3中一种实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间的方法流程图。具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例I本发明实施例提供一种闪存存储系统,如图I所示,闪存存储系统100包括控制器110和闪存120,通常闪存存储系统100会与主机140—起使用,并通过通信接口130连接,以使主机140可将数据写入至存储系统100或从存储系统100中读取数据。在本实施例中,主机140可以是计算机、数字相机、摄影机、通信装置、音频播放器或视频播放器等可存储数据的任意系统。通信接口130可以是USB接口、PCIExpress接口、SATA接口、MS接口、MMC接口、SD接口、CF接口、IDE接口或其他适合的数据传输接口。在本实施例中,所述闪存存储系统100为固态硬盘(SolidStateDrive,SDD),但可理解的,在其他实施例中该闪存存储系统100也可以是随身碟或存储卡。闪存120耦接控制器110并且用以存储数据。在本实施例中,闪存120包括多个闪存芯片122,如图2所示,每一闪存芯片122通常实质上分成多个实体区块(physicalblock)124,一般而言,在闪存中区块为擦除(erase)的最小单元。每一区块含有最小数码的一病被擦除的存储单元(memorycell)。每一区块通常会分割成数个闪存页面(page)126,其中一个闪存页面通常为编程/读取(program/read)的最小单元,但是针对不同的闪存设计,最小的编程/读取(program/read)单元也可为一个扇区(sector)大小,即一页中有多个扇区并以一扇区为编程/读取(program/read)的最小单元。在本实施例中,每一闪存芯片122包括多个闪存页面(page)126,而每一个闪存页面(page)126以扇区作为最小的存储单元128。且每一闪存页面包括用户数据存放区和冗余区,而冗余区通常又包括系统管理区与错误更正区。其中,用户数据存放区用以存储用户的数据,系统管理区用以存储系统管理数据(例如每一区块的逻辑实体地址对应关系、区块的起始分页…等),而错误更正区则用以存储经纠错码编码模块(后面描述)计算后的ECC的纠错码(parity)。控制器110用于协调主机140与闪存120的整体运作,例如数据的写入、读取与擦除等。控制器Iio包括微处理单元110a、闪存接口110b、闪存管理模块IlOc以及纠错码编码模块IlOcL微处理单元IlOa用于协调控制闪存接口110b、闪存管理模块IlOc以及纠错码编码模块,以及进行对闪存120的写入、读取与抹除等运作。闪存接口IlOb电性连接至微处理单元IlOa并且用以存取闪存120,也就是,主机140欲写入至闪存120的用户数据会经由闪存接口IlOb转换为闪存120所能接受的格式。特别是,在本实施中,闪存管理模块IlOc对闪存120的信息获取以及发送控制命令等也是需要通过闪存接口110b。纠错码编码模块IlOd电性连接至微处理单元210a并且用于对欲写入的用户数据进行纠错码编码,从而产生相应的纠错码编码冗余并且与此数据一同储存至闪存芯片122的同一闪存页面124内,其中之后当从闪存页面124中读取此数据时,纠错码编码模块IlOd可依据纠错码编码冗余来检查数据是否正确,或者当数据不正确时尝试将错误的数据恢复为正确的数据。纠错码编码冗余是由所选择的纠错码本身所决定的。纠错码编码冗余量的大小直接决定了纠错码编码模块的纠错强度。闪存管理模块IlOc电性连接至微处理单元IlOa以通过微处理单元对所述多个闪存芯片执行闪存管理程序。闪存管理模块IlOc用于管理闪存120,例如执行平均磨损(wearleveling)方法、坏区块管理、维护对映表(mappingtable)等。特别是,在本发明实施例中,闪存管理模块IlOc还用于实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间,并与所述闪存页面的最长数据保持时间标定值对比以将所述闪存页面记录为安全页面、危险页面或坏页面;将接收到的用户数据写入可用的且记录为安全页面的闪存页面,在没有可用的安全页面的情况下才将接收到的用户数据写入可用的且记录为危险页面的闪存页面,记录为坏页面的存储页面禁止写入数据。在具体实施时,控制器110的闪存管理模块IlOc通过实时检测记录每一闪存芯片的闪存页面经历过的编程/擦除次数以及实时检测记录每一闪存芯片的闪存页面包含的缺陷信息存储单元个数,并且根据记录的编程/擦除次数估算所述闪存页面当前的最差可能的噪音容限,以及根据所述闪存页面当前的最差可能的噪音容限、记录的缺陷信息存储单元个数以及纠错码编码冗余而估算所述闪存页面所能保证的最长数据保持时间,并与所述闪存页面的最长数据保持时间标定值对比以将所述闪存页面记录为安全页面、危险页面或坏页面。具体的,将所述闪存页面记录为安全页面、危险页面或坏页面的划分标准如下当实时检测估算的闪存页面所能保证的最长数据保持时间落入闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围)内,则将所述闪存页面记录为危险页面;当实时检测估算的闪存页面所能保证的最长数据保持时间大于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内),则将所述闪存页面记录为安全页面;当实时检测估算的闪存页面所能保证的最长数据保持时间小于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内),则将所述闪存页面记录为坏页面。换句话说,当实时检测估算的闪存页面所能保证的最长数据保持时间大于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内)时,该闪存页面可完全保证在最差情况下(即最多所允许的编程/擦除次数和最长标定的存储保持时间)的数据可靠性,即可完全保证闪存页面标定的最长数据保持时间,此闪存页面即为安全页面;当实时检测估算的闪存页面所能保证的最长数据保持时间小于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内),即闪存页面在其当前的噪音容限以及缺陷存储单元数目下,已不可能保证其标定的最长存储保持时间,则将所述闪存页面记录为坏页面。除去安全页面和坏页面之外的存储块均为危险页面,即实时检测估算的闪存页面所能保证的最长数据保持时间落入闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围)内,则将所述闪存页面均记录为危险页面。可理解的,所述安全页面、危险页面或坏页面并不是固定不变的,所述控制器实时对每一闪存页面所动态监控,实时地检测安全页面和危险页面以动态决定是否应将安全页面降格为危险页面,和是否应将该危险页面降格为坏页面,该动态决定的标准为与前述一致,即在实时检测过程中,如果检测到安全页面中出现新的缺陷存储单元或者安全页面噪声容限下降,以至于无法完全保证在最差情况下(即最多所允许的编程/擦除次数和最长标定的存储保持时间)的数据可靠性,即实时检测估算的闪存页面所能保证的最长数据保持时间落入闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围)内,将该安全页面降格记录为危险页面。如果检测到危险页面中出现更多的缺陷存储单元或者其噪声容限继续下降,以至于若存储页面在其当前的噪音容限以及缺陷存储单元数目下,已不可能保证标定的最长存储保持时间,即实时检测估算的闪存页面所能保证的最长数据保持时间小于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内),将该危险页面降格记录为坏页面。当用户操作系统将一用户数据传送至闪存存储系统100进行存储时,闪存存储系统100的控制器总是先查看在保证最快写入速度的前提下是否有记录为安全页面可用于存储该数据,若是存在这样的可用的安全页面,则总是优先用来存储用户数据;否则,控制器110才会选择可用的危险页面进行数据存储,而记录为坏页面的闪存页面是任何时候都禁止写入数据的。当采用这样的页面选择的方式时,可尽量减少对于危险页面的操作、降低危险页面降格为坏页面的概率,进而保证整体固态存储系统尽可能地长时间保持可用的存储空间。此外,虽未绘示于本实施例,但控制器110可还包括一般闪存控制器常见的功能模块,例如电源管理模块等。实施例2本发明实施例提供一种控制器,适用于具有闪存的闪存存储系统上,其中,该闪存包括多个闪存芯片,每一闪存芯片包括多个闪存页面(page),而每一个闪存页面(page)以扇区作为最小的存储单元,关于闪存芯片的具体结构请参考图2以及上述实施例I的相关描述,在此不再重复描述。如图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,用于根据记录的编程/擦除次数估算所述闪存页面当前的最差可能的噪音容限;页面性质记录单元338,用于根据所述闪存页面当前的最差可能的噪音容限、记录的缺陷信息存储单元个数以及纠错码编码冗余而估算所述闪存页面所能保证的最长数据保持时间,并与所述闪存页面的最长数据保持时间标定值对比以将所述闪存页面记录为安全页面、危险页面或坏页面。在具体实施时,控制器300的闪存管理模块330通过编程/擦除次数记录单元332实时检测记录每一闪存芯片的闪存页面经历过的编程/擦除次数,并通过缺陷信息存储单元个数记录单元334实时检测记录每一闪存芯片的闪存页面包含的缺陷信息存储单元个数,并且利用噪音容限估算单元336根据编程/擦除次数记录单元332记录的编程/擦除次数估算所述每一闪存芯片的闪存页面当前的最差可能的噪音容限,从而页面性质记录单元338根据噪音容限估算单元336估算的闪存页面当前的最差可能的噪音容限、缺陷信息存储单元个数记录单元334记录的缺陷信息存储单元个数以及纠错码编码冗余估算每一闪存芯片的闪存页面所能够保证的最长数据保持时间,并将估算的每一闪存页面所能够保证的最长数据保持时间与其对应的最长数据保持时间标定值进行对比,从而将所述闪存页面记录为安全页面、危险页面或坏页面。具体的,将所述闪存页面记录为安全页面、危险页面或坏页面的划分标准如下当实时检测估算的闪存页面所能保证的最长数据保持时间落入闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围)内,则将所述闪存页面记录为危险页面;当实时检测估算的闪存页面所能保证的最长数据保持时间大于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内),则将所述闪存页面记录为安全页面;当实时检测估算的闪存页面所能保证的最长数据保持时间小于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内),则将所述闪存页面记录为坏页面。换句话说,当实时检测估算的闪存页面所能保证的最长数据保持时间大于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内)时,该闪存页面可完全保证在最差情况下(即最多所允许的编程/擦除次数和最长标定的存储保持时间)的数据可靠性,即可完全保证闪存页面标定的最长数据保持时间,此闪存页面即为安全页面;当实时检测估算的闪存页面所能保证的最长数据保持时间小于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内),即闪存页面在其当前的噪音容限以及缺陷存储单元数目下,已不可能保证其标定的最长存储保持时间,则将所述闪存页面记录为坏页面。除去安全页面和坏页面之外的存储块均为危险页面,即实时检测估算的闪存页面所能保证的最长数据保持时间落入闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围)内,则将所述闪存页面均记录为危险页面。可理解的,所述安全页面、危险页面或坏页面并不是固定不变的,所述控制器实时对每一闪存页面所动态监控,实时地检测安全页面和危险页面以动态决定是否应将安全页面降格为危险页面,和是否应将该危险页面降格为坏页面,该动态决定的标准为与前述一致,即在实时检测过程中,如果检测到安全页面中出现新的缺陷存储单元或者安全页面噪声容限下降,以至于无法完全保证在最差情况下(即最多所允许的编程/擦除次数和最长标定的存储保持时间)的数据可靠性,即实时检测估算的闪存页面所能保证的最长数据保持时间落入闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围)内,将该安全页面降格记录为危险页面。如果检测到危险页面中出现更多的缺陷存储单元或者其噪声容限继续下降,以至于若存储页面在其当前的噪音容限以及缺陷存储单元数目下,已不可能保证标定的最长存储保持时间,即实时检测估算的闪存页面所能保证的最长数据保持时间小于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内),将该危险页面降格记录为坏页面。当控制器300欲将此用户数据写入某一闪存芯片的闪存页面前,先利用纠错码编码模块340对此数据进行纠错码编码,从而产生相应的纠错码编码冗余;并同时查看页面性质记录单元338是否有记录为安全页面可用于存储该数据,若是存在这样的可用的安全页面,则总是优先用来存储用户数据;否则,控制器110才会选择可用的危险页面进行数据存储,而记录为坏页面的闪存页面是任何时候都禁止写入数据的。当采用这样的页面选择的方式时,可尽量减少对于危险页面的操作、降低危险页面降格为坏页面的概率,进而保证整体固态存储系统尽可能地长时间保持可用的存储空间。实施例3本发明实施例提供一种提高闪存芯片存储效率的方法,适用于闪存存储系统的控制器对闪存的控制上,其中,该闪存包括多个闪存芯片,每一闪存芯片包括多个闪存页面(page),而每一个闪存页面(page)以扇区作为最小的存储单元,关于闪存芯片的具体结构请参考图2以及上述实施例I的相关描述,在此不再重复描述。如图4所示,该方法包括步骤SlOl:实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间,并与所述闪存页面的最长数据保持时间标定值对比以将所述闪存页面记录为安全页面、危险页面或坏页面;具体的,在本实施例中,可以通过多种现有的方式检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间。且将所述闪存页面记录为安全页面、危险页面或坏页面的划分标准如下当实时检测估算的闪存页面所能保证的最长数据保持时间落入闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围)内,则将所述闪存页面记录为危险页面;当实时检测估算的闪存页面所能保证的最长数据保持时间大于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内),则将所述闪存页面记录为安全页面;当实时检测估算的闪存页面所能保证的最长数据保持时间小于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内),则将所述闪存页面记录为坏页面。换句话说,当实时检测估算的闪存页面所能保证的最长数据保持时间大于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内)时,该闪存页面可完全保证在最差情况下(即最多所允许的编程/擦除次数和最长标定的存储保持时间)的数据可靠性,即可完全保证闪存页面标定的最长数据保持时间,此闪存页面即为安全页面;当实时检测估算的闪存页面所能保证的最长数据保持时间小于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内),即闪存页面在其当前的噪音容限以及缺陷存储单元数目下,已不可能保证其标定的最长存储保持时间,则将所述闪存页面记录为坏页面。除去安全页面和坏页面之外的存储块均为危险页面,即实时检测估算的闪存页面所能保证的最长数据保持时间落入闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围)内,则将所述闪存页面均记录为危险页面。步骤S102:将接收到的用户数据写入可用的且记录为安全页面的闪存页面,在没有可用的安全页面的情况下才将接收到的用户数据写入可用的且记录为危险页面的闪存页面,记录为坏页面的存储页面禁止写入数据。具体的,当用户操作系统将一用户数据传送至闪存存储系统进行存储时,总是先查看在保证最快写入速度的前提下是否有记录为安全页面可用于存储该数据,若是存在这样的可用的安全页面,则总是优先用来存储用户数据;否则,才会选择可用的危险页面进行数据存储,而记录为坏页面的闪存页面是任何时候都禁止写入数据的。当采用这样的页面选择的方式时,可尽量减少对于危险页面的操作、降低危险页面降格为坏页面的概率,进而保证整体固态存储系统尽可能地长时间保持可用的存储空间。参考图5,图5是本发明实施例3中一种实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间的方法流程图,包括步骤S201:实时检测记录每一闪存芯片的闪存页面经历过的编程/擦除次数;步骤S202:实时检测记录每一闪存芯片的闪存页面包含的缺陷信息存储单元个数;具体的,所述的缺陷存储单元的判定标准可为以下三种情况之一第一、当存储块被擦除后,其中闪存页面中未能被成功擦除的存储单元视为缺陷存储单元;第二、当用户数据被写入闪存页面时,当用户数据写入操作的执行时间超过预定值后仍有存储单元没有被成功写入,没有被成功写入的存储单元视为缺陷存储单元;第三、当用户数据从闪存页面中被读取时,通过比较纠错码加码器的输入数据和输出数据,得到闪存页面的数据存储错误率,据此能估计缺陷存储单元的数量。步骤S203:根据记录的编程/擦除次数估算所述闪存页面当前的最差可能的噪音容限;步骤S204:根据所述闪存页面当前的最差可能的噪音容限、记录的缺陷信息存储单元个数以及纠错码编码冗余而估算所述闪存页面所能保证的最长数据保持时间。具体的,纠错码编码冗余由控制器的纠错码编码模块设定,纠错码编码模块用于对欲写入的用户数据进行纠错码编码,从而产生相应的纠错码编码冗余并且与此数据一同储存至闪存芯片的同一闪存页面内,其中之后当从闪存页面中读取此数据时,纠错码编码模块可依据纠错码编码冗余来检查数据是否正确,或者当数据不正确时尝试将错误的数据恢复为正确的数据。纠错码编码冗余是由所选择的纠错码本身所决定的,纠错码编码冗余量的大小直接决定了纠错码编码模块的纠错强度。这样,当实时估算出所述闪存页面当前所能保证的最长数据保持时间后,将估算出所述闪存页面当前所能保证的最长数据保持时间与其闪存页面的最长数据保持时间标定值进行对比,从而将所述闪存页面记录为安全页面、危险页面或坏页面。而且,可理解的,所述安全页面、危险页面或坏页面并不是固定不变的,所述控制器实时对每一闪存页面所动态监控,实时地检测安全页面和危险页面以动态决定是否应将安全页面降格为危险页面,和是否应将该危险页面降格为坏页面,该动态决定的标准为与前述一致,即在实时检测过程中,如果检测到安全页面中出现新的缺陷存储单元或者安全页面噪声容限下降,以至于无法完全保证在最差情况下(即最多所允许的编程/擦除次数和最长标定的存储保持时间)的数据可靠性,即实时检测估算的闪存页面所能保证的最长数据保持时间落入闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围)内,将该安全页面降格记录为危险页面。如果检测到危险页面中出现更多的缺陷存储单元或者其噪声容限继续下降,以至于若存储页面在其当前的噪音容限以及缺陷存储单元数目下,已不可能保证标定的最长存储保持时间,即实时检测估算的闪存页面所能保证的最长数据保持时间小于闪存页面的最长数据保持时间标定值范围(大约为与标定值偏差在10%范围内),将该危险页面降格记录为坏页面。图4是根据本发明实施例示出的提高闪存芯片存储效率的方法的流程图,其中这些步骤是闪存存储系统的控制器的微处理器执行闪存管理模块的机械指令所完成的。必须了解的是,本发明所提出的提高闪存芯片存储效率的方法步骤并不限于图4所示的执行顺序,本领域技术人员可根据本发明的精神任意更动提高闪存芯片存储效率的方法步骤。同理,本发明所提出的实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间的方法步骤并不限于图5所示的执行顺序。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以借助软件加必须的通用硬件的方式来实现,当然也可以通过硬件来完成,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以使个人计算机,服务器,或者网络设备等)来执行本发明哥哥实施例所述的方法。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。权利要求1.一种提高闪存芯片存储效率的方法,其中每一闪存芯片包括多个闪存页面,其特征在于,该方法包括步骤实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间,并与所述闪存页面的最长数据保持时间标定值对比以将所述闪存页面记录为安全页面、危险页面或坏页面;将接收到的用户数据写入可用的且记录为安全页面的闪存页面,在没有可用的安全页面的情况下才将接收到的用户数据写入可用的且记录为危险页面的闪存页面,记录为坏页面的存储页面禁止写入数据。2.如权利要求I所述的提高闪存芯片存储效率的方法,其特征在于,将所述闪存页面记录为安全页面、危险页面或坏页面的根据如下当实时检测估算的闪存页面所能保证的最长数据保持时间落入闪存页面的最长数据保持时间标定值范围内,则将所述闪存页面记录为危险页面;当实时检测估算的闪存页面所能保证的最长数据保持时间大于闪存页面的最长数据保持时间标定值范围,则将所述闪存页面记录为安全页面;当实时检测估算的闪存页面所能保证的最长数据保持时间小于闪存页面的最长数据保持时间标定值范围,则将所述闪存页面记录为坏页面。3.如权利要求2所述的提高闪存芯片存储效率的方法,其特征在于,所述闪存页面的最长数据保持时间标定值范围为与标定值偏差在10%范围内。4.如权利要求I所述的提高闪存芯片存储效率的方法,其特征在于,实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间具体包括步骤实时检测记录每一闪存芯片的闪存页面经历过的编程/擦除次数;实时检测记录每一闪存芯片的闪存页面包含的缺陷信息存储单元个数;根据记录的编程/擦除次数估算所述闪存页面当前的最差可能的噪音容限,并根据所述闪存页面当前的最差可能的噪音容限、记录的缺陷信息存储单元个数以及纠错码编码冗余而估算所述闪存页面所能保证的最长数据保持时间。5.—种控制器,其特征在于,包括微处理单元;闪存接口,耦接至所述微处理单元以及多个闪存芯片,其中每一闪存芯片包括多个闪存页面;闪存管理模块,耦接至所述微处理单元以通过微处理单元对所述多个闪存芯片执行闪存管理程序,包括实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间,并与所述闪存页面的最长数据保持时间标定值对比以将所述闪存页面记录为安全页面、危险页面或坏页面;将接收到的用户数据写入可用的且记录为安全页面的闪存页面,在没有可用的安全页面的情况下才将接收到的用户数据写入可用的且记录为危险页面的闪存页面,记录为坏页面的存储页面禁止写入数据。6.如权利要求5所述的控制器,其特征在于,将所述闪存页面记录为安全页面、危险页面或坏页面的根据如下当实时检测估算的闪存页面所能保证的最长数据保持时间落入闪存页面的最长数据保持时间标定值范围内,则将所述闪存页面记录为危险页面;当实时检测估算的闪存页面所能保证的最长数据保持时间大于闪存页面的最长数据保持时间标定值范围,则将所述闪存页面记录为安全页面;当实时检测估算的闪存页面所能保证的最长数据保持时间小于闪存页面的最长数据保持时间标定值范围,则将所述闪存页面记录为坏页面。7.如权利要求6所述的控制器,其特征在于,所述闪存页面的最长数据保持时间标定值范围为与标定值偏差在10%范围内。8.如权利要求5所述的控制器,其特征在于,每一闪存页面包括多个用于存储数据的存储单元,而所述闪存管理模块包括编程/擦除次数记录单元,用于实时检测记录每一闪存芯片的闪存页面经历过的编程/擦除次数;缺陷信息存储单元个数记录单元,用于实时检测记录每一闪存芯片的闪存页面包含的缺陷信息存储单元个数;噪音容限估算单元,用于根据记录的编程/擦除次数估算每一闪存芯片的闪存页面当前的最差可能的噪音容限;页面性质记录单元,用于根据每一闪存页面当前的最差可能的噪音容限、记录的缺陷信息存储单元个数以及纠错码编码冗余而估算所述闪存页面所能保证的最长数据保持时间,并与所述闪存页面的最长数据保持时间标定值对比以将所述闪存页面记录为安全页面、危险页面或坏页面。9.一种闪存存储系统,其特征在于,包括多个闪存芯片,其中每一闪存芯片包括多个闪存页面;控制器,耦接至所述多个闪存芯片以实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间,并与闪存页面的最长数据保持时间标定值对比以将所述闪存页面记录为安全页面、危险页面或坏页面;将接收到的用户数据写入可用的且记录为安全页面的闪存页面,在没有可用的安全页面的情况下才将接收到的用户数据写入可用的且记录为危险页面的闪存页面,记录为坏页面的存储页面禁止写入数据。10.如权利要求9所述的闪存存储系统,其特征在于,所述控制器将所述闪存页面记录为安全页面、危险页面或坏页面的根据如下当实时检测估算的闪存页面所能保证的最长数据保持时间落入闪存页面的最长数据保持时间标定值范围内,则将所述闪存页面记录为危险页面;当实时检测估算的闪存页面所能保证的最长数据保持时间大于闪存页面的最长数据保持时间标定值范围,则将所述闪存页面记录为安全页面;当实时检测估算的闪存页面所能保证的最长数据保持时间小于闪存页面的最长数据保持时间标定值范围,则将所述闪存页面记录为坏页面。全文摘要本发明公开了一种提高闪存芯片存储效率的方法,其中每一闪存芯片包括多个闪存页面,该方法包括步骤实时检测估算每一闪存芯片的闪存页面所能保证的最长数据保持时间,并与所述闪存页面的最长数据保持时间标定值对比以将所述闪存页面记录为安全页面、危险页面或坏页面;将接收到的用户数据写入可用的且记录为安全页面的闪存页面,在没有可用的安全页面的情况下才将接收到的用户数据写入可用的且记录为危险页面的闪存页面,记录为坏页面的存储页面禁止写入数据。本发明还公开了一种闪存存储系统及其控制器。采用本发明实施例,能够有效地提高闪存页面的存储利用率,且实现过程简单、易行。文档编号G06F12/02GK102880554SQ20121037910公开日2013年1月16日申请日期2012年10月9日优先权日2012年10月9日发明者邹粤林,张彤申请人:邹粤林
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1