CN108829346A - 一种适应闪存页差异的固态硬盘的用户写请求处理方法 - Google Patents

一种适应闪存页差异的固态硬盘的用户写请求处理方法 Download PDF

Info

Publication number
CN108829346A
CN108829346A CN201810522252.9A CN201810522252A CN108829346A CN 108829346 A CN108829346 A CN 108829346A CN 201810522252 A CN201810522252 A CN 201810522252A CN 108829346 A CN108829346 A CN 108829346A
Authority
CN
China
Prior art keywords
page
specified
request
write
write request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810522252.9A
Other languages
English (en)
Other versions
CN108829346B (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201810522252.9A priority Critical patent/CN108829346B/zh
Publication of CN108829346A publication Critical patent/CN108829346A/zh
Application granted granted Critical
Publication of CN108829346B publication Critical patent/CN108829346B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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/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/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]

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

本发明公开了一种适应闪存页差异的固态硬盘的用户写请求处理方法,包括:根据闪存页的差异,把闪存页分类为不同页类型;根据闪存页的分类方法和页类型指定策略,为设备级I/O队列中的用户写请求指定一个页类型;将用户写请求切割成以闪存页大小为单位的子请求;根据页类型指定的页指派策略,为每个子请求指派一个用于服务该子请求的物理闪存页,并把成功指派了物理闪存页的子请求插入到对应的闪存芯片队列;从闪存芯片队列中取出子请求,完成数据传输和写入;当用户写请求涉及的所有子请求都完成后,返回用户写请求处理结果。使用本发明可以使固态硬盘的闪存转换层设计适应闪存页的差异,最终达到优化固态硬盘读写性能和数据可靠性的目的。

Description

