CN106844222A - 固态硬盘的数据处理的方法和设备 - Google Patents

固态硬盘的数据处理的方法和设备 Download PDF

Info

Publication number
CN106844222A
CN106844222A CN201510880930.5A CN201510880930A CN106844222A CN 106844222 A CN106844222 A CN 106844222A CN 201510880930 A CN201510880930 A CN 201510880930A CN 106844222 A CN106844222 A CN 106844222A
Authority
CN
China
Prior art keywords
data
block
blank
write
page
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.)
Pending
Application number
CN201510880930.5A
Other languages
English (en)
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.)
Samsung China Semiconductor Co Ltd
Samsung Electronics Co Ltd
Original Assignee
Xian Samsung Electronics Research Co Ltd
Samsung Electronics 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 Xian Samsung Electronics Research Co Ltd, Samsung Electronics Co Ltd filed Critical Xian Samsung Electronics Research Co Ltd
Priority to CN201510880930.5A priority Critical patent/CN106844222A/zh
Priority to KR1020160041083A priority patent/KR20170065427A/ko
Priority to US15/362,558 priority patent/US20170160940A1/en
Publication of CN106844222A publication Critical patent/CN106844222A/zh
Pending legal-status Critical Current

Links

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/0638Organizing or formatting or addressing of data
    • 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
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • G06F12/0269Incremental or concurrent garbage collection, e.g. in real-time systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/061Improving I/O performance
    • 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
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into 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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种固态硬盘的数据处理的方法和设备。所述方法包括:接收第一数据的写入命令,响应于所述写入命令,确定一个空白的块,其中,所述写入命令用于指示将所述第一数据写入所述一个空白的块中,所述一个空白的块包括的页均为空白页,且所述一个空白的块仅用于存储所述第一数据;接收所述第一数据;将所述第一数据从所述一个空白的块开始写入。根据本发明,由于在写入数据的流程中将写入的数据仅写入到了空白的块中,保证了每个块中只保存了一个数据,在删除数据后,存储被删除数据的块中不包括有效页,因此在擦除该块的垃圾回收过程中,无需进行有效数据的搬移,提高了垃圾回收的效率和固态硬盘的使用效率。

Description

