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

文档序号:9383067阅读:来源:国知局
能确保成功解码。在一种配置中,这可通过在编码期间添加更大冗余度(例如,向源 信息比特428添加更多FEC比特432)来完成。闪存控制器404可向当前页420的元数据 436写入(512) FEC信息。FEC信息可包括所使用的FEC码422和所选FEC参数集412 (包 括FEC编码率)。
[0080] 在使用所估计页差错率442(例如,页420的比特差错率)确定FEC参数集412(例 如,FEC编码参数)之后,闪存控制器404可确定(514)页420中的可用数据字节434的量 是否小于期望页大小444。如果页420中的可用数据字节434的量大于或等于期望页大小 444,则页420容量(例如,可用数据字节434)符合操作系统的期望。因此,闪存控制器404 可在不与其它页420进行映射的情况下使用(516)该页420。然而,如果闪存控制器404确 定(514)页420中的可用数据字节434的数目小于期望页大小444 (包括FEC比特432),则 闪存控制器404可将页420与一个或多个部分降级页420进行编组(例如,映射)。
[0081] 闪存控制器404可将页ID记录(518)到部分降级页列表446。页ID可以是闪存 406中的当前页420的地址或者其它唯一性标识符。部分降级页列表446可按与部分降级 页列表446中的每一页420相关联的可用数据字节434的数目来排序。
[0082] 闪存控制器404可将当前页420与另一个部分降级页420进行编组(520)。在一 种配置中,闪存控制器404可搜索另一个部分降级页420以与当前页420进行编组(520), 其中可用数据字节434的总和超过期望页大小444达最小量。例如,闪存控制器104可在 部分降级页列表446中搜索另一个部分降级页420以与当前页420进行编组(520)。如果 闪存控制器404确定(522)可用数据字节434的总和小于期望页大小444,则闪存控制器 404可将至少一个其它部分降级页420与已编组页420进行编组(524)。在一种配置中,闪 存控制器404可向该组添加单个附加的部分降级页420。在另一配置中,闪存控制器404可 向该组添加成对的部分降级页420。在又一配置中,闪存控制器404可以按2的幂来添加部 分降级页420 (例如,该组可包括2、4、8、16个等部分降级页420)。
[0083] 如果已编组页420的可用数据字节434的总和大于或等于期望页大小444,则闪存 控制器404可在逻辑页信息表448中记录(526)编组信息。已编组页420可被组合成单个 逻辑页324,该单个逻辑页324可作为具有期望页大小444的块呈现给操作系统。因此,逻 辑页信息表448中的每个条目可以用于单独的逻辑页324并且可包括逻辑页ID以及被一 起映射以形成逻辑页324的每个物理页420的地址。
[0084] 闪存控制器404可向所有已编组页420的元数据436记录(528)编组信息。闪 存控制器404可向形成逻辑页324的所有物理页420记录(528)相同逻辑页号、指示物理 页420在该组中的次序的子页号、该组中下一子页的地址以及当前物理页420中所存储数 据字节的数目。此编组信息连同FEC信息一起可被写入页420的备用区域(例如,元数据 436) 〇
[0085] 图6是解说用于从逻辑页324读取数据的方法600的流程图。方法600可由闪存 控制器404来执行。闪存控制器404可开始(602)对逻辑页324的读操作。读操作可在闪 存控制器404接收到对存储在逻辑页324中的数据的请求(例如来自操作系统)时发起。 逻辑页324可包括多个部分降级页420,该多个部分降级页420被一起映射以形成逻辑页 324,如以上结合图5描述的。
[0086] 闪存控制器404可基于逻辑页ID来查找(604)形成逻辑页324的物理页420。例 如,闪存控制器404可包括逻辑页信息表448,逻辑页信息表448包括关于每个逻辑页324 的条目。逻辑页信息表448中的条目可包括逻辑页ID以及被组合以形成逻辑页324的每 个物理页420的地址。通过在逻辑页信息表448中查找(604)逻辑页ID,闪存控制器404 可确定闪存406中的哪些物理页420形成逻辑页324。
[0087] 闪存控制器404可读取(606)关于形成逻辑页324的每个物理页420的FEC信息 和元数据436。FEC信息可包括用来编码源信息比特428的FEC码422和所选FEC参数集 412 (包括FEC编码率)。应注意,根据本文所描述的系统和方法,被选择的FEC参数集412 可取决于页420被损坏多少而改变。因此,形成逻辑页324的物理页420中的每一个可具 有相同或不同的FEC参数集412。元数据436可包括编组信息,诸如逻辑页号、指示物理页 420在该组中的次序的子页号、该组中下一子页的地址以及当前物理页420中所存储数据 字节的数目。
[0088] 闪存控制器404可基于与每个物理页420相关联的FEC信息和元数据436来解码 (608)每个物理页420中的数据。存储在页420中的FEC信息和元数据436可向闪存控制 器404指示如何解码(608)存储在页420中的数据。例如,闪存控制器404可向FEC码422 应用FEC参数集412以正确解码(608)每个物理页420中的数据。
[0089] 闪存控制器404可组合(610)从每个物理页420解码出的数据。在一种配置中, 闪存控制器404可基于元数据436中所包括的编组信息来组合(610)解码出的数据。例 如,编组信息可指示已编组页420中所存储的数据安排。因此,编组信息可允许闪存控制器 404根据从每个物理页420解码出的数据来重构源信息比特428。一旦组合(610)解码出 的数据,闪存控制器404就可递送(612)所组合数据。闪存控制器404可将所组合数据递 送(612)给对所存储数据作出请求的操作系统或用户应用。
[0090] 图7是解说闪存106中已损坏页720的另一配置的框图。已损坏页720可包括FEC 比特732、可用数据字节734、元数据736和已损坏数据字节750。FEC比特732可被闪存控 制器104用在前向纠错(FEC)中。FEC比特732的量可取决于所使用的FEC参数集112而 改变。
[0091 ] 已损坏页720中的可用数据字节734可被用来存储数据(例如,源信息比特428)。 可用数据字节734的数目可改变。例如,已损坏数据字节750和FEC比特732可减少可用 数据字节734的数目。
[0092] 元数据736可包括关于数据如何被存储在已损坏页720中的信息。如上所述,元 数据736可包括FEC信息752, FEC信息752指示被用来编码源信息比特428的FEC码122 以及为页720选择的FEC参数集112。元数据736还可包括已损坏页指示符754,已损坏页 指示符754可指示页720是否被认为是已损坏页720。
[0093] 元数据736可进一步包括可用存储器指示符756,可用存储器指示符756指示页 720的可用数据字节734以及已损坏数据字节750的量。在一种配置中,可用存储器指示 符756可将可用数据字节734和已损坏数据字节750的量表达为数字。例如,可用数据字 节734可被表达为X个字节,而已损坏数据字节750可被表达为Y个字节。在另一配置中, 可用存储器指示符756可将可用数据字节734和已损坏数据字节750的量表达为可用存储 器的百分比(或比率)。例如,可用数据字节734可除以已损坏页720的总容量以获得可用 存储器的百分比。替换地,已损坏数据字节750可除以可用数据字节734以获得已损坏和 可用存储器的比率。在另一配置中,可用存储器指示符756可被存储在闪存控制器104而 非已损坏页720中。
[0094] 可用存储器指示符756可基于FEC编码参数(例如,FEC参数集412)和页420中 可用数据字节434的总数来确定。FEC编码参数可基于所估计的页差错率442来确定。例 如,当闪存控制器404读回所存储数据以验证所存储数据的准确性时,闪存控制器404可比 较基于FEC码422的FEC比特732以获得所估计页差错率442。闪存控制器404可随后基 于所估计页差错率442和将给定编码差错率(例如,页差错率442)映射到特定FEC编码参 数的预定FEC阈值集来确定FEC编码参数。基于FEC编码参数和页420中可用的总比特 (包括数据比特434和FEC比特432两者),闪存控制器404可随后确定可用数据字节734 的数目。
[0095] 应注意,不需要将特定比特区分为已损坏或可用。由于读/写操作是基于FEC的, 因此闪存控制器104可以仅需要知晓所估计比特差错是否可由所选FEC码112纠正。如果 比特差错是可纠正的,则解码后的读结果将是正确的。在此过程中,可预算一些净空,从而 所选FEC码112将不仅纠正页中的现有差错比特,而且还处置将来的更多差错比特。
[0096] 图8是解说用于控制闪存106的另一方法800的流程图。方法800可由闪存控制 器104来执行。在一些配置中,结合图8描述的闪存控制器104可以根据结合图1描述的 闪存控制器104来实现。例如,闪存控制器104可使用FEC码122和所选FEC参数集112 来编码源信息比特428。
[0097] 闪存控制器104可将数据写(802)到闪存106中的页120。这可以如结合图1所 描述的那样来完成。
[0098] 闪存控制器104可确定(804)可用存储器指示符756,可用存储器指示符756指示 可用数据字节434和已损坏数据字节750的量。例如,当闪存控制器104读回所存储数据 以验证所存储数据的准确性时,闪存控制器104可比较基于FEC码122的FEC比特432以 获得页差错率442。闪存控制器104可基于页差错率442来确定可用数据字节434和已损 坏数据字节750的量。这可以如以上结合图7所描述的那样来完成。例如,当闪存控制器 104读回所存储数据以验证所存储数据的准确性时,闪存控制器104可比较基于FEC码122 的FEC比特432以获得所估计页差错率442。闪存控制器104可随后基于所估计页差错率 442和将给定编码差错率(例如,页差错率442)映射到特定FEC编码参数的预定FEC阈值 集来确定FEC编码参数。基于FEC编码参数和页420中可用的总比特(包括数据比特434 和FEC比特432两者),闪存控制器404可随后确定可用数据字节434的数目。
[0099] 闪存控制器104可存储(806)可用存储器指示符756。在一种配置中,可用存储 器指示符756可被存储在页720的元数据736中,如以上结合图7所述。在另一配置中,可 用存储器指示符756可被存储在位于闪存控制器104中的列表或表中。例如,闪存控制器 104可存储闪存406中的页120的列表。闪存控制器104还可存储与页120列表中的特定 页120相关联的可用存储器指示符756。如果闪存控制器104执行后续写操作,则闪存控制 器104可再次确定可用存储器指示符756并且可更新可用存储器指示符756的所存储值。 附加或替换地,如果闪存控制器104执行从页120的后续读操作,则闪存控制器104可再次 确定可用存储器指示符756并且可更新可用存储器指示符756的所存储值。例如,一旦执 行后续写操作或后续读操作
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1