一种适应闪存页差异的固态硬盘的用户写请求处理方法
技术领域
本发明属于固态硬盘存储领域,更具体地,涉及一种适应闪存页差异的固态硬盘的用户写请求处理方法。
背景技术
固态硬盘(SSD)使用闪存芯片作为存储介质,并且通过在盘内并行访问多片闪存芯片达到高读写吞吐率的效果。除此以外,与传统磁盘相比,固态硬盘不需要在访问数据时不需要物理寻道,大大降低了数据访问延时。基于这两个优势,固态硬盘逐渐取代传统磁盘成为计算机系统中的主流存储设备。然而,随着具有高存储密度的多级闪存在固态硬盘中的逐渐普及,固态硬盘的高吞吐率和低响应延时优势开始丢失。除此以外,使用多级闪存的固态硬盘还面临越来越严峻的使用寿命挑战。
多级闪存的一个重要特性在于,闪存页的写入延时具有显著差异。例如,在TLC(Triple level Cell)三级闪存中,LSB(Least Significant Bit)、CSB(CentralSignificant Bit)、及MSB(Most Significant Bit)三种类型页的写入延时具有近10倍的差异。此外,使用多级闪存的固态硬盘中还可能混合使用单级(SLC,Single level Cell)闪存以提高性能,而SLC闪存的可擦写次数与TLC闪存也有近10倍的差异。再者,不同的闪存芯片也会由于制作过程的不同以及已经使用的擦写次数而导致在数据可靠性、写入速度以及读取速度上的显著差异。总而言之,在固态硬盘内部,闪存页之间存在多方面的显著差异。
图1为传统的固态硬盘中用户写请求服务处理方法流程示意图。如图1所示,一个来自主机端的用户写请求一般会被分割为多个以闪存页大小为单位的子请求,而这些子请求将被独立地分配闪存页而不考虑闪存页的差异。一个用户请求涉及的多个子请求可能并行地被具有显著写入延时差异的多个闪存页所服务,而该请求只有在最慢的一个子请求完成后才能提交完成;一个用户请求涉及的多个子请求也可能被具有显著可靠性差异的多个闪存页所服务,而一旦某个子请求所使用的闪存页发生数据丢失,则该请求写入的所有数据都将失效。
发明内容
针对现有技术的缺陷,本发明的目的在于解决现有技术写请求不考虑闪存页类型而导致的性能慢、可靠性低的技术问题。
为实现上述目的,一方面本发明提供一种适应闪存页差异的固态硬盘的用户写请求处理方法,包括以下步骤:
S1.根据闪存页的差异,把闪存页分类为不同页类型;
S2.根据闪存页的分类方法和页类型指定策略,为设备级I/O队列中的用户写请求指定一个页类型;
S3.将用户写请求切割成以闪存页大小为单位的子请求;
S4.根据页类型指定的页指派策略,为每个子请求指派一个用于服务该子请求的物理闪存页,并把成功指派了物理闪存页的子请求插入到对应的闪存芯片队列;
S5.从闪存芯片队列中取出子请求,完成数据传输和写入;
S6.当用户写请求涉及的所有子请求都完成后,返回用户写请求处理结果。
可选地,所述闪存页的分类方法包括:
(1)根据闪存页的读/写响应延时差异划分;
(2)根据闪存页的可擦写次数差异划分;
(3)根据闪存页的闪存芯片类型差异划分;
(4)根据闪存页的数据可持续存放时长差异划分。
可选地,所述页类型指定策略包括:
1)均匀指定:假定页类型的个数为N,为用户写请求指定N个类型中的任一个的概率为1/N;
2)根据请求完成时限要求指定:根据请求完成时限要求由短至长,为写请求分别指定写延时低至高的页类型;
3)根据请求大小指定:为小请求指定写延时低的页类型,为大请求指定写延时相对高的页类型,其中,请求长度<=16KB称为小请求;请求长度>16KB称为大请求;
4)根据请求队列深度指定:当设备级I/O队列长时,为写请求指定写入延时低的页类型;
5)根据固态硬盘内缓存使用量指定:当固态硬盘中用于缓存写数据的缓存使用量高时,为写请求指定写入延时低的页类型;
6)根据各类型页剩余可用空间指定:根据各类型页剩余可用空间,为写请求指定剩余可用空间最多的页类型;
7)根据写请求相关数据的更新频率指定:当写请求相关数据的更新频率高时,为写请求指定具有高擦写次数和短数据持续存放时长的页;反之,为写请求指定具有低擦写次数和长数据持续存放时长的页;
8)根据写请求的数据可靠性需要指定:为数据可靠性高的写请求指定具有高数据持续存放时长的页。
可选地,步骤S2中所述根据闪存页的分类方法和页类型指定策略,为设备级I/O队列中的用户写请求指定一个页类型,具体包括:
当采取分类方法(1)时,选择页类型指定策略1)-6)中任一个为用户写请求指定一个页类型;当采取分类方法(2)或(3)或(4)时,选择页类型指定策略7)-8)中任一个为用户写请求指定一个页类型。
可选地,队列长度>10时,认为设备级I/O队列长。
可选地,使用量>80%,认为缓存使用量高。
可选地,所述页类型指定的页指派策略包括:
为每个子请求指派一个物理闪存页时,判断所选定的block中是否有满足该子请求所指定类型的空闲页,如果有,则指派该空闲页,否则,采用以下方式之一指派页:
a)在所选定的block中寻找一个其他类型的页作为替代;
b)重新选择channel、chip、die、plane、block,并在该block中选择满足指定类型的页;
c)延迟该子请求的页指派,直至所选定的block有所需的空闲页。
可选地,通过详细记录block内所有页的状态,可以一定程度上改变block内页的写入顺序,从而提高为写请求指派所需类型页的成功率。
另一方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的用户写请求处理方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
(1)本发明通过写响应延时差异划分闪存页,并在I/O忙时使用响应延时低的闪存页服务写请求,达到提高固态硬盘峰值性能的效果。
(2)本发明通过读响应延时差异划分闪存页,并把频繁被读的数据存入读响应延时低的页,达到降低整体读响应延时的效果。
(3)本发明通过可擦写次数划分闪存页,并把更新频繁的数据放入可擦写次数多的闪存页,达到均衡整体擦写次数的效果。
(4)本发明通过所属闪存芯片类型划分闪存页,并把数据放入不同的闪存芯片达到提高性能和寿命的效果。
(5)本发明通过数据可持续存放时长划分闪存页,并把需长时间存放的数据放入数据可持续存放时长较长的页中,达到提高数据可靠性的效果。
综上所述,使用本发明可以使固态硬盘的闪存转换层设计适应闪存页的差异,最终达到优化固态硬盘读写性能和数据可靠性的目的。
附图说明
图1为传统的固态硬盘中用户写请求服务处理方法流程示意图。
图2为本发明实施例提供的适应闪存页差异的固态硬盘的用户写请求处理方法流程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明的实施例中将会用到若干术语,其解释如下:
固态硬盘:以闪存为主要存储介质的存储设备。
闪存:是一种存储介质。与计算机系统中传统的存储介质磁盘相比,有读写吞吐率高、延迟低的优点;相对地,闪存的使用寿命受擦除次数的限制,此外,闪存断电后,存储的数据可能会因为电子逃逸而丢失。
SLC(single level cell)、MLC(multi level cell)以及TLC(triple levelcell):当前主流的三种闪存类型,分别可以在一个闪存单元中存储1、2和3个比特数据。
闪存页(page):闪存的写入和读出单位;TLC闪存中的页可分为三类,分别是LSB(least significant bit)页、CSB(center significant bit)页和MSB(most significantbit)页,其中LSB页的写入延迟远低于MSB页;闪存页在写入数据后需要被擦除才可以再次被写入数据。
闪存块(block):闪存的擦除单位,通常一个块包含多个页。
存储平面(plane):闪存中实施读、写操作的独立单元,每个plane包含多个块,不同的plane可以同时实施读闪存页或写闪存页的操作。
逻辑单元(logical unit,LUN,又称die):一个die通常包含多个plane。
闪存芯片(chip):一个chip通常包含多个die。
闪存通道(channel):固态硬盘中传输数据和命令的通道,通常连接着多片闪存芯片,不同的通道可以并行传输数据或命令。
用户接口(host interface):固态硬盘中负责与主机通信的部件。
闪存转换层(FTL,flash translation layer):以闪存为存储介质的固态硬盘需要实现的逻辑功能集合,通常包括逻辑页号与物理页号的映射、写请求的页指派策略、垃圾回收策略以及磨损均衡策略等。
页指派策略(page allocation):为写请求指派一个可用于存储数据的空闲页;通常分为动态分配和静态分配两种策略;在指派页的过程中依次选取channel,chip,die,plane,然后在plane中激活的block中选取一个空闲的page。
垃圾回收策略:当固态硬盘中可用的空闲页低于某一阈值时,挑选一个块并把块中的有效数据移动到其他块,再把该块擦除获取新的空闲页。
PA-SSD(page-type aware SSD):本发明给出的适应闪存页差异的固态硬盘。
页类型指定策略(page-type specifying scheme):PA-SSD中用于为写请求指定一类闪存页的策略。
页类型指定的页指派策略(type-specified page allocation):PA-SSD中用于为写请求指派物理页的策略,使用该策略为写请求指派物理页时需考虑该请求被指定的闪存页类型。
图2为本发明实施例提供的适应闪存页差异的固态硬盘的用户写请求处理方法流程示意图。该方法包括以下步骤:
S1.根据闪存页的差异,把闪存页分类为不同页类型;
S2.根据闪存页的分类方法和页类型指定策略,为设备级I/O队列中的用户写请求指定一个页类型;
S3.将用户写请求切割成以闪存页大小为单位的子请求;
S4.根据页类型指定的页指派策略,为每个子请求指派一个物理闪存页,用于服务该子请求,并把成功指派了物理闪存页的子请求插入到对应的闪存芯片队列;
S5.从闪存芯片队列中取出子请求,完成数据传输和写入;
S6.当用户写请求涉及的所有子请求都完成后,返回用户写请求处理结果。
本发明的实施例中固态硬盘的闪存均为TLC闪存。TLC闪存因其高存储密度,逐渐取代SLC和MLC成为服务器领域和个人用户领域固态硬盘的主流存储介质。在一个TLC闪存单元里可以存储3比特数据,它们分别被称为LSB(least significant bit)、CSB(centersignificant bit)和MSB(most significant bit)。在TLC闪存芯片中,多个闪存单元被一个字线(wordline)连接,其中一个字线涉及的所有LSB组成一个闪存页,称为LSB页;相对应地,一个字线涉及的所有CSB和MSB分别组成CSB页和MSB页。
闪存页的分类方法包括:
(1)根据闪存页的读/写响应延时差异划分;
(2)根据闪存页的可擦写次数差异划分;
(3)根据闪存页的闪存芯片类型差异划分;
(4)根据闪存页的数据可持续存放时长差异划分。
例如,基于TLC闪存的物理存储机制,数据写入LSB页、CSB页和MSB页的时间开销存在显著差异。因此,选择分类方法(1),根据闪存页的写入延时差异分类,将TLC闪存的闪存页划分为LSB页、CSB页和MSB页三类。
页类型指定策略包括:
1)均匀指定:假定页类型的个数为N,为用户写请求指定N个类型中的任一个的概率为1/N。
2)根据请求完成时限要求指定:不同页类型的写延时高低不同,不同用户写请求完成时限要求也不同,根据请求完成时限要求由短至长,为写请求分别指定写延时低至高的页类型;
3)根据请求大小指定:请求长度与可接受的响应延时有高度相关性,小请求对响应延时比较敏感,大请求对响应延时要求比较低,其中,请求长度<=16KB称为小请求;请求长度>16KB称为大请求。为小请求指定写延时低的页类型,为大请求指定写延时相对高的页类型。
4)根据请求队列深度指定:当设备级I/O队列长时,请求的响应延时主要取决于排队时间。此时,为写请求指定写入延时低的页类型。这可以大幅度缩短所有请求的排队时间,从而极大地提高写性能。
本发明中,优选地,队列长度>10时,认为设备级I/O队列长。
5)根据固态硬盘内缓存使用量指定:当固态硬盘中用于缓存写数据的缓存使用量高时,说明当前写操作较频繁。此时,为写请求指定写入延时低的页类型。这样可以加快写入速度,从而降低写拥塞并最终提高写性能。
本发明中,优选地,使用量>80%,认为缓存使用量高。
6)根据各类型页剩余可用空间指定:各类型页的使用率可能有差异,根据各类型页剩余可用空间,为写请求指定剩余可用空间最多的页类型。这样能够达到均衡不同页类型使用率的效果。
7)根据写请求相关数据的更新频率指定:当写请求相关数据的更新频率较高时,为写请求指定具有高擦写次数和较短的数据持续存放时长的页;反之,为写请求指定具有低擦写次数和较长的数据持续存放时长的页。
8)根据写请求的数据可靠性需要指定:对于数据可靠性较高的写请求,为写请求指定具有较高数据持续存放时长的页。这样能够提高整体数据可靠性。
步骤S2中所述根据闪存页的分类方法和页类型指定策略,为设备级I/O队列中的用户写请求指定一个页类型,具体包括:
当采取分类方法(1)时,选择页类型指定策略1)-6)中任一个为用户写请求指定一个页类型;当采取分类方法(2)或(3)或(4)时,选择页类型指定策略7)-8)中任一个为用户写请求指定一个页类型。
例如,采取分类方法(1),根据闪存页的写入延时差异分类时,将TLC闪存划分为LSB页、CSB页和MSB页三类。对应地,选择页类型指定策略1)-6)中任一个为用户写请求指定一个页类型,具体地包括:
采用均匀指定策略时,各以1/3的概率为用户写请求指定LSB页、CSB页和MSB页。
采用根据请求完成时限要求指定策略时,用户可以为写请求指定完成的时限要求,分别有短、中、长三种,分别对应指定LSB页、CSB页和MSB页三种类型。
采用根据请求大小指定策略时,为小请求指定写延时低的LSB页服务,为大请求指定写延时相对较高的CSB页和MSB页。
采用根据请求队列深度指定策略时,当I/O请求的队列长时,为写请求指定写入延时低的LSB页。
采用根据固态硬盘内缓存使用量指定策略时,当固态硬盘中用于缓存写数据的缓存使用量高时,为写请求指定写入延时低的LSB页。
采用根据各类型页剩余可用空间指定策略时,优先为写请求指定剩余可用空间最多的页类型,达到均衡不同页类型使用率的效果。
将用户写请求切割成以闪存页大小为单位的子请求。
页类型指定的页指派策略包括:每个子请求指派一个物理闪存页时,判断是否有满足该子请求所指定类型的空闲页,如果有,则指派该空闲页,否则,采用以下方式之一指派页:
a)在已选定的block中寻找一个其他类型的页作为替代;
b)重新选择channel、chip、die、plane、block,并在该block中选择满足指定类型的页;
c)延迟该子请求的页指派,直至所选的block有所需的空闲页。
为了提高PA-SSD为写请求指派所需类型页的成功率,可以适当放宽闪存芯片内对闪存页的写入顺序要求。
具体而言,闪存芯片的一个block内的闪存页是已编号且按照页编号顺序写入的,这导致如果block内下一个空闲页不符合页类型要求时,即使该block内有符合页类型要求的闪存页也无法指派;然而,按照闪存页编号顺序写入并非闪存芯片的硬性要求,而只是降低管理开销。
通过详细记录block内所有页的状态,可以一定程度上改变block内页的写入顺序,从而提高为写请求指派所需类型页的成功率。
例如:页编号为1-100,原来按顺序从1号写到100号,只要记录当前已经写到x号,那么x号前的页为已写页而x号后的页为未写页;如果把每个已写页的号和未写页的号都详细记录下来,则没有必要按照1-100顺序写而可以乱序写。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述的存储介质是非短暂性(non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(magnetic tape),软盘(floppy disk),光盘(optical disc)及其任意组合。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (9)

1.一种适应闪存页差异的固态硬盘的用户写请求处理方法,其特征在于,包括以下步骤:
S1.根据闪存页的差异,把闪存页分类为不同页类型;
S2.根据闪存页的分类方法和页类型指定策略,为设备级I/O队列中的用户写请求指定一个页类型;
S3.将用户写请求切割成以闪存页大小为单位的子请求;
S4.根据页类型指定的页指派策略,为每个子请求指派一个用于服务该子请求的物理闪存页,并把成功指派了物理闪存页的子请求插入到对应的闪存芯片队列;
S5.从闪存芯片队列中取出子请求,完成数据传输和写入;
S6.当用户写请求涉及的所有子请求都完成后,返回用户写请求处理结果。
2.如权利要求1所述的用户写请求处理方法,其特征在于,所述闪存页的分类方法包括:
(1)根据闪存页的读/写响应延时差异划分;
(2)根据闪存页的可擦写次数差异划分;
(3)根据闪存页的闪存芯片类型差异划分;
(4)根据闪存页的数据可持续存放时长差异划分。
3.如权利要求1或2所述的用户写请求处理方法,其特征在于,所述页类型指定策略包括:
1)均匀指定:假定页类型的个数为N,为用户写请求指定N个类型中的任一个的概率为1/N;
2)根据请求完成时限要求指定:根据请求完成时限要求由短至长,为写请求分别指定写延时低至高的页类型;
3)根据请求大小指定:为小请求指定写延时低的页类型,为大请求指定写延时相对高的页类型,其中,请求长度<=16KB称为小请求;请求长度>16KB称为大请求;
4)根据请求队列深度指定:当设备级I/O队列长时,为写请求指定写入延时低的页类型;
5)根据固态硬盘内缓存使用量指定:当固态硬盘中用于缓存写数据的缓存使用量高时,为写请求指定写入延时低的页类型;
6)根据各类型页剩余可用空间指定:根据各类型页剩余可用空间,为写请求指定剩余可用空间最多的页类型;
7)根据写请求相关数据的更新频率指定:当写请求相关数据的更新频率高时,为写请求指定具有高擦写次数和短数据持续存放时长的页;反之,为写请求指定具有低擦写次数和长数据持续存放时长的页;
8)根据写请求的数据可靠性需要指定:为数据可靠性高的写请求指定具有高数据持续存放时长的页。
4.如权利要求3所述的用户写请求处理方法,其特征在于,步骤S2中所述根据闪存页的分类方法和页类型指定策略,为设备级I/O队列中的用户写请求指定一个页类型,具体包括:
当采取分类方法(1)时,选择页类型指定策略1)-6)中任一个为用户写请求指定一个页类型;当采取分类方法(2)或(3)或(4)时,选择页类型指定策略7)-8)中任一个为用户写请求指定一个页类型。
5.如权利要求3所述的用户写请求处理方法,其特征在于,队列长度>10时,认为设备级I/O队列长。
6.如权利要求3所述的用户写请求处理方法,其特征在于,使用量>80%,认为缓存使用量高。
7.如权利要求1所述的用户写请求处理方法,其特征在于,所述页类型指定的页指派策略包括:
为每个子请求指派一个物理闪存页时,判断所选定的block中是否有满足该子请求所指定类型的空闲页,如果有,则指派该空闲页,否则,采用以下方式之一指派页:
a)在所选定的block中寻找一个其他类型的页作为替代;
b)重新选择channel、chip、die、plane、block,并在该block中选择满足指定类型的页;
c)延迟该子请求的页指派,直至所选定的block有所需的空闲页。
8.如权利要求7所述的用户写请求处理方法,其特征在于,通过详细记录block内所有页的状态,可以一定程度上改变block内页的写入顺序,从而提高为写请求指派所需类型页的成功率。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的用户写请求处理方法。
CN201810522252.9A 2018-05-28 2018-05-28 一种适应闪存页差异的固态硬盘的用户写请求处理方法 Active CN108829346B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810522252.9A CN108829346B (zh) 2018-05-28 2018-05-28 一种适应闪存页差异的固态硬盘的用户写请求处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810522252.9A CN108829346B (zh) 2018-05-28 2018-05-28 一种适应闪存页差异的固态硬盘的用户写请求处理方法

