CN103608866A - 用于闪存存储器的数据擦除方法及装置 - Google Patents

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

Info

Publication number
CN103608866A
CN103608866A CN201380000705.7A CN201380000705A CN103608866A CN 103608866 A CN103608866 A CN 103608866A CN 201380000705 A CN201380000705 A CN 201380000705A CN 103608866 A CN103608866 A CN 103608866A
Authority
CN
China
Prior art keywords
data
storage address
division
wipe
wiped
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380000705.7A
Other languages
English (en)
Other versions
CN103608866B (zh
Inventor
黎燕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN103608866A publication Critical patent/CN103608866A/zh
Application granted granted Critical
Publication of CN103608866B publication Critical patent/CN103608866B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2024Rewritable memory not requiring erasing, e.g. resistive or ferroelectric RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种用于闪存存储器的数据擦除方法及装置。该方法包括:接收数据擦除指令,数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少一个数据部分;当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,并根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少一个数据部分时,查找记录的所述至少一个数据部分的存放地址,并根据所述查找到的存放地址,擦除所述至少一个数据部分。本发明可用于闪存存储器的实现技术中。

Description

用于闪存存储器的数据擦除方法及装置
技术领域
本发明涉及存储技术领域,尤其涉及一种用于闪存存储器的数据擦除方法及装置。
背景技术
Flash Memory(闪存存储器)是一种非易失性存储器,具有断电后数据不消失的特点,因此,被广泛的作为外部存储器使用。
闪存存储器的存储方式与传统机械存储器不同,举例来说,一个文件的全部或部分数据存储在闪存存储器的一个存储区域中,当用户复存该数据时,例如用户修改了该数据并直接保存,该复存的数据并不会被闪存存储器写入原存储区域中,而是被闪存存储器写入闪存存储器中一个新的存储区域,原存储区域上的数据没有改变。这样一来,表面上看来该数据已经被用户复存的数据替代,但实际上,即使用户删除了复存的数据,用户复存前的数据依然存在于闪存存储器中,专业技术人员仍然可以通过某些技术手段或工具读取这些还存在于闪存存储器上的数据,因此无法保证数据不被泄露。
现有技术中,为实现闪存存储器中所存储的数据的安全擦除,即擦除在闪存存储器中存储的与该数据相关的所有数据部分,包括复存前的数据和复存后的数据,通常有两种方式,一种方式是擦除闪存存储器的系统表项,达到数据销毁的目的;另一种方式则是对闪存存储器进行全盘擦除,即全盘格式化。然而,这两种擦除方式都有不足之处,采用第一种方式会导致闪存存储器不能再被使用,采用第二种方式会导致全盘数据丢失,因此影响了闪存存储器中存储的除需要擦除的数据外其他数据的读写。
发明内容
本发明实施例提供一种用于闪存存储器的数据擦除方法及装置,既能实现需要擦除的数据的安全擦除,而且不影响闪存存储器中存储的除需要擦除的数据外其他数据的读写。
本发明的第一方面,提供一种用于闪存存储器的数据擦除方法,该方法包括:
接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少一个数据部分;
根据所述数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分,其中:
当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,并根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;
当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少一个数据部分时,查找记录的所述至少一个数据部分的存放地址,并根据所述查找到的存放地址,擦除所述至少一个数据部分。
在第一方面的第一种可能的实现方式中,所述记录的每个所述数据部分的存放地址包括逻辑块地址LBA(Logic Block Address)和数据块号BN(Block Number);
所述擦除所述数据对应的数据部分中需要擦除的数据部分包括:
根据所述需要擦除的数据部分的存放地址中的BN,确定存储所述需要擦除的数据部分的数据块,根据所述需要擦除的数据部分的存放地址中的LBA,确定存储所述需要擦除的数据部分的页;
根据所述确定的数据块和页,查找并擦除所述需要擦除的数据部分。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中:
所述数据对应至少两个数据部分;
在这种情况下,在所述接收数据擦除指令之前,所述方法还包括:
写入所述数据对应的至少两个数据部分,并记录写入的每个所述数据部分的存放地址。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中:
所述闪存存储器中设置有映射表和跟踪日志;
在这种情况下,所述写入数据对应的至少两个数据部分,并记录写入的每个所述数据部分的存放地址包括:
先后写入所述数据对应的至少两个数据部分,将最后写入的所述数据对应的最新数据部分的存放地址记录在所述映射表中,将在所述最新数据部分之前写入的历史数据部分的存放地址记录在所述跟踪日志中;
所述当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,并根据所述查找到的存放地址,擦除所述数据对应的所有数据部分包括:
当所述数据擦除指令指示擦除所述数据时,查找所述映射表中记录的所述最新数据部分的存放地址,根据所述查找到的存放地址擦除所述最新数据部分,以及查找所述跟踪日志中记录的所述历史数据部分的存放地址,根据所述查找到的存放地址擦除所述历史数据部分。
当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少一个数据部分时,如果指示擦除的数据部分包括最新数据部分,查找所述映射表中记录的所述最新数据部分的存放地址,根据所述查找到的存放地址擦除所述最新数据部分,如果指示擦除的数据部分包括历史数据部分,查找所述跟踪日志中记录的所述历史数据部分的存放地址,根据所述查找到的存放地址擦除所述历史数据部分。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中:
所述先后写入的至少两个数据部分包括最新数据部分和在所述最新数据部分的前次写入的次新数据部分;
在这种情况下,所述先后写入所述数据对应的至少两个数据部分,将最后写入的所述数据对应的最新数据部分的存放地址记录在所述映射表中,将在所述最新数据部分之前写入的历史数据部分的存放地址记录在所述跟踪日志中包括:
写入所述次新数据部分,在所述映射表中记录所述次新数据部分的存放地址;
写入所述最新数据部分,将所述映射表记录的所述次新数据部分的存放地址移送至所述跟踪日志中,并在所述映射表中记录所述最新数据部分的存放地址。
结合第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述方法还包括:
确定所述跟踪日志的空闲存储空间是否低于存储空间阈值;
如果所述确定的跟踪日志的空闲存储空间低于所述存储空间阈值,根据所述跟踪日志中记录的存放地址,强制回收历史数据部分的存储空间,并释放所述跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
结合第一方面或第一方面的上述各个可能的实现方式中的任意一个实现方式,在第一方面的第六种可能的实现方式中,在擦除所述数据对应的所有数据部分或者擦除所述至少一个数据部分后,所述方法还包括:
擦除所述记录的所述擦除的数据部分的存放地址。
结合第一方面或第一方面的上述各个可能的实现方式中的任意一个实现方式,在第一方面的第七种可能的实现方式中,所述擦除所述数据对应的数据部分中需要擦除的数据部分包括:
复写所述需要擦除的数据部分;
擦除所述复写后的数据部分。
结合第一方面或第一方面的上述各个可能的实现方式中的任意一个实现方式,在第一方面的第八种可能的实现方式中,所述方法还包括:
擦除所述闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间;
擦除历史记录的所述垃圾数据对应的数据部分的存放地址。
本发明的第二方面,提供一种用于闪存存储器的数据擦除装置,该装置包括:
接收单元,用于接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少一个数据部分;
擦除单元,用于根据所述接收单元接收的数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分,其中:
当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,并根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;
当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少一个数据部分时,查找记录的所述至少一个数据部分的存放地址,并根据所述查找到的存放地址,擦除所述至少一个数据部分。
在第二方面的第一种可能的实现方式中,所述记录的每个所述数据部分的存放地址包括逻辑块地址LBA和数据块号BN;
所述擦除单元具体用于:
根据所述需要擦除的数据部分的存放地址中的BN,确定存储所述需要擦除的数据部分的数据块,根据所述需要擦除的数据部分的存放地址中的LBA,确定存储所述需要擦除的数据部分的页;
根据所述确定的数据块和页,查找并擦除所述需要擦除的数据部分。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中:
所述数据对应至少两个数据部分;
所述装置还包括:
写入单元,用于写入所述数据对应的至少两个数据部分,并记录写入的每个所述数据部分的存放地址。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中:
所述闪存存储器中设置有映射表和跟踪日志;
在这种情况下,所述写入单元具体用于:
先后写入所述数据对应的至少两个数据部分,将最后写入的所述数据对应的最新数据部分的存放地址记录在所述映射表中,将在所述最新数据部分之前写入的历史数据部分的存放地址记录在所述跟踪日志中;
而所述擦除单元具体用于:
当所述数据擦除指令指示擦除所述数据时,查找所述映射表中记录的所述最新数据部分的存放地址,根据所述查找到的存放地址擦除所述最新数据部分,以及查找所述跟踪日志中记录的所述历史数据部分的存放地址,根据所述查找到的存放地址擦除所述历史数据部分。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中:
所述写入单元先后写入的至少两个数据部分包括最新数据部分和在所述最新数据部分的前次写入的次新数据部分;
在这种情况下,所述写入单元具体用于:
写入所述次新数据部分,在所述映射表中记录所述次新数据部分的存放地址;
写入所述最新数据部分,将所述映射表记录的所述次新数据部分的存放地址移送至所述跟踪日志中,并在所述映射表中记录所述最新数据部分的存放地址。
结合第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述装置还包括:
确定单元,用于确定所述跟踪日志的空闲存储空间是否低于存储空间阈值;
所述擦除单元还用于:如果所述确定单元确定的跟踪日志的空闲存储空间低于所述存储空间阈值时,根据所述跟踪日志中记录的历史数据的存放地址,强制回收历史数据部分的存储空间,并释放所述跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
结合第二方面或第二方面的上述各个可能的实现方式中的任意一个实现方式,在第二方面的第六种可能的实现方式中,所述擦除单元还用于擦除所述记录的所述擦除的数据部分的存放地址。
结合第二方面或第二方面的上述各个可能的实现方式中的任意一个实现方式,在第二方面的第七种可能的实现方式中,所述擦除单元具体用于:
复写所述需要擦除的数据部分;
擦除所述复写后的数据部分。
结合第二方面或第二方面的上述各个可能的实现方式中的任意一个实现方式,在第二方面的第八种可能的实现方式中,所述擦除单元还用于:擦除所述闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间,并擦除历史记录的所述垃圾数据对应的数据部分的存放地址。
本发明的第三方面,提供另一种用于闪存存储器的数据擦除装置,该装置包括:
处理器、存储器、通信接口和总线;
所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;
所述存储器用于存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:
接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少一个数据部分;
根据所述数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分,其中:
当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,并根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;
当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少一个数据部分时,查找记录的所述至少一个数据部分的存放地址,并根据所述查找到的存放地址,擦除所述至少一个数据部分。
在第三方面的第一种可能的实现方式中,所述处理器记录的每个所述数据部分的存放地址包括逻辑块地址LBA和数据块号BN;
所述处理器具体用于:
根据所述需要擦除的数据部分的存放地址中的BN,确定存储所述需要擦除的数据部分的数据块,根据所述需要擦除的数据部分的存放地址中的LBA,确定存储所述需要擦除的数据部分的页;
根据所述确定的数据块和页,查找并擦除所述需要擦除的数据部分。
结合第三方面或第三方面的的第一种可能的实现方式中,在第三方面的第二种可能的实现方式中:
所述数据对应至少两个数据部分;
在这种情况下,所述处理器具体用于:
写入所述数据对应的至少两个数据部分,并记录写入的每个所述数据部分的存放地址。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中:
所述闪存存储器中设置有映射表和跟踪日志;
在这种情况下,所述处理器具体用于:
先后写入所述数据对应的至少两个数据部分,将最后写入的所述数据对应的最新数据部分的存放地址记录在所述映射表中,将在所述最新数据部分之前写入的历史数据部分的存放地址记录在所述跟踪日志中;
当所述数据擦除指令指示擦除所述数据时,查找所述映射表中记录的所述最新数据部分的存放地址,根据所述查找到的存放地址擦除所述最新数据部分,以及查找所述跟踪日志中记录的所述历史数据部分的存放地址,根据所述查找到的存放地址擦除所述历史数据部分。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中:
所述处理器先后写入的至少两个数据部分包括最新数据部分和在所述最新数据部分的前次写入的次新数据部分;
在这种情况下,所述处理器具体用于:
写入所述次新数据部分,在所述映射表中记录所述次新数据部分的存放地址;
写入所述最新数据部分,将所述映射表记录的所述次新数据部分的存放地址移送至所述跟踪日志中,并在所述映射表中记录所述最新数据部分的存放地址。
结合第三方面的第三种可能的实现方式或第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述处理单元还用于:
确定所述跟踪日志的空闲存储空间是否低于存储空间阈值;
如果所述确定的跟踪日志的空闲存储空间低于所述存储空间阈值时,根据所述跟踪日志中记录的历史数据的存放地址,强制回收历史数据部分的存储空间,并释放所述跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
结合第三方面或或第三方面的上述各个可能的实现方式中的任意一个实现方式,在第三方面的第六种可能的实现方式中,所述处理器还用于:
擦除所述记录的所述擦除的数据部分的存放地址。
结合第三方面或第三方面的上述各个可能的实现方式中的任意一个实现方式,在第三方面的第七种可能的实现方式中,所述处理器具体用于:
复写所述需要擦除的数据部分;
擦除所述复写后的数据部分。
结合第三方面或第三方面的上述各个可能的实现方式中的任意一个实现方式,在第三方面的第八种可能的实现方式中,所述处理器还用于:
擦除所述闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间,并擦除历史记录的所述垃圾数据对应的数据部分的存放地址。
本发明的第四方面,提供一种闪存存储器,所述闪存存储器中设置有数据擦除装置,所述数据擦除装置为本发明第二方面或第二方面的上述各个可能的实现方式中的任意一个实现方式所提供的数据擦除装置或者第三方面或第三方面的上述各个可能的实现方式中的任意一个实现方式所提供的数据擦除装置。
在第四方面的第一种可能的实现方式中,所述闪存存储器包括以下任意一种:
固态硬盘、SM卡(Smart Media,智能媒体卡)、CF卡(Compact Flash,紧凑式闪存卡)、MMC卡(Multi Media Card ,多媒体记忆卡)、SD卡(Secure Digital Memory Card,安全数码卡)、记忆棒(Memory Stick)、XD卡(XD-Picture Card,XD图像卡)和微硬盘。
本发明实施例提供的用于闪存存储器的数据擦除的方法、数据擦除装置及闪存存储器,在接收到数据擦除指令后进行数据擦除时,根据数据擦除指令,查找记录的存放地址,擦除所述数据对应的数据部分中需要擦除的数据部分。这样,能够根据每个数据部分的存放地址找到写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除指定的某个或某几个数据部分而不影响除需要擦除的数据外其他数据的读写。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据擦除方法的一种流程示意图;
图2为本发明实施例提供的数据擦除方法的另一种流程示意图;
图3为本发明实施例提供的数据擦除方法的一种示例性示意图;
图4为本发明实施例提供的数据擦除方法的另一种流程示意图;
图5为本发明实施例提供的数据擦除装置的一种结构示意图;
图6为本发明实施例提供的数据擦除装置的另一种结构示意图;
图7为本发明实施例提供的数据擦除装置的另一种结构示意图;
图8为本发明实施例提供的数据擦除装置的另一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了使本领域的技术人员更好的理解本发明的技术方案,首先对本发明中涉及的闪存存储器的存储结构进行简要介绍。
闪存存储器通常由一个内部寄存器和存储矩阵组成,存储矩阵中包括若干块(Block),每个块又包含若干页(Page),每个页又包含若干字节(Bytes)。比如,可以以4224个Bytes组成一个Page,128个Page组成一个Block,8192个Block组成整个闪存存储器。
通常来讲,闪存存储器对数据的读写都是以Page为单位的,即,闪存存储器的数据读写是一个Page、一个Page来进行的,亦即一次要读出一个Page的数据,一次要写入一个Page的数据。
以下对本发明实施例提供用于闪存存储器的数据擦除的方法和装置进行详细说明。
需要说明的是,本发明实施例中,“擦除”与“删除”概念相似。
本发明实施例提供了一种数据擦除的方法,由闪存存储器执行,具体由闪存存储器中设置的数据擦除装置执行,其中,闪存存储器与计算机主机相连接,用户通过主机对闪存存储器中所存储的数据进行操作。
如图1所示,本发明实施例提供一种用于闪存存储器的数据擦除的方法,包括如下步骤:
101,接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少一个数据部分;
优选地,可以是数据擦除装置从主机HOST接收数据擦除指令。主机发送的数据擦除指令可以指示数据擦除装置擦除数据或者数据对应的数据部分中的至少一个数据部分。
本发明实施例中,每份数据存储于闪存存储器中,在闪存存储器中,每份数据实际上对应至少一个数据部分,本发明实施例中“每份数据对应至少一个数据部分”是指,在一份数据最初存储于闪存存储器时并未经过任何的复存时,此时,该份数据仅对应一个数据部分,即该份数据的原始数据;而根据前文的背景技术的描述可知,在对该份数据进行一次复存时,例如用户对该份数据的原始数据进行了修改并进行直接保存,闪存服务器将在保留原始数据的同时,存储修改后的该份数据,这种情况下,该份数据对应两个数据部分,一个为最初存储的原始数据,一个为本次复存的修改后的数据。以此类推,每进行一次复存,该份数据对应的数据部分将增加一个。也就是说,本发明实施例中,每份数据对应的数据部分包括该份数据的原始数据以及每次复存的数据。
需要说明的是,本发明实施例中,“复存”意为重复保存而并非另存,复存表示用户意图以本次保存的数据覆盖之前的文件。即复存后,对于用户而言,复存前的原文件已经被复存的文件所替代,是不可见的。
本发明实施例中,在进行该份数据的擦除时,用户通过主机向闪存存储器下发数据删除指令,该数据擦除指令可以指示擦除该份数据,即擦除该份数据对应的所有数据部分,也可以指示擦除该份数据对应的数据部分中的某个或某些数据部分。
102、根据所述数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分;
可选的,当数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,并根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;
可选的,当数据擦除指令指示擦除所述数据对应的数据部分中的至少一个数据部分时,查找记录的所述至少一个数据部分的存放地址,并根据所述查找到的存放地址,擦除所述至少一个数据部分。
本发明实施例中,在数据存储到闪存存储器时,即数据写入时,记录了该数据对应的每个数据部分的存放地址,举例而言,闪存存储器记录的每个数据部分的存放地址可包括逻辑块地址(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找到数据。
具体的,如果记录的存放地址包括LBA和BN,闪存存储器将根据BN确定出闪存存储器中需要擦除的数据部分的数据块,根据LBA,具体根据LBA和PBA的映射关系,确定出需要擦除的数据部分的在哪些页中,从而找到需要擦除的数据部分并进行擦除。
因此,本步骤中,如果数据擦除指令指示擦除该份数据,将根据写入时记录的存放地址,查找到该份数据对应的所有数据部分并执行数据擦除,即可以完全擦除该份数据对应的所有数据部分,即实现数据的安全擦除。而且,如果数据擦除指令指示擦除所述数据对应的数据部分中的至少一个数据部分,可以查找到该至少一个数据部分的存放地址,从而找到该至少一个数据部分并进行擦除,不影响闪存存储中存储的其他数据的读写。
本发明实施例提供的用于闪存存储器的数据擦除的方法,在接收到数据擦除指令后进行数据擦除时,根据数据擦除指令,查找记录的存放地址,擦除所述数据对应的数据部分中需要擦除的数据部分。这样,能够根据每个数据部分的存放地址找到写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除指定的某个或某几个数据部分而不影响除需要擦除的数据外其他数据的读写。
如图2所示,本发明的一种实施例提供的数据擦除的方法包括以下步骤:
S11,写入数据对应的数据部分,并记录写入的每个数据部分的存放地址。
本步骤中,每份数据对应至少二个数据部分,也就是说,本步骤中,写入的数据部分包括至少二个。
需要说明的是,本发明实施例中,“每份数据对应至少一个数据部分”是指,在一份数据最初存储于闪存存储器时并未经过任何的复存时,此时,该份数据仅对应一个数据部分,即该份数据的原始数据;而根据前文的背景技术的描述可知,在对该份数据进行一次复存时,例如用户对该份数据的原始数据进行了修改并进行直接保存,闪存服务器将在保留原始数据的同时,存储修改后的该份数据,这种情况下,该份数据对应两个数据部分,一个为最初存储的原始数据,一个为本次复存的修改后的数据。以此类推,每进行一次复存,该份数据对应的数据部分将增加一个。也就是说,本发明实施例中,每份数据对应的数据部分包括该份数据的原始数据以及每次复存的数据。
需要说明的是,本发明实施例中,“复存”意为重复保存而并非另存,复存表示用户意图以本次保存的数据覆盖之前的文件。即复存后,对于用户而言,复存前的原文件已经被复存的文件所替代,是不可见的。
因此,本步骤中,写入每份数据对应的数据部分,实际上是首先写入该份数据的原始数据、然后按照复存的时间顺序,先后写入该份数据每次复存的数据,当然,如果该份数据未经过任何一次的复存,本步骤中,仅写入该份数据的原始数据。
需要说明的是,各数据部分的写入过程与现有技术相同,这里不在赘述。
与现有技术不同的是,本步骤中,每写入一个数据部分,将记录该数据部分在闪存存储器中的存放地址,这样可以通过记录的存放地址,查找到每份数据对应的任何一个写入的数据部分,因此,在执行对一份数据对应的数据部分的擦除时,可以通过所记录的存放地址,查找到该份数据对应的每个数据部分,可以完全擦除该份数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除该份数据的某个或某几个数据部分而不影响闪存存储中存储的其他数据的读写。
具体而言,本步骤中,闪存存储器记录的每个数据部分的存放地址可包括逻辑块地址(Logic Block Address,简称LBA)和数据块号(BlockNumber,简称BN)。这里需要说明的是,所记录的LBA也可被记录为LBN(Logic Block Number,逻辑块号),LBA和LBN的意义相同,同为逻辑地址,只是表征的存储空间大小不同。
LBA与物理块地址(Physics Block Address,简称PBA)存在着对应关系,PBA用于记录数据在闪存存储器中的物理位置,即数据记录在哪一个Page。在已知LBA的情况下,即可知LBA对应的PBA,从而通过PBA找到数据。
举例说明,假设本步骤中写入数据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”是同一个值。
也就是说,数据A对应三个数据部分,分别为n,n’,n”,本步骤中,先后写入了数据A对应的这三个数据部分并分别记录了这三个数据部分的存放地址。其中,n”是最后一次即最近一次写入的,可称之为数据A对应的最新数据部分,而数据n、n’是在n”之前写入的,可称之为数据A对应的历史数据部分。当然无论每份数据对应多少个数据部分,最后一次即最近一次写入的数据部分为该份数据对应的最新数据部分,而最新数据部分之前写入的数据部分为历史数据部分。针对用户而言,历史数据部分是不可见的,即历史数据部分已经被最新数据部分所替代了,但历史数据部分还存在于闪存存储器中。
可以理解的是,上述示例中存放地址的记录方式仅为示例,对本发明不做任何限制,本领域技术人员可以选择多种存放地址的记录方式。而且,为了便于理解,示例中数据A的每个数据部分仅写入在一个Block的一个Page中,但可以理解的是,实际上,数据A的每个数据部分可写入到多个Page中,甚至于多个Block中的多个Page中,这种情况下,在记录存放地址时,将依据数据部分的写入情况,每个数据部分可按照一定顺序记录多个地址。
需要说明的是,用于记录写入的每个数据部分的存放地址的存储空间可以在闪存存储器的存储空间中分配,也可以在闪存存储器外接的非易失性介质里分配,在本发明中不作限定。
S12,接收数据擦除指令,该数据擦除指令指示擦除所述数据或者所述数据对应的数据部分中的至少一个数据部分。
本步骤中,当用户需要擦除闪存存储器上的某份数据时,将通过主机向闪存存储器发送擦除指令,以使闪存存储器擦除该份数据。主机向闪存存储器发送的数据擦除指令可以指示擦除某份数据,也可指示擦除该数据对应的数据部分中的某个或某几个数据部分。本发明实施例中,主机向闪存存储器发送的数据擦除指令指示擦除某份数据时,表示需要擦除该数据对应的所有数据部分,本发明实施例中,将这种指示擦除该数据对应的所有数据部分的数据擦除指令称为安全擦除指令。
具体的,用户通过主机向闪存存储器发送擦除指令,举例而言,通过主机下发的安全数据擦除指令可包括LBA和数据长度,该数据长度为最新数据部分对应的数据长度,这样,闪存存储器根据LBA和数据长度,确定出主机指示的需要擦除的数据部分为该份数据的所有数据部分。如果数据擦除指令为指示擦除数据对应的数据部分中的某个或某几个数据部分的擦除指令(这时,可以称为非安全擦除指令)时,通过主机下发的安全数据擦除指令可包括LBA、数据长度和数据部分标识,其中数据长度为需要擦除的数据部分的长度,主机通过数据部分标识表示出其所指示擦除的数据部分。也可能根据LBA和数据长度,确定出主机指示的需要擦除的数据部分为多份数据(比如,大于2个)的数据部分,这时候每个数据的数据部分分别进行擦除。当然,以上的数据安全擦除指令仅为示例,本领域技术人员可以进行选择或者更改。
S13,根据数据擦除指令和记录的存放地址,擦除所述写入的数据部分中需要擦除的数据部分。
如果S12步骤接收到的数据擦除指令为安全擦除指令,本步骤中,闪存存储器将根据记录的存放地址,找到该数据对应的所有数据部分并将所有数据部分均进行擦除,从而实现该数据的安全擦除。具体的,闪存存储器可以首先读取记录的该数据对应的最新数据部分的存放地址,根据读取的存放地址擦除最新数据部分,然后,按照写入时间从后向前的顺序,读取记录的该数据对应的历史数据部分的存放地址,并根据读取的存放地址擦除该数据对应的历史数据部分。这样,该数据在闪存存储器上的最新数据部分和历史数据部分完全被擦除,从而保证该数据不被泄露,从而提高数据的安全性。
需要说明的是,如果数据擦除指令指示擦除该数据对应的数据部分中的某个或某几个数据部分,那么,闪存存储器将读取其记录的这些数据部分的存放地址,从而找到这些数据部分并将这些数据部分擦除。
同样以S11步骤中的示例为例,结合图3所示,如果S12步骤接收到的数据擦除指令指示擦除数据A,本步骤中,闪存存储器将首先其所记录的数据A的最新数据部分n”的存放地址,根据读取的存放地址找到n”并将其擦除,然后按照数据部分的写入时间,读取历史数据部分n’的存放地址,根据读取的存放地址找到n’并将其擦除,接下来读取历史数据部分n”的存放地址,根据读取的存放地址找到n”并将其擦除,至此将数据A对应的所有数据部分均进行了擦除,实现了数据A的安全擦除。
为了有效保证擦除的安全性,即有效保证所需要擦除的数据没有残留不能复原,闪存存储器在执行擦除操作时,可以首先复写这些需要擦除的数据部分,即可以先根据需要擦除的数据部分对应的存放地址,找到该数据部分存放的存储区域,对该区域进行至少一轮的数据复写,将该区域的数据写错或写乱,再擦除复写后的该区域的数据部分。由此进一步提高数据擦除的安全性。
需要说明的是,进行复写的次数可由指示擦除的数据部分的重要性来决定,例如,数据部分可设定有安全等级,该数据部分越重要,则该数据部分的安全擦除等级越高,在擦除该数据时所需复写该数据部分的次数也就越多。至于如何设定并划分数据部分的安全等级,以及如何规定数据的安全等级与所需复写的次数之间的对应关系,本发明不做限定。
本发明实施例提供的用于闪存存储器的数据擦除的方法、写入数据对应的各数据部分时记录写入的每个数据部分的存放地址,在接收到数据擦除指令后进行数据擦除时,根据数据擦除指令和记录的存放地址,擦除写入的数据部分中需要擦除的数据部分。这样,由于写入各数据部分时记录了各数据部分的存放地址,因此,能够根据每个数据部分的存放地址找到任何一个写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除指定的某个或某几个数据部分而不影响其他数据的读写。
进一步的,为了有效提高存储空间的利用效率,在本发明的一个实施例中,在S13步骤将需要擦除的数据部分擦除之后,还可将其记录的所擦除的数据部分的存放地址擦除。
可选的,为了有效提高存储空间的利用效率,在本发明的一个实施例中,本发明实施例提供的用于闪存存储器的数据擦除方法还可包括以下步骤:
擦除闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间;
擦除历史记录的垃圾数据对应的数据部分的存放地址。
在闪存存储器中存在有一些由于闪存存储器的读写等操作而产生的垃圾数据,例如,通常闪存存储器中设置有映射表(Map Table),如果闪存存储器执行写操作,映射表中记录的内容将发生改变,其中原记录的部分内容将无效,从而成为了垃圾数据。按照本发明实施例提供的方法,在这些垃圾数据进行写入时,也会记录这些垃圾数据对应的数据部分的存放地址。因此,为了提高存储空间的利用效率,闪存存储器可以定时或者在指令触发下,执行垃圾数据的回收,擦除垃圾数据以及其存放地址,从而获取空白存储空间进行他用,有效提高存储空间的利用效率。
现有技术中,通常情况下,闪存存储器中设置有映射表(MapTable),用于记录各份数据对应的最新数据部分的存放地址,当闪存存储器执行了写操作,复存了一份数据对应的数据部分时,此次写操作写入的数据部分成为了该份数据对应的最新数据部分,此时映射表项中会记录本次写操作写入的最新数据部分的存放地址,而映射表中原本记录的原最新数据部分的存放地址将失效。
为了与现有技术进行兼容,在本发明的一个实施例中,除设置映射表之外,在闪存存储器中划分出一片区域,设置为记录区域,本发明中将这片区域命名为跟踪日志(Trace Log)。其中,映射表依然发挥现有技术中的作用,用于记录每份数据对应的最新数据部分的存放地址,而跟踪日志用于记录每份数据对应的历史数据部分的存放地址。同样以前文所述的数据A为例,如图4所示,本实施例包括:
步骤21,先后写入数据A对应的三个数据部分n,n’,n”,并记录这三个数据部分的存放地址。
其中,将最后写入的最新数据部分n”的存放地址记录在映射表中,将在最新数据部分n”之前写入的历史数据部分n,n’的存放地址记录在跟踪日志中,其中,n’是在n”的前次写入的,可称之为次新数据部分,而n是最早写入的,可称之为老数据。
可以理解的,由于每次写入一个数据部分时,该写入的数据部分必定为最新数据部分,因此,本步骤中,具体的,在记录存放地址时,闪存存储器将该最新数据部分的存放地址记录在映射表中,而当再次写入一个最新数据部分时,此时,前次写入的原最新数据部分已经变成了次新数据部分(即历史数据部分),这时,闪存存储器可以从映射表中读取次新数据部分的存放地址,并将其移送到即存储到跟踪日志中,并在映射表中记录本次存储的最新数据部分的存放地址,并失效映射表中记录的次新数据部分的存放地址。
因此,具体的,本步骤中,闪存存储器首先写入数据部分n,并在映射表中记录n的存放地址,然后,闪存存储器写入数据部分n’,在映射表中记录n’的存放地址,并从映射表中读取n的存放地址并将其存储到跟踪日志中,并使映射表中记录的n的存放地址失效,接下来,闪存存储器写入数据部分n”,在映射表中记录n”的存放地址,并从映射表中读取n’的存放地址并将其存储到跟踪日志中,并使映射表中记录的n’的存放地址失效。
步骤22,接收数据擦除指令,所述数据擦除指令指示擦除数据A。
步骤23,根据数据擦除指令和记录的存放地址,擦除数据A对应的三个数据部分n,n’,n”,从而实现数据A的安全擦除。
具体的,闪存存储器从映射表中读取记录的最新数据部分n”的存放地址,从而查找到n”并将其擦除,闪存存储器从跟踪日志中读取记录的次新数据部分n’的存放地址,从而查找到n’并将其擦除,闪存存储器从跟踪日志中读取记录的老数据n的存放地址,从而查找到n并将其擦除。
可以理解的是,如果数据擦除指令指示擦除A的三个数据部分中的一个或两个时,假设指示擦除n和n’,闪存存储器将从跟踪日志中读取记录的次新数据部分n’和老数据n的存放地址,从而查找到n’和n并将其擦除。
假设指示擦除n’和n”,闪存存储器将从映射表中读取记录的最新数据部分n”的存放地址,从而查找到n”并将其擦除,从跟踪日志中读取记录的次新数据部分n’存放地址,从而查找到n’并将其擦除。
进一步的,由于跟踪日志的存储空间有限,为了保证闪存存储器的正常工作,闪存存储器可以在擦除数据部分n,n’,n”之后,将记录在跟踪日志中的数据部分n,n’的存放地址擦除,从而为跟踪日志提供足够的存储空间。
此外,可选的,可以为跟踪日志的存储空间设定存储空间阈值,如果跟踪日志的空闲存储空间低于所述存储空间阈值时,即,跟踪日志的空闲存储空间不足时,闪存存储器可以根据所述跟踪日志中记录的历史数据部分的存放地址,强制回收历史数据部分的存储空间,并释放所述跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
可以理解的是,跟踪日志中记载了很多份数据对应的历史数据部分的存放地址,虽然历史数据部分还存在于闪存存储器中,但对于用户而言,历史数据部分已经是无用已经被覆盖的数据,因此,闪存服务器可以强制回收全部的或者部分历史数据部分,在回收历史数据部分后,释放所述跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间,从而保证跟踪日志具有足够的存储空间。
需要注意的是,本发明实施例中,当闪存存储器内的存储空间不足时,闪存存储器内需要对利用率不高的数据块中的数据进行完全擦除以回收空白的数据块,达到释放闪存存储器的存储空间的目的,其中,利用率不高的数据块是指,历史数据部分较多而最新数据部分较少的数据块,对于用户而言,该数据块中的历史数据部分较多而最新数据部分较少意味着,该数据块中的无效数据较多而有效数据较少,故该数据块的利用率较低。因此当闪存存储器内的存储空间不足时,可以将利用率不高的数据块中的最新数据部分移送至其他数据块,则该利用率不高的数据块变成全是无效数据,即利用率为零的全脏块,此时对该数据块进行完全擦除,以回收该数据块,进而释放闪存存储器的存储空间。此时,跟踪日志中所记录的所述已擦除全脏块中的数据部分的存放地址是无意义的,故可删除跟踪日志中所述已擦除的数据部分的存放地址。
本发明提供的用于闪存存储器的数据擦除的方法,写入数据对应的各数据部分时记录写入的每个数据部分的存放地址,在接收到数据擦除指令后进行数据擦除时,根据数据擦除指令和记录的存放地址,擦除写入的数据部分中需要擦除的数据部分。这样,由于写入各数据部分时记录了各数据部分的存放地址,能够根据每个数据部分的存放地址找到任何一个写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除指定的某个或某几个数据部分而不影响其他数据的读写。
相应的,本发明实施例还提供了一种用于闪存存储器的数据擦除装置30,如图5所示,该装置30包括:
接收单元31,用于接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少一个数据部分;
擦除单元32,用于根据接收单元31接收的数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分,其中:
当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,并根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;
当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少一个数据部分时,查找记录的所述至少一个数据部分的存放地址,并根据所述查找到的存放地址,擦除所述至少一个数据部分。
本发明实施例提供的用于闪存存储器的数据擦除的装置30,在接收到数据擦除指令后进行数据擦除时,根据数据擦除指令,查找记录的存放地址,擦除所述数据对应的数据部分中需要擦除的数据部分。这样,能够根据每个数据部分的存放地址找到写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除指定的某个或某几个数据部分而不影响除需要擦除的数据外其他数据的读写。
本发明实施例可以用于执行上述方法实施例,详细参照方法实施例的描述。
本发明实施例还提供了一种用于闪存存储器的数据擦除装置20,如图6所示,该装置20包括:
写入单元201,用于写入数据对应的至少一个数据部分,并记录写入的每个数据部分的存放地址;
接收单元202,用于接收数据擦除指令,该数据擦除指令指示擦除写入单元201写入的数据部分中的至少一个数据部分;
擦除单元203,用于根据接收单元202接收的数据擦除指令和记录的存放地址,擦除该数据擦除指令指示擦除的数据部分。
本发明实施例提供的用于闪存存储器的数据擦除的装置20,根据写入单元201写入数据对应的各数据部分时记录写入的每个数据部分的存放地址以及接收单元202接收的数据擦除指令,擦除单元203擦除写入单元201写入的数据部分中需要擦除的数据部分。这样,由于写入各数据部分时记录了各数据部分的存放地址,因此能够根据每个数据部分的存放地址找到任何一个写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除,而且还可以根据用户要求擦除指定的某个或某几个数据部分而不影响其他数据的读写。
可选的,在本发明的一个实施例中,写入单元201记录的每个数据部分的存放地址包括LBA和BN;
擦除单元203具体用于:
根据所述需要擦除的数据部分的存放地址中的BN,确定存储所述需要擦除的数据部分的数据块,根据所述需要擦除的数据部分的存放地址中的LBA,确定存储所述需要擦除的数据部分的页;根据所述确定的数据块和页,查找并擦除所述需要擦除的数据部分。
为了有效保证擦除的安全性,即有效保证所需要擦除的数据没有残留不能复原,擦除单元203在执行擦除操作时,可以首先复写这些需要擦除的数据部分,即擦除单元203可以先根据需要擦除的数据部分对应的存放地址,找到该数据部分存放的存储区域,对该该区域进行至少一轮的数据复写,将该区域的数据写错或写乱,再擦除复写后的该区域的数据部分,由此进一步提高数据擦除的安全性。
可选的,为了有效提高存储空间的利用效率,在本发明的一个实施例中,擦除单元203还用于擦除写入单元201记录的所擦除的数据部分的存放地址。
进一步的,在本发明的一个实施例中,擦除单元203还用于擦除闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间,并擦除历史记录的垃圾数据对应的数据部分的存放地址。
可选的,在本发明的一个实施例中,所述数据对应至少两个数据部分;
在这种情况下,写入单元201具体用于:
写入所述数据对应的至少两个数据部分,并记录最后写入的数据对应的最新数据部分的存放地址和最新数据部分之前写入的历史数据部分的存放地址;
而擦除单元203具体用于:
如果数据擦除指令指示擦除数据,读取记录的最新数据部分的存放地址,根据所述读取的存放地址擦除所述最新数据部分,以及读取记录的所述历史数据部分的存放地址,根据所述读取的存放地址擦除所述历史数据部分;
或者
如果数据擦除指令指示擦除数据对应的数据部分中的一个或几个数据部分,读取记录的一个或几个数据部分的存放地址,根据所述读取的存放地址擦除所述一个或几个数据部分。
可选的,在本发明的一个实施例中:
写入单元201写入至少两个数据部分;
数据擦除装置20中设置有映射表和跟踪日志,其中,映射表用于记录每份数据对应的最新数据部分的存放地址,而跟踪日志用于记录每份数据对应的历史数据部分的存放地址。
在这种情况下,写入单元201具体用于:
先后写入该数据对应的至少两个数据部分,将最后写入的该数据对应的最新数据部分的存放地址记录在映射表中,将在最新数据部分之前写入的历史数据部分的存放地址记录在跟踪日志中。
擦除单元203具体用于:
如果所述数据擦除指令指示擦除所述数据,读取所述映射表中记录的所述最新数据部分的存放地址,根据所述读取的存放地址擦除所述最新数据部分,以及读取所述跟踪日志中记录的所述历史数据部分的存放地址,根据所述读取的存放地址擦除所述历史数据部分。
进一步的,在本发明的一个实施例中,先后写入的至少两个数据部分包括最新数据部分和在最新数据部分的前次写入的次新数据部分。
在这种情况下,写入单元201具体用于:
写入次新数据部分,在映射表中记录次新数据部分的存放地址;
写入最新数据部分,将映射表记录的次新数据部分的存放地址移送至跟踪日志中,并在映射表中记录最新数据部分的存放地址。
进一步的,在本发明的一个实施例中,如图7所示,该装置20还包括:
确定单元204,用于确定跟踪日志的空闲存储空间是否低于存储空间阈值;
擦除单元203还用于:如果确定单元204确定的跟踪日志的空闲存储空间低于存储空间阈值时,根据跟踪日志中记录的历史数据的存放地址,强制回收历史数据部分的存储空间,并释放跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
需要说明的是,本发明实施例提供的数据擦除装置20的各结构单元的具体功能请参见前文方法实施例。
图8所示为本发明提供的数据擦除装置的另一种实施例,如图8所示,本实施例提供的数据擦除装置40,包括处理器401、存储器402、通信接口403和总线404。处理器401、存储器402和通信接口403通过总线404连接并完成相互间的通信。所述总线404可以是工业标准体系结构(Industry Standard Architecture,简称为ISA)总线、外部设备互连(Peripheral Component,简称为PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,简称为EISA)总线等。所述总线404可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中:
存储器402用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器402可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器401通过读取存储器402中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于:
接收数据擦除指令,所述数据擦除指令指示擦除数据或者所述数据对应的数据部分中的至少一个数据部分;
根据所述数据擦除指令,擦除所述数据对应的数据部分中需要擦除的数据部分,其中:
当所述数据擦除指令指示擦除所述数据时,查找记录的所述数据对应的所有数据部分的存放地址,并根据所述查找到的存放地址,擦除所述数据对应的所有数据部分;
当所述数据擦除指令指示擦除所述数据对应的数据部分中的至少一个数据部分时,查找记录的所述至少一个数据部分的存放地址,并根据所述查找到的存放地址,擦除所述至少一个数据部分。
在本发明的一个实施例中,处理器401用于:
写入数据对应的数据部分,数据对应至少一个数据部分,并记录写入的每个数据部分的存放地址;
接收数据擦除指令,数据擦除指令指示擦除数据或者数据对应的数据部分中的至少一个数据部分;
根据数据擦除指令和记录的存放地址,擦除写入的数据部分中需要擦除的数据部分。
本发明实施例提供的用于闪存存储器的数据擦除的装置,处理器401根据写入数据时记录写入的每个数据部分的存放地址以及接收的数据擦除指令,擦除写入的数据部分中需要擦除的的数据部分数据擦除指令指示擦除的数据部分。这样,能够根据每个数据部分的存放地址找到任何一个写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除也就是说,数据擦除装置40不仅能够实现数据的安全擦除,而且可以根据用户要求擦除指定的数据部分,在擦除指定数据后并而不影响其他数据的读写。
可选的,在本发明的一个实施例中,处理器401记录的每个数据部分的存放地址包括逻辑块号LBA和数据块号BN;
所述处理器具体用于:
根据所述需要擦除的数据部分的存放地址中的BN,确定存储所述需要擦除的数据部分的数据块,根据所述需要擦除的数据部分的存放地址中的LBA,确定存储所述需要擦除的数据部分的页;
根据所述确定的数据块和页,查找并擦除所述需要擦除的数据部分。
可选的,在本发明的一个实施例中,处理器401还用于:
擦除记录的擦除的数据部分的存放地址。
可选的,在本发明的一个实施例中,处理器401还用于:
复写所述写入的数据部分中需要擦除的数据部分;
擦除所述复写后的数据部分。
可选的,为了有效提高存储空间的利用效率,在本发明的一个实施例中,处理器401还用于:
擦除闪存存储器存储的垃圾数据对应的数据部分以获取空白存储空间,并擦除历史记录的垃圾数据对应的数据部分的存放地址。
可选的,在本发明的一个实施例中,数据对应至少两个数据部分;
处理器401具体用于:
写入所述数据对应的至少两个数据部分,并记录最后写入的数据对应的最新数据部分的存放地址和最新数据部分之前写入的历史数据部分的存放地址;
在这种情况下,处理器401具体用于:
如果数据擦除指令指示擦除数据,读取记录的最新数据部分的存放地址,根据读取的存放地址擦除最新数据部分,以及读取记录的历史数据部分的存放地址,根据读取的存放地址擦除历史数据部分;
或者
如果数据擦除指令指示擦除数据对应的数据部分中的一个或几个数据部分,读取记录的一个或几个数据部分的存放地址,根据读取的存放地址擦除一个或几个数据部分。
可选的,在本发明的一个实施例中,每份数据对应至少两个数据部分;数据擦除装置40中设置有映射表和跟踪日志。其中,映射表用于记录每份数据对应的最新数据部分的存放地址,而跟踪日志用于记录每份数据对应的历史数据部分的存放地址。
在这种情况下,处理器401具体用于:
先后写入数据对应的至少两个数据部分,将最后写入的数据对应的最新数据部分的存放地址记录在映射表中,将在最新数据部分之前写入的历史数据部分的存放地址记录在跟踪日志中;
在执行擦除操作时,处理器401具体用于:
如果数据擦除指令指示擦除数据,读取映射表中记录的最新数据部分的存放地址,根据读取的存放地址擦除最新数据部分,以及读取跟踪日志中记录的历史数据部分的存放地址,根据读取的存放地址擦除历史数据部分。
进一步的,在本发明的一个实施例中,先后写入的至少两个数据部分包括最新数据部分和在最新数据部分的前次写入的次新数据部分。
在这种情况下,处理器401具体用于:
写入次新数据部分,在映射表中记录次新数据部分的存放地址;
写入最新数据部分,将映射表记录的次新数据部分的存放地址移送至跟踪日志中,并在映射表中记录最新数据部分的存放地址。
可选的,在本发明的一个实施例中,处理器401还用于:确定跟踪日志的空闲存储空间是否低于存储空间阈值,如果确定的跟踪日志的空闲存储空间低于存储空间阈值时,根据跟踪日志中记录的历史数据的存放地址,强制回收历史数据部分的存储空间,并释放跟踪日志中记录所述回收的历史数据部分的存放地址的存储空间。
其中,处理器401可能是一个中央处理器(Central Processing Unit,简称为CPU),或者是特定集成电路(Application Specific IntegratedCircuit,简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
需说明的是,上述处理器401除了具有上述功能之外,还可用于执行上述方法实施例中的其他流程,在此不再赘述。
还需说明的是,处理器401中各功能单元的划分可以参见前述的数据擦除装置的实施例,在此不再赘述。
相应的,本发明实施例还提供了一种闪存存储器,该闪存存储器中设置有数据擦除装置,所述数据擦除装置可以为前述实施例所提供的任意一种数据擦除装置,此处不再赘述。
本发明实施例提供的闪存存储器,能够根据写入数据时记录写入的每个数据部分的存放地址,以及接收的数据擦除指令,擦除写入的数据部分中需要擦除的的数据部分。这样,能够根据每个数据部分的存放地址找到任何一个写入的数据部分,因此,可以完全擦除数据对应的所有数据部分,即实现数据的安全擦除。也就是说,该闪存存储器不仅实现了数据的安全擦除,而且可以根据用户要求擦除指定的数据部分,在擦除指定数据后并而不影响其他数据的读写。
可选的,在本发明的一个实施例中,闪存存储器可以为以下任意一种闪存存储器,但不限于以下几种:
固态硬盘、智能媒体SM卡、紧凑式闪存CF卡、多媒体记忆MMC卡、安全数码SD卡、记忆棒、XD卡和微硬盘。
需要说明的是,本发明实施例提供的用于闪存存储器的数据擦除方法、装置及闪存存储器,可以广泛应用于存储领域的NAND Flash(与非门闪存)控制,尤其适用于NAND Flash的SSD(Solid State Disk,固态硬盘)系统,对此本发明不做限定。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (29)

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卡和微硬盘。
CN201380000705.7A 2013-03-15 2013-03-15 用于闪存存储器的数据擦除方法及装置 Active CN103608866B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2013/072773 WO2014139184A1 (zh) 2013-03-15 2013-03-15 用于闪存存储器的数据擦除方法及装置

Publications (2)

Publication Number Publication Date
CN103608866A true CN103608866A (zh) 2014-02-26
CN103608866B CN103608866B (zh) 2018-09-11

Family

ID=50126071

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380000705.7A Active CN103608866B (zh) 2013-03-15 2013-03-15 用于闪存存储器的数据擦除方法及装置

Country Status (4)

Country Link
US (2) US9823878B2 (zh)
EP (1) EP2955633B1 (zh)
CN (1) CN103608866B (zh)
WO (1) WO2014139184A1 (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104238961A (zh) * 2014-09-11 2014-12-24 北京元心科技有限公司 在闪存介质上实现安全删除的方法和装置
CN104268184A (zh) * 2014-09-16 2015-01-07 青岛海信移动通信技术股份有限公司 一种移动终端中的文件删除方法和终端
CN104932981A (zh) * 2014-03-20 2015-09-23 宏达国际电子股份有限公司 移动电子装置与清理存储区块的方法
CN105302485A (zh) * 2015-10-19 2016-02-03 福州瑞芯微电子股份有限公司 一种安全擦除方法及装置
CN106156660A (zh) * 2016-07-27 2016-11-23 浪潮(北京)电子信息产业有限公司 一种存储设备的数据销毁方法及系统
CN106681653A (zh) * 2016-09-14 2017-05-17 合肥兆芯电子有限公司 存储器抹除方法、存储器控制电路单元及存储器存储装置
US9811458B2 (en) 2014-03-19 2017-11-07 Htc Corporation Mobile electronic device and method for clearing memory blocks based on processor determination of physical block to erase in response to GUI input from user specified time and directing controller to erase within the specified time
CN107402715A (zh) * 2016-05-20 2017-11-28 华为终端(东莞)有限公司 数据搬移的方法、装置、存储器及终端
CN107506136A (zh) * 2017-08-07 2017-12-22 成都华为技术有限公司 一种垃圾回收的方法和装置
CN107562376A (zh) * 2017-08-23 2018-01-09 北京小米移动软件有限公司 数据擦除方法及装置
CN107678684A (zh) * 2017-08-22 2018-02-09 深圳市硅格半导体股份有限公司 存储器的无效数据清除方法、装置和存储器
CN109542335A (zh) * 2017-09-22 2019-03-29 慧荣科技股份有限公司 快闪存储器的数据内部搬移方法以及使用该方法的装置
TWI688861B (zh) * 2018-09-18 2020-03-21 新唐科技股份有限公司 資料處理裝置及其資料保護方法
CN110908593A (zh) * 2018-09-17 2020-03-24 北京兆易创新科技股份有限公司 一种存储空间擦除方法、装置、存储设备及存储介质
CN115101109A (zh) * 2022-07-08 2022-09-23 山东华芯半导体有限公司 一种支持异常断电的企业级ssd非安全擦除格式化方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10261897B2 (en) 2017-01-20 2019-04-16 Samsung Electronics Co., Ltd. Tail latency aware foreground garbage collection algorithm
CN107608906A (zh) * 2017-09-26 2018-01-19 北京智芯微电子科技有限公司 减少片内flash擦除次数的方法
CN109343790B (zh) * 2018-08-06 2021-07-13 百富计算机技术(深圳)有限公司 一种基于nand flash的数据存储方法、终端设备及存储介质
CN109471598B (zh) * 2018-11-16 2021-12-10 深圳市得一微电子有限责任公司 存储设备的数据删除方法、装置及计算机可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341339A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
CN1767066A (zh) * 2004-10-25 2006-05-03 海力士半导体有限公司 闪存系统及其擦除方法
CN1831786A (zh) * 2005-12-14 2006-09-13 兆日科技(深圳)有限公司 闪速存储器数据完整性保护方法
CN101465164A (zh) * 2009-01-12 2009-06-24 成都市华为赛门铁克科技有限公司 一种擦除数据的方法、装置及系统
US20090259808A1 (en) * 2003-03-25 2009-10-15 Sandisk Il Ltd. Methods of Sanitizing a Flash-Based Data Storage Device
CN101673243A (zh) * 2009-09-29 2010-03-17 威盛电子股份有限公司 数据储存装置与方法
CN101923516A (zh) * 2009-05-15 2010-12-22 旺宏电子股份有限公司 以区块为基础的快闪存储装置及其操作方法
CN102239480A (zh) * 2008-12-17 2011-11-09 Lsi公司 Ssd技术协助的存储系统快照

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2915625B2 (ja) 1991-06-26 1999-07-05 株式会社沖マイクロデザイン宮崎 データ出力回路
JP2006107326A (ja) * 2004-10-08 2006-04-20 Oki Electric Ind Co Ltd 半導体集積回路
JP2009205335A (ja) * 2008-02-27 2009-09-10 Hitachi Ltd 2種のメモリデバイスをキャッシュに用いるストレージシステム及びそのストレージシステムを制御する方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341339A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
US20090259808A1 (en) * 2003-03-25 2009-10-15 Sandisk Il Ltd. Methods of Sanitizing a Flash-Based Data Storage Device
CN1767066A (zh) * 2004-10-25 2006-05-03 海力士半导体有限公司 闪存系统及其擦除方法
CN1831786A (zh) * 2005-12-14 2006-09-13 兆日科技(深圳)有限公司 闪速存储器数据完整性保护方法
CN102239480A (zh) * 2008-12-17 2011-11-09 Lsi公司 Ssd技术协助的存储系统快照
CN101465164A (zh) * 2009-01-12 2009-06-24 成都市华为赛门铁克科技有限公司 一种擦除数据的方法、装置及系统
CN101923516A (zh) * 2009-05-15 2010-12-22 旺宏电子股份有限公司 以区块为基础的快闪存储装置及其操作方法
CN101673243A (zh) * 2009-09-29 2010-03-17 威盛电子股份有限公司 数据储存装置与方法

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9811458B2 (en) 2014-03-19 2017-11-07 Htc Corporation Mobile electronic device and method for clearing memory blocks based on processor determination of physical block to erase in response to GUI input from user specified time and directing controller to erase within the specified time
CN104932981A (zh) * 2014-03-20 2015-09-23 宏达国际电子股份有限公司 移动电子装置与清理存储区块的方法
CN104932981B (zh) * 2014-03-20 2018-05-25 宏达国际电子股份有限公司 移动电子装置与清理存储区块的方法
CN104238961B (zh) * 2014-09-11 2018-03-02 北京元心科技有限公司 在闪存介质上实现安全删除的方法和装置
CN104238961A (zh) * 2014-09-11 2014-12-24 北京元心科技有限公司 在闪存介质上实现安全删除的方法和装置
CN104268184A (zh) * 2014-09-16 2015-01-07 青岛海信移动通信技术股份有限公司 一种移动终端中的文件删除方法和终端
CN104268184B (zh) * 2014-09-16 2017-11-21 青岛海信移动通信技术股份有限公司 一种移动终端中的文件删除方法和终端
CN105302485B (zh) * 2015-10-19 2018-01-26 福州瑞芯微电子股份有限公司 一种安全擦除方法及装置
CN105302485A (zh) * 2015-10-19 2016-02-03 福州瑞芯微电子股份有限公司 一种安全擦除方法及装置
CN107402715A (zh) * 2016-05-20 2017-11-28 华为终端(东莞)有限公司 数据搬移的方法、装置、存储器及终端
CN107402715B (zh) * 2016-05-20 2020-05-08 华为终端有限公司 数据搬移的方法、装置、存储器及终端
CN106156660A (zh) * 2016-07-27 2016-11-23 浪潮(北京)电子信息产业有限公司 一种存储设备的数据销毁方法及系统
CN106681653B (zh) * 2016-09-14 2019-10-25 合肥兆芯电子有限公司 存储器抹除方法、存储器控制电路单元及存储器存储装置
CN106681653A (zh) * 2016-09-14 2017-05-17 合肥兆芯电子有限公司 存储器抹除方法、存储器控制电路单元及存储器存储装置
CN107506136B (zh) * 2017-08-07 2020-07-07 成都华为技术有限公司 一种垃圾回收的方法和装置
CN107506136A (zh) * 2017-08-07 2017-12-22 成都华为技术有限公司 一种垃圾回收的方法和装置
CN107678684A (zh) * 2017-08-22 2018-02-09 深圳市硅格半导体股份有限公司 存储器的无效数据清除方法、装置和存储器
CN107678684B (zh) * 2017-08-22 2020-11-10 深圳市硅格半导体有限公司 存储器的无效数据清除方法、装置和存储器
CN107562376A (zh) * 2017-08-23 2018-01-09 北京小米移动软件有限公司 数据擦除方法及装置
CN109542335A (zh) * 2017-09-22 2019-03-29 慧荣科技股份有限公司 快闪存储器的数据内部搬移方法以及使用该方法的装置
CN109542335B (zh) * 2017-09-22 2022-04-01 慧荣科技股份有限公司 快闪存储器的数据内部搬移方法以及使用该方法的装置
CN110908593A (zh) * 2018-09-17 2020-03-24 北京兆易创新科技股份有限公司 一种存储空间擦除方法、装置、存储设备及存储介质
CN110908593B (zh) * 2018-09-17 2024-02-20 兆易创新科技集团股份有限公司 一种存储空间擦除方法、装置、存储设备及存储介质
TWI688861B (zh) * 2018-09-18 2020-03-21 新唐科技股份有限公司 資料處理裝置及其資料保護方法
US11455401B2 (en) 2018-09-18 2022-09-27 Nuvoton Technology Corporation Data-processing device and data-protection method thereof
CN115101109A (zh) * 2022-07-08 2022-09-23 山东华芯半导体有限公司 一种支持异常断电的企业级ssd非安全擦除格式化方法

Also Published As

Publication number Publication date
US20180018126A1 (en) 2018-01-18
US10007468B2 (en) 2018-06-26
EP2955633A1 (en) 2015-12-16
EP2955633B1 (en) 2018-05-23
US9823878B2 (en) 2017-11-21
EP2955633A4 (en) 2016-03-09
CN103608866B (zh) 2018-09-11
US20160004474A1 (en) 2016-01-07
WO2014139184A1 (zh) 2014-09-18

Similar Documents

Publication Publication Date Title
CN103608866A (zh) 用于闪存存储器的数据擦除方法及装置
EP2115595B1 (en) Memory device performance enhancement through pre-erase mechanism
CN102622309B (zh) 数据安全擦除方法及装置
US10120795B2 (en) Wear-leveling nandflash memory reading/writing method
CN111007985B (zh) 一种存储系统空间回收的兼容处理方法、系统及设备
CN102622310A (zh) 无效数据擦除方法、装置及系统
KR20070039957A (ko) Usb 플래쉬 쓰기 성능을 향상시키기 위한 방법과 장치
CN110515550B (zh) 一种sata固态硬盘冷热数据分离的方法及其装置
CN105446664A (zh) 一种对存储器进行文件存储方法和存储装置
CN111625482B (zh) 顺序流检测方法与装置
CN103257928B (zh) 闪存设备数据管理方法和系统
CN105653466A (zh) 数据储存装置以及快闪存储器控制方法
CN107102900B (zh) 一种共享内存空间的管理方法
US9535796B2 (en) Method, apparatus and computer for data operation
CN108958657B (zh) 一种数据存储方法、存储设备及存储系统
US11436105B2 (en) Data processing method and memory controller utilizing the same
US20210303212A1 (en) Data processing method and memory controller utilizing the same
CN112395260B (zh) 一种数据存储方法及介质
CN111399774B (zh) 分布式存储系统下基于快照的数据处理方法和装置
CN110427161B (zh) 一种用于串行闪存的数据存储方法
CN103210389A (zh) 一种元数据的处理方法和装置
CN109002265B (zh) 一种数据处理的方法以及相关装置
CN112416811A (zh) 基于数据关联度的垃圾回收方法、闪存及装置
CN107544866B (zh) 一种日志更新方法与装置
US10503651B2 (en) Media cache band cleaning

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant