一种缓解MLC闪存写干扰问题的方法技术

技术编号:18206178 阅读:330 留言:0更新日期:2018-06-13 07:09
本发明专利技术公开了缓解MLC闪存写干扰问题的方法,其特征在于在写入FLASH一个字线wordline的LSB数据时,将LSB数据同时缓存在固态硬盘的缓冲区,在写入同一个字线wordline的MSB时先执行将硬盘缓存区中存储的LSB数据再次写入该字线的LSB区域,再执行将MSB数据写入MSB区域。通过在SSD的缓存中增加保存LSB数据,在写MSB数据前再次复写LSB数据,可更正闪存中可能已经被干扰的LSB数据,保证整个wordline上数据的正确性。

【技术实现步骤摘要】
一种缓解MLC闪存写干扰问题的方法
本专利技术涉及固态硬盘控制技术,特别涉及一种缓解MLC闪存写干扰问题的方法。
技术介绍
在闪存单元(FlashCell)使用浮动栅晶体管(FloatingGateTransistor)的电压值来表示存储的数据,MLC(MultiLevelCell)闪存的闪存单元可以存储多个比特值,图1是MLC闪存的闪存单元示意图,MLC闪存单元的编程(program)要求分两步,第一步:编程闪存单元的LSB,第二步:编程闪存单元的MSB。没有进行编程的闪存单元处于擦除状态,只完成第一步编程的闪存单元处于非完全状态(partialprogram),完成第二步编程的状态为完全状态。颗粒的验证过程中发现非完全状态闪存单元的阈值电压非常容易受临近闪存单元编程过程的影响,也就是说非完全状态闪存单元中存储的数据很容易发生比特翻转,即BER(比特出错概率)会增大,这会大大降低闪存的生命周期(lifetime)。MLC闪存的物理构成如图2所示,多个闪存单元横向组成wordline,由于闪存单元分为LSB和MSB,所以每个wordline数据存储也可抽象为LSB和MSB两部分,单个wordline的编程必须先编程wordline的整个LSB,然后编程wordline的整个MSB,中间可以编程其他的wordline。所谓的写干扰指的是对某个wordline进行编程时,会产生较大电压,这个电压会影响临近wordline的阈值电压,并且实验表明当临近wordline是非完全状态(partialprogram)时,这个影响是巨大的,很有可能巨大到翻转了临近wordline中某些闪存单元中存储的比特值,该影响程度基本由编程wordline的电压大小决定(而编程时的电压大小又由编程的数据类型决定)。这里列出一种最大化该影响的操作步骤,如图3所示(wordline1中的LSB为受攻击对象):第一步:对wordline0的LSB填全1数据,第二步:对wordline1的LSB填受攻击的数据,这里的数据类型没有要求,第三步:对wordline0的MSB填全0数据,第四步:对wordline2的LSB填全0数据。大量实验表明这种编程的步骤和数据类型能最大化的干扰wordline1LSB中的数据,该LSB数据的BER会显著增加,其中每一步对BER的影响如图4所示,实验表明这种最坏干扰可使BER增大到正常值得4.9倍。当wordline的MSB编程成功后,该wordline处于完全状态,此后不受临近wordline的写干扰了。
技术实现思路
针对以上缺陷,本专利技术目的是如何降低写操作引入的写干扰问题的影响。为了解决以上问题本专利技术提出了一种缓解MLC闪存写干扰问题的方法,存储单元由多个字线wordline组成,每个wordline分为:最低有效位LSB和最高有效位MSB,单个wordline的编程必须先编程wordline的所有LSB,然后再编程wordline的整个MSB,其特征在于在写入FLASH一个字线wordline的LSB数据时,将LSB数据同时缓存在固态硬盘的缓冲区,在写入同一个字线wordline的MSB时先执行将硬盘缓存区中存储的LSB数据再次写入该字线的LSB区域,再执行将MSB数据写入MSB区域。所述的缓解MLC闪存写干扰问题的方法,其特征在于在向MSB区域写入数据之前先检查固态硬盘的缓存区上是否缓存有与MSB区域同属于一个wordline的LSB数据,如果存在就直接执行将LSB数据再次写入该字线的LSB区域;如果不存在则读取对应LSB区域的数据,并将读取的数据复写回LSB区域,再执行将MSB数据写入MSB区域。所述的缓解MLC闪存写干扰问题的方法,其特征在于在接收到wordline写入LSB数据的指令时,先将LSB数据缓存到固态硬盘的缓冲区,并设置计时器,在计时器达到预想设置的时间阀值时,还未接收到向对应同一个wordline的MSB写入指令的,则将缓存的LSB数据写入LSB区域;在计时器还未达到预想设置的时间阀值时,接收到对应同一个wordline的MSB写入指令的则先将则将缓存的LSB数据写入LSB区域,再执行将MSB数据写入MSB区域。本专利技术的有益效果是:通过在SSD的缓存中增加保存LSB数据,在写MSB数据前再次复写LSB数据,可更正闪存中可能已经被干扰的LSB数据,保证整个wordline上数据的正确性。附图说明图1是MLC闪存的闪存单元示意图;图2是MLC闪存的wordline示意图;图3是最大化写干扰问题示例图;图4是最大化写干扰对BER的影响示意图;图5是增加LSB数据缓存的LSB的数据写入操作示意图;图6是改进后的数据写入操作流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。针对上述MLC闪存固有的临近wordline间的写干扰问题,本专利提出了一种解决方案:在对wordline的LSB编程后立即在SSD(固态硬盘)的控制器中缓存该LSB数据,此后无论闪存wordlineLSB中的数据被如何干扰,控制器中的LSB备份数据是不会被影响的,当编程wordline的MSB前,先再次编程控制器缓存的LSB数据,目的为更正闪存中可能已被干扰的LSB数据,然后编程wordline的MSB数据,如此可以保证整个wordline上数据的正确性。由于控制器缓存中的数据掉电时会丢失(消费级SSD基本没有掉电保护机制),所以如果当编程wordlineMSB数据时发现LSB数据已丢失,则需要从闪存中读出LSB数据,如果该LSB数据已被干扰,则需要启动控制器的ECC纠错机制,纠正后再编程wordlineLSB,处理流程见图5,Step1:先写LSB数据至wordlineLSB区域,同时在控制器中缓存LSB数据,完成本次LSB数据的写入。Step2:在写入MSB数据前,先检查控制缓存是否缓存了当前MSB的wordline的LSB数据,如果是则先将缓存的LSB数据复写到wordlineLSB区域,再执行将MSB数据写至wordlineMSB区域;如果检测控制器没有缓存当前MSB的wordline的LSB数据则从当前wordlineLSB区域读取LSB数据,并启动ECC校验纠错程序保证数据的正确性,之后在将正确的LSB数据复写到wordlineLSB区域,再执行将MSB数据写至wordlineMSB区域。现以上文列举的最大化写干扰问题的操作步骤为例,说明新技术是如何解决问题的,如图6:Step1:对wordline0的LSB填全1数据。Step2.1:对wordline1的LSB填受攻击的数据前,首先在SSD控制器中缓存一份数据。Step2.2:对wordline1的LSB填受攻击的数据。Step3:对wordline0的MSB填全0数据,此时wordline1的LSB数据受到影响,BER增大。Step4:对wordline2的LSB填全0数据,此时wordline1的LSB数据再次本文档来自技高网
...
一种缓解MLC闪存写干扰问题的方法

