用于在闪速存储器装置之间迁移数据的方法和系统的制作方法_5

文档序号:9872426阅读:来源:国知局
闪速存储器装置的块的阈值数已经故障之后,检测关于各个闪速存储器装置的预定的触发条件。
[0097]在一些实施例中,检测的预定的触发条件是(810)—组预定的触发条件中的一个。例如,如上所述,预定的触发条件的组包括:贮存控制器120从各个闪速存储器装置接收延迟的误差;贮存控制器120从各个闪速存储器装置接收主动式误差;以及贮存控制器120确定用于各个闪速存储器装置的块的阈值数已经故障。其中延迟的或主动式误差由贮存控制器120接收,多个闪速存储器装置的每一个保持指示用于各个闪速存储器装置的故障的闪速存储器块的数量的计数器。其中贮存控制器120确定用于各个闪速存储器装置的块的阈值数已经故障,贮存控制器120保持指示用于多个闪速存储器装置的各个闪速存储器装置的故障的闪速存储器块的数量的多个闪速存储器装置的每一个的计数器。
[0098]在一些实施例中,贮存控制器在将存储器访问请求引导到各个闪速存储器装置之后检测(812)预定的触发条件。在图5中,例如,贮存控制器120或其组件(例如,触发条件检测模块222,图2A)响应于接收延迟的误差并且在步骤506处在将存储器访问请求引导到各个闪速存储器装置之后,检测关于各个闪速存储器装置的预定的触发条件。
[0099]在一些实施例中,预定的触发条件指示(814)用于各个闪速存储器装置的故障的闪速存储器块的计数器超过阈值数的整数倍数,该阈值数包括被包含在逻辑组块中的闪速存储器块的数量或包含在逻辑组块中的闪速存储器块的数量的整数倍数。在图5中,例如,贮存控制器120从各个闪速存储器装置接收延迟的误差,其指示用于各个闪速存储器装置的故障的闪速存储器块的计数器超过阈值数的整数倍数。在图6中,例如,贮存控制器120从各个闪速存储器装置接收主动式误差,其指示用于各个闪速存储器装置的故障的闪速存储器块的计数器超过阈值数的整数倍数。在图7中,例如,贮存控制器120确定用于各个闪速存储器装置的故障的闪速存储器块的计数器超过阈值数的整数倍数。例如,如果逻辑组块包括10个闪速存储器块,阈值数是1或者1的整数倍数(例如,20、30、40、50等)。例如,当阈值数为10时,预定的触发条件指示用于各个闪速存储器装置的故障的闪速存储器块的计数器超过10或者10的整数倍数(例如,20、30、40、50等)。
[0100]在一些实施例中,响应于检测到(816)预定的触发条件,贮存控制器询问(818)各个闪速存储器装置以确定各个闪速存储器装置的尺寸是否小于各个闪速存储器装置的之前尺寸,并且根据询问指示各个闪速存储器装置的尺寸小于各个闪速存储器装置的之前尺寸的确定而进行选择和贮存。在图5中,例如,贮存控制器120或其组件(例如,触发条件检测模块222,图2A)当从各个存储器装置接收延迟的触发时,检测关于各个闪速存储器装置的预定的触发条件。在图5中,例如,响应于检测关于各个闪速存储器装置的预定的触发条件,贮存控制器120或其组件在步骤510处询问各个闪速存储器装置。在图5中,例如示出了,当在步骤514处确定装置的当前宣传的尺寸小于装置的之前宣传的尺寸时,贮存控制器120或其组件在步骤516处启动迀移过程(包括选择和贮存)。
[0101]响应于检测(816)预定的触发条件,贮存控制器根据预定的选择准则选择(820)各个闪速存储器装置的多个逻辑组块中的一个以用于迀移。在图3B中,例如,响应于检测关于原来的装置I的预定的触发条件,贮存控制器120或其组件(例如,选择模块226,图2A)选择逻辑组块Ia以用于迀移。在图4C中,例如,响应于检测关于原来的装置3的预定的触发条件,贮存控制器120或其组件(例如,选择模块226,图2A)选择逻辑组块3c以用于迀移。例如,贮存控制器120或其组件(例如,选择模块226,图2A)伪随机地或根据预定的选择准则选择逻辑组块Ia和3c。
[0102]在一些实施例中,预定的选择准则包括(822)各个闪速存储器装置的最少使用的逻辑组块或最少填充的逻辑组块。例如,响应于检测关于各个闪速存储器装置的预定的触发条件,贮存控制器120或其组件(例如,选择模块226,图2A)选择各个闪速存储器装置的最少使用的(例如,最少在其上操作的)或最少填充的逻辑组块以便于减少迀移过程所需要的时间和资源。
[0103]在一些实施例中,预定的选择准则包括(824)与存储器访问请求相关联的逻辑组块。例如,响应于检测关于各个闪速存储器装置的预定的触发条件,贮存控制器120或其组件(例如,选择模块226,图2A)选择与当前的或下一个存储器访问请求(例如,读取或写入操作)相关联的逻辑组块。
[0104]在一些实施例中,预定的选择准则包括对贮存控制器120在该时间取回来说是简单或有效的逻辑组块。例如,当贮存控制器120在逻辑组块上进行与方法800(例如,垃圾收集或误差擦除)无关的其它任务时,在无关的任务完成之前或者之后选择所述逻辑组块。
[0105]响应于检测(816)预定的触发条件,贮存控制器在不同于各个闪速存储器装置的第二闪速存储器装置处贮存(826)包括选择的逻辑组块的副本的复制的逻辑组块。在图3B中,例如,贮存控制器120或其组件(例如,贮存模块228,图2A)在备用装置5处贮存包括逻辑组块Ia的副本的复制的逻辑组块la,其中备用装置5不同于原来的装置I。在图4C中,例如,贮存控制器120或其组件(例如,贮存模块228,图2A)在备用装置5处贮存包括逻辑组块3c的副本的复制的逻辑组块3c,其中备用装置5不同于原来的装置3。在一些实施例中,选择的组块贮存在与之前贮存的不同类型的存储器介质中。例如,选择的逻辑组块从闪速存储器迀移到HDD或反之亦然。
[0106]在一些实施例中,贮存控制器120或其组件(例如,迀移模块224,图2A)进行迀移过程包括,选择(820)、贮存(826)和重新映射(832)。在一些实施例中,选择的逻辑组块的迀移包括贮存(826)和重新映射(832)。在一些实施例中,在迀移过程完成之后,贮存控制器120或其组件通知原来的装置选择的逻辑组块现在被清空(例如,经由用于标准SSD的TRIM或UNMAP 命令)。
[0107]在一些实施例中,第二闪速存储器装置在(828)与各个闪速存储器装置不同的故障域中。在一些实施例中,贮存介质130包括企业贮存环境。企业贮存环境被组织为层级,包括多个行,每行多个柜(cabinet),每个柜多个架(shelf),并且每个架多个闪速存储器装置。在一些实施例中,层级的每一级(即,行、柜、架、闪速存储器装置)被认为是一故障域。在一些实施例中,贮存控制器120或其组件(例如,贮存模块228,图2A)在与包括各个闪速存储器装置的故障域不同的故障域中贮存复制的逻辑组块。在一些实施例中,当贮存复制的逻辑组块时,必须跨至少预定的数量的故障域。例如,如果各个闪速存储器装置位于行1、柜2、架3并且复制的逻辑组块必须跨一个故障域,则复制的闪速存储器装置至少贮存在行1、柜2中的不同的架中。
[0108]在一些实施例中,响应于检测到(816)预定的触发条件,贮存控制器在各个闪速存储器装置的至少一个逻辑组块中、以比在各个闪速存储器装置的至少一个逻辑组块中的数据的之前的编码更高水平的误差校正保护重新编码(830)数据。在一些实施例中,贮存控制器120或其组件(例如,重新编码模块230,图2A)被配置为在检测到关于各个闪速存储器装置的预定的触发条件之后,在各个闪速存储器装置的多个逻辑组块中的一个中重新编码数据。作为一个示例,对于各个逻辑组块包含了更多的校验位(即,增加了校验-数据的比率)。作为另外的示例,更强的ECC方案被用于各个逻辑组块。例如,贮存在各个逻辑组块中的数据被从Bose-Chaudhur1-Hocquenghem(BCH)编码到到低密度奇偶校验码(LDPC)编码重新编码。
[0109]响应于检测(816)预定的触发条件,贮存控制器将选择的逻辑组块的地址重新映射(832)到复制的逻辑组块的物理位置。在一些实施例中,贮存控制器120或其组件(例如,映射模块218,图2A)被配置为更新逻辑到物理的映射220使得选择的逻辑组块的物理地址(例如,各个闪速存储器装置处的位置)由复制的逻辑组块的物理地址(例如,不同于各个闪速存储器装置的第二装置的位置)替代。换句话说,与复制的逻辑组块相关联的逻辑地址(或逻辑地址的组)和与选择的逻辑组块相关联的逻辑地址(或逻辑地址的组)相同,但是与选择的逻辑组块相关联的物理地址(或物理地址的组)由于复制的逻辑组块相关联的物理地址(或物理地址的组)替代。在图3C中,例如,在将包括逻辑组块2e的副本的复制的逻辑组块2e贮存在备用装置5处之后,映射模块218在逻辑到物理的映射220中将与逻辑组块2e相关联的物理地址从在原来的装置2处的第五位置(或物理地址的第五范围)重新映射到在备用装置5处的第五位置(或物理地址的第五范围)。
[0110]贮存控制器降低(834)与各个闪速存储器装置相关联的逻辑组块的数量。在一些实施例中,贮存控制器120或其组件(例如,逻辑组块管理模块212,图2A)被配置为,在将选择的逻辑组块从各个闪速存储器装置迀移到不同于各个闪速存储器装置的第二闪速存储器装置之后,降低与各个闪速存储器装置相关联的逻辑组块的数量。在图3B中,例如,在检测到关于原来的装置I的预定的触发条件并且将逻辑组块Ia迀移到备用装置5之后,逻辑组块管理模块212将与原来的装置I相关联的逻辑组块的数量从六降低到五(例如,由划掉逻辑组块Ia所指示)。
[0111]在一些实施例中,逻辑组块被分配(836)以用于贮存数据并且被组织为多个冗余组,每个冗余组包括一个或多个逻辑组块并且贮存足以使能恢复贮存在一个或多个逻辑组块的至少一个中的数据的冗余的数据。例如,数据包括程序、指令、ECC、元数据、用户数据、系统数据和/或运算符数据。在将多个闪速存储器装置分割为多个逻辑组块之后(或者以此同时),贮存控制器120或其组件(例如,冗余模块214,图2A)被配置为将多个逻辑组块布置为冗余组,其中每个冗余组包括一个或多个逻辑组块。在一些实施例中,每个冗余组贮存足以使能恢复贮存在一个或多个逻辑组块的至少一个中的数据的冗余的数据。在图3A中,例如,代表性冗余组310(包括逻辑组块la、2a、3a、4a)在四个原来的装置(例如,连续的RAID条带)之上被冗余地编码。类似地,在图3A中,代表性冗余组320(包括逻辑组块le、2e、3e、4e)在四个原来的装置(例如,连续的RAID条带)之上被冗余地编码。在图4A中-4B,例如,冗余组1(包括逻辑组块la、2a、3a、4a)在四个原来的装置(例如,连续的RAID条带)之上被冗余地编码。
[0112]在一些实施例中,复制的逻辑组块被包括(838)在之前包括选择的逻辑组块的多个冗余组的各个冗余组中。在一些实施例中,复制的组块被包括在与选择的组块相同的连续的条带中。在图3B中,例如,复制的逻辑组块Ia被包括在代表性冗余组310中,该代表性冗余组310之前包括逻辑组块Ia。在一些实施例中,复制的组块经由间接表被包括在相同的冗余组中。在图4C中-4D,例如,复制的逻辑组块4b (例如,对应于坐标5,3)被包括在冗余组2中,该冗余组2之前包括逻辑组块4b。
[0113]在一些实施例中,多个冗余组的各个冗余组是(840)多个闪速存储器装置之上的连续的条带,并且在与各个闪速存储器装置不同的第二闪速存储器装置处,复制的逻辑组块被贮存在与选择的逻辑组块相同的连续的条带中。在一些实施例中,复制的逻辑组块被分配到与选择的逻辑组块相同的冗余组。在一些实施例中,复制的逻辑组块贮存在冗余组中不包括其它逻辑组块的备用装置,并且复制的逻辑组块被贮存使得其在与冗余组中的其它逻辑组块相同的连续的条带中。在图3A中,例如,代表性冗余组310(包括逻辑组块la、2a、3a、4a)在四个原来的装置之上被冗余地编码以形成连续的条带。在图3B中,例如,包括逻辑组块Ia的副本的复制的逻辑组块Ia被贮存在备
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1