用于闪存存储器的数据擦除方法及装置制造方法

文档序号:6766103阅读:140来源:国知局
用于闪存存储器的数据擦除方法及装置制造方法
【专利摘要】本发明公开了一种用于闪存存储器的数据擦除方法及装置。该方法包括:接收数据擦除指令,数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少一个数据部分;当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,并根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少一个数据部分时,查找记录的所述至少一个数据部分的存放地址,并根据所述查找到的存放地址,擦除所述至少一个数据部分。本发明可用于闪存存储器的实现技术中。
【专利说明】用于闪存存储器的数据擦除方法及装置
【技术领域】
[0001]本发明涉及存储【技术领域】,尤其涉及一种用于闪存存储器的数据擦除方法及装置。
【背景技术】
[0002]Flash Memory (闪存存储器)是ー种非易失性存储器,具有断电后数据不消失的特点,因此,被广泛的作为外部存储器使用。
[0003]闪存存储器的存储方式与传统机械存储器不同,举例来说,一个文件的全部或部分数据存储在闪存存储器的一个存储区域中,当用户复存该数据时,例如用户修改了该数据并直接保存,该复存的数据并不会被闪存存储器写入原存储区域中,而是被闪存存储器写入闪存存储器中ー个新的存储区域,原存储区域上的数据没有改变。这样一来,表面上看来该数据已经被用户复存的数据替代,但实际上,即使用户删除了复存的数据,用户复存前的数据依然存在于闪存存储器中,专业技术人员仍然可以通过某些技术手段或工具读取这些还存在于闪存存储器上的数据,因此无法保证数据不被泄露。
[0004]现有技术中,为实现闪存存储器中所存储的数据的安全擦除,即擦除在闪存存储器中存储的与该数据相关的所有数据部分,包括复存前的数据和复存后的数据,通常有两种方式,ー种方式是擦除闪存存储器的系统表项,达到数据销毁的目的;另ー种方式则是对闪存存储器进行全盘擦除,即全盘格式化。然而,这两种擦除方式都有不足之处,采用第一种方式会导致闪存存储器不能再被使用,采用第二种方式会导致全盘数据丢失,因此影响了闪存存储器中存储的除需要擦除的数据外其他数据的读写。

【发明内容】

