一种物理块写入方法及系统的制作方法

文档序号:6499640阅读:224来源:国知局
一种物理块写入方法及系统的制作方法
【专利摘要】本发明实施例提供一种物理块写入方法,所述方法具体步骤如下:a、建立逻辑块与物理块的映射关系;b、顺次向缓冲块写入数据,完成n个缓冲块的写入;c、将第k缓冲块与在其之后写入的所有缓冲块进行对照,判断第k缓冲块之后写入的缓冲块对应的扇区范围是否涵盖第k缓冲块对应的扇区范围,如果涵盖则判定第k缓冲块为无效缓冲块,否则将其判定为有效缓冲块;解除无效缓冲块与逻辑块的映射关系;d、再选取与无效缓冲块相等数量的物理块作为缓冲块,并完成新选取的缓冲块的写入;e、重复执行步骤c-d,直到n个缓冲块均为有效缓冲块,则从原数据块及有效缓冲块中查找有效数据;将所述有效数据拷贝至新数据块;k为大于0且小于n的整数。
【专利说明】—种物理块写入方法及系统
【技术领域】
[0001]本发明涉及数据存储【技术领域】,特别涉及一种物理块写入方法及系统。
【背景技术】
[0002]NAND是目前阶段性能较出色的一种闪存方案,其特点是功耗低、重量轻、读写性能好;目前广泛的应用于闪存盘和存储卡。NAND芯片作为存储介质包含了多个物理块,每个物理块又包含多个物理页。因为NAND芯片的物理块与物理页的擦写次数都是有限的,由此而衍生的写平衡算法成为了延长NAND芯片使用寿命的重要技术手段。而写平衡算法通常都基于文件系统中虚拟层面的逻辑块或扇区与NAND芯片实际的物理块或物理页的映射关系来展开。
[0003]在申请号为201010229936.3的专利中,公开了一种NAND写平衡处理方法;大体思路如下:该方法中一个逻辑块对应两个物理块;所述的物理块中,一个与逻辑块一一映射,另一个与逻辑块随机映射。与逻辑块一一映射的物理块被称为数据块,与逻辑块随机映射的物理块被称为缓冲块;数据在写入时首先写入到缓冲块中,写入完成后通过一定的机制将旧数据块中各页数据及缓冲块中随机映射的各页数据按照一一映射的规则整合写入到一个新的数据块。
[0004]所述物理块包括多个物理页,所述逻辑块包括多个扇区,一般而言一个物理块中的物理页数量等于一个逻辑块中的扇区数量,每个物理页均对应着一个扇区。在上述专利技术方案的写入过程当中,虽然缓冲块仅存在一个,但实际上可以通过简单的改进使一个逻辑块与多个缓冲块相对应。多个缓冲块中必定会重复的出现多个物理页对应相同的扇区,一般而言在这种情况下选择最后写入的物理页中的数据整理到新的数据块当中。并且多个缓冲块的情况下,很可能后写入的缓冲块中物理页对应的扇区完全包含先写入的缓冲块中对应的物理页包含的扇区,那么这样一来先写入的缓冲块中全部数据均属无效,不需被整理到数据块中,也就是先写入的缓冲块在此情况下已经完全无效。而在现有技术中,上述无效的缓冲块还需保留直到整个写入过程的结束,在数据向新数据块整理的过程中存在大量无效缓冲块,致使数据整合的次数没有下降到最低限度,过多的数据整合耗费NAND芯片的读写次数,缩短了 NAND芯片的有效使用寿命。

【发明内容】