【技术保护点】
一种缓解MLC闪存写干扰问题的方法,存储单元由多个字线wordline组成,每个wordline分为:最低有效位LSB和最高有效位MSB,单个wordline的编程必须先编程wordline的所有LSB,然后再编程wordline的整个MSB,其特征在于在写入FLASH一个字线wordline的LSB数据时,将LSB数据同时缓存在固态硬盘的缓冲区,在写入同一个字线wordline的MSB时先执行将硬盘缓存区中存储的LSB数据再次写入该字线的LSB区域,再执行将MSB数据写入MSB区域。

【技术特征摘要】
1.一种缓解MLC闪存写干扰问题的方法,存储单元由多个字线wordline组成,每个wordline分为:最低有效位LSB和最高有效位MSB,单个wordline的编程必须先编程wordline的所有LSB,然后再编程wordline的整个MSB,其特征在于在写入FLASH一个字线wordline的LSB数据时,将LSB数据同时缓存在固态硬盘的缓冲区,在写入同一个字线wordline的MSB时先执行将硬盘缓存区中存储的LSB数据再次写入该字线的LSB区域,再执行将MSB数据写入MSB区域。2.根据权利要求1所述的缓解MLC闪存写干扰问题的方法,其特征在于在向MSB区域写入数据之前先检查固态硬盘的缓存区上是否缓存有与MSB区域同属于一个wor...

【专利技术属性】
技术研发人员:许毅姚兰郑春阳
申请(专利权)人:深圳忆联信息系统有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1