[0005]本发明实施例提供一种用于闪存存储器的数据擦除方法及装置,既能实现需要擦除的数据的安全擦除,而且不影响闪存存储器中存储的除需要擦除的数据外其他数据的读与。
[0006]本发明的第一方面,提供一种用于闪存存储器的数据擦除方法,该方法包括:
[0007]接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少ー个数据部分;
[0008]根据所述数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分,其中:
[0009]当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,井根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;
[0010]当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少ー个数据部分时,查找记录的所述至少一个数据部分的存放地址,井根据所述查找到的存放地址,擦除所述至少一个数据部分。
[0011]在第一方面的第一种可能的实现方式中,所述记录的每个所述数据部分的存放地址包括逻辑块地址LBA (Logic Block Address)和数据块号BN (Block Number);
[0012]所述擦除所述数据对应的数据部分中需要擦除的数据部分包括:
[0013]根据所述需要擦除的数据部分的存放地址中的BN,确定存储所述需要擦除的数据部分的数据块,根据所述需要擦除的数据部分的存放地址中的LBA,确定存储所述需要擦除的数据部分的页;
[0014]根据所述确定的数据块和页,查找并擦除所述需要擦除的数据部分。
[0015]结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中:
[0016]所述数据对应至少两个数据部分;
[0017]在这种情况下,在所述接收数据擦除指令之前,所述方法还包括:
[0018]写入所述数据对应的至少两个数据部分,并记录写入的每个所述数据部分的存放地址。
[0019]结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中:
[0020]所述闪存存储器中设置有映射表和跟踪日志;
[0021]在这种情况下,所述写入数据对应的至少两个数据部分,并记录写入的每个所述数据部分的存放地址包括:
[0022]先后写入所述数据对应的至少两个数据部分,将最后写入的所述数据对应的最新数据部分的存放地址记录在所述映射表中,将在所述最新数据部分之前写入的历史数据部分的存放地址记录在所述跟踪日志中;
[0023]所述当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,并根据所述查找到的存放地址,擦除所述数据对应的所有数据部分包括:
[0024]当所述数据擦除指令指示擦除所述数据时,查找所述映射表中记录的所述最新数据部分的存放地址,根据所述查找到的存放地址擦除所述最新数据部分,以及查找所述跟踪日志中记录的所述历史数据部分的存放地址,根据所述查找到的存放地址擦除所述历史数据部分。
[0025]当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少ー个数据部分吋,如果指示擦除的数据部分包括最新数据部分,查找所述映射表中记录的所述最新数据部分的存放地址,根据所述查找到的存放地址擦除所述最新数据部分,如果指示擦除的数据部分包括历史数据部分,查找所述跟踪日志中记录的所述历史数据部分的存放地址,根据所述查找到的存放地址擦除所述历史数据部分。
[0026]结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中:
[0027]所述先后写入的至少两个数据部分包括最新数据部分和在所述最新数据部分的前次写入的次新数据部分;
[0028]在这种情况下,所述先后写入所述数据对应的至少两个数据部分,将最后写入的所述数据对应的最新数据部分的存放地址记录在所述映射表中,将在所述最新数据部分之前写入的历史数据部分的存放地址记录在所述跟踪日志中包括:[0029]写入所述次新数据部分,在所述映射表中记录所述次新数据部分的存放地址;
[0030]写入所述最新数据部分,将所述映射表记录的所述次新数据部分的存放地址移送至所述跟踪日志中,并在所述映射表中记录所述最新数据部分的存放地址。
[0031]结合第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述方法还包括:
[0032]确定所述跟踪日志的空闲存储空间是否低于存储空间阈值;
[0033]如果所述确定的跟踪日志的空闲存储空间低于所述存储空间阈值,根据所述跟踪日志中记录的存放地址,強制回收历史数据部分的存储空间,并释放所述跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
[0034]结合第一方面或第一方面的上述各个可能的实现方式中的任意一个实现方式,在第一方面的第六种可能的实现方式中,在擦除所述数据对应的所有数据部分或者擦除所述至少ー个数据部分后,所述方法还包括:
[0035]擦除所述记录的所述擦除的数据部分的存放地址。
[0036]结合第一方面或第一方面的上述各个可能的实现方式中的任意一个实现方式,在第一方面的第七种可能的实现方式中,所述擦除所述数据对应的数据部分中需要擦除的数据部分包括:
[0037]复写所述需要擦除的数据部分;
[0038]擦除所述复写后的数据部分。
[0039]结合第一方面或第一方面的上述各个可能的实现方式中的任意一个实现方式,在第一方面的第八种可能的实现方式中,所述方法还包括:
[0040]擦除所述闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间;
[0041]擦除历史记录的所述垃圾数据对应的数据部分的存放地址。
[0042]本发明的第二方面,提供一种用于闪存存储器的数据擦除装置,该装置包括:
[0043]接收单元,用于接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少ー个数据部分;
[0044]擦除単元,用于根据所述接收単元接收的数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分,其中:
[0045]当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,井根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;
[0046]当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少ー个数据部分时,查找记录的所述至少一个数据部分的存放地址,井根据所述查找到的存放地址,擦除所述至少一个数据部分。
[0047]在第二方面的第一种可能的实现方式中,所述记录的每个所述数据部分的存放地址包括逻辑块地址LBA和数据块号BN ;
[0048]所述擦除単元具体用于:
[0049]根据所述需要擦除的数据部分的存放地址中的BN,确定存储所述需要擦除的数据部分的数据块,根据所述需要擦除的数据部分的存放地址中的LBA,确定存储所述需要擦除的数据部分的页;
[0050]根据所述确定的数据块和页,查找并擦除所述需要擦除的数据部分。[0051]结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中:
[0052]所述数据对应至少两个数据部分;
[0053]所述装置还包括:
[0054]写入単元,用于写入所述数据对应的至少两个数据部分,并记录写入的每个所述数据部分的存放地址。
[0055]结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中:
[0056]所述闪存存储器中设置有映射表和跟踪日志;
[0057]在这种情况下,所述写入単元具体用于:
[0058]先后写入所述数据对应的至少两个数据部分,将最后写入的所述数据对应的最新数据部分的存放地址记录在所述映射表中,将在所述最新数据部分之前写入的历史数据部分的存放地址记录在所述跟踪日志中;
[0059]而所述擦除単元具体用于:
[0060]当所述数据擦除指令指示擦除所述数据时,查找所述映射表中记录的所述最新数据部分的存放地址,根据所述查找到的存放地址擦除所述最新数据部分,以及查找所述跟踪日志中记录的所述历史数据部分的存放地址,根据所述查找到的存放地址擦除所述历史数据部分。
[0061]结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中:
[0062]所述写入単元先后写入的至少两个数据部分包括最新数据部分和在所述最新数据部分的前次写入的次新数据部分;
[0063]在这种情况下,所述写入単元具体用于:
[0064]写入所述次新数据部分,在所述映射表中记录所述次新数据部分的存放地址;
[0065]写入所述最新数据部分,将所述映射表记录的所述次新数据部分的存放地址移送至所述跟踪日志中,并在所述映射表中记录所述最新数据部分的存放地址。
[0066]结合第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述装置还包括:
[0067]确定单元,用于确定所述跟踪日志的空闲存储空间是否低于存储空间阈值;
[0068]所述擦除単元还用于:如果所述确定单元确定的跟踪日志的空闲存储空间低于所述存储空间阈值时,根据所述跟踪日志中记录的历史数据的存放地址,強制回收历史数据部分的存储空间,并释放所述跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
[0069]结合第二方面或第二方面的上述各个可能的实现方式中的任意一个实现方式,在第二方面的第六种可能的实现方式中,所述擦除単元还用于擦除所述记录的所述擦除的数据部分的存放地址。
[0070]结合第二方面或第二方面的上述各个可能的实现方式中的任意一个实现方式,在第二方面的第七种可能的实现方式中,所述擦除単元具体用干:
[0071]复写所述需要擦除的数据部分;[0072]擦除所述复写后的数据部分。
[0073]结合第二方面或第二方面的上述各个可能的实现方式中的任意一个实现方式,在第二方面的第八种可能的实现方式中,所述擦除単元还用于:擦除所述闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间,并擦除历史记录的所述垃圾数据对应的数据部分的存放地址。
[0074]本发明的第三方面,提供另ー种用于闪存存储器的数据擦除装置,该装置包括:
[0075]处理器、存储器、通信接口和总线;
[0076]所述处理器、所述存储器和所述通信接ロ通过所述总线连接并完成相互间的通ィ目;
[0077]所述存储器用于存储可执行程序代码;
[0078]所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:
[0079]接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少ー个数据部分;
[0080]根据所述数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分,其中:
[0081]当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,井根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;
[0082]当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少ー个数据部分时,查找记录的所述至少一个数据部分的存放地址,井根据所述查找到的存放地址,擦除所述至少一个数据部分。
[0083]在第三方面的第一种可能的实现方式中,所述处理器记录的每个所述数据部分的存放地址包括逻辑块地址LBA和数据块号BN ;
[0084]所述处理器具体用于:
[0085]根据所述需要擦除的数据部分的存放地址中的BN,确定存储所述需要擦除的数据部分的数据块,根据所述需要擦除的数据部分的存放地址中的LBA,确定存储所述需要擦除的数据部分的页;
[0086]根据所述确定的数据块和页,查找并擦除所述需要擦除的数据部分。
[0087]结合第三方面或第三方面的的第一种可能的实现方式中,在第三方面的第二种可能的实现方式中:
[0088]所述数据对应至少两个数据部分;
[0089]在这种情况下,所述处理器具体用于:
[0090]写入所述数据对应的至少两个数据部分,并记录写入的每个所述数据部分的存放地址。
[0091]结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中:
[0092]所述闪存存储器中设置有映射表和跟踪日志;
[0093]在这种情况下,所述处理器具体用于:
[0094]先后写入所述数据对应的至少两个数据部分,将最后写入的所述数据对应的最新数据部分的存放地址记录在所述映射表中,将在所述最新数据部分之前写入的历史数据部分的存放地址记录在所述跟踪日志中;
[0095]当所述数据擦除指令指示擦除所述数据时,查找所述映射表中记录的所述最新数据部分的存放地址,根据所述查找到的存放地址擦除所述最新数据部分,以及查找所述跟踪日志中记录的所述历史数据部分的存放地址,根据所述查找到的存放地址擦除所述历史数据部分。
[0096]结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中:
[0097]所述处理器先后写入的至少两个数据部分包括最新数据部分和在所述最新数据部分的前次写入的次新数据部分;
[0098]在这种情况下,所述处理器具体用于:
[0099]写入所述次新数据部分,在所述映射表中记录所述次新数据部分的存放地址;
[0100]写入所述最新数据部分,将所述映射表记录的所述次新数据部分的存放地址移送至所述跟踪日志中,并在所述映射表中记录所述最新数据部分的存放地址。
[0101]结合第三方面的第三种可能的实现方式或第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述处理単元还用于:
[0102]确定所述跟踪日志的空闲存储空间是否低于存储空间阈值;
[0103]如果所述确定的跟踪日志的空闲存储空间低于所述存储空间阈值时,根据所述跟踪日志中记录的历史数据的存放地址,強制回收历史数据部分的存储空间,并释放所述跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
[0104]结合第三方面或或第三方面的上述各个可能的实现方式中的任意一个实现方式,在第三方面的第六种可能的实现方式中,所述处理器还用于:
[0105]擦除所述记录的所述擦除的数据部分的存放地址。
[0106]结合第三方面或第三方面的上述各个可能的实现方式中的任意一个实现方式,在第三方面的第七种可能的实现方式中,所述处理器具体用于:
[0107]复写所述需要擦除的数据部分;
[0108]擦除所述复写后的数据部分。
[0109]结合第三方面或第三方面的上述各个可能的实现方式中的任意一个实现方式,在第三方面的第八种可能的实现方式中,所述处理器还用于:
[0110]擦除所述闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间,并擦除历史记录的所述垃圾数据对应的数据部分的存放地址。
[0111]本发明的第四方面,提供ー种闪存存储器,所述闪存存储器中设置有数据擦除装置,所述数据擦除装置为本发明第二方面或第二方面的上述各个可能的实现方式中的任意一个实现方式所提供的数据擦除装置或者第三方面或第三方面的上述各个可能的实现方式中的任意一个实现方式所提供的数据擦除装置。
[0112]在第四方面的第一种可能的实现方式中,所述闪存存储器包括以下任意ー种:
[0113]固态硬盘、SM卡(Smart Media,智能媒体卡)、CF卡(Compact Flash,紧凑式闪存卡)、MMC 卡(Multi Media Card ,多媒体记忆卡)、SD 卡(Secure Digital Memory Card,安全数码卡)、记忆棒(Memory Stick)、XD卡(XD-Picture Card, XD图像卡)和微硬盘。[0114]本发明实施例提供的用于闪存存储器的数据擦除的方法、数据擦除装置及闪存存储器,在接收到数据擦除指令后进行数据擦除吋,根据数据擦除指令,查找记录的存放地址,擦除所述数据对应的数据部分中需要擦除的数据部分。这样,能够根据每个数据部分的存放地址找到写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除指定的某个或某几个数据部分而不影响除需要擦除的数据外其他数据的读写。
【专利附图】

【附图说明】
[0115]为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0116]图1为本发明实施例提供的数据擦除方法的一种流程示意图;
[0117]图2为本发明实施例提供的数据擦除方法的另ー种流程示意图;
[0118]图3为本发明实施例提供的数据擦除方法的一种示例性示意图;
[0119]图4为本发明实施例提供的数据擦除方法的另ー种流程示意图;
[0120]图5为本发明实施例提供的数据擦除装置的一种结构示意图;
[0121]图6为本发明实施例提供的数据擦除装置的另ー种结构示意图;
[0122]图7为本发明实施例提供的数据擦除装置的另ー种结构示意图;
[0123]图8为本发明实施例提供的数据擦除装置的另ー种结构示意图。
【具体实施方式】
[0124]下面将结合本发明实施例中的附图,对本发明实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0125]为了使本领域的技术人员更好的理解本发明的技术方案,首先对本发明中涉及的闪存存储器的存储结构进行简要介绍。
[0126]闪存存储器通常由ー个内部寄存器和存储矩阵组成,存储矩阵中包括若干块(Block),每个块又包含若干页(Page),每个页又包含若干字节(Bytes)。比如,可以以4224个Bytes组成ー个Page,128个Page组成ー个Block,8192个Block组成整个闪存存储器。
[0127]通常来讲,闪存存储器对数据的读写都是以Page为单位的,即,闪存存储器的数据读写是ー个Page、ー个Page来进行的,亦即一次要读出ー个Page的数据,一次要写入一个Page的数据。
[0128]以下对本发明实施例提供用于闪存存储器的数据擦除的方法和装置进行详细说明。
[0129]需要说明的是,本发明实施例中,“擦除”与“删除”概念相似。
[0130]本发明实施例提供了一种数据擦除的方法,由闪存存储器执行,具体由闪存存储器中设置的数据擦除装置执行,其中,闪存存储器与计算机主机相连接,用户通过主机对闪存存储器中所存储的数据进行操作。
[0131]如图1所示,本发明实施例提供一种用于闪存存储器的数据擦除的方法,包括如下步骤:
[0132]101,接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少ー个数据部分;
[0133]优选地,可以是数据擦除装置从主机HOST接收数据擦除指令。主机发送的数据擦除指令可以指示数据擦除装置擦除数据或者数据对应的数据部分中的至少ー个数据部分。
[0134]本发明实施例中,每份数据存储于闪存存储器中,在闪存存储器中,每份数据实际上对应至少ー个数据部分,本发明实施例中“每份数据对应至少ー个数据部分”是指,在一份数据最初存储于闪存存储器时并未经过任何的复存时,此时,该份数据仅对应ー个数据部分,即该份数据的原始数据;而根据前文的【背景技术】的描述可知,在对该份数据进行一次复存时,例如用户对该份数据的原始数据进行了修改并进行直接保存,闪存服务器将在保留原始数据的同时,存储修改后的该份数据,这种情况下,该份数据对应两个数据部分,一个为最初存储的原始数据,一个为本次复存的修改后的数据。以此类推,每进行一次复存,该份数据对应的数据部分将增加ー个。也就是说,本发明实施例中,每份数据对应的数据部分包括该份数据的原始数据以及毎次复存的数据。
[0135]需要说明的是,本发明实施例中,“复存”意为重复保存而并非另存,复存表示用户意图以本次保存的数据覆盖之前的文件。即复存后,对于用户而言,复存前的原文件已经被复存的文件所替代,是不可见的。
[0136]本发明实施例中,在进行该份数据的擦除时,用户通过主机向闪存存储器下发数据删除指令,该数据擦除指令可以指示擦除该份数据,即擦除该份数据对应的所有数据部分,也可以指示擦除该份数据对应的数据部分中的某个或某些数据部分。
[0137]102、根据所述数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分;
[0138]可选的,当数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,并根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;
[0139]可选的,当数据擦除指令指示擦除所述数据对应的数据部分中的至少ー个数据部分时,查找记录的所述至少一个数据部分的存放地址,井根据所述查找到的存放地址,擦除所述至少一个数据部分。
[0140]本发明实施例中,在数据存储到闪存存储器时,即数据写入时,记录了该数据对应的每个数据部分的存放地址,举例而言,闪存存储器记录的每个数据部分的存放地址可包括逻辑块地址(Logic Block Address,简称LBA)和数据块号(Block Number,简称BN)。这里需要说明的是,所记录的LBA也可被记录为LBN (Logic Block Number,逻辑块号),LBA和LBN的意义相同,同为逻辑地址,只是表征的存储空间大小不同。其中,LBA与物理块地址(Physics Block Address,简称PBA)存在着对应关系,PBA用于记录数据在闪存存储器中的物理位置,即数据记录在哪ー个Page。在已知LBA的情况下,即可知LBA对应的PBA,从而通过PBA找到数据。
[0141]具体的,如果记录的存放地址包括LBA和BN,闪存存储器将根据BN确定出闪存存储器中需要擦除的数据部分的数据块,根据LBA,具体根据LBA和PBA的映射关系,确定出需要擦除的数据部分的在哪些页中,从而找到需要擦除的数据部分并进行擦除。
[0142]因此,本步骤中,如果数据擦除指令指示擦除该份数据,将根据写入时记录的存放地址,查找到该份数据对应的所有数据部分并执行数据擦除,即可以完全擦除该份数据对应的所有数据部分,即实现数据的安全擦除。而且,如果数据擦除指令指示擦除所述数据对应的数据部分中的至少ー个数据部分,可以查找到该至少一个数据部分的存放地址,从而找到该至少ー个数据部分并进行擦除,不影响闪存存储中存储的其他数据的读写。
[0143]本发明实施例提供的用于闪存存储器的数据擦除的方法,在接收到数据擦除指令后进行数据擦除时,根据数据擦除指令,查找记录的存放地址,擦除所述数据对应的数据部分中需要擦除的数据部分。这样,能够根据每个数据部分的存放地址找到写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除指定的某个或某几个数据部分而不影响除需要擦除的数据外其他数据的读写。
[0144]如图2所示,本发明的一种实施例提供的数据擦除的方法包括以下步骤:
[0145]S11,写入数据对应的数据部分,并记录写入的每个数据部分的存放地址。
[0146]本步骤中,每份数据对应至少ニ个数据部分,也就是说,本步骤中,写入的数据部分包括至少ニ个。
[0147]需要说明的是,本发明实施例中,“每份数据对应至少ー个数据部分”是指,在ー份数据最初存储于闪存存储器时并未经过任何的复存时,此时,该份数据仅对应ー个数据部分,即该份数据的原始数据;而根据前文的【背景技术】的描述可知,在对该份数据进行一次复存时,例如用户对该份数据的原始数据进行了修改并进行直接保存,闪存服务器将在保留原始数据的同时,存储修改后的该份数据,这种情况下,该份数据对应两个数据部分,ー个为最初存储的原始数据,一个为本次复存的修改后的数据。以此类推,每进行一次复存,该份数据对应的数据部分将增加ー个。也就是说,本发明实施例中,每份数据对应的数据部分包括该份数据的原始数据以及每次复存的数据。
[0148]需要说明的是,本发明实施例中,“复存”意为重复保存而并非另存,复存表示用户意图以本次保存的数据覆盖之前的文件。即复存后,对于用户而言,复存前的原文件已经被复存的文件所替代,是不可见的。
[0149]因此,本步骤中,写入每份数据对应的数据部分,实际上是首先写入该份数据的原始数据、然后按照复存的时间顺序,先后写入该份数据每次复存的数据,当然,如果该份数据未经过任何一次的复存,本步骤中,仅写入该份数据的原始数据。
[0150]需要说明的是,各数据部分的写入过程与现有技术相同,这里不在赘述。
[0151]与现有技术不同的是,本步骤中,每写入一个数据部分,将记录该数据部分在闪存存储器中的存放地址,这样可以通过记录的存放地址,查找到每份数据对应的任何ー个写入的数据部分,因此,在执行对ー份数据对应的数据部分的擦除时,可以通过所记录的存放地址,查找到该份数据对应的每个数据部分,可以完全擦除该份数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除该份数据的某个或某几个数据部分而不影响闪存存储中存储的其他数据的读写。
[0152]具体而言,本步骤中,闪存存储器记录的每个数据部分的存放地址可包括逻辑块地址(Logic Block Address,简称LBA)和数据块号(Block Number,简称BN)。这里需要说明的是,所记录的LBA也可被记录为LBN (Logic Block Number,逻辑块号),LBA和LBN的意义相同,同为逻辑地址,只是表征的存储空间大小不同。
[0153]LBA与物理块地址(Physics Block Address,简称PBA)存在着对应关系,PBA用于记录数据在闪存存储器中的物理位置,即数据记录在哪ー个Page。在已知LBA的情况下,即可知LBA对应的PBA,从而通过PBA找到数据。
[0154]举例说明,假设本步骤中写入数据A对应的数据部分,数据A存放地址的记录格式可以为:(逻辑块地址,数据块号)。结合图2所示,本步骤中,首先,用户向主机下发存储数据A到闪存存储器的指令,主机将数据A的原始数据发送给闪存存储器,并向闪存存储器下发写命令,闪存存储器将写入数据A对应的原始数据n,并记录了该数据部分n的存放地址为(LBAn,BlockN),其中,n表示数据A对应的原始数据部分。用户接下来修改并复存了存储在闪存存储器上的数据n,这里将用户对n进行修改并复存的数据称为n’,依据闪存存储器的存储原理,闪存存储器在保留n不变的前提下,将n’写入和n不同的存储区域上,并记录了更新的该数据部分n’的存放地址为(LBAn’,BlockM),其中,n’表示数据A对应的最新数据部分。可以理解的是,虽然n依然存在于闪存存储器中,但针对用户而言,数据n已经被n’所替代。接下来,用户修改并复存了存储在闪存存储器上的数据n’,这里将用户对n’进行修改并复存的数据称为n”,并记录了该数据部分n”的存放地址为(LBAn”,BlockA),这吋,n”替代了 n’成为了数据A对应的最新数据部分。此时,可以理解的是,虽然n’依然存在于闪存存储器中,但针对用户而言,数据n’已经被n”所替代。需要说明的是,这里使用LBAn, LBAn’,LBAn”意在表示分别记录的三个数据部分n、n’、n”对应的逻辑块地址,但实际上 LBAn,LBAn’,LBAn” 是同一个值。
[0155]也就是说,数据A对应三个数据部分,分别为n,n’,n”,本步骤中,先后写入了数据A对应的这三个数据部分井分别记录了这三个数据部分的存放地址。其中,n”是最后一次即最近一次写入的,可称之为数据A对应的最新数据部分,而数据n、n’是在n”之前写入的,可称之为数据A对应的历史数据部分。当然无论每份数据对应多少个数据部分,最后ー次即最近一次写入的数据部分为该份数据对应的最新数据部分,而最新数据部分之前写入的数据部分为历史数据部分。针对用户而言,历史数据部分是不可见的,即历史数据部分已经被最新数据部分所替代了,但历史数据部分还存在于闪存存储器中。
[0156]可以理解的是,上述示例中存放地址的记录方式仅为示例,对本发明不做任何限制,本领域技术人员可以选择多种存放地址的记录方式。而且,为了便于理解,示例中数据A的每个数据部分仅写入在ー个Block的ー个Page中,但可以理解的是,实际上,数据A的每个数据部分可写入到多个Page中,甚至于多个Block中的多个Page中,这种情况下,在记录存放地址时,将依据数据部分的写入情况,每个数据部分可按照一定顺序记录多个地址。
[0157]需要说明的是,用于记录写入的每个数据部分的存放地址的存储空间可以在闪存存储器的存储空间中分配,也可以在闪存存储器外接的非易失性介质里分配,在本发明中不作限定。
[0158]S12,接收数据擦除指令,该数据擦除指令指示擦除所述数据或者所述数据对应的数据部分中的至少ー个数据部分。
[0159]本步骤中,当用户需要擦除闪存存储器上的某份数据吋,将通过主机向闪存存储器发送擦除指令,以使闪存存储器擦除该份数据。主机向闪存存储器发送的数据擦除指令可以指示擦除某份数据,也可指示擦除该数据对应的数据部分中的某个或某几个数据部分。本发明实施例中,主机向闪存存储器发送的数据擦除指令指示擦除某份数据时,表示需要擦除该数据对应的所有数据部分,本发明实施例中,将这种指示擦除该数据对应的所有数据部分的数据擦除指令称为安全擦除指令。
[0160]具体的,用户通过主机向闪存存储器发送擦除指令,举例而言,通过主机下发的安全数据擦除指令可包括LBA和数据长度,该数据长度为最新数据部分对应的数据长度,这样,闪存存储器根据LBA和数据长度,确定出主机指示的需要擦除的数据部分为该份数据的所有数据部分。如果数据擦除指令为指示擦除数据对应的数据部分中的某个或某几个数据部分的擦除指令(这时,可以称为非安全擦除指令)时,通过主机下发的安全数据擦除指令可包括LBA、数据长度和数据部分标识,其中数据长度为需要擦除的数据部分的长度,主机通过数据部分标识表示出其所指示擦除的数据部分。也可能根据LBA和数据长度,确定出主机指示的需要擦除的数据部分为多份数据(比如,大于2个)的数据部分,这时候每个数据的数据部分分别进行擦除。当然,以上的数据安全擦除指令仅为示例,本领域技术人员可以进行选择或者更改。
[0161]S13,根据数据擦除指令和记录的存放地址,擦除所述写入的数据部分中需要擦除的数据部分。
[0162]如果S12步骤接收到的数据擦除指令为安全擦除指令,本步骤中,闪存存储器将根据记录的存放地址,找到该数据对应的所有数据部分并将所有数据部分均进行擦除,从而实现该数据的安全擦除。具体的,闪存存储器可以首先读取记录的该数据对应的最新数据部分的存放地址,根据读取的存放地址擦除最新数据部分,然后,按照写入时间从后向前的顺序,读取记录的该数据对应的历史数据部分的存放地址,井根据读取的存放地址擦除该数据对应的历史数据部分。这样,该数据在闪存存储器上的最新数据部分和历史数据部分完全被擦除,从而保证该数据不被泄露,从而提高数据的安全性。
[0163]需要说明的是,如果数据擦除指令指示擦除该数据对应的数据部分中的某个或某几个数据部分,那么,闪存存储器将读取其记录的这些数据部分的存放地址,从而找到这些数据部分并将这些数据部分擦除。
[0164]同样以Sll步骤中的示例为例,结合图3所示,如果S12步骤接收到的数据擦除指令指示擦除数据A,本步骤中,闪存存储器将首先其所记录的数据A的最新数据部分n”的存放地址,根据读取的存放地址找到n”并将其擦除,然后按照数据部分的写入时间,读取历史数据部分n’的存放地址,根据读取的存放地址找到n’并将其擦除,接下来读取历史数据部分n”的存放地址,根据读取的存放地址找到n”并将其擦除,至此将数据A对应的所有数据部分均进行了擦除,实现了数据A的安全擦除。
[0165]为了有效保证擦除的安全性,即有效保证所需要擦除的数据没有残留不能复原,闪存存储器在执行擦除操作时,可以首先复写这些需要擦除的数据部分,即可以先根据需要擦除的数据部分对应的存放地址,找到该数据部分存放的存储区域,对该区域进行至少ー轮的数据复写,将该区域的数据写错或写乱,再擦除复写后的该区域的数据部分。由此进一步提高数据擦除的安全性。
[0166]需要说明的是,进行复写的次数可由指示擦除的数据部分的重要性来决定,例如,数据部分可设定有安全等级,该数据部分越重要,则该数据部分的安全擦除等级越高,在擦除该数据时所需复写该数据部分的次数也就越多。至于如何设定并划分数据部分的安全等级,以及如何规定数据的安全等级与所需复写的次数之间的对应关系,本发明不做限定。
[0167]本发明实施例提供的用于闪存存储器的数据擦除的方法、写入数据对应的各数据部分时记录写入的每个数据部分的存放地址,在接收到数据擦除指令后进行数据擦除吋,根据数据擦除指令和记录的存放地址,擦除写入的数据部分中需要擦除的数据部分。这样,由于写入各数据部分时记录了各数据部分的存放地址,因此,能够根据每个数据部分的存放地址找到任何一个写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除指定的某个或某几个数据部分而不影响其他数据的读写。
[0168]进一步的,为了有效提闻存储空间的利用效率,在本发明的一个实施例中,在S13步骤将需要擦除的数据部分擦除之后,还可将其记录的所擦除的数据部分的存放地址擦除。
[0169]可选的,为了有效提高存储空间的利用效率,在本发明的一个实施例中,本发明实施例提供的用于闪存存储器的数据擦除方法还可包括以下步骤:
[0170]擦除闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间;
[0171]擦除历史记录的垃圾数据对应的数据部分的存放地址。
[0172]在闪存存储器中存在有一些由于闪存存储器的读写等操作而产生的垃圾数据,例如,通常闪存存储器中设置有映射表(Map Table),如果闪存存储器执行写操作,映射表中记录的内容将发生改变,其中原记录的部分内容将无效,从而成为了垃圾数据。按照本发明实施例提供的方法,在这些垃圾数据进行写入时,也会记录这些垃圾数据对应的数据部分的存放地址。因此,为了提高存储空间的利用效率,闪存存储器可以定时或者在指令触发下,执行垃圾数据的回收,擦除垃圾数据以及其存放地址,从而获取空白存储空间进行他用,有效提高存储空间的利用效率。
[0173]现有技术中,通常情况下,闪存存储器中设置有映射表(Map Table),用于记录各份数据对应的最新数据部分的存放地址,当闪存存储器执行了写操作,复存了ー份数据对应的数据部分时,此次写操作写入的数据部分成为了该份数据对应的最新数据部分,此时映射表项中会记录本次写操作写入的最新数据部分的存放地址,而映射表中原本记录的原最新数据部分的存放地址将失效。
[0174]为了与现有技术进行兼容,在本发明的一个实施例中,除设置映射表之外,在闪存存储器中划分出一片区域,设置为记录区域,本发明中将这片区域命名为跟踪日志(TraceLog)。其中,映射表依然发挥现有技术中的作用,用于记录每份数据对应的最新数据部分的存放地址,而跟踪日志用于记录每份数据对应的历史数据部分的存放地址。同样以前文所述的数据A为例,如图4所示,本实施例包括:
[0175]步骤21,先后写入数据A对应的三个数据部分n,n’,n”,并记录这三个数据部分的存放地址。
[0176]其中,将最后写入的最新数据部分n”的存放地址记录在映射表中,将在最新数据部分n”之前写入的历史数据部分n,n’的存放地址记录在跟踪日志中,其中,n’是在n”的前次写入的,可称之为次新数据部分,而n是最早写入的,可称之为老数据。
[0177]可以理解的,由于每次写入一个数据部分时,该写入的数据部分必定为最新数据部分,因此,本步骤中,具体的,在记录存放地址时,闪存存储器将该最新数据部分的存放地址记录在映射表中,而当再次写入ー个最新数据部分时,此时,前次写入的原最新数据部分已经变成了次新数据部分(即历史数据部分),这时,闪存存储器可以从映射表中读取次新数据部分的存放地址,并将其移送到即存储到跟踪日志中,并在映射表中记录本次存储的最新数据部分的存放地址,并失效映射表中记录的次新数据部分的存放地址。
[0178]因此,具体的,本步骤中,闪存存储器首先写入数据部分n,并在映射表中记录n的存放地址,然后,闪存存储器写入数据部分n’,在映射表中记录n’的存放地址,并从映射表中读取n的存放地址并将其存储到跟踪日志中,并使映射表中记录的n的存放地址失效,接下来,闪存存储器写入数据部分n”,在映射表中记录n”的存放地址,并从映射表中读取n’的存放地址并将其存储到跟踪日志中,并使映射表中记录的n’的存放地址失效。
[0179]步骤22,接收数据擦除指令,所述数据擦除指令指示擦除数据A。
[0180]步骤23,根据数据擦除指令和记录的存放地址,擦除数据A对应的三个数据部分n,n’,n”,从而实现数据A的安全擦除。
[0181]具体的,闪存存储器从映射表中读取记录的最新数据部分n”的存放地址,从而查找到n”并将其擦除,闪存存储器从跟踪日志中读取记录的次新数据部分n’的存放地址,从而查找到n’并将其擦除,闪存存储器从跟踪日志中读取记录的老数据n的存放地址,从而查找到n并将其擦除。
[0182]可以理解的是,如果数据擦除指令指示擦除A的三个数据部分中的ー个或两个吋,假设指示擦除n和n’,闪存存储器将从跟踪日志中读取记录的次新数据部分n’和老数据n的存放地址,从而查找到n’和n并将其擦除。
[0183]假设指示擦除n’和n”,闪存存储器将从映射表中读取记录的最新数据部分n”的存放地址,从而查找到n”并将其擦除,从跟踪日志中读取记录的次新数据部分n’存放地址,从而查找到n’并将其擦除。
[0184]进ー步的,由于跟踪日志的存储空间有限,为了保证闪存存储器的正常工作,闪存存储器可以在擦除数据部分n,n’,n”之后,将记录在跟踪日志中的数据部分n,n’的存放地址擦除,从而为跟踪日志提供足够的存储空间。
[0185]此外,可选的,可以为跟踪日志的存储空间设定存储空间阈值,如果跟踪日志的空闲存储空间低于所述存储空间阈值时,即,跟踪日志的空闲存储空间不足吋,闪存存储器可以根据所述跟踪日志中记录的历史数据部分的存放地址,強制回收历史数据部分的存储空间,并释放所述跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
[0186]可以理解的是,跟踪日志中记载了很多份数据对应的历史数据部分的存放地址,虽然历史数据部分还存在于闪存存储器中,但对于用户而言,历史数据部分已经是无用已经被覆盖的数据,因此,闪存服务器可以强制回收全部的或者部分历史数据部分,在回收历史数据部分后,释放所述跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间,从而保证跟踪日志具有足够的存储空间。
[0187]需要注意的是,本发明实施例中,当闪存存储器内的存储空间不足吋,闪存存储器内需要对利用率不高的数据块中的数据进行完全擦除以回收空白的数据块,达到释放闪存存储器的存储空间的目的,其中,利用率不高的数据块是指,历史数据部分较多而最新数据部分较少的数据块,对于用户而言,该数据块中的历史数据部分较多而最新数据部分较少意味着,该数据块中的无效数据较多而有效数据较少,故该数据块的利用率较低。因此当闪存存储器内的存储空间不足时,可以将利用率不高的数据块中的最新数据部分移送至其他数据块,则该利用率不高的数据块变成全是无效数据,即利用率为零的全脏块,此时对该数据块进行完全擦除,以回收该数据块,进而释放闪存存储器的存储空间。此时,跟踪日志中所记录的所述已擦除全脏块中的数据部分的存放地址是无意义的,故可删除跟踪日志中所述已擦除的数据部分的存放地址。
[0188]本发明提供的用于闪存存储器的数据擦除的方法,写入数据对应的各数据部分时记录写入的每个数据部分的存放地址,在接收到数据擦除指令后进行数据擦除时,根据数据擦除指令和记录的存放地址,擦除写入的数据部分中需要擦除的数据部分。这样,由于写入各数据部分时记录了各数据部分的存放地址,能够根据每个数据部分的存放地址找到任何一个写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除指定的某个或某几个数据部分而不影响其他数据的读与。
[0189]相应的,本发明实施例还提供了一种用于闪存存储器的数据擦除装置30,如图5所示,该装置30包括:
[0190]接收单元31,用于接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少ー个数据部分;
[0191]擦除単元32,用于根据接收单元31接收的数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分,其中:
[0192]当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,井根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;
[0193]当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少ー个数据部分时,查找记录的所述至少一个数据部分的存放地址,井根据所述查找到的存放地址,擦除所述至少一个数据部分。
[0194]本发明实施例提供的用于闪存存储器的数据擦除的装置30,在接收到数据擦除指令后进行数据擦除时,根据数据擦除指令,查找记录的存放地址,擦除所述数据对应的数据部分中需要擦除的数据部分。这样,能够根据每个数据部分的存放地址找到写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除指定的某个或某几个数据部分而不影响除需要擦除的数据外其他数据的读写。
[0195]本发明实施例可以用于执行上述方法实施例,详细參照方法实施例的描述。
[0196]本发明实施例还提供了一种用于闪存存储器的数据擦除装置20,如图6所示,该装置20包括:
[0197]写入単元201,用于写入数据对应的至少ー个数据部分,并记录写入的每个数据部分的存放地址;
[0198]接收单元202,用于接收数据擦除指令,该数据擦除指令指示擦除写入単元201写入的数据部分中的至少ー个数据部分;
[0199]擦除单元203,用于根据接收单元202接收的数据擦除指令和记录的存放地址,擦除该数据擦除指令指示擦除的数据部分。[0200]本发明实施例提供的用于闪存存储器的数据擦除的装置20,根据写入単元201写入数据对应的各数据部分时记录写入的每个数据部分的存放地址以及接收单元202接收的数据擦除指令,擦除単元203擦除写入単元201写入的数据部分中需要擦除的数据部分。这样,由于写入各数据部分时记录了各数据部分的存放地址,因此能够根据每个数据部分的存放地址找到任何一个写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除指定的某个或某几个数据部分而不影响其他数据的读写。
[0201]可选的,在本发明的一个实施例中,写入单元201记录的每个数据部分的存放地址包括LBA和BN ;
[0202]擦除单元203具体用于:
[0203]根据所述需要擦除的数据部分的存放地址中的BN,确定存储所述需要擦除的数据部分的数据块,根据所述需要擦除的数据部分的存放地址中的LBA,确定存储所述需要擦除的数据部分的页;根据所述确定的数据块和页,查找并擦除所述需要擦除的数据部分。
[0204]为了有效保证擦除的安全性,即有效保证所需要擦除的数据没有残留不能复原,擦除単元203在执行擦除操作时,可以首先复写这些需要擦除的数据部分,即擦除単元203可以先根据需要擦除的数据部分对应的存放地址,找到该数据部分存放的存储区域,对该该区域进行至少ー轮的数据复写,将该区域的数据写错或写乱,再擦除复写后的该区域的数据部分,由此进ー步提高数据擦除的安全性。
[0205]可选的,为了有效提高存储空间的利用效率,在本发明的一个实施例中,擦除単元203还用于擦除写入単元201记录的所擦除的数据部分的存放地址。
[0206]进ー步的,在本发明的一个实施例中,擦除単元203还用于擦除闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间,并擦除历史记录的垃圾数据对应的数据部分的存放地址。
[0207]可选的,在本发明的一个实施例中,所述数据对应至少两个数据部分;
[0208]在这种情况下,写入単元201具体用于:
[0209]写入所述数据对应的至少两个数据部分,并记录最后写入的数据对应的最新数据部分的存放地址和最新数据部分之前写入的历史数据部分的存放地址;
[0210]而擦除単元203具体用于:
[0211]如果数据擦除指令指示擦除数据,读取记录的最新数据部分的存放地址,根据所述读取的存放地址擦除所述最新数据部分,以及读取记录的所述历史数据部分的存放地址,根据所述读取的存放地址擦除所述历史数据部分;
[0212]或者
[0213]如果数据擦除指令指示擦除数据对应的数据部分中的一个或几个数据部分,读取记录的一个或几个数据部分的存放地址,根据所述读取的存放地址擦除所述ー个或几个数据部分。
[0214]可选的,在本发明的一个实施例中:
[0215]写入単元201写入至少两个数据部分;
[0216]数据擦除装置20中设置有映射表和跟踪日志,其中,映射表用于记录每份数据对应的最新数据部分的存放地址,而跟踪日志用于记录每份数据对应的历史数据部分的存放地址。
[0217]在这种情况下,写入単元201具体用于:
[0218]先后写入该数据对应的至少两个数据部分,将最后写入的该数据对应的最新数据部分的存放地址记录在映射表中,将在最新数据部分之前写入的历史数据部分的存放地址记录在跟S示日志中。
[0219]擦除单元203具体用于:
[0220]如果所述数据擦除指令指示擦除所述数据,读取所述映射表中记录的所述最新数据部分的存放地址,根据所述读取的存放地址擦除所述最新数据部分,以及读取所述跟踪日志中记录的所述历史数据部分的存放地址,根据所述读取的存放地址擦除所述历史数据部分。
[0221]进ー步的,在本发明的一个实施例中,先后写入的至少两个数据部分包括最新数据部分和在最新数据部分的前次写入的次新数据部分。
[0222]在这种情况下,写入単元201具体用于:
[0223]写入次新数据部分,在映射表中记录次新数据部分的存放地址;
[0224]写入最新数据部分,将映射表记录的次新数据部分的存放地址移送至跟踪日志中,并在映射表中记录最新数据部分的存放地址。
[0225]进ー步的,在本发明的一个实施例中,如图7所示,该装置20还包括:
[0226]确定单元204,用于确定跟踪日志的空闲存储空间是否低于存储空间阈值;
[0227]擦除単元203还用于:如果确定単元204确定的跟踪日志的空闲存储空间低于存储空间阈值时,根据跟踪日志中记录的历史数据的存放地址,強制回收历史数据部分的存储空间,并释放跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
[0228]需要说明的是,本发明实施例提供的数据擦除装置20的各结构单元的具体功能请參见前文方法实施例。
[0229]图8所示为本发明提供的数据擦除装置的另ー种实施例,如图8所示,本实施例提供的数据擦除装置40,包括处理器401、存储器402、通信接ロ 403和总线404。处理器401、存储器402和通信接ロ 403通过总线404连接并完成相互间的通信。所述总线404可以是エ业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展エ业标准体系结构(Extended IndustryStandard Architecture,简称为EISA)总线等。所述总线404可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有ー根总线或ー种类型的总线。其中:
[0230]存储器402用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器402可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少ー个磁盘存储器。
[0231]处理器401通过读取存储器402中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:
[0232]接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少ー个数据部分;
[0233]根据所述数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分,其中:
[0234]当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,井根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;
[0235]当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少ー个数据部分时,查找记录的所述至少一个数据部分的存放地址,井根据所述查找到的存放地址,擦除所述至少一个数据部分。
[0236]在本发明的一个实施例中,处理器401用于:
[0237]写入数据对应的数据部分,数据对应至少ー个数据部分,并记录写入的每个数据部分的存放地址;
[0238]接收数据擦除指令,数据擦除指令指示擦除数据或者数据对应的数据部分中的至少ー个数据部分;
[0239]根据数据擦除指令和记录的存放地址,擦除写入的数据部分中需要擦除的数据部分。
[0240]本发明实施例提供的用于闪存存储器的数据擦除的装置,处理器401根据写入数据时记录写入的每个数据部分的存放地址以及接收的数据擦除指令,擦除写入的数据部分中需要擦除的的数据部分数据擦除指令指示擦除的数据部分。这样,能够根据每个数据部分的存放地址找到任何一个写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除也就是说,数据擦除装置40不仅能够实现数据的安全擦除,而且可以根据用户要求擦除指定的数据部分,在擦除指定数据后并而不影响其他数据的读与。
[0241]可选的,在本发明的一个实施例中,处理器401记录的每个数据部分的存放地址包括逻辑块号LBA和数据块号BN ;
[0242]所述处理器具体用于:
[0243]根据所述需要擦除的数据部分的存放地址中的BN,确定存储所述需要擦除的数据部分的数据块,根据所述需要擦除的数据部分的存放地址中的LBA,确定存储所述需要擦除的数据部分的页;
[0244]根据所述确定的数据块和页,查找并擦除所述需要擦除的数据部分。
[0245]可选的,在本发明的一个实施例中,处理器401还用于:
[0246]擦除记录的擦除的数据部分的存放地址。
[0247]可选的,在本发明的一个实施例中,处理器401还用于:
[0248]复写所述写入的数据部分中需要擦除的数据部分;
[0249]擦除所述复写后的数据部分。
[0250]可选的,为了有效提高存储空间的利用效率,在本发明的一个实施例中,处理器401还用于:
[0251]擦除闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间,并擦除历史记录的垃圾数据对应的数据部分的存放地址。
[0252]可选的,在本发明的一个实施例中,数据对应至少两个数据部分;
[0253]处理器401具体用于:
[0254]写入所述数据对应的至少两个数据部分,并记录最后写入的数据对应的最新数据部分的存放地址和最新数据部分之前写入的历史数据部分的存放地址;
[0255]在这种情况下,处理器401具体用于:
[0256]如果数据擦除指令指示擦除数据,读取记录的最新数据部分的存放地址,根据读取的存放地址擦除最新数据部分,以及读取记录的历史数据部分的存放地址,根据读取的存放地址擦除历史数据部分;
[0257]或者
[0258]如果数据擦除指令指示擦除数据对应的数据部分中的一个或几个数据部分,读取记录的一个或几个数据部分的存放地址,根据读取的存放地址擦除一个或几个数据部分。
[0259]可选的,在本发明的一个实施例中,每份数据对应至少两个数据部分;数据擦除装置40中设置有映射表和跟踪日志。其中,映射表用于记录每份数据对应的最新数据部分的存放地址,而跟踪日志用于记录每份数据对应的历史数据部分的存放地址。
[0260]在这种情况下,处理器401具体用干:
[0261]先后写入数据对应的至少两个数据部分,将最后写入的数据对应的最新数据部分的存放地址记录在映射表中,将在最新数据部分之前写入的历史数据部分的存放地址记录在跟S示日志中;
[0262]在执行擦除操作吋,处理器401具体用于:
[0263]如果数据擦除指令指示擦除数据,读取映射表中记录的最新数据部分的存放地址,根据读取的存放地址擦除最新数据部分,以及读取跟踪日志中记录的历史数据部分的存放地址,根据读取的存放地址擦除历史数据部分。
[0264]进ー步的,在本发明的一个实施例中,先后写入的至少两个数据部分包括最新数据部分和在最新数据部分的前次写入的次新数据部分。
[0265]在这种情况下,处理器401具体用于:
[0266]写入次新数据部分,在映射表中记录次新数据部分的存放地址;
[0267]写入最新数据部分,将映射表记录的次新数据部分的存放地址移送至跟踪日志中,并在映射表中记录最新数据部分的存放地址。
[0268]可选的,在本发明的一个实施例中,处理器401还用于:确定跟踪日志的空闲存储空间是否低于存储空间阈值,如果确定的跟踪日志的空闲存储空间低于存储空间阈值吋,根据跟踪日志中记录的历史数据的存放地址,強制回收历史数据部分的存储空间,并释放跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
[0269]其中,处理器401可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific Integrated Circuit,简称为 ASIC),或者是被配置成实施本发明实施例的ー个或多个集成电路。
[0270]需说明的是,上述处理器401除了具有上述功能之外,还可用于执行上述方法实施例中的其他流程,在此不再赘述。
[0271]还需说明的是,处理器401中各功能単元的划分可以參见前述的数据擦除装置的实施例,在此不再赘述。
[0272]相应的,本发明实施例还提供了ー种闪存存储器,该闪存存储器中设置有数据擦除装置,所述数据擦除装置可以为前述实施例所提供的任意一种数据擦除装置,此处不再赘述。[0273]本发明实施例提供的闪存存储器,能够根据写入数据时记录写入的每个数据部分的存放地址,以及接收的数据擦除指令,擦除写入的数据部分中需要擦除的的数据部分。这样,能够根据每个数据部分的存放地址找到任何一个写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除。也就是说,该闪存存储器不仅实现了数据的安全擦除,而且可以根据用户要求擦除指定的数据部分,在擦除指定数据后并而不影响其他数据的读写。
[0274]可选的,在本发明的一个实施例中,闪存存储器可以为以下任意ー种闪存存储器,但不限于以下几种:
[0275]固态硬盘、智能媒体SM卡、紧凑式闪存CF卡、多媒体记忆MMC卡、安全数码SD卡、记忆棒、XD卡和微硬盘。
[0276]需要说明的是,本发明实施例提供的用于闪存存储器的数据擦除方法、装置及闪存存储器,可以广泛应用于存储领域的NAND Flash (与非门闪存)控制,尤其适用于NANDFlash的SSD (Solid State Disk,固态硬盘)系统,对此本发明不做限定。
[0277]本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相參见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处參见方法实施例的部分说明即可。
[0278]需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的単元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理単元,即可以位于ー个地方,或者也可以分布到多个网络単元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0279]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0280]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
【权利要求】
1.一种用于闪存存储器的数据擦除方法,其特征在于,包括: 接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少ー个数据部分; 根据所述数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分,其中: 当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,井根据所述查找到的存放地址,擦除所述数据对应的所有数据部分; 当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少ー个数据部分吋,查找记录的所述至少一个数据部分的存放地址,井根据所述查找到的存放地址,擦除所述至少ー个数据部分。
2.根据权利要求1所述的方法,其特征在干, 所述记录的每个所述数据部分的存放地址包括逻辑块地址LBA和数据块号BN ; 所述擦除所述数据对应的数据部分中需要擦除的数据部分包括: 根据所述需要擦除的数据部分的存放地址中的BN,确定存储所述需要擦除的数据部分的数据块,根据所述需要擦除的数据部分的存放地址中的LBA,确定存储所述需要擦除的数据部分的页; 根据所述确定的数据块和页,查找并擦除所述需要擦除的数据部分。
3.根据权利要求1或2所述的方法,其特征在干, 所述数据对应至少两个数据部分; 在所述接收数据擦除指令之前,所述方法还包括: 写入所述数据对应的至少两个数据部分,并记录写入的每个所述数据部分的存放地址。
4.根据权利要求3所述的方法,其特征在干, 所述闪存存储器中设置有映射表和跟踪日志; 所述写入数据对应的至少两个数据部分,并记录写入的每个所述数据部分的存放地址包括: 先后写入所述数据对应的至少两个数据部分,将最后写入的所述数据对应的最新数据部分的存放地址记录在所述映射表中,将在所述最新数据部分之前写入的历史数据部分的存放地址记录在 所述跟踪日志中; 所述当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,井根据所述查找到的存放地址,擦除所述数据对应的所有数据部分包括: 当所述数据擦除指令指示擦除所述数据时,查找所述映射表中记录的所述最新数据部分的存放地址,根据所述查找到的存放地址擦除所述最新数据部分,以及查找所述跟踪日志中记录的所述历史数据部分的存放地址,根据所述查找到的存放地址擦除所述历史数据部分。
5.根据权利要求4所述的方法,其特征在干, 所述先后写入的至少两个数据部分包括最新数据部分和在所述最新数据部分的前次写入的次新数据部分;所述先后写入所述数据对应的至少两个数据部分,将最后写入的所述数据对应的最新数据部分的存放地址记录在所述映射表中,将在所述最新数据部分之前写入的历史数据部分的存放地址记录在所述跟踪日志中包括: 写入所述次新数据部分,在所述映射表中记录所述次新数据部分的存放地址; 写入所述最新数据部分,将所述映射表记录的所述次新数据部分的存放地址移送至所述跟踪日志中,并在所述映射表中记录所述最新数据部分的存放地址。
6.根据权利要求4-5任一项所述的方法,其特征在于,所述方法还包括: 确定所述跟踪日志的空闲存储空间是否低于存储空间阈值; 如果所述确定的跟踪日志的空闲存储空间低于所述存储空间阈值时,根据所述跟踪日志中记录的历史数据部分的存放地址,強制回收历史数据部分的存储空间,并释放所述跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
7.根据权利要求1-6任一项所述的方法,其特征在于,在擦除所述数据对应的所有数据部分或者擦除所述至少一个数据部分后,所述方法还包括: 擦除所述记录的所述擦除的数据部分的存放地址。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述擦除所述数据对应的数据部分中需要擦除的数据部分包括: 复写所述需要擦除的数据部分; 擦除所述复写后的数据部分。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括: 擦除所闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间; 擦除历史记录的所述垃圾数据对应的数据部分的存放地址。
10.一种用于闪存存储器的数据擦除装置,其特征在于,包括: 接收单元,用于接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少ー个数据部分; 擦除単元,用于根据所述接收単元接收的数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分,其中: 当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,并根据所述查找到的存放地址,擦除所述数据对应的所有数据部分; 当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少ー个数据部分吋,查找记录的所述至少一个数据部分的存放地址,井根据所述查找到的存放地址,擦除所述至少ー个数据部分。
11.根据权利要求10所述的装置,其特征在干, 所述记录的每个所述数据部分的存放地址包括逻辑块地址LBA和数据块号BN ; 所述擦除単元具体用于: 根据所述需要擦除的数据部分的存放地址中的BN,确定存储所述需要擦除的数据部分的数据块,根据所述需要擦除的数据部分的存放地址中的LBA,确定存储所述需要擦除的数据部分的页; 根据所述确定的数据块和页,查找并擦除所述需要擦除的数据部分。
12.根据权利要求10或11所述的装置,其特征在干,所述数据对应至少两个数据部分; 所述装置还包括: 写入単元,用于写入所述数据对应的至少两个数据部分,并记录写入的每个所述数据部分的存放地址。
13.根据权利要求12所述的装置,其特征在干, 所述闪存存储器中设置有映射表和跟踪日志; 所述写入単元具体用于: 先后写入所述数据对应的至少两个数据部分,将最后写入的所述数据对应的最新数据部分的存放地址记录在所述映射表中,将在所述最新数据部分之前写入的历史数据部分的存放地址记录在所述跟踪日志中; 所述擦除単元具体用于: 当所述数据擦除指令指示擦除所述数据时,查找所述映射表中记录的所述最新数据部分的存放地址,根据所述查找到的存放地址擦除所述最新数据部分,以及查找所述跟踪日志中记录的所述历史数据部分的存放地址,根据所述查找到的存放地址擦除所述历史数据部分。
14.根据权利要求13所述的装置,其特征在干, 所述写入単元先后写入的至少两个数据部分包括最新数据部分和在所述最新数据部分的前次写入的次新数据部 分; 所述写入単元具体用于: 写入所述次新数据部分,在所述映射表中记录所述次新数据部分的存放地址; 写入所述最新数据部分,将所述映射表记录的所述次新数据部分的存放地址移送至所述跟踪日志中,并在所述映射表中记录所述最新数据部分的存放地址。
15.根据权利要求13-14任一项所述的装置,其特征在于,所述装置还包括: 确定单元,用于确定所述跟踪日志的空闲存储空间是否低于存储空间阈值; 所述擦除単元还用于:如果所述确定单元确定的跟踪日志的空闲存储空间低于所述存储空间阈值时,根据所述跟踪日志中记录的历史数据部分的存放地址,強制回收历史数据部分的存储空间,并释放所述跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
16.根据权利要求10-15任一项所述的装置,其特征在于,所述擦除単元还用于擦除所述记录的所述擦除的数据部分的存放地址。
17.根据权利要求10-16任一项所述的装置,其特征在于,所述擦除単元具体用于: 复写所述需要擦除的数据部分; 擦除所述复写后的数据部分。
18.根据权利要求10-17任一项所述的装置,其特征在干, 所述擦除単元还用于擦除所述闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间,并擦除历史记录的所述垃圾数据对应的数据部分的存放地址。
19.一种用于闪存存储器的数据擦除装置,其特征在于,包括: 处理器、存储器、通信接口和总线; 所述处理器、所述存储器和所述通信接ロ通过所述总线连接并完成相互间的通信;所述存储器用于存储可执行程序代码; 所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于: 接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少ー个数据部分; 根据所述数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分,其中: 当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,井根据所述查找到的存放地址,擦除所述数据对应的所有数据部分; 当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少ー个数据部分吋,查找记录的所述至少一个数据部分的存放地址,井根据所述查找到的存放地址,擦除所述至少ー个数据部分。
20.根据权利要求19所述的装置,其特征在干, 所述处理器记录的每个所述数据部分的存放地址包括逻辑块地址LBA和数据块号BN ; 所述处理器具体用于: 根据所述需要擦除的数据部分的存放地址中的BN,确定存储所述需要擦除的数据部分的数据块,根据所述需要擦除的数据部分的存放地址中的LBA,确定存储所述需要擦除的数据部分的页; 根据所述确定的数据块和页,查找并擦除所述需要擦除的数据部分。
21.根据权利要求19或20所述的装置,其特征在干, 所述数据对应至少两个数据部分; 所述处理器具体用于:写入所述数据对应的至少两个数据部分,并记录写入的每个所述数据部分的存放地址。
22.根据权利要求21所述的装置,其特征在干, 所述闪存存储器中设置有映射表和跟踪日志; 所述处理器具体用于: 先后写入所述数据对应的至少两个数据部分,将最后写入的所述数据对应的最新数据部分的存放地址记录在所述映射表中,将在所述最新数据部分之前写入的历史数据部分的存放地址记录在所述跟踪日志中; 所述处理器具体用于: 当所述数据擦除指令指示擦除所述数据时,查找所述映射表中记录的所述最新数据部分的存放地址,根据所述查找到的存放地址擦除所述最新数据部分,以及查找所述跟踪日志中记录的所述历史数据部分的存放地址,根据所述查找到的存放地址擦除所述历史数据部分。
23.根据权利要求22所述的装置,其特征在干, 所述处理器先后写入的至少两个数据部分包括最新数据部分和在所述最新数据部分的前次写入的次新数据部分; 所述处理器具体用于: 写入所述次新数据部分,在所述映射表中记录所述次新数据部分的存放地址;写入所述最新数据部分,将所述映射表记录的所述次新数据部分的存放地址移送至所述跟踪日志中,并在所述映射表中记录所述最新数据部分的存放地址。
24.根据权利要求22-23任一项所述的装置,其特征在于,所述处理器还用于: 确定所述跟踪日志的空闲存储空间是否低于存储空间阈值; 如果所述确定的跟踪日志的空闲存储空间低于所述存储空间阈值时,根据所述跟踪日志中记录的历史数据的存放地址,強制回收历史数据部分的存储空间,并释放所述跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
25.根据权利要求19-24任一项所述的装置,其特征在于,所述处理器还用于: 擦除所述记录的所述擦除的数据部分的存放地址。
26.根据权利要求19-25任一项所述的装置,其特征在于,所述处理器具体用于: 复写所述需要擦除的数据部分; 擦除所述复写后的数据部分。
27.根据权利要求19-26任一项所述的装置,其特征在于,所述处理器还用于: 擦除所述闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间; 擦除历史记录的所述垃圾数据对应的数据部分的存放地址。
28.ー种闪存存储器,其特征在于,所述闪存存储器中设置有数据擦除装置,所述数据擦除装置为权利要求8至16任一项所述的数据擦除装置或者权利要求17至25任ー项所述的数据擦除装置。
29.根据权利要求28所述的闪存存储器,其特征在干, 所述闪存存储器包括以下任意ー种: 固态硬盘、智能媒体SM卡、紧凑式闪存CF卡、多媒体记忆MMC卡、安全数码SD卡、记忆棒、XD卡和微硬盘。
【文档编号】G11C16/14GK103608866SQ201380000705
【公开日】2014年2月26日 申请日期:2013年3月15日 优先权日:2013年3月15日
【发明者】黎燕 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1