首页 / 专利分类库 / 信息存储 / 一种存储器控制器、存储系统及其操作方法

一种存储器控制器、存储系统及其操作方法

申请号 CN202211449324.4 申请日 2022-11-18 公开(公告)号 CN118057540A 公开(公告)日 2024-05-21
申请人 长江存储科技有限责任公司; 发明人 黄真; 李康;
摘要 本 申请 提供一种 存储器 控制器 、存储系统及其操作方法,存储器控制器用于控制存储器器件,存储器控制器被配置为:在读取失败时依据所述存储 块 的擦除循环次数,查找对应于所述擦除循环次数所属范围的读取重试表;所述读取重试表包括多个读取 偏压 组;依据所述读取重试表中的多个读取偏压组,对所述存储块执行读取重试操作。本申请基于原始对存储器器件已有的最优读取偏压组中的重试读取 电压 ,通过存储块的擦除循环次数来索引查找对应于擦除循环次数所属范围的读取重试表,既能够提高索引查找最优的读取偏压组的效率,还能提升索引查找到的读取偏压组的适配度。
权利要求

1.一种存储器控制器,所述存储器控制器用于控制存储器器件,所述存储器器件包括若干个存储,所述存储块用于存储数据,其特征在于,所述存储器控制器被配置为:
在读取失败时依据所述存储块的擦除循环次数,查找对应于所述擦除循环次数所属范围的读取重试表;所述读取重试表包括多个读取偏压组;
依据所述读取重试表中的多个读取偏压组,对所述存储块执行读取重试操作。
2.根据权利要求1所述的存储器控制器,其特征在于,所述擦除循环次数依据若干个所述存储块的擦除循环次数进行分类得到初期阶段、前期阶段以及末期阶段。
3.根据权利要求1或2所述的存储器控制器,其特征在于,所述存储器控制器还被配置为:
依据所述存储块的存储状态,提取对应于所述擦除循环次数所属范围内的所述存储状态的读取重试表。
4.根据权利要求3所述的存储器控制器,其特征在于,所述存储状态依据所述存储块的编程方式进行分类得到单级存储状态与多级存储状态。
5.根据权利要求4所述的存储器控制器,其特征在于,所述多级存储状态还包括按照所述存储块的已存储量进行分类得到的多阶满存存储状态与多阶未满存存储状态。
6.根据权利要求1所述的存储器控制器,其特征在于,所述存储器控制器还被配置为:
依据所述存储块的测试项目,提取对应于所述擦除循环次数所属范围内的所述测试项目的读取重试表。
7.根据权利要求1所述的存储器控制器,其特征在于,所述存储器控制器还被配置为:
在读取失败时依据多个所述存储块的多个擦除循环次数的平均值,查找对应于所述多个擦除循环次数的平均值所属范围的读取重试表。
8.根据权利要求1所述的存储器控制器,其特征在于,所述读取偏压组包括不同字线的读取电压参数。
9.根据权利要求1所述的存储器控制器,其特征在于,所述存储器控制器还被配置为:
查找对应于所述擦除循环次数所属范围的读取重试表群;
基于读取重试表群中多个所述读取重试表的存储排布先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
10.根据权利要求1所述的存储器控制器,其特征在于,所述存储器控制器还被配置为:
查找对应于所述擦除循环次数所属范围的读取重试表群;
基于读取重试表群中多个所述读取重试表的最近使用时间先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
11.根据权利要求1所述的存储器控制器,其特征在于,所述存储器控制器还被配置为:
查找对应于所述擦除循环次数所属范围的读取重试表群;
基于读取重试表群中多个所述读取重试表进行读取操作时的读取成功度的先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
12.一种存储系统,其特征在于,包括:
存储器器件,所述存储器器件包括若干个存储块,所述存储块用于存储数据,所述存储块包括若干个存储单元;以及,
存储器控制器,用于控制所述存储器器件,其中,所述存储器控制器被配置为:
在读取失败时依据所述存储块的擦除循环次数,查找对应于所述擦除循环次数所属范围的读取重试表;所述读取重试表包括多个读取偏压组;
依据所述读取重试表中的多个读取偏压组,对所述存储块执行读取重试操作。
13.一种存储系统的操作方法,其特征在于,所述存储系统包括存储器器件和存储器控制器;所述存储器器件包括若干个存储块,所述存储块用于存储数据,所述存储块包括若干个存储单元,所述存储器控制器用于控制所述存储器器件,所述操作方法包括步骤:
所述存储器控制器在读取失败时依据所述存储块的擦除循环次数,查找对应于所述擦除循环次数所属范围的读取重试表;所述读取重试表包括多个读取偏压组;
所述存储器控制器依据所述读取重试表中的多个读取偏压组,对所述存储块执行读取重试操作。
14.根据权利要求13所述的存储系统的操作方法,其特征在于,所述擦除循环次数依据若干个所述存储块的擦除循环次数进行分类得到初期阶段、前期阶段以及末期阶段。
15.根据权利要求13或14所述的存储系统的操作方法,其特征在于,还包括:
所述存储器控制器依据所述存储块的存储状态,提取对应于所述擦除循环次数所属范围内的所述存储状态的读取重试表。
16.根据权利要求15所述的存储系统的操作方法,其特征在于,所述存储状态依据所述存储块的编程方式进行分类得到单级存储状态与多级存储状态;所述多级存储状态还包括按照所述存储块的已存储量进行分类得到的多阶满存存储状态与多阶未满存存储状态。
17.根据权利要求13所述的存储系统的操作方法,其特征在于,还包括:
查找对应于所述擦除循环次数所属范围的读取重试表群;
基于读取重试表群中多个所述读取重试表的存储排布先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
18.根据权利要求13所述的存储系统的操作方法,其特征在于,还包括:
查找对应于所述擦除循环次数所属范围的读取重试表群;
基于读取重试表群中多个所述读取重试表的最近使用时间先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
19.根据权利要求13所述的存储系统的操作方法,其特征在于,还包括:
查找对应于所述擦除循环次数所属范围的读取重试表群;
基于读取重试表群中多个所述读取重试表进行读取操作时的读取成功度的先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。

说明书全文

一种存储器控制器、存储系统及其操作方法

技术领域

[0001] 本发明涉及半导体技术领域,具体涉及一种存储器控制器、存储系统及其操作方法。

背景技术

[0002] 在移动产品应用领域中,NAND Flash设备已专用于解决高密度固态存储。NAND Flash因容量大、访问速度快,被广泛应用在各种需要大量数据存储的领域。由于NAND Flash的工艺不能保证它的半导体技术领域阵列在它的生命周期中可靠地保持性能,所以NAND Flash在生产和使用过程中会产生坏,导致存储数据的丢失。而由于NAND Flash物理介质的特性,容易受到位翻转干扰而产生数据错误。因此,在应用NAND Flash的系统中,如何有效率的进行错误的检测和纠正以保持数据的可靠性,一直是有待解决的问题。

发明内容

