发明内容
本发明的目的是为了克服上述背景技术的不足,提供一种存储设备的坏块管理方法、***及计算机可读存储介质。
第一方面,提供一种存储设备的坏块管理方法,包括以下步骤:
建立存储设备的原始坏块表;
将原始坏块表重新映射,建立多个不同的初始坏块映射表;
计算出每个初始坏块映射表的坏块分布离散度指标值,选取最小的坏块分布离散度指标值对应的初始坏块映射表作为目标坏块映射表。
根据第一方面,在第一方面的第一种可能的实现方式中,原始坏块表建立后,扫描原始坏块表,统计原始坏块表中坏块的总数,并计算出总坏块率;
多个不同的初始坏块映射表建立后,计算多个不同的初始坏块映射表中所有Super Block的坏块率;
基于总坏块率和Super Block的坏块率计算出每个初始坏块映射表的坏块分布离散度指标值。
根据第一方面,在第一方面的第二种可能的实现方式中,多个不同的初始坏块映射表的建立方法为:
选取不同值的映射因子,并使用块映射算法将原始坏块表重新映射,以建立出多个不同的初始坏块映射表。
根据第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,还包括以下步骤:
选取目标坏块映射表对应的映射因子为目标映射因子;
根据目标映射因子、原始坏块表及块映射算法,实现在固定操作周期内计算出存储设备的逻辑块地址对应的物理块地址。
根据第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,映射因子的可选值为大于等于0且小于存储设备中NAND Flash Die的最大值之间的整数。
根据第一方面的第三种可能的实现方式,在第一方面的第五种可能的实现方式中,原始坏块表的建立方法为:
将存储设备中所有独立的NAND Flash Die和每个NAND Flash Die所包含的所有NAND Flash Block组成一个矩阵,基于该矩阵建立原始坏块表。
第二方面,提供一种存储设备的坏块管理***,包括:
初始单元,用于建立存储设备的原始坏块表;
更新单元,用于将原始坏块表重新映射,建立出多个不同的初始坏块映射表;以及
执行单元,用于计算出每个初始坏块映射表的坏块分布离散度指标值,选取最小的坏块分布离散度指标值对应的初始坏块映射表作为目标坏块映射表,使目标坏块映射表的坏块处于均衡分布状态。
根据第二方面,在第二方面的第一种可能的实现方式中,初始单元建立原始坏块表建立后,执行单元扫描原始坏块表,统计原始坏块表中坏块的总数,并计算出总坏块率;
更新单元建立出多个不同的初始坏块映射表后,执行单元计算多个不同的初始坏块映射表中所有Super Block的坏块率;
执行单元基于总坏块率和Super Block的坏块率计算出每个初始坏块映射表的坏块分布离散度指标值。
根据第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,更新单元选取不同值的映射因子,并使用块映射算法将原始坏块表重新映射,以建立出多个不同的初始坏块映射表。
第三方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述存储设备的坏块管理方法的所有方法步骤。
与现有技术相比,本发明的优点如下:
本发明通过建立多个不同的初始坏块映射表,计算出每个初始坏块映射表的坏块分布离散度指标值,选取其中最小的坏块分布离散度指标值对应的初始坏块映射表作为目标坏块映射表,则该目标坏块映射表中的坏块分布最均衡。在实际使用过程中,省掉了传统坏块管理方式中大量的坏块分布不均衡的坏块映射表,解决了存储设备中坏块映射表内存空间占用过大的问题。
本发明在无需额外内存消耗的情况下,实现存储设备的坏块管理工作,可以在固定操作周期内计算出逻辑块地址对应的物理块地址,使存储设备达到最佳的运行状态。有效解决了常见的坏块映射方法中内存消耗过大的问题。另外,将本发明的方法应用在存储设备中,降低了对硬件的要求,如计算映射关系的RAM、存储映射表的FLASH等,在不降低产品性能的前提下,显著缩小产品所占用的面积,降低产品成本。
具体实施方式
现在将详细参照本发明的具体实施例,在附图中例示了本发明的例子。尽管将结合具体实施例描述本发明,但将理解,不是想要将本发明限于所述的实施例。相反,想要覆盖由所附权利要求限定的在本发明的精神和范围内包括的变更、修改和等价物。应注意,这里描述的方法步骤都可以由任何功能块或功能布置来实现,且任何功能块或功能布置可被实现为物理实体或逻辑实体、或者两者的组合。
为了使本领域技术人员更好地理解本发明,下面结合附图和具体实施方式对本发明作进一步详细说明。
注意:接下来要介绍的示例仅是一个具体的例子,而不作为限制本发明的实施例必须为如下具体的步骤、数值、条件、数据、顺序等等。本领域技术人员可以通过阅读本说明书来运用本发明的构思来构造本说明书中未提到的更多实施例。
参见图1所示,本发明实施例提供一种存储设备的坏块管理***,包括初始单元1、更新单元2以及执行单元3。
初始单元用于建立存储设备的原始坏块表4。本实施例中的存储设备以NANDFlash存储设备为例。
参见图2所示,初始单元1将存储设备中所有独立的NAND Flash Die和每个NANDFlash Die(简称Die)所包含的所有NAND Flash Block(简称Block)组成一个矩阵,并基于该矩阵建立原始坏块表4。建立的原始坏块表4如图2所示,图2中黑色方块表示坏块。
原始坏块表4的横轴表示Die编号nd(nd取0,1,2…Nd,Nd表示Die最大值),纵轴表示Block编号nb(nb取0,1,2…Nb,Nb表示Block最大值)。
需要说明的是,存储设备在写操作中,是以所有Die中相同的Logical Block为操作单元,我们将该操作单元称为Super Block。从图2中可见有很多Super Block存在较多坏块,而有些Super Block则没有坏块,坏块分布不均衡,导致在实际的写操作中,速度会非常不稳定。
更新单元2选取不同值的映射因子,并使用块映射算法将原始坏块表4重新映射,以建立出多个不同的初始坏块映射表5。
具体的,本实施例的块映射算法为:
上述公式中,映射因子α的可选值为大于等于0且小于存储设备中NAND Flash Die的最大值之间的整数,即映射因子α从0,1,2…Nd-1中取值。映射过程中,保持nd不变,利用上述块映射算法即可得到映射后的物理块。
作为示例性说明,本实施例中首先选定映射因子α为0。使用块映射算法将原始坏块表4重新映射,以建立出映射因子α为0的第一个初始坏块映射表5。
参见图3所示,为原始坏块表4重新映射为第一个初始坏块映射表5的变化图。可以直观的看到,通过块映射算法已经将原始坏块表4中的坏块均匀的映射到第一个初始坏块映射表5的每个Super Block中,但这只是局部信息,不一是最优的映射方式。
再选定映射因子α为1,并建立出映射因子α为1的第二个初始坏块映射表5,依次类推,直至建立出所有映射因子α对应的初始坏块映射表5。
初始单元1建立原始坏块表4建立后,执行单元3扫描原始坏块表4,统计原始坏块表4中坏块的总数,并计算出总坏块率。
更新单元2建立出多个不同的初始坏块映射表5后,执行单元3计算多个不同的初始坏块映射表5中所有Super Block的坏块率。
执行单元3基于总坏块率和Super Block的坏块率计算出每个初始坏块映射表5的坏块分布离散度指标值。执行单元3选取最小的坏块分布离散度指标值对应的初始坏块映射表5作为目标坏块映射表,使目标坏块映射表的坏块处于均衡分布状态。即相比于其他初始坏块映射表5而言,目标坏块映射表的坏块分布最均衡。解决了现有储存设备中坏块映射表内存空间占用过多的问题,也大大提高了存储设备的读写速度。
参见图4所示,本发明实施例提供一种存储设备的坏块管理方法,包括以下步骤:
S10、建立存储设备的原始坏块表。
S20、将原始坏块表重新映射,建立多个不同的初始坏块映射表。
S30、计算出每个初始坏块映射表的坏块分布离散度指标值,选取最小的坏块分布离散度指标值对应的初始坏块映射表作为目标坏块映射表。
参见图5,本发明实施例提供一种存储设备的坏块管理方法,具体包括以下步骤:
S11、将存储设备中所有独立的NAND Flash Die和每个NAND Flash Die所包含的所有NAND Flash Block组成一个矩阵,基于该矩阵建立原始坏块表。则建立后的原始坏块表的横轴表示Die编号nd(nd取0,1,2…Nd,Nd表示Die最大值),纵轴表示Block编号nb(nb取0,1,2…Nb,Nb表示Block最大值)。
S12、原始坏块表建立后,扫描原始坏块表,统计原始坏块表中坏块的总数Nbad,通过以下公式计算出总坏块率μ。
S21、选定映射因子α的值后,使用块映射算法:
将原始坏块表重新映射,以建立对应该映射因子α的初始坏块映射表。具体包括:
S211、选定映射因子α为0。使用块映射算法将原始坏块表重新映射,以建立出映射因子α为0的第一个初始坏块映射表,进入步骤S31。
S212、使用块映射算法将原始坏块表重新映射,以建立出对应该映射因子α的初始坏块映射表,进入步骤S31。
S31、通过坏块率公式:
计算映射因子α所对应的初始坏块映射表中所有Super Block的坏块率R。由于映射因子α从0,1,2…Nd-1中取值,对应的,坏块率为R0,R1,R2...RN。
S32、基于总坏块率μ和Super Block的坏块率R,利用以下公式:
计算出映射因子α所对应的坏块分布离散度指标值σ,并记录下该值。由于映射因子α从0,1,2…Nd-1中取值,对应的,坏块分布离散度指标值为σ0,σ1,σ2…σn。
S33、改变映射因子α的值,使映射因子α自增长1。返回至步骤S212。直至映射因子α在取值范围1,2…Nd-1内遍历完成后进入步骤S34。
S34、从记录的所有坏块分布离散度指标值(σ0,σ1,σ2…σn)中选择最小值,该最小的坏块分布离散度指标值对应的映射因子即为目标映射因子。该目标映射因子对应的初始坏块映射表即为目标坏块映射表。
在存储设备实际使用过程中,根据目标映射因子、原始坏块表及块映射算法,输入nd和nb,即可在固定操作周期内计算出存储设备的逻辑块地址对应的物理块地址。
基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的所有方法步骤或部分方法步骤。
本发明实现上述方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
基于同一发明构思,本申请实施例还提供一种电子设备,包括存储器和处理器,存储器上储存有在处理器上运行的计算机程序,处理器执行计算机程序时实现上述方法中的所有方法步骤或部分方法步骤。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(例如声音播放功能、图像播放功能等);存储数据区可存储根据手机的使用所创建的数据(例如音频数据、视频数据等)。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、服务器或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、服务器和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。