用于改进闪存的可靠性和寿命的系统和方法

文档序号:9383067阅读:208来源:国知局
用于改进闪存的可靠性和寿命的系统和方法
【专利说明】
[0001] 优先权要求
[0002] 本申请要求于2013年4月12日提交的题为"SYSTEMS AND METHODS TO頂PROVE THE RELIABILITY AND LIFESPAN OF FLASH MEMORY(用于改进闪存的可靠性和寿命的系统 和方法)"的美国专利申请S/N. 13/861,691的优先权,其通过援引整体纳入于此。
技术领域
[0003] 本公开一般涉及闪存。具体而言,本公开涉及用于改进闪存的可靠性和寿命的系 统和方法。
【背景技术】
[0004] 电子设备(蜂窝电话、无线调制解调器、计算机、数字音乐播放器、全球定位系统 单元、个人数字助理、游戏设备等)已成为日常生活的一部分。小型计算设备如今被放置在 从汽车到住房用锁等每件事物中。在过去的几年里电子设备的复杂度有了急剧的上升。例 如,许多电子设备具有一个或多个帮助控制该设备的处理器、以及支持该处理器及该设备 的其他部件的数个数字电路。
[0005] 电子设备往往在存储器中存储数据。该存储器可以是闪存,具体而言,可以是NAND 闪存(即,使用NAND逻辑的闪存)。因此,可通过改进闪存的可靠性和寿命来达成益处。
[0006] 概沭
[0007] 描述了一种用于控制闪存的方法。该方法包括选择提供比当前前向纠错(FEC)参 数集更大的冗余度的新FEC参数集。在对闪存中的第一已损坏页的写操作期间使用新FEC 参数集来编码源信息比特。将第一已损坏页和闪存中的至少一个附加已损坏页映射到具有 期望页大小的单个逻辑页。
[0008] 该选择可以是响应于对第一已损坏页的写失败或者在从第一已损坏页的读操作 期间所估计页差错率超过FEC阈值时执行的。该选择可包括从多个FEC参数集当中选择新 FEC参数集,该多个FEC参数集中的每个FEC参数集提供不同量的冗余度。新FEC参数集与 当前FEC参数集相比每页具有更高数目的能被纠正的比特差错。
[0009] 该方法还可包括在第一已损坏页中存储新FEC参数集以及在该至少一个附加已 损坏页中存储另一 FEC参数集。该方法可进一步包括在第一已损坏页和该至少一个附加已 损坏页中存储映射指示符,该映射指示符指示从第一已损坏页和该至少一个附加已损坏页 到单个逻辑页的映射。该方法可附加地包括在第一已损坏页和该至少一个附加已损坏页中 存储次序信息,该次序信息指示存储在第一已损坏页和该至少一个附加已损坏页中的数据 安排。该方法还可包括基于所接收到的指令对该单个逻辑页读和写数据。
[0010] 该方法还可包括将第一已损坏页记录到部分降级页列表。可在部分降级页列表中 搜索该至少一个附加已损坏页。该方法还可包括确定第一已损坏页和该至少一个附加已损 坏页的可用数据字节总和大于或等于期望页大小。可在逻辑页信息表中记录编组信息。可 将编组信息记录到第一已损坏页和该至少一个附加已损坏页的元数据。
[0011] 该方法还可包括维持该单个逻辑页的接口 一致性。该方法可进一步包括估计页差 错率。可基于页差错率来选择新FEC参数集。
[0012] 还描述了一种用于控制闪存的电子设备。该电子设备包括处理器以及与处理器处 于电子通信的存储器。该存储器包括可执行指令。选择提供比当前前向纠错(FEC)参数集 更大的冗余度的新FEC参数集。在对闪存中的第一已损坏页的写操作期间使用新FEC参数 集来编码源信息比特。将第一已损坏页和闪存中的至少一个附加已损坏页映射到具有期望 页大小的单个逻辑页。
[0013] 还描述了一种用于控制闪存的计算机程序产品。该计算机程序产品包括其上具有 指令的非瞬态有形计算机可读介质。该指令包括用于使电子设备选择提供比当前前向纠错 (FEC)参数集更大的冗余度的新FEC参数集的代码。该指令还包括用于使电子设备在对闪 存中的第一已损坏页的写操作期间使用新FEC参数集来编码源信息比特的代码。该指令进 一步包括用于使电子设备将第一已损坏页和闪存中的至少一个附加已损坏页映射到具有 期望页大小的单个逻辑页的代码。
[0014] 还描述了一种用于控制闪存的电子设备。该电子设备包括被配置成选择提供比当 前前向纠错(FEC)参数集更大的冗余度的新FEC参数集的电路系统。该电路系统还被配置 成在对闪存中的第一已损坏页的写操作期间使用新FEC参数集来编码源信息比特。该电路 系统进一步被配置成将第一已损坏页和闪存中的至少一个附加已损坏页映射到具有期望 页大小的单个逻辑页。
[0015] 还描述了一种用于控制闪存的设备。该设备包括用于选择提供比当前前向纠错 (FEC)参数集更大的冗余度的新FEC参数集的装置。该设备还包括用于在对闪存中的第一 已损坏页的写操作期间使用新FEC参数集来编码源信息比特的装置。该设备进一步包括用 于将第一已损坏页和闪存中的至少一个附加已损坏页映射到具有期望页大小的单个逻辑 页的装置。
[0016] 还描述了一种用于控制闪存的方法。该方法包括向闪存中的页写数据。确定可用 存储器指示符,该可用存储器指示符指示该页的可用数据字节和已损坏数据字节的量。存 储可用存储器指示符。基于可用存储器指示符来确定是否要在该页中存储附加数据。
[0017] 该存储可包括在该页中存储可用存储器指示符。该存储还可包括在闪存控制器中 存储可用存储器指示符。该可用存储器指示符可指示该页的可用数据字节的量小于操作系 统的期望页大小。
[0018] 该方法还可包括执行对该页的后续写操作或后续读操作。可基于对该页的后续写 操作或后续读操作来估计页差错率。可基于页差错率来更新可用存储器指示符。
[0019] 还描述了一种用于控制闪存的电子设备。该电子设备包括处理器以及与处理器处 于电子通信的存储器。该存储器包括可执行指令。向闪存中的页写数据。确定可用存储器 指示符,该可用存储器指示符指示该页的可用数据字节和已损坏数据字节的量。存储可用 存储器指示符。基于可用存储器指示符来确定是否要在该页中存储附加数据。
[0020] 还描述了一种用于控制闪存的计算机程序产品。该计算机程序产品包括其上具有 指令的非瞬态有形计算机可读介质。该指令包括用于使电子设备向闪存中的页写数据的代 码。该指令还包括用于使电子设备确定可用存储器指示符的代码,该可用存储器指示符指 示该页的可用数据字节和已损坏数据字节的量。该指令进一步包括用于使电子设备存储可 用存储器指示符的代码。该指令附加地包括用于使电子设备基于可用存储器指示符来确定 是否要在该页中存储附加数据的代码。
[0021] 还描述了一种用于控制闪存的电子设备。该电子设备包括被配置成向闪存中的页 写数据的电路系统。该电路系统还被配置成确定可用存储器指示符,该可用存储器指示符 指示该页的可用数据字节和已损坏数据字节的量。该电路系统被进一步配置成存储可用存 储器指示符。该电路系统被附加地配置成基于可用存储器指示符来确定是否要在该页中存 储附加数据。
[0022] 还描述了一种用于控制闪存的设备。该设备包括用于向闪存中的页写数据的装 置。该设备还包括用于确定可用存储器指示符的装置,该可用存储器指示符指示该页的可 用数据字节和已损坏数据字节的量。该设备进一步包括用于存储可用存储器指示符的装 置。该设备附加地包括用于基于可用存储器指示符来确定是否要在该页中存储附加数据的 装置。
[0023] 附图简沐
[0024] 图1是解说包括用于改进闪存的可靠性和寿命的闪存控制器的电子设备的框图;
[0025] 图2是解说用于控制闪存的方法的流程图;
[0026] 图3是解说闪存中的未损坏页和已损坏页的框图;
[0027] 图4是解说用于改进闪存的可靠性和寿命的闪存控制器的更详细配置的框图;
[0028] 图5是解说用于向闪存写数据的方法的流程图;
[0029] 图6是解说用于从逻辑页读数据的方法的流程图;
[0030] 图7是解说闪存中的已损坏页的另一配置的框图;
[0031] 图8是解说用于控制闪存的另一方法的流程图;以及
[0032] 图9解说了可被包括在电子设备内的某些组件。
[0033] 详细描沐
[0034] 当今许多消费者电子设备使用NAND闪存。闪存是即使在移除电力之后还能保留 所存储的数据的非易失性存储器。作为一种类型的闪存,NAND闪存是高密度设计并且具有 胜过其它类型存储器的某些优点,包括大存储容量(例如,1吉比特或更大)、良好的连续存 取速度、以及低成本。然而,NAND闪存也具有固有的缺点,包括在NAND闪存的工作寿命期 间对比特差错的增大敏感性。
[0035] NAND闪存可以是单级单元NAND闪存或多级单元(MLC)NAND闪存。与单级单元 NAND闪存相比,MLC NAND闪存可提供高存储器容量,这以较低可靠性为代价。NAND闪存通 常以页为单位来被访问(例如,经由读和写操作),一次一页,其中每一页的可用数据字节 为特定大小(例如,512字节、2048字节或4096字节)。NAND闪存对其寿命中的写循环数 目具有限制。闪存设备差错的类型可被分类为程序差错、保留差错、擦除差错和读差错。一 般而言,所有类型的差错将随着原始闪存单元已被编程的循环数目而增大。本发明的系统 和方法可被用来增大闪存归因于所有类型的差错的可靠性和寿命。一些闪存控制器(或闪 存驱动器)可将页标记为坏的并将该页重映射到存储器的另一个块,即,闪存的容量随着 每个丢失的页而减小。因此,通过修改如何确定页为坏的以及如何将页与其它页进行映射 可实现益处。
[0036] 图1是解说包括用于改进闪存106的可靠性和寿命的闪存控制器104的电子设备 102的框图。闪存控制器104可充当闪存106与操作系统或其它用户应用之间的接口。闪 存控制器104可隐藏管理闪存106内的物理单元(例如,页120)的复杂度。操作系统或其 它用户应用可将要存储在闪存106中的源信息比特提供给闪存控制器104,闪存控制器104 向闪存106存储该源信息比特和从闪存106检索该源信息比特。应注意,闪存控制器104 可被实现为硬件(例如,电路系统)、软件(例如,闪存驱动程序)、或者硬件和软件的组合。 还应当注意,在一些配置中,图1中解说的元素中的一个或多个元素可在电路系统(例如, 集成电路系统)中实现。
[0037] 在向闪存106写之前,闪存控制器104可用前向纠错(FEC)码122来编码源信息 比特以产生码字。持久存储器存储(诸如闪存106)可利用FEC码122来编码源信息比特。 FEC码122是被用于控制数据存储差错的算法。源信息比特可使用纠错码(ECC)以冗余方 式来存储。与FEC相关联的冗余度可允许闪存控制器104检测可在写/读过程期间发生的 有限数目的差错,并且往往在不参考原始源信息比特的情况下纠正这些差错。
[0038] 在一种配置中,闪存控制器104可将源信息比特转换成码字。例如,写过程可将源 信息比特(或码元)编码成码字,并将经编码码字存储到闪存106。读过程可从闪存106检 索码字并且将码字解码成源信息比特。在此过程期间,FEC码122可被用来检错并且在一 些情形中纠错。存在可被用来编码源信息比特的不同类型的FEC码122。例如,FEC码122 可
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1