Publications (2)

Publication Number Publication Date
CN108829346A true CN108829346A (zh) 2018-11-16
CN108829346B CN108829346B (zh) 2020-11-17

Family

ID=64146106

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810522252.9A Active CN108829346B (zh) 2018-05-28 2018-05-28 一种适应闪存页差异的固态硬盘的用户写请求处理方法

Country Status (1)

Country Link
CN (1) CN108829346B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888592A (zh) * 2019-05-15 2020-03-17 天津大学深圳研究院 基于延迟ssd系统智能并行资源利用的请求调度方法及系统
CN112558879A (zh) * 2020-12-17 2021-03-26 南昌航空大学 一种提高固态盘内3D-flash性能的方法
CN113051196A (zh) * 2021-03-26 2021-06-29 武汉理工大学 一种基于固态硬盘层差异特征的请求调度算法
WO2022120517A1 (en) * 2020-12-07 2022-06-16 Micron Technology, Inc. Techniques to reduce write amplification
CN114840149A (zh) * 2022-07-06 2022-08-02 江苏华存电子科技有限公司 一种超级闪存的时序稳定分析方法及系统
CN117234962A (zh) * 2023-11-10 2023-12-15 成都佰维存储科技有限公司 空间回收方法、装置、可读存储介质及电子设备
WO2024109489A1 (zh) * 2022-11-22 2024-05-30 郑州云海信息技术有限公司 一种固态硬盘及其数据写方法、装置、主机和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1877548A (zh) * 2005-06-06 2006-12-13 国际商业机器公司 用于管理页替换的方法和系统
CN104090847A (zh) * 2014-06-25 2014-10-08 华中科技大学 一种固态存储设备的地址分配方法
CN104769557A (zh) * 2012-11-09 2015-07-08 高通股份有限公司 经由页访问计数的处理器存储器优化
CN106293521A (zh) * 2016-08-02 2017-01-04 华中科技大学 一种映射粒度自适应的闪存转换层管理方法
CN106326133A (zh) * 2015-06-29 2017-01-11 华为技术有限公司 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
CN106547492A (zh) * 2016-12-08 2017-03-29 北京得瑞领新科技有限公司 一种nand闪存设备的操作指令调度方法及装置
US20170212708A1 (en) * 2016-01-25 2017-07-27 Samsung Electronics Co., Ltd. Dynamic garbage collection p/e policies for redundant storage blocks and distributed software stacks
CN107590084A (zh) * 2017-08-22 2018-01-16 浙江万里学院 一种基于分类策略的页级缓冲区改进方法
CN107748722A (zh) * 2017-09-30 2018-03-02 华中科技大学 一种保证固态硬盘中数据持续性的自适应数据刷新方法
CN107832013A (zh) * 2017-11-03 2018-03-23 中国科学技术大学 一种管理固态硬盘映射表的方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1877548A (zh) * 2005-06-06 2006-12-13 国际商业机器公司 用于管理页替换的方法和系统
CN104769557A (zh) * 2012-11-09 2015-07-08 高通股份有限公司 经由页访问计数的处理器存储器优化
CN104090847A (zh) * 2014-06-25 2014-10-08 华中科技大学 一种固态存储设备的地址分配方法
CN106326133A (zh) * 2015-06-29 2017-01-11 华为技术有限公司 存储系统、存储管理装置、存储器、混合存储装置及存储管理方法
US20170212708A1 (en) * 2016-01-25 2017-07-27 Samsung Electronics Co., Ltd. Dynamic garbage collection p/e policies for redundant storage blocks and distributed software stacks
CN106293521A (zh) * 2016-08-02 2017-01-04 华中科技大学 一种映射粒度自适应的闪存转换层管理方法
CN106547492A (zh) * 2016-12-08 2017-03-29 北京得瑞领新科技有限公司 一种nand闪存设备的操作指令调度方法及装置
CN107590084A (zh) * 2017-08-22 2018-01-16 浙江万里学院 一种基于分类策略的页级缓冲区改进方法
CN107748722A (zh) * 2017-09-30 2018-03-02 华中科技大学 一种保证固态硬盘中数据持续性的自适应数据刷新方法
CN107832013A (zh) * 2017-11-03 2018-03-23 中国科学技术大学 一种管理固态硬盘映射表的方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888592A (zh) * 2019-05-15 2020-03-17 天津大学深圳研究院 基于延迟ssd系统智能并行资源利用的请求调度方法及系统
CN110888592B (zh) * 2019-05-15 2023-09-15 天津大学深圳研究院 基于延迟ssd系统智能并行资源利用的请求调度方法及系统
WO2022120517A1 (en) * 2020-12-07 2022-06-16 Micron Technology, Inc. Techniques to reduce write amplification
US11899938B2 (en) 2020-12-07 2024-02-13 Micron Technology, Inc. Techniques to reduce write amplification
CN112558879A (zh) * 2020-12-17 2021-03-26 南昌航空大学 一种提高固态盘内3D-flash性能的方法
CN113051196A (zh) * 2021-03-26 2021-06-29 武汉理工大学 一种基于固态硬盘层差异特征的请求调度算法
CN113051196B (zh) * 2021-03-26 2021-11-02 武汉理工大学 一种基于固态硬盘层差异特征的请求调度算法
CN114840149A (zh) * 2022-07-06 2022-08-02 江苏华存电子科技有限公司 一种超级闪存的时序稳定分析方法及系统
WO2024109489A1 (zh) * 2022-11-22 2024-05-30 郑州云海信息技术有限公司 一种固态硬盘及其数据写方法、装置、主机和存储介质
CN117234962A (zh) * 2023-11-10 2023-12-15 成都佰维存储科技有限公司 空间回收方法、装置、可读存储介质及电子设备
CN117234962B (zh) * 2023-11-10 2024-03-26 成都佰维存储科技有限公司 空间回收方法、装置、可读存储介质及电子设备