固态硬盘的数据处理的方法和设备
技术领域
本发明总体说来涉及存储领域。更具体地讲,涉及固态硬盘的数据处理的方法和设备。
背景技术
固态硬盘(Solid State Drives,SSD),简称固盘,SSD是用固态电子存储芯片阵列而制成的硬盘。SSD采用存储芯片存储数据。SSD包括若干个块(Block),每个Block包含若干个页(Page),每个页包括若干个位,Block为擦除时的基本单位,Page为数据读写的基本单位。对于传统硬盘HDD(Hard DiskDrive),有数据需要更新时,可以直接在原来的地址上覆盖写入。而对于SSD,由于其存储介质的特性,SSD中每个Page需要先进行擦除后才能写入,所以SSD在更新数据时,会先把更新的数据写入到空白的Page,然后把原来存储数据的Page设置为无效页,这样就完成了一次更新操作。SSD在删除数据时,将把存储被删除的数据的Page设置为无效页。被设置为无效页的Page未经过擦除之前是不能再次被写入的,这样的Page也叫做垃圾Page。随着数据的写入,垃圾Page越来越多,可用的空白Page越来越少,此时SSD会选取一些Block,将这些Block中有效Page上存储的数据搬移到其他空白的Page上,然后再擦除这些Block。这个过程称作垃圾回收(Garbage Collection,GC),垃圾回收后会生成新的空白Page供数据写入使用。
在GC时,SSD需要对Block进行筛选,找出包含有效Page比较少的Block,以保证在GC时搬移的Page尽量少,因此需要对Block进行遍历,挑选出合适的Block后再进行有效数据的搬移。遍历操作和搬移操作均会消耗一定的时间。随着数据的不断写入,SSD上存储的数据会变的越来越碎片化,GC操作也会执行得越来越频繁,SSD性能会出现一定程度的下降。
以下将参照图1-图3描述现有技术中SSD写入数据、删除数据以及垃圾回收的过程。图1示出现有的在SSD中分别写入第三数据和第四数据后的数据分布示例。如图1所示,第三数据的一部分和另一部分被分别存储在第一块和第二块中,第四数据的一部分和另一部分也被分别存储在第一块和第二块中。
图2示出现有的将图1中的第三数据删除之后的SSD中数据分布的示例。如图2所示,第一块和第二块中存储第三数据的页都被设置为了无效页。
图3示出将图2中的第一块进行擦除的流程图。如图3所示,由于第一块中还包括了存储第四数据的有效页,需要先将有效页中存储的第四数据搬移到一个空白块,再将第一块中存储第四数据的有效页设置为无效页,最后才能将第一块进行擦除。
发明内容
本发明的目的在于提供一种固态硬盘的数据处理的方法和设备,通过减少固态硬盘垃圾回收过程中的有效数据的搬移操作,以提高垃圾回收的效率和固态硬盘的使用性能。
本发明的一方面提供一种固态硬盘的数据处理的方法,所述方法包括:接收第一数据的写入命令,响应于所述写入命令,确定一个空白的块,其中,所述写入命令用于指示将所述第一数据写入所述一个空白的块中,所述一个空白的块包括的页均为空白页,且所述一个空白的块仅用于存储所述第一数据;接收所述第一数据;将所述第一数据从所述一个空白的块开始写入。
可选地,在所述方法中,所述将所述第一数据从所述一个空白的块开始写入的步骤还包括:每当一个空白的块被写满而还未完全写入所述第一数据时,将所述第一数据中未写入的内容从另一个空白的块接着写入。
可选地,在所述方法中,第一数据包括多个数据段,所述接收所述第一数据的步骤包括:分别接收第一数据包括的多个数据段,所述将所述第一数据从所述一个空白的块开始写入的步骤包括:从所述一个空白的块的起始地址开始写入所述多个数据段,其中,存储第一个数据段的物理地址的起始地址为所述一个空白的块的起始地址,存储第一个数据段之后的任意一个数据段的物理地址与存储上一个数据段的物理地址相邻。
可选地,在所述方法中,所述将所述第一数据从所述一个空白的块开始写入的步骤还包括:每当一个空白的块被写满而还未完全写入所述多个数据段时,将所述多个数据段中未写入的数据段从另一个空白的块的起始地址接着写入,其中,当存储上一个数据段的物理地址的结束地址是一个块的结束地址时,存储所述任意一个数据段的物理地址从另一个空白的块的起始地址开始。
可选地,在所述方法中,所述多个数据段被划分为多个数据段组,所述将所述第一数据从所述一个空白的块开始写入的步骤包括:每当接收到一个数据段组时,执行一次写入,其中,每当一个空白的块被写满而还存在未被完全写入的一个数据段组和/或还存在未被写入的数据段组时,将所述未完全写入的一个数据段组的未写入的部分和/或存在的未被写入的数据段组从另一个空白的块接着写入。
可选地,所述方法还包括:在接收第一数据的写入命令之后,向主机发送所述确定的一个空白的块的标识号;接收所述空白的块的标识号;将所述第一数据从所述一个空白的块开始写入的步骤包括:根据所述空白的块的标识号,将所述第一数据从所述空白的块的标识号所指示的空白的块开始写入。
可选地,在所述方法中,当在接收第一数据的写入命令的同时并行接收到其它多个数据的写入命令时,针对每个数据,分别确定一个空白的块,分别接收所述第一数据和所述其它多个数据,并将每个数据分别从针对每个数据分别确定的一个空白的块开始写入。
可选地,所述方法还包括:接收第二数据的删除命令;将存储所述第二数据的块中的所有页设置为无效页。
可选地,在完成所述第一数据的写入后,所述方法还包括:将写入所述第一数据的块中的空白页设置为填充页;或将写入所述第一数据的块中的空白页设置为无效页。
可选地,所述方法还包括:接收第二数据的删除命令;将存储所述第二数据的页设置为无效页;在存储所述第二数据的块中搜索填充页,并将搜索到的填充页设置为无效页。
本发明的另一方面提供一种固态硬盘的数据处理的设备,所述设备包括:写入命令接收单元,接收第一数据的写入命令,响应于所述写入命令,确定一个空白的块,其中,所述写入命令用于指示将所述第一数据写入所述一个空白的块中,所述一个空白的块包括的页均为空白页,且所述一个空白的块仅用于存储所述第一数据;第一数据接收单元,接收所述第一数据;写入单元,将所述第一数据从所述一个空白的块开始写入。
可选地,在所述设备中,写入单元每当一个空白的块被写满而还未完全写入所述第一数据时,将所述第一数据中未写入的内容从另一个空白的块接着写入。
可选地,在所述设备中,第一数据包括多个数据段,第一数据接收单元分别接收第一数据包括的多个数据段,写入单元从所述一个空白的块的起始地址开始写入所述多个数据段,其中,存储第一个数据段的物理地址的起始地址为所述一个空白的块的起始地址,存储第一个数据段之后的任意一个数据段的物理地址与存储上一个数据段的物理地址相邻。
可选地,在所述设备中,写入单元每当一个空白的块被写满而还未完全写入所述多个数据段时,将所述多个数据段中未写入的数据段从另一个空白的块的起始地址接着写入,其中,当存储上一个数据段的物理地址的结束地址是一个块的结束地址时,存储所述任意一个数据段的物理地址从另一个空白的块的起始地址开始。
可选地,在所述设备中,所述多个数据段被划分为多个数据段组,每当第一数据接收单元接收到一个数据段组时,写入单元执行一次写入,其中,每当一个空白的块被写满而还存在未被完全写入的一个数据段组和/或还存在未被写入的数据段组时,写入单元将所述未完全写入的一个数据段组的未写入的部分和/或存在的未被写入的数据段组从另一个空白的块接着写入。
可选地,所述设备还包括:标识号发送单元,在接收第一数据的写入命令之后,向主机发送所述确定的一个空白的块的标识号;标识号接收单元,接收所述空白的块的标识号;其中,写入单元根据所述空白的块的标识号,将所述第一数据从所述空白的块的标识号所指示的空白的块开始写入。
可选地,在所述设备中,当写入命令接收单元在接收第一数据的写入命令的同时并行接收到其它多个数据的写入命令时,写入命令单元针对每个数据,分别确定一个空白的块,第一数据接收单元分别接收所述第一数据和所述其它多个数据,写入单元将每个数据分别从针对每个数据分别确定的一个空白的块开始写入。
可选地,所述设备还包括:删除命令接收单元,接收第二数据的删除命令;第一设置单元,将存储所述第二数据的块中的所有页设置为无效页。
可选地,所述设备还包括:第二设置单元,在完成所述第一数据的写入后,将写入所述第一数据的块中的空白页设置为填充页;或将写入所述第一数据的块中的空白页设置为无效页。
可选地,所述设备还包括:删除命令接收单元,接收第二数据的删除命令;第三设置单元,将存储所述第二数据的页设置为无效页;搜索单元,在存储所述第二数据的块中搜索填充页,并将搜索到的填充页设置为无效页。
在根据本发明示例性实施例的固态硬盘的数据处理的方法和设备中,由于在写入数据的流程中将写入的数据仅写入到了空白的块中,保证了每个块中只保存了一个数据,在删除数据后,即将存储了待删除的数据的页标记成无效后,存储被删除数据的块中只包括无效页和空白页或者只包括无效页,不包括有效页,因此在擦除该块的垃圾回收过程中,无需进行有效数据的搬移,提高了垃圾回收的效率和固态硬盘的使用效率。
将在接下来的描述中部分阐述本发明另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明的实施而得知。
附图说明
通过下面结合附图进行的详细描述,本发明的上述和其它目的、特点和优点将会变得更加清楚,其中:
图1示出现有的在SSD中分别写入第三数据和第四数据后的数据分布示例;
图2示出现有的将图1中的第三数据删除之后的SSD中数据分布的示例;
图3示出将图2中的第一块进行擦除的流程图;
图4示出根据本发明的示例性实施例的固态硬盘的数据处理方法中的写入数据的流程图;
图5示出根据本发明的示例性实施例的固态硬盘的数据处理方法中的删除数据的流程图;
图6示出根据本发明的另一示例性实施例的固态硬盘的数据处理方法中的写入数据的流程图;
图7示出根据本发明的另一示例性实施例的固态硬盘的数据处理方法中的删除数据的流程图;
图8示出根据本发明示例性实施例的写入数据的流程在SSD中分别写入第三数据和第四数据后的数据分布示例;
图9示出根据本发明示例性实施例的删除数据的流程将图8中的第三数据删除之后的SSD中数据分布的示例;
图10示出将图9中的第一块进行擦除的流程图;
图11示出根据本发明的示例性实施例的固态硬盘的数据处理设备中的写入数据模块的结构框图;
图12示出根据本发明的示例性实施例的固态硬盘的数据处理设备中的删除数据模块的结构框图;
图13示出根据本发明的另一示例性实施例的固态硬盘的数据处理设备中的写入数据模块的结构框图;
图14示出根据本发明的另一示例性实施例的固态硬盘的数据处理设备中的删除数据模块的结构框图。
具体实施方式
下面参照附图详细描述本发明的实施例。
图4示出根据本发明的示例性实施例的数据处理方法中的写入数据的流程图。
参照图4,在步骤S10,接收第一数据的写入命令,响应于所述写入命令,确定一个空白的块。这里,所述写入命令用于指示将所述第一数据写入所述一个空白的块中。所述一个空白的块包括的页均为空白页,且所述一个空白的块仅用于存储所述第一数据。
主机在接收到写入第一数据的请求时,将先向SSD发送第一数据的写入命令,SSD在接收到该命令后将确定一个空白的块。例如,SDD可以通过搜索来确定一个空白的块。之后SSD向所述主机返回对该命令的执行结果(如成功或失败)。此外,SSD也可向主机返回所述确定的一个空白的块的标识号,该标识号可以是SSD自定义的标识号,该标识号与所述空白的块的物理地址之间具有对应关系,当然也可以采用其它可行的方式,本实施例对于空白的块的标识号的具体形式不作具体限定。
在接收到上述执行结果后,主机将向SSD发送所述第一数据。主机还可以向SSD发送所述一个空白的块的标识号。这里,主机可以在发送第一数据之前,也可以在发送第一数据段的同时发送所述一个空白的块的标识号。也就是说,所述方法还可包括接收所述一个空白的块的标识号。
相应地,在步骤S20,接收所述第一数据。
主机在接收到写入所述第一数据的请求后,可以把所述第一数据分割为多个数据段,在接收到上述执行结果后,再将所述多个数据段分别发送给SSD。其中,每一个数据段的大小可以小于一个页的大小。例如,一个页的大小可以是一个数据段的大小的整数倍。相应地,在步骤S20中SSD分别接收由所述第一数据分割成的多个数据段。
在步骤S30,将所述第一数据从所述一个空白的块开始写入。这里,可以根据接收的空白的块的标识号来将所述第一数据从所述空白的块的标识号所指示的空白的块开始写入。也就是说,从在步骤S 10中确定的一个空白的块中开始写入所述第一数据。例如,可以从所述一个空白的块的起始地址开始写入所述第一数据。
这里,每当一个空白的块被写满而还未完全写入所述第一数据时,将所述第一数据中未写入的内容从另一个空白的块接着写入。例如,将所述第一数据中未写入的内容从另一个空白的块的起始地址接着写入。
在步骤S20中分别接收由第一数据分割成的多个数据段的情况下,在步骤S30中,从一个空白的块开始写入所述多个数据段。存储第一个数据段的物理地址的起始地址为一个空白的块的起始地址,存储第一个数据段之后的任意一个数据段的物理地址与存储上一个数据段的物理地址相邻。
在每当一个空白的块被写满而还未完全写入所述多个数据段时,将所述多个数据段未写入的数据段从另一个空白的块接着写入。也就是说,当存储上一个数据段的物理地址的结束地址是一个块的结束地址时,存储所述任意一个数据段的物理地址从另一个空白的块的起始地址开始。
所述多个数据段可以被划分为多个数据段组,在步骤S30中,每当接收到一个数据段组时,执行一次写入,并且每当一个空白的块被写满而还存在未被完全写入的一个数据段组和/或还存在未被写入的数据段组时,将所述未完全写入的一个数据段组的未写入的部分和/或存在的未被写入的数据段组从另一个空白的块接着写入。
具体说来,所述一个数据段组可以由多个连续且数据大小之和等于一个页的大小的数据段组成。由于SSD写入的基本单位是页,而每个数据段的大小小于一个页的大小,为了实现存储空间的有效利用,所以在步骤S30中不会马上将在步骤S20中接收的一个数据段进行写入,而是将接收到的数据段进行缓存,直到在步骤S20中多次接收的连续的数据段的大小之和等于一个页的大小,也就是说在步骤S30中缓存的多个连续的数据段的大小之和等于一个页的大小时,在步骤S30中才将缓存的多个连续的数据段写入与所述多个数据段的逻辑地址对应的物理地址(页)中。也就是说,在步骤S30中,每当接收到一个数据段组时,执行一次写入。
在步骤S20中SSD分别接收由所述第一数据分割成的多个数据段的方案中,所述方法还可以包括:针对任意一个数据段,接收申请用于存储数据段的空间的请求。所述请求可以包括所述任意一个数据段的数据大小以及上述在步骤S10中确定的一个空白的块的标识号。例如,主机在向SSD发送任意一个数据段之前,可以先向SSD发送用于申请存储数据段的空间的请求,SSD接收申请用于存储数据段的空间的请求,SSD可以响应于所述请求,根据所述请求中包括数据大小以及标识号来分配存储所述数据段的存储空间,根据所述存储空间的物理地址与逻辑地址的对应关系向主机返回所述逻辑地址。示例性地,所述分配的存储空间的物理地址可以用于指示存储数据段的位、所述位所在的页以及所述位所在的块。
对于第一个数据段,分配的存储空间可以是从上述搜索的一个空白的块的起始地址开始且不小于所述第一个数据段的大小。
对于第一个数据段之后的任意一个数据段,分配的存储空间可以是从上一个数据段的物理地址的结束地址开始且不小于所述任意一个数据段的大小。
当存储上一个数据段的物理地址的结束地址是一个块的结束地址时,搜索另一个空白的块,将从所述另一个空白的块的起始地址开始且不小于所述任意一个数据段的大小的存储空间分配给任意一个数据段。需要说明的是,SSD可以将所述标识号与上述一个空白的块的物理地址的对应关系取消,再建立所述标识号与搜索的另一个空白的块的物理地址的对应关系,从而,SSD可以在上一个数据段的物理地址的结束地址是一个块的结束地址时,根据所述请求中包括的数据大小以及标识号来分配所述任意一个数据段的存储空间。
在主机接收到SSD返回的逻辑地址之后,主机再向SSD发送所述任意一个数据段以及所述返回的逻辑地址,在步骤S20中接收到所述任意一个数据段以及逻辑地址之后,由于SSD写入的基本单位是页,而一个页的大小是所述任意一个数据段的大小的整数倍,所以在步骤S30中不会马上将在步骤S20中接收的数据段进行写入,而是将接收到的数据段进行缓存,直到在步骤S20中多次接收的且逻辑地址连续的数据段的大小之和等于一个页的大小,也就是说在步骤S30中缓存的多个逻辑地址连续的数据段的大小之和等于一个页的大小时,在步骤S30中才将缓存的多个逻辑地址连续的数据段写入与所述多个数据段的逻辑地址对应的物理地址(页)中。
由于对于第一个数据段,分配的存储空间可以是从上述搜索的一个空白的块的起始地址开始且不小于第一个数据段的大小,因此,在步骤S30中,可以将第一个数据段写入所述存储空间,即从上述搜索的一个空白的块的起始地址开始且不小于所述第一个数据段的大小的存储空间。
对于第一个数据段之后的任意一个的数据段,分配的存储空间可以是从上一个数据段的物理地址的结束地址开始且不小于所述任意一个数据段的大小,在步骤S30中,可以将任意一个数据段写入分配的存储空间,即从上一个数据段的物理地址的结束地址开始且不小于所述任意一个数据段的大小。
当存储上一个数据段的物理地址的结束地址是一个块的结束地址时,任意一个数据段的存储空间为从搜索的另一个空白的块的起始地址开始且存储大小不小于所述任意一个数据段的大小,在步骤S30中,可以将任意一个数据段写入分配的存储空间,即从搜索的另一个空白的块的起始地址开始且存不小于所述任意一个数据段的大小。
当在步骤S10中,接收第一数据的写入命令的同时,并行接收到其它多个数据的写入命令时,针对每个数据,分别确定一个空白的块,在S20中,分别接收所述第一数据和所述其它多个数据,在S30中,将每个数据分别从针对每个数据分别确定的一个空白的块开始写入。这里每个数据的接收以及写入过程可参照上述第一数据的接收和写入过程。
在根据本发明的示例性实施例中,由于在写入数据的流程中将写入的数据写入到了空白的块中,保证了每个块中只保存了一个数据,按照现有的删除流程删除数据后,即将存储了待删除的数据的页标记成无效后,被删除数据所在的块中只包括无效页和空白页或者只包括无效页,不包括有效页,因此在擦除该块的垃圾回收过程中,无需进行有效数据的搬移,提高了垃圾回收的效率和固态硬盘的使用效率。
此外,对于所有主机都使用根据本发明的示例性实施例的数据处理方法来处理数据的情况,本发明还可对现有的删除流程进行改进,例如,在接收到删除数据的命令之后,将待删除的数据所在的块的所有页设置为无效页。图5是示出根据本发明的示例性实施例的固态硬盘的数据处理方法中的删除数据的流程图。
参照图5,在步骤S40,接收第二数据的删除命令。作为示例,主机可以在接收到删除请求后,对接收到的删除请求进行处理,再将处理过的删除请求作为删除命令发送给SSD。所述删除请求可以包括所述第二数据的逻辑地址。
在步骤S50,将存储所述第二数据的块中的所有页设置为无效页。现有的SSD中的页根据使用状态一般分为三种:空白页、有数据且数据有效的有效页、有数据且数据无效的无效页。在步骤S50,将存储所述第二数据的页所在的块中的所有页的使用状态由有效更改为无效。
这里,在步骤S40和S50之间可以根据接收到的删除请求确定存储所述第二数据的物理地址,所述物理地址指示存储所述第二数据的页以及存储所述第二数据的页所在的块。这里,存储所述第二数据的页所在的块也可以称为存储所述第二数据的块。具体说来,可根据第二数据的逻辑地址以及逻辑地址与物理地址的对应关系确定存储所述第二数据的物理地址。逻辑地址与物理地址的对应关系存储在SSD中。
在根据本发明的另一个示例性实施例中,数据写入的流程还可以在完成第一数据的写入之后,再将写入所述第一数据的块中的空白页设置为填充页或者无效页,从而可以在数据删除的流程中,在将存储了待删除的数据的页设置为无效之后,再在存储所述待删除的数据的块中搜索填充页,并将搜索到的填充页设置为无效页,这样将更适用于SSD的主机中部分主机使用现有的数据处理方法,部分主机使用根据本发明示例性实施例的数据处理的方法的情况。所述填充页为用不同于有效数据的其他预定数据填充的页,其是本发明中除上述现有技术中的页的三种的使用状态之外的第四种使用状态。
图6示出根据本发明的另一示例性实施例的固态硬盘的数据处理方法中的写入数据的流程图。
在步骤S601,接收第一数据的写入命令,响应于所述写入命令,确定一个空白的块。
在步骤S602,接收所述第一数据。
在步骤S603,将所述第一数据从所述一个空白的块开始写入。
这里,可分别参照图4中的步骤S10、S20和S30来执行步骤S601、S602和S603。
在步骤S604,在第一数据的写入完成之后,将写入所述第一数据的块中的空白页设置为填充页。也就是说,将写入所述第一数据的块中的空白页用不同于有效数据的其他预定数据来进行填充。
在另一个实施例中,在步骤S604,在第一数据的写入完成之后,可将写入所述第一数据的块中的空白页设置为无效页。
图7示出根据本发明的另一示例性实施例的固态硬盘的数据处理方法中的删除数据的流程图。
在步骤S701,接收第二数据的删除命令。
在步骤S702,将存储所述第二数据的页设置为无效页。
在步骤S703,在存储所述第二数据的块中搜索填充页,并将搜索到的填充页设置为无效页。
这里,可参照图5中的步骤S40来执行步骤S701,还可参照图5中的方式来确定存储所述第二数据的页和块。
对于在写入数据的流程中,在第一数据的写入完成之后,将写入所述第一数据的块中的空白页设置为无效页的另一个实施例中,在删除数据时,可以不执行S703。
以下将结合图8-图10来描述根据本发明另一示例性实施例的写入数据的流程、删除数据的流程、垃圾回收的过程。
图8示出根据本发明示例性实施例的写入数据的流程在SSD中分别写入第三数据和第四数据后的数据分布示例。如图8所示,第三数据和第四数据的大小都小于一个块的大小,第三数据的全部数据写入到了第一块中,第一块中未写入第三数据的页被预定数据进行了填充,第四数据的全部数据写入到了第二块中,第二块中未写入第四数据的页被预定数据进行了填充。
图9示出根据本发明示例性实施例的删除数据的流程将图8中的第三数据删除之后的SSD中数据分布的示例。如图9所示,第一块存储第三数据的页以及被预定数据填充的页都被设置为了无效页,也就是说第一块中的所有页被设置为了无效页,由于第二块中没有存储第三数据的页,所以不需要对第二块进行处理。
图10示出将图9中的第一块进行擦除的流程图。如图10所示,由于第一块中的页都是无效页,没有有效数据,不需要进行有效数据的搬移,直接可以将第一块进行擦除。
因此,根据本发明示例性实施例的数据处理的方法来写入数据以及删除数据,可以实现垃圾回收过程中的有效数据的零搬移。
本领域技术人员可以理解,上述图8-图10中的实施方式不用于限制本发明,例如,图8中的第一块中未被第三数据写入的页可以不被预定数据进行填充,而是被设置为无效页,在图9中的删除流程中,由于第一块中未被第三数据写入的页已被设置为无效页,第一块中没有填充页,因此不需要搜索填充页,也可实现垃圾回收过程中的有效数据的零搬移。
图11是示出根据本发明的示例性实施例的固态硬盘的数据处理设备中的写入数据模块的结构框图。参照图11,根据本发明的示例性实施例的固态硬盘的数据处理的设备中的写入数据模块包括:写入命令接收单元1101、第一数据接收单元1102和写入单元1103。
写入命令接收单元1101接收第一数据的写入命令,响应于所述写入命令,确定一个空白的块。这里,所述写入命令用于指示将所述第一数据写入所述一个空白的块中。所述一个空白的块包括的页均为空白页,且所述一个空白的块仅用于存储所述第一数据。
主机在接收到写入第一数据的请求时,将先向SSD发送第一数据的写入命令,写入命令接收单元1101在接收到该命令后将确定一个空白的块。例如,写入命令接收单元1101可以通过搜索来确定一个空白的块。之后SSD向所述主机返回对该命令的执行结果(如成功或失败)。此外,所述设备还可以包括标识号发送单元(未示出),标识号发送单元用于向主机返回所述确定的一个空白的块的标识号。该标识号可以是SSD自定义的标识号,该标识号与所述空白的块的物理地址之间具有对应关系,当然也可以采用其它可行的方式,本实施例对于空白的块的标识号的具体形式不作具体限定。
在接收到上述执行结果后,主机将向SSD发送所述第一数据。主机还可以向SSD发送所述一个空白的块的标识号。这里,主机可以在发送第一数据之前,也可以在发送第一数据段的同时发送所述一个空白的块的标识号。相应地,所述设备还可以包括标识号接收单元(未示出),所述标识号接收单元用于接收主机发送的空白的块的标识号。
第一数据接收单元1102接收所述第一数据。
主机在接收到写入所述第一数据的请求后,可以将把所述第一数据分割为多个数据段,在接收到上述执行结果后,再将所述多个数据段分别发送给SSD。每个数据段的大小可以小于一个页的大小。例如,一个页的大小可以是一个数据段的大小的整数倍。相应地,第一数据接收单元1102分别接收由所述第一数据分割成的多个数据段。
写入单元1103将所述第一数据从所述一个空白的块开始写入。这里,可以根据接收的空白的块的标识号来将所述第一数据从所述空白的块的标识号所指示的空白的块开始写入。也就是说,从写入命令接收单元1101确定的一个空白的块中开始写入所述第一数据。例如,可以从所述一个空白的块的起始地址开始写入所述第一数据。
这里,每当一个空白的块被写满而还未完全写入所述第一数据时,写入单元1103将所述第一数据中未写入的内容从另一个空白的块接着写入。例如,写入单元1103将所述第一数据中未写入的内容从另一个空白的块的起始地址接着写入。
在第一数据接收单元1102分别接收由第一数据分割成的多个数据段的情况下,写入单元1103从一个空白的块开始写入所述多个数据段。存储第一个数据段的物理地址的起始地址为一个空白的块的起始地址,存储第一个数据段之后的任意一个数据段的物理地址与存储上一个数据段的物理地址相邻。
在每当一个空白的块被写满而还未完全写入所述多个数据段时,写入单元1103将所述多个数据段未写入的数据段从另一个空白的块接着写入。也就是说,当存储上一个数据段的物理地址的结束地址是一个块的结束地址时,存储所述任意一个数据段的物理地址从另一个空白的块的起始地址开始。
所述多个数据段可以被划分为多个数据段组,每当第一数据接收单元1102接收到一个数据段组时,写入单元1103执行一次写入,并且每当一个空白的块被写满而还存在未被完全写入的一个数据段组和/或还存在未被写入的数据段组时,写入单元1103将所述未完全写入的一个数据段组的未写入的部分和/或存在的未被写入的数据段组从另一个空白的块接着写入。
具体说来,所述一个数据段组可以由多个连续且数据大小之和等于一个页的大小的数据段组成。由于SSD写入的基本单位是页,而每个数据段的大小小于一个页的大小,为了实现存储空间的有效利用,所以写入单元1103不会马上将第一数据接收单元1102接收的一个数据段进行写入,而是将第一数据接收单元1102接收到的数据段进行缓存,直到在第一数据接收单元1102多次接收的连续的数据段的大小之和等于一个页的大小,也就是说在缓存的多个连续的数据段的大小之和等于一个页的大小时,写入单元1103才将缓存的多个连续的数据段写入与所述多个数据段的逻辑地址对应的物理地址(页)中。也就是说,每当第一数据接收单元1102接收到一个数据段组时,写入单元1103执行一次写入。
在第一数据接收单元1102分别接收由所述第一数据分割成的多个数据段的方案中,所述设备还可以包括空间请求接收单元(未示出),针对任意一个数据段,空间请求接收单元接收用于申请存储数据段的空间的请求。所述请求可以包括所述任意一个数据段的数据大小以及上述写入命令接收单元1101确定的一个空白的块的标识号。例如,主机在向SSD发送任意一个数据段之前,可以先向SSD发送用于申请存储数据段的空间的请求,空间请求接收单元接收申请用于存储数据段的空间的请求,并响应于所述请求,根据所述请求中包括数据大小以及标识号来分配存储所述数据段的存储空间,根据所述存储空间的物理地址与逻辑地址的对应关系向主机返回所述逻辑地址。示例性地,所述分配的存储空间的物理地址可以用于指示存储数据段的位、所述位所在的页以及所述位所在的块。
对于第一个数据段,分配的存储空间可以是从上述搜索的一个空白的块的起始地址开始且不小于所述第一个数据段的大小。
对于第一个数据段之后的任意一个数据段,分配的存储空间可以是从上一个数据段的物理地址的结束地址开始且不小于所述任意一个数据段的大小。
当存储上一个数据段的物理地址的结束地址是一个块的结束地址时,搜索另一个空白的块,将从所述另一个空白的块的起始地址开始且不小于所述任意一个数据段的大小的存储空间分配给任意一个数据段。需要说明的是,SSD可以将所述标识号与上述一个空白的块的物理地址的对应关系取消,再建立所述标识号与搜索的另一个空白的块的物理地址的对应关系,从而,SSD可以在上一个数据段的物理地址的结束地址是一个块的结束地址时,根据所述请求中包括的数据大小以及标识号来分配所述任意一个数据段的存储空间。
在主机接收到SSD返回的逻辑地址之后,主机再向SSD发送所述任意一个数据段以及所述返回的逻辑地址,在第一数据接收单元1102接收到所述任意一个数据段以及逻辑地址之后,由于SSD写入的基本单位是页,而一个页的大小是所述任意一个数据段的大小的整数倍,所以写入单元1103不会马上将第一数据接收单元1102接收的数据段进行写入,而是将接收到的数据段进行缓存,直到第一数据接收单元1102多次接收的且逻辑地址连续的数据段的大小之和等于一个页的大小,也就是说在缓存的多个逻辑地址连续的数据段的大小之和等于一个页的大小时,写入单元1103才将缓存的多个逻辑地址连续的数据段写入与所述多个数据段的逻辑地址对应的物理地址(页)中。
由于对于第一个数据段,分配的物理地址存储空间可以是从上述搜索的一个空白的块的起始地址开始且不小于第一个数据段的大小,因此,写入单元1103可以将第一个数据段写入所述存储空间,即从上述搜索的一个空白的块的起始地址开始且不小于第一个数据段的大小的存储空间。
对于第一个数据段之后的任意一个的数据段,分配的存储空间可以是从上一个数据段的物理地址的结束地址开始且不小于所述任意一个数据段的大小,写入单元1103可以将任意一个数据段写入分配的存储空间,即从上一个数据段的物理地址的结束地址开始且不小于所述任意一个数据段的大小。
当存储上一个数据段的物理地址的结束地址是一个块的结束地址时,任意一个数据段的存储空间为从搜索的另一个空白的块的起始地址开始且存储大小不小于所述任意一个数据段的大小,写入单元1103可以将任意一个数据段写入分配的存储空间,即从搜索的另一个空白的块的起始地址开始且存不小于所述任意一个数据段的大小相。
当写入命令接收单元1101接收第一数据的写入命令的同时,并行接收到其它多个数据的写入命令时,针对每个数据,写入命令接收单元1101分别确定一个空白的块,第一数据接收单元1102分别接收所述第一数据和所述其它多个数据,写入单元1103将每个数据分别从针对每个数据分别确定的一个空白的块开始写入。这里每个数据的接收以及写入过程可参照上述第一数据的接收和写入过程。
在根据本发明的示例性实施例中,由于在写入数据模块将写入的数据写入到了空白的块中,保证了每个块中只保存了一个数据,按照现有的删除流程删除数据后,即将存储了待删除的数据的页标记成无效后,被删除数据所在的块中只包括无效页和空白页或者只包括无效页,不包括有效页,因此在擦除该块的垃圾回收过程中,无需进行有效数据的搬移,提高了垃圾回收的效率和固态硬盘的使用效率。
此外,对于所有主机都使用根据本发明的示例性实施例的数据处理的设备来处理数据的情况,本发明还可对现有的删除流程进行改进,例如,在接收到删除数据的命令之后,将待删除的数据所在的块的所有页都设置为无效页。图12是示出根据本发明的示例性实施例的固态硬盘的数据处理方法中的删除数据模块的结构框图。参照图12,根据本发明的示例性实施例的固态硬盘的数据处理设备中的删除数据模块包括:删除命令接收单元1201和第一设置单元1202。
删除命令接收单元1201接收第二数据的删除命令。作为示例,主机可以在接收到删除请求后,对接收到的删除请求进行处理,再将处理过的删除请求作为删除命令发送给SSD。所述删除请求可以包括所述第二数据的逻辑地址。
第一设置单元1202将存储所述第二数据的块中的所有页设置为无效页。第一设置单元1202将存储所述第二数据的页所在的块中的所有页的使用状态由有效更改为无效。
这里,所述删除数据模块还可以包括物理地址确定单元(未示出)。所述物理地址确定单元根据接收到的删除请求确定存储所述第二数据的物理地址,所述物理地址指示存储所述第二数据的页以及存储所述第二数据的页所在的块。这里,存储所述第二数据的页所在的块也可以称为存储所述第二数据的块。具体说来,所述物理地址确定单元可根据第二数据的逻辑地址以及逻辑地址与物理地址的对应关系确定存储所述第二数据的物理地址。逻辑地址与物理地址的对应关系存储在SSD中。
在根据本发明的另一个示例性实施例中,数据写入模块还可以在完成第一数据的写入之后,再将写入所述第一数据的块中的空白页设置为填充页或者无效页,从而可以在数据删除的流程中,在将存储了待删除的数据的页设置为无效页之后,再在存储所述待删除的数据的块中搜索填充页,并将搜索到的填充页设置为无效页,这样将更适用于SSD的主机中部分主机使用现有的数据处理方法,部分主机使用根据本发明示例性实施例的数据处理的方法的情况。所述填充页为用不同于有效数据的其他预定数据填充的页,其是本发明中除上述现有技术中的页的三种的使用状态之外的第四种使用状态。
图13示出根据本发明的另一示例性实施例的固态硬盘的数据处理方法中的写入数据模块的结构框图。参照图13,根据本发明的另一示例性实施例的固态硬盘的数据处理方法中的写入数据模块包括写入命令接收单元1301、第一数据接收单元1302、写入单元1303和第二设置单元1304。
写入命令接收单元1301接收第一数据的写入命令,响应于所述写入命令,确定一个空白的块。
第一数据接收单元1302接收所述第一数据。
写入单元1303将所述第一数据从所述一个空白的块开始写入。
这里,写入命令接收单元1301、第一数据接收单元1302和写入单元1303的功能可分别参照图11中的第一数据接收单元1101、第一数据接收单元1102和写入单元1103。
第二设置单元1304在第一数据的写入完成之后,将写入所述第一数据的块中的空白页设置为填充页。也就是说,第二设置单元1304将写入所述第一数据的块中的空白页用不同于有效数据的其他预定数据来进行填充。
在另一个实施例中,第二设置单元1304在第一数据的写入完成之后,可将写入所述第一数据的块中的空白页设置为无效页。
图14示出根据本发明的另一示例性实施例的固态硬盘的数据处理方法中的删除数据模块的结构框图。参照图14,根据本发明的另一示例性实施例的固态硬盘的数据处理方法中的删除数据模块包括:删除命令接收单元1401、第三设置单元1402和搜索单元1403。
删除命令接收单元1401接收第二数据的删除命令。
第三设置单元1402将存储所述第二数据的页设置为无效页。
搜索单元1403在存储所述第二数据的块中搜索填充页,并将搜索到的填充页设置为无效页。
这里,删除命令接收单元1401的功能可参照图12中的删除命令接收单元1201,还可参照图12中的方式来确定存储所述第二数据的页和块。
对于写入数据模块中的第二设置单元在第一数据的写入完成之后,将写入所述第一数据的块中的空白页设置为无效页的另一个实施例中,其删除数据模块可以不包括搜索单元1403。
在根据本发明示例性实施例的固态硬盘的数据处理的方法和设备中,由于在写入数据的流程中将写入的数据仅写入到了空白的块中,保证了每个块中只保存了一个数据,在删除数据后,即将存储了待删除的数据的页标记成无效后,存储被删除数据的块中只包括无效页和空白页或者只包括无效页,不包括有效页,因此在擦除该块的垃圾回收过程中,无需进行有效数据的搬移,提高了垃圾回收的效率和固态硬盘的使用效率。根据本发明的固态硬盘的数据处理的方法和设备可应用于各种数据的存储处理,对于大型数据中心的服务器中的数据存储处理,效果更佳。此外,由于采用日志结构合并(LOGStructured-Merge,LSM)的文件组织形式的系统对于数据的处理只包括写入和删除两种操作,因此根据本发明的固态硬盘的数据存储处理的方法和设备可较好地应用于采用LSM的文件组织形式的系统。
此外,应该理解,根据本发明的示例性实施例的固态硬盘的数据处理的方法也可实现为计算机可读记录介质上的计算机可读代码。计算机可读记录介质是可存储其后可由计算机系统读出的数据的任意数据存储装置。计算机可读记录介质的示例包括:只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光数据存储装置和载波(诸如经有线或无线传输路径通过互联网的数据传输)。计算机可读记录介质也可分布于连接网络的计算机系统,从而计算机可读代码以分布式存储和执行。此外,完成本发明的功能程序、代码和代码段可容易地被与本发明相关的领域的普通程序员在本发明的范围之内解释。
此外,根据本发明的示例性实施例的固态硬盘的数据处理的设备中的各个单元可被实现硬件组件。本领域技术人员根据限定的各个单元所执行的处理,可以例如使用现场可编程门阵列(FPGA)或专用集成电路(ASIC)来实现各个单元。
尽管已经参照其示例性实施例具体显示和描述了本发明,但是本领域的技术人员应该理解,在不脱离权利要求所限定的本发明的精神和范围的情况下,可以对其进行形式和细节上的各种改变。