[0005]有鉴于此,本发明的目的在于提供一种物理块写入方法及系统,所述写入方法在写入的同时判断出缓冲块是否属于无效缓冲块,并将无效缓冲块删除。
[0006]为实现上述目的,本发明有如下技术方案:
[0007]—种物理块写入方法,所述方法中逻辑块与多个物理块之间存在映射关系,所述多个物理块包括数据块和特定数量的缓冲块;所述数据块包括原数据块和新数据块,所述缓冲块的特定数量为η,η为大于I的整数,所述方法具体步骤如下:
[0008]a、建立逻辑块与物理块的映射关系;[0009]b、顺次向缓冲块写入数据,完成η个缓冲块的写入;
[0010]C、将第k缓冲块与在其之后写入的所有缓冲块进行对照,判断第k缓冲块之后写入的缓冲块对应的扇区范围是否涵盖第k缓冲块对应的扇区范围,如果涵盖则判定第k缓冲块为无效缓冲块,否则将其判定为有效缓冲块;解除无效缓冲块与逻辑块的映射关系;
[0011]d、再选取与无效缓冲块相等数量的物理块作为缓冲块,建立新选取的缓冲块与逻辑块的映射关系,并完成新选取的缓冲块的写入;
[0012]e、重复执行步骤c_d,直到η个缓冲块均为有效缓冲块,则从原数据块及有效缓冲块中查找有效数据;将所述有效数据拷贝至新数据块;
[0013]k为大于O且小于η的整数。
[0014]所述物理块包括多个物理页,所述逻辑块包括多个扇区,且一个物理块包括的物理页的数量等于一个逻辑块包括的扇区的数量,则所述建立逻辑块与物理块的映射关系具体为:
[0015]将物理块中的物理页对应到逻辑块中的扇区上。
[0016]所述第k缓冲块之后写入的缓冲块对应的扇区范围涵盖第k缓冲块对应的扇区范围具体为:
[0017]当任意一个与第k缓冲块中物理页对应的扇区,均在第k缓冲块之后写入的缓冲块中存在对应的物理页,则认为第k缓冲块之后写入的缓冲块对应的扇区范围涵盖第k缓冲块对应的扇区范围。
[0018]所述从各个物理块中查找有效数据具体为:
[0019]将最后写入数据作为该扇区的有效数据。
[0020]所述方法还包括:
[0021]再向依次向各缓冲块写入数据时,按照时间顺序为各缓冲块标记依次递增的写计数。
[0022]所述从各个物理块中查找有效数据还包括:
[0023]当所述将有效数据拷贝至新数据块的过程中断并重新开始时,根据预设的比较机制比较原数据块及有效缓冲块写计数,从而找到写计数较大的数据为最后写入的数据,并将其作为有效数据。
[0024]所述方法还包括:
[0025]将有效数据拷贝至新数据块中之后,取消缓冲块和原数据块与逻辑块的映射关系O
[0026]所述方法中随机选取物理块与逻辑块建立映射关系并写入。
[0027]所述物理块包括多个物理页,则所述为缓冲块标记写计数具体为:
[0028]将写计数标记在每个物理页中,当同一物理块中不同物理页的写计数不同,则以该物理块中第O物理页的写计数为有效写计数。
[0029]一种物理块写入系统,所述系统中逻辑块与多个物理块之间存在映射关系,所述多个物理块包括数据块和特定数量的缓冲块;所述数据块包括原数据块和新数据块,所述缓冲块的特定数量为η,η为大于I的整数,所述系统具体包括:
[0030]映射模块、用于建立逻辑块与物理块的映射关系;
[0031]写入模块、用于顺次向缓冲块写入数据,完成η个缓冲块的写入;并完成补充模块新选取的缓冲块的写入;
[0032]无效判断模块、用于将第k缓冲块与在其之后写入的所有缓冲块进行对照,判断第k缓冲块之后写入的缓冲块对应的扇区范围是否涵盖第k缓冲块对应的扇区范围,如果涵盖则判定第k缓冲块为无效缓冲块,否则将其判定为有效缓冲块;解除无效缓冲块与逻辑块的映射关系;k为大于O且小于η的整数;
[0033]补充模块、用于再选取与无效缓冲块相等数量的物理块作为缓冲块;
[0034]有效判断模块、用于在η个缓冲块均为有效缓冲块时,从原数据块及有效缓冲块中查找有效数据;
[0035]拷贝模块,用于将所述有效数据拷贝至新数据块。
[0036]根据以上技术方案可知,本发明存在的有益效果是:通过对比各个缓冲块的扇区范围,从而发现无效缓冲块,并解除无效缓冲块与逻辑块的对应关系,由此实现在整合过程中所有的缓冲块均为有效缓冲块,最大程度的减少数据整合的次数,延长了 NAND芯片的使用寿命。
【专利附图】

【附图说明】
[0037]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]图1为现有技术中 映射关系不意图;
[0039]图2为现有技术中随机映射关系不意图;
[0040]图3为现有技术中物理块整合过程示意图;
[0041]图4为本发明实施例所述方法流程图;
[0042]图5为本发明实施例中有效数据整合过程示意图;
[0043]图6为本发明另一实施例所述方法流程图;
[0044]图7为本发明实施例所述系统结构示意图。
【具体实施方式】
[0045]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]本发明提供一种物理块的写入方法,主要应用于NAND芯片当中。本发明所述写入方法中,在现有的写入方法之上进行了优化,使得所述方法可以发现无效的缓冲块,并解除无效缓冲块与逻辑块之间的映射关系。为了便于对本发明所述方法进行解释和说明,此处首先简要的描述一种NAND芯片物理块的写入方法:
[0047]该方法涉及的写入过程中,逻辑块与多个物理块之间存在映射关系;一个逻辑块中包括多个扇区,而一个物理块中包括多个物理页;一般而言一个逻辑块中包括扇区数量等于一个物理块中包括物理页的数量。所述的逻辑块及扇区为文件系统在逻辑上虚拟构建的存储单元;而所述物理块及物理页为实际的存储介质,存储介质中保存的数据通过映射关系反映到虚拟的逻辑块或扇区上,而建立逻辑块与物理块的映射关系,也就是将物理块中的物理页对应到逻辑块中的扇区。
[0048]所述物理块在写入过程中根据用途的不同分为数据块和缓冲块;数据块中各个物理页保存的数据即是逻辑块各扇区呈现的数据,数据块中各物理页与逻辑块中各扇区一一映射。一般来说写入过程中与逻辑块对应的数据块有两个;一为原数据块,原数据块中数据也就是该逻辑块各扇区原本呈现的数据;另一为新数据块,即将写入过程新写入的数据乃至一部分原有数据重新整合后得到的数据块,新数据块中的数据就是该逻辑块各扇区在写入完成之后呈现的数据。另外,通常在非写入的过程中,逻辑块呈现的数据稳定不变时,逻辑块仅与一个数据块存在映射关系。
[0049]所述一一映射也就是数据块中各物理页按照顺序对应逻辑块中各个扇区。参见图1所示为一一映射的示意图,图1中假定一个物理块包括4个物理页,一个逻辑块包括4个扇区。图1中四个方框分别代表物理块中4个物理页,按照从左至右的顺序分别是第O页、第I页、第2页和第3页。图中每个物理页上的标号代表该物理页对应的扇区,图1中即第O页对应第4扇区,第I页对应第5扇区,依此类推。如图1所示每个物理页按照顺序对应一个扇区的映射即所谓的 映射。 映射一般意味着某个写入过程已经完结,也可以认为 映射是逻辑块稳定状态下的一种映射关系。
[0050]而缓冲块在写入过程中需存在至少一个。从物理层面上来讲,在写入过程中需写入逻辑块扇区中的数据均是直接写入缓冲块,当一个缓冲块被写满之后,可以再向其他的缓冲块写入。缓冲块与逻辑块的映射关系为随机映射,也就是缓冲块中各物理页随机的对应逻辑块中的扇区,既不一定按照顺序并且也有可能重复的对应,具体根据写入时的具体情况而定。
[0051]参见图2所示为随机映射的示意图,图2中同样假定一个物理块包括4个物理页,一个逻辑块包括4个扇区。图2中四个方框分别代表物理块中4个物理页,按照从左至右的顺序分别是第O页、第I页、第2页和第3页。图中每个物理页上的标号代表该物理页对应的扇区;可见第O、1、2三个物理页均对应第7扇区,而第3物理页对应第6扇区。这是由于先写入的三个物理页的数据是需写入第7扇区的,而后一页数据是需写入第6扇区的,物理页与扇区的对应关系视写入情况而定。缓冲块的存在表示写入过程正在进行,所以随机映射可以认为是逻辑块与物理块之间未稳定的一种映射关系。
[0052]参见图3所示为物理块整合过程的示意图,也就是将图1所示数据块作为原数据块与图2所示缓冲块中数据整合的具体步骤。完成了数据向缓冲块的写入之后,还需向一个空白的物理块整合原数据块和缓冲块中的数据,该空白物理块也就将作为新数据块。结合图3中所示的数据块与缓冲块来看,一个扇区对应的物理页可能不止一个,则在该扇区对应的所以物理页中,取最后进行写入的一个物理页中的数据为有效数据。将4个扇区对应的有效数据按照一一映射的方式整合到一个新数据块中,从而代替原数据块。
[0053]以上为一种与本发明所述方法相关的物理块写入方法。按照上述方法在实际运行当中,会发现往往存在以下的问题:当一次写入过程当中存在多个缓冲块,而按照写入的规则一般认为时间上后写入的数据为有效数据;所以大多数情况下,新数据块中大部分的数据都来自于最后的一个或几个缓冲块。较早写入的缓冲块及原数据块中的数据往往被覆盖,有些缓冲块中因为不包含有效数据而被视为无效缓冲块,在有效数据的整理过程中起不到作用。
[0054]参见图4所示,为本发明所述物理块写入方法的一个具体的实施例,本实施例中针对写入过程中存在无效缓冲块的问题。本实施例所述方法中逻辑块与多个物理块之间存在映射关系,所述多个物理块包括数据块和特定数量的缓冲块;所述数据块包括原数据块和新数据块,所述缓冲块的特定数量为η,η为大于I的整数,具体有如下步骤:
[0055]步骤401、建立逻辑块与物理块的映射关系;
[0056]该步骤为写入的初始化步骤。
[0057]步骤402、顺次向缓冲块写入数据,完成η个缓冲块的写入;
[0058]本步骤中所述的对于缓冲块的写入与前述现有技术中物理块写入方法基本一致。需写入逻辑块扇区中的数据均是直接写入缓冲块,当一个缓冲块被写满之后,可以再向其他的缓冲块写入。
[0059]本实施例中预先设置了与一个逻辑块对应的缓冲块数量为η,η为大于I的整数。在写入过程中需首先完成η个缓冲块的写入,进而开始后续的流程。
[0060]步骤403、将第k缓冲块与在其之后写入的所有缓冲块进行对照,判断第k缓冲块之后写入的缓冲块对应的扇区范围是否涵盖第k缓冲块对应的扇区范围,如果涵盖则判定第k缓冲块为无效缓冲块,否则将其判定为有效缓冲块;解除无效缓冲块与逻辑块的映射关系;k为大于O且小于η的整数。
[0061]一般而言,在完成写入的缓冲块达到特定数量η之后,即开始从缓冲块及原数据块中查找有效数据并进行有效数据的整理和拷贝。但本实施例中为了解决无效缓冲块增加数据整理拷贝次数的问题,加入了步骤403中的技术特征。
[0062]本步骤中,实质是在于判定某个缓冲块是否为无效缓冲块。由于在时间上以后写入的数据为有效数据,所以η个缓冲块中最后写入的第η缓冲块必然是有效数据块,而第I缓冲块-第η-l缓冲块均可能是无效缓冲块。所以本实施例中,取第I缓冲块-第η-l缓冲块中的任意缓冲块,即第k缓冲块,判断其扇区范围是否被其后写入的缓冲块涵盖。第k缓冲块的扇区范围可能被其后写入的某一个缓冲块完全涵盖,也可能其后的某几个缓冲块的扇区范围并集涵盖了第k缓冲块的扇区范围。总之,只要第k缓冲块中必然不存在有效数据,则认为第k缓冲块为无效缓冲块。
[0063]所述第k缓冲块之后写入的缓冲块对应的扇区范围涵盖第k缓冲块对应的扇区范围的判定标准具体为:当任意一个与第k缓冲块中物理页对应的扇区,均在第k缓冲块之后写入的缓冲块中存在对应的物理页,则认为第k缓冲块之后写入的缓冲块对应的扇区范围涵盖第k缓冲块对应的扇区范围。
[0064]若η个缓冲块中不存在无效缓冲块,则直接开始步骤405中所述的有效数据的查找和拷贝的过程。
[0065]参照图5所示,为一个逻辑块对应三个缓冲块的具体案例,也就是说,本实施例中图5所示,缓冲块的特定数量为三个,当数据写满三个缓冲块即开始进行后续过程。
[0066]通过观察图5可见,第一缓冲块中4个物理页对应的扇区包括第4、6、7三个扇区,则认为上述第4、6、7三个扇区即为第一缓冲块的扇区范围;同理第二缓冲块与第三缓冲块的扇区范围即第5、6、7三个扇区。[0067]对比三者的扇区范围可发现,由于第4扇区不在第二缓冲块和第三缓冲块扇区范围之内,所以第一缓冲块的扇区范围超出了后续所有缓冲块的扇区范围,未被涵盖;也就是第一缓冲块中存在一个物理页对应的扇区(第4扇区),该扇区在第二缓冲块或第三缓冲块中没有对应的物理页。第4扇区的有效数据来自于第一缓冲块。所以判定第一缓冲块是有效缓冲块。
[0068]但仅对比第二缓冲块与第三缓冲块可发现,第三缓冲块的扇区范围> 第二缓冲块的扇区范围,由于第三缓冲块的写入时间在后,所以第5、6、7三个扇区的有效数据均不可能来自于第二缓冲块。也就是说在这种情况下,当任意一个与第二缓冲块中物理页对应的所有扇区(即第5、6、7三个扇区)均在第三缓冲块中同样存在对应的物理页,则第三缓冲块对应的扇区范围涵盖第二缓冲块对应的扇区范围。第二缓冲块中没有包含有效数据,则认为第二缓冲块实际上是一个无效缓冲块。
[0069]在这种情况下,本实施例中判定第二缓冲块为无效缓冲块,第一缓冲块与第三缓冲块为有效缓冲块,解除无效缓冲块与逻辑块的映射关系。
[0070]步骤404、再选取与无效缓冲块相等数量的物理块作为缓冲块,建立新选取的缓冲块与逻辑块的映射关系,并完成新选取的缓冲块的写入;
[0071]由于在上述步骤中发现了无效缓冲块,并解除了无效缓冲块与逻辑块的映射关系,所以逻辑块对应的缓冲块不再能够达到特定的数量n,在这种情况下无法进行有效数据的整合。则此时再填补若干物理块与逻辑块建立随机映射关系,将其作为缓冲块继续进行写入。填补的缓冲块的数量等于步骤403中无效缓冲块的数量,如此即可保持逻辑块对应的缓冲块数量依然满足特定数量η。对于新选取的缓冲块也进行同样的写入操作。
[0072]步骤405、重复执行步骤403-步骤404,直到η个缓冲块均为有效缓冲块,则从原数据块及有效缓冲块中查找有效数据;将所述有效数据拷贝至新数据块。
[0073]步骤404中新选取的缓冲块完成写入之后,又重新存在η个与逻辑块对应的缓冲块。对于此η个缓冲块,还需同样执行步骤403中的无效缓冲块的判断过程。若依然存在无效缓冲块,则还需解除无效缓冲块与逻辑块的映射关系,并再一次通过步骤404中方案填补新的缓冲块。
[0074]如此循环的重复执行步骤403-步骤404,直到η个缓冲块均为有效缓冲块,才开始进行有效数据的查找,整理和拷贝的过程。
[0075]图5中增加第四缓冲块之后,每个缓冲块均为有效数据块,并且缓冲块达到特定数量三个。即可以开始执行后续流程。本实施例中,有效数据的整合过程与前述物理块写入方法一致。
[0076]前述的写入方法中,只要完成特定数量缓冲块的写入,则开始有效数据的拷贝,但其包括的多个缓冲块中很可能包括无效缓冲块,所以整合的次数没有下降到最低。本实施例中,只有当有效缓冲块达到特定数量时,才进行有效数据的拷贝,实际完成写入的缓冲块数量可能大于特定数量,这样一来减少了有效数据整合的次数,延长NAND芯片的使用寿命O
[0077]本实施例存在的有益效果是,实现在整合过程中所有的缓冲块均为有效缓冲块,最大程度的减少数据整合的次数,延长了 NAND芯片的使用寿命。
[0078]参见图6所示,为本发明所述物理块写入方法的另一个具体的实施例。本实施例所述方法中逻辑块与多个物理块之间存在映射关系,所述多个物理块包括数据块和特定数量的缓冲块;所述数据块包括原数据块和新数据块,所述缓冲块的特定数量为n,n为大于I的整数,本实施例中所述方法具体包括以下:
[0079]步骤601、建立逻辑块与物理块的映射关系;
[0080]该步骤为写入的初始化步骤。
[0081]步骤602、顺次向缓冲块写入数据,完成η个缓冲块的写入;再向依次向各缓冲块写入数据时,按照时间顺序为各缓冲块标记依次递增的写计数。
[0082]步骤603、将第k缓冲块与在其之后写入的所有缓冲块进行对照,判断第k缓冲块之后写入的缓冲块对应的扇区范围是否涵盖第k缓冲块对应的扇区范围,如果涵盖则判定第k缓冲块为无效缓冲块,否则将其判定为有效缓冲块;解除无效缓冲块与逻辑块的映射关系;k为大于O且小于η的整数。
[0083]步骤604、再选取与无效缓冲块相等数量的物理块作为缓冲块,建立新选取的缓冲块与逻辑块的映射关系,并完成新选取的缓冲块的写入;
[0084]步骤605、重复执行步骤603-步骤604,直到η个缓冲块均为有效缓冲块;
[0085]步骤606、当所述将有效数据拷贝至新数据块的过程中断并重新开始时,根据预设的比较机制比较原数据块及有效缓冲块写计数,从而找到写计数较大的数据为最后写入的数据,并将其作为有效数据。
[0086]步骤607、将所述有效数据拷贝至新数据块。
[0087]步骤608、取消缓冲块和原数据块与逻辑块的映射关系。
[0088]在完成有效数据的拷贝之后,取消缓冲块和原数据块与逻辑块的映射关系,可以节省计算机系统的内存和存储空间,便于物理块的重新利用。
[0089]如果整个数据的写入及整合过程是正常进行,期间没有任何中断,则可在写入的同时自动留存针对各扇区最后写入的物理页,并将其中的有效数据进行整合。但如果写入及整合的过程出现中断又重新恢复,则需通过特定方法来重新查找出最后写入的数据,并将其作为有效数据。现阶段用以在中断并恢复之后,查找有效数据的方法主要是通过标记并比较写计数。写计数的标记与比较均是通过预设的机制。
[0090]以下公开一种关于局部写计数的技术方案,具体原理如下:
[0091]向第一缓冲块写入数据时,将原数据块的第一写计数递增并标记为第一缓冲块的第一写计数;
[0092]向第m缓冲块写入数据时,相对于第m-1缓冲块保留第m写计数之前的所有写计数,将第m-Ι缓冲块的第m写计数的数值递增,将所述递增后的数值标记为第m缓冲块的第m写计数;m为大于I的正整数。
[0093]对应上述写计数标记方法,针对有效缓冲块进行写计数比较与有效数据的整合;方法具体如下:
[0094]将各个物理块的第一写计数进行比较,如果第一写计数相同则顺次比较后续写计数,直到出现写计数不同则停止比较;视写计数大的物理块中写入的数据作为最后写入的数据。在同一缓冲块中所有物理页的写计数相同,但写入的顺序是按照物理页排列顺序进行的。
[0095]本实施例所述方法在图4所示实施例的基础之上,进一步的结合了一种关于写计数的技术方案,所以本实施例进一步存在的有益效果是:所述写计数方法在不同逻辑块对应的缓冲块各自独立进行写计数的标记,互不关联;并且所述的层级写计数标记方法仅在缓冲块写入的时候标记和递增写计数,而在有效数据整合的过程中有效数据不再发生任何改变;所以本实施例所述方法实现了对于COPYBACK硬件加速的支持,可以实现通过COPYBACK硬件加速提高NAND的运行速度;另外,本实施例中所述层级的写计数标记方法降低了写计数递增的速度,并在逻辑块重新与物理块建立映射关系时重新标记写计数,避免了写计数不断的累计递增导致的写计数数值越来越大,从而节省了整个计算机系统内存和存储空间;本实施例中所述方法技术方案更加完善,公开更加充分。
[0096]另外,还可以在图4或图6所示的方法实施例的基础之上,进一步结合以下优化方案:
[0097]在选取物理块与逻辑块建立映射关系的时候,采用随机选取物理块与逻辑块建立映射关系,并开始后续写入的方法。按照上述方法得以实现从概率上达到所有物理块的写平衡,使得NAND芯片中所有物理块的擦写次数基本相等,延长了 NAND芯片的使用寿命。
[0098]参见图7所示,为本发明所述物理块写入系统的一个具体实施例。本实施例中所述系统为对应图4所示方法实施例而设立的系统,所以具体的,本实施例所述系统如下:
[0099]所述系统中逻辑块与多个物理块之间存在映射关系,所述多个物理块包括数据块和特定数量的缓冲块;所述数据块包括原数据块和新数据块,所述缓冲块的特定数量为n,η为大于I的整数,所述系统具体包括:
[0100]映射模块、用于建立逻辑块与物理块的映射关系;
[0101]写入模块、用于顺次向缓冲块写入数据,完成η个缓冲块的写入;并完成补充模块新选取的缓冲块的写入;
[0102]无效判断模块、用于将第k缓冲块与在其之后写入的所有缓冲块进行对照,判断第k缓冲块之后写入的缓冲块对应的扇区范围是否涵盖第k缓冲块对应的扇区范围,如果涵盖则判定第k缓冲块为无效缓冲块,否则将其判定为有效缓冲块;解除无效缓冲块与逻辑块的映射关系;k为大于O且小于η的整数;
[0103]补充模块、用于再选取与无效缓冲块相等数量的物理块作为缓冲块;
[0104]有效判断模块、用于在η个缓冲块均为有效缓冲块时,从原数据块及有效缓冲块中查找有效数据;
[0105]拷贝模块,用于将所述有效数据拷贝至新数据块。
[0106]本实施例存在的有益效果是:实现在整合过程中所有的缓冲块均为有效缓冲块,最大程度的减少数据整合的次数,延长了 NAND芯片的使用寿命。
[0107]以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【权利要求】
1.一种物理块写入方法,其特征在于,所述方法中逻辑块与多个物理块之间存在映射关系,所述多个物理块包括数据块和特定数量的缓冲块;所述数据块包括原数据块和新数据块,所述缓冲块的特定数量为η,η为大于I的整数,所述方法具体步骤如下: a、建立逻辑块与物理块的映射关系; b、顺次向缓冲块写入数据,完成η个缓冲块的写入; C、将第k缓冲块与在其之后写入的所有缓冲块进行对照,判断第k缓冲块之后写入的缓冲块对应的扇区范围是否涵盖第k缓冲块对应的扇区范围,如果涵盖则判定第k缓冲块为无效缓冲块,否则将其判定为有效缓冲块;解除无效缓冲块与逻辑块的映射关系; d、再选取与无效缓冲块相等数量的物理块作为缓冲块,建立新选取的缓冲块与逻辑块的映射关系,并完成新选取的缓冲块的写入; e、重复执行步骤c_d,直到η个缓冲块均为有效缓冲块,则从原数据块及有效缓冲块中查找有效数据;将所述有效数据拷贝至新数据块; k为大于O且小于η的整数。
2.根据权利要求1所述方法,其特征在于,所述物理块包括多个物理页,所述逻辑块包括多个扇区,且一个物理块包括的物理页的数量等于一个逻辑块包括的扇区的数量,则所述建立逻辑块与物理块的映射关系具体为: 将物理块中的物理页对应到逻辑块中的扇区上。
3.根据权利要求2所述方法,其特征在于,所述第k缓冲块之后写入的缓冲块对应的扇区范围涵盖第k缓冲块对应的扇区范围具体为: 当任意一个与第k缓冲块中物理页对应的扇区,均在第k缓冲块之后写入的缓冲块中存在对应的物理页,则认为第k缓冲块之后写入的缓冲块对应的扇区范围涵盖第k缓冲块对应的扇区范围。
4.根据权利要求1所述方法,其特征在于,所述从各个物理块中查找有效数据具体为: 将最后写入数据作为该扇区的有效数据。
5.根据权利要求1所述方法,其特征在于,所述方法还包括: 再向依次向各缓冲块写入数据时,按照时间顺序为各缓冲块标记依次递增的写计数。
6.根据权利要求5所述方法,其特征在于,所述从各个物理块中查找有效数据还包括: 当所述将有效数据拷贝至新数据块的过程中断并重新开始时,根据预设的比较机制比较原数据块及有效缓冲块写计数,从而找到写计数较大的数据为最后写入的数据,并将其作为有效数据。
7.根据权利要求1所述方法,其特征在于,所述方法还包括: 将有效数据拷贝至新数据块中之后,取消缓冲块和原数据块与逻辑块的映射关系。
8.根据权利要求1-7任意一项所述方法,其特征在于,所述方法中随机选取物理块与逻辑块建立映射关系并写入。
9.根据权利要求1-7任意一项所述方法,其特征在于,所述物理块包括多个物理页,则所述为缓冲块标记写计数具体为: 将写计数标记在每个物理页中,当同一物理块中不同物理页的写计数不同,则以该物理块中第O物理页的写计数为有效写计数。
10.一种物理块写入系统,其特征在于,所述系统中逻辑块与多个物理块之间存在映射关系,所述多个物理块包括数据块和特定数量的缓冲块;所述数据块包括原数据块和新数据块,所述缓冲块的特定数量为η,η为大于I的整数,所述系统具体包括: 映射模 块、用于建立逻辑块与物理块的映射关系; 写入模块、用于顺次向缓冲块写入数据,完成η个缓冲块的写入;并完成补充模块新选取的缓冲块的写入; 无效判断模块、用于将第k缓冲块与在其之后写入的所有缓冲块进行对照,判断第k缓冲块之后写入的缓冲块对应的扇区范围是否涵盖第k缓冲块对应的扇区范围,如果涵盖则判定第k缓冲块为无效缓冲块,否则将其判定为有效缓冲块;解除无效缓冲块与逻辑块的映射关系;k为大于O且小于η的整数; 补充模块、用于再选取与无效缓冲块相等数量的物理块作为缓冲块; 有效判断模块、用于在η个缓冲块均为有效缓冲块时,从原数据块及有效缓冲块中查找有效数据; 拷贝模块,用于将所述有效数据拷贝至新数据块。
【文档编号】G06F3/06GK103970674SQ201310037340
【公开日】2014年8月6日 申请日期:2013年1月30日 优先权日:2013年1月30日
【发明者】李晓辉, 黄亮, 杨汉森, 胡胜发 申请人:安凯(广州)微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1