Also Published As

Publication number Publication date
CN108829346B (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
CN108829346A (zh) 一种适应闪存页差异的固态硬盘的用户写请求处理方法
KR101486987B1 (ko) 불휘발성 메모리를 포함하는 반도체 메모리 장치 및 불휘발성 메모리를 위한 커맨드 스케줄링 방법
US8886990B2 (en) Block management schemes in hybrid SLC/MLC memory
US8832353B2 (en) Host stop-transmission handling
US8626996B2 (en) Solid state memory (SSM), computer system including an SSM, and method of operating an SSM
CN101639808B (zh) 非易失性存储设备中的数据管理方法及非易失性存储系统
JP5418808B2 (ja) 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置
US10466908B2 (en) Memory system that buffers data before writing to nonvolatile memory
US8171239B2 (en) Storage management method and system using the same
EP3511814B1 (en) Storage device storing data in order based on barrier command
US20100287333A1 (en) Data storage device and related method of operation
CN106970765B (zh) 数据存储方法及装置
CN109471594B (zh) 一种mlc闪存读写方法
CN106873912A (zh) Tlc芯片固态硬盘的动态分区存储方法及装置、系统
US9990280B2 (en) Methods for reading data from a storage unit of a flash memory and apparatuses using the same
CN110537172B (zh) 混合存储器模块
CN114185492A (zh) 一种基于强化学习的固态硬盘垃圾回收算法
US9977732B1 (en) Selective nonvolatile data caching based on estimated resource usage
CN116795735B (zh) 固态硬盘空间分配方法、装置、介质及系统
CN116450036A (zh) 一种面向nand闪存存储器的数据分离放置方法
US11853565B2 (en) Support higher number of active zones in ZNS SSD
US20230075329A1 (en) Super Block Allocation Across Super Device In ZNS SSD
CN115827511A (zh) 设置缓存的方法以及装置
KR101027687B1 (ko) 라이트 동작을 제어하는 반도체 스토리지 시스템 및 그 제어 방법
US11640254B2 (en) Controlled imbalance in super block allocation in ZNS SSD

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