首页 / 专利库 / 资料储存系统 / 高速缓冲存储器 / 存储系统中执行的条带重建方法和存储系统

存储系统中执行的条带重建方法和存储系统

阅读:532发布:2020-05-11

专利汇可以提供存储系统中执行的条带重建方法和存储系统专利检索,专利查询,专利分析的服务。并且提供一种存储系统中的条带重建方法和存储系统。所述条带重建方法包括如下操作:从在日志结构存储系统中产生的条带中选择目标条带,其中,目标条带中包含的 存储器 块 的有效页比例之间的 不平衡 超过初始设置的 阈值 ;通过对包括在目标条带中的存储器块进行重组使得包括在目标条带中的存储器块的有效页比例之间的不平衡减少,来重建条带。,下面是存储系统中执行的条带重建方法和存储系统专利的具体信息内容。

1.一种日志结构存储系统的条带重建方法,所述条带重建方法包括如下步骤:
从在日志结构存储系统中产生的条带中选择目标条带,其中,该目标条带所包括的存储器的有效页比例之间的不平衡超过初始设置的阈值;以及
通过对包括在目标条带中的存储器块进行重组使得包含在目标条带中的存储器块的有效页比例之间的不平衡减少,来重建条带。
2.根据权利要求1所述的条带重建方法,其中,选择目标条带的步骤包括:选择如下的条带作为目标条带:所述条带所包括的至少N个存储器块的有效页比例小于初始设置的第一阈值并且条带中的剩余存储器块的有效页比例大于初始设置的第二阈值,其中,N是等于或大于1的整数,
其中,所述初始设置的第二阈值大于所述初始设置的第一阈值。
3.根据权利要求2所述的条带重建方法,其中,选择目标条带的步骤包括:当存在如下的多个条带时,基于从N值的降序、比第一阈值小的有效页比例的升序和比第二阈值大的有效页比例的降序中选择的至少一种,从所述多个条带中选择单个目标条带,其中,所述多个条带中的每一个条带中,至少N个存储器块的有效页比例小于初始设置的第一阈值并且每一个条带中的剩余存储器块的有效页比例大于初始设置的第二阈值。
4.根据权利要求1所述的条带重建方法,其中,重建条带的步骤包括:对目标条带的存储器块进行重组,使得在目标条带所包括的存储器块中的具有低有效页比例的至少一个目标存储器块被在另一条带所包括的存储器块中的具有比所述至少一个目标存储器块高的有效页比例的存储器块所替换。
5.根据权利要求4所述的条带重建方法,其中,重建条带的步骤包括:
选择在所述另一条带所包括的存储器块中的具有高有效页比例的至少一个存储器块,以便替换目标条带中的具有低有效页比例的所述至少一个目标存储器块;
通过将目标条带中的具有低有效页比例的所述至少一个目标存储器块替换为所述另一条带中的具有高有效页比例的所述至少一个存储器块,来产生新的条带;以及将关于新的条带的奇偶校验信息写入到包括在新的条带中的存储器块。
6.根据权利要求5所述的条带重建方法,其中,选择所述至少一个存储器块的步骤包括:从存在目标条带中的将被替换的存储器块的存储装置选择替换存储器块。
7.根据权利要求5所述的条带重建方法,其中,通过对关于目标条带的奇偶校验信息、被替换的存储器块中存储的数据和替换存储器块中存储的数据执行异或计算,来计算关于新的条带的奇偶校验信息。
8.根据权利要求5所述的条带重建方法,还包括如下步骤:将关于新的条带的信息添加到条带映射表,并从条带映射表删除关于目标条带的信息。
9.根据权利要求5所述的条带重建方法,其中,重建条带的步骤包括:
将目标条带中的被替换的所述至少一个目标存储器块所包括的有效页复制到非易失性高速缓冲存储器中;以及
擦除已存储有关于目标条带的奇偶校验信息的存储器块。
10.根据权利要求5所述的条带重建方法,其中,重建条带的步骤包括:
将目标条带中的被替换的所述至少一个目标存储器块所包括的有效页复制到构成孤立条带的存储器块和非易失性高速缓冲存储器中;以及
擦除目标条带中的被替换的所述至少一个目标存储器块和已存储有关于目标条带的奇偶校验信息的存储器块,
其中,孤立条带是被指定为在垃圾收集期间有效页被复制到的条带。
11.根据权利要求5所述的条带重建方法,还包括如下步骤:更新关于由目标条带所包括的存储器块中的每一个存储器块形成的条带的数量的信息和关于由新的条带所包括的存储器块中的每一个存储器块形成的条带的数量的信息。
12.根据权利要求1所述的条带重建方法,其中,重建条带的步骤包括:对目标条带的存储器块进行分组,使得目标条带所包括的存储器块中的具有低有效页比例的至少一个目标存储器块从目标条带中被排除。
13.根据权利要求12所述的条带重建方法,其中,重建条带的步骤包括:
通过从目标图条带排除所述至少一个目标存储器块,产生新的条带;
计算关于新的条带的奇偶校验信息,并将计算出的奇偶校验信息写入到新的条带所包括的存储器块;以及
将关于新的条带的信息添加到条带映射表并从条带映射表删除关于目标条带的信息。
14.根据权利要求13所述的条带重建方法,其中,重建条带的步骤包括:
将从目标条带排除的所述至少一个目标存储器块所包括的有效页复制到构成孤立条带的存储器块和非易失性高速缓冲存储器中;以及
擦除从目标条带排除的所述至少一个目标存储器块和已存储有关于目标条带的奇偶校验信息存储器块,
其中,孤立条带是被指定为在垃圾收集期间有效页被复制到的条带。
15.根据权利要求1所述的条带重建方法,其中,重建条带的步骤包括:搜索另一目标条带,并在两个目标条带之间交换存储器块,以产生包括具有高有效页比例的存储器块的新的条带和包括具有低有效页比例的存储器块的另一新的条带,其中,所述另一目标条带中的具有相对低有效页比例的存储器块与在目标条带所包括的存储器块中的具有相对低有效页比例的存储器块不重叠。
16.根据权利要求15所述的条带重建方法,其中,重建条带的步骤包括:
通过在两个目标条带之间交换存储器块,来产生包括具有高有效页比例的存储器块的新的条带和包括具有低有效页比例的存储器块的另一新的条带;
计算关于两个新的条带中的每一个条带的奇偶校验信息,并将计算出的两个奇偶校验信息写入到包括在两个新的条带中的相应存储器块;
擦除已存储有关于两个目标条带的相应的奇偶校验信息的存储器块;以及将关于两个新的条带的信息添加到条带映射表并从条带映射表删除关于两个目标条带的信息。
17.根据权利要求1所述的条带重建方法,其中,重建条带的步骤包括:
搜索另一目标条带,并通过在两个目标条带之间交换存储器块来产生包括具有高有效页比例的存储器块的单个新的条带,其中,所述另一目标条带中的具有相对高有效页比例的存储器块与在目标条带所包括的存储器块中的具有相对高有效页比例的存储器块不重叠;
将在两个目标条带所包括的存储器块中的不包括在新的条带中的存储器块所包括的有效页复制到非易失性高速缓冲存储器中。
18.根据权利要求17所述的条带重建方法,其中,重建条带的步骤包括:
将在两个目标条带所包括的存储器块中的不包括在新的条带中的存储器块所包括的有效页复制到构成孤立条带的存储器块中;
擦除在两个目标条带所包括的存储器块中的不包括在新的条带中的存储器块和分别存储关于两个目标条带的奇偶校验信息的存储器块;以及
将关于单个新的条带的信息添加到条带映射表并从条带映射表删除关于两个目标条带的信息。
19.一种存储系统,包括:
多个存储装置,包括用于存储数据的存储器块;
主存储器,存储包括关于条带的结构的信息的条带映射表;以及
控制器,基于日志结构的存储环境来控制所述多个存储装置,
其中,控制器从在条带映射表中注册的条带搜索目标条带,通过对包括在搜索到的目标条带中的存储器块进行重组以便减少包括在搜索到的目标条带中的存储器块的有效页比例之间的不平衡来重建条带,并且基于重建的条带来更新条带映射表,其中,目标条带中包括的存储器块的有效页比例之间的不平衡超过初始设置的阈值。
20.根据权利要求19所述的存储系统,其中,所述多个存储装置包括多个固态驱动器
21.根据权利要求19所述的存储系统,其中,控制器改变条带映射表中的条带结构,使得在目标条带所包括的存储器块中的具有低有效页比例的至少一个目标存储器块被在另一条带所包括的存储器块中的具有比所述至少一个目标存储器块高的有效页比例的存储器块所替换。
22.根据权利要求19所述的存储系统,其中,控制器改变条带映射表中的条带结构,使得从目标条带排除在目标条带所包括的存储器块中的具有相对低有效页比例的至少一个目标存储器块。
23.根据权利要求19所述的存储系统,其中,控制器搜索另一目标条带,并且改变条带映射表中的条带结构,以通过在两个目标条带之间交换存储器块来产生包括具有低有效页比例的存储器块的新的条带和包括具有高有效页比例的存储器块的另一新的条带,其中,所述另一目标条带中的具有相对高有效页比例的存储器块与在目标条带所包括的存储器块中的具有相对高有效页比例的存储器块不重叠。
24.根据权利要求19所述的存储系统,其中,控制器搜索另一目标条带,改变条带映射表中的条带结构使得通过在两个目标条带之间交换存储器块来生成包括具有相对高有效页比例的存储器块的新的条带,并针对在两个目标条带所包括的存储器块中的不包括在新的条带中的存储器块执行垃圾收集,其中,所述另一目标条带中的具有相对高有效页比例的存储器块与包括在目标条带中的存储器块中的具有相对高有效页比例的存储器块不重叠。
25.根据权利要求19所述的存储系统,还包括:非易失性高速缓冲存储器,其中,控制器将目标条带所包括的存储器块中的不包括在的重建的条带中的至少一个目标存储器块所包括的有效页复制到非易失性高速缓冲存储器。

说明书全文

存储系统中执行的条带重建方法和存储系统

[0001] 本申请要求于2014年12月29日在韩国知识产权局提交的第10-2014-0192551号韩国专利申请的权益,所述韩国申请的公开通过引用全部内容合并于此。

技术领域

[0002] 本公开涉及一种用于在存储系统中处理数据的方法和设备,更具体地讲,涉及一种在存储系统中执行的条带重建方法、使用条带重建方法执行垃圾收集的方法和执行条带重建法的存储系统。

背景技术

[0003] 独立盘冗余阵列(RAID)是用于在多个硬盘装置中分配和存储数据的技术。由于技术发展,使用固态驱动器(SSD)替代硬盘驱动器(HDD)。需要对即使在构成应用了RAID技术的存储系统的一些SSD中存在缺陷也确保数据可靠性并减少例如垃圾收集期间的写入放大因子(WAF)进行研究。发明内容
[0004] 本公开提供一种在存储系统中执行的条带重建方法,以便减少在垃圾收集期间在存储装置中执行的有效页复制操作(valid page copying operation)的数量。
[0005] 本公开还提供一种通过应用能够减少条带中包含的存储器的有效页比例之间的不平衡的条带结构来在存储系统中执行垃圾收集的方法。
[0006] 本公开还提供一种重建条带使得减少包括在条带中的存储器块的有效页比例之间的不平衡的存储系统。
[0007] 根据本公开的一个方面,提供一种日志结构存储系统中的条带重建方法,所述条带重建方法包括:从在日志结构存储系统中产生的条带中选择目标条带,其中,目标条带中包括的存储器块的有效页比例之间的不平衡超过最初设置的阈值;通过对包括在目标条带中的存储器块进行重组使得包括在目标条带中的存储器块的有效页比例之间的不平衡减少,来重建条带。
[0008] 根据本公开的另一方面,提供一种存储系统,该存储系统包括:多个存储装置(SD),包括用于存储数据的存储器块;主存储器,存储包括关于条带的结构的信息的条带映射表;控制器,基于日志结构的存储环境来控制多个存储装置。控制器从在条带映射表中注册的条带中搜索目标条带,通过对包括在查找到的目标条带中的存储器块进行重组以便减少包括在查找到的目标条带中的存储器块的有效页比例之间的不平衡来重建条带,并且基于重建的条带来更新条带映射表,其中,包括在目标条带中的存储器块的有效页比例之间的不平衡超过初始设置的阈值。
[0009] 根据本公开的另一个方面,提供一种垃圾收集方法,该垃圾收集方法包括:从在日志结构存储系统中产生的条带中选择目标条带,其中,包括在目标条带中的存储器块的有效页比例之间的不平衡超过初始设置的阈值;通过对包括在目标条带中的存储器块进行重组使得包括在目标条带中的存储器块的有效页比例之间的不平衡减少,来重建条带;针对包括在目标条带中的存储器块中的从条带重建排除的至少一个存储器块,执行垃圾收集。
[0010] 根据本公开的另一个方面,提供一种由日志结构存储系统中的存储器控制器的处理器执行的条带产生方法。该方法包括,在均包括第一存储器块和第二存储器块的多个条带中识别在第一存储器块和第二存储器块之间的有效与无效的页比例的差超过阈值的条带。产生一种具有包括识别出的条带的第一存储器块的一个或更多个有效页的第一存储器块和第二存储器块的新条带。附图说明
[0011] 根据下面结合附图的详细描述,将更加清楚地理解本公开的示例性实施例,在附图中:
[0012] 图1是根据本公开的示例性实施例的存储系统的框图
[0013] 图2是根据本公开的另一个示例性实施例的存储系统的框图;
[0014] 图3是根据本公开的另一个示例性实施例的存储系统的框图;
[0015] 图4是根据本公开的另一个示例性实施例的存储系统的框图;
[0016] 图5A至图5C示出在图1至图4中示出的非易失性随机存取存储器(NVRAM)中设置存储区域的各种示例;
[0017] 图6是示出根据本公开示例性实施例的在存储系统中根据基于奇偶校验的独立盘冗余阵列(RAID)方法的写入操作的概念图
[0018] 图7是示出根据本公开的示例性实施例的在存储系统中的日志结构RAID方法的概念图;
[0019] 图8是示出根据本公开示例性实施例的在存储系统中使用NVRAM执行基于固态驱动器(SSD)的日志结构RAID方法的示例的框图;
[0020] 图9A和图9B是根据本公开的示例性实施例的在图8的存储系统中按条带的单位执行的写入操作的概念图;
[0021] 图10A至图10D是示出根据本公开示例性实施例的在存储系统中按存储器块的单位将数据写入到存储装置(SD)的示例中的数据存储处理的概念图;
[0022] 图11A至图11D是示出根据本公开示例性实施例的在存储系统中按页的单位将数据写入到SD的示例中的数据存储处理的概念图;
[0023] 图12A至图12H是示出根据本公开的示例性实施例的存储系统中的垃圾收集操作的概念图;
[0024] 图13A和图13B是示出根据本公开示例性实施例的在存储系统中在垃圾收集操作期间将包括在受害者条带中的有效页复制到将构成新条带的存储器块的各种示例的概念图;
[0025] 图14示出根据本公开的示例性实施例的在存储系统中执行垃圾收集操作之后的条带结构的示例;
[0026] 图15是用于解释根据本公开的另一个示例性实施例的存储系统中的条带重建的必要性的示图;
[0027] 图16A至图16D示出根据本公开的示例性实施例的存储系统中执行的条带重建操作的示例;
[0028] 图17A和图17B示出根据本公开的示例性实施例的存储系统中执行的条带重建操作的另一个示例;
[0029] 图18A和图18B示出根据本公开的示例性实施例的存储系统中执行的条带重建操作的另一个示例;
[0030] 图19A和图19B示出根据本公开的示例性实施例的存储系统中执行的条带重建操作的另一个示例;
[0031] 图20是形成根据本公开的示例性实施例的存储系统的SSD的框图;
[0032] 图21示例性地示出图20的SSD中的通道(channel)和通路(way);
[0033] 图22是示出在图20中示出的SSD所包括的存储器控制器的详细结构的框图;
[0034] 图23是示出在图21的SSD所包括的存储器装置中包括的闪速存储器芯片的详细结构的框图;
[0035] 图24示出在图23中示出的闪速存储器芯片中包括的存储器单元阵列;
[0036] 图25是图23的存储器单元阵列中包括的第一存储器块的等效电路图;
[0037] 图26是根据本公开的另一个示例性实施例的存储系统的框图;
[0038] 图27是示出图26中所示的SSD的详细结构的框图;
[0039] 图28是示出图27中示出的存储器控制器的示例性实施例的框图;
[0040] 图29是示出图27中示出的存储器控制器的另一个示例性实施例的框图;
[0041] 图30A至30E是示出图26的存储系统中的条带写入操作的概念图;
[0042] 图31是根据本公开的另一个示例性实施例的存储系统的框图;
[0043] 图32是示出图31中示出的存储器控制器的实施例的框图;
[0044] 图33是示出图31中示出的存储器控制器的另一个示例性实施例的框图;
[0045] 图34示出图31的存储系统中的条带结构的示例;
[0046] 图35示出图31的存储系统中的条带结构的另一个示例;
[0047] 图36是根据本公开的示例性实施例的存储系统中的条带重建方法的流程图
[0048] 图37是包括在图36的条带重建方法中的条带重建操作的示例的流程图;
[0049] 图38是包括在图36的条带重建方法中的条带重建操作的另一个示例的流程图;
[0050] 图39是包括在图36的条带重建方法中的条带重建操作的另一个示例的流程图;
[0051] 图40是包括在图36的条带重建方法中的条带重建操作的另一个示例的流程图;
[0052] 图41是包括在图36的条带重建方法中的条带重建操作的另一个示例的流程图;
[0053] 图42是包括在图36的条带重建方法中的条带重建操作的另一个示例的流程图;
[0054] 图43是包括在图36的条带重建方法中的条带重建操作的另一个示例的流程图;
[0055] 图44是包括在图36的条带重建方法中的条带重建操作的另一个示例的流程图;
[0056] 图45是包括在图36的条带重建方法中的条带重建操作的另一个示例的流程图;
[0057] 图46是包括在图36的条带重建方法中的条带重建操作的另一个示例的流程图;
[0058] 图47是根据本公开的示例性实施例的在存储系统中执行垃圾收集的方法的流程图;以及
[0059] 图48是在图47的执行垃圾收集的方法中包含的垃圾收集执行操作的流程图。

具体实施方式

[0060] 在下文中,将参照示出本公开的示例性实施例的附图来更加全面地描述本公开。提供这些实施例,使得本公开将是彻底的、完整的,并且将向本领域的普通技术人员全面地传达本公开的范围。因为本公开允许各种改变和大量的实施例,所以特定的示例性实施例将在附图中被示出并在书面的描述中被详细地描述。但是这不意图将本公开限制于特定的实践模式,并且将会认识到,在不脱离本公开的精神和技术范围的所有的改变、等同形式和替代形式都涵盖在本公开中。在附图中,相同的附图标记表示相同的元件,并且为了清楚说明,元件的大小或厚度可能被放大。
[0061] 本说明书中使用的术语只用来描述特定的示例性实施例,并不意图限制本公开。以单数形式使用的表述包括以多数形式的表述,除非它在上下文中具有明确不同的含义。
在本说明书中,将要理解,诸如“包含”、“具有”等之类的术语意图指示本说明书中公开的特征、整体、步骤、动作、组件、组件或其组合的存在,并不意图排除一个或更多个其它的特征、整体、步骤、动作、组件、组件或其组合可能存在或可能被添加的可能性。
[0062] 除非另有定义,本描述中使用的所有的术语(包括技术术语和科学术语)具有与本公开所属技术领域的普通技术人员所通常理解的含义相同的含义。将会进一步理解,诸如常用词典中定义的术语之类的术语应该被解释为具有与其在相关领域的环境中的含义一致的含义,并且将不会被解释为理想化的或过于正式的意义,除非本文中另有明确的定义。
[0063] 这里,为了便于解释,根据本公开的存储系统被描述为独立盘冗余阵列(RAID)存储系统。但是,根据本公开的存储系统可以是各种类型的存储系统中的任何一种,而不限于RAID存储系统。本文中使用的术语“RAID控制器”也可被指示为“控制器”。
[0064] 图1是根据本公开的示例性实施例的存储系统1000A的框图。
[0065] 参照图1,存储系统1000A包括RAID控制器1100A、非易失性随机存取存储器(NVRAM)1200、多个存储装置(SD)(即,第一SD 1300-1至第n SD 1300-n)和总线1400。存储系统1000A的组件通过总线1400相互电连接。
[0066] RAID方法的示例包括通过使用基于镜像的技术恢复数据的方法和通过使用基于奇偶校验的技术恢复数据的方法,以便防止在一些存储装置有缺陷时丢失数据。例如,存储系统1000A可利用基于奇偶校验的RAID方法。
[0067] 第一SD 1300-1至第n SD 1300-n可通过使用固态驱动器(SSD)或硬盘驱动器(HDD)来实施。根据本公开的示例性实施例,第一SD 1300-1至第n SD 1300-n是SSD。SSD通过使用多个非易失性存储器芯片来实施存储装置。例如,SSD可通过使用多个闪速存储器芯片来实施存储装置。
[0068] NVRAM 1200是这样的RAM,如果电源被移除,则存储的数据保留在其中。NVRAM 1200充当主存储器。例如,NVRAM 1200可通过使用相变RAM(PRAM)、电RAM(FeRAM)或磁RAM(MRAM)来实施。作为另一个示例,NVRAM 1200可根据通过使用电池或电容器对作为易失性存储器的动态RAM(DRAM)或静态RAM(SRAM)施加电的方法来实施。根据本方法,即使系统电源被移除,在DRAM或SRAM中存储的数据也可被保留。
[0069] NVRAM 1200可包括在垃圾收集操作期间存储临时不受奇偶校验信息保护的数据的高速缓冲存储器。临时不受奇偶校验信息保护的数据被称为孤立数据。被分配给NVRAM 1200的用于存储孤立数据的高速缓冲存储器被称为孤立高速缓冲存储器。
[0070] 例如,用于存储将以条带的单位被写入到第一SD 1300-1至第n SD1300-n的数据的高速缓冲存储器可被分配给NVRAM 1200。被分配给NVRAM 1200的用于存储将以条带的单位被写入的数据的高速缓冲存储器被称为条带高速缓冲存储器。
[0071] 例如,NVRAM 1200可存储在存储系统1000A中使用的映射表信息。映射表信息包括将逻辑地址转换为物理地址的地址映射表和表示关于条带分组的信息的条带映射表。关于条带分组的信息可包括表示构成每一个条带的存储器块的信息。条带映射表可包括每一个条带的有效页比例信息。
[0072] 例如,地址映射表可存储与逻辑地址对应的SD的物理地址。详细地说,地址映射表可存储与逻辑地址对应的SD的编号和SD的物理地址。
[0073] RAID控制器1100A基于日志结构RAID环境控制第一SD 1300-1至第n SD 1300-n。详细地说,当更新在第一SD 1300-1至第n SD 1300-n中存储的数据时,RAID控制器1100A控制存储系统1000A不重写数据,而是根据日志格式将数据写入到新的位置。例如,按日志格式写入有数据的多个存储器块和存储关于被写入到多个存储器块的数据的奇偶校验信息的存储器块构成一个条带。
[0074] RAID控制器1100A在条带映射表中注册构成条带的第一SD 1300-1至第n SD 1300-n的存储器块的位置信息。
[0075] RAID控制器1100A可通过使用在NVRAM 1200中存储的映射表信息来执行地址转换或条带分组。详细地说,RAID控制器1100A通过使用地址映射表来将逻辑地址转换为物理地址。RAID控制器1100A通过使用条带映射表来按条带的单位执行垃圾收集。
[0076] RAID控制器1100A通过使用映射表信息来选择用于垃圾收集的受害者条带。例如,RAID控制器1100A可通过使用条带映射表来搜索多个条带中的具有最低有效页比例的条带作为受害者条带。
[0077] RAID控制器1100A将包含在用于垃圾收集的受害者条带中的第一SD1300-1至第n SD 1300-n的有效页复制到NVRAM 1200中,并且通过使用与被复制到NVRAM 1200中的有效页对应的数据来控制垃圾收集操作。详细地说,RAID控制器1100A将包含在用于垃圾收集的受害者条带中的第一SD1300-1至第n SD 1300-n的有效页复制到NVRAM 1200中的孤立高速缓冲存储器。
[0078] RAID控制器1100A擦除受害者条带的存储奇偶校验信息的存储器块,将包含在受害者条带中的有效页复制到用于构成新的条带的存储器块中,并且擦除受害者条带的已经存储被复制到用来构成新的条带的存储器块中的有效页的存储器块。
[0079] RAID控制器1100A计算关于被复制到NVRAM 1200的孤立高速缓冲存储器的数据的奇偶校验信息,并且将计算出的奇偶校验信息复制到用来构成新的条带的存储器块。
[0080] RAID控制器1100A在条带映射表中注册关于新的条带的结构的条带分组信息,该新的条带具有包含在受害者条带中的有效页已经被复制到其中的存储器块和奇偶校验信息已经被复制到其中的存储器块。RAID控制器1100A从条带映射表删除关于受害者条带的条带分组信息。因此,包含在受害者条带中的存储器块变成空闲块。空闲块表示没有存储数据的清空的存储器块。
[0081] 在擦除包含在受害者条带中且存储有奇偶校验信息的存储器块之后,在存储系统1000A的垃圾收集操作期间,被写入到包含在受害者条带中的存储器块的有效页可不再受奇偶校验信息的保护。换句话说,如果在第一SD1300-1至第n SD 1300-n中的一些SD中存在缺陷,则被写入到受害者条带中的有缺陷的SD的存储器块的有效页无法让不正确的数据使用奇偶校验信息恢复,因为该奇偶校验信息已经被擦除。
[0082] 根据本公开的示例性实施例,由于包含在受害者条带中的第一SD 1300-1至第n SD 1300-n的有效页被存储在NVRAM 1200的孤立高速缓冲存储器中,所以即使第一SD 1300-1至第n SD 1300-n中的一些SD具有缺陷,被写入到有缺陷的SD的存储器块的有效页也可由在NVRAM 1200的孤立高速缓冲存储器中存储的数据所恢复。
[0083] 当在垃圾收集操作期间发生对于读取包含在受害者条带中的页的请求时,RAID控制器1100A从NVRAM 1200的孤立高速缓冲存储器读取与被请求读取的页对应的数据。
[0084] 例如,当在垃圾收集操作期间,对于读取包含在受害者条带中的页的请求从外部主机(未示出)发送到存储系统1000A时,RAID控制器1100A可从NVRAM 1200的孤立高速缓冲存储器读取与被请求读取的页对应的数据并将读取的数据发送到外部主机。
[0085] RAID控制器1100A可根据图36至48的流程图来控制存储系统1000A,以便执行条带重建和垃圾收集。
[0086] 详细地说,RAID控制器1100A可如下所述地执行用于减少包含在条带中的存储器块的各个有效页比例之间的不平衡的条带重建过程。
[0087] RAID控制器1100A从在条带映射表中注册的条带中搜索目标条带,其中,目标条带中包含的存储器块的有效页比例之间的不平衡超过初始设置的阈值。RAID控制器1100A对包含在查找到的目标条带中的存储器块进行重新分组,以便减少包含在查找到的条带中的存储器块的有效页比例之间的不平衡,并通过使用重新分组的存储器块来更新条带映射表。
[0088] 例如,RAID控制器1100A可改变条带映射表中的条带结构,使得包含在目标条带中的存储器块中的具有低有效页比例的至少一个目标存储器块被包含在另一个条带中的存储器块中的具有比所述至少一个目标存储器块高的有效页比例的存储器块所替换。
[0089] 作为另一示例,RAID控制器1100A可改变条带映射表中的条带结构,使得从目标条带排除目标条带中包含的存储器块中的具有相对低有效页比例的至少一个目标存储器块。
[0090] 作为另一示例,RAID控制器1100A可搜索另一个目标条带(其中,该另一个目标条带中的具有相对高有效页比例的存储器块与目标条带所包含的存储器块中的具有相对高有效页比例的存储器块不重叠),并且改变条带映射表中的条带结构,使得通过在这两个目标条带之间交换存储器块来产生包括具有低有效页比例的存储器块的新的条带和包括具有高有效页比例的存储器块的另一个新的条带。
[0091] 作为另一示例,RAID控制器1100A可搜索另一目标条带(其中,该另一目标条带中的具有相对高有效页比例的存储器块与目标条带所包含的存储器块中的具有相对高有效页比例的存储器块不重叠),改变条带映射表中的条带结构,使得通过在这两个目标条带之间交换存储器块来生成包括具有相对高有效页比例的存储器块的新的条带,并针对所述两个目标条带所包含的存储器块中的不包含在新条带中的存储器块执行垃圾收集。
[0092] RAID控制器1100A可控制存储系统1000A的组件执行图36至48的流程图的操作。
[0093] 图2是根据本公开的另一个示例性实施例的存储系统1000B的框图。
[0094] 参照图2,存储系统1000B包括RAID控制器1100B、NVRAM 1200、多个SD(即,第一SD 1300-1至第n SD 1300-n)、总线1400和RAM 1500。存储系统1000B的组件通过总线1400相互电连接。
[0095] 图2中的NVRAM 1200、第一SD 1300-1至第n SD 1300-n和总线1400在上面已经参照图1被描述了,因此,这里将省略其详细描述。
[0096] 与图1的存储系统1000A不同,存储系统1000B还可包括RAM 1500。
[0097] RAM 1500是易失性存储器,并且可以是DRAM或SRAM。RAM 1500充当主存储器。RAM 1500可存储操作存储系统1000B所需的信息或程序代码。
[0098] 因此,RAM 1500可存储映射表信息。映射表信息可包括将逻辑地址转换为物理地址的地址映射表和表示关于条带分组的信息的条带映射表。条带映射表可包括每一个条带的有效页比例信息。
[0099] 例如,RAID控制器1100B可从NVRAM 1200读取映射表信息,并可将映射表信息加载到RAM 1500中。作为另一示例,RAID控制器1100B可从第一SD 1300-1至第n SD 1300-n中的一个SD读取映射表信息并将映射表信息加载到RAM 1500中。
[0100] RAID控制器1100B可通过使用在RAM 1500中加载的映射表信息来在存储系统1000B中的读取操作或写入操作期间执行地址转换。
[0101] RAID控制器1100B基于日志结构RAID环境来控制第一SD 1300-1至第n SD 1300-n。详细地讲,当更新在第一SD 1300-1至第n SD 1300-n中存储的数据时,RAID控制器1100B控制存储系统1000B不重写数据,而是根据日志格式将数据写入到新的位置。例如,按日志格式写入有数据的多个存储器块和存储关于写入到多个存储器块的数据的奇偶校验信息的存储器块构成一个条带。
[0102] RAID控制器1100B在条带映射表中注册构成条带的第一SD 1300-1至第n SD 1300-n的存储器块的位置信息。
[0103] RAID控制器1100B可由于写入操作或垃圾收集操作而更新在RAM1500中存储的映射表信息,并将更新后的映射表信息反映在NVRAM 1200中存储的映射表信息中。例如,更新后的映射表信息可被重写在NVRAM 1200中。
[0104] RAID控制器1100B可通过使用在RAM 1500中存储的映射表信息来执行地址转换或条带分组。详细地讲,RAID控制器1100B通过使用地址映射表来将逻辑地址转换为物理地址。RAID控制器1100B通过使用条带映射表来按条带的单位执行垃圾收集。
[0105] 由RAID控制器1100B执行的垃圾收集控制操作与图1的RAID控制器1100A的垃圾收集控制操作相同,因此,这里将省略其详细描述。为了减少条带中包含的存储器块的有效页比例之间的不平衡而由RAID控制器1100B执行的条带重建与由RAID控制器1100A执行的条带重建相同,因此,这里将省略其详细描述。
[0106] 图3是根据本公开的另一个示例性实施例的存储系统2000A的框图。
[0107] 参照图3,存储系统2000A可包括处理器101A、RAM 102、NVRAM 103、主机总线适配器(HBA)104、输入/输出(I/O)子系统105、总线106和存储装置200。
[0108] 在图3中,包括处理器101A、RAM 102、NVRAM 103、HBA 104、I/O子系统105和总线106的块是主机100A,并且,装置200可以是与主机100A连接的外部装置。
[0109] 例如,存储系统2000A可被假设为是服务器。作为另一示例,存储系统2000A可以是个人计算机(PC)、机顶盒、数码相机、导航装置、移动装置等。例如,连接到主机100A的装置200可包括第一SD 200-1至第n SD 200-n。
[0110] 处理器101A可包括用于处理数据和控制存储系统2000A的组件的操作的电路、接口或程序代码。例如,处理器101A可包括中央处理单元(CPU)、高级险机(ARM)处理器或专用集成电路(ASIC)。
[0111] RAM 102是易失性存储器,并可包括存储对于存储系统2000A的操作所需的数据、命令或者程序代码的SRAM或DRAM。RAM 102充当主存储器。RAM 102存储RAID控制软件102-1。RAID控制软件102-1包括用于根据日志结构RAID方法来控制存储系统2000A的程序代码。
例如,RAID控制软件102-1可包括用于执行图36至48的流程图中示出的条带重建方法和垃圾收集操作的程序代码。
[0112] NVRAM 103是如果电源被移除则存储的数据被保留的RAM。例如,NVRAM 103可通过使用PRAM、FeRAM或MRAM来实施。作为另一示例,NVRAM 103可根据通过使用电池或电容器对作为易失性存储器的DRAM或SRAM施加电力的方法来实现。根据本方法,即使系统电源被移除,在DRAM或SRAM中存储的数据也可被保留。
[0113] NVRAM 103可包括在垃圾收集操作期间存储临时不受奇偶校验信息保护的数据的高速缓冲存储器。
[0114] 例如,用于存储将按条带的单位被写入到第一SD 200-1至第n SD 200-n的数据的高速缓冲存储器可被分配给NVRAM 103。
[0115] 例如,NVRAM 103可存储在存储系统2000A中使用的映射表信息。映射表信息包括将逻辑地址转换为物理地址的地址映射表和表示关于条带分组的信息的条带映射表。条带映射表可包括每一个条带的有效页比例信息。例如,地址映射表可存储与逻辑地址对应的SD的物理地址。
[0116] 处理器101A通过使用在RAM 102中存储的程序代码来根据日志结构RAID方法来控制存储系统2000A的操作。例如,处理器101A驱动在RAM 102中存储的RAID控制软件102-1来执行图36至48中示出的条带重建方法和垃圾收集操作。
[0117] HBA 104将第一SD 200-1至第n SD 200-n连接到存储系统2000A的主机100A。例如,HBA 104可包括小型计算机系统接口(SCSI)适配器、光纤通道适配器、串行高级技术附件(ATA)适配器等。详细地讲,HBA 104可直接连接到基于光纤通道(FC)HBA的第一SD 200-1至第n SD 200-n。HBA104可通过连接到存储区域网络(SAN)环境中的第一SD 200-1至第n SD200-n来将主机100A与第一SD 200-1至第n SD 200-n进行接口连接。
[0118] I/O子系统105可包括能够进行操作来执行存储系统2000A的组件之间的数据通信的程序代码、电路或接口。I/O子系统105可包括至少一条标准化总线和至少一个总线控制器。因此,I/O子系统105可识别连接到总线106的装置,列出被连接到总线106的装置,并且分配或释放用于连接到总线106的各种装置的资源。换句话说,I/O子系统105可进行操作来管理总线106上的通信。例如,I/O子系统105可以是外围组件互连快速(PCIe)系统,并可包括PCIe根复合体(root complex)和至少一个PCIe交换机或桥。
[0119] 第一SD 200-1至第n SD 200-n可通过使用SSD或HDD来实施。根据本公开的示例性实施例,第一SD 200-1至第n SD 200-n是SSD。
[0120] 处理器101A基于日志结构RAID环境控制通过HBA 104连接的第一SD 200-1至第n SD 200-n。详细地说,当更新写入到第一SD 200-1至第n SD 200-n中的数据时,处理器101A控制存储系统2000A不重写数据,而是根据日志格式将数据写入到新的位置。例如,数据按日志格式写入到第一SD 200-1至第n SD 200-n的多个存储器块和存储关于在多个存储器块中存储的数据的奇偶校验信息的存储器块构成一个条带。
[0121] 处理器101A在条带映射表中注册构成条带的第一SD 200-1至第n SD 200-n的存储器块的位置信息。
[0122] 处理器101A可通过使用在NVRAM 103中存储的映射表信息来执行地址转换或条带分组。详细地说,处理器101A通过使用地址映射表来将逻辑地址转换为物理地址。处理器101A通过使用条带映射表来按条带的单位执行垃圾收集。
[0123] 处理器101A通过使用映射表信息来选择用于垃圾收集的受害者条带。例如,处理器101A可通过使用条带映射表来搜索多个条带中的具有最低有效页比例的条带并选择查找到的条带作为受害者条带。
[0124] 处理器101A将包含在用于垃圾收集的受害者条带中的第一SD 200-1至第n SD 200-n的有效页复制到NVRAM 103中,并通过使用被复制到NVRAM103中的数据来控制垃圾收集操作。详细地讲,处理器101A将包含在用于垃圾收集的受害者条带中的第一SD 200-1至第n SD 200-n的有效页复制到NVRAM 103中的孤立高速缓冲存储器。
[0125] 处理器101A擦除在第一SD 200-1至第n SD 200-n的相应的存储器块中的包含在受害者条带中且存储奇偶校验信息的存储器块,将受害者条带中包含的有效页复制到将构成新的条带的存储器块,并擦除存储被复制到将构成新的条带的存储器块中的有效页的受害者条带的存储器块。
[0126] 处理器101A计算关于被复制到NVRAM 103的孤立高速缓冲存储器的数据的奇偶校验信息,并将计算出的奇偶校验信息从第一SD 200-1至第n SD200-n的相应的存储器块当中复制到用来构成条带的新的存储器块中。
[0127] 处理器101A在条带映射表中注册关于新的条带的结构的条带分组信息,该新的条带具有包含在受害者条带中的已复制有有效页的存储器块和已复制有奇偶校验信息的存储器块。处理器101A从条带映射表删除关于受害者条带的条带分组信息。因此,受害者条带中包含的存储器块变成空闲块。
[0128] 在擦除包含在受害者条带中且已存储有奇偶校验信息的存储器块之后,在存储系统2000A的垃圾收集操作期间,写入到包含在第一SD 200-1至第n SD 200-n的受害者条带中的存储器块的有效页可不受奇偶校验信息的保护。换句话说,如果在第一SD 200-1至第n SD 200-n中的一些SD中存在缺陷,则被写入到受害者条带中的有缺陷的SD的存储器块的有效页无法使不正确的数据使用奇偶校验信息所恢复。
[0129] 根据本公开的示例性实施例,由于包含在受害者条带中的第一SD 200-1至第n SD 200-n的有效页被存储在NVRAM 103的孤立高速缓冲存储器中,所以即使第一SD 200-1至第n SD 200-n中的一些SD具有缺陷,被写入到有缺陷的SD的存储器块的有效页也可由在NVRAM 103的孤立高速缓冲存储器中存储的数据所恢复。
[0130] 当在垃圾收集操作期间发生对于读取受害者条带中包含的页的请求时,处理器101A从NVRAM 103的孤立高速缓冲存储器直接读取与被请求读取的页对应的数据。
[0131] 处理器101A可如下所述地执行用于减少条带中包含的存储器块的有效页比例之间的不平衡的条带重建过程。
[0132] 处理器101A从在条带映射表中注册的条带中搜索其中包含的存储器块的有效页比例之间的不平衡超过初始设置的阈值的目标条带,对查找到的目标条带中包含的存储器块进行重新分组使得查找到的目标条带中包含的存储器块的有效页比例之间的不平衡被减少,并且通过使用重新分组的存储器块来更新条带映射表。
[0133] 例如,处理器101A可改变条带映射表中的条带结构,使得目标条带中包含的存储器块中的具有低有效页比例的至少一个目标存储器块由另一个条带中包含的存储器块中的具有比所述至少一个目标存储器块高的有效页比例的存储器块所替换。
[0134] 作为另一示例,处理器101A可改变条带映射表中的条带结构,使得从目标条带排除目标条带中包含的存储器块中的具有相对低有效页比例的至少一个目标存储器块。
[0135] 作为另一示例,处理器101A可搜索具具有相对高有效页比例的存储器块的另一个目标条带(其中,该另一目标条带中的具有相对高有效页比例的存储器块与包含在目标条带中的存储器块不重叠),并改变条带映射表中的条带结构,使得通过在这两个目标条带之间交换存储器块来产生包括具有低有效页比例的存储器块的新的条带和包括具有高有效页比例的存储器块的另一个新的条带。
[0136] 作为另一示例,处理器101A可搜索另一目标条带(其中,该另一目标条带中的具有相对高有效页比例的存储器块与包含在目标存储器块中的具有相对高有效页比例的存储器块不重叠),改变条带映射表中的条带结构使得通过在这两个目标条带之间交换存储器块来生成包括具有相对高有效页比例的存储器块的新的条带,并针对所述两个目标条带中包含的存储器块中的不包括在新条带中的存储器块执行垃圾收集。
[0137] 图4是根据本公开的另一个示例性实施例的存储系统2000B的框图。
[0138] 参照图4,存储系统2000B包括主机100B、存储装置200和链接单元300。
[0139] 主机100B包括处理器101B、RAM 102、NVRAM 103、网络适配器107、I/O子系统105和总线106。例如,主机100B可被假设是服务器。又例如,主机100B可以是PC、机顶盒、数字照相机、导航装置、移动装置等。
[0140] 由于上面参考图3的存储系统2000A已经描述了主机100B中包括的RAM 102、NVRAM 103、I/O子系统105和总线106,所以将省略其重复描述。
[0141] 网络适配器107可通过链接单元300与装置200组合。例如,链接单元300可包括布线、光纤电缆、至少一个无线通道或者它们的组合。
[0142] 网络适配器107可包括能够进行操作来根据至少一个联网标准发送和接收数据的代码、电路或接口。例如,网络适配器107可根据至少一种以太网标准来与装置200通信。
[0143] 装置200可包括多个第一SD 200-1至第n SD 200-n。例如,第一SD 200-1至第n SD 200-n可通过SSD或HDD来实施。根据本公开的示例性实施例,第一SD 200-1至第n SD 200-n是SSD。
[0144] 处理器101B通过使用在RAM 102中存储的程序代码来根据日志结构RAID方法来控制存储系统2000B的操作。例如,处理器101B驱动在RAM 102中存储的RAID控制软件102-1来执行图36至48中示出的条带重组方法和垃圾收集操作。
[0145] 处理器101B基于日志结构RAID环境控制通过网络适配器107连接的第一SD 200-1至第n SD 200-n。详细地说,当更新写入到第一SD 200-1至第n SD 200-n的数据时,处理器101B控制存储系统2000A不重写数据,而是根据日志格式将数据写入到新的位置。例如,数据按日志格式写入到第一SD200-1至第n SD 200-n的多个存储器块和存储关于在多个存储器块中存储的数据的奇偶校验信息的存储器块构成一个条带。
[0146] 处理器101B在条带映射表中注册构成条带的第一SD 200-1至第n SD200-n的存储器块的位置信息。
[0147] 处理器101B可通过使用在NVRAM 103中存储的映射表信息来执行地址转换或条带分组。详细地说,处理器101B通过使用地址映射表来将逻辑地址转换为物理地址。处理器101B通过使用条带映射表来按条带的单位执行垃圾收集。
[0148] 由处理器101B执行的垃圾收集操作与图3的处理器101A所执行的垃圾收集操作相同,因此这里将省略其详细描述。为了减少条带中包含的存储器块的有效页比例之间的不平衡而由处理器101B执行的条带重建与由处理器101A执行的条带重建相同,因此这里将省略其详细描述。
[0149] 图5A至图5C示出在图1至图4中示出的NVRAM 1200或103中设置存储区域的各种示例。
[0150] 参照图5A,孤立高速缓冲存储器1200-1、条带高速缓冲存储器1200-2和映射表存储区域1200-3被分配给根据示例性实施例的NVRAM 1200或103A。
[0151] 孤立高速缓冲存储器1200-1在垃圾收集期间存储临时不受奇偶校验信息的保护的孤立数据。条带高速缓冲存储器1200-2临时存储将按条带的单位被写入到SD的数据。映射表存储区域1200-3存储将逻辑地址转换为物理地址的地址映射表和表示关于条带分组的信息的条带映射表。条带映射表可包括每一个构建的条带的有效页比例信息。例如,地址映射表可存储与逻辑地址对应的SD的物理地址。
[0152] 参照图5B,孤立高速缓冲存储器1200-1和条带高速缓冲存储器1200-2被分配给根据另一个示例性实施例的NVRAM 1200B或103B。在本示例性实施例中,映射表存储区域1200-3可被分配给图1至图4的RAM 1500或102。
[0153] 参照图5C,孤立高速缓冲存储器1200-1被分配给根据另一个示例性实施例的NVRAM 1200C或103C。在本示例性实施例中,条带高速缓冲存储器1200-2和映射表存储区域1200-3可被分配给图1至图4的RAM 1500或102。
[0154] 图6是示出根据本公开示例性实施例的在存储系统中根据基于奇偶校验的RAID方法的写入操作的概念图。
[0155] 为了便于描述,图6至图13B示出作为图1或图2中示出的存储系统1000A或1000B的主要元件的RAID控制器1100A或1100B和SD(例如,四个SSD,即,第一SSD 1300-1至第四SSD 1300-4)。
[0156] 供参考,在图3或图4中示出的存储系统2000A或2000B中,处理器101A或101B可执行RAID控制器1100A或1100B的操作。在图3或图4中示出的存储系统2000A或2000B中,n个SSD可由附图标记200-1至200-n所指示。
[0157] 图6示出将基于奇偶校验的RAID方法应用至第一SSD 1300-1至第四SSD 1300-4的示例。关于具有相同地址的每一个数据的奇偶校验信息被存储在第一SSD 1300-1至第四SSD 1300-4中的一个SSD中。例如,奇偶校验信息可以是通过对具有相同地址的每一个数据的值执行异或(XOR)计算而得到的结果。即使具有相同地址的数据中的一个数据丢失了,也可通过使用奇偶校验信息和其它数据来恢复丢失的数据。根据上述原理,即使SSD中的一个SSD损坏,该SSD中存储的数据也可被恢复。
[0158] 参照图6,数据被顺序地存储在第一SSD 1300-1至第四SSD 1300-4中。例如,数据D1至数据D3的奇偶校验信息P1_3存储在第四SSD 1300-4中。数据D4至数据D6的奇偶校验信息P4_6存储在第三SSD 1300-3中,数据D7至数据D9的奇偶校验信息P7_9存储在第二SSD 1300-2中,并且数据D10至数据D12的奇偶校验信息P10_12存储在第一SSD 1300-1中。
[0159] 假设第二SSD 1300-2是有缺陷的。在这种情况下,第二SSD 1300-2的第一存储器块中的数据D2可使用通过对数据D1、数据D3和奇偶校验信息P1_3执行XOR计算而得到的值来被恢复,第二SSD 1300-2的第二存储器块中的数据D5可使用通过对数据D4、数据D6和奇偶校验信息P4_6执行XOR计算而得到的值来被恢复,并且第二SSD 1300-2的第四存储器块中的数据D10可通过使用通过对数据D11、数据D12和奇偶校验信息P10_12执行XOR计算而得到的值来被恢复。
[0160] 在这种基于奇偶校验的RAID方法中,一次小的写入更新操作可能会导致两次读取操作和两次写入操作,从而降低整个I/O性能并加速SSD的磨损。
[0161] 在图6中,假设在第三SSD 1300-3中存储的数据D3被更新。在这种情况下,数据D3的奇偶校验信息P1_3也需要被更新,以确保数据D3的可靠性。因此,为了写入新的数据D3',现有的数据D3被读取,并且现有的奇偶校验信息P1_3也被读取。而且,通过对数据D3、奇偶校验信息P1_3和新的数据D3'执行XOR计算来生成新的奇偶校验信息P1_3'。然后,新的数据D3'被写入,并且,新的奇偶校验信息P1_3'也被写入。如上所述,一次写入操作被放大为两次读取操作和两次写入操作的问题被称为读取-修改-写入问题。
[0162] 根据本公开的一个或更多个示例性实施例,读取-修改-写入问题可通过使用日志结构RAID方法来得以解决。现在将参照图7详细地描述此。
[0163] 图7是示出根据本公开的示例性实施例的在存储系统中的日志结构RAID方法的概念图。
[0164] 首先,假设在如图6所示数据已经被存储在第一SSD 1300-1至第四SSD1300-4中时存储系统用数据D3'更新数据D3。在这种情况下,新的数据D3'不会被重写在已经写入数据D3的第三SSD 1300-3的第一地址处,而是被写入在作为第一SSD 1300-1中的新位置的第一SSD 1300-1的第五地址处。类似地,新的数据D5'和新的数据D9'按日志格式被写入到新的位置处,而没有被重写在已经分别写入数据D5和数据D9的地址处。在对构成一个条带的新的数据D3'、新的数据D5'和新的数据D9'的写入操作完成时,关于构成一个条带的新的数据D3'、新的数据D5'和新的数据D9'的奇偶校验信息P3_5_9被写入到第四SSD 1300-4。
[0165] 在根据日志结构RAID方法的上述更新过程完成时,如图7所示,第一SSD 1300-1至第四SSD 1300-4存储更新后的数据和更新后的奇偶校验信息。
[0166] 现在将在下面描述第一SSD 1300-1至第四SSD 1300-4独立地执行垃圾收集操作的情况。
[0167] 例如,将假设:(1)通过垃圾收集操作从第三SSD 1300-3删除在数据D3'被写入时变成无效的数据D3,(2)随后,第二SSD 1300-2变成有缺陷的。然后,为了恢复在第二SSD 1300-2中存储的数据D2,需要在第一SSD 1300-1中存储的数据D1、在第三SSD 1300-3中存储的数据D3和在第四SSD 1300-4中存储的奇偶校验信息P1_3。但是,由于通过垃圾收集操作从第三SSD1300-3删除数据D3,所以不可能恢复数据D2。
[0168] 根据本公开的示例性实施例,为了解决该问题,按条带的单位执行垃圾收集操作。例如,通过一次垃圾收集操作来处理构成一个条带的数据D1、数据D2、数据D3和奇偶校验信息P1_3。
[0169] 如果应用日志结构RAID方法,则RAID层(RAID控制器)可使用逻辑到逻辑地址映射表,并且SSD层可使用逻辑到物理地址映射表,从而执行地址转换处理。例如,在RAID层中的逻辑到逻辑地址映射表中,可存储与逻辑块地址对应的SD的编号和SD的存储器块的编号,并且在SSD层中的逻辑到物理地址映射表中,可存储与逻辑块地址对应的闪速存储器的物理地址。
[0170] 在如上所述使用两个映射表时,映射表大小增大,并且在RAID层和SSD层中分别执行垃圾收集操作,从而写入放大因子(WAF)可能会增大。为了新确保用于新的写入操作的逻辑空空间,需要RAID层中的垃圾收集操作,并且,为了针对新的写入操作通过对闪速存储器芯片的存储器块执行擦除操作来新确保物理空空间,需要SSD层中的垃圾收集操作。
[0171] 根据本公开的示例性实施例,RAID层中的逻辑到逻辑地址映射表和SSD层中的逻辑到物理地址映射表被组合为组合的地址映射表,并且,组合的地址映射表由RAID控制器1100A或1100B的主机100A或100B的处理器101A或101B管理。
[0172] 组合的地址映射表可存储用于将逻辑地址直接转换为物理地址的映射信息。例如,地址映射表可存储与逻辑地址对应的SD的物理地址。详细地说,地址映射表可存储与逻辑地址对应的SD的编号和SD的物理地址。
[0173] 图8是示出根据本公开示例性实施例的在存储系统中使用NVRAM执行基于SSD的日志结构RAID方法的示例的框图。
[0174] 例如,第一SSD 1300-1至第N SSD 1300-N均包括多个存储器块,即,M个存储器块。在SSD中,读取或写入操作可按页的单位被执行,但是擦除操作按存储器块的单位被执行。
供参考,存储器块也可被称为擦除块。另外,M个存储器块中的每一个存储器块包括多个页。
[0175] 在图8中,一个存储器块包括八个页。但是,本公开的示例性实施例并不限于此,并且,一个存储器块可包括小于或大于八个页的多个页。
[0176] 在图8中,孤立高速缓冲存储器1200-1、条带高速缓冲存储器1200-2和映射表存储区域1200-3被分配给NVRAM 1200。
[0177] RAID控制器1100A或1100B通过使用在映射表存储区域1200-3中存储的地址映射表来将逻辑地址转换为物理地址。
[0178] 现在将参照图9A和9B描述在图8的存储系统中通过使用根据基于SSD的日志结构RAID方法的NVRAM来执行写入操作的示例。
[0179] 图9A和9B是根据本公开的示例性实施例的在图8的存储系统中按条带的单位执行的写入操作的概念图。
[0180] 当在存储系统1000A或1000B中发生写入请求时,RAID控制器1100A或1100B首先在NVRAM 1200的条带高速缓冲存储器1200-2中存储将被写入的数据。将被写入的数据首先被存储在条带高速缓冲存储器1200-2中,以便将包括奇偶校验信息的一个全条带的数据一次地写入在第一SSD 1300-1至第N SSD 1300-N中。图9A示出将按条带的单位写入的数据被存储在NVRAM1200的条带高速缓冲存储器1200-2中的示例。
[0181] 接下来,RAID控制器1100A或1100B计算关于在条带高速缓冲存储器1200-2中存储的数据的奇偶校验信息。此后,RAID控制器1100A或1100B将一个全条带的数据写入到第一SSD 1300-1至第N SSD 1300-N,该数据包括计算出的奇偶校验信息和在条带高速缓冲存储器1200-2中存储的数据。在
[0182] 图9B中,在条带高速缓冲存储器1200-2中存储的数据被存储在第一SSD1300-1至第(N-1)SSD 1300-(N-1)中的存储器块#1中,并且奇偶校验信息被存储在第N SSD 1300-N中。在图9B中,在第一SSD 1300-1至第N SSD 1300-N中分别包含的存储器块#1被注册为新的条带。
[0183] 如上所述,在图9A和9B中示出的示例性实施例中,与一个全条带对应的数据被一次写入。根据本方法,与存储器块的大小对应的奇偶校验信息可被一次地收集和计算,由此可防止碎片式(fragmented)写入和奇偶校验计算。但是,需要确保与一个全条带的大小一样大的条带高速缓冲存储器空间,并且可生成每一次的过大量的写入I/O和奇偶校验计算开销。
[0184] 根据本公开的另一示例性实施例,数据可按存储器块的单位被写入到第一SSD 1300-1至第N SSD 1300-N。根据本公开的另一示例性实施例,数据可按页的单位被写入到第一SSD 1300-1至第N SSD 1300-N。
[0185] 图10A至10D是示出根据本公开示例性实施例的在存储系统中按存储器块的单位将数据写入到SD的示例中的数据存储处理的概念图。
[0186] RAID控制器1100A或1100B将将被写入的数据顺次地存储在NVRAM1200中。当初始将组合的大小与一个存储器块的大小相等的数据收集在NVRAM 1200中时,RAID控制器1100A或1100B从NVRAM 1200读取数据并将读取的数据写入到空的第一SSD 1300-1的存储器块#1中。因此,如图10A所示,数据被存储在NVRAM 1200和第一SSD 1300-1中。
[0187] 接下来,当第二次将组合的大小与一个存储器块的大小相等的数据收集在NVRAM 1200中时,RAID控制器1100A或1100B从NVRAM 1200读取第二次收集的数据并将读取的数据写入在空的第二SSD 1300-2的存储器块#1中。因此,如图10B所示,数据被存储在NVRAM 
1200以及第一SSD 1300-1和第二SSD 1300-2中。
[0188] 接下来,当第三次将组合的大小与一个存储器块的大小相等的数据收集在NVRAM 1200中时,RAID控制器1100A或1100B从NVRAM 1200读取第三次收集的数据并将读取的数据写入在空的第三SSD 1300-3的存储器块#1中。因此,如图10C所示,数据被存储在NVRAM 
1200以及第一SSD 1300-1至第三SSD 1300-3中。
[0189] 在以上述的方式将构成一个条带的数据顺次地写入到第一SSD 1300-1至第(N-1)SSD 1300-(N-1)之后,RAID控制器1100A或1100B计算关于在NVRAM 1200中存储的构成一个条带的数据的奇偶校验信息并将计算出的奇偶校验信息写入到第N SSD 1300-N的存储器块#1中。此后,RAID控制器1100A或1100B执行用于清空NVRAM 1200的冲洗(flush)操作。因此,如
[0190] 图10D所示,数据被存储在第一SSD 1300-1至第N SSD 1300-N中。
[0191] 如上所述,在按存储器块的单位写入数据的方法中,数据可按存储器块的单位被写入到每一个SSD中。但是,需要确保与一个全条带的大小一样大的条带高速缓冲存储器空间,并且可生成每一次的过大量的写入I/O和奇偶校验计算开销。
[0192] 图11A至图11D是示出根据本公开示例性实施例的在存储系统中按页的单位将数据写入到SD的示例中的数据存储处理的概念图。
[0193] RAID控制器1100A或1100B将将被写入的数据顺次地存储在NVRAM1200中。当在NVRAM 1200中收集具有足以计算奇偶校验信息的大小的数据时,RAID控制器1100A或1100B从NVRAM 1200读取收集的数据并按页的单位将读取的数据写入到第一SSD 1300-1至第N SSD 1300-N的存储器块#1中。例如,足以计算奇偶校验信息的数据的大小可以是通过从作为构成一个条带的SSD的数量的N减去1而获得的(N-1)页。
[0194] 然后,RAID控制器1100A或1100B计算关于在NVRAM 1200中存储的数据的奇偶校验信息,并且将计算出的奇偶校验信息写入到空的第N SSD1300-N的存储器块#1的第一页。在将数据和奇偶校验信息写入到第一SSD1300-1至第N SSD 1300-N之后,RAID控制器1100A或1100B可从NVRAM1200冲洗该数据。
[0195] 作为另一示例,当在NVRAM 1200中收集足以计算奇偶校验信息的数据大小的K倍(其中,K是等于或大于2的整数)的数据时,RAID控制器1100A或1100B可从NVRAM 1200读取收集的数据并按页的单位将读取的数据写入到第一SSD 1300-1至第N SSD 1300-N的存储器块#1。例如,如果K的值是2,则与两个页对应的数据可被写入到构成一个条带的SSD的存储器块中的每一个。
[0196] 图11A至11D示出两个页的数据和关于该数据的奇偶校验信息被顺次地存储在构成一个条带的第一SSD至第N SSD中的每一个SSD的存储器块#1中。
[0197] 如上所述,在按页的单位写入数据的方法中,由于奇偶校验信息可按页的单位被计算,所以可减少要一次执行的奇偶校验计算负荷,并且不需要确保与一个全条带对应的条带高速缓冲存储器空间。但是,可能不按存储器块的单位对每一个SSD执行写入操作。
[0198] 图12A至图12H是示出根据本公开的示例性实施例的存储系统中的垃圾收集操作的概念图。
[0199] 图12A示出数据根据在存储系统中执行的写入操作已经被存储在第一SSD 1300-1至第N SSD 1300-N中的示例。
[0200] 在存储系统中,当针对相同的逻辑地址执行新的写入操作时,已存储在逻辑地址处的现有的数据变成无效的数据,由此存储有无效数据的页被表示为无效页。另外,在构成一个条带的第一SSD 1300-1至第N SSD 1300-N中的存储器块通过条带指针相互连接。因此,每一个SSD中的存储器块被包含在哪一个条带中可通过使用条带指针来被识别。条带指针可通过上述的条带映射表来生成。
[0201] 当在存储系统中执行写入操作时,为了确保新的存储空间而需要垃圾收集操作。在根据本公开的本示例性实施例的存储系统中,按条带的单位执行垃圾收集操作。
[0202] 当在存储系统中生成对于垃圾收集的请求时,RAID控制器1100A或1100B选择作为垃圾收集的目标的受害者条带。例如,具有最高的无效页比例的条带可被选择为受害者条带。换句话说,具有最低的有效页比例的条带可被选择为受害者条带。
[0203] 如果当数据已存储在第一SSD 1300-1至第N SSD 1300-N(如图12A所示)中时在存储系统中发生了对于垃圾收集的请求,则如图12B所示,具有最高无效页比例的条带被选择为受害者条带。在这种情形下,从上面算起受害者条带是第二。
[0204] 在如图12B所示选择受害者条带之后,RAID控制器1100A或1100B将受害者条带中包含的有效页复制到NVRAM 1200的孤立高速缓冲存储器1200-1中。在完成复制处理之后,RAID控制器1100A或1100B从受害者条带擦除奇偶校验信息。在完成擦除之后的NVRAM 1200的数据存储状态和第一SSD 1300-1至第N SSD 1300-N的数据存储状态如图12C所示。因此,孤立高速缓冲存储器1200-1存储临时不受奇偶校验信息的保护的页的数据。临时不受奇偶校验信息的保护的有效页被称为孤立页,并且在孤立页中存储的数据被称为孤立数据。
[0205] 参照图12C,尽管受害者条带中包含的奇偶校验信息被删除,但是受害者条带中包含的全部有效页的数据被存储在孤立高速缓冲存储器1200-1中,从而可确保数据的可靠性。
[0206] 如果在垃圾收集操作期间发生对于读取受害者条带中包含的有效页的请求时,RAID控制器1100A或1100B直接从NVRAM 1200的孤立高速缓冲存储器1200-1读取被请求读取的孤立页。换句话说,RAID控制器1100A或1100B直接从NVRAM 1200的孤立高速缓冲存储器1200-1读取孤立页,而无需从第一SSD 1300-1至第N SSD 1300-N读取孤立页。因此,响应于在垃圾收集期间对于读取受害者条带的有效页的请求,可通过使用NVRAM 1200以低的延迟执行数据读取。
[0207] 接下来,RAID控制器1100A或1100B将受害者条带中包含的有效页复制到将构成新的条带的存储器块。例如,受害者条带中包含的存储器块的有效页可被复制到另一存储器块,其中,该另一存储器块包含在存储前一存储器块的有效页的SSD中且用来构成新的条带。作为另一示例,受害者条带中包含的有效页可被均匀地分布和复制到将构成新的条带的存储器块。
[0208] 例如,将构成新的条带的上述存储器块可被分配为用于复制在用于垃圾收集的受害者条带中包含的有效页的存储区域。换句话说,RAID控制器1100A或1100B管理存储器块,使得根据正常写入操作的数据不被混合在将构成新的条带且被分配为在垃圾收集期间复制有效页的存储器块中。
[0209] 例如,现在将描述包含在受害者条带中的存储器块的有效页被复制到另一存储器块的操作,其中,该另一存储器块包含在存储前一存储器块的有效页的SSD中且用来构成新的条带。
[0210] RAID控制器1100A或1100B将位于第一SSD 1300-1的存储器块#2中的孤立页复制到第一SSD 1300-1的存储器块#M-1中。此后,RAID控制器1100A或1100B对第一SSD 1300-1的存储器块#2执行擦除操作。在完成擦除操作之后的NVRAM 1200的数据存储状态和第一SSD 1300-1至第N SSD1300-N的数据存储状态如图12D所示。
[0211] 类似地,RAID控制器1100A或1100B将位于第二SSD 1300-2的存储器块#2中的孤立页复制到第二SSD 1300-2的存储器块#M-1中。此后,RAID控制器1100A或1100B对第二SSD 1300-2的存储器块#2执行擦除操作。在完成擦除操作之后的NVRAM 1200的数据存储状态和第一SSD 1300-1至第N SSD 1300-N的数据存储状态如图12E所示。
[0212] RAID控制器1100A或1100B将位于第三SSD 1300-3的存储器块#2中的孤立页复制到第三SSD 1300-3的存储器块#M-1中。此后,RAID控制器1100A或1100B对第三SSD 1300-3的存储器块#2执行擦除操作。在完成擦除操作之后的NVRAM 1200的数据存储状态和第一SSD 1300-1至第N SSD1300-N的数据存储状态如图12F所示。
[0213] 根据示例性实施例,RAID控制器1100A或1100B管理复制有孤立页的存储器块,使得这些存储器块只包括通过垃圾收集得到的孤立页。孤立数据是在与孤立数据初始一起存储的无效数据正通过垃圾收集被删除的同时生存的数据。换句话说,由于孤立数据被证实具有长的数据生命周期,所以根据正常写入操作将孤立数据与数据一起存储在一个存储器块中是低效的。在一个存储器块中存储具有相似的数据生命周期的数据对于最少化垃圾收集期间的有效页间的复制操作是有效的。
[0214] 当以这种方式执行垃圾收集时,第一SSD 1300-1至第(N-1)SSD1300-(N-1)的相应的存储器块#M-1被孤立数据填充。在执行该垃圾收集之后的NVRAM 1200的数据存储状态和第一SSD 1300-1至第N SSD 1300-N的数据存储状态如图12G所示。
[0215] 然后,RAID控制器1100A或1100B计算关于在NVRAM 1200中存储的孤立数据的奇偶校验信息,接下来,将计算出的奇偶校验信息写入到第N SSD1300-N的存储器块#M-1。在写入奇偶校验信息之后,在第一SSD 1300-1至第(N-1)SSD 1300-(N-1)的各个存储器块#M-1中存储的孤立数据被转换为能够受第N SSD 1300-N的存储器块#M-1中存储的奇偶校验信息的保护的有效页。RAID控制器1100A或1100B生成由第一SSD 1300-1至第N SSD 1300-N的存储器块#M-1构成的新的条带,并且将构成该新的条带的存储器块#M-1的位置信息注册在条带映射表中。在写入奇偶校验信息之后,RAID控制器1100A或1100B冲洗(flush)在NVRAM 1200的孤立高速缓冲存储器1200-1中存储的孤立数据。在冲洗操作完成之后的NVRAM 1200的数据存储状态和第一SSD 1300-1至第N SSD 1300-N的数据存储状态如图12H所示。
[0216] 图13A和图13B是示出根据本公开示例性实施例的在存储系统中在垃圾收集操作期间将受害者条带中包含的有效页复制到将构成新条带的存储器块的各种示例的概念图。
[0217] 参照图13A和图13B,由于关于在受害者条带中包含的有效页的奇偶校验信息已经被删除,所以受害者条带中包含的有效页是孤立页。
[0218] 参照图13A,受害者条带中包含的孤立页只被复制到与孤立页所处的SSD相同的SSD中。换句话说,第一SSD 1300-1的存储器块#2中包含的孤立页1、2、3和4被复制到第一SSD 1300-1的存储器块#M-1中,第二SSD1300-2的存储器块#2中包含的孤立页5、6、7、8、9和a被复制到第二SSD1300-2的存储器块#M-1中,并且第三SSD 1300-3的存储器块#2中包含的孤立页b、c、d、e和f被复制到第三SSD 1300-3的存储器块#M-1中。
[0219] 因此,在相同的SSD内执行孤立页的复制。从而,可仅通过SSD的内部I/O总线来执行I/O,并不需要外部I/O总线,由此可减少I/O总线通信量。但是,受害者条带的存储器块中的孤立页的数量可相互不同,从而执行擦除操作的总次数可增加。
[0220] 作为另一示例,孤立页可被自由地复制,而不管初始存储孤立页的SSD如何。
[0221] 根据此方法,在孤立高速缓冲存储器1200-1中存储的孤立页被复制到构成每一个SSD的闪速存储器的页。因此,在所有的情况下孤立页在每一个SSD中的数量与其它SSD中的数量相同,由此容易从孤立页生成奇偶校验信息并将孤立页转换为正常的有效页。另外,可减少执行擦除操作的次数。但是,由于通过使用外部I/O总线来执行孤立页复制,所以I/O总线业务量增大,并且复制延迟可能会增加。
[0222] 作为另一示例,位于受害者条带的每一个存储器块中的孤立页基本上被复制到与对应于存储器块的SSD相同的SSD中,并且孤立页中的一些孤立页从NVRAM 1200被复制到SSD,以便获得孤立页平衡。
[0223] 详细地说,可通过下述处理来获得孤立页平衡。
[0224] 首先,通过将受害者条带中包含的有效页的总数除以构成受害者条带的多个存储器块当中的除了存储奇偶校验信息的存储器块以外的存储器块的数量,来计算有效页的平均值。
[0225] 接下来,包含在构成受害者条带的每一个存储器块中的有效页在小于或等于该平均值的范围内被复制到的同一SSD内的将构成新的条带的存储器块中。
[0226] 接下来,包含在受害者条带中的其它有效页被复制到将构成新的条带的存储器块中,使得有效页可被均匀地存储在将构成新的条带的SSD的相应的存储器块中。
[0227] 下面将参照图13B描述这些操作。
[0228] 例如,第一SSD 1300-1至第三SSD 1300-3的存储器块#2中包含的有效页的总数是15。因此,受害者条带中的每个SSD的有效页的平均值是5。因此,包含在构成受害者条带的每一个存储器块中的有效页中的5或更少的有效页被复制到同一SSD内的新的存储器块中。
[0229] 第一SSD 1300-1的存储器块#2具有四个孤立页1、2、3和4,其数量小于或等于作为受害者条带中的每个SSD的有效页的平均值的5。因此,第一SSD 1300-1的存储器块#2中的孤立页1、2、3和4全部被复制到第一SSD1300-1的存储器块#M-1。
[0230] 接下来,第二SSD 1300-2的存储器块#2具有六个孤立页5、6、7、8、9和a。因此,存储器块#2中包含的六个孤立页5、6、7、8、9和a当中只有五个孤立页被复制到同一SSD 1300-2的另一存储器块中。例如,第二SSD1300-2中的存储器块#2的六个孤立页5、6、7、8、9和a中的除了孤立页a以外的孤立页5、6、7、8和9被复制到第二SSD 1300-2的存储器块#M-1。
[0231] 接下来,第三SSD 1300-3的存储器块#2具有五个孤立页b、c、d、e和f,其数量在小于或等于5的受害者条带中的每个SSD的有效页的平均值的范围内。因此,第三SSD 1300-3的存储器块#2中的孤立页b、c、d、e和f被复制到第三SSD 1300-3的存储器块#M-1。
[0232] 接下来,在NVRAM 1200的孤立高速缓冲存储器1200-1中存储的孤立页a通过外部复制操作被复制到第一SSD 1300-1的存储器块#M-1。
[0233] 图14示出根据本公开的示例性实施例的在存储系统中执行垃圾收集操作之后的条带结构的示例。
[0234] 在正执行RAID级别的垃圾收集操作的同时,每一个SSD为确保一个空闲的存储器块所需的擦除操作的次数可能会变化。因此,构成条带的存储器块可能会变化。换句话说,虽然具有相同的索引且分别被包含在SSD中的存储器块第一次形成条带,但是如图14所示,构成一个条带的存储器块在正执行后续的垃圾收集的同时可能会被改变。
[0235] 参照图14,第一SSD 1300-1的存储器块#5、第二SSD 1300-2的存储器块#4、第三SSD 1300-3的存储器块#5和第N SSDN 1300-N的存储器块#4构成一个条带。关于这种动态条带结构的信息被存储在上面参照图1至4描述的条带映射表中。换句话说,可通过使用条带映射表来搜索表示图14中示出的每一个条带的结构的条带指针信息。
[0236] 图15是用于解释根据本公开的另一个示例性实施例的存储系统中的条带重建的必要性的示图。
[0237] 基于SSD的日志结构RAID存储系统可选择具有最低有效页比例的条带作为用于垃圾收集的受害者条带。在这种情况下,当一个条带中包含的存储器块的有效页比例之间的不平衡大时,在垃圾收集期间可能会不必要地发生许多内部有效页复印操作。因此,WAF可能会增大。
[0238] 参照图15,如果具有最低有效页比例的条带被选择为受害者条带,则包括具有索引#4的存储器块的条带可被选择为受害者条带。选择的受害者条带中的第三SSD 1300-3和第四SSD 1300-4的相应的存储器块具有低有效页比例并由此可被视为理想的受害者块,然而,选择的受害者条带中的第一SSD1300-1和第二SSD 1300-2的各个存储器块具有高有效页比例并由此导致不必要地执行内部有效页复印操作。
[0239] 换句话说,鉴于每一个单独的存储器块,包括具有索引#4的存储器块的条带可能不被视为良好的受害者条带。但是,由于日志结构RAID存储系统因奇偶校验依赖性而不得不按条带的单位选择受害者块和执行擦除操作的特性,所以只考虑有效页比例来选择包括具有索引#4的存储器块的条带,并然后执行垃圾收集。
[0240] 为了解决该问题,本公开的示例性实施例提出了执行条带重建处理的下述技术,以减少条带中包含的存储器块的有效页比例之间的不平衡。
[0241] (1)存储器块共享技术
[0242] (2)条带大小缩小技术
[0243] (3)没有垃圾收集的条带交叉合并
[0244] (4)具有垃圾收集的条带交叉合并
[0245] 这四种技术全部可独立于受害者条带选择来应用。为了应用这四种技术,需要执行不平衡的条带选择。为了便于解释,不平衡的条带也被称为目标条带。
[0246] 例如,不平衡的条带可被选择为如下:
[0247] 如下的条带被设置为不平衡的条带(目标条带),即,其包含的至少N个(其中,N是等于或大于1的整数)存储器块的有效页比例小于初始设置的第一阈值TH1,并且其余的存储器块的有效页比例大于初始设置的第二阈值TH2,该初始设置的第二阈值TH2大于初始设置的第一阈值TH1。
[0248] 如果存在以上述方式选择的多个不平衡条带,则可基于从N的值的降序、小于第一阈值TH1的有效页比例的升序和大于第二阈值TH2的有效页比例的降序中的至少一种来从多个选择的不平衡条带选择单个不平衡条带。
[0249] 参照图15,在包括具有索引#4的存储器块的条带中,第三SSD 1300-3和第四SSD 1300-4的有效页比例是12.5%,并且,第一SSD 1300-1和第二SSD 1300-2的有效页比例是
93.8%。在包括具有索引#5的存储器块的条带中,第一SSD 1300-1和第二SSD 1300-2的有效页比例是56.3%,并且第三SSD1300-3和第四SSD 1300-4的有效页比例是100%。
[0250] 例如,在第一阈值TH1被设置为50%并且第二阈值TH2被设置为90%时,包括具有索引#4的存储器块的条带被设置为不平衡条带。
[0251] 作为另一示例,在第一阈值TH1被设置为60%并且第二阈值TH2被设置为90%时,包括具有索引#4的存储器块的条带和包括具有索引#5的存储器块的条带变为不平衡条带候选。换句话说,存在多个不平衡条带候选。例如,在基于小于第一阈值TH1的有效页比例的升序来选择单个不平衡条带时,包括具有索引#4的存储器块的条带可被选择为单个不平衡条带。
[0252] 现在将详细地描述根据本公开的示例性实施例的用于条带重建的四种技术。
[0253] (1)存储器块共享技术
[0254] 在存储器块共享技术中,改变对构成不平衡条带的存储器块的分组,使得不平衡条带中包含的存储器块中的具有低有效页比例的至少一个目标存储器块被另一个条带中包含的存储器块中的具有比所述至少一个目标存储器块高的有效页比例的存储器块所替换。
[0255] 图16A至图16D示出根据本公开的示例性实施例的存储系统中执行的条带重建操作的示例。现在将参照图16A至图1 6D描述存储器块共享技术。
[0256] 在存储系统中,RAID控制器1100A或1100B从多个条带中选择不平衡条带。参照图16A,使用条带映射表,根据上述方法,包括具有索引#4的存储器块的条带可被选择为不平衡条带。
[0257] 接下来,RAID控制器1100A或1100B确定不平衡条带中包含的存储器块中的具有低有效页比例的第三SSD 1300-3和第四SSD 1300-4的存储器块#4作为目标存储器块,并在另一个条带中包含的存储器块搜索具有比目标存储器块高的有效页比例的存储器块。参照图16A,第三SSD 1300-3和第四SSD1300-4的存储器块#5被确定为将替换目标存储器块的存储器块。
[0258] 接下来,RAID控制器1100A或1100B通过用第三SSD 1300-3和第四SSD 1300-4的存储器块#5替换不平衡条带中包含的第三SSD 1300-3和第四SSD 1300-4的存储器块#4来产生新的条带。RAID控制器1100A或1100B将关于新的条带的奇偶校验信息写入到新的条带所包含的第N SSD 1300-N的存储器块#6。RAID控制器1100A或1100B将第三SSD 1300-3和第四SSD1300-4的被替换的存储器块#4中包含的有效页复制到NVRAM 1200的孤立高速缓冲存储器1200-1中并分别复制到构成孤立条带的第三SSD 1300-3和第四SSD 1300-4的存储器块#M。此后,RAID控制器1100A或1100B擦除第三SSD 1300-3和第四SSD 1300-4的存储器块#4和存储关于不平衡条带的奇偶校验信息的第N SSD 1300-N的存储器块#4。在图16B中示出在这种条带重建操作之后的存储器块的条带结构状态和存储状态。
[0259] 如图16B所示,通过改变构成不平衡条带的存储器块中的一些存储器块,来产生包括第一SSD 1300-1的存储器块#4、第二SSD 1300-2的存储器块#4、第三SSD 1300-3的存储器块#5、第四SSD 1300-4的存储器块#5和第N SSD13000-N的存储器块#6的新的条带。
[0260] RAID控制器1100A或1100B根据条带重建来更新条带映射表。换句话说,RAID控制器1100A或1100B将关于新的条带的信息添加到条带映射表,并从条带映射表删除关于不平衡条带的信息。
[0261] RAID控制器1100A或1100B可对不平衡条带的奇偶校验信息、被替换的存储器块中存储的数据和将替换的存储器块的存储器块中存储的数据执行XOR计算,以便生成新的条带的奇偶校验信息。换句话说,当对第N SSD1300-N的存储器块#4的奇偶校验信息、第三SSD 1300-3的存储器块#4中存储的数据和第四SSD 1300-4的存储器块#4中存储的数据执行XOR计算时,获得第一SSD 1300-1的存储器块#4中存储的数据和第二SSD 1300-2的存储器块#4中存储的数据的XOR值。在对该XOR值、第三SSD 1300-3的存储器块#5中存储的数据和第四SSD 1300-4的存储器块#5中存储的数据执行另外的XOR计算时,可获得关于新的条带的奇偶校验信息。更简单地说,第N SSD 1300-N的存储器块#6中存储的奇偶校验信息是第一SSD 
1300-1和第二SSD 1300-2的存储器块#4以及第三SSD 1300-3和第四SSD 1300-4的存储器块#5的XOR计算。如果构成条带的SSD的数量增加,则上述的计算奇偶校验信息的方法对于减少执行XOR计算的次数是有效的。
[0262] 参照图16B,一个存储器块能够被包含在几个条带中。换句话说,第三SSD 1300-3的存储器块#5和第四SSD 1300-4的存储器块#5被包含在两个条带中。
[0263] 例如,RAID控制器1100A或1100B可在条带映射表中注册关于由每一个存储器块形成的条带的数量的信息并管理该注册的信息。作为另一示例,由每一个存储器块形成的条带的数量可通过包括用于每一个存储器块的计数器来被管理。详细地说,每当存储器块包含在一个条带中时,对于该存储器块的计数器加1,并且每当一个条带被解构时,对于该条带中包含的存储器块的计数器减1。以这样的方式,可识别出由每一个存储器块形成的条带的数量。只可允许擦除具有“0”的计数器值的存储器块。
[0264] 例如,在如图16B所示执行条带重建之后,当在条带提供将替换不平衡条带的存储器块的存储器块之后的条带中剩余的存储器块的有效页比例充分低时,RAID控制器1100A或1100B选择提供替换存储器块的条带作为受害者条带。换句话说,由于第一SSD 1300-1和第二SSD 1300-2的相应的存储器块#5的有效页比例低,所以如图16C所示,包括第一SSD 1300-1、第二SSD 1300-2、第三SSD 1300-3、第四SSD 1300-4和第N SSD 1300-N的存储器块#5的条带可被选择为受害者条带。
[0265] RAID控制器1100A或1100B将第一SSD 1300-1和第二SSD 1300-2的存储器块#5中包含的有效页复制到NVRAM 1200的孤立高速缓冲存储器1200-1中并分别复制到构成孤立条带的第一SSD 1300-1和第二SSD 1300-2的存储器块#M。此后,RAID控制器1100A或1100B擦除第一SSD 1300-1和第二SSD 1300-2的存储器块#5和第N SSD 1300-N的存储器块#5。在图16D中示出在这种垃圾收集操作之后的存储器块的条带结构状态和存储状态。
[0266] (2)条带大小缩小技术
[0267] 在条带大小缩小技术中,改变构成一条带的存储器块的分组,使得包含在不平衡条带中的存储器块中的具有低有效页比例的至少一个目标存储器块从不平衡条带被排除。
[0268] 图17A和17B示出根据本公开的示例性实施例的存储系统中执行的条带重建操作的另一个示例。现在将参照图17A和17B描述条带大小缩小技术。
[0269] 在存储系统中,RAID控制器1100A或1100B从多个条带中选择不平衡条带。参照图17A,使用条带映射表,根据上述的方法,包括具有索引#4的存储器块的条带可被选择为不平衡条带。
[0270] 接下来,RAID控制器1100A或1100B从包含在不平衡条带中的存储器块选择具有相对低有效页比例的至少一个目标存储器块。例如,在包括存储器块#4的不平衡条带中,第三SSD 1300-3的存储器块#4和第四SSD 1300-4的存储器块#4具有比第一SSD 1300-1的存储器块#4和第二SSD 1300-2的存储器块#4低的有效页比例。因此,RAID控制器1100A或1100B选择第三SSD1300-3和第四SSD 1300-4的存储器块#4作为目标存储器块。
[0271] 然后,RAID控制器1100A或1100B通过从不平衡条带排除作为目标存储器块的第三SSD 1300-3和第四SSD 1300-4的存储器块#4来产生新的条带。RAID控制器1100A或1100B计算关于包括第一SSD 1300-1和第二SSD1300-2的存储器块#4的新的条带的奇偶校验信息,并将计算出的奇偶校验信息写入到第N SSD 1300-N的存储器块#6。此后,RAID控制器1100A或1100B将包含在从不平衡条带排除的目标存储器块中的有效页复制到构成孤立条带的存储器块和NVRAM 1200的孤立高速缓冲存储器1200-1中。换句话说,RAID控制器1100A或1100B将第三SSD 1300-3和第四SSD 1300-4的存储器块#4中包含的有效页复制到NVRAM 
1200的孤立高速缓冲存储器1200-1中并分别复制到构成孤立条带的第三SSD 1300-3和第四SSD 1300-4的存储器块#M。此后,RAID控制器1100A或1100B擦除第三SSD 1300-3和第四SSD 1300-4的存储器块#4和存储关于不平衡条带的奇偶校验信息的第N SSD1300-N的存储器块#4。在图17B中示出在这种条带重建操作之后的存储器块的条带结构状态和存储状态。
[0272] 如图17B所示,通过排除构成不平衡条带的存储器块中的一些存储器块,产生包括第一SSD 1300-1的存储器块#4、第二SSD 1300-2的存储器块#4和第N SSD 1300-N的存储器块#6的新条带。
[0273] RAID控制器1100A或1100B根据条带重建来更新条带映射表。换句话说,RAID控制器1100A或1100B将关于新的条带的信息添加到条带映射表,并从条带映射表删除关于不平衡条带的信息。
[0274] (3)没有垃圾收集的条带交叉合并
[0275] 在没有垃圾收集的条带交叉合并中,改变对构成两个不平衡条带的存储器块的分组,使得通过在这两个不平衡条带之间的存储器块的交换来产生包括具有高有效页比例的存储器块的新的条带和包括具有低有效页比例的存储器块的另一个新的条带。
[0276] 图18A和18B示出根据本公开的示例性实施例的存储系统中执行的条带重建操作的另一个示例。现在将参照图18A和18B描述没有垃圾收集的条带交叉合并技术。
[0277] 在存储系统中,RAID控制器1100A或1100B从多个条带中选择不平衡条带。参照图18A,使用条带映射表,根据上述的方法,包括具有索引#4的存储器块的条带可被选择为第一不平衡条带。
[0278] 接下来,RAID控制器1100A或1100B搜索第二不平衡条带,其中,在所述第二不平衡条带中的具有相对低有效页比例的存储器块与包括在第一不平衡条带中的存储器块中的具有相对低有效页比例的存储器块不重叠。参照图18A,包括存储器块#4的第一不平衡条带中包含的具有相对低有效页比例的存储器块是第三SSD 1300-3的存储器块#4和第四SSD 1300-4的存储器块#4。包括存储器块#5的条带中包含的具有相对低有效页比例的存储器块是第一SSD 1300-1的存储器块#5和第二SSD 1300-2的存储器块#5。换句话说,包括存储器块#4的第一不平衡条带中包含的具有相对低有效页比例的存储器块被包含在第三SSD 
1300-3和第四SSD 1300-4中,而包括存储器块#5的条带中包含的具有相对低有效页比例的存储器块被包含在第一SSD 1300-1和第二SSD 1300-2中。换句话说,第一不平衡条带中的具有相对低有效页比例的存储器块与包括存储器块#5的条带中的具有相对低有效页比例的存储器块不重叠。因此,RAID控制器1100A或1100B可选择包括存储器块#5的条带作为第二不平衡条带。
[0279] 接下来,RAID控制器1100A或1100B通过在第一不平衡条带和第二不平衡条带之间交换存储器块来产生包括具有高有效页比例的存储器块的新的条带和包括具有低有效页比例的存储器块的另一个新的条带。例如,如图18B所示,这两个新的条带可通过在第一不平衡条带和第二不平衡条带之间交换第三SSD 1300-3和第四SSD 1300-4的存储器块来被产生。换句话说,可产生包括具有高有效页比例的第一SSD 1300-1的存储器块#4、具有高有效页比例的第二SSD 1300-2的存储器块#4、具有高有效页比例的第三SSD 1300-3的存储器块#5和具有高有效页比例的第四SSD 1300-4的存储器块#5的新的条带,并且可产生包括具有低有效页比例的第一SSD 1300-1的存储器块#5、具有低有效页比例的第二SSD 1300-2的存储器块#5、具有低有效页比例的第三SSD 1300-3的存储器块#4和具有低有效页比例的第四SSD 1300-4的存储器块#4的另一个新的条带。RAID控制器1100A或1100B计算关于两个新的条带中的每一个的奇偶校验信息,并将计算出的两个奇偶校验信息写入到这两个新的条带中包含的相应存储器块。例如,关于这两个新条带的相应的奇偶校验信息被写入到第N SSD 1300-N的存储器块#6和#7。此后,RAID控制器1100A或1100B擦除第一不平衡条带和第二不平衡条带的存储关于第一不平衡条带和第二不平衡条带的各个的奇偶校验信息的存储器块。例如,RAID控制器1100A或1100B擦除第N SSD 1300-N的已经存储关于第一不平衡条带的奇偶校验信息的存储器块#4和第N SSD 1300-N的已经存储关于第二不平衡条带的奇偶校验信息的存储器块#5。
[0280] 因此,通过在第一不平衡条带和第二不平衡条带之间交换一些存储器块,产生包括第一SSD 1300-1的存储器块#4、第二SSD 1300-2的存储器块#4、第三SSD 1300-3的存储器块#5、第四SSD 1300-4的存储器块#5和第N SSD1300-N的存储器块#7的新的条带,并且可产生包括第一SSD 1300-1的存储器块#5、第二SSD 1300-2的存储器块#5、第三SSD 1300-3的存储器块#4、第四SSD 1300-4的存储器块#4和第N SSD 1300-N的存储器块#6的另一个新的条带。
[0281] RAID控制器1100A或1100B根据条带重建来更新条带映射表。换句话说,RAID控制器1100A或1100B将关于这两个新的条带的信息添加到条带映射表,并从条带映射表删除关于这两个不平衡条带的信息。
[0282] (4)具有垃圾收集的条带交叉合并
[0283] 在具有垃圾收集的条带交叉合并中,通过在两个不平衡条带之间交换存储器块来产生包括具有高有效页比例的存储器块的新的条带,并且执行垃圾收集。
[0284] 图19A和19B示出根据本公开的示例性实施例的存储系统中执行的条带重建操作的另一个示例。现在将参照图19A和19B描述具有垃圾收集的条带交叉合并技术。
[0285] 在存储系统中,RAID控制器1100A或1100B从多个条带中选择不平衡条带。参照图19A,使用条带映射表,根据上述的方法,包括具有索引#4的存储器块的条带可被选择为第一不平衡条带。
[0286] 接下来,RAID控制器1100A或1100B搜索第二不平衡条带,其中,第二不平衡条带中的具有相对高有效页比例的存储器块与包含在第一不平衡条带中的存储器块中的具有相对高有效页比例的存储器块不重叠。参照图18A,包含在包括存储器块#4的第一不平衡条带中的具有相对高有效页比例的存储器块是第三SSD 1300-1的存储器块#4和第二SSD 1300-2的存储器块#4。包含在包括存储器块#5的条带中的具有相对高有效页比例的存储器块是第三SSD 1300-3的存储器块#5和第四SSD 1300-4的存储器块#5。换句话说,包含在包括存储器块#4的第一不平衡条带中的具有相对高有效页比例的存储器块被包含在第一SSD 
1300-1和第二SSD 1300-2中,而包含在包括存储器块#5的条带中的具有相对高有效页比例的存储器块被包含在第三SSD 1300-3和第四SSD 1300-4中。换句话说,第一不平衡条带中的具有相对高有效页比例的存储器块与包括存储器块#5的条带中的具有相对高有效页比例的存储器块不重叠。因此,RAID控制器1100A或1100B可选择包括存储器块#5的条带作为第二不平衡条带。
[0287] 接下来,RAID控制器1100A或1100B通过在第一不平衡条带和第二不平衡条带之间交换存储器块来产生包括具有高有效页比例的存储器块的新的条带。例如,如图19B所示,具有高有效页比例的一个新的条带可通过在第一不平衡条带和第二不平衡条带之间交换第三SSD 1300-3和第四SSD 1300-4的存储器块来被产生。换句话说,可产生包括具有高有效页比例的第一SSD1300-1的存储器块#4、具有高有效页比例的第二SSD 1300-2的存储器块#4、具有高有效页比例的第三SSD 1300-3的存储器块#5和具有高有效页比例的第四SSD 1300-4的存储器块#5的新的条带。RAID控制器1100A或1100B计算关于新的条带的奇偶校验信息,并将计算出的奇偶校验信息写入到新的条带中包含的存储器块。例如,关于新的条带的奇偶校验信息被写入到第N SSD 1300-N的存储器块#6。
[0288] 此后,RAID控制器1100A或1100B将包含在第一不平衡条带和第二不平衡条带中的存储器块中的不包括在新的条带中的存储器块所包含的有效页复制到NVRAM 1200的孤立高速缓冲存储器1200-1和构成孤立条带的存储器块中。换句话说,RAID控制器1100A或1100B将第一SSD 1300-1的存储器块#5、第二SSD 1300-2的存储器块#5、第三SSD 1300-3的存储器块#4和第四SSD 1300-4的存储器块#4中包含的有效页复制到NVRAM 1200的孤立高速缓冲存储器1200-1并分别复制到构成孤立条带的第一SSD 1300-1至第四SSD 1300-4的存储器块#M中。
[0289] 接下来,RAID控制器1100A或1100B擦除分别已经存储了关于第一不平衡条带和第二不平衡条带的各自的奇偶校验信息的存储器块以及包含在第一不平衡条带和第二不平衡条带中的存储器块中但不包括在新的条带中的存储器块。换句话说,RAID控制器1100A或1100B擦除第一SSD 1300-1的存储器块#5、第二SSD 1300-2的存储器块#5、第三SSD 1300-3的存储器块#4、第四SSD 1300-1的存储器块#4以及第N SSD 1300-N的存储器块#4和#5。
[0290] RAID控制器1100A或1100B根据条带重建来更新条带映射表。换句话说,RAID控制器1100A或1100B将关于单个新的条带的信息添加到条带映射表,并从条带映射表删除关于这两个不平衡条带的信息。
[0291] 图20是根据本公开的示例性实施例的形成存储系统的SSD 200-1的框图。
[0292] 参照图20,SSD 200-1可包括存储器控制器210和存储器装置220。
[0293] 存储器控制器210可根据从主机接收到的命令来控制存储器装置220。详细地说,存储器控制器210可通过多个通道CH1至CHN将地址、命令和控制信号提供给存储器装置220,以控制对存储器装置220的编程(或写入)操作、读取操作和擦除操作。
[0294] 存储器装置220可包括至少一个闪速存储器芯片,即,闪速存储器芯片221和223。作为另一示例,存储器装置220不仅可包括闪速存储器芯片,还可包括PRAM芯片、FRAM芯片、MRAM芯片等。
[0295] 在图20中,SSD 200-1包括N个通道(其中,N是自然数),并且每个通道包括四个闪速存储器芯片。每个通道中包含的闪速存储器芯片的数量可以各种的方式被设置。
[0296] 图21示例性地示出图20的SSD 220中的通道和通路。
[0297] 多个闪速存储器芯片221、222至223可分别与通道CH1至CHN电连接。通道CH1至CHN可以是命令、地址和数据可分别被发送到闪速存储器芯片221、222至223或者从闪速存储器芯片221、222至223接收的独立的总线。与不同通道连接的闪速存储器芯片可相互独立地操作。分别与通道CH1至CHN连接的多个闪速存储器芯片221、222至223中的每一个可形成多个通路Way1至WayM。M个闪速存储器芯片可分别与在每一个通道中形成的M个通路连接。
[0298] 例如,闪速存储器芯片221-1至221-M可在第一通道CH1中形成M个通路way1至wayM。闪速存储器芯片221-1至221-M可分别与第一通道CH1中的M个通路way1至wayM连接。上述的闪速存储器芯片、通道和通路之间的关系可应用于闪速存储器芯片222和闪速存储器芯片223。
[0299] 通路是用于识别相互共享相同的通道的闪速存储器芯片的单元。闪速存储器芯片中的每一个可根据通道编号和通路编号被识别。将执行从主机发送的请求的闪速存储器芯片的通道和通路可由从主机发送的逻辑地址所确定。
[0300] 图22是示出图21中所示的存储器控制器210的详细结构的框图。
[0301] 如图22所示,存储器控制器210包括处理器211、RAM 212、主机接口213、存储器接口214和总线215。
[0302] 存储器控制器210的组件通过总线215相互电连接。
[0303] 处理器211可通过使用在RAM 212中存储的程序代码和数据来控制SSD200-1的整体操作。在SSD 200-1被初始化时,处理器211从存储器装置220读取用于控制由SSD 200-1执行的操作所需的程序代码和数据,并且将读取的程序代码和数据加载到RAM 212中。
[0304] 处理器211可通过使用在RAM 212中存储的程序代码和数据来执行与从主机接收到的命令对应的控制操作。详细地说,处理器211可执行从主机接收到的写入命令或读取命令。处理器211可基于从主机接收到的命令控制SSD200-1以根据垃圾收集操作执行页复制操作或存储器块擦除操作。
[0305] 主机接口213包括用于与连接到存储器控制器210的主机交换数据的协议并将存储器控制器210与主机进行接口连接。主机接口213可通过使用(但不限于)如下接口实现:高级技术附件(ATA)接口、串行高级技术附件(SATA)接口、并行高级技术附件(PATA)接口、通用串行总线(USB)或串行连接小型计算机系统(SAS)接口、小型计算机系统接口(SCSI)、嵌入式多媒体卡(eMMC的)接口或者通用闪速存储(UFS)接口。主机接口213可在处理器211的控制下从主机接收命令、地址和数据或者可将数据发送到主机。
[0306] 存储器接口214与存储器装置220电连接。存储器接口214可在处理器211的控制下将命令、地址和数据发送到存储器装置220,或者可从存储器装置220接收数据。存储器接口214可被配置为支持NAND闪速存储器或NOR闪速存储器。存储器接口214可被配置为通过多个通道执行软件或硬件交错操作。
[0307] 图23是示出在图21的存储器装置220中包括的闪速存储器芯片221-1的详细结构的框图。
[0308] 参照图23,闪速存储器芯片221-1可包括存储器单元阵列11、控制逻辑单元12、电压发生器13、行解码器14和页缓冲器15。现在将详细地描述闪速存储器芯片221-1中包括的组件。
[0309] 存储器单元阵列11可与至少一条串选择线SSL、多条字线WL和至少一条接地选择线GSL连接,并且也可与多条位线BL连接。存储器单元阵列11可包括设置在多条位线BL和多条字线WL的相交处的多个存储器单元MC。
[0310] 在对存储器单元阵列11施加擦除电压时,多个存储器单元MC进入擦除状态。在对存储器单元阵列11施加编程电压时,多个存储器单元MC进入编程状态。此时,每一个存储器单元MC可具有从擦除状态和根据阈值电压而相互区分开的第一编程状态P1至第n编程状态Pn中选择的一种状态。
[0311] 在第一编程状态P1至第n编程状态Pn中,n可以是等于或大于2的自然数。例如,在每一个存储器单元MC是2位层单元时,n可以是3。又例如,在每一个存储器单元MC是3位层单元时,n可以是7。作为另一示例,在每一个存储器单元MC是4位层单元时,n可以是15。这样,多个存储器单元MC可包括多层单元。但是,本公开的示例性实施例并不限于此,并且,多个存储器单元MC可包括单层单元。
[0312] 控制逻辑单元12可以从存储器控制器210接收命令信号CMD、地址信号ADDR和控制信号CTRL,以输出用于将数据DATA写入存储器单元阵列11或者用于从存储器单元阵列11读取数据的各种控制信号。以这样的方式,控制逻辑单元12可控制闪速存储器芯片221-1的整体操作。
[0313] 由控制逻辑单元12输出的各种控制信号可被提供给电压发生器13、行解码器14和页缓冲器15。详细地说,控制逻辑单元12可将电压控制信号CTRL_vol提供给电压发生器13,可将行地址信号X_ADDR提供给行解码器14并且可将列地址信号Y_ADDR提供给页缓冲器15。
[0314] 电压发生器13可接收电压控制信号CTRL_vol,以生成用于对存储器单元阵列11执行编程操作、读操作和擦除操作的各种电压。详细地说,电压发生器13可生成用于驱动多条字线WL的第一驱动电压VWL、用于驱动至少一条串选择线SSL的第二驱动电压VSSL和用于驱动至少一条接地选择线GSL的第三驱动电压VGSL。
[0315] 第一驱动电压信号VWL可以是编程(或写入)电压、读取电压、擦除电压、通过电压(pass voltage)或编程校验(program verification)电压。第二驱动电压VSSL可以是串选择电压,即,接通(on)电压或断开(off)电压。第三驱动电压VGSL可以是接地选择电压,即,接通(on)电压或断开(off)电压。
[0316] 根据本示例性实施例,在编程循环开始时,即,在所执行的编程循环的数目是1时,电压发生器13可接收电压控制信号CTRL_vol以生成编程开始电压作为编程电压。随着所执行的程序循环的数目增加,电压发生器13可生成分阶段按步间电压从编程开始电压增加的电压作为编程电压。
[0317] 行解码器14可通过多条字线WL与存储器单元阵列11连接,并且可响应于从控制逻辑单元12接收到的行地址信号X_ADDR来激活多条字线WL中的一些字线。详细地说,在读取操作期间,行解码器14可将读取电压施加到从多条字线WL选择的一条字线,并且将通过电压施加到剩余的未选择的字线。
[0318] 在编程操作期间,行解码器14可将编程电压施加到选择的字线并将通过电压施加到未选择的字线。根据本示例性实施例,在从多个编程循环中选择的至少一个中,行解码器14可将编程电压施加到选择的字线和另外选择的字线。
[0319] 页缓冲器15可通过多条字线BL与存储器单元阵列11连接。详细地说,在读取操作期间,页缓冲器15可充当感测放大器,以输出在存储器单元阵列11中存储的数据DATA。在编程操作期间,页缓冲器15可操作为写入驱动器,以输入期望存储在存储器单元阵列11中的数据DATA。
[0320] 图24示出图23的存储器单元阵列11。
[0321] 参照图24,存储器单元阵列11可以是闪速存储器单元阵列。在这种情况下,存储器单元阵列11可包括多个存储器块BLK1、BLK2、……和BLKa(其中,“a”表示等于或大于2的正整数),并且存储器块BLK1、BLK2、……和BLKa中的每一个存储器块可包括多个页PAGE1、PAGE2、……和PAGEb(其中,“b”表示等于或大于2的正整数)。另外,页PAGE1、……和PAGEb中的每一个页可以包括多个扇区SEC1、SEC2、……和SECc(其中,“c”表示等于或大于2的正整数)。虽然在图24中为了方便解释只示出存储器块BLK1的页PAGE1至PAGEb和扇区SEC1至SECc,但是其它的存储器块BLK2至BLKa可具有与存储器块BLK1相同的结构。
[0322] 图25是示出第一存储器块BLK1a的等效电路图,该第一存储器块BLK1a是图24的存储器单元阵列11中包括的存储器块BLK1的示例。
[0323] 参照图25,第一存储器块BLK1a可以是具有垂直结构的NAND闪速存储器。在图25中,第一方向被称为x方向,第二方向被称为y方向,第三方向被称为z方向。但是,本公开的示例性实施例并不限于此,并且第一方向至第三方向可以变化。
[0324] 第一存储器块BLK1a可包括多个单元串CST、多条字线WL、多条位线BL、多条接地选择线GSL1和GSL2、多条串选择线SSL1和SSL2以及公共源极线CSL。单元串CST的数量、字线WL的数量、位线BL的数量、接地选择线GSL1和GSL2的数量以及串选择线SSL1和SSL2的数量可根据示例性实施例变化。
[0325] 单元串CST中的每一个可包括在对应于单元串CST的位线BL和公共源极线CSL之间相互串联连接的串选择晶体管SST、多个存储器单元MC和接地选择晶体管GST。但是,本公开的示例性实施例并不局限于此。根据另一个示例性实施例,每一个单元串CST还可包括至少一个伪单元。根据另一个示例性实施例,每一个单元串CST可包括至少两个串选择晶体管SST或至少两个接地选择晶体管GST。
[0326] 每一个单元串CST可沿第三方向(z方向)上延伸。详细地说,每一个单元串CST可沿着垂直方向(z方向)在基板上延伸。因此,包括单元串CST的第一存储器块BLK1a可被称为垂直方向NAND闪速存储器。这样,通过在基板上沿着垂直方向(z方向)延伸每一个单元串CST,存储器单元阵列11的集成密度可增大。
[0327] 多条字线WL(例如,WL1、WL2、……、WLn-1、WLn)均可沿第一方向x和第二方向y延伸,并且每一条字线WL可与对应于此的存储器单元MC连接。因此,在第一方向x和第二方向y上的同一平面上彼此相邻地设置的多个存储器单元MC可通过相同的字线WL相互连接。详细地说,每一条字线WL可连接到存储器单元MC的栅极,以控制存储器单元MC。在这种情况下,多个存储器单元MC(例如,MC1、MC2、……、MCn-1、MCn)可存储数据,并且可在连接的字线WL的控制下被编程、读取或擦除。
[0328] 多条位线BL(例如,BL1、BL2、……、BLm)可沿第一方向x延伸,并且可连接到串选择晶体管SST。因此,在第一方向x上彼此相邻地布置的多个串选择晶体管SST可通过相同的位线BL相互连接。详细地说,每一条位线BL可连接到多个串选择晶体管SST的漏极。
[0329] 多条串选择线SSL1和SSL2均可沿第二方向y延伸,并且可连接到串选择晶体管SST。因此,在第二方向y上彼此相邻地布置的多个串选择晶体管SST可通过相同的串选择线SSL1或SSL2相互连接。详细地说,每一条串选择线SSL1或SSL2可连接到多个串选择晶体管SST的栅极,以控制该多个串选择晶体管SST。
[0330] 多条接地选择线GSL1和GSL2均可沿第二方向y,并且可连接到接地选择晶体管GST。因此,在第二方向y上彼此相邻地布置的多个接地选择晶体管GST可通过相同的接地选择线GSL1或GSL2而相互连接。详细地说,每一条接地选择线GSL1或GSL2可连接到多个接地选择晶体管GST的栅极,以控制该多个接地选择晶体管GST。
[0331] 在单元串CST中分别包括的接地选择晶体管GST可通过公共源极线CSL相互连接。详细地说,公共源极线CSL可与接地选择晶体管GST的源极连接。
[0332] 连接到相同的字线WL和相同的串选择线SSL1或SSL2且在第二方向y上彼此相邻地布置的多个存储器单元MC可被称为页PAGE。例如,与第一字线WL1和第一串选择线SSL1连接且在第二方向y上彼此相邻地布置的多个存储器单元MC可被称为第一页PAGE1。与第一字线WL1和第二串选择线SSL2连接且在第二方向y上彼此相邻地布置的多个存储器单元MC可被称为第二页PAGE2。
[0333] 为了对存储器单元MC执行编程操作,可将0V施加到位线BL,可将接通(on)电压施加到串选择线SSL,并且可将断开(off)电压施加到接地选择线GSL。on电压可等于或大于阈值电压,使得串选择晶体管SST被导通,off电压可小于阈值电压,使得接地选择晶体管GST被截止。可将编程电压施加到从存储器单元MC选择的存储器单元,并且可将通过电压施加到剩余的未选择的存储器单元。响应于编程电压,由于F-N隧穿效应,电荷可被注入存储器单元MC。通过电压可大于存储器单元MC的阈值电压。
[0334] 为了对存储器单元MC执行擦除操作,可将擦除电压施加到存储器单元MC的主体,并且可将0V施加到字线WL。因此,在存储器单元MC中存储的数据可被暂时擦除。
[0335] 图26是根据本公开的另一示例性实施例的存储系统3000的框图。
[0336] 参照图26,存储系统3000包括RAID控制器3100、VRAM 3200、多个SSD(即,第一SSD 3300-1至第n SSD 3300-n)和总线3400。存储器控制器3000的组件通过总线3400相互电连接。
[0337] 第一SSD 3300-1至第n SSD 3300-n分别包括NVRAM高速缓冲存储区域3300-1A至3300-nA和闪速存储器存储区域3300-1B至3300-nB。
[0338] NVRAM高速缓冲存储区域3300-1A至3300-nA可通过使用PRAM、FeRAM或MRAM来实施。作为另一示例,NVRAM高速缓冲存储区域3300-1A至3300-nA可根据通过使用电池或电容器对作为易失性存储器的DRAM或SRAM施加电力的方法来实施。根据本方法,即使在系统电源被移除,在DRAM或SRAM中存储的数据也可被保留。
[0339] 闪速存储器存储区域3300-1B至3300-nB分别是形成第一SSD 3300-1至第n SSD 3300-n的闪速存储器装置的存储区域。
[0340] 用于执行条带写入操作的高速缓冲存储区域和在垃圾收集期间生成孤立页的高速缓冲存储区域可被分配给NVRAM高速缓冲存储区域3300-1A至3300-nA中的每一个。
[0341] 例如,构成在垃圾收集期间选择的受害者条带的第一SSD 3300-1至第n SSD 3300-n的闪速存储器存储区域3300-1B至3300-nB的存储器块中的有效页可被存储在NVRAM高速缓冲存储区域3300-1A至3300-nA中。
[0342] 例如,RAID控制器3100通过使用NVRAM高速缓冲存储区域3300-1A至3300-nA来按条带的单位执行写入操作。
[0343] RAID控制器3100将被写入到包含在受害者条带中的第一SSD 3300-1的闪速存储器存储区域3300-1B至第n SSD 3300-n的闪速存储器存储区域3300-nB的有效页复制到与有效页已经被写入到的第一SSD 3300-1至第n SSD 3300-n不同的SSD的NVRAM高速缓冲存储区域。
[0344] RAM 3200是易失性存储器,并且可以是DRAM或SRAM。RAM 3200可存储操作存储系统3000所需的信息或程序代码。
[0345] 因此,RAM 3200可存储映射表信息。映射表信息可包括将逻辑地址转换为物理地址的地址映射表和表示关于条带分组的信息的条带映射表。条带映射表可包括每一个条带的有效页比例信息。映射表信息可包括指示在NVRAM高速缓冲存储区域3300-1A至3300-nA中存储的孤立数据的存储位置信息的孤立映射表。
[0346] 例如,RAID控制器3100可从NVRAM高速缓冲存储区域3300-1A至3300-nA或者闪速存储器存储区域3300-1B至3300-nB读取映射表信息,并可将映射表信息加载到RAM 3200。RAID控制器3100可通过使用被加载到RAM 3200的映射表信息来在存储系统3000中的读取操作或写入操作期间执行地址转换。
[0347] RAID控制器3100基于日志结构RAID环境控制第一SSD 3300-1至第n SSD 3300-n。详细地说,当更新写入到闪速存储器存储区域3300-1B至3300-nB的数据时,RAID控制器
3100执行写入操作,使得以日志格式写入有数据的多个存储器块和存储关于该多个存储器块中存储的数据的奇偶校验信息的存储器块构成一个条带。
[0348] RAID控制器3100在条带映射表中注册构成条带的第一SD 3300-1的闪速存储器存储区域3300-1B至第n SD 3300-n的3300-nB的存储器块的位置信息。
[0349] RAID控制器3100可通过使用在RAM 3200中存储的映射表信息来执行地址转换或条带分组。RAID控制器3100通过使用映射表信息来选择用于垃圾收集的受害者条带。例如,RAID控制器3100可通过使用条带映射表来搜索多个条带中的具有最低有效页比例的条带作为受害者条带。
[0350] RAID控制器3100将构成在垃圾收集期间选择的受害者条带的第一SSD3300-1闪速存储器存储区域3300-1B至第n SSD 3300-n的闪速存储器存储区域3300-nB的存储器块中的有效页复制到NVRAM高速缓冲存储区域3300-1A至3300-nA中。RAID控制器3100通过使用NVRAM高速缓冲存储区域3300-1A至3300-nA来控制垃圾收集。
[0351] RAID控制器3100擦除包含在受害者条带中且存储奇偶校验信息的闪速存储器存储区域3300-1B至3300-nB的存储器块,将包含在受害者条带中的有效页复制到用于构成新的条带的闪速存储器存储区域3300-1B至3300-nB的存储器块,并且擦除已经存储被复制到用来构成新的条带的存储器块中的有效页的受害者条带的存储器块。
[0352] RAID控制器3100计算关于被复制到NVRAM高速缓冲存储区域3300-1A至3300-nA的数据的奇偶校验信息,并且将计算出的奇偶校验信息复制到用来构成新的条带的NVRAM高速缓冲存储区域3300-1A至3300-nA的存储器块。
[0353] RAID控制器3100在条带映射表中注册关于新的条带的结构的条带分组信息,该新的条带具有包含在受害者条带中的有效页已经被复制到其中的存储器块和奇偶校验信息已经被复制到其中的存储器块。RAID控制器3100从条带映射表删除关于受害者条带的条带分组信息。因此,受害者条带中包含的存储器块变成空闲块。空闲块表示没有存储数据的空的存储器块。
[0354] 在擦除包含在受害者条带中且已存储有奇偶校验信息的存储器块之后,在存储系统3100的垃圾收集操作期间,被写入到包含在受害者条带中的存储器块的有效页可不再受奇偶校验信息的保护。换句话说,即使第一SSD 3300-1的闪速存储器存储区域3300-1B至第n SSD 3300-n的闪速存储器存储区域3300-nB中的一些具有缺陷,被写入到具有缺陷的SSD的存储器块的有效页也可通过在NVRAM高速缓冲存储区域3300-1A至3300-nA中存储的数据被恢复。
[0355] 当在垃圾收集操作期间发生对于读取受害者条带中包含的页的请求时,RAID控制器3100从NVRAM高速缓冲存储区域3300-1A至3300-nA读取关于被请求读取的页的数据。RAID控制器3100可通过使用映射表信息从第一SSD 3300-1至第n SSD 3300-n中确定存储被请求的数据的NVRAM高速缓冲存储区域。
[0356] 例如,当在垃圾收集期间对读取包含在受害者条带中的页的请求从外部主机(未示出)发送到存储系统3000时,RAID控制器3100可从第一SSD3300-1至第n SSD 3300-n中确定存储与被请求读取的页对应的数据的NVRAM高速缓冲存储区域。例如,如果确定被请求读取的页存储在第二SSD3300-2的NVRAM高速缓冲存储区域3300-2A中,则RAID控制器3100可从第二SSD 3300-2的NVRAM高速缓冲存储区域3300-2A读取数据并将该数据发送到主机。
[0357] RAID控制器3100执行用于减少条带中包含的存储器块的有效页比例之间的不平衡的条带重建过程。例如,RAID控制器3100可通过使用存储器块共享技术、条带大小缩小技术、没有垃圾收集的条带交叉合并技术或具有垃圾收集的条带交叉合并技术来执行条带重建过程。RAID控制器3100可执行在图36至48中示出的条带重建方法和垃圾收集操作。
[0358] 图27是示出图26中所示的SSD 3300-1的详细结构的框图。
[0359] 参照图27,SSD 3300-1可包括存储器控制器3310和存储器装置3320。
[0360] 存储器控制器3310包括NVRAM高速缓冲存储区域3310-1。NVRAM高速缓冲存储区域3310-1可通过使用PRAM、FeRAM或MRAM来实施。作为另一示例,NVRAM高速缓冲存储区域
3310-1可根据通过使用电池或电容器对作为易失性存储器的DRAM或SRAM施加电力的方法来实施。
[0361] 存储器控制器3310可根据从主机接收到的命令来控制存储器装置3320。详细地说,存储器控制器3310可通过多个通道CH1至CHN将地址、命令和控制信号提供给存储器装置220,以控制对存储器装置3320的编程(或写入)操作、读取操作和擦除操作。
[0362] 存储器装置3320可包括至少一个闪速存储器芯片,即,闪速存储器芯片3321至322m。作为另一示例,存储器装置3320不仅可包括闪速存储器芯片,还可包括PRAM芯片、FRAM芯片、MRAM芯片等。存储器装置3320中的闪速存储器芯片3321至322m的存储区域是闪速存储器存储区域。
[0363] 存储器控制器3310基于从存储系统3000的RAID控制器3100接收到的命令来管理NVRAM高速缓冲存储区域3310-1。例如,存储器控制器3310可基于从RAID控制器3100接收到的命令来将在垃圾收集期间生成的孤立页的数据写入到NVRAM高速缓冲存储区域3310-1或者从NVRAM高速缓冲存储区域3310-1读取该数据。
[0364] 图28是示出作为图27中示出的存储器控制器3310的示例性实施例的存储器控制器3310A的框图。
[0365] 如图28所示,存储器控制器3310A包括处理器3311A、NVRAM 3312、主机接口3313、存储器接口3314和总线3315。存储器控制器3310A的组件通过总线3315相互电连接。
[0366] NVRAM 3312可包括在垃圾收集操作期间存储临时不受奇偶校验信息保护的数据的高速缓冲器。NVRAM 3312可存储在存储系统3000中使用的映射表信息。映射表信息包括将逻辑地址转换为物理地址的地址映射表和表示关于条带分组的信息的条带映射表。关于条带分组的信息可包括表示构成每一个条带的存储器块的信息。条带映射表可包括每一个条带的有效页比例信息。
[0367] 处理器3311A可通过使用在NVRAM 3312中存储的程序代码和数据来控制SSD 3300-1的整体操作。在SSD 3300-1被初始化时,处理器3311A从存储器装置3320读取用于控制由SSD 3300-1执行的操作所需的程序代码和数据,并且将读取的程序代码和数据加载到NVRAM 3312中。
[0368] 处理器3311A可通过使用在NVRAM 3312中存储的程序代码和数据来执行与从主机接收到的命令对应的控制操作。详细地说,处理器3311A可执行从主机接收到的写入命令或读取命令。处理器3311A可基于从主机接收到的命令控制SSD 3300-1根据垃圾收集操作执行页复制操作或存储器块擦除操作。
[0369] 主机接口3313包括用于与连接到存储器控制器3310A的主机交换数据的协议并将存储器控制器3310A与主机进行接口连接。主机接口3313可通过使用(但不限于)如下接口来实现:高级技术附件(ATA)接口、串行高级技术附件(SATA)接口、并行高级技术附件(PATA)接口、通用串行总线(USB)或串行连接小型计算机系统(SAS)接口、小型计算机系统接口(SCSI)、嵌入式多媒体卡(eMMC的)接口或者通用闪速存储(UFS)接口。主机接口3313可在处理器3311A的控制下从主机接收命令、地址和数据,或者可将数据发送到主机。
[0370] 存储器接口3314与存储器装置3320电连接。存储器接口3314可以在处理器3311A的控制下将命令、地址和数据发送到存储器装置3320,或者可以从存储器装置3320接收数据。存储器接口3314可被配置为支持NAND闪速存储器或NOR闪速存储器。存储器接口3314可被配置为通过多个通道执行软件或硬件交错操作。
[0371] 图29是示出作为图27中示出的存储器控制器3310的另一个示例性实施例的存储器控制器3310B的框图。
[0372] 如图29所示,存储器控制器3310B包括处理器3311B、NVRAM 3312、主机接口3313、存储器接口3314、总线3315和RAM 3316。存储器控制器3310B的组件通过总线3315而相互电连接。
[0373] 与图28的存储器控制器3310A不同,图23的存储器控制器3310B还包括RAM 3316。上面已经参照图28描述了主机接口3313和存储器接口3314,因此,这里将省略其详细描述。
[0374] RAM 3316是易失性存储器,并且可以是DRAM或SRAM。RAM 3316可存储操作存储系统3000所需的信息或程序代码。
[0375] 例如,RAM 3316可存储映射表信息。映射表信息可包括将逻辑地址转换为物理地址的地址映射表和表示关于条带分组的信息的条带映射表。条带映射表可包括每一个构建的条带的有效页比例信息。
[0376] NVRAM 3312可包括在垃圾收集操作期间存储临时不受奇偶校验信息保护的数据的高速缓冲存储器。
[0377] 例如,处理器3311B可从NVRAM 3312读取映射表信息,并可将映射表信息加载到RAM 3316中。例如,处理器3311B可从存储器装置3320读取映射表信息,并可将映射表信息加载到RAM 3316中。
[0378] 处理器3311B可通过使用在RAM 3316中存储的程序代码和数据来控制SSD 3300-1的整体操作。在SSD 3300-1被初始化时,处理器3311B从存储器装置3320或者NVRAM 3312读取用于控制由SSD 3300-1执行的操作所需的程序代码和数据,并且将读取的程序代码和数据加载到RAM 3316中。
[0379] 处理器3311B可通过使用在RAM 3316中存储的程序代码和数据来执行与从主机接收到的命令对应的控制操作。详细地说,处理器3311B可执行从主机接收到的写入命令或读取命令。处理器3311B可基于从主机接收到的命令控制SSD 3300-1以根据垃圾收集操作执行页复制操作或存储器块擦除操作。
[0380] 图30A至30E是示出图26的存储系统3000中的条带写入操作的概念图。
[0381] 图30A至30E示出通过使用五个SSD形成存储系统3000的示例。
[0382] 在发生写入请求时,处理器3311A或3311B将具有与一个存储器块对应的大小的初始收集的数据写入到第一SSD SSD1至第五SSD SSD5的闪速存储器存储区域NAND和NVRAM高速缓冲存储区域。例如,闪速存储器存储区域NAND和NVRAM高速缓冲存储区域被确定为属于不同的SSD。参照图30A,具有与一个存储器块对应的大小的初始收集的数据D1被写入到第一SSD SSD1的闪速存储器存储区域NAND和第五SSD SSD5的NVRAM高速缓冲存储区域。
[0383] 参照图30B,具有与一个存储器块对应的大小的第二次收集的数据D2被写入到第二SSD SSD2的闪速存储器存储区域NAND和第四SSD SSD4的NVRAM高速缓冲存储区域。
[0384] 参照图30C,具有与一个存储器块对应的大小的第三次收集的数据D3被写入到第三SSD SSD3的闪速存储器存储区域NAND和第二SSD SSD2的NVRAM高速缓冲存储区域。
[0385] 参照图30D,具有与一个存储器块对应的大小的第四次收集的数据D4被写入到第四SSD SSD4的闪速存储器存储区域NAND和第一SSD SSD1的NVRAM高速缓冲存储区域。
[0386] 接下来,处理器3311A或3311B计算在第一SSD SSD1至第五SSD SSD5的NVRAM高速缓冲存储区域中存储的数据D1至D4的奇偶校验信息,然后,将该奇偶校验信息写入在第五SSD SSD5的闪速存储器存储区域NAND中。此后,处理器3311A或3311B冲洗在NVRAM高速缓冲存储区域中存储的数据。在图30E中示出此过程之后获得的数据存储状态。
[0387] 图31是根据本公开的另一个示例性实施例的存储系统4000的框图。
[0388] 参照图31,存储系统4000可包括存储器控制器4100和存储器装置4200。参照图31,存储系统4000包括单个SSD。
[0389] 存储器装置4200可包括至少一个闪速存储器芯片,即,闪速存储器芯片4201至420m。又例如,存储器装置4200不仅可包括闪速存储器芯片,还可包括PRAM芯片、FRAM芯片、MRAM芯片等。
[0390] 存储器控制器4100存储RAID控制软件4100-1,并且NVRAM高速缓冲存储区域4100-2被分配给存储器控制器4100。
[0391] NVRAM高速缓冲存储区域4100-2可通过使用PRAM、FeRAM或MRAM来实施。作为另一示例,NVRAM高速缓冲存储区域4100-2可根据通过使用电池或电容器对作为易失性存储器的DRAM或SRAM施加电力的方法来实施。
[0392] 存储器控制器4100通过使用RAID控制软件4100-1来控制存储系统4000,以基于日志结构RAID环境按通道或通路的单位执行条带写入操作。
[0393] 存储器控制器4100可通过多个通道CH1至CHN将地址、命令和控制信号提供给存储器装置4200,以控制对存储器装置4200的编程(或写入)操作、读取操作和擦除操作。
[0394] 存储器控制器4100将包含在用于垃圾收集的受害者条带中的存储器装置4200的有效页复制到NVRAM高速缓冲存储区域4100-2中,并且通过使用被复制到NVRAM高速缓冲存储区域4100-2中的数据来控制垃圾收集操作。
[0395] 存储器控制器4100擦除受害者条带的存储奇偶校验信息的存储器块,将包含在受害者条带中的有效页复制到用来构成新的条带的存储器块中,并且擦除受害者条带的存储被复制到用来构成新的条带的存储器块中的有效页的存储器块。
[0396] 存储器控制器4100计算关于被复制到NVRAM高速缓冲存储区域4100-2的孤立数据的奇偶校验信息,并且将计算出的奇偶校验信息复制到用来构成新的条带的存储器块。
[0397] 存储器控制器4100在条带映射表中注册关于新的条带的结构的条带分组信息,该新的条带具有受害者条带中包含的有效页已经被复制到其中的存储器块和奇偶校验信息已经被复制到其中的存储器块。存储器控制器4100从条带映射表删除关于受害者条带的条带分组信息。因此,受害者条带中包含的存储器块变成空闲块。
[0398] 当在垃圾收集操作期间发生对读取受害者条带中包含的页的请求时,存储器控制器4100从NVRAM高速缓冲存储区域4100-2读取与被请求读取的页对应的数据。
[0399] 存储器控制器4100执行用于减少条带中包含的存储器块的有效页比例之间的不平衡的条带重建过程。例如,存储器控制器4100可通过使用存储器块共享技术、条带大小缩小技术、没有垃圾收集的条带交叉合并技术或具有垃圾收集的条带交叉合并技术来执行条带重建过程。存储器控制器4100可执行如图36至48所示的条带重建方法和垃圾收集操作。
[0400] 图32是示出作为图31中示出的存储器控制器4100的示例性实施例的存储器控制器4100A的框图。
[0401] 如图32所示,存储器控制器4100A包括处理器4110A、RAM 4120、NVRAM 4130A、主机接口4140、存储器接口4150和总线4160。存储器控制器4100A的组件通过总线4160而相互电连接。
[0402] 主机接口4140和存储器接口4150基本上与图28所示的主机接口3313和存储器接口3314相同,因此这里将省略其详细描述。
[0403] RAM 4120是易失性存储器,并且可以是DRAM或SRAM。RAM 4120可存储RAID控制软件4100-1和操作存储系统4000所需的系统数据。
[0404] 例如,RAM 4120可存储映射表信息。映射表信息可包括将逻辑地址转换为物理地址的地址映射表和表示关于条带分组的信息的条带映射表。条带映射表可包括每一个构建的条带的有效页比例信息。
[0405] NVRAM 4130A可包括在垃圾收集操作期间存储临时不受奇偶校验信息保护的数据的高速缓冲存储器。
[0406] 处理器4110A可通过使用在RAM 4120中存储的程序代码和数据来控制存储系统4000的整体操作。在存储系统4000被初始化时,处理器4110A从存储器装置4200或者NVRAM 
4130A读取用于控制由存储系统4000执行的操作所需的程序代码和数据,并且将读取的程序代码和数据加载到RAM 4120中。
[0407] 处理器4110A可通过使用在RAM 4120中存储的程序代码和数据来执行与从主机接收到的命令对应的控制操作。详细地说,处理器4110A可执行从主机接收到的写入命令或读取命令。处理器4110A可基于从主机接收到的命令控制存储系统4000以根据垃圾收集操作执行页复制操作。
[0408] 处理器4110A驱动RAM 4120的RAID控制软件4100-1,以执行用于减少条带中包含的存储器块的有效页比例之间的不平衡的条带重建过程。例如,处理器4110A可通过使用存储器块共享技术、条带大小缩小技术、没有垃圾收集的条带交叉合并技术或具有垃圾收集的条带交叉合并技术来执行条带重建过程。处理器4110A可执行在图36至48中示出的条带重建方法和垃圾收集操作。
[0409] 图33是示出作为图31中示出的存储器控制器4100的另一示例性实施例的存储器控制器4100B的框图。
[0410] 如图33所示,存储器控制器4100B包括处理器4110B、NVRAM 4130B、主机接口4140、存储器接口4150和总线4160。存储器控制器4100B的组件通过总线4160而相互电连接。
[0411] NVRAM 4130B可存储RAID控制软件4100-1和操作存储系统4000所需的系统数据。
[0412] NVRAM 4130B可包括在垃圾收集操作期间存储临时不受奇偶校验信息保护的数据的高速缓冲器。NVRAM 4130B可存储在存储系统4000中使用的映射表信息。映射表信息包括将逻辑地址转换为物理地址的地址映射表和表示关于条带分组的信息的条带映射表。关于条带分组的信息可包括表示构成每一个条带的存储器块的信息。条带映射表可包括每一个条带的有效页比例信息。
[0413] 处理器4110B可通过使用在NVRAM 4130B中存储的程序代码和数据来控制存储系统4000的整体操作。在存储系统4000被初始化时,处理器4110B从存储器装置4200读取用于控制由存储系统4000执行的操作所需的程序代码和数据,并且将读取的程序代码和数据加载到NVRAM 4130B中。
[0414] 处理器4110B可通过使用在NVRAM 4130B中存储的程序代码和数据来执行与从主机接收到的命令对应的控制操作。详细地说,处理器4110B可执行从主机接收到的写入命令或读取命令。处理器4110B可基于从主机接收到的命令控制存储系统4000以根据垃圾收集操作执行页复制操作。
[0415] 处理器4110B驱动NVRAM 4130B的RAID控制软件4100-1,以执行用于减少条带中包含的存储器块的有效页比例之间的不平衡的条带重建过程。例如,处理器4110B可通过使用存储器块共享技术、条带大小缩小技术、没有垃圾收集的条带交叉合并技术或具有垃圾收集的条带交叉合并技术来执行条带重建过程。处理器4110B可执行在图36至48中示出的条带重建方法和垃圾收集操作。
[0416] 图34示出图31的存储系统4000中的条带结构的示例。图34示出其中处理器4110A或4110B通过第一通道CH1至第四通道CH4中包含的闪速存储器芯片的存储器块来形成条带的示例。换句话说,第一通道CH1至第四通道CH4中分别包含的闪速存储器芯片的存储器块形成一个条带。
[0417] 图35示出图31的存储系统4000中的条带结构的另一个示例。
[0418] 图35示出处理器4110A或4110B通过使用第一通路WAY1至第四通路WAY4中包含的闪速存储器芯片的存储器块来形成条带的示例。换句话说,第一通路WAY1至第四通路WAY4中分别包含的闪速存储器芯片的存储器块形成一个条带。
[0419] 接下来,将参照图36至48来描述在包括图1至4、图26或图31中示出的示例性实施例的各种存储系统中执行的条带重建过程和垃圾收集操作。
[0420] 图36是根据本公开的示例性实施例的存储系统中的条带重建方法的流程图。
[0421] 首先,在操作S110中,存储系统从在条带映射表中注册的条带中搜索目标条带,其中,所述目标条带所包含的存储器块的有效页比例之间的不平衡超过初始设置的阈值。例如,这样的条带被设置为目标条带:包含在其中至少N个(其中,N是等于或大于1的整数)存储器块的有效页比例小于初始设定的第一阈值TH1并且剩余的存储器块的有效页比例大于初始设定的第二阈值TH2,该初始设定的第二阈值大于初始设定的第一阈值TH1。如果存在以上述方式选择的多个目标条带,则可基于从N值的降序、小于第一阈值TH1的有效页比例的升序和大于第二阈值TH2的有效页比例的降序中的至少一个来从多个选择的目标条带中选择单个条带。
[0422] 然后,在操作S120中,存储系统通过对目标条带中包含的存储器块进行重组来使得目标条带中包含的存储器块的有效页比例之间的不平衡被减少,来重建条带。例如,可通过使用存储器块共享技术、条带大小缩小技术、没有垃圾收集的条带交叉合并技术或具有垃圾收集的条带交叉合并技术来执行条带重建过程。
[0423] 首先,将描述通过使用如图37至40所示的存储器块共享技术来执行条带重建的示例性实施例。
[0424] 图37是作为图36的操作S120的示例的操作S120A的流程图。
[0425] 在操作S121A中,为了替换包含在目标条带中的存储器块中的具有低有效页比例的至少一个存储器块,存储系统从包含在另一个条带中的存储器块中选择具有高有效页比例的至少一个存储器块。例如,为了替换作为如图16A中形成的条带中的目标条带中的具有相对低有效页比例的目标存储器块的第三SSD 1300-3和第四SSD 1300-4的存储器块#4,存储系统可选择包含在另一个条带中且具有比第三SSD 1300-3和第四SSD 1300-4的存储器块#4高的有效页比例的第三SSD 1300-3和第四SSD 1300-4的存储器块#5。
[0426] 接下来,在操作S122A中,存储系统通过将包含在目标条带中的所述至少一个目标存储器块替换为从包含在另一个条带中的存储器块中选择的具有高有效页比例的至少一个存储器块,来产生新的条带。例如,如图16B所示,存储系统通过将目标条带中的具有相对低有效页比例的第三SSD 1300-3和第四SSD 1300-4的存储器块#4替换为另一个条带中的具有相对高有效页比例的第三SSD 1300-3和第四SSD 1300-4的存储器块#5,来产生新的条带。
[0427] 接下来,在操作S123A中,存储系统将关于该新的条带的奇偶校验信息写入到该新的条带中包含的存储器块。例如,如图16B所示,存储系统可将关于新的条带的奇偶校验信息写入到新的条带中包含的第N SSD 1300-N的存储器块#6。
[0428] 图38是作为图36的操作S120的另一个示例的操作S120A'的流程图。
[0429] 在操作S124A'中,在执行图37的操作S123A之后,存储系统将目标条带中被替换的至少一个目标存储器块所包含的有效页复制到非易失性高速缓冲存储器中。例如,非易失性高速缓冲存储器可以是图1至4的存储系统的NVRAM 1200或103。作为另一示例,图26和图31的NVRAM高速缓冲存储区域3300-1A和4100-2可用作非易失性高速缓冲存储器。例如,如图16A和16B所示,被替换的第三SSD 1300-3和第四SSD 1300-4的存储器块#4所包含的有效页可被复制到NVRAM 1200的孤立高速缓冲存储器1200-1中。
[0430] 接下来,在操作S125A'中,存储系统擦除已经存储有关于目标条带的奇偶校验信息的存储器块。例如,如图16A和16B所示,存储系统可擦除已经存储有关于目标条带的奇偶校验信息的第N SSD 1300-N的存储器块#4。
[0431] 图39是作为图36的操作S120的另一个示例的操作S120A”的流程图。
[0432] 在操作S124A”中,在执行图37的操作S123A之后,存储系统将目标条带中被替换的至少一个目标存储器块所包含的有效页复制到构成孤立条带的存储器块和非易失性高速缓冲存储器中。例如,非易失性高速缓冲存储器可以是图1至图4的存储系统的NVRAM 1200或103。作为另一示例,图26和31的NVRAM高速缓冲存储区域3300-1A和4100-2可用作非易失性高速缓冲存储器。例如,如图16A和16B所示,第三SSD 1300-3和第四SSD 1300-4的被替换的存储器块#4所包含的有效页可被复制到NVRAM 1200的孤立高速缓冲存储器1200-1和构成孤立条带的第三SSD 1300-3和第四SSD 1300-4的存储器块#M中。孤儿条带是指定为在垃圾收集期间有效页被复制到的条带。
[0433] 接下来,在操作S125A”中,存储系统擦除目标条带中被替换的所述至少一个目标存储器块和已存储有关于目标条带的奇偶校验信息的存储器块。例如,如图16A和16B所示,存储系统可擦除目标条带中的第三SSD 1300-3和第四SSD 1300-4的被替换的相应存储器块#4和第N SSD 1300-N的已存储有关于目标条带的奇偶校验信息的存储器块#4。
[0434] 图40是图36的操作S120的另一个示例的流程图。
[0435] 在操作S126中,在执行图37的操作S123A之后,存储系统更新条带映射表。详细地说,存储系统将关于新的条带的信息添加到条带映射表并从条带映射表删除关于目标条带的信息。
[0436] 接下来,将描述通过使用如图41和图42所示的条带大小缩小技术来执行条带重建的示例性实施例。
[0437] 图41是作为图36的操作S120的另一个示例的操作S120B的流程图。
[0438] 在操作S121B中,存储系统通过从作为不平衡条带的目标条带排除包含在目标条带中的存储器块中的具有低有效页比例的至少一个目标存储器块,来产生新的条带。例如,如图17A和图17B所示,在包括存储器块#4的目标条带中,第三SSD 1300-3的存储器块#4和第四SSD 1300-4的存储器块#4具有比第一SSD 1300-1的存储器块#4和第二SSD 1300-2的存储器块#4低的有效页比例。因此,第三SSD 1300-3的存储器块#4和第四SSD 1300-4的存储器块#4被选择为目标存储器块,并从目标条带被排除,从而产生新的条带。
[0439] 接下来,在操作S122B中,存储系统计算关于该新的条带的奇偶校验信息并将计算出的奇偶校验信息写入到该新的条带所包含的存储器块。例如,如图17A和图17B所示,存储系统计算关于包括第一SSD 1300-1和第二SSD1300-2的存储器块#4的新的条带的奇偶校验信息,并将计算出的奇偶校验信息写入到第N SSD 1300-N的存储器块#6。
[0440] 接下来,在操作S125B中,存储系统更新条带映射表。详细地说,存储系统将关于新的条带的信息添加到条带映射表并从条带映射表删除关于目标条带的信息。
[0441] 图42是作为图36的操作S120的另一个示例的操作S120B'的流程图。
[0442] 上面已经参照图41描述了操作S121B和S122B,因此,将省略其重复描述。在执行图37的操作S121B和S122B之后,在操作S123B中,存储系统将从目标条带排除的至少一个目标存储器块中包含的有效页复制到构成孤立条带的存储器块和非易失性高速缓冲存储器中。
例如,如图17A和17B所示,存储系统将从目标条带排除的第三SSD 1300-3和第四SSD 1300-
4的存储器块#4中包含的有效页复制到NVRAM 1200的孤立高速缓冲存储器1200-1,并分别复制到构成孤立条带的第三SSD 1300-3和第四SSD 1300-4的存储器块#M中。
[0443] 接下来,在操作S124B中,存储系统擦除从目标条带排除的所述至少一个目标存储器块和已存储关于目标条带的奇偶校验信息的存储器块。例如,如图17A和图17B所示,存储系统擦除从目标条带排除的第三SSD 1300-3和第四SSD 1300-4的存储器块#4和第N SSD 1300-N的存储关于目标条带的奇偶校验信息的存储器块#4。
[0444] 接下来,在操作S125B中,存储系统更新条带映射表。详细地说,存储系统将关于新的条带的信息添加到条带映射表并从条带映射表删除关于目标条带的信息。
[0445] 接下来,将描述通过使用如图43和图44所示的没有垃圾收集的条带交叉合并技术来执行条带重建的示例性实施例。
[0446] 图43是作为图36的操作S120的另一个示例的操作S120C的流程图。
[0447] 在操作S121C中,存储系统搜索另一目标条带,其中,所述另一目标条带中的具有相对低有效页比例的存储器块与作为不平衡条带的目标条带所包含的存储器块中的具有相对低有效页比例的存储器块不重叠。例如,如图18A所示,包括存储器块#4的条带被选择为第一目标条带。接下来,如下的不平衡条带被选择为第二目标条带,其中,在所述不平衡条带中的具有相对低有效页比例的存储器块与第一目标条带中包含的存储器块中的具有相对低有效页比例的存储器块不重叠。例如,如图18A所示,包括存储器块#5的条带被选择为第二目标条带。
[0448] 接下来,在操作S122C中,存储系统对构成第一目标条带和第二目标条带的存储器块进行重组,使得产生包括具有高有效页比例的存储器块的新的条带和包括具有低有效页比例的存储器块的另一新的条带。例如,如图18B所示,这两个新的条带可通过在第一目标条带和第二目标条带之间交换第三SSD 1300-3和第四SSD 1300-4的存储器块来被产生。换句话说,可产生包括具有高有效页比例的第一SSD 1300-1的存储器块#4、具有高有效页比例的第二SSD 1300-2的存储器块#4、具有高有效页比例的第三SSD 1300-3的存储器块#5和具有高有效页比例的第四SSD 1300-4的存储器块#5的新的条带,并且可产生包括具有低有效页比例的第一SSD 1300-1的存储器块#5、具有低有效页比例的第二SSD 1300-2的存储器块#5、具有低有效页比例的第三SSD1300-3的存储器块#4和具有低有效页比例的第四SSD 1300-4的存储器块#4的另一个新的条带。
[0449] 图44是作为图36的操作S120的另一个示例的操作S120C'的流程图。
[0450] 在操作S121C'中,存储系统搜索两个目标条带,在这两个目标条带之间具有相对低有效页比例的相应的存储器块相互不重叠。例如,如图18A所示,在有相对低有效页比例的相应的存储器块相互不重叠的两个不平衡条带被选择为两个目标条带。
[0451] 接下来,在操作S122C'中,存储系统通过在这两个目标条带之间交换存储器块,来产生包括具有高有效页比例的存储器块的新的条带和包括具有低有效页比例的存储器块的另一个新的条带。例如,如图18A和图18B所示,可产生包括具有高有效页比例的第一SSD 1300-1的存储器块#4、具有高有效页比例的第二SSD 1300-2的存储器块#4、具有高有效页比例的第三SSD1300-3的存储器块#5和具有高有效页比例的第四SSD 1300-4的存储器块#5的新的条带,并且可产生包括具有低有效页比例的第一SSD 1300-1的存储器块#5、具有低有效页比例的第二SSD 1300-2的存储器块#5、具有低有效页比例的第三SSD 1300-3的存储器块#4和具有低有效页比例的第四SSD 1300-4的存储器块#4的另一个新的条带。
[0452] 接下来,在操作S123C'中,存储系统计算关于两个新的条带中的每一个条带的奇偶校验信息,并将计算出的两个奇偶校验信息写入到这两个新的条带所包含的相应存储器块。例如,如图18B所示,关于这两个新条带的相应的奇偶校验信息被写入到第N SSD 1300-N的存储器块#6和#7。
[0453] 接下来,在操作S124C'中,存储系统擦除已存储有关于这两个目标条带的相应的奇偶校验信息的存储器块。例如,如图18B所示,擦除已存储有关于这两个目标条带的相应的奇偶校验信息的第N SSD 1300-N的存储器块#4和#5。
[0454] 接下来,在操作S125C'中,存储系统更新条带映射表。详细地说,存储系统将关于这两个新的条带的信息添加到条带映射表并从条带映射表删除关于这两个目标条带的信息。
[0455] 接下来,将描述通过使用如图45和46所示的具有垃圾收集的条带交叉合并技术来执行条带重建的示例性实施例。
[0456] 图45是作为图36的操作S120的另一个示例的操作S120D的流程图。
[0457] 在操作S121D中,存储系统搜索两个目标条带,其中,具有相对高有效页比例的相应的存储器块在这两个目标条带之间相互不重叠。例如,如图19A所示,具有相对高有效页比例的相应的存储器块相互不重叠的两个不平衡条带被选择为两个目标条带。
[0458] 接下来,在操作S122D中,存储系统通过在这两个目标条带之间交换存储器块,来产生包括具有高有效页比例的存储器块的新的条带。例如,如图19A和图19B所示,通过在作为不平衡条带的两个目标条带之间交换存储器块,来产生包括具有高有效页比例的第一SSD 1300-1的存储器块#4、具有高有效页比例的第二SSD 1300-2的存储器块#4、具有高有效页比例的第三SSD1300-3的存储器块#5和具有高有效页比例的第四SSD 1300-4的存储器块#5的新的条带。
[0459] 接下来,在操作S123D中,存储系统将包含在这样存储器块中的有效页复制到非易失性高速缓冲存储器中,其中,所述存储器块在这两个目标条带所包含的存储器块中但不包含在新的条带中。例如,如图19B所示,存储系统将包含在这两个目标条带中的存储器块中但不包含在新的条带中的第一SSD 1300-1的存储器块#5、第二SSD 1300-2的存储器块#5、第三SSD 1300-3的存储器块#4和第四SSD 1300-4的存储器块#4中包含的有效页复制到NVRAM 1200的孤立高速缓冲存储器1200-1中,其中,所述。
[0460] 图46是作为图36的操作S120的另一个示例的操作S120D'的流程图。
[0461] 在执行图45的操作S123D之后,在操作S124D中,存储系统将包含在这两个目标条带中的存储器块中的但不包含在新的条带中存储器块所包含的有效页复制到构成孤立条带的存储器块中。例如,如图19B所示,存储系统将包含在这两个目标条带中的存储器块中但不包含在新的条带中的第一SSD1300-1的存储器块#5、第二SSD 1300-2的存储器块#5、第三SSD 1300-3的存储器块#4和第四SSD 1300-4的存储器块#4中包含的有效页复制到构成孤立条带的第一SSD 1300-1至第四SSD 1300-4的存储器块#M中。
[0462] 接下来,在操作S125D中,存储系统擦除包含在两个目标条带中的存储器块中但不包含在新的条带中的存储器块和分别存储关于两个目标条带的奇偶校验信息的存储器块。例如,如图19B所示,存储系统擦除包含在两个目标条带中的存储器块中但不包含在新的条带中的第一SSD 1300-1的存储器块#5、第二SSD 1300-2的存储器块#5、第三SSD 1300-3的存储器块#4和第四SSD 1300-4的存储器块#4。
[0463] 接下来,在操作S126D中,存储系统更新条带映射表。详细地说,存储系统将关于单个新的条带的信息添加到条带映射表并从条带映射表删除关于这两个目标条带的信息。
[0464] 图47是根据本公开的示例性实施例的存储系统中的垃圾收集操作的流程图。
[0465] 首先,在操作S210中,存储系统从在条带映射表中注册的条带中搜索目标条带,其中,目标条带所包含的存储器块的有效页比例之间的不平衡超过初始设置的阈值。操作S210基本上与图36的操作S110相同,因此,将省略其重复描述。
[0466] 然后,在操作S220中,存储系统通过对目标条带中包含的存储器块进行重组使得目标条带中包含的存储器块的有效页比例之间的不平衡被减少,来重建条带。操作S220基本上与图36的操作S120相同,因此,将省略其重复描述。
[0467] 接下来,在操作S230中,存储系统针对包含在目标条带中的存储器块中的从条带重建排除的至少一个存储器块执行垃圾收集。例如,在使用存储器块共享技术、条带大小缩小技术、没有垃圾收集的条带交叉合并技术或具有垃圾收集的条带交叉合并技术正执行条带重建的同时,针对在目标条带所包含的存储器块中的从新的条带结构排除的存储器块执行垃圾收集。换句话说,在条带重建期间,执行垃圾收集,以将目标条带中包含的存储器块中的从新的条带结构排除的存储器块转换为空闲块。
[0468] 图48是图47的操作S230的流程图。
[0469] 在操作S231中,存储系统将从包含在条带结构排除的至少一个存储器块中的有效页复制到构成孤立条带的存储器块和非易失性高速缓冲存储器。例如,非易失性高速缓冲存储器可以是图1至4的存储系统的NVRAM 1200或103。作为另一示例,图26和31的NVRAM高速缓冲存储区域3300-1A和4100-2可用作非易失性高速缓冲存储器。孤儿条带是在垃圾收集期间被指定为有效页被复制到其中的条带。
[0470] 接下来,在操作S232中,存储系统擦除从条带结构排除的至少一个存储器块和关于已存储了目标条带的奇偶校验信息的存储器块。在此擦除操作完成之后,所述至少一个存储器块变成空闲块。
[0471] 同时,根本公开的存储系统可通过使用各种封装(例如,层叠封装(PoP)、球栅阵列(BGA)、芯片级封装(CSP)、塑料有引线芯片载体(PLCC)、塑料双列直插式封装(PDIP)、裸片格栅封装(Die in Waffle Pack)、裸片级晶片形式(Die in Wafer Form)、板上芯片(COB)、陶瓷双列直插式封装(CERDIP)、塑料方形扁平封装(公制)(MQFP)、薄型方形扁平封装(TQFP)、小外形集成电路(SOIC)、窄间距小外形封装(SSOP)、薄型小外形封装(TSOP)、系统级封装(SIP)、多芯片封装(MCP)、晶片级制造封装(WFP)或晶片级加工的堆叠封装(WSP))来安装。
[0472] 虽然已参考本公开的示例性实施例具体地示出并描述了本公开,但是将会理解,在不脱离下述权利要求的精神和范围的情况下,可在本文中进行各种形式和细节上的改变。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