[0003] 本申请实施例提供一种存储器控制器、存储系统及其操作方法,以高效进行错误的检测和纠正,提升数据的读取可靠性。
[0004] 第一方面,本申请实施例提供了一种存储器控制器,所述存储器控制器用于控制存储器器件,所述存储器器件包括若干个存储块,所述存储块用于存储数据,所述存储器控制器被配置为:
[0005] 在读取失败时依据所述存储块的擦除循环次数,查找对应于所述擦除循环次数所属范围的读取重试表;所述读取重试表包括多个读取偏压组;
[0006] 依据所述读取重试表中的多个读取偏压组,对所述存储块执行读取重试操作。
[0007] 在一些实施例中,所述擦除循环次数依据若干个所述存储块的擦除循环次数进行分类得到初期阶段、前期阶段以及末期阶段。
[0008] 在一些实施例中,所述存储器控制器还被配置为:
[0009] 依据所述存储块的存储状态,提取对应于所述擦除循环次数所属范围内的所述存储状态的读取重试表。
[0010] 在一些实施例中,所述存储状态依据所述存储块的编程方式进行分类得到单级存储状态与多级存储状态。
[0011] 在一些实施例中,所述多级存储状态还包括按照所述存储块的已存储量进行分类得到的多阶满存存储状态与多阶未满存存储状态。
[0012] 在一些实施例中,所述存储器控制器还被配置为:
[0013] 依据所述存储块的测试项目,提取对应于所述擦除循环次数所属范围内的所述测试项目的读取重试表。
[0014] 在一些实施例中,所述存储器控制器还被配置为:
[0015] 在读取失败时依据多个所述存储块的多个擦除循环次数的平均值,查找对应于所述多个擦除循环次数的平均值所属范围的读取重试表。
[0016] 在一些实施例中,所述读取偏压组包括不同字线的读取电压参数。
[0017] 在一些实施例中,所述存储器控制器还被配置为:
[0018] 查找对应于所述擦除循环次数所属范围的读取重试表群;
[0019] 基于读取重试表群中多个所述读取重试表的存储排布先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
[0020] 在一些实施例中,所述存储器控制器还被配置为:
[0021] 查找对应于所述擦除循环次数所属范围的读取重试表群;
[0022] 基于读取重试表群中多个所述读取重试表的最近使用时间先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
[0023] 在一些实施例中,所述存储器控制器还被配置为:
[0024] 查找对应于所述擦除循环次数所属范围的读取重试表群;
[0025] 基于读取重试表群中多个所述读取重试表进行读取操作时的读取成功度的先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
[0026] 第二方面,本申请实施例还提供了一种存储系统,包括:
[0027] 存储器器件,所述存储器器件包括若干个存储块,所述存储块用于存储数据,所述存储块包括若干个存储单元;以及,
[0028] 存储器控制器,用于控制所述存储器器件,其中,所述存储器控制器被配置为:
[0029] 在读取失败时依据所述存储块的擦除循环次数,查找对应于所述擦除循环次数所属范围的读取重试表;所述读取重试表包括多个读取偏压组;
[0030] 依据所述读取重试表中的多个读取偏压组,对所述存储块执行读取重试操作。
[0031] 第三方面,本申请实施例还提供了一种存储系统的操作方法,所述存储系统包括存储器器件和存储器控制器;所述存储器器件包括若干个存储块,所述存储块用于存储数据,所述存储块包括若干个存储单元,所述存储器控制器用于控制所述存储器器件,所述操作方法包括步骤:
[0032] 所述存储器控制器在读取失败时依据所述存储块的擦除循环次数,查找对应于所述擦除循环次数所属范围的读取重试表;所述读取重试表包括多个读取偏压组;
[0033] 所述存储器控制器依据所述读取重试表中的多个读取偏压组,对所述存储块执行读取重试操作。
[0034] 在一些实施例中,所述擦除循环次数依据若干个所述存储块的擦除循环次数进行分类得到初期阶段、前期阶段以及末期阶段。
[0035] 在一些实施例中,所述的存储系统的操作方法还包括:
[0036] 所述存储器控制器依据所述存储块的存储状态,提取对应于所述擦除循环次数所属范围内的所述存储状态的读取重试表。
[0037] 在一些实施例中,所述存储状态依据所述存储块的编程方式进行分类得到单级存储状态与多级存储状态;所述多级存储状态还包括按照所述存储块的已存储量进行分类得到的多阶满存存储状态与多阶未满存存储状态。
[0038] 在一些实施例中,所述的存储系统的操作方法还包括:
[0039] 查找对应于所述擦除循环次数所属范围的读取重试表群;
[0040] 基于读取重试表群中多个所述读取重试表的存储排布先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
[0041] 在一些实施例中,所述的存储系统的操作方法还包括:
[0042] 查找对应于所述擦除循环次数所属范围的读取重试表群;
[0043] 基于读取重试表群中多个所述读取重试表的最近使用时间先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
[0044] 在一些实施例中,所述的存储系统的操作方法还包括:
[0045] 查找对应于所述擦除循环次数所属范围的读取重试表群;
[0046] 基于读取重试表群中多个所述读取重试表进行读取操作时的读取成功度的先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
[0047] 本申请实施例提供的一种存储器控制器、存储系统及其操作方法,在读取失败时依据存储块的擦除循环次数,查找对应于擦除循环次数所属范围的读取重试表,通过读取重试表中的多个读取偏压组中的重试读取电压,对所述存储块执行读取重试操作。本申请基于原始对存储器器件已有的最优读取偏压组中的重试读取电压,通过存储块的擦除循环次数来索引查找对应于擦除循环次数所属范围的读取重试表,既能够提高索引查找最优的读取偏压组的效率,还能提升索引查找到的读取偏压组的适配度。附图说明
[0048] 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0049] 图1示出了一些示例性的存储器器件的示意电路图;
[0050] 图2示出了一些示例性的存储器单元阵列的存储串的截面的侧视图;
[0051] 图3示出了一些示例性的存储器器件中的外围电路的示意电路图;
[0052] 图4示出了一些示例性的系统的结构示意图;
[0053] 图5示出了一些示例性的固态硬盘的结构示意图;
[0054] 图6示出了一些示例性的主机和固态硬盘的结构示意图。
[0055] 图7示出了一些示例性的主机读取数据的流程示意图;
[0056] 图8示出了ECC电路进行纠错的流程图示意图;
[0057] 图9示出了使用编程方式和/或已存储量→在生命周期的时期的索引顺序进行索引查找读取偏压组的流程示意图;
[0058] 图10示出了一些示例性的存储系统的操作方法的流程图示意图;
[0059] 图11示出了使用编程方式和/或已存储量→在生命周期的时期的索引顺序进行索引查找读取偏压组的流程示意图;
[0060] 图12示出了一些示例性的使用在生命周期的初期阶段、编程方式、测试项目、已存储量生成的读取重试表的内容示意图;
[0061] 图13示出了一些示例性的使用在生命周期的前期阶段、编程方式、测试项目、已存储量生成的读取重试表的内容示意图;
[0062] 图14示出了一些示例性的使用在生命周期的末期阶段、编程方式、测试项目、已存储量生成的读取重试表的内容示意图;
[0063] 图15示出了一些示例性的基于LRU(least recently used)算法或成功率动态更新读取重试表群中多个读取重试表的存储排布先后顺序的示意图;
[0064] 图16示出了根据本申请提供的一些方面的具有半导体技术领域装置系统的示例性半导体技术领域装置卡的示意图;
[0065] 图17示出了根据本申请的一些方面的具有半导体技术领域装置系统的示例性固态驱动器(SSD)的示意图。

具体实施方式

[0066] 下面将结合附图,对本申请一些实施方案中的技术方案进行清楚、完整地描述,显然,所描述的实施方案仅仅是本申请一部分实施方案,而不是全部的实施方案。基于本申请所提供的实施方案,本领域普通技术人员所获得的所有其他实施方案,都属于本申请保护的范围。
[0067] 在本申请的描述中,需要理解的是,术语“中心”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。
[0068] 除非上下文另有要求,否则,在整个说明书权利要求书中,术语“包括”被解释为开放、包含的意思,即为“包含,但不限于”。在说明书的描述中,术语“一个实施方案”、“一些实施方案”、“示例性实施方案”、“示例性地”或“一些示例”等旨在表明与该实施方案或示例相关的特定特征、结构、材料或特性包括在本申请的至少一个实施方案或示例中。上述术语的示意性表示不一定是指同一实施方案或示例。此外,所述的特定特征、结构、材料或特点可以以任何适当方式包括在任何一个或多个实施方案或示例中。
[0069] 以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施方案的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0070] 在描述一些实施方案时,可能使用了“耦合”和“连接”及其衍伸的表达。例如,描述一些实施方案时可能使用了术语“连接”以表明两个或两个以上部件彼此间有直接物理接触或电接触。又如,描述一些实施方案时可能使用了术语“耦合”以表明两个或两个以上部件有直接物理接触或电接触。然而,术语“耦合”也可能指两个或两个以上部件彼此间并无直接接触,但仍彼此协作或相互作用。这里所公开的实施方案并不必然限制于本文内容。
[0071] “A、B和C中的至少一个”与“A、B或C中的至少一个”具有相同含义,均包括以下A、B和C的组合:仅A,仅B,仅C,A和B的组合,A和C的组合,B和C的组合,及A、B和C的组合。
[0072] “A和/或B”,包括以下三种组合:仅A,仅B,及A和B的组合。
[0073] 本文中“适用于”或“被配置为”的使用意味着开放和包容性的语言,其不排除适用于或被配置为执行额外任务或步骤的设备。
[0074] 另外,“基于”的使用意味着开放和包容性,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。
[0075] 如本本申请所使用的那样,“约”、“大致”或“近似”包括所阐述的值以及处于特定值的可接受偏差范围内的平均值,其中所述可接受偏差范围如由本领域普通技术人员考虑到正在讨论的测量以及与特定量的测量相关的误差(即,测量系统的局限性)所确定。
[0076] 在本申请的内容中,“在……上”、“上方”、和“之上”的含义应当以最宽泛的方式解释,使得“在……上”不仅意味着“直接在某物上”,而且还包括其间具有中间特征或层的“在某物上”的含义,并且“上方”或“之上”不仅意味着在某物“上方”或“之上”,还包括其间没有中间特征或层的在某物“上方”或“之上”的含义(即,直接在某物上)。
[0077] 图1示出包含外围电路302的示例性存储器器件30的示意图。存储器器件30可以包括存储器单元阵列301和耦合到存储器单元阵列301的外围电路302。其中,存储器单元阵列301可以是NAND闪存存储器单元阵列,在该NAND闪存存储器单元阵列中,以NAND存储器器件的存储串308的阵列的形式设置存储单元306,其中每个NAND存储器器件的存储串308在衬底(未示出)上方垂直地延伸。在一些实施方式中,每个NAND存储器器件的存储串308包括串联耦合并且垂直地堆叠的多个存储单元306。每个存储单元306可以保持连续的模拟值,例如,电压或电荷,其取决于在存储单元306的区域内捕获的电子的数量。每个存储单元306可以是包括浮栅晶体管的浮栅类型的存储单元,或者是包括电荷捕获晶体管的电荷捕获类型的存储单元。注意,出于说明性目的,本申请的NAND存储器器件仅是存储器器件30的一个示例。存储器器件30可以包括任何合适的固态、非易失性存储装置,例如,NOR闪存、FeRAM、PCM、MRAM、STT‑RAM或RRAM等。
[0078] 如图1所示,每个NAND存储串308可以包括在其源极端处的源极选择栅极(SSG)310和在其漏极端处的漏极选择栅极(DSG)312。SSG 310和DSG 312可以被配置为在读取和编程(或写入)操作期间激活选定的NAND存储串308(阵列的列)。在一些实施例中,同一存储块304中的NAND存储串308的源极通过同一源极线(SL)314(比如,公共SL)耦合。换句话说,根据一些实施方式,同一存储块304中的所有NAND存储串308具有阵列公共源极(ACS)。根据一些实施方式,每个NAND存储串308的DSG312耦合到相应的位线316,可以经由输出总线(未示出)从位线316读取和写入数据。在一些实施例中,每个NAND存储串308被配置为通过经由一个或多个DSG线313将选择电压(比如,高于具有DSG312晶体管的阈值电压)或取消选择电压(比如,0V)施加到相应的DSG 312和/或经由一个或多个SSG线315将选择电压(比如,高于具有SSG310的晶体管的阈值电压)或取消选择电压施加到相应的SSG 310而被选择或被取消选择。
[0079] 如图1所示,NAND存储串308可以被组织为多个存储块304,多个存储块304的每一个可以具有公共源极线314(比如,耦合到地)。在一些实施例中,每个存储块304是具有擦除操作的基本数据单位,即,同一存储块304上的所有存储单元306同时被擦除。为了擦除选定存储块304中的存储单元306,可以用擦除电压Vers(比如,高正电压20V或更高)偏置耦合到选定存储块304以及与选定存储块304同一面(Plane)中的未选定存储块304的源极线314。应该理解,在一些示例中,可以在半块级、在四分之一块级或者具有任何合适数量的块或块的任何合适的分数的级执行擦除操作。相邻NAND存储串308的存储单元306可以通过字线
318耦合,字线318选择存储单元306的哪一行接受读取和编程操作。在一些实施例方式中,耦合在同一字线318的存储单元306称之为存储页320。存储页320是用于编程操作或读取操作的基本数据单位,以位为单元的一存储页320的大小可以与一个存储块304中由字线318耦合的NAND存储串308的数量相关。每个字线318可以包括在相应存储页320中的每一个存储单元306处的多个控制栅极(栅极电极)以及耦合控制栅极的栅极线。
[0080] 在一些实施方式中,每个存储单元306是具有两种可能的数据状态并且因此可以存储一位数据的单级存储单元(single‑level cell,SLC)。多级存储单元306(multi‑level cell,MLC)可以存储两位数据,三级存储单元306(triple‑level cell,TLC)存储三位数据,或者四级存储单元306(quad‑level cell,QLC)存储四位数据,或者五级存储单元306(penta‑level cell,PLC)。
[0081] 如图1中所示,可以将多个NAND存储器器件的存储串308组织为多个存储块304。在一些实施方式中,每个存储块304是用于擦除操作的基本数据单位,即,同一存储块304上的所有存储单元306同时被擦除。
[0082] 图2示出了根据本申请的一些方面的包括NAND存储器器件的示例性存储器单元阵列301的存储串308的截面的侧视图。如图2中所示,NAND存储器器件的存储串308可以在衬底402上方垂直地延伸穿过堆叠结构404。衬底402可以包括(例如,单晶硅)、硅锗(SiGe)、砷化镓(GaAs)、锗(Ge)、绝缘体上硅(silicon on insulator,SOI)、绝缘体上锗(germanium on insulator,GOI)或者任何其他合适的材料。堆叠结构404可以包括交替的导电层406和电介质层408。堆叠结构404中的导电层406和电介质层408的数量可以确定存储器单元阵列301中的存储单元306的数量。导电层406可以包括导电材料,导电材料包括但不限于钨(W)、钴(Co)、(Cu)、(Al)、多晶硅、掺杂硅、硅化物或其任何组合。
[0083] 基于图1所示的存储器单元阵列301,图3示出了一些示例性外围电路302的示意电路图,外围电路302包括页缓冲器504、列解码器506、行解码器508、电压发生器510、控制逻辑单元512、寄存器514、输入/输出(input/output,I/O)电路516。应当理解,在一些示例中,还可以包括图3中未示出的附加外围电路。存储器单元阵列301可通过字线经由行解码器508以及位线经由列解码器506寻址。其中,控制逻辑单元512被配置为与页缓冲器504协作以对存储器单元阵列301执行存储操作。控制逻辑单元512包括状态机、片上地址解码器和功率控制模块,其中,状态机被配置为提供存储操作的芯片级控制;片上地址解码器被配置为在主机或存储系统的存储器控制器使用的地址到列解码器506、行解码器508使用的硬件地址之间提供地址接口。功率控制模块被配置为在每次存储操作器件控制提供给字线和位线的功率和电压。
[0084] 图4示出了电子设备1000的结构示意图,电子设备1000包括主机20,外部信号和数据经由信号线在主机和存储器控制器40之间传送。主机20可以将命令CMD和/或数据发送到存储系统100以存储在存储器器件30中,并且可以从存储系统100接收从存储器器件30读取到的响应RES和/或数据。例如,主机20可以实现为和/或包括应用处理器(AP)和/或片上系统(SoC)。例如,主机20可以实现为和/或包括但不限于集成电路、主板和/或数据库服务器
[0085] 主机20可以通过各种接口与存储系统100通信。在一些示例实施例中,主机20使用电缆经由可热插拔的接口电连接到存储系统100。存储器控制器40可以控制存储系统100的所有操作。存储器控制器40可以响应于来自主机20的命令CMD,将数据写入存储器器件30和/或从存储器器件30读取数据。
[0086] 图5示例性的示出了固态硬盘(SolidState Disk,SSD)600的结构示意图,固态硬盘600包括SSD控制器610、DRAM630和闪存装置620,闪存装置620包括多个闪存621。存储器器件30可以是如图5所示的闪存装置620,存储器控制器40可以是如图5所示的SSD控制器610。SSD控制器610为集成封装的芯片(ASIC),其内设置CPU611、ARM612、主机接口控制器(HostInterface Controller)613、缓存控制器614、闪存控制器(Flash Controller)615、Buffer(缓存)616、ECC电路(Error Correcting Code)617。其中,主机接口控制器613作为前端跟主机20交互,主机接口控制器613可以包括但是不限于PCEI接口、SATA接口、SAS接口;闪存控制器615作为后端跟闪存(FLASH)613交互并完成数据编解码和ECC验证,在此之外,缓存控制器614通过AXI总线与独立封装的DRAM(Dynamic Random Access Memory,动态随机存取内存)630互联互通,用于数据缓存。数据通过主机接口传入,缓存控制器614而后向CPU611申请传输总线的权限,而后将数据写入DRAM630的对应地址内,并通知闪存控制器
615,闪存控制器615将数据从DRAM630内取出存入到闪存621中,便完成数据的存储过程。
[0087] 图6示例性的示出了主机20和固态硬盘600的结构示意图。主机20支持操作系统OS,主机20中包括文件系统810以及底层驱动820。存储系统100可以是如图6所示的固态硬盘600(SolidState Disk,SSD),固态硬盘600是一种以半导体闪存作为介质的存储系统100。用户在主机20的操作系统的应用层面对固态硬盘600发出请求,文件系统810将读写请求经底层驱动820转化为相应的符合协议的读写和其他命令,固态硬盘600通过SSD接口640收到命令后执行相应的操作,然后输出结果。固态硬盘600主要包括SSD接口640、闪存转换层(Flash Translation Layer,FTL)650、NAND接口660以及多个NAND670。在固态硬盘600的前端,即SSD接口640接收主机20发来的命令和相关数据,命令经固态硬盘600处理后,再由SSD接口640返回命令状态或数据给主机20。SSD接口640包括但是不限于为SATA、SAS和PCIe接口与主机20相连,实现对应的ATA、SCSI和NVMe协议。当主机20通过SSD接口640发送写命令给固态硬盘600,固态硬盘600接收到该命令后执行,并接收主机20要写入的数据。数据一般会先缓存在固态硬盘600内部的随机存取存储器(random access memory,RAM)中,闪存转换层650会为每个逻辑数据块分配一个闪存地址,当数据凑到一定数量后,闪存转换层
650便会发送写闪存请求给后端,后端根据写请求,把随机存取存储器中的数据写到对应的NAND670中。
[0088] 固态硬盘600为主机20发送来的数据块分配任何可能的NAND670写入。闪存转换层650中设置有地址转换模块651,可完成逻辑数据块到闪存物理空间的转换或者映射。同时,闪存转换层650中还具有擦除无效数据的垃圾回收模块654,随着用户数据的不断写入,NAND670内会产生垃圾数据(无效数据),垃圾数据会占用NAND670的空间,当NAND670可用空间不够时,闪存转换层650中的垃圾回收模块654可做垃圾回收,即把若干个NAND670上的有效数据搬出,写到某个新的NAND670,然后把这些之前用过的NAND670擦除,得到可用闪存块。闪存转换层650中还包括保证每个NAND670均衡写入的磨损均衡模块652,以及实现坏块管理的坏块管理模块653。其中,坏块管理模块653可实现多个NAND670中的坏块管理。
[0089] 固态硬盘600可以是NAND Flash,SSD控制器610内有ECC电路617,ECC电路617基于纠错码生成用于存储在存储器器件30中的数据的纠错码,或者检测从闪存装置620读取的数据中的错误以校正。在NAND Flash处于上电状态时,FTL650会定期扫描已写的block即存储块304,SSD控制器610被设计为根据从闪存装置620读取的数据的错误位计数fbc(failed bit count的缩写)或误码率(bit error rate)产生刷新命令。具体而言,ECC电路617至少包括译码器、错误计数器、刷新控制电路。译码器被配置为从存储器装置接收数据和对应的奇偶校验码,并使用对应的奇偶校验码对该数据进行译码操作来产生译码后的数据(decoded data),其中该数据和对应的奇偶校验可以响应于SSD控制器610发送的读命令而被读取。在对数据进行译码的过程中,译码器可以知道接收数据的哪个位具有错误,一旦发现错误位,译码器通知错误计数器。错误计数器被配置为根据由译码器发现的错误位计数产生错误位信息给刷新控制电路,其中错误位信息可以是过去一段时间内的错误位计数,或者数据的误码率。
[0090] ECC电路617可以检测和校正小于纠错能的错误,ECC电路617不能检测或校正超过纠错能力的错误。对于ECC电路617不能纠正错误的数据属于UECC(Uncorrectable Error Correcting Code的缩写),即不可校正纠错码。对于ECC电路617能纠正错误的数据属于CECC(Correctable Error Correcting Code的缩写),即可校正纠错码。对于可校正纠错码的数据,还分类为对于ECC电路617能纠正错误且存储块304的错误位计数大于特定值的数据被称作HECC(High Error Correcting Code)数据。
[0091] ECC解码操作可以包括硬解码操作和软解码操作,ECC电路617的纠错机制是先由硬解码器(hard decoding)进行硬解码操作再由软解码器(soft decoding)进行软解码操作,即当硬解码操作失败时,执行软解码操作。总之,当数据受损程度较高时,仅凭常规读取纠错无法完全纠正待恢复数据中的错误。这种情况下SSD控制器610可以通过调整采用不同的读取阈值电压对所述待恢复数据进行多次重复读取,而采用纠错码的硬解码功能进行解码纠错。当数据受损较为严重时,通过若干次的重复读取以及硬解码可能也无法实现数据纠错。这种情况下SSD控制器610可以执行软解码操作进行数据恢复。其中,硬解码操作和软解码操作都可以在最大迭代计数内迭代,直到ECC解码操作成功。
[0092] 图7示例性的示出了主机20读取数据的流程,主机20发送读取命令给存储系统100,存储系统100中的缓存接收读取命令并查找对应于读取命令的数据,如果查找到,缓存就将查找到的数据传送给主机20。如果没有查找到,就从NAND Flash中读取数据,然后ECC电路617进行纠错流程,如果存储块304的错误位计数大于特定值,说明存储块304的数据误码率高,确定不可校正属于UECC,就通过深度纠错模块进行纠错,如果存储块304的错误位计数还是大于特定值,那么读取失败并发送此结果给主机20。如果存储块304的错误位计数小于特定值,说明存储块304的数据误码率低,确定可校正属于CECC或者可正常读取,译码器进行译码读取并发送读取数据给主机20。
[0093] 图8示例性的示出了ECC电路617进行纠错的流程。ECC电路617判断正常读取是否成功,如果正常读取成功那么ECC电路617读取成功,如果正常读取不成功进行读取重试并判断读取重试是否成功。如果读取重试成功那么ECC电路617读取成功,如果读取重试不成功通过软解码器进行软解码并判断软解码是否成功。如果软解码成功那么ECC电路617读取成功,如果软解码不成功通过硬解码器进行硬解码并判断硬解码是否成功。例如RAID(Redundant Arrays of Independent Disks,独立磁盘冗余阵列)奇偶校验(Parity 
Check)恢复数据实现硬解码。如果硬解码成功那么ECC电路617读取成功,如果硬解码不成功最终确定ECC电路617读取失败,属于UECC需要对属于UECC的存储块304进行刷新。
[0094] 上面讨论的存储系统中的存储器单元阵列301可以被擦除、编程和读取。由于存储系统中的存储单元306可以被布置为单级存储单元或者多级存储单元,而多级存储单元又可以分为多级存储单元MLC、三级存储单元TLC以及四级存储单元QLC等等,因此,对于一个存储页,在成功编程过程(具有验证)结束时,被编程的存储单元306的阈值电压应当在一个或者多个分布内。在实际应用过程中,不同种类的存储单元306,具有的数据状态是不相同的。
[0095] 随着NAND Flash的容量越来越大,存储单元306对应储存的数据位数也越来越大。即SLC→MLC→TLC→QLC→PLC对应不同数据状态的阈值电压分布的个数越来越多,多个数据状态包括一个擦除态和2N‑1个编程态,N为存储单元306至多存储的数据的位数。由于NAND Flash的容量增大导致存储单元306中储存的数据量增大,因此需要不断增强数据保护能力来提高数据的可靠性。ECC电路617基于RRT(Read retry table的缩写,即为读取重试表)使用包括但是不限于BCH、LDPC的纠错算法对从存储单元306读取的数据进行检测和纠错。适配度较高的RRT不仅可以增强数据的保护能力还可以提高对存储单元中的数据进行读取的性能。因此,如果ECC电路617使用的RRT的适配度不高,会增加软解码器的工作量,降低读性能。
[0096] 读取重试表可以包括但是不限于以下索引参数:编程方式(包括单级存储状态与多级存储状态);已存储量(包括多阶满存存储状态(close)或多阶未满存存储状态(open));测试项目;存储块的擦除循环次数在生命周期的时期(包括但是不限于初期阶段、前期阶段以及末期阶段)。其中,如图9所示,存储器控制器先使用编程方式和/或已存储量→在生命周期的时期的索引顺序进行索引查找读取偏压组进行读取重试,在这种方式中,适配度不高导致读取重试的次数无法有效降低。
[0097] 本申请进一步提出如图10所示的示例性实施方式的存储系统的操作方法的流程示意图。所述存储器控制器用于控制存储器器件,所述存储器器件包括若干个存储块,所述存储块用于存储数据,所述存储器控制器被配置为执行如图10所示的流程,存储系统的操作方法的流程包括如下步骤:
[0098] S100、存储器控制器在读取失败时依据所述存储块的擦除循环次数,查找对应于所述擦除循环次数所属范围的读取重试表;所述读取重试表包括多个读取偏压组。
[0099] 在一些示例中,当从主机接收到读取请求时,存储器控制器可生成用于从被请求读取的指定读取存储块读取数据的正常读取命令,并且将该正常读取命令提供至存储器器件。其中,正常读取命令可以指用于基于预设初始读取电压来执行读取操作的读取命令。存储器控制器可以使用初始读取电压来对所指定读取的存储块执行正常读取操作。正常读取操作指代使用初始读取电压所执行的读取操作。存储器器件可响应于从存储器控制器提供的正常读取命令,通过对指定读取存储块执行正常读取操作来读取数据,并且将正常读取数据传输到存储器控制器。存储器控制器可控制ECC电路617对从存储器器件接收到的正常读取数据进行解码,来校正接收到的正常读取数据中包括的错误。当对正常读取数据的解码成功时正常读取操作成功,存储器控制器可将经错误校正的正常读取数据传输到主机。
[0100] 当对正常读取数据的解码失败时正常读取操作失败,存储器控制器可生成用于从被请求读取的指定读取存储块读取数据的读取重试命令,并且将该读取重试命令提供至存储器器件。其中,读取重试命令可以指用于基于重试读取电压来执行读取操作的读取命令。存储器控制器可以使用与初始读取电压不同的重试读取电压来对所指定读取的存储块执行读取重试操作。读取重试操作指代在正常读取操作之后,使用与初始读取电压不同的重试读取电压所执行的读取操作。其中,重试读取电压不同于初始读取电压。在操作示例中,如果读取重试操作成功,则存储器控制器将重试读取电压作为历史读取电压进行存储。
[0101] 由于读取重试表中的读取偏压组很多,若编排不当,存储器器件在读取重试时,可能耗费相当长的时间,才能获得最合适的读取偏压组执行读取重试操作以正确的读取数据,长时间无法获得最合适的读取偏压组中的重试读取电压进行读取重试操作,使得存储器器件的读取延迟时间(latency time)大幅地增加。或者,存储器器件在读取重试时,可能发生读取时间过久而造成超时(timeout)的情形而无法读取成功。在一些示例中,读取失败包括正常读取操作失败、读取重试操作失败。
[0102] 本申请存储器控制器在读取失败时依据存储块的擦除循环次数,查找对应于擦除循环次数所属范围的读取重试表,下文进行描述如何以擦除循环次数进行索引查找至少对应于擦除循环次数范围内的读取重试表。
[0103] 在一些实施例中,所述擦除循环次数依据若干个所述存储块的擦除循环次数进行分类得到初期阶段、前期阶段以及末期阶段。
[0104] 在一些示例中,存储器控制器可以根据指定读取的存储块的擦除循环次数进行划分,划分的时期数量可任意设置。例如分类得到为前期阶段以及末期阶段。还例如分类得到为初期阶段、前期阶段、后期阶段以及末期阶段。初期阶段是指定读取的存储块在生命周期内最早的一段时期。前期阶段是指定读取的存储块在生命周期内最早的时期之后的一段时期。后期阶段是指定读取的存储块在生命周期内前期阶段之后的一段时期。末期阶段是指定读取的存储块在生命周期内最后的一段时期。本实施例中的生命周期可以是同一个存储单元或储存串中的多个存储块的生命周期的平均值。本申请将依据若干个存储块的擦除循环次数进行分类得到初期阶段、前期阶段以及末期阶段,这样,相对于划分的时期数量为两个而言,读取偏压组的组数更多更细,能够提高索引查找出来的读取偏压组的适配度。相对于划分的时期数量为至少四个而言,读取偏压组的组数虽然更多更细,但是索引查找最优的读取偏压组的效率会降低,因此,本申请选择将擦除循环次数进行分类得到初期阶段、前期阶段以及末期阶段,既能够提高索引查找最优的读取偏压组的效率,还能提升索引查找到的读取偏压组的适配度。本申请根据EC分类选项即本申请根据擦除循环次数划分为初期阶段Fresh、前期阶段BOL以及末期阶段EOL,以及存储状态(包括不同编程态对应的下页(lower page)、中间页(middle page)和上页(lupper page))、已存储量、测试项目以及读取电压参数的数值(mv)之间的对应关系以构成多个读取偏压组的条目如图12、图13和图14所示。
[0105] 在一些实施例中,所述存储器控制器还被配置为:
[0106] 依据所述存储块的存储状态,提取对应于所述擦除循环次数所属范围内的所述存储状态的读取重试表。
[0107] 在一些示例中,本申请当正常读取操作或先前读取重试操作失败时,存储器控制器可以先根据擦除循环次数所在的时期类型(包括初期阶段、前期阶段和末期阶段)对多个读取重试表进行初步筛选得到初筛结果,然后存储器控制器再根据存储块的存储状态从初筛结果中进一步进行第二次筛选。其中,存储状态包括但是不限于下文实施例中的编程方式、已存储量。
[0108] 在一些实施例中,所述存储状态依据所述存储块的编程方式进行分类得到单级存储状态与多级存储状态。
[0109] 在一些示例中,存储块的编程方式包括但是不限于SLC、MLC、TLC、QLC和PLC。其中,单级存储状态是指SLC存储状态,多级存储状态包括但是不限于MLC存储状态、TLC存储状态、QLC存储状态和PLC存储状态。
[0110] 本申请当正常读取操作或先前读取重试操作失败时,存储器控制器可以先根据擦除循环次数所在的时期类型对多个读取重试表进行初步筛选得到初筛结果,然后存储器控制器再根据存储块的编程方式从初筛结果中进行第二次筛选。
[0111] 在一些实施例中,所述多级存储状态还包括按照所述存储块的已存储量进行分类得到的多阶满存存储状态与多阶未满存存储状态。
[0112] 在一些示例中,由于存储器包括多个具有预定容量的存储块,存储器控制器在对存储器器件进行编程操作之前可以对存储器器件中的各个存储块进行检测,以获取各个存储块的容量信息,其中,容量信息包括空间总量、空间剩余量和空间占用量。其中,多阶满存存储状态(close)表明存储块的空间剩余量为0,无法再存入或写入新的数据,因此该存储块会处于关闭状态,以拒绝存储器控制器继续向多阶满存存储状态的存储块写入数据。反之,多阶未满存存储状态(open)表明存储块的空间剩余量不为0,还可以再存入或写入新的数据,因此该存储块会处于打开状态,以允许存储器控制器继续向多阶满存存储状态的存储块写入数据。由于存储块随着时间的流逝,使用的过程中存储块的空间占用量即已存储量会越来越大。本申请可以按照存储块的空间占用量即已存储量将多级存储状态分类为多阶满存存储状态(close)与多阶未满存存储状态(open)。
[0113] 本申请当正常读取操作或先前读取重试操作失败时,存储器控制器可以先根据擦除循环次数所在的时期类型对多个读取重试表进行初步筛选得到初筛结果,然后存储器控制器再根据存储块的已存储量从初筛结果中进行第二次筛选。
[0114] 或者,本申请当正常读取操作或先前读取重试操作失败时,存储器控制器可以先根据擦除循环次数所在的时期类型对多个读取重试表进行初步筛选得到初筛结果,然后存储器控制器再根据存储块的编程方式从初筛结果中进行第二次筛选,之后,存储器控制器再根据存储块的已存储量从二次筛选后结果中进一步进行第三次筛选。
[0115] 在一些实施例中,所述存储器控制器还被配置为:
[0116] 依据所述存储块的测试项目,提取对应于所述擦除循环次数所属范围内的所述测试项目的读取重试表。
[0117] 在一些示例中,测试项目是指对存储器器件的存储块进行的性能测试的项目,测试项目包括但是不限于PCHTDR(Postcycling High Temperature data,循环后高温数据存储测试)、BLK RD(block Read data,存储块的读取测试)、X‑temp(High and low temperature Write/Read data,高低温读写数据测试)、UCHTDR(Uncycled High 
Temperature Data,高温数据存储测试)、NVCE(Cycling Endurance循环耐力测试)、LTDR(Low Temperanure Retention and read disturb,低温保存和读取干扰测试)。
[0118] 本申请当正常读取操作或先前读取重试操作失败时,存储器控制器可以先根据擦除循环次数所在的时期类型对多个读取重试表进行初步筛选得到初筛结果,然后存储器控制器再根据存储块的编程方式从初筛结果中进行第二次筛选,之后,存储器控制器再根据存储块的测试项目从二次筛选后结果中进一步进行第三次筛选。
[0119] 或者,如图11所示,本申请当正常读取操作或先前读取重试操作失败时,存储器控制器可以先根据擦除循环次数所在的时期类型对多个读取重试表进行初步筛选得到初筛结果,然后存储器控制器再根据存储块的编程方式从初筛结果中进行第二次筛选,之后,存储器控制器再根据存储块的已存储量从二次筛选后结果中进一步进行第三次筛选。最后,存储器控制器再根据存储块的已存储量从三次筛选后结果中进一步进行第四次筛选。
[0120] 本申请通过层层递进的不同索引顺序进行多方位、多条件筛选,能减少索引查找到的读取重试表的数量,这样,能够提高索引查找最优的读取偏压组的效率,也可以提升索引查找到的读取偏压组的适配度。
[0121] 在一些实施例中,所述存储器控制器还被配置为:
[0122] 在读取失败时依据多个所述存储块的多个擦除循环次数的平均值,查找对应于所述多个擦除循环次数的平均值所属范围的读取重试表。
[0123] 在一些示例中,存储器控制器在读取失败后,可以获取多个存储块的多个擦除循环次数,对多个存储块的多个擦除循环次数进行均值计算得到多个擦除循环次数的平均值,然后存储器控制器查找对应于所述多个擦除循环次数的平均值所属范围的读取重试表,这样根据多个擦除循环次数的平均值查找到的读取重试表所包括的读取偏压组的重试读取电压的范围更大,从而提高索引查找最优的读取偏压组的效率,也可以提升索引查找到的读取偏压组的适配度。
[0124] 在一些实施例中,所述读取偏压组包括不同字线的读取电压参数。
[0125] 在一些示例中,存储块304中包括多个NAND存储串308,每个NAND存储串308包括多个字线318和存储单元306。由于字线318选择存储单元306的哪一行接受读取和编程操作。故而,存储块304中的多个字线318对应有不同存储单元306的读取电压参数。读取电压参数可以包括读取重试电压和初始读取电压。
[0126] 存储器控制器选择多个根据读取电压参数进行数据读取成功的存储块中的至少一条字线作为目标字线,利用所述目标字线对应的目标存储单元,以确定所述目标存储单元的最优读取偏压组,所谓最优读取偏压组就是采用该组读取电压参数可以读到的正确数据最多,成功率最高。
[0127] S200、存储器控制器依据所述读取重试表中的多个读取偏压组,对所述存储块执行读取重试操作。
[0128] 在一些示例中,存储器控制器通过上述实施例索引查找到读取重试表后,提取所找到读取重试表中的多个读取偏压组,存储器控制器根据所找到读取重试表中的多个读取偏压组,控制电压发生器510产生对应于多个读取偏压组的重试读取电压,对所述存储块执行读取重试操作。
[0129] 在一些实施例中,所述存储器控制器还被配置为:
[0130] 查找对应于所述擦除循环次数所属范围的读取重试表群;
[0131] 基于读取重试表群中多个所述读取重试表的存储排布先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
[0132] 在一些示例中,由于擦除循环次数可能是个一个数值,也可能是一个数值范围,因此,存储器控制器根据擦除循环次数可能会查找到包括多个读取重试表的读取重试表群。其中,原始的存储排布先后顺序可能是存储在DRAM630的存储时间排布顺序。如果存储器控制器查找到读取重试表群,那么就根据读取重试表群中多个所述读取重试表的原始的存储排布先后顺序,依序加载所述读取重试表群中的多个所述读取重试表进行读取重试操作。
[0133] 在一些实施例中,所述存储器控制器还被配置为:
[0134] 查找对应于所述擦除循环次数所属范围的读取重试表群;
[0135] 基于读取重试表群中多个所述读取重试表的最近使用时间先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
[0136] 在一些示例中,如果存储器控制器查找到读取重试表群,直接就根据读取重试表群中多个所述读取重试表的原始的存储排布先后顺序进行读取重试操作,较大概率会出现读取失败的情况。因此,如图15所示,使用LRU(least recently used)算法去调整读取重试表群中多个读取重试表的顺序,可以提高读错重试的成功率,实质上LRU就是将最近读取成功的读取重试表提到最前面。需要知道的是,每个存储单元的下页(lower page)、中间页(middle page)和上页(lupper page)每个都是单独管理读取重试表的。本实施例中基于LRU算法将读取重试表群中最可能读取成功的读取重试表放到最前面。
[0137] 在一些实施例中,每个读取重试表中的多个读取偏压组基于LRU最可能读取成功的读取偏压组放到最前面。
[0138] 存储器单元阵列301中相同存储块304上的读取错误通常具有高度的相似性。因此,在统计学上导致重试读取成功的最近使用的读取重试表或读取偏压组具有高得多的成功概率。本申请存储器控制器遵循LRU算法来动态调整更新读取重试表群中多个所述读取重试表的存储排布先后顺序,根据遵循LRU算法来动态调整更新读取重试表群中多个所述读取重试表的存储排布先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。本申请以这种方式,读取重试表群中多个所述读取重试表的存储排布先后顺序在时间上被动态更新,而不是静态表。
[0139] 如图15所示,存储器控制器先根据初始读取表群中的多个初始读取表对应的初始读取电压的读取表进行读取。然后,如果读取失败,那么存储器控制器就会基于初始读取表群更新读取重试表群中的多个读取重试表,示例性的,初始读取表群包括55个初始读取表Table1至Table55,读取重试表群包括55个读取重试表Table1至Table55,本申请基于LRU(least recently used)算法去调整读取重试表群中多个Table1至Table55的顺序。
[0140] 值得注意的是,存储器控制器删除或移除读取重试表群中最老或时间最早的读取重试表。或者,存储器控制器删除或移除读取重试表中最老或时间最早的读取偏压组。
[0141] 在一些实施例中,所述存储器控制器还被配置为:
[0142] 查找对应于所述擦除循环次数所属范围的读取重试表群;
[0143] 基于读取重试表群中多个所述读取重试表进行读取操作时的读取成功度的先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
[0144] 在一些示例中,如果存储器控制器查找到读取重试表群,直接就根据读取重试表群中多个所述读取重试表的原始的存储排布先后顺序进行读取重试操作,较大概率会出现读取失败的情况。因此,如图15所示,获取读取重试表群中各读取重试表进行读取操作时读取成功的第一计数值,以及读取失败的第二计数值。然后,将所述第一计数值除以总计数值以得到各所述读取重试表的读取成功度或读取命中率,其中,所述总计数值等于所述第一计数值和所述第二计数值的和值。然后,存储器控制器将读取重试表群中多个所述读取重试表按照各自对应的成功度大小从高到低的顺序进行排序,也就是将读取重试表群中成功度最大的读取重试表排在最前面。然后,存储器控制器按从最高成功度到最低成功度的顺序从读取重试表群中顺序地选择所述读取重试表进行读取重试操作。
[0145] 本申请基于原始对存储器器件已有的最优读取偏压组中的重试读取电压,通过存储块的擦除循环次数来索引查找对应于擦除循环次数所属范围的读取重试表,这样索引查找出来的读取重试表中所包括的读取偏压组的适配度更高,这样,存储器控制器基于适配度更高的读取偏压组中的重试读取电压对指定读取存储块进行读取重试操作,可以减少在主机读取操作处理中执行的读取重试的次数,以避免存储器器件的性能的退化,进而提升存储器器件的使用寿命。
[0146] 在另一些实施方案中,本申请实施例还提供一种存储系统,包括:
[0147] 存储器器件,所述存储器器件包括若干个存储块,所述存储块用于存储数据,所述存储块包括若干个存储单元;以及,
[0148] 存储器控制器,用于控制所述存储器器件,其中,所述存储器控制器被配置为:
[0149] 在读取失败时依据所述存储块的擦除循环次数,查找对应于所述擦除循环次数所属范围的读取重试表;所述读取重试表包括多个读取偏压组;
[0150] 依据所述读取重试表中的多个读取偏压组,对所述存储块执行读取重试操作。
[0151] 本申请存储器控制器在读取失败时依据存储块的擦除循环次数,查找对应于擦除循环次数所属范围的读取重试表,通过读取重试表中的多个读取偏压组中的重试读取电压,对所述存储块执行读取重试操作。本申请基于原始对存储器器件已有的最优读取偏压组中的重试读取电压,通过存储块的擦除循环次数来索引查找对应于擦除循环次数所属范围的读取重试表,这样索引查找出来的读取重试表中所包括的读取偏压组的适配度更高,这样,存储器控制器基于适配度更高的读取偏压组中的重试读取电压对指定读取存储块进行读取重试操作,可以减少在主机读取操作处理中执行的读取重试的次数,以避免存储器器件的性能的退化,进而提升存储器器件的使用寿命。
[0152] 本申请的RRT根据Fresh/BOL/EOL做为根目录来分类,或者根据擦除循环次数(或者擦除循环次数的均值)在每个根目录进一步分类,再根据存储块的已存储量分类为open/close,这样的目的进一步细化读取重试表,使当前时期下擦除循环次数(或者擦除循环次数的均值)找到的读取重试表的贴合度更高。
[0153] FTL(flash tra layer)的磨损均衡功能会让所有的存储块的擦除循环次数(或者擦除循环次数的均值)差值不会太大。本申请针对擦除循环次数(或者擦除循环次数的均值)差值较小的,然后在擦除循环次数(或者擦除循环次数的均值)找贴合度最高的读取重试表。
[0154] 本申请提供不同时期擦除循环次数范围对应各个测试项目、已存储量、编程类型找到最佳的读取重试表,进而找到贴合度最高的读取偏压组。另外基于LRU在读取重试表群中找到之前最合适的一个读取重试表,且把最合适的一个读取重试表中最合适的一组读取偏压组放在最前面,不是轮询完所有的读取偏压组进行读取重试操作,这样即使增加了每个读取重试表的读取偏压组的组数,但是不会增加读取时间,相对于通过软解码器进行纠错校正的时间花费更少,速度较快。另外通过软解码器进行纠错校正也不一样能找到最佳的读取偏压组。本申请基于适配度更高的读取偏压组中的重试读取电压对指定读取存储块进行读取重试操作,可以减少在主机读取操作处理中执行的读取重试的次数,以避免存储器器件的性能的退化,进而提升存储器器件的使用寿命。
[0155] 在另一些实施方案中,本申请实施例还提供一种存储系统的操作方法,所述存储系统包括存储器器件和存储器控制器;所述存储器器件包括若干个存储块,所述存储块用于存储数据,所述存储块包括若干个存储单元,所述存储器控制器用于控制所述存储器器件,所述操作方法包括步骤:
[0156] 所述存储器控制器在读取失败时依据所述存储块的擦除循环次数,查找对应于所述擦除循环次数所属范围的读取重试表;所述读取重试表包括多个读取偏压组;
[0157] 所述存储器控制器依据所述读取重试表中的多个读取偏压组,对所述存储块执行读取重试操作。
[0158] 在一些实施例中,所述擦除循环次数依据若干个所述存储块的擦除循环次数进行分类得到初期阶段、前期阶段以及末期阶段。
[0159] 在一些实施例中,所述的存储系统的操作方法还包括:
[0160] 所述存储器控制器依据所述存储块的存储状态,提取对应于所述擦除循环次数所属范围内的所述存储状态的读取重试表。
[0161] 在一些实施例中,所述存储状态依据所述存储块的编程方式进行分类得到单级存储状态与多级存储状态;所述多级存储状态还包括按照所述存储块的已存储量进行分类得到的多阶满存存储状态与多阶未满存存储状态。
[0162] 在一些实施例中,所述的存储系统的操作方法还包括:
[0163] 查找对应于所述擦除循环次数所属范围的读取重试表群;
[0164] 基于读取重试表群中多个所述读取重试表的存储排布先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
[0165] 在一些实施例中,所述的存储系统的操作方法还包括:
[0166] 查找对应于所述擦除循环次数所属范围的读取重试表群;
[0167] 基于读取重试表群中多个所述读取重试表的最近使用时间先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
[0168] 在一些实施例中,所述的存储系统的操作方法还包括:
[0169] 查找对应于所述擦除循环次数所属范围的读取重试表群;
[0170] 基于读取重试表群中多个所述读取重试表进行读取操作时的读取成功度的先后顺序,依序加载所述读取重试表群中的所述读取重试表进行读取重试操作。
[0171] 本申请存储器控制器在读取失败时依据存储块的擦除循环次数,查找对应于擦除循环次数所属范围的读取重试表,通过读取重试表中的多个读取偏压组中的重试读取电压,对所述存储块执行读取重试操作。本申请基于原始对存储器器件已有的最优读取偏压组中的重试读取电压,通过存储块的擦除循环次数来索引查找对应于擦除循环次数所属范围的读取重试表,这样索引查找出来的读取重试表中所包括的读取偏压组的适配度更高,这样,存储器控制器基于适配度更高的读取偏压组中的重试读取电压对指定读取存储块进行读取重试操作,可以减少在主机读取操作处理中执行的读取重试的次数,以避免存储器器件的性能的退化,进而提升存储器器件的使用寿命。
[0172] 其中,存储系统100可以集成到各种类型的存储设备中,例如,包括在相同封装(例如,通用闪存存储(Universal Flash Storage,简称UFS)封装或嵌入式多媒体卡(EmbeddedMulti Media Card,简称eMMC)封装)中。也就是说,存储系统100可以应用于并且封装到不同类型的电子产品中,例如,数据服务器、网络附接存储(network‑attached storage)、物联网(IoT)设备或便携式电子设备中的至少一种。便携式电子设备可以包括移动电话(例如手机)、个人计算机(PC)、台式计算机、平板电脑笔记本电脑、服务器、车载设备、游戏控制台、打印机定位设备、可穿戴设备、智能传感器、移动电源、企业数字助理(EDA)、数字静态照相机、数字摄像机、音频设备、便携式多媒体播放器(PMP)、个人导航设备(PND)、MP3播放器、手持游戏机、电子书、虚拟现实(Virtual Reality,简称VR)设备、增强现实(Augmented Reality,简称AR)设备或者其中具有存储器器件的任何其他合适的电子设备。
[0173] 在一些示例中,如图4所示,存储系统100包括存储器控制器40和一个存储器器件30,存储系统100可以被集成到如图16所示的存储卡设备150中。
[0174] 其中,存储卡设备150包括PC卡(PCMCIA,个人计算机存储卡设备国际协会)、紧凑型闪存(Compact Flash,简称CF)卡、智能媒体(Smart Media,简称SM)卡、存储器器件棒、多媒体卡(Multimedia Card,简称MMC)、安全数码(Secure Digital Memory Card,简称SD)卡、UFS中的任一种。
[0175] 在另一些实施方案中,存储系统100包括存储器控制器40和多个存储器器件30,存储系统100集成到固态硬盘(Solid State Drives,简称SSD)中。
[0176] 本申请的一些实施方案还提供了一种电子设备。电子设备可以是手机、台式计算机、平板电脑、笔记本电脑、服务器、车载设备、可穿戴设备(例如智能手表、智能手环、智能眼镜等)、移动电源、游戏机、数字多媒体播放器等中的任一种。
[0177] 电子设备可以包括上文所述的存储系统100,还可以包括中央处理器CPU(CentralProcessing Unit,中央处理器)和缓存器(cache)等中的至少一种。电子设备可以是移动电话、台式计算机、膝上型计算机、平板计算机、车辆计算机、游戏控制台、打印机、定位设备、可穿戴电子设备、智能传感器、虚拟现实(virtual reality,VR)设备、增强现实(Augmented RealityAR)设备,或其中具有存储器器件的任何其他合适的电子设备。电子设备可以包括主机和存储系统100,存储系统100具有一个或多个存储器器件30和存储器控制器40。主机可以包括电子设备的处理器,例如中央处理单元(central processing unit,CPU),或片上系统(system‑on‑chip,SoC),例如应用处理器(application processor,AP)。
主机还可以包括用于与存储系统100耦合的存储接口,该存储接口被配置为遵守相应的协议(例如NVMe、PCIe等协议),主机可以被配置为通过例如存储接口向存储器器件30发送数据或从存储器器件30接收数据。为了向存储器器件30发送数据或从存储器器件30接收数据,除了数据之外,主机还可以向存储系统100发送指令。存储器器件30可以是本申请中公开的任何存储器器件。
[0178] 根据一些实施方式,存储器控制器40耦合到存储器器件30和主机,并且被配置为控制存储器器件30。存储器控制器40具体可以由微处理器、微存储器控制器(又名微存储器控制器单元(MCU))、中央处理器(CPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程阵列(FPGA)、可编程逻辑设备(PLD)、状态机、门控逻辑单元、分立硬件电路或它们的组合,以及被配置为执行以下详细描述的各种功能的其他合适的硬件、固件和/或软件来实现。存储器控制器40可以管理存储在存储器器件30中的数据,并且通过其前段接口与主机通信。在一些实施方式中,存储器控制器40被设计为用于在低占空比环境中操作,如安全数字(secure digital,SD)卡、紧凑型闪存(compact Flash,CF)卡、通用串行总线(universal serial bus,USB)闪存驱动器、或用于在诸如个人计算机、数字相机、移动电话等的电子设备中使用的其他介质。在一些实施方式中,存储器控制器40被设计为用于在高占空比环境SSD或嵌入式多媒体卡(embedded multi‑media‑card,eMMC)中操作,SSD或eMMC用作诸如智能电话、平板计算机、膝上型计算机等的移动设备的数据存储器器件以及企业存储阵列。存储器控制器40可以被配置为控制存储器器件30的操作,例如读取、擦除和编程操作。
[0179] 存储器控制器40还可以被配置为管理关于存储在或要存储在存储器器件30中的数据的各种功能,包括但不限于坏块管理、垃圾收集、逻辑到编程地址转换、损耗均衡等。在一些实施方式中,存储器控制器40还被配置为处理关于从存储器器件30读取的或者被写入到存储器器件30的数据的纠错码(error correction code,ECC)。存储器控制器40还可以执行任何其他合适的功能,例如,格式化存储器器件30。存储器控制器40可以根据具体通信协议与外部设备(例如,主机)通信。例如,存储器控制器40可以通过各种接口协议中的至少一种与外部设备通信,接口协议可以是例如通用串行总线(universalserial bus,USB)协议、多媒体卡(multimedia card,MMC)协议、外围部件互连(peripheralcomponent interconnection,PCI)协议、PCI高速(PCI‑express,PCI‑E)协议、高级技术附件(advanced technology attachment,ATA)协议、串行ATA协议、并行ATA协议、小型计算机小型接口(small computer small interface,SCSI)协议、增强型小型磁盘接口(enhancedsmall disk interface,ESDI)协议、集成驱动电子设备(integrated drive electronics,IDE)协议、Firewire协议等。
[0180] 存储器控制器40和一个或多个存储器器件30可以集成到各种类型的存储系统中,例如,包括在相同封装(例如,通用闪存存储(universal Flash storage,UFS)封装或eMMC封装)中。也就是说,存储系统100可以实施并且封装到不同类型的终端电子产品中。在如图16中所示的一个示例中,存储器控制器40和单个存储器器件30可以集成到存储卡设备150中。存储卡设备150可以包括嵌入在电子设备中的内部存储器器件。例如,存储卡设备150可以包括PC卡(personal computer memory card internationalassociation,PCMCIA),个人计算机存储器器件卡国际协会)、CF卡、智能媒体(smart media,SM)卡、存储器器件棒、多媒体卡(MMC、RS‑MMC、MMC micro)、SD卡(SD、mini SD、micro SD、SDHC)、UFS存储卡等。存储卡设备150还可以包括存储器器件卡连接器1501,该存储器器件卡连接器1501被配置为将存储卡设备150耦合到主机。在如图17中所示的另一示例中,存储器控制器40和多个存储器器件30可以集成到SSD151即固态硬盘(Solid State Disk)中。SSD151还可以包括SSD连接器1511,该SSD连接器1511被配置为将SSD151耦合到主机。在一些实施方式中,SSD151的存储容量和/或操作速度大于存储卡设备150的存储容量和/或操作速度。
[0181] 以上是对本申请实施例的较佳实施进行了具体说明,本申请中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
QQ群二维码
意见反馈