CN107515728B - 发挥闪存设备内部并发特性的数据管理方法和装置 - Google Patents
发挥闪存设备内部并发特性的数据管理方法和装置 Download PDFInfo
- Publication number
- CN107515728B CN107515728B CN201610437796.6A CN201610437796A CN107515728B CN 107515728 B CN107515728 B CN 107515728B CN 201610437796 A CN201610437796 A CN 201610437796A CN 107515728 B CN107515728 B CN 107515728B
- Authority
- CN
- China
- Prior art keywords
- data
- management system
- request
- data management
- flash memory
- 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.)
- Active
Links
- 238000013523 data management Methods 0.000 title claims abstract description 124
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000013519 translation Methods 0.000 claims abstract description 21
- 238000004064 recycling Methods 0.000 claims abstract description 11
- 230000007246 mechanism Effects 0.000 claims abstract description 6
- 238000006243 chemical reaction Methods 0.000 claims description 18
- 238000010187 selection method Methods 0.000 claims description 2
- 238000011084 recovery Methods 0.000 claims 1
- 230000002035 prolonged effect Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 239000008187 granular material Substances 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种发挥闪存设备内部并发特性的数据管理方法和装置,该方法包括:在挂载时,获取闪存设备的内部结构信息;在进行空间分配时,根据内部结构信息,采用二维空间分配方法在闪存设备内部多个并行单元上进行空间分配,并在单个并行单元内部根据数据预计失效时间进行数据分组;在垃圾回收时,对数据管理系统与闪存转换层采用协同垃圾回收方法并采用多线程的垃圾回收机制进行垃圾回收;在对闪存的读写擦请求进行调度时,使用动态请求调度方法将写请求发送到负载最轻的并行单元上;在剩余空间低于预设空间或擦除请求调度低于擦除请求阈值时调度擦除请求。本发明具有如下优点:提高存储系统带宽,延长了设备的使用寿命,提供了稳定的性能。
Description
技术领域
本发明涉及闪存存储技术领域,特别涉及一种发挥闪存设备内部并发特性的数据管理方法和装置。
背景技术
闪存(Flash Memory)是一种电子式可擦除编程存储器。与传统的磁盘介质相比,闪存具有读写带宽高、访问延迟低、功耗低、稳定性强的特点,目前已经开始在数据中心、个人电脑、移动设备上普及。闪存以页为单位进行读写,当闪存重写一个页之前,需要先进行擦除操作。闪存以块为单位进行擦除,一个闪存块中包含几百个闪存页。闪存的单元具有有限次的擦写(Programming/Erase,P/E)操作,即每个闪存单元具有有限的寿命。
以闪存为基础构建的固态盘(Solid State Drive,SSD)采用闪存转换层(FlashTranslation Layer,FTL)对闪存的读写擦除进行管理,并向软件系统提供与传统磁盘相同的读写接口。闪存转换层(FTL)主要包含三种功能:地址映射、垃圾回收和磨损均衡。地址映射是用于记录闪存异地更新过程中逻辑地址和闪存物理地址的映射关系;垃圾回收是选择并擦除失效的闪存页,以恢复空闲状态,留作新数据写入;磨损均衡是为保证数据的可靠存储,将数据均匀的写入每个闪存页中。除此之外,闪存转换层还包含ECC(Error CorrectionCode)校验、坏块管理等功能。
在固态盘内部,闪存芯片(package)通过不同的通道(Channel)连接到闪存控制器。在闪存芯片中,封装有多个闪存颗粒(die),每个颗粒可以独立执行指令。每个颗粒包含多个闪存片(plane),每个闪存片拥有独立的寄存器,可提供多闪存片之间的流水指令执行。通过不同级别的并发,固态盘可提供充足的访问带宽。这一特性被称为闪存设备的内部并发。
在存储系统中,相关技术提出了针对闪存设备的定向优化,目前针对如何发挥闪存设备的内部并发特性,在数据管理系统层研究较少,使得优化工作难以进行;而在闪存转换层,对闪存设备的读写优化不够彻底,造成了性能的开销和寿命的下降。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的一个目的在于提出一种发挥闪存设备内部并发特性的数据管理方法。
本发明的另一个目的在于提出一种闪存的数据管理装置。
为了实现上述目的,本发明的实施例公开了一种发挥闪存设备内部并发特性的数据管理方法,包括以下步骤:在数据管理系统挂载时,获取闪存设备的内部结构信息;在所述数据管理系统进行空间分配时,根据所述闪存设备的内部结构信息,采用二维空间分配方法在所述闪存设备内部多个并行单元上进行空间分配,并在单个并行单元内部根据预计数据失效时间进行数据分组;在所述数据管理系统垃圾回收时,对所述数据管理系统与闪存转换层采用协同垃圾回收方法并采用多线程的垃圾回收机制进行垃圾回收;在数据管理系统对闪存的读写擦请求进行调度时,使用动态请求调度方法将写请求发送到负载最轻的并行单元上;在剩余空间低于预设空间或擦除请求调度低于擦除请求阈值时调度擦除请求。
根据本发明实施例的发挥闪存设备内部并发特性的数据管理方法,通过闪存转换层提供的内部结构信息,数据管理系统能够直接管理闪存设备的空间分配,避免了因为转换层的地址映射,导致的逻辑地址空间与物理地址空间不一致的现象;数据管理系统在空间分配时,利用了多并行单元的并发特性,同时保持了并行单元内部数据分组的有效性;提高了存储系统带宽,延长了设备的使用寿命,提供了稳定的性能。
另外,根据本发明上述实施例的发挥闪存设备内部并发特性的数据管理方法,还可以具有如下附加的技术特征:
进一步地,所述闪存设备的内部结构信息包括并行单元数量、并行单元容量和闪存擦除最小单位尺寸。
进一步地,所述二维空间分配方法包括:所述数据管理系统将写入数据分成闪存页大小的数据块,在每次分配所述数据块时,将待分配的数据块分配给负载最轻的并行单元;确定每次分配数据块的目的并行单元后,将待分配数据块写入所述目的并行单元中与所述待分配数据块的预计数据失效时间最相似的数据组中。
进一步地,所述协同垃圾回收方法包括:所述述数据管理系统的垃圾回收线程将选中的数据段中的有效数据页拷贝到其他处于空闲状态的数据段中;在所述选中的数据段中的全部有效数据页被拷贝成功后,所述数据管理系统发送擦除请求到所述闪存设备的闪存转换层;所述闪存转换层,根据所述擦除请求使用物理擦除的方法擦除掉与所述选中的数据段对应的闪存块。
进一步地,在垃圾回收过程中,垃圾回收的数据选择方法包括:在所述数据管理系统的垃圾回收线程触发后,在所述数据管理系统的剩余空间低于所述预设空间时,所述垃圾回收线程无效页最多的数据段进行垃圾回收;在所述数据管理系统的剩余空间大于所述预设空间时,选择写入时间最长且无效页最多的数据段进行垃圾回收。进一步地,所述动态请求调度方法包括:所述数据管理系统为每个并行单元建立请求队列,所述请求队列记录当前该并行单元需要处理的读写请求数量和长度,对于写请求,所述数据管理系统将根据每个并行单元对应的请求队列的长度,选择请求队列最短的并行单元作为写请求发送的目的地;对于擦除请求,所述数据管理系统根据当前并行单元可用空间比例以及同时处理的擦除请求数量确定是否对当前的擦除请求进行调度。
为了实现上述目的,本发明的实施例还公开了一种闪存的数据管理装置,包括:裸闪存设备;闪存转换层;数据管理系统,所述数据管理系统用于在挂载时获取所述闪存的内部结构信息,并在进行空间分配时,根据所述闪存的内部结构信息,采用二维空间分配方法在所述闪存设备内部多个并行单元上进行空间分配,并在单个并行单元内部根据预计数据失效时间进行数据分组;所述数据管理系统还用于在所述数据管理系统垃圾回收时,对所述数据管理系统与闪存转换层采用协同垃圾回收方法并采用多线程的垃圾回收方法进行垃圾回收;所述数据管理系统还用于在数据管理系统对闪存的读写擦请求进行调度时,使用动态请求调度方法将写请求发送到负载最轻的并行单元上;在剩余空间低于预设空间或擦除请求调度低于擦除请求阈值时调度擦除请求。
根据本发明实施例的闪存,通过闪存转换层提供的内部结构信息,数据管理系统能够直接管理闪存设备的空间分配,避免了因为转换层的地址映射,导致的逻辑地址空间与物理地址空间不一致的现象;数据管理系统在空间分配时,利用了多并行单元的并发特性,同时保持了并行单元内部数据分组的有效性;提高了存储系统带宽,延长了设备的使用寿命,提供了稳定的性能。
另外,根据本发明上述实施例的闪存,还可以具有如下附加的技术特征:
进一步地,所述二维空间分配方法包括:所述数据管理系统将写入数据分成闪存页大小的数据块,在每次分配所述数据块时,将待分配的数据块分配给存储数据块最少的并行单元;确定每次分配数据块的目的并行单元后,将待分配数据块写入所述目的并行单元中与所述待分配数据块的预计数据失效时间最相似的数据组中。
进一步地,所述协同垃圾回收方法包括:所述数据管理系统的垃圾回收线程将选中的数据段中的有效数据页拷贝到其他处于空闲状态的数据段中;在所述选中的数据段中的全部有效数据页被拷贝成功后,所述数据管理系统发送擦除请求到所述闪存设备的闪存转换层;所述闪存转换层,根据所述擦除请求使用物理擦除的方法擦除掉与所述选中的数据段对应的闪存块;其中,在所述数据管理系统的垃圾回收线程触发后,在所述数据管理系统的剩余空间低于所述预设空间时,所述垃圾回收线程无效页最多的数据段进行垃圾回收;在所述数据管理系统的剩余空间大于所述预设空间时,选择写入时间最长且无效页最多的数据段进行垃圾回收。
进一步地,所述动态请求调度方法包括:所述数据管理系统为每个并行单元建立请求队列,所述请求队列记录当前该并行单元需要处理的读写请求数量和长度,对于写请求,所述数据管理系统将根据每个并行单元对应的请求队列的长度,选择请求队列最短的并行单元作为写请求发送的目的地;对于擦除请求,所述数据管理系统根据当前并行单元可用空间比例以及同时处理的擦除请求数量确定是否对当前的擦除请求进行调度。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一个实施例的发挥闪存设备内部并发特性的数据管理方法的流程图;
图2是本发明一个实施例的二维空间分配流程的示意图;
图3是本发明一个实施例的协同垃圾回收的示意图;
图4是本发明一个实施例的动态请求调度的示意图;
图5是本发明一个实施例的闪存的数据管理装置的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
以下结合附图描述根据本发明实施例的发挥闪存设备内部并发特性的数据管理方法和闪存的数据管理装置。
图1是本发明一个实施例的发挥闪存设备内部并发特性的数据管理方法的流程图。请参考图1,一种发挥闪存设备内部并发特性的数据管理方法,包括以下步骤:
S1:在数据管理系统挂载时,获取闪存设备的内部结构信息。
在本发明的一个实施例中,闪存设备的内部结构信息包括并行单元数量、并行单元容量和闪存擦除最小单位尺寸。
S2:在数据管理系统进行空间分配时,根据闪存设备的内部结构信息,采用二维空间分配方法在闪存设备内部多个并行单元上进行空间分配,并在单个并行单元内部根据预计数据失效时间进行数据分组。
在本发明的一个实施例中,二维空间分配方法包括:
第一个纬度为并行单元的纬度。数据管理系统将写入数据分成闪存页大小的数据块,在每次分配数据块时,将待分配的数据块分配给负载最轻的并行单元,以此来发挥并行单元间的并发性能;
第二个纬度为数据的冷热维度。确定每次分配数据块的目的并行单元后,将待分配数据块写入目的并行单元中与待分配数据块的预计数据失效时间最相似的数据组中。
S3:在数据管理系统垃圾回收时,对数据管理系统与闪存转换层采用协同垃圾回收方法并采用多线程的垃圾回收机制进行垃圾回收。
在本发明的一个实施例中,协同垃圾回收方法包括:
在数据管理系统中,使用多个垃圾回收线程进行垃圾回收工作。
垃圾回收线程将进行垃圾回收的数据段中的有效数据页拷贝到其他处于空闲状态的数据段中;在进行垃圾回收的数据段中的全部有效数据页被拷贝成功后,数据管理系统发送擦除请求到闪存设备的闪存转换层;闪存转换层,只保留了物理擦除的功能,在收到擦除请求后,使用物理擦除的方法擦除掉与数据管理系统数据段对应的闪存块,毋须额外的数据页移动工作。
其中,垃圾回收中数据段的选择方法包括:
在数据管理系统的垃圾回收线程触发后,在数据管理系统的剩余空间低于预设空间时,垃圾回收线程无效页最多的数据段进行垃圾回收。此时由于可用空间受限,垃圾回收线程会选择无效页最多的数据段进行垃圾回收,以此来获得更多的可用空间。
在数据管理系统的剩余空间大于预设空间时,选择写入时间最长的数据段进行垃圾回收,因为写入时间较短的数据段中的数据,可能会在不久后变为无效,所以选择写入时间最长且无效页最多的数据段,垃圾回收效率更高。
S4:在数据管理系统对闪存的读写擦请求进行调度时,使用动态请求调度方法将写请求发送到负载最轻的并行单元上;在剩余空间低于预设空间或擦除请求调度低于擦除请求阈值时调度擦除请求。
在本发明的一个实施例中,动态请求调度方法包括:数据管理系统为每个并行单元建立请求队列,请求队列记录当前该并行单元需要处理的读写请求数量和长度,对于写请求,数据管理系统将根据每个并行单元对应的请求队列的长度,选择请求队列最短的并行单元作为写请求发送的目的地;对于擦除请求,数据管理系统根据当前并行单元可用空间比例以及同时处理的擦除请求数量确定是否对当前的擦除请求进行调度。
为使本领域技术人员进一步理解本发明,经通过以下实施例进行详细说明。
实施例:
在文件系统挂载时,闪存转换层将描述闪存内部结构信息的三个值:闪存通道数量、闪存通道容量、闪存擦除最小单位尺寸,通过操作系统的ioctl接口,传递给文件系统。文件系统通过这三个值,能够在软件层建立对闪存设备的结构抽象,如图2所示。文件系统将地址空间分成与闪存设备一致的多个通道,每个通道的容量与闪存通道的容量保持一致。在一个通道内,将空间分成已经分配的空间和空闲空间。在分配空间中,根据数据的冷热程度,分成6个数据组。数据的冷热程度是根据预计数据失效时间的长短来判断的。数据失效时间越短,数据越热。
如图2所示,当一个写请求到来时,文件系统首先将写请求分解成闪存页大小的多个小的写请求。在闪存通道的维度,将这些小的闪存页的写分配到多个不同的闪存通道中。图2中闪存页上的标号,代表了这些闪存页最终要写入的目的闪存通道号。在数据页被确定最终要写入的通道号以后,文件系统需要给数据确定在通道内的数据组号,即数据冷热维度的分配。在文件系统中,每个通道有六个数据组,分别存储冷、暖、热的常规数据和文件元数据。数据的冷热程度是通过数据失效的时间长短来划分的。数据失效时间越短,数据越热。文件系统通过估计要写入的数据的冷热程度,选择与其最接近的数据组,最终将数据写入通道的某个数据组中,完成整个空间的分配工作。
协同垃圾回收技术包括:闪存转换层与文件系统的协同垃圾回收和文件系统的多线程垃圾回收技术。文件系统在软件层对闪存设备的每个闪存块的使用量有准确的记录,因为闪存转换层已将闪存的内部结构信息传递给了文件系统。文件系统可以准确的获得每个物理闪存块的使用情况。传统闪存转换层中的垃圾回收机制移动到文件系统中,闪存转换层仅保留物理擦除的功能。当需要垃圾回收时,文件系统首先选择需要被回收的物理闪存块,在文件系统层,将闪存块中的有效数据拷贝到其他空闲空间中。在所有有效的数据移动完成后,文件系统发送擦除请求到闪存设备上。此时,闪存转换层在接收到文件系统的擦除请求后,会直接擦除请求中标明的物理闪存块,而不需要再对需要回收的闪存块进行任何的页拷贝和迁移工作。
文件系统的多线程垃圾回收技术是指文件系统对每个闪存通道,使用一个垃圾回收线程进行垃圾回收,如图3所示。垃圾回收的线程负责选择通道中的要被回收的闪存块,然后迁移将要被回收的闪存块中的有效页。当线程完成页迁移工作后,线程会向对应的通道发送擦除请求。
动态请求调度技术包括写请求分配技术和擦除请求调度技术。如图4所示,文件系统为闪存中的每个通道都建立了一个对应的请求队列。请求队列中装载了被分配到该通道中的读写擦请求。写请求分配技术是指,当一个写请求将要发送到设备上时,文件系统需要为这个请求分配一个闪存通道,用于处理该数据写入请求。因为文件系统的请求队列记录了每个通道当前需要处理的请求数及请求的长度,所以文件系统需要通过如下的计算公式,算出请求队列最短的通道,即最空闲的闪存通道来处理这个写请求:
Wchannel=Σ(Wread×Sizeread,Wwrite×Sizewrite)
其中Wread与Wwrite代表闪存设备处理读请求和写请求的延迟,在实施例中它们的取值分别是1和8。Sizeread和Sizewrite分别代表读请求和写请求的长度。通过计算,得出每个闪存通道对应的请求队列的长度,选择队列长度最短的通道作为写请求的目标通道。
在请求调度过程中,文件系统为读请求和写/擦请求分配了相同长度时间片。在读请求时间片中,文件系统只调度请求队列中的读请求到闪存设备中。当时间片到时或者请求队列中没有多余的读请求后,文件系统会通过如下的公式判断转入写请求调度时间片还是擦除请求调度时间片:
e=2×f+Ne
其中f代表了对应通道的空闲空间比例,代表了当前所有通道中正在处理擦除请求的闪存通道占所有闪存通道的比例,Ne代表当前正在进行擦除操作的并行单元数量占总的并行单元数的百分比。当这个公式的结果大于1时,说明当前通道有足够的空间或当前有太多通道正在进行擦除操作,那么文件系统会在这个通道上进行写请求调度。当这个计算公式的结果小于1时,说明这个闪存通道中的可用空间较少,且没有过多的闪存通道在进行擦除操作。那么文件系统就会在这个通道上,在下一个时间片内,调度擦除请求,回收这个通道上的无效空间。
本发明的实施例还公开了一种闪存的数据管理装置200,如图5所示,闪存的数据管理装置200包括裸闪存设备210、闪存转换层220和数据管理系统230。
其中,数据管理系统230用于在挂载时获取闪存的内部结构信息,并在进行空间分配时,根据闪存的内部结构信息,采用二维空间分配方法在闪存设备内部多个并行单元上进行空间分配,并在单个并行单元内部根据预计数据失效时间进行数据分组;数据管理系统230还用于在数据管理系统230垃圾回收时,对数据管理系统230与闪存转换层采用协同垃圾回收方法并采用多线程的垃圾回收机制进行垃圾回收;数据管理系统230还用于在数据管理系统230对闪存的读写擦请求进行调度时,使用动态请求调度方法将写请求发送到负载最轻的并行单元上;在剩余空间低于预设空间或擦除请求调度低于擦除请求阈值时调度擦除请求。
在本发明的一个实施例中,二维空间分配方法包括:数据管理系统230将写入数据分成闪存页大小的数据块,在每次分配数据块时,将待分配的数据块分配给存储数据块最少的并行单元;确定每次分配数据块的目的并行单元后,将待分配数据块写入目的并行单元中与待分配数据块的预计数据失效时间最相似的数据组中。
协同垃圾回收方法包括:在数据管理系统230中,使用多个垃圾回收线程进行垃圾回收工作。在数据管理系统230的垃圾回收线程触发后,在数据管理系统230的剩余空间低于预设空间时,垃圾回收线程无效页最多的数据段进行垃圾回收;在数据管理系统230的剩余空间大于预设空间时,选择写入时间最长且无效页最多的数据段进行垃圾回收。
垃圾回收线程将进行垃圾回收的数据段中的有效数据页拷贝到其他处于空闲状态的数据段中;在进行垃圾回收的数据段中的全部有效数据页被拷贝成功后,数据管理系统230发送擦除请求到闪存转换层220;闪存转换层220只保留物理擦除功能,在收到擦除请求后,使用物理擦除的方法擦除掉与数据管理系统230数据段对应的闪存块,毋须额外的数据页移动工作。
动态请求方法包括:数据管理系统230为每个并行单元建立请求队列,请求队列记录当前该并行单元需要处理的读写请求数量和长度,对于写请求,数据管理系统230将根据每个并行单元对应的请求队列的长度,选择请求队列最短的并行单元作为写请求发送的目的地;对于擦除请求,数据管理系统230根据当前并行单元可用空间比例以及同时处理的擦除请求数量确定是否对当前的擦除请求进行调度。
需要说明的是,本实施例的闪存的数据管理装置200与上述实施例的发挥闪存设备内部并发特性的数据管理方法类似,为了节省篇幅不再赘述。
另外,本发明实施例的发挥闪存设备内部并发特性的数据管理方法和闪存的其它构成以及作用对于本领域的技术人员而言都是已知的,为了减少冗余,不做赘述。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同限定。
Claims (3)
1.一种发挥闪存设备内部并发特性的数据管理方法,其特征在于,包括以下步骤:
在数据管理系统挂载时,获取闪存设备的内部结构信息;
在所述数据管理系统进行空间分配时,根据所述闪存设备的内部结构信息,采用二维空间分配方法在所述闪存设备内部多个并行单元上进行空间分配,并在单个并行单元内部根据预计数据失效时间进行数据分组;
在所述数据管理系统垃圾回收时,对所述数据管理系统与闪存转换层采用协同垃圾回收方法并采用多线程的垃圾回收机制进行垃圾回收;
在数据管理系统对闪存的读写擦请求进行调度时,使用动态请求调度方法将写请求发送到负载最轻的并行单元上;在剩余空间低于预设空间或擦除请求调度低于擦除请求阈值时调度擦除请求;
其中,所述二维空间分配方法包括:所述数据管理系统将写入数据分成闪存页大小的数据块,在每次分配所述数据块时,将待分配的数据块分配给负载最轻的并行单元;确定每次分配数据块的目的并行单元后,将待分配数据块写入所述目的并行单元中与所述待分配数据块的预计数据失效时间最相似的数据组中;所述协同垃圾回收方法包括:所述数据管理系统的垃圾回收线程将选中的数据段中的有效数据页拷贝到其他处于空闲状态的数据段中;在所述选中的数据段中的全部有效数据页被拷贝成功后,所述数据管理系统发送擦除请求到所述闪存设备的闪存转换层;所述闪存转换层,根据所述擦除请求使用物理擦除的方法擦除掉与所述选中的数据段对应的闪存块,在垃圾回收过程中,垃圾回收的数据段的选择方法包括:在所述数据管理系统的垃圾回收线程触发后,在所述数据管理系统的剩余空间低于所述预设空间时,所述垃圾回收线程选择无效页最多的数据段进行垃圾回收;在所述数据管理系统的剩余空间大于所述预设空间时,选择写入时间最长且无效页最多的数据段进行垃圾回收;所述动态请求调度方法包括:所述数据管理系统为每个并行单元建立请求队列,所述请求队列记录当前该并行单元需要处理的读写请求数量和长度,对于写请求,所述数据管理系统将根据每个并行单元对应的请求队列的长度,选择请求队列最短的并行单元作为写请求发送的目的地;对于擦除请求,所述数据管理系统根据当前并行单元可用空间比例以及同时处理的擦除请求数量确定是否对当前的擦除请求进行调度。
2.根据权利要求1所述的方法,其特征在于,所述闪存设备的内部结构信息包括并行单元数量、并行单元容量和闪存擦除最小单位尺寸。
3.一种闪存的数据管理装置,其特征在于,包括:
裸闪存设备;
闪存转换层;
数据管理系统,所述数据管理系统用于在挂载时获取所述闪存的内部结构信息,并在进行空间分配时,根据所述闪存的内部结构信息,采用二维空间分配方法在所述闪存设备内部多个并行单元上进行空间分配,并在单个并行单元内部根据预计数据失效时间进行数据分组;所述数据管理系统还用于在所述数据管理系统垃圾回收时,对所述数据管理系统与闪存转换层采用协同垃圾回收方法并采用多线程的垃圾回收方法进行垃圾回收;所述数据管理系统还用于在数据管理系统对闪存的读写擦请求进行调度时,使用动态请求调度方法将写请求发送到负载最轻的并行单元上;在剩余空间低于预设空间或擦除请求调度低于擦除请求阈值时调度擦除请求;
其中,所述二维空间分配方法包括:所述数据管理系统将写入数据分成闪存页大小的数据块,在每次分配所述数据块时,将待分配的数据块分配给负载最轻的并行单元;确定每次分配数据块的目的并行单元后,将待分配数据块写入所述目的并行单元中与所述待分配数据块的预计数据失效时间最相似的数据组中;所述协同垃圾回收方法包括:所述数据管理系统的垃圾回收线程将选中的数据段中的有效数据页拷贝到其他处于空闲状态的数据段中;在所述选中的数据段中的全部有效数据页被拷贝成功后,所述数据管理系统发送擦除请求到所述闪存设备的闪存转换层;所述闪存转换层,根据所述擦除请求使用物理擦除的方法擦除掉与所述选中的数据段对应的闪存块;所述动态请求调度方法包括:所述数据管理系统为每个并行单元建立请求队列,所述请求队列记录当前该并行单元需要处理的读写请求数量和长度,对于写请求,所述数据管理系统将根据每个并行单元对应的请求队列的长度,选择请求队列最短的并行单元作为写请求发送的目的地;对于擦除请求,所述数据管理系统根据当前并行单元可用空间比例以及同时处理的擦除请求数量确定是否对当前的擦除请求进行调度;所述协同垃圾回收方法包括:所述数据管理系统的垃圾回收线程将选中的数据段中的有效数据页拷贝到其他处于空闲状态的数据段中;在所述选中的数据段中的全部有效数据页被拷贝成功后,所述数据管理系统发送擦除请求到所述闪存设备的闪存转换层;所述闪存转换层,根据所述擦除请求使用物理擦除的方法擦除掉与所述选中的数据段对应的闪存块;其中,在所述数据管理系统的垃圾回收线程触发后,在所述数据管理系统的剩余空间低于所述预设空间时,所述垃圾回收线程无效页最多的数据段进行垃圾回收;在所述数据管理系统的剩余空间大于所述预设空间时,选择写入时间最长且无效页最多的数据段进行垃圾回收;所述动态请求方法包括:所述数据管理系统为每个并行单元建立请求队列,所述请求队列记录当前该并行单元需要处理的读写请求数量和长度,对于写请求,所述数据管理系统将根据每个并行单元对应的请求队列的长度,选择请求队列最短的并行单元作为写请求发送的目的地;对于擦除请求,所述数据管理系统根据当前并行单元可用空间比例以及同时处理的擦除请求数量确定是否对当前的擦除请求进行调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610437796.6A CN107515728B (zh) | 2016-06-17 | 2016-06-17 | 发挥闪存设备内部并发特性的数据管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610437796.6A CN107515728B (zh) | 2016-06-17 | 2016-06-17 | 发挥闪存设备内部并发特性的数据管理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107515728A CN107515728A (zh) | 2017-12-26 |
CN107515728B true CN107515728B (zh) | 2019-12-24 |
Family
ID=60721519
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610437796.6A Active CN107515728B (zh) | 2016-06-17 | 2016-06-17 | 发挥闪存设备内部并发特性的数据管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107515728B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108309A (zh) * | 2017-12-29 | 2018-06-01 | 苏州大学 | 涉及多nand闪存的并行访问方法、固态硬盘和计算机 |
CN109445681B (zh) | 2018-08-27 | 2021-05-11 | 华为技术有限公司 | 数据的存储方法、装置和存储系统 |
CN109739776B (zh) * | 2018-12-06 | 2023-06-30 | 天津津航计算技术研究所 | 用于NAND Flash主控芯片的Greedy垃圾回收系统 |
CN110515859B (zh) * | 2019-07-09 | 2021-07-20 | 杭州电子科技大学 | 一种固态硬盘读写请求并行处理方法 |
CN110457233A (zh) * | 2019-08-10 | 2019-11-15 | 深圳市德名利电子有限公司 | 一种基于混合大小单元的闪存管理方法和装置以及设备 |
CN111078137B (zh) * | 2019-11-07 | 2021-07-06 | 深圳市金泰克半导体有限公司 | 清理存储空间的方法 |
CN113377686A (zh) * | 2020-03-10 | 2021-09-10 | 阿里巴巴集团控股有限公司 | 调度方法、装置、电子设备及计算机可读介质 |
CN111582739B (zh) * | 2020-05-13 | 2022-02-18 | 华中科技大学 | 一种多租户固态盘性能隔离条件下实现高带宽的方法 |
CN114356213B (zh) * | 2021-11-29 | 2023-07-21 | 重庆邮电大学 | 一种numa架构下nvm磨损均衡的并行空间管理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609218A (zh) * | 2012-01-18 | 2012-07-25 | 清华大学 | 并行闪存转换层方法与系统 |
CN103458023A (zh) * | 2013-08-30 | 2013-12-18 | 清华大学 | 分布式闪存存储系统 |
CN104090847A (zh) * | 2014-06-25 | 2014-10-08 | 华中科技大学 | 一种固态存储设备的地址分配方法 |
-
2016
- 2016-06-17 CN CN201610437796.6A patent/CN107515728B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102609218A (zh) * | 2012-01-18 | 2012-07-25 | 清华大学 | 并行闪存转换层方法与系统 |
CN103458023A (zh) * | 2013-08-30 | 2013-12-18 | 清华大学 | 分布式闪存存储系统 |
CN104090847A (zh) * | 2014-06-25 | 2014-10-08 | 华中科技大学 | 一种固态存储设备的地址分配方法 |
Non-Patent Citations (2)
Title |
---|
High-Performance and Lightweight Transaction Support in Flash-Based SSDs;Youyou Lu 等;《IEEE TRANSACTIONS ON COMPUTERS》;20151031;第64卷(第10期);第2819-2832页 * |
基于非易失性存储器的存储系统技术;舒继武 等;《科技导报》;20160728;第34卷(第14期);第86-94页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107515728A (zh) | 2017-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107515728B (zh) | 发挥闪存设备内部并发特性的数据管理方法和装置 | |
US11416391B2 (en) | Garbage collection | |
CN109901788B (zh) | 存储器控制器、存储器系统及控制方法 | |
US10430084B2 (en) | Multi-tiered memory with different metadata levels | |
US20150067415A1 (en) | Memory system and constructing method of logical block | |
US9817755B2 (en) | Garbage collection management in memories | |
US8537613B2 (en) | Multi-layer memory system | |
KR101324688B1 (ko) | 영구 가비지 컬렉션을 갖는 메모리 시스템 | |
US9846641B2 (en) | Variability aware wear leveling | |
KR101551584B1 (ko) | 하이브리드 slc/mlc 메모리 내의 블록 관리 방식들 | |
TWI399644B (zh) | 非揮發記憶體區塊管理方法 | |
US20100169540A1 (en) | Method and apparatus for relocating selected data between flash partitions in a memory device | |
US8225050B2 (en) | Memory storage device and a control method thereof | |
CN110347613B (zh) | 多租户固态盘中实现raid的方法、控制器及多租户固态盘 | |
CN107678685B (zh) | 基于闪存的存储路径优化的键值存储管理方法 | |
CN107092563B (zh) | 一种垃圾回收方法及装置 | |
US11016889B1 (en) | Storage device with enhanced time to ready performance | |
US11593262B1 (en) | Garbage collection command scheduling | |
TWI718710B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN112035061A (zh) | 固态硬盘资源分配方法、装置和存储介质 | |
CN112130749A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN109947353A (zh) | 存储管理方法、固态硬盘及可读存储介质 | |
CN111104045A (zh) | 一种存储控制方法、装置、设备和计算机存储介质 | |
US11132140B1 (en) | Processing map metadata updates to reduce client I/O variability and device time to ready (TTR) | |
CN116450036A (zh) | 一种面向nand闪存存储器的数据分离放置方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |