CN109656486B - 固态硬盘的配置方法、数据存储方法、固态硬盘和存储控制器 - Google Patents

固态硬盘的配置方法、数据存储方法、固态硬盘和存储控制器 Download PDF

Info

Publication number
CN109656486B
CN109656486B CN201811586092.0A CN201811586092A CN109656486B CN 109656486 B CN109656486 B CN 109656486B CN 201811586092 A CN201811586092 A CN 201811586092A CN 109656486 B CN109656486 B CN 109656486B
Authority
CN
China
Prior art keywords
write request
ssd
data
storage
storage area
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
Application number
CN201811586092.0A
Other languages
English (en)
Other versions
CN109656486A (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
Priority to CN201811586092.0A priority Critical patent/CN109656486B/zh
Publication of CN109656486A publication Critical patent/CN109656486A/zh
Application granted granted Critical
Publication of CN109656486B publication Critical patent/CN109656486B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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/10Address translation
    • 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
    • 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
    • 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/0614Improving the reliability of storage 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

本发明公开了一种存储设备存储数据的方案,存储设备包括第一存储区域和第二存储区域,第一存储区域包括数据空间和预留空间,第二存储区域包括数据空间和预留空间,存储设备判断写请求的特征,根据判断结果将写请求携带的数据存储到相应的存储区域的预留空间。

Description

固态硬盘的配置方法、数据存储方法、固态硬盘和存储控制器
技术领域
本发明涉及信息技术领域,特别涉及一种存储设备存储数据的方法及存储设备。
背景技术
固态硬盘(Solid State Disk,SSD),如图1所示,包括存储控制器101和介质102(如闪存颗粒)。存储控制器101包括中央处理单元1011(Center Processing Unit,CPU)和内存1012。SSD的存储是以物理块(physical block)和页(page)为单位组织存储的。其中,页是固态硬盘中最小的数据读写单位,页的大小可以是4KB、8KB或16KB。由页组合成物理块,每一个物理块可以有32、64或128个页。SSD一般将存储空间分为数据空间和预留空间(Over-Provisioning)。数据空间为已经写入数据的空间,预留空间为空闲空间,由空闲页组成,可用于写入数据。当新的数据要覆盖SSD中数据空间已经存储的数据时,会使用重定向写(Redirection On Write,ROW)机制,即当SSD向逻辑块地址(Logical Block Address,LBA)写入新数据以修改已经存储的数据时,SSD会将新数据写入预留空间的页,建立LBA与预留空间的页地址的映射关系,将LBA原来映射的数据空间的页地址中的数据标记为垃圾数据。当预留空间低于一定阈值后,SSD对垃圾数据所在页的物理块进行垃圾空间回收。回收过程如下:读取垃圾数据所在页的物理块中的有效数据,将读取出的有效数据写入到预留空间,并将垃圾数据所在页的物理块中的数据擦除,将该物理块作为新的预留空间。在垃圾空间回收过程中,读取出有效数据并将有效数据写入到预留空间的过程称为有效数据搬移。
垃圾空间回收会引起写放大,其中SSD垃圾空间回收搬移的有效数据大小V与新写入数据大小W之和与新写入数据大小W之比,即(V+W)/W称为写放大。
发明内容
第一方面,本发明实施例提供了一种存储设备存储数据的方案,存储设备包括第一存储区域和第二存储区域,第一存储区域包括数据空间和预留空间,第二存储区域包括数据空间和预留空间,存储设备接收写请求,写请求携带逻辑地址和数据,存储设备判断写请求的特征。
当写请求的特征满足第一条件时,存储设备将写请求携带的数据写入第一存储区域的预留空间的第一存储地址,建立逻辑地址与第一存储地址的映射关系;当写请求的特征满足第二条件时,将写请求携带的数据写入第二存储区域的预留空间的第二存储地址,建立逻辑地址与第二存储地址的映射关系。本发明实施例中,根据写请求的特征将写请求携带的数据写入不同存储区域的预留空间,减少了垃圾空间回收过程中有效数据的搬移,减少了写放大。
可选的,存储设备可独立地对第一存储区域和第二存储区域进行垃圾回收。存储设备可独立对第一存储区域和第二存储区域进行垃圾空间回收是指存储设备同一时间分别对第一存储区域和第二存储区域中的一个进行垃圾空间回收,但不影响另一个存储区域,也可同时对第一存储区域和第二存储区域进行垃圾空间回收。针对不同特征写请求写入不同存储区域的数据,基于不同存储区域中配置的不同预留空对各存储区域独立进行垃圾空间回收,可以减少了垃圾回空回收过程中有效数据的搬移,减少了写放大,进一步的还可以通过配置不同的预留空间改善垃圾空间回收流程的触发次数,从而减少存储设备中物理块的擦除次数进而改善存储设备的使用寿命。
可选的,第一存储区域的预留空间的大小与第二存储区域预留空间的大小不同。
可选的,第一存储区域的预留空间小于第二存储区域的预留空间,或者第一存储区域的预留空间与数据空间的比值小于第二存储区域的预留空间与数据空间的比值,第二存储区域由于有更多的预留空间,可以减少第二存储区域垃圾空间回收的次数。
可选的,在写入对应的存储区域时,例如,上述的第一或第二存储区域时,如果对应存储空间的预留空间不够,可以进行动态的调整,比如在最大冗余配额没有用完的前提下可申请额外的预留空间,然后将写请求中的数据写入新申请的预留空间。
可选的,存储设备判断写请求的特征包括:
存储设备判断写请求是顺序写请求或者随机写请求,则第一条件为顺序写请求,第二条件为随机写请求,将顺序写请求与随机写请求分别存储到不同的存储区域,减少了垃圾空间回收过程中有效数据搬移,减少了写放大。同时,在顺序写请求与随机写请求同时存在的情况下,在不影响顺序写请求性能的同时,提高存储设备随机写的性能。可选的,判断与逻辑地址的地址之差的绝对值是否大于L的参考逻辑地址中是否有数据写入,L可根据对顺序写请求的要求设置。一种实现,当参考逻辑地址中有数据写入则写请求为顺序写请求,否则为随机写请求;另一种实现,参考逻辑地址中没有数据写入,写请求为随机写请求,当参考逻辑地址中有数据写入,进一步地,存储设备判断最后一次接收携带参考地址的写请求的时间与最后一次接收携带逻辑地址的写请求的时间间隔是否大于阈值T,如果大于,仍然为随机写请求,否则为顺序写请求。其中,T为可根据具体实现来设定。
可选的,存储设备判断写请求的特征包括:
存储设备判断写请求的顺序度,则第一条件为第一顺序度范围;第二条件为第二顺序度范围;并且第一顺序度范围的最小值大于第二顺序度范围的最大值。可选的,顺序度为当前逻辑地址的顺序写请求的计数Cs与(当前逻辑地址的顺序写请求的计数Cs与当前逻辑地址的随机写请求Cr的计数之和)的比值S(顺序度),即Cs/(Cs+Cr)=S。根据顺序度可将不同顺序度的写请求携带的数据分别存储在具有不同预留空间的不同存储区域,减少了垃圾空间回收过程中有效数据搬移,减少了写放大。
可选的,所述存储设备判断写请求的特征包括:
存储设备判断写请求的随机度;
则第一条件为第一随机度范围,第二条件为第二随机度范围,并且第一随机度范围的最大值小于第二随机度范围的最小值。可选的,随机度为当前逻辑地址的随机写请求的计数Cr与(当前逻辑地址的顺序写请求的计数Cs与当前逻辑地址的随机写请求的计数Cr之和)的比值R,即Cr/(Cr+Cs)=R。根据随机度可将不同随机度的写请求携带的数据分别存储,减少了垃圾空间回收过程中有效数据搬移,减少了写放大。
可选的,存储设备判断写请求的特征包括:
存储设备判断写请求携带的数据的大小;
则第一条件为第一存储区域存储的第一数据区间,第二条件为第二存储区域存储的第二数据区间,并且第一数据区间的最小值大于第二数据区间的最大值。存储设备包含不同的存储区域,每一存储区域存储对应一个数据存储区间,可以减少垃圾回收过程中有效数据的搬移,减少写放大。可选的,数据区间是指存储区域存储的写请求携带的数据的大小的区间。
可选的,在多个写请求并发的情况下,存储设备优先处理符合第一条件的写请求,以提高存储设备的写性能。
可选的,存储设备为SSD,或者为叠瓦式磁记录(Shingled Magnetic Recording,SMR)盘,或者为基于ROW机制带有垃圾空间回收功能的存储阵列。
与第一方面实现的方案相对应,第二方面,本发明实施还提供了一种存储设备的存储区域划分方案,存储设备将存储空间划分为第一存储区域和第二存储区域,第一存储区域包括数据空间和预留空间,第二存储区域包括数据空间和预留空间;其中第一存储区域的预留空间用于存储第一写请求携带的数据;第二存储区域的预留空间用于存储第二写请求携带的数据;第一写请求的特征符合第一条件;第二写请求符合第二条件。
可选的,可以根据写请求的顺序度或随机度的等级数划分相应数量的存储区域,并且根据所述顺序度或随机度的各等级的值配置相应的预留空间。存储区域的划分和对应预留空间的配置可以预先进行,也可以在使用过程中进行动态的划分和配置。
第三方面,与第一方面及第二方面相对应,本发明实施例还提供了存储设备,分别用于作为第一方面及第二方面实施例中存储设备,以实现本发明实施例第一方面和第二方面提供的实施例方案。存储设备包括实现第一方面及第二方面发明实施例方案的结构单元,或者,存储设备包括存储控制器以实现第一方面及第二方面的实施例方案。
相应地,本发明实施例还提供了非易失性计算机可读存储介质和计算机程序产品,当本发明实施例提供的存储设备的存储控制器的内存加载非易失性计算机可读存储介质和计算机程序产品中包含的计算机指令,存储控制器的CPU执行该计算机指令时,使存储设备执行第一方面及第二方面实施例中存储设备的功能,以实现本发明实施例第一方面及第二方面提供的方案。
附图说明
图1为SSD结构示意图;
图2为本发明实施例流程图;
图3为本发明实施例存储区域示意图;
图4为本发明实施列存储区域示意图;
图5为本发明实施例存储区域示意图;
图6为本发明实施例存储区域示意图;
图7为本发明实施例存储区域示意图;
图8为本发明实施例存储区域示意图;
图9为本发明实施例存储区域示意图;
图10为本发明实施例存储设备示意图;
图11为本发明实施例存储设备示意图。
具体实施例
本发明实施例以SSD为例,在本发明实施例中,SSD包括第一存储区域Vd1和第二存储区域Vd2。Vd1包含数据空间和预留空间,Vd2包含数据空间和预留空间,Vd1的预留空间的大小与Vd2的预留空间的大小不同。本发明实施例中,SSD可独立对Vd1和Vd2进行垃圾回间回收。SSD可独立对Vd1和Vd2进行垃圾空间回收是指SSD同一时间分别对Vd1和Vd2中的一个进行垃圾空间回收,但不影响另一个存储区域,也可同时对Vd1和Vd2进行垃圾空间回收。针对不同特征写请求写入不同存储区域的数据,基于不同存储区域中配置的不同预留空对各存储区域独立进行垃圾空间回收,可以减少了垃圾回空回收过程中有效数据的搬移,减少了写放大,进一步的还可以通过配置不同的预留空间改善垃圾空间回收流程的触发次数,从而减少SSD中物理块的擦除次数进而改善SSD的使用寿命。
本发明实施例SSD的上述特性还可应用到本发明实施例其他存储设备上,在此不再赘述。
本发明实施例如图2所示,包括:
步骤201:接收写请求。
SSD接收写请求,写请求中携带LBA以及数据。
步骤202:判断写请求的特征。
判断写请求的特征的一种实现方式包括:
具体地,当SSD接收写请求,判断写请求是顺序写请求还是随机写请求。本发明实施例中,SSD会记录接收每一个写请求的时间以及写请求携带的LBA地址。在一个具体的实施方式中,判断写请求是顺序写请求(图2所示第一条件)还是随机写请求(图2所示第二条件)的方法如下:
SSD记录接收到写请求携带的LBA,以及最后一次接收到该写请求的时间。根据写请求携带的LBA m,查询LBA n(称为参考逻辑地址)中是否有数据写入,其中,LBA m与LBA n之差的绝对值不大于L。其中,L可以根据对顺序写请求的要求设置。如果LBA n中没有数据写入,则携带LBA m的写请求是随机写请求;如果LBA n中有数据写入,一种实现方式,则携带LBA m的写请求是顺序写请求;另一种实现方式,当LBA n中有数据写入,进一步判断最后一次接收携带LBA n的写请求时间与最后一次接收携带LBA m的写请求时间间隔是否大于阈值T,如果大于T,则携带LBA m的写请求是随机写请求;如果不大于T,则携带LBA m的写请求是顺序写请求。其中,T为可根据具体实现来设定,本发明实施例对此不作限定。通常顺序写请求是来自同一个文件或者应用的写请求,随机写请求是来自不同文件或应用的写请求。
本发明实施例SSD包含图2所示第一存储区域(Vd1)和图2所示第二存储区域(Vd2),Vd1和Vd2分别包含一个或多个物理块。如图3所示,本发明实施例以Vd1包含Y个物理块,每一个物理块包含n+1个页,Vd1用于存储顺序写请求携带的数据,第1个物理块至第Y-2个物理块组成Vd1的数据空间,第Y-1和第Y个物理块组成预留空间。
如图4所示,SSD接收第一顺序写请求,第一顺序写请求携带的逻辑地址为LBA1。其中,LBA1已经映射到Vd1中第1物理块的n+1个页,即LBA1映射到Vd1中第1物理块的页0到页n。基于SSD的ROW机制,SSD将第一顺序写请求携带的数据写入Vd1中预留空间第Y-1个物理块,建立LBA1与Vd1中第Y-1个物理块的n+1个页的映射,即建立LBA1与Vd1中第Y-1个物理块的页0到页n的映射,将Vd1中第1物理块中页0至页n中的数据标识为垃圾数据(解除LBA1与Vd1中第1物理块的n+1个页的映射)。SSD接收第二顺序写请求,第二顺序写请求携带的逻辑地址为LBA2。其中,LBA2已经映射到Vd1中第2物理块的n+1个页,即LBA2映射到Vd1中第2物理块的页0到页n。基于SSD的ROW机制,SSD将第二顺序写请求携带的数据写入Vd1中预留空间第Y个物理块,建立LBA2与Vd1中第Y个物理的n+1个页的映射,即建立LBA2与Vd1中第Y个物理的页0到页n的映射,将Vd1中第2物理块中页0至页n中的数据标识为垃圾数据(解除LBA2与Vd1中第2物理块的n+1个页的映射)。
由于图4所示的Vd1中预留空间变为0,需要启动垃圾空间回收。从Vd1中选择包含垃圾数据最多的物理块进行垃圾空间回收。本发明实施例中,图4中第1物理块和第2物理块中包含的垃圾数据最多,因此启动对第1物理块和第2物理块的垃圾空间回收。如图5所示,在垃圾空间回收过程中,由于Vd1中第1物理块和第2物理中的页存储的均为垃圾数据,没有有效数据,因此不需要进行有效数据搬移,也就是没有写放大。因此,将顺序写请求存储到Vd1中,Vd1在垃圾空间回收过程中,减少了有效数据搬移,减少写放大;同时,由于垃圾空间回收过程中没有或者有很少的有效数据,因此,可以为Vd1分配少量预留空间。
如图6所示,本发明实施例以Vd2包含X个物理块,每一个物理块包含n+1个页,Vd2用于存储随机写请求携带的数据,第1个物理块至第X-3个物理块组成Vd2的数据空间,第X-2至第X个物理块组成预留空间。
如图7所示,SSD接收第一随机写请求,第一随机写请求携带的逻辑地址为LBA1’。其中,LBA1’已经映射到Vd2中第1物理块的前m个页,即LBA1’映射到Vd2中第1物理块的页0到页m-1。基于SSD的ROW机制,SSD将第一随机写请求携带的数据写入Vd2中预留空间第X-2个物理块,建立LBA1’与Vd2中第X-2个物理块的前m个页的映射,即建立LBA1’与Vd2中第X-2个物理块的页0到页m-1的映射,将Vd2中第1物理块中页0至页m-1中的数据标识为垃圾数据(解除LBA1’与Vd2中第1物理块的前m个页的映射)。SSD接收第二随机写请求,第二随机写请求携带的逻辑地址为LBA3’。其中,LBA3’已经映射到Vd2中第2物理块的前n+1-m个页,即LBA3’映射到Vd2中第2物理块的页0到页n-m。基于SSD的ROW机制,SSD将第二随机写请求携带的数据写入Vd2中预留空间第X-2个物理块,建立LBA3’与Vd2中第X-2个物理块n+1-m个页的映射,即建立LBA3’与Vd2中第X-2个物理块的页m到页n的映射,将Vd2中第2物理块中页0至页n-m中的数据标识为垃圾数据(解除LBA3’与Vd2中第2物理块的前n+1-m个页的映射)。
如图8所示,当Vd2中预留空间小于一定阈值启动垃圾空间回收时,确定需要回收的物理块为Vd2中的第1物理块和第2物理块。其中,第1物理块中页m至页n存储有效数据,需要进行有效数据搬移,本发明实施例中,将第1物理块中页m至页n存储的有效数据搬移到Vd2中第X-1物理块中页0至页n-m,建立LBA4’与Vd2中第X-1物理块中页0至页m-1的映射;同时,将Vd2中第2物理块中页m至页n存储有效数据搬移到Vd2中第X-1物理块中页m至页n,建立LBA2’与Vd2中第X-1物理块中页m至页n的映射。SSD擦除Vd2中第1物理块和第2物理块中的数据,将第1物理块和第2物理块作为预留空间。
本发明实施例中,Vd1用于存储顺序写请求携带的数据,Vd2用于存储随机写请求携带的数据,通过根据写请求的特征,将顺序写请求携带的数据和随机写请求携带的数据分别存储到不同的存储区域,减少了垃圾空间回收过程中有效数据搬移,减少了写放大。
本发明实施例,通过为Vd2分配更多的预留空间,即Vd2的预留空间大于Vd1的预留空间,可以减少垃圾空间回收次数,从而减少Vd2中物理块的擦除次数,延长SSD的使用寿命。另一种实现,Vd2的预留空间与Vd2的数据空间的比值大于Vd1的预留空间与Vd1的数据空间的比值,同样可实现本发明实施例减少垃圾空间回收次数的效果。
本发明实施例中,SSD包含Vd1和Vd2,Vd1用于存储顺序写请求携带的数据,Vd2用于存储随机写请求携带的数据。在随机写请求和顺序写请求同时存在的情况下,不会影响顺序写请求的性能,同时提高了SSD随机写性能。
可选的,在写入对应的存储区域时,例如,上述的第一或第二存储区域时,如果对应存储空间的预留空间不够,可以进行动态的调整,比如在最大冗余配额没有用完的前提下可申请额外的预留空间,然后将写请求中的数据写入新申请的预留空间。
可选的,在多个写请求并发的情况下,当SSD接收的写请求即有顺序写请求又有随机写请求时,可优先将顺序写请求携带的数据写入第一存储区域,以提高写性能。
本发明实施例提供了步骤2判断写请求的特征的另一种实现方案:SSD统计写请求携带的LBA上的顺序写请求的计数和随机写请求的计数。本发明实施例,写请求携带的LBA上的顺序写请求的计数又称为写请求的顺序写请求计数,写请求携带的LBA上的随机写请求的计数又称为写请求的随机写请求计数。
例如,当SSD判断携带LBA m的写请求为顺序写请求,则LBA m的顺序写请求的计数Cs加1,当判断携带LBA m的写请求为随机写请求,则LBA m的随机写请求的计数Cr加1。计算当前LBA m的顺序写请求的计数Cs/(当前LBA m的顺序写请求的计数Cs与当前LBA m的随机写请求的计数Cr之和)的值S(顺序度),如果S符合图2所示的第一条件(第一顺序度范围),则将该写请求携带的数据写入Vd1;当S符合图2所示的第二条件(第二顺序度范围),则写入Vd2。例如,第一顺序度范围为大于0.8并且不大于1,第二顺序度范围为不大于0.8。Vd1中存储的数据对应的写请求的顺序度大于Vd2中存储的数据对应的写请求的顺序度,在垃圾空间回收过程中,Vd1中的物理块要比Vd2中的物理块产生更少的有效数据搬移,减少了写放大。
Vd1中存储的数据对应的写请求的顺序度大于Vd2中存储的数据对应的写请求的顺序度,SSD为Vd1分配的预留空间小于Vd2的预留空间,或者Vd1中预留空间与数据空间的比值小于Vd2中预留空间与数据空间的比值。该实现方式减少Vd2中垃圾空间回收的次数,从而减少Vd2中物理块的擦除次数,从而延长了SSD使用寿命。进一步地,根据不同的顺序度将写请求分别写到不同的区域,不会影响顺序度高的写请求,同时也提高了SSD随机写性能。
可选的,在多个写请求并发的情况下,当SSD接收的写请求有不同的顺序度时,可优先处理顺序度高的写请求,或者SSD接收的写请求有不同的随机度时,可优先处理随机度低的写请求,以提高写性能。
另一种实现方式,也可以基于随机度R。当SSD判断携带LBA m的写请求为顺序写请求,则LBA m的顺序写请求的计数Cs加1,当判断携带LBA m的写请求为随机写请求,则LBA m的随机写请求的计数Cr加1。计算当前LBA m的随机写请求的计数Cr/(当前LBA m的顺序写请求的计数Cs与当前LBA m的随机写请求的计数Cr之和)的值R(随机度)。如果R符合图2所示的第一条件(第一随机度范围),则将该写请求携带的数据写入Vd1;当R符合图2所示的第二条件(第二随机度范围),则写入Vd2。例如,第一随机度范围为不大于0.2,第二随机度范围为大于0.2但不大于1。Vd1中存储的数据对应的写请求的随机度小于Vd2中存储的数据对应的写请求的随机度,在垃圾空间回收过程中,Vd1中的物理块要比Vd2中的物理块产生更少的有效数据搬移,减少了写放大。
Vd1中存储的数据对应的写请求的随机度小于Vd2中存储的数据对应的写请求的随机度,SSD为Vd1分配的预留空间小于Vd2的预留空间,或者Vd1中预留空间与数据空间的比值小于Vd2中预留空间与数据空间的比值。该实现方式减少Vd2中垃圾空间回收的次数,从而减少Vd2中物理块的擦除次数,从而延长了SSD使用寿命。进一步地,根据不同的随机度将写请求分别写到不同的区域,不会影响随机度低的写请求,同时也提高了SSD随机写性能。
可选的,可以根据写请求的顺序度或随机度的等级数划分相应数量的存储区域,并且根据所述顺序度或随机度的各等级的值配置相应的预留空间。存储区域的划分和对应预留空间的配置可以预先进行,也可以在使用过程中进行动态的划分和配置。
本发明实施例提供了步骤2判断写请求的特征的另一种实现方案:判断写请求携带的数据的大小,根据写请求携带的数据的大小确定存储区域。
如图9所示,SSD包含9个存储区域,记为Vd1,Vd2…Vd9。本发明实施例中,一种实现方式,每一个存储区域包含R个物理块,每一个物理块包含n+1个页,另一种实现,每个存储区域中包含的物理块数量也可不同,本发明实施例对此不作限定。SSD根据写请求携带的数据的大小,选择存储区域。其中,Vd1用于存储(0-4KB]的数据,Vd2用于存储(4KB-8KB]的数据,Vd3用于存储(8KB-16KB]的数据,Vd4用于存储(16KB-32KB]的数据,Vd5用于存储(32KB-64KB]的数据,Vd6用于存储(64KB-128KB]的数据,Vd7用于存储(128KB-256KB]的数据,Vd8用于存储(256KB-512KB]的数据,Vd9用于存储大于512KB的数据。其中,(4KB-8KB]的数据也称为一个数据区间的数据。数据区间是指存储区域存储的写请求携带的数据的大小的区间。Vd1的数据区间表示Vd1存储的写请求携带的数据的大小为不大于4KB。当SSD接收写请求,根据各存储区域存储的数据区间,确定用于存储写请求携带的数据的存储区域。以如图2所示的第二存储区域为Vd1为例,由于Vd1的数据区间为不大于4KB(图2所示的第二条件)的数据,因此,同一个物理块中会存储多个写请求携带的数据,当其中部分数据由于被修改标识为无效数据,在对物理块进行垃圾空间回收时,该物理块中存储的其他写请求携带的数据作为有效数据,需要进行有效数据搬移,从而引起写放大。以Vd9为如图2所示的第一存储区域为例,由于Vd9的数据区间为大于512KB(图2所示的第一条件)的数据,因此,同一个物理块中存储同一个或少量几个写请求携带的数据。因此,当SSD再收到针对该物理块中的数据的修改的写请求时,整个物理块中的页存储的数据会被标识为垃圾数据,在对物理块进行垃圾空间回收时,由于整个物理块中全部或大部分为垃圾数据,因此不再产生或只产生少量有效数据搬移,从而不会引起或引起很小的写放大。因此,将SSD分成不同的存储区域,每一存储区域存储对应一个数据存储区间,可以减少垃圾回收过程中有效数据的搬移,减少写放大。可选的,写请求携带的数据的大小确定对应的存储区域,存储小数据的数据区间对应的存储区域相对存储大数据的数据区间对应的存储区域分配更多的预留空间或者存储小数据的数据区间对应的存储区域的预留空间与数据空间的比值大于存储大数据的数据区间对应的存储区域的预留空间与数据空间的比值,可以减少垃圾空间回收次数,物理块被擦除的次数,延长了SSD使用寿命。
可选的,在多个写请求并发的情况下,当SSD接收的携带不同大小的数据的写请求时,可优先处理携带数据较大的写请求,以提高写性能。
本发明实施例中,SSD为Vd1分配的预留空间小于Vd2的预留空间,或者Vd1中预留空间与数据空间的比值小于Vd2中预留空间与数据空间的比值,具体实现,可根据Vd1和Vd2中对应的写请求的特征,确定不同的预留空间份额权重,为Vd1分配的预留空间小于Vd2的预留空间,或者Vd1中预留空间与数据空间的比值小于Vd2中预留空间与数据空间的比值。本发明实施例对此不作限定。
本发明实施例中,将写请求携带的数据写入页之后,建立LBA与页之间的映射关系,根据SSD的具体实现,还可以先建立LBA到写入数据的页所在的物理块的映射,具体实现请参见SSD的映射机制,本发明对此不作限定,并不再赘述。
本发明还可以应用到叠瓦式磁记录(Shingled Magnetic Recording,SMR)盘。由于SMR盘的特殊结构,在对某一磁道A进行写入时,会覆盖磁道A之后L个磁道上的数据,该磁道A之前的磁道的数据不会被覆盖。因此SMR盘一般将M(M>=L)个磁道组成一个域(zone),zone内物理空间上的数据顺序写入,写入之前要将zone内有效数据先搬走。SMR盘一般采用ROW机制,将物理储存空间划分为数据zone(已经存储数据的zone)和预留zone(空闲zone),并记录逻辑地址到物理存储空间的映射;写数据时,将数据顺序写入预留zone空间,再将逻辑地址映射到新写入的物理地址,将逻辑地址原来映射的物理地址中存储的数据标记为垃圾数据;预留zone数目低于一定阈值后,启动垃圾空间回收,找到垃圾数据最多的zone,搬移该zone中有效数据,该zone变为预留zone,可以继续写入数据。SMR盘中的zone与SSD中的物理块的特性类似,因此,本发明实施例中SSD减少垃圾数据中有效数据搬移的方案同样可以应用到SMR盘中,将SMR盘分成不同的存储区域,每个存储区域中包含多个zone(包括数据zone和预留zone),为不同的存储区域分配不同大小的预留zone,判断写请求的特征,例如判断写请求是随机写请求或顺序写请求,或者判断写请求的顺序度,或者判断写请求的随机度,或者判断写请求携带的数据的大小,将写请求携带的数据存储到特定的存储区域的预留zone,从而减少SMR盘垃圾空间回收时有效数据的搬移,减少写放大。具体实现可参见SSD的实现方案,本发明实施例在此不再赘述。SMR盘不同的存储区域可分配预留zone的方式请参考前述SSD不同存储区域分配预留空间的方式。
另外,基于ROW机制带有垃圾空间回收功能的存储阵列中,如纯SSD存储阵列和硬盘(HDD)存储阵列中,存储阵列控制器将每个硬盘的逻辑块地址按一定单位(比如1MB)分割为块;从N个盘中每个盘取一个块组成符合一定条件(例如,独立硬盘冗余阵列(RedundantArray of Independent Disks,RAID)的条带(segment),例如,组成RAID6(包括3个数据块+2校验块);segment内采用顺序写方式提高写性能,segment内的数据不能覆盖写,写入之前要先将segment内有效数据搬移。存储阵列控制器将存储空间分为数据segment(已经写入数据的segment)和预留segment(空闲的segment),记录逻辑地址到物理存储空间的映射。写数据时,存储阵列控制器将数据顺序写入预留segment,再将逻辑地址映射到新写入的物理地址,将该逻辑地址原来映射的物理地址中存储的数据标记为垃圾数据;预留segment数目低于一定阈值后,启动垃圾空间回收,找到垃圾数据最多的segment,将该segment中有效数据块搬走,该segment变为预留segment,可以继续写入数据。
上述存储阵列中,segment与SSD中的物理块的特性类似,因此,本发明实施例中SSD减少垃圾空间回收有效数据搬移的方案同样可以应用到上述存储阵列,将存储阵列分成不同的存储区域,每个存储区域中包含多个segment(数据segment和预留segment),判断写请求的特征,例如判断写请求是随机写请求或顺序写请求,或者判断写请求的顺序度,或者判断写请求的随机度,或者判断写请求携带的数据的大小,将写请求携带的数据存储到特定的存储区域的预留segment,从而减少存储阵列垃圾空间回收时有效数据的搬移,减少写放大。具体实现可参见SSD的实现方案,本发明实施例在此不再赘述。存储阵列不同的存储区域可分配预留segment的方式请参考前述SSD不同存储区域分配预留空间的方式。
本发明实施例还可以应用到其他使用闪存介质及具有相似特性的存储介质组成的产品上。
可选的,本发明实施例中,以SSD为例,SSD可以包括两个以上的存储区域。进一步地,SSD可以使用多种判断写请求的特征的方式,例如,SSD包括第一存储区域和第二存储区域,判断写请求为顺序写请求或者随机写请求,当写请求为顺序写请求,将写请求携带的数据写入第一存储区域,当写请求为随机写请求,将写请求携带的数据写入第二存储区域;SSD还包括第三存储区域和第四存储区域,判断写请求的顺序度或随机度,根据写请求的顺序度或随机度,将写请求携带的数据写入第三存储区域或第四存储区域;可选的,SSD还包括第五存储区域和第六存储区域,判断写请求携带的数据的大小,根据写请求携带的数据的大小,将写请求携带的数据写入第五存储区域或第六存储区域。具体实现方式的组合本发明不作限定。
本发明实施例提供了一种存储设备,如图10所示,包含存储控制器1001、第一存储区域1002和第二存储区域1003;第一存储区域1002包括数据空间和预留空间,第二存储区域1003包括数据空间和预留空间。存储控制器1001用于执行图2所示本发明实施例。具体地,存储控制器1001接收写请求,所述写请求携带逻辑地址和数据,判断所述写请求的特征,当写请求的特征满足第一条件时,将写请求携带的数据写入第一存储区域1002的预留空间的第一存储地址;建立逻辑地址与第一存储地址的映射关系;当写请求的特征满足第二条件时,将写请求携带的数据写入第二存储区域1003的预留空间的第二存储地址;建立逻辑地址与第二存储地址的映射关系。可选的,图10所示的存储设备可以为SSD,则存储控制器1001为SSD的控制器。可选的,图10所示的存储设备还可以为SMR盘,则存储控制器1001为SMR盘的控制器。可选的,图10所示的存储设备还可以为本发明实施例中描述的存储阵列,则存储控制器1001为存储阵列的阵列控制器,具体描述请参见本发明实施例相应部分描述,在此不再赘述。可选的,在多个写请求并发的情况下,存储设备优先处理符合第一条件的写请求,以提高存储设备的写性能。可选的,在写入对应的存储区域时,例如,上述的第一或第二存储区域时,如果对应存储空间的预留空间不够,可以进行动态的调整,比如在最大冗余配额没有用完的前提下可申请额外的预留空间,然后将写请求中的数据写入新申请的预留空间。
本发明实施例的存储设备还可以为其他使用闪存介质及具有相似特性的存储介质组成的产品。
本发明实施例提供了另一种存储设备,如图11所示,包含存储控制器、第一存储区域1105和第二存储区域1106;其中存储控制器包括接收单元1101、判断单元1102、写入单元1103和映射单元1104。接收单元1101,用于接收写请求;写请求携带逻辑地址和数据;判断单元1102,用于判断写请求的特征;写入单元1103,用于当写请求的特征满足第一条件时,将写请求携带的数据写入第一存储区域1105的预留空间的第一存储地址;映射单元1104,用于建立逻辑地址与所述第一存储地址的映射关系;写入单元1103还用于当写请求的特征满足第二条件时,将写请求携带的数据写入第二存储区域1106的预留空间的第二存储地址;映射单元1104还用于建立逻辑地址与第二存储地址的映射关系。可选的,图11所示的存储设备,存储控制器可独立地对第一存储区域1105和第二存储区域1106进行垃圾空间回收。可选的,第一存储区域1105的预留空间的大小与第二存储区域1106的预留空间的大小不同。可选的,第一存储区域1105的预留空间小于第二存储区域1106的预留空间,第一存储区域1105的预留空间的大小小于第二存储区域1106的预留空间的大小。可选的,第一存储区域1105的预留空间与数据空间的比值小于第二存储区域1106的预留空间与数据空间的比值。可选的,所述判断单元1102具体用于判断写请求是顺序写请求或者随机写请求;则第一条件为顺序写请求,所述第二条件为随机写请求。可选的,判断单元1102具体用于判断所述写请求的顺序度,则第一条件为第一顺序度范围,第二条件为第二顺序度范围,并且第一顺序度范围的最小值大于第二顺序度范围的最大值,关于顺序度的含义请参见图2所示的实施例中的描述。可选的,判断单元1102具体用于判断所述写请求的随机度,则第一条件为第一随机度范围,第二条件为第二随机度范围,并且第一随机度范围的最大值小于所述第二随机度范围的最小值,关于随机度的含义请参见图2所示的实施例中的描述。可选的,判断单元1102具体用于判断写请求携带的数据的大小,则第一条件为第一存储区域1105存储的第一数据区间,第二条件为第二存储区域1106存储的第二数据区间;并且第一数据区间的最小值大于第二数据区间的最大值,关于数据区间的含义请参见图2所示的实施例中的描述。可选的,在多个写请求并发的情况下,存储设备优先处理符合第一条件的写请求,以提高存储设备的写性能。可选的,在写入对应的存储区域时,例如,上述的第一或第二存储区域时,如果对应存储空间的预留空间不够,可以进行动态的调整,比如在最大冗余配额没有用完的前提下可申请额外的预留空间,然后将写请求中的数据写入新申请的预留空间。
如图11所示的存储设备,可以为SSD、SMR盘或本发明实施例中的存储阵列,如图11所示的存储设备,还可以为其他使用闪存介质及具有相似特性的存储介质组成的产品,具体描述请参见本发明实施例相应部分描述,在此不再赘述。
如图11所示的存储设备,一种实现方式为存储设备安装上有述单元,上述单元可被加载到存储设备的存储控制器中的内存中,由存储控制器中的CPU执行内存中的指令,实现本发明对应的实施例中的功能;另一种实现,存储设备中包含的单元可以由硬件来实现,或者由软件与硬件组合实现。上述单元也称为结构单元。
本发明实施例,还提供了非易失性计算机可读存储介质和计算机程序产品,当图10和图11所示的存储设备的存储控制器的内存加载非易失性计算机可读存储介质和计算机程序产品中包含的计算机指令,CPU执行内存中加载的该计算机指令,以实现本发明各实施中对应的功能。
根据上述实施例,本发明实施例提供了存储设备的存储区域划分方法,存储设备将存储空间划分为第一存储区域和第二存储区域,第一存储区域包括数据空间和预留空间,第二存储区域包括数据空间和预留空间;其中第一存储区域的预留空间用于存储第一写请求携带的数据;第二存储区域的预留空间用于存储第二写请求携带的数据;第一写请求的特征符合第一条件;第二写请求符合第二条件。具体地,第一条件、第二条件、第一写请求的特征和第二写请求的特征请参见图2所示实施例的描述,在此不再赘述。第一存储区域的预留空间和第二存储区域的预留空间的关系也请参见图2所示实施例的描述。本发明实施例中存储设备的结构可参考图10所示,在此不再赘述。可选的,可以根据写请求的顺序度或随机度的等级数划分相应数量的存储区域,并且根据所述顺序度或随机度的各等级的值配置相应的预留空间。存储区域的划分和对应预留空间的配置可以可以预先进行,也可以在使用过程中进行动态的划分和配置。
在本发明所提供的几个实施例中,应该理解到,所公开的装置、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

Claims (30)

1.一种固态硬盘SSD的配置方法,其特征在于,所述方法包括:
从所述SSD中划分出第一存储区域和第二存储区域;
其中,所述第一存储区域包括第一数据空间和第一预留空间over-provisioning;所述第二存储区域包括第二数据空间和第二预留空间over-provisioning。
2.根据权利要求1所述的方法,其特征在于,所述第一预留空间over-provisioning与所述第二预留空间over-provisioning大小不同。
3.根据权利要求1所述的方法,其特征在于,所述第一预留空间over-provisioning与所述第一数据空间的比值与所述第二预留空间over-provisioning与所述第二数据空间的比值不同。
4.根据权利要求1至3任一所述的方法,其特征在于,所述第一存储区域用于存储符合第一条件的第一写请求;所述第二存储区域用于存储符合第二条件的第二写请求。
5.一种固态硬盘SSD,其特征在于,所述固态硬盘包含存储控制器和介质;
所述存储控制器用于从所述SSD的介质提供的存储空间中划分出第一存储区域和第二存储区域;
其中,所述第一存储区域包括第一数据空间和第一预留空间over-provisioning;所述第二存储区域包括第二数据空间和第二预留空间over-provisioning。
6.根据权利要求5所述的SSD,其特征在于,所述第一预留空间over-provisioning与所述第二预留空间over-provisioning大小不同。
7.根据权利要求5所述的SSD,其特征在于,所述第一预留空间over-provisioning与所述第一数据空间的比值与所述第二预留空间over-provisioning与所述第二数据空间的比值不同。
8.根据权利要求5至7任一所述的SSD,其特征在于,所述第一存储区域用于存储符合第一条件的第一写请求;所述第二存储区域用于存储符合第二条件的第二写请求。
9.一种存储控制器,其特征在于,所述存储控制器用于固态硬盘SSD中,所述SSD还包括介质,所述存储控制器包括处理器和存储器,所述处理器执行所述存储器中的计算机指令,用于从所述SSD的介质提供的存储空间中划分出第一存储区域和第二存储区域;
其中,所述第一存储区域包括第一数据空间和第一预留空间over-provisioning;所述第二存储区域包括第二数据空间和第二预留空间over-provisioning。
10.根据权利要求9所述的存储控制器,其特征在于,所述第一预留空间over-provisioning与所述第二预留空间over-provisioning大小不同。
11.根据权利要求9所述的存储控制器,其特征在于,所述第一预留空间over-provisioning与所述第一数据空间的比值与所述第二预留空间over-provisioning与所述第二数据空间的比值不同。
12.根据权利要求9至11任一所述的存储控制器,其特征在于,所述第一存储区域用于存储符合第一条件的第一写请求;所述第二存储区域用于存储符合第二条件的第二写请求。
13.一种固态硬盘SSD中的数据存储方法,其特征在于,所述SSD包含第一存储区域和第二存储区域,所述第一存储区域包括第一数据空间和第一预留空间over-provisioning,所述第二存储区域包括第二数据空间和第二预留空间over-provisioning,所述方法包括:
所述SSD接收写请求;所述写请求携带逻辑地址和数据;
所述SSD判断所述写请求的特征;
当所述写请求的特征满足第一条件时,所述SSD将所述写请求携带的数据写入所述第一预留空间的第一存储地址;
所述SSD建立所述逻辑地址与所述第一存储地址的映射关系;
当所述写请求的特征满足第二条件时,所述SSD将所述写请求携带的数据写入所述第二预留空间的第二存储地址;
所述SSD建立所述逻辑地址与所述第二存储地址的映射关系。
14.根据权利要求13所述的方法,其特征在于,其中,所述写请求的特征包括顺序写请求或者随机写请求;
所述SSD判断所述写请求的特征包括:
所述SSD判断所述写请求是顺序写请求或者随机写请求;
其中,所述第一条件为顺序写请求,所述第二条件为随机写请求。
15.根据权利要求13所述的方法,其中,所述写请求的特征包括顺序度;
所述SSD判断所述写请求的特征包括:
所述SSD判断所述写请求的顺序度;
则所述第一条件为第一顺序度范围;所述第二条件为第二顺序度范围;并且所述第一顺序度范围的最小值大于所述第二顺序度范围的最大值。
16.根据权利要求13所述的方法,其特征在于,其中,所述写请求的特征包括随机度;
所述SSD判断所述写请求的特征包括:
所述SSD判断所述写请求的随机度;
则所述第一条件为第一随机度范围;所述第二条件为第二随机度范围;并且所述第一随机度范围的最大值小于所述第二随机度范围的最小值。
17.根据权利要求13至16任一所述的方法,其特征在于,所述第一预留空间over-provisioning小于所述第二预留空间over-provisioning。
18.根据权利要求13至16任一所述的方法,其特征在于,所述第一预留空间over-provisioning与所述第一数据空间的比值小于所述第二预留空间over-provisioning与所述第二数据空间的比值。
19.一种固态硬盘SSD,其特征在于,所述固态硬盘包含存储控制器和介质;所述介质提供第一存储区域和第二存储区域,所述第一存储区域包括第一数据空间和第一预留空间over-provisioning,所述第二存储区域包括第二数据空间和第二预留空间over-provisioning;所述存储控制器用于:
接收写请求;所述写请求携带逻辑地址和数据;
判断所述写请求的特征;
当所述写请求的特征满足第一条件时,将所述写请求携带的数据写入所述第一预留空间的第一存储地址;
建立所述逻辑地址与所述第一存储地址的映射关系;
当所述写请求的特征满足第二条件时,所述SSD将所述写请求携带的数据写入所述第二预留空间的第二存储地址;
建立所述逻辑地址与所述第二存储地址的映射关系。
20.根据权利要求19所述的SSD,其特征在于,其中,所述写请求的特征包括顺序写请求或者随机写请求;
所述存储控制器判断所述写请求的特征包括:
所述存储控制器判断所述写请求是顺序写请求或者随机写请求;
其中,所述第一条件为顺序写请求,所述第二条件为随机写请求。
21.根据权利要求19所述的SSD,其中,所述写请求的特征包括顺序度;
所述存储控制器判断所述写请求的特征包括:
所述存储控制器判断所述写请求的顺序度;
则所述第一条件为第一顺序度范围;所述第二条件为第二顺序度范围;并且所述第一顺序度范围的最小值大于所述第二顺序度范围的最大值。
22.根据权利要求19所述的SSD,其特征在于,其中,所述写请求的特征包括随机度;
所述存储控制器判断所述写请求的特征包括:
所述存储控制器判断所述写请求的随机度;
则所述第一条件为第一随机度范围;所述第二条件为第二随机度范围;并且所述第一随机度范围的最大值小于所述第二随机度范围的最小值。
23.根据权利要求19至22任一所述的SSD,其特征在于,所述第一预留空间over-provisioning小于所述第二预留空间over-provisioning。
24.根据权利要求19至22任一所述的SSD,其特征在于,所述第一预留空间over-provisioning与所述第一数据空间的比值小于所述第二预留空间over-provisioning与所述第二数据空间的比值。
25.一种存储控制器,其特征在于,所述存储控制器用于固态硬盘SSD中,所述SSD还包括介质,所述介质提供第一存储区域和第二存储区域,所述第一存储区域包括第一数据空间和第一预留空间over-provisioning,所述第二存储区域包括第二数据空间和第二预留空间over-provisioning;所述存储控制器包括处理器和存储器,所述处理器执行所述存储器中的计算机指令,用于:
接收写请求;所述写请求携带逻辑地址和数据;
判断所述写请求的特征;
当所述写请求的特征满足第一条件时,将所述写请求携带的数据写入所述第一预留空间的第一存储地址;
建立所述逻辑地址与所述第一存储地址的映射关系;
当所述写请求的特征满足第二条件时,所述SSD将所述写请求携带的数据写入所述第二预留空间的第二存储地址;
建立所述逻辑地址与所述第二存储地址的映射关系。
26.根据权利要求25所述的存储控制器,其特征在于,其中,所述写请求的特征包括顺序写请求或者随机写请求;
所述存储控制器判断所述写请求的特征包括:
所述存储控制器判断所述写请求是顺序写请求或者随机写请求;
其中,所述第一条件为顺序写请求,所述第二条件为随机写请求。
27.根据权利要求25所述的存储控制器,其中,所述写请求的特征包括顺序度;
所述存储控制器判断所述写请求的特征包括:
所述存储控制器判断所述写请求的顺序度;
则所述第一条件为第一顺序度范围;所述第二条件为第二顺序度范围;并且所述第一顺序度范围的最小值大于所述第二顺序度范围的最大值。
28.根据权利要求25所述的存储控制器,其特征在于,其中,所述写请求的特征包括随机度;
所述存储控制器判断所述写请求的特征包括:
所述存储控制器判断所述写请求的随机度;
则所述第一条件为第一随机度范围;所述第二条件为第二随机度范围;并且所述第一随机度范围的最大值小于所述第二随机度范围的最小值。
29.根据权利要求25至28任一所述的存储控制器,其特征在于,所述第一预留空间over-provisioning小于所述第二预留空间over-provisioning。
30.根据权利要求25至28任一所述的存储控制器,其特征在于,所述第一预留空间over-provisioning与所述第一数据空间的比值小于所述第二预留空间over-provisioning与所述第二数据空间的比值。
CN201811586092.0A 2015-11-27 2015-11-27 固态硬盘的配置方法、数据存储方法、固态硬盘和存储控制器 Active CN109656486B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811586092.0A CN109656486B (zh) 2015-11-27 2015-11-27 固态硬盘的配置方法、数据存储方法、固态硬盘和存储控制器

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
PCT/CN2015/095846 WO2017088185A1 (zh) 2015-11-27 2015-11-27 一种存储设备存储数据的方法及存储设备
CN201811586092.0A CN109656486B (zh) 2015-11-27 2015-11-27 固态硬盘的配置方法、数据存储方法、固态硬盘和存储控制器
CN201580002559.0A CN107003809B (zh) 2015-11-27 2015-11-27 一种存储设备存储数据的方法及存储设备

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201580002559.0A Division CN107003809B (zh) 2015-11-27 2015-11-27 一种存储设备存储数据的方法及存储设备

Publications (2)

Publication Number Publication Date
CN109656486A CN109656486A (zh) 2019-04-19
CN109656486B true CN109656486B (zh) 2022-07-12

Family

ID=58746365

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201811586092.0A Active CN109656486B (zh) 2015-11-27 2015-11-27 固态硬盘的配置方法、数据存储方法、固态硬盘和存储控制器
CN201580002559.0A Active CN107003809B (zh) 2015-11-27 2015-11-27 一种存储设备存储数据的方法及存储设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201580002559.0A Active CN107003809B (zh) 2015-11-27 2015-11-27 一种存储设备存储数据的方法及存储设备

Country Status (13)

Country Link
US (1) US20180232314A1 (zh)
EP (2) EP3220255A4 (zh)
JP (1) JP6311195B2 (zh)
KR (4) KR102170539B1 (zh)
CN (2) CN109656486B (zh)
AU (2) AU2015383834B2 (zh)
BR (1) BR112016021172B1 (zh)
CA (1) CA2942443C (zh)
MX (1) MX363170B (zh)
RU (1) RU2642349C1 (zh)
SG (1) SG11201607335XA (zh)
WO (1) WO2017088185A1 (zh)
ZA (1) ZA201704018B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110554970A (zh) * 2018-05-31 2019-12-10 北京忆恒创源科技有限公司 显著降低写放大的垃圾回收方法及存储设备
KR20190128392A (ko) * 2018-05-08 2019-11-18 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN112352216B (zh) * 2018-06-30 2022-06-14 华为技术有限公司 数据存储方法及数据存储装置
KR102593757B1 (ko) * 2018-09-10 2023-10-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
TWI709042B (zh) * 2018-11-08 2020-11-01 慧榮科技股份有限公司 用來進行關於容錯式磁碟陣列的映射資訊管理之方法與裝置以及儲存系統
CN109376095B (zh) * 2018-12-04 2023-06-13 中国航空工业集团公司西安航空计算技术研究所 一种基于flash区域地址映射机制的垃圾回收方法
CN111949560B (zh) * 2019-05-16 2024-01-23 兆易创新科技集团股份有限公司 一种数据写入方法、装置及存储设备
KR20200132495A (ko) * 2019-05-17 2020-11-25 에스케이하이닉스 주식회사 메모리 시스템, 컨트롤러 및 컨트롤러의 동작 방법
CN114237489B (zh) * 2020-09-09 2024-04-05 浙江宇视科技有限公司 将逻辑资源写入smr盘的方法、装置、电子设备及存储介质
CN112214175A (zh) * 2020-10-21 2021-01-12 重庆紫光华山智安科技有限公司 数据处理方法、装置、数据节点及存储介质
WO2022240318A1 (ru) * 2021-05-13 2022-11-17 Общество с ограниченной ответственностью "РЭЙДИКС" Способ управления системой хранения данных и система хранения данных
CN113342272B (zh) * 2021-06-07 2023-02-10 深圳数联天下智能科技有限公司 一种坐姿数据的存储方法、展示方法、智能坐垫和系统
CN113608702A (zh) * 2021-08-18 2021-11-05 合肥大唐存储科技有限公司 一种实现数据处理的方法、装置、计算机存储介质及终端
CN114415981B (zh) * 2022-03-30 2022-07-15 苏州浪潮智能科技有限公司 一种多控存储系统的io处理方法、系统及相关组件
CN114741327B (zh) * 2022-04-22 2024-04-19 中科驭数(北京)科技有限公司 一种垃圾回收方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023810A (zh) * 2009-09-10 2011-04-20 成都市华为赛门铁克科技有限公司 一种写数据的方法、装置以及廉价冗余磁盘阵列

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3585091B2 (ja) * 1998-06-15 2004-11-04 富士通株式会社 記憶装置
KR100704998B1 (ko) * 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
KR101515525B1 (ko) * 2008-10-02 2015-04-28 삼성전자주식회사 메모리 장치 및 메모리 장치의 동작 방법
KR100962186B1 (ko) * 2008-12-22 2010-06-10 한국과학기술원 초저전력 스토리지 시스템 및 그의 데이터 관리방법
US8452940B2 (en) * 2008-12-30 2013-05-28 Sandisk Technologies Inc. Optimized memory management for random and sequential data writing
JP2010211618A (ja) * 2009-03-11 2010-09-24 Toshiba Corp 半導体記憶装置
US8479080B1 (en) * 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
TWI407310B (zh) * 2009-10-09 2013-09-01 Silicon Motion Inc 資料儲存裝置及資料存取方法
US9753847B2 (en) * 2009-10-27 2017-09-05 Western Digital Technologies, Inc. Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US8677054B1 (en) * 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
KR101662827B1 (ko) * 2010-07-02 2016-10-06 삼성전자주식회사 쓰기 패턴에 따라 데이터 블록의 쓰기 모드를 선택하는 메모리 시스템 및 그것의 데이터 쓰기 방법
WO2012158514A1 (en) * 2011-05-17 2012-11-22 Sandisk Technologies Inc. Non-volatile memory and method with small logical groups distributed among active slc and mlc memory partitions
WO2012161659A1 (en) * 2011-05-24 2012-11-29 Agency For Science, Technology And Research A memory storage device, and a related zone-based block management and mapping method
US8671241B2 (en) * 2011-09-13 2014-03-11 Dell Products Lp Systems and methods for using reserved solid state nonvolatile memory storage capacity for system reduced power state
KR20130030640A (ko) * 2011-09-19 2013-03-27 삼성전자주식회사 저장 매체에 데이터를 저장하는 방법 및 그것을 포함하는 데이터 저장 장치
KR101889298B1 (ko) * 2011-11-08 2018-08-20 삼성전자주식회사 불휘발성 메모리를 포함하는 메모리 장치 및 불휘발성 메모리의 제어 방법
CN102541760B (zh) * 2012-01-04 2015-05-20 记忆科技(深圳)有限公司 基于固态硬盘的计算机系统
JP6011153B2 (ja) * 2012-08-22 2016-10-19 富士通株式会社 ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US9495287B2 (en) * 2012-09-26 2016-11-15 International Business Machines Corporation Solid state memory device logical and physical partitioning
US9141532B2 (en) * 2012-12-26 2015-09-22 Western Digital Technologies, Inc. Dynamic overprovisioning for data storage systems
US9465731B2 (en) * 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9348746B2 (en) * 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US9378135B2 (en) * 2013-01-08 2016-06-28 Violin Memory Inc. Method and system for data storage
US9098445B2 (en) * 2013-03-14 2015-08-04 Apple Inc. Selection of redundant storage configuration based on available memory space
TWI526830B (zh) * 2013-11-14 2016-03-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US20150261444A1 (en) * 2014-03-12 2015-09-17 Kabushiki Kaisha Toshiba Memory system and information processing device
US9454551B2 (en) * 2014-03-13 2016-09-27 NXGN Data, Inc. System and method for management of garbage collection operation in a solid state drive
TWI519951B (zh) * 2014-11-03 2016-02-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
CN104317742B (zh) * 2014-11-17 2017-05-03 浪潮电子信息产业股份有限公司 一种优化空间管理的自动精简配置方法
US9910791B1 (en) * 2015-06-30 2018-03-06 EMC IP Holding Company LLC Managing system-wide encryption keys for data storage systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102023810A (zh) * 2009-09-10 2011-04-20 成都市华为赛门铁克科技有限公司 一种写数据的方法、装置以及廉价冗余磁盘阵列

Also Published As

Publication number Publication date
AU2015383834B2 (en) 2018-07-19
US20180232314A1 (en) 2018-08-16
AU2018220027A1 (en) 2018-09-06
CA2942443A1 (en) 2017-05-27
KR20170081133A (ko) 2017-07-11
KR102170539B1 (ko) 2020-10-27
CN107003809B (zh) 2019-01-18
BR112016021172B1 (pt) 2022-12-06
JP2017538981A (ja) 2017-12-28
BR112016021172A2 (pt) 2017-10-03
ZA201704018B (en) 2019-04-24
JP6311195B2 (ja) 2018-04-18
RU2642349C1 (ru) 2018-01-24
EP3220255A4 (en) 2018-03-07
MX2016013227A (es) 2017-06-29
SG11201607335XA (en) 2017-07-28
KR101871471B1 (ko) 2018-08-02
KR101962359B1 (ko) 2019-03-26
AU2018220027B2 (en) 2020-06-25
CA2942443C (en) 2019-07-30
KR20180072855A (ko) 2018-06-29
EP3220255A1 (en) 2017-09-20
KR20190143502A (ko) 2019-12-30
EP3779663A1 (en) 2021-02-17
KR20190031605A (ko) 2019-03-26
MX363170B (es) 2019-03-13
AU2015383834A1 (en) 2017-06-15
WO2017088185A1 (zh) 2017-06-01
KR102060736B1 (ko) 2020-02-11
CN109656486A (zh) 2019-04-19
CN107003809A (zh) 2017-08-01

Similar Documents

Publication Publication Date Title
CN109656486B (zh) 固态硬盘的配置方法、数据存储方法、固态硬盘和存储控制器
US10437737B2 (en) Data storage device
JP6016137B2 (ja) ソリッドステートドライブおよびその動作方法
US10877898B2 (en) Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US11126561B2 (en) Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US20160132429A1 (en) Method and Storage Device for Collecting Garbage Data
KR101678868B1 (ko) 플래시 주소 변환 장치 및 그 방법
US9122586B2 (en) Physical-to-logical address map to speed up a recycle operation in a solid state drive
EP2665065A2 (en) Electronic device employing flash memory
WO2014074449A2 (en) Wear leveling in flash memory devices with trim commands
KR102530583B1 (ko) 저장 장치 및 메모리 시스템
CN111610930B (zh) 数据储存装置以及非挥发式存储器控制方法
JP4561246B2 (ja) メモリ装置
TWI713032B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
US20200081657A1 (en) Data storage device and control method for non-volatile memory
JP2009282568A (ja) 半導体記録装置
CN113094004A (zh) 一种存储设备中针对特定规律数据镜像映射优化处理方法
CN115904800A (zh) 数据备份方法、装置、设备、系统、介质及程序产品
CN116974481A (zh) 一种空闲物理块水位线的调整方法和存储设备
CN115878016A (zh) 数据存储方法、智能终端及计算机可读存储介质
CN111367825A (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
GR01 Patent grant
GR01 Patent grant