1.本技术涉及存储
技术领域
:
:,尤其涉及一种
闪存存储器管理方法、系统及闪存存储器。
背景技术
:
::2.闪存存储器(flashmemory)是一种常用的非挥发性存储介质,广泛应用于存储卡、固态硬盘及各种电子设备。闪存存储器在使用的过程中,会对其内的闪存介质进行擦写,而闪存介质本身存在一定的缺陷,随着擦写次数的增加,闪存介质内的部分
单元可能会失效,进而导致闪存介质出现读写错误。3.目前,为避免闪存介质出现读写错误,常采用的做法是将闪存介质内的失效单元标记为坏块并不再使用。然而,该方式会导致失效单元内的数据存在丢失的风险。技术实现要素:4.有鉴于此,有必要提供一种闪存存储器管理方法、系统及闪存存储器。本技术提供的闪存存储器管理方法能够获取编程单元的预设编程参数与实际编程参数,若实际编程参数大于预设编程参数,则进一步获取编程单元的故障位计数是否高于第一阈值。若故障位计数高于第一阈值,则表示该编程单元可能存在异常。因此,可对编程单元内的数据进行迁移,例如将数据迁移至新的编程单元内,以降低编程单元内数据丢失的风险。5.第一方面,本技术提供一种闪存存储器管理方法,应用于闪存存储器。其中,闪存存储器包括至少一个编程单元,该闪存管理方法包括:获取编程单元的预设编程参数及实际编程参数,并比较编程参数及实际编程参数的大小;当实际编程参数大于预设编程参数时,进一步获取编程单元的故障位计数;当故障位计数大于第一阈值时,对编程单元内存储的数据进行迁移。6.在一种可能的实现方式中,预设编程参数为预设编程时间,实际编程参数为实际编程时间。7.在一种可能的实现方式中,获取编程单元的预设编程参数包括:获取编程单元的最大编程循环数及每个编程循环的时间;根据最大编程循环数及编程循环的时间获取预设编程时间。8.在一种可能的实现方式中,获取编程单元的实际编程参数,包括:获取编程单元的实际编程循环数及每个编程循环的时间;根据实际编程循环数及每个编程循环的时间获取实际编程时间。9.在一种可能的实现方式中,预设编程参数为编程单元的最大编程循环数,实际编程参数为编程单元的实际编程循环数。10.在一种可能的实现方式中,当故障位计数小于或等于第一阈值时,闪存存储器管理方法还包括:将编程单元新增至巡检样本;对巡检样本内的编程单元进行巡检,以判断故障位计数是否大于第二阈值。11.在一种可能的实现方式中,当判断故障位计数大于第二阈值时,闪存存储器管理方法还包括:对编程单元内存储的数据进行迁移。12.在一种可能的实现方式中,当故障位计数大于第一阈值时,闪存存储器管理方法还包括:判断编程单元是否为坏块;当编程单元不为坏块时,将编程单元新增至
所述巡检样本。13.第二方面,本技术提供一种闪存存储器管理系统,应用于闪存存储器。其中,闪存存储器包括至少一个编程单元,闪存管理系统包括:第一信息获取模块,第一信息获取模块用于获取编程单元的预设编程参数;第二信息获取模块,第二信息获取模块用于获取编程单元的实际编程参数;第三信息获取模块,第三信息获取模块用于当实际编程参数大于预设编程参数时,获取编程单元的故障位计数;数据迁移模块,数据迁移模块用于当故障位计数大于第一阈值时,将编程单元内存储的数据迁移至新的编程单元。14.第三方面,本技术提供一种闪存存储器,闪存存储器包括闪存介质及闪存控制器;闪存介质包括至少一个编程单元;闪存控制器用于执行如第一方面的闪存存储器管理方法。15.本技术提供的闪存存储器管理方法、系统及闪存存储器,能够在编程单元存在异常的风险时,将编程单元内的数据进行迁移,以有效降低编程单元内数据丢失的风险。附图说明16.图1为本技术一实施方式提供的闪存存储器的模块示意图。17.图2为本技术一实施方式提供的闪存存储器管理系统的模块示意图。18.图3为本技术一实施方式提供的闪存存储器管理方法的流程示意图。19.图4为本技术另一实施方式提供的闪存存储器管理方法的流程示意图。20.主要元件符号说明21.闪存存储器ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ1022.闪存控制器ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ10023.闪存介质ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ20024.闪存片ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ21025.闪存块ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ22026.串ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ23027.字线ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ24028.编程单元ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ25029.闪存存储器管理系统ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ2030.第一信息获取模块ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ30031.第二信息获取模块ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ40032.第三信息获取模块ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ50033.数据迁移模块ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ600具体实施方式34.下面将结合本技术实施方式中的附图,对本技术实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本技术一部分实施方式,而不是全部的实施方式。35.需要说明的是,本技术实施例中“至少一个”是指一个或者多个,多个是指两个或两个以上。除非另有定义,本文所使用的所有的技术和科学术语与属于本技术中的
技术领域
:
:的技术人员通常理解的含义相同。本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。36.需要说明的是,本技术实施例中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本技术实施例的描述中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。37.基于本技术中的实施方式,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施方式,都是属于本技术保护的范围。38.闪存存储器(flashmemory)是一种常用的非挥发性存储介质,广泛应用于存储卡、固态硬盘及各种电子设备。闪存存储器在使用的过程中,会对其内的闪存介质进行擦写,而闪存介质本身存在一定的缺陷,随着擦写次数的增加,闪存介质内的部分单元可能会失效,进而导致闪存介质出现读写错误。39.目前,为避免闪存介质出现读写错误,常采用的做法是将闪存介质内的失效单元标记为坏块并不再使用。然而,该方式会导致失效单元内的数据存在丢失的风险。40.本技术提供一种闪存存储器管理方法、闪存存储器管理系统及闪存存储器,能够获取编程单元的预设编程参数与实际编程参数,若实际编程参数大于预设编程参数,则进一步获取编程单元的故障位计数是否高于第一阈值。若故障位计数高于第一阈值,则表示该编程单元可能存在异常。因此,可对编程单元内的数据进行迁移,例如将数据迁移至新的编程单元内,以降低编程单元内数据丢失的风险。41.图1是本技术一实施例提供的闪存存储器10的模块示意图。42.如图1所示,闪存存储器10至少包括闪存控制器100及闪存介质200。在本实施例中,闪存介质200可以是与非型闪存(nandflash)或者是或非型闪存(norflash),本技术对此不做限制。43.闪存介质200包括至少一个闪存片(plane)210。闪存片210包括至少一个闪存块(block)220。闪存块220包括至少一个串(string)230。串230包括至少一个字线(wordline,wl)240。44.在本实施例中,闪存介质200可以被划分为多个闪存片210,每个闪存片210又可以被划分为不同的闪存块220。每个闪存块220内可以划分出不同的串230,串230以下可以继续划分为不同的字线240。其中,字线240为闪存存储器10在进行编程操作时的最小单元。可以理解,编程单元250是一种闪存介质200中用于执行编程操作的单元,因此编程单元250包括至少一个字线240。可以理解,图1中示出的编程单元250包括一个字线240。在一些实施例中,编程单元250还可以包括多个字线240或者一个串230或多个串230,本技术对此不做限制。45.在本实施例中,闪存控制器100用于获取编程单元250的预设编程参数及实际编程参数。46.在一些实施例中,预设编程参数为预设编程时间,实际编程参数包括实际编程时间。可以理解,闪存存储器10主要执行三种基本操作:读取操作(read)、编程操作(program)、擦除操作(erase)。其中,读取操作及擦除操作的时间较为固定,因此可以通过检测编程操作的时间来预测编程单元250是否存在异常。47.具体地,随着闪存介质200擦写次数的增加,闪存介质200内的遂穿氧化层会因受到反复电压压力而导致遂穿氧化层中的缺陷逐渐增多,使得电子更容易通过遂穿氧化层中的缺陷进入电荷陷阱层(chargetraplayer),进而导致编程时间降低。而随着闪存介质200擦写次数的进一步增加,不同的字线240之间可能存在漏电,在漏电发生的初期可能只是微小的漏电,不会立刻发生编程失败,但是由于字线240上存在漏电,会导致字线240上的编程电压降低,进而降低编程速度。因此,编程单元250的编程时间可能会异常增加,但是此时的编程仍可以正常进行。可以理解,当实际编程时间增加,并超过初始编程时间时,说明编程单元250可能出现异常。即可通过获取预设编程时间和实际编程时间来预测编程单元250是否存在异常的风险。48.在本技术实施例中,预设编程时间可以是对闪存介质200进行出厂测试时获取到的编程单元250的最大编程时间(programlatencymaxvalue)。可以理解,相同批次的闪存介质200通常具有相同或相似的特性。因此,在对一个批次生产的闪存介质200进行抽样测试后,可以将编程单元250的最大编程时间存储至每个该批次闪存介质200的闪存控制器100中,以供后续的调取使用。49.在本技术实施例中,闪存控制器100还可以通过闪存存储器10内的固件(firmwork,fw)获取编程单元250的实际编程时间。实际编程时间即编程单元250在编程时实际消耗的时间。50.在本技术实施例中,闪存控制器100还用于比较实际编程时间与预设编程时间的大小。当实际编程时间大于预设编程时间时,闪存控制器100还用于获取编程单元250的故障位计数(fbc),并比较故障位计数和第一阈值,以判断故障位计数是否大于第一阈值。当故障位计数大于第一阈值时,闪存控制器100还用于对编程单元250内存储的数据进行。例如,将编程单元250中的数据迁移至新的编程单元。51.可以理解,在本技术实施例中,故障位计数为编程单元250存在的故障位的个数。当故障位计数高于一定值时,例如第一阈值时,则表示编程单元250存在较高的数据损坏风险。52.在本技术实施例中,第一阈值可以根据编程单元250包括的比特位数多少进行设置。可以理解,编程单元包含的比特位数越多,第一阈值可以设置的数值越大。53.可以理解,在本技术实施例中,闪存存储器10内还可以设置缓存。当闪存控制器100对编程单元250内的数据进行迁移时,可以先将编程单元250内的全部数据存储在缓存中,再将缓存中的数据存储至新的编程单元中。54.可以理解,在本技术实施例中,预设编程时间可通过以下方式获得:55.闪存控制器100获取每个编程循环的时间,根据每个编程循环的时间以及编程单元250的最大编程循环数获取编程单元250的预设编程时间。56.实际编程时间可通过以下方式获得:57.闪存控制器100根据每个编程循环的时间以及编程单元250的实际编程循环数获取编程单元250的实际编程时间。58.可以理解,在本技术其他实施例中,预设编程参数还可以为编程单元250的最大编程循环数,实际编程参数为编程单元250的实际编程循环数。对应地,闪存控制器100可通过获取编程单元250的最大编程循环数及实际编程循环数,并当最大编程循环数大于实际编程循环数时,获取编程单元250的故障位计数。另外,当故障位计数大于第一阈值时,闪存控制器100用于对编程单元250内存储的数据进行迁移。显然,当预设编程参数为编程单元250的最大编程循环数,实际编程参数为编程单元250的实际编程循环数时,闪存控制器100的工作原理与预设编程参数为编程单元250的最大编程循环数,实际编程参数为编程单元250的实际编程循环数类似,在此不再赘述。59.在本实施例中,闪存控制器100用于获取编程单元250的最大编程循环数。可以理解,闪存介质200通常会存在一个理论最大编程循环数,在实际生产的过程中,为避免出现编程信息过载而导致的编程失败,会适当调低理论最大编程循环数,以获取实际最大循环数,并将闪存介质200的最大编程循环数设置为实际最大循环数。可以理解,本技术中的最大编程循环数为实际最大编程循环数。60.在本实施例中,闪存控制器100用于比较实际编程循环数与最大编程循环数,并当实际编程循环数大于最大编程循环数时,获取编程单元250的故障位计数。可以理解,随着闪存存储器10的擦写次数增加,实际编程循环数会相应的减少,并在闪存存储器10的擦写次数增加至一定值后,开始增加。因此当实际编程循环数超过最大编程循环数时,则表示编程单元250存在数据损坏的风险。61.在另一些实施例中,闪存控制器100还可以通过直接读取闪存存储器10内的固件中的数据来直接获取编程单元250的预设编程时间及实际编程时间。62.可以理解,在本技术实施例中,闪存控制器100还用于当编程单元250的故障位计数小于或等于第一阈值时,将编程单元250新增至巡检样本。接着,闪存控制器100还用于对巡检样本内的编程单元250进行巡检,以判断故障位计数是否大于第二阈值。当故障位计数大于第二阈值时,闪存控制器100用于将编程单元250内存储的数据进行迁移,例如迁移至新的编程单元。63.可以理解,当编程单元250的故障位计数小于或等于第一阈值时,说明此时编程单元250虽然可以进行编程操作,但是存在数据损坏风险。因此,通过将暂未出现异常的编程单元250新增至巡检样本,并定期进行巡检,可有效避免异常的编程单元250的数据丢失,提高编程单元250中数据的可靠性。64.可以理解,巡检是行业内为解决长期存储的数据有可能引起不可纠正的错误纠正码(uncorrectableerrorcorrectioncode,uecc)的问题而常用的处理方法。具体地,在本技术实施例中,巡检是指闪存控制器100将按照一定的顺序,依次读取巡检样本中一定数量的编程单元250中的故障位计数,并设定一个预设的故障位计数(faultbitcount,fbc)阈值,即第二阈值。闪存控制器100在读取故障位计数时,发现超过第二阈值的编程单元250后,将故障位计数超过第二阈值的编程单元250数据进行迁移,例如写入到新的编程单元250中。65.在另一些实施例中,闪存控制器100还用于当编程单元250的故障位计数大于第一阈值时,判断编程单元250是否为坏块。闪存控制器100还用于当编程单元250不为坏块时,将编程单元250新增至巡检样本。具体地,当编程单元250的故障位计数大于第一阈值时,闪存控制器100还可以判断编程单元250是否为坏块。可以理解,闪存控制器100可以将闪存介质200内的失效的闪存块220标记为坏块并不再使用。即,闪存控制器100标记坏块的最小单位为闪存块220,因此即使编程单元250的故障位计数大于第一阈值,仍可能存在因闪存块220未被标记为坏块,而使编程单元250继续应用于编程操作的情况。将不为坏块,且故障位计数大于第一阈值的编程单元250加入巡检样本,以便及时的对故障位计数大于第一阈值的编程单元250进行监控,避免数据丢失。66.在本实施例中,第二阈值大于第一阈值。可以理解,当编程单元250出现实际编程参数增加且超过初始编程参数时,此时为了避免编程单元250内的数据丢失,可以将第一阈值设置为一个较小的值,而在对编程单元250进行巡检时,此时的实际编程时间可能是正常的,因此可以将第二阈值设置为一个大于第一阈值的数值,以避免频繁对编程单元250进行数据迁移而影响编程效率,提高编程单元250编程效率。67.可以理解,本技术提供的闪存存储器10能够获取编程单元250可能存在异常的风险,并在编程单元250存在异常时,将该编程单元250内的数据迁移至新的编程单元250内进行处理,以降低编程单元250内数据丢失的风险。本技术提供的闪存存储器10还可以将可能存在异常风险的编程单元250添加至巡检样本,并根据巡检样本对闪存存储器10进行巡检,并在巡检时检测到编程单元250的故障位计数超过第二阈值时,将数据写入到新的编程单元250中。68.请一并参阅图2,图2是本技术一实施方式提供的闪存存储器管理系统20的模块示意图。闪存存储器管理系统20可以应用于图1所示的闪存存储器10,具体地,闪存存储器管理系统20可以是存储在闪存存储器10内的固件中的软件系统。如图2所示,闪存存储器管理系统20至少包括第一信息获取模块300、第二信息获取模块400、第三信息获取模块500及数据迁移模块600。69.在本实施例中,第一信息获取模块300用于获取编程单元250的预设编程参数,其中,预设编程参数包括预设编程时间及最大编程循环数,具体请一并参阅图1及其相应描述,在此不再赘述。70.在本实施例中,第二信息获取模块400用于获取编程单元250的实际编程参数,其中,实际编程参数包括实际编程时间及实际编程循环数,具体请一并参阅图1及其相应描述,在此不再赘述。71.在本实施例中,第三信息获取模块500用于获取编程单元250的故障位计数,具体请一并参阅图1及其相应描述,在此不再赘述。72.在本实施例中,数据迁移模块600用于当故障位计数大于第一阈值时,对编程单元250内存储的数据进行迁移,具体请一并参阅图1及其相应描述,在此不再赘述。73.请一并参阅图3,图3是本技术一实施方式提供的闪存存储器管理方法的流程示意图。可以理解,图3所示的闪存存储器管理方法可以应用于如图1所示的闪存存储器10。如图3所示,闪存存储器管理方法至少包括以下步骤。74.s100:获取编程单元250的预设编程参数。75.在本实施例中,闪存控制器100用于获取编程单元250的预设编程参数,预设编程参数包括预设编程时间及最大编程循环数,具体请一并参阅图1及其相应描述,在此不再赘述。76.s200:获取编程单元250的实际编程参数。77.在本实施例中,闪存控制器100用于获取编程单元250的实际编程参数,实际编程参数包括实际编程时间,具体请一并参阅图1及其相应描述,在此不再赘述。78.s300:当实际编程参数大于预设编程参数时,获取编程单元250的故障位计数。79.在本实施例中,闪存控制器100用于当实际编程参数大于预设编程参数时,实际编程参数包括实际编程时间及实际编程循环,获取编程单元250的故障位计数,具体请一并参阅图1及其相应描述,在此不再赘述。80.s400:当故障位计数大于第一阈值时,对编程单元250内存储的数据进行迁移。81.在本实施例中,闪存控制器100用于当故障位计数大于第一阈值时,对编程单元250内存储的数据进行迁移,具体请一并参阅图1及其相应描述,在此不再赘述。82.请一并参阅图4,当故障位计数小于或等于第一阈值时,闪存存储器管理方法还包括以下步骤。83.s500:将编程单元250新增至巡检样本。84.在本实施例中,闪存控制器100用于将编程单元250新增至巡检样本,具体请一并参阅图1及其相应描述,在此不再赘述。85.s600:对巡检样本内的编程单元250进行巡检,以判断故障位计数是否大于第二阈值。86.在本实施例中,闪存控制器100用于根据巡检样本对闪存存储器10进行巡检,以判断故障位计数是否大于第二阈值,具体请一并参阅图1及其相应描述,在此不再赘述。87.s700:当故障位计数大于第二阈值时,对编程单元250内存储的数据进行迁移。88.在本实施例中,闪存控制器100用于当故障位计数大于第二阈值时,对编程单元250内存储的数据进行迁移,具体请一并参阅图1及其相应描述,在此不再赘述。89.本技术实施方式提供的闪存存储器管理方法、闪存存储器管理系统20及闪存存储器10,能够获取编程单元250的预设编程时间与实际编程时间,若实际编程时间大于预设编程时间,则进一步获取编程单元250的故障位计数是否第一阈值,若故障位计数高于第一阈值,则表示该编程单元250可能存在异常。因此需要将该编程单元250内的数据迁移至新的编程单元内进行处理,以降低编程单元250内数据丢失的风险。90.本
技术领域
:
:的普通技术人员应当认识到,以上的实施方式仅是用来说明本技术,而并非用作为对本技术的限定,只要在本技术的实质精神范围之内,对以上实施例所作的适当改变和变化都落在本技术要求保护的范围之内。当前第1页12当前第1页12
技术特征:
1.一种闪存存储器管理方法,应用于闪存存储器,所述闪存存储器包括至少一个编程单元,其特征在于,所述闪存管理方法包括:获取所述编程单元的预设编程参数及实际编程参数;当所述实际编程参数大于所述预设编程参数时,获取所述编程单元的故障位计数;当所述故障位计数大于第一阈值时,对所述编程单元内存储的数据进行迁移。2.如权利要求1所述的闪存存储器管理方法,其特征在于,所述预设编程参数为预设编程时间,所述实际编程参数为实际编程时间。3.如权利要求2所述的闪存存储器管理方法,其特征在于,所述获取所述编程单元的预设编程参数包括:获取所述编程单元的最大编程循环数及每个编程循环的时间;根据所述最大编程循环数及所述编程循环的时间获取所述预设编程时间。4.如权利要求2所述的闪存存储器管理方法,其特征在于,所述获取所述编程单元的实际编程参数,包括:获取所述编程单元的实际编程循环数及每个编程循环的时间;根据所述实际编程循环数及所述编程循环的时间获取所述实际编程时间。5.如权利要求1所述的闪存存储器管理方法,其特征在于,所述预设编程参数为所述编程单元的最大编程循环数,所述实际编程参数为所述编程单元的实际编程循环数。6.如权利要求1所述的闪存存储器管理方法,其特征在于,当所述故障位计数小于或等于所述第一阈值时,所述闪存存储器管理方法还包括:将所述编程单元新增至巡检样本;对所述巡检样本内的所述编程单元进行巡检,以判断所述故障位计数是否大于第二阈值。7.如权利要求6所述的闪存存储器管理方法,其特征在于,当判断所述故障位计数大于所述第二阈值时,所述闪存存储器管理方法还包括:对所述编程单元内存储的数据进行迁移。8.如权利要求6所述的闪存存储器管理方法,其特征在于,当所述故障位计数大于所述第一阈值时,所述闪存存储器管理方法还包括:判断所述编程单元是否为坏块;当所述编程单元不为坏块时,将所述编程单元新增至所述巡检样本。9.一种闪存存储器管理系统,应用于闪存存储器,所述闪存存储器包括至少一个编程单元,其特征在于,所述闪存管理系统包括:第一信息获取模块,所述第一信息获取模块用于获取所述编程单元的预设编程参数;第二信息获取模块,所述第二信息获取模块用于获取所述编程单元的实际编程参数;第三信息获取模块,所述第三信息获取模块用于当所述实际编程参数大于所述预设编程参数时,获取所述编程单元的故障位计数;数据迁移模块,所述数据迁移模块用于当所述故障位计数大于第一阈值时,对所述编程单元内存储的数据进行迁移。10.一种闪存存储器,其特征在于,所述闪存存储器包括闪存介质及闪存控制器;所述闪存介质包括至少一个编程单元;
所述闪存控制器用于执行如权利要求1至8中任一项所述的闪存存储器管理方法。
技术总结
本申请提供一种闪存存储器管理方法、系统及闪存存储器,所述闪存存储器管理方法,应用于闪存存储器,所述闪存存储器包括至少一个编程单元,所述闪存管理方法包括:获取所述编程单元的预设编程参数及实际编程参数;当所述实际编程参数大于所述预设编程参数时,获取所述编程单元的故障位计数;当所述故障位计数大于第一阈值时,对所述编程单元内存储的数据进行迁移。本申请能够获取编程单元可能存在异常的风险,并在编程单元存在异常的风险时,将该编程单元内的数据迁移至新的编程单元内进行处理,以降低编程单元内数据丢失的风险。以降低编程单元内数据丢失的风险。以降低编程单元内数据丢失的风险。
技术研发人员:
陶伟
受保护的技术使用者:
上海江波龙数字技术有限公司
技术研发日:
2022.06.21
技术公布日:
2022/12/12