Claims (20)

1.一种固态硬盘的数据处理的方法,其特征在于,包括:
接收第一数据的写入命令,响应于所述写入命令,确定一个空白的块,其中,所述写入命令用于指示将所述第一数据写入所述一个空白的块中,所述一个空白的块包括的页均为空白页,且所述一个空白的块仅用于存储所述第一数据;
接收所述第一数据;
将所述第一数据从所述一个空白的块开始写入。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一数据从所述一个空白的块开始写入的步骤还包括:
每当一个空白的块被写满而还未完全写入所述第一数据时,将所述第一数据中未写入的内容从另一个空白的块接着写入。
3.根据权利要求1所述的方法,其特征在于,
第一数据包括多个数据段,
所述接收所述第一数据的步骤包括:分别接收第一数据包括的多个数据段,
所述将所述第一数据从所述一个空白的块开始写入的步骤包括:从所述一个空白的块的起始地址开始写入所述多个数据段,
其中,存储第一个数据段的物理地址的起始地址为所述一个空白的块的起始地址,存储第一个数据段之后的任意一个数据段的物理地址与存储上一个数据段的物理地址相邻。
4.根据权利要求3所述的方法,其特征在于,所述将所述第一数据从所述一个空白的块开始写入的步骤还包括:每当一个空白的块被写满而还未完全写入所述多个数据段时,将所述多个数据段中未写入的数据段从另一个空白的块的起始地址接着写入,
其中,当存储上一个数据段的物理地址的结束地址是一个块的结束地址时,存储所述任意一个数据段的物理地址从另一个空白的块的起始地址开始。
5.根据权利要求4所述的方法,所述多个数据段被划分为多个数据段组,所述将所述第一数据从所述一个空白的块开始写入的步骤包括:每当接收到一个数据段组时,执行一次写入,其中,每当一个空白的块被写满而还存在未被完全写入的一个数据段组和/或还存在未被写入的数据段组时,将所述未完全写入的一个数据段组的未写入的部分和/或存在的未被写入的数据段组从另一个空白的块接着写入。
6.根据权利要求1-5任一项所述的方法,其特征在于,该方法还包括:在接收第一数据的写入命令之后,向主机发送所述确定的一个空白的块的标识号;
接收所述空白的块的标识号;
将所述第一数据从所述一个空白的块开始写入的步骤包括:
根据所述标识号,将所述第一数据从所述标识号所指示的空白的块开始写入。
7.根据权利要求1所述的方法,其特征在于,当在接收第一数据的写入命令的同时并行接收到其它多个数据的写入命令时,针对每个数据,分别确定一个空白的块,
分别接收所述第一数据和所述其它多个数据,并将每个数据分别从针对每个数据分别确定的一个空白的块开始写入。
8.根据权利要求1-7任一项所述的方法,其特征在于,还包括:
接收第二数据的删除命令;
将存储所述第二数据的块中的所有页设置为无效页。
9.根据权利要求1-7任一项所述的方法,其特征在于,在完成所述第一数据的写入后,所述方法还包括:
将写入所述第一数据的块中的空白页设置为填充页,或
将写入所述第一数据的块中的空白页设置为无效页。
10.根据权利要求9所述的方法,其特征在于,还包括:
接收第二数据的删除命令;
将存储所述第二数据的页设置为无效页;
在存储所述第二数据的块中搜索填充页,并将搜索到的填充页设置为无效页。
11.一种固态硬盘的数据处理的设备,其特征在于,包括:
写入命令接收单元,接收第一数据的写入命令,响应于所述写入命令,确定一个空白的块,其中,所述写入命令用于指示将所述第一数据写入所述一个空白的块中,所述一个空白的块包括的页均为空白页,且所述一个空白的块仅用于存储所述第一数据;
第一数据接收单元,接收所述第一数据;
写入单元,将所述第一数据从所述一个空白的块开始写入。
12.根据权利要求11所述的设备,其特征在于,写入单元每当一个空白的块被写满而还未完全写入所述第一数据时,将所述第一数据中未写入的内容从另一个空白的块接着写入。
13.根据权利要求11所述的设备,其特征在于,
第一数据包括多个数据段,
第一数据接收单元分别接收第一数据包括的多个数据段,
写入单元从所述一个空白的块的起始地址开始写入所述多个数据段,
其中,存储第一个数据段的物理地址的起始地址为所述一个空白的块的起始地址,存储第一个数据段之后的任意一个数据段的物理地址与存储上一个数据段的物理地址相邻。
14.根据权利要求13所述的设备,其特征在于,写入单元每当一个空白的块被写满而还未完全写入所述多个数据段时,将所述多个数据段中未写入的数据段从另一个空白的块的起始地址接着写入,
其中,当存储上一个数据段的物理地址的结束地址是一个块的结束地址时,存储所述任意一个数据段的物理地址从另一个空白的块的起始地址开始。
15.根据权利要求14所述的设备,所述多个数据段被划分为多个数据段组,每当第一数据接收单元接收到一个数据段组时,写入单元执行一次写入,其中,每当一个空白的块被写满而还存在未被完全写入的一个数据段组和/或还存在未被写入的数据段组时,写入单元将所述未完全写入的一个数据段组的未写入的部分和/或存在的未被写入的数据段组从另一个空白的块接着写入。
16.根据权利要求11-15任一项所述的设备,其特征在于,所述设备还包括:
标识号发送单元,在写入命令接收单元接收第一数据的写入命令之后,向主机发送所述确定的一个空白的块的标识号;
标识号接收单元,接收所述空白的块的标识号;
其中,写入单元根据所述标识号,将所述第一数据从所述标识号所指示的空白的块开始写入。
17.根据权利要求11所述的设备,其特征在于,当写入命令接收单元在接收第一数据的写入命令的同时并行接收到其它多个数据的写入命令时,写入命令单元针对每个数据,分别确定一个空白的块,
第一数据接收单元分别接收所述第一数据和所述其它多个数据,写入单元将每个数据分别从针对每个数据分别确定的一个空白的块开始写入。
18.根据权利要求11-17任一项所述的设备,其特征在于,还包括:
删除命令接收单元,接收第二数据的删除命令;
第一设置单元,将存储所述第二数据的块中的所有页设置为无效页。
19.根据权利要求11-17任一项所述的设备,其特征在于,还包括:
第二设置单元,在写入单元完成所述第一数据的写入后,将写入所述第一数据的块中的空白页设置为填充页,或将写入所述第一数据的块中的空白页设置为无效页。
20.根据权利要求19所述的设备,其特征在于,还包括:
删除命令接收单元,接收第二数据的删除命令;
第三设置单元,将存储所述第二数据的页设置为无效页;
搜索单元,在存储所述第二数据的块中搜索填充页,并将搜索到的填充页设置为无效页。
CN201510880930.5A 2015-12-03 2015-12-03 固态硬盘的数据处理的方法和设备 Pending CN106844222A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201510880930.5A CN106844222A (zh) 2015-12-03 2015-12-03 固态硬盘的数据处理的方法和设备
KR1020160041083A KR20170065427A (ko) 2015-12-03 2016-04-04 Ssd의 데이터 프로세싱 방법 및 장치
US15/362,558 US20170160940A1 (en) 2015-12-03 2016-11-28 Data processing method and apparatus of solid state disk

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510880930.5A CN106844222A (zh) 2015-12-03 2015-12-03 固态硬盘的数据处理的方法和设备

Publications (1)

Publication Number Publication Date
CN106844222A true CN106844222A (zh) 2017-06-13

Family

ID=58798999

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510880930.5A Pending CN106844222A (zh) 2015-12-03 2015-12-03 固态硬盘的数据处理的方法和设备

Country Status (3)

Country Link
US (1) US20170160940A1 (zh)
KR (1) KR20170065427A (zh)
CN (1) CN106844222A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108897492A (zh) * 2018-05-30 2018-11-27 新华三技术有限公司 一种数据写入方法和装置
CN110246534A (zh) * 2019-05-07 2019-09-17 陈颐 一种降低闪存记忆体写入扰动的方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6789788B2 (ja) * 2016-12-12 2020-11-25 株式会社メガチップス メモリ装置、コントローラ、ホスト装置、データ処理システム、制御プログラム、メモリ装置の動作方法及びホスト装置の動作方法
KR20190005307A (ko) * 2017-07-06 2019-01-16 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20210158383A (ko) * 2019-10-31 2021-12-30 주식회사 엘솔루 복수의 화자들에 대한 전사 데이터를 생성 및 관리하는 방법 및 이를 수행하는 전사 장치
US11275687B2 (en) * 2020-07-07 2022-03-15 Micron Technology, Inc. Memory cache management based on storage capacity for parallel independent threads

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060129749A1 (en) * 2004-04-20 2006-06-15 Masahiro Nakanishi Nonvolatile memory system, nonvolatile memory device, memory controller, access device, and method for controlling nonvolatile memory device
CN104484283A (zh) * 2014-11-27 2015-04-01 记忆科技(深圳)有限公司 一种降低固态硬盘写放大的方法
CN104793900A (zh) * 2015-02-10 2015-07-22 北京君正集成电路股份有限公司 一种对nand进行操作的方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9658966B2 (en) * 2014-11-24 2017-05-23 Sandisk Technologies Llc Systems and methods of write cache flushing
US9996268B2 (en) * 2015-12-18 2018-06-12 Toshiba Memory Corporation Memory system and control method of the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060129749A1 (en) * 2004-04-20 2006-06-15 Masahiro Nakanishi Nonvolatile memory system, nonvolatile memory device, memory controller, access device, and method for controlling nonvolatile memory device
CN104484283A (zh) * 2014-11-27 2015-04-01 记忆科技(深圳)有限公司 一种降低固态硬盘写放大的方法
CN104793900A (zh) * 2015-02-10 2015-07-22 北京君正集成电路股份有限公司 一种对nand进行操作的方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108897492A (zh) * 2018-05-30 2018-11-27 新华三技术有限公司 一种数据写入方法和装置
CN108897492B (zh) * 2018-05-30 2021-06-29 新华三技术有限公司 一种数据写入方法和装置
CN110246534A (zh) * 2019-05-07 2019-09-17 陈颐 一种降低闪存记忆体写入扰动的方法

Also Published As

Publication number Publication date
US20170160940A1 (en) 2017-06-08
KR20170065427A (ko) 2017-06-13

Similar Documents

Publication Publication Date Title
CN106844222A (zh) 固态硬盘的数据处理的方法和设备
CN108021510B (zh) 操作对多重名称空间进行管理的存储装置的方法
CN102511044B (zh) 一种数据删除方法及装置
US10761731B2 (en) Array controller, solid state disk, and method for controlling solid state disk to write data
US7350017B2 (en) Magnetic disk unit, file management system, and file management method
CN107391774B (zh) 基于重复数据删除的日志文件系统的垃圾回收方法
CN103136121B (zh) 一种固态盘的缓存管理方法
CN104461393B (zh) 一种闪存存储器的混合映射方法
JP6355650B2 (ja) 不揮発性記憶デバイスのためのメモリーのリアドレシング
US10216418B2 (en) Storage apparatus and method for autonomous space compaction
KR101663667B1 (ko) 플래시 메모리의 주소 매핑에 의한 데이터 관리 방법 및 장치
CN105930282B (zh) 一种用于nand flash的数据缓存方法
US20170139825A1 (en) Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach
US20140089564A1 (en) Method of data collection in a non-volatile memory
US20140082310A1 (en) Method and apparatus of storage tier and cache management
US20100174865A1 (en) Dynamic data security erasure
CN104484283B (zh) 一种降低固态硬盘写放大的方法
CN103984641B (zh) 一种基于精简配置技术的存储空间回收方法及其装置
JP2008198208A (ja) ホストデータ処理装置の動作方法、ホストデータ処理装置並びにデータ格納装置
US11042328B2 (en) Storage apparatus and method for autonomous space compaction
CN108334284A (zh) 尾延迟感知前台垃圾收集算法
CN107329704A (zh) 一种缓存镜像方法及控制器
KR101374065B1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
CN107797772A (zh) 一种基于闪存介质的垃圾回收系统及方法
CN104092670A (zh) 网络缓存服务器处理文件的方法及处理缓存文件的设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210421

Address after: No.1999, North Fuhe Road, high tech Zone, Xi'an City, Shaanxi Province

Applicant after: SAMSUNG (CHINA) SEMICONDUCTOR Co.,Ltd.

Applicant after: Samsung Electronics Co.,Ltd.

Address before: 710065, A building, Jiayu building, No. 58, Kam Yip Road, Xi'an hi tech Zone, Shaanxi, China

Applicant before: XI'AN SAMSUNG ELECTRONICS RESEARCH Co.,Ltd.

Applicant before: Samsung Electronics Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170613