CN113986773A - 基于固态硬盘的写放大优化方法、装置及计算机设备 - Google Patents
基于固态硬盘的写放大优化方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN113986773A CN113986773A CN202111356137.7A CN202111356137A CN113986773A CN 113986773 A CN113986773 A CN 113986773A CN 202111356137 A CN202111356137 A CN 202111356137A CN 113986773 A CN113986773 A CN 113986773A
- Authority
- CN
- China
- Prior art keywords
- write
- host
- solid state
- state disk
- data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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
- G06F3/064—Management of blocks
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)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
本申请涉及一种基于固态硬盘的写放大优化方法、装置、计算机设备及存储介质,其中该方法包括:获取基于固态硬盘的写放大优化请求;根据所述写放大优化请求向主机申请一定的内存空间用作HMB缓冲区,所述HMB缓冲区用于动态改变写入行为;判断所述固态硬盘是否成功申请到主机端HMB缓冲区;若所述固态硬盘成功申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先存放于所述HMB缓冲区中,待满足并发读写颗粒度需求后再写入NAND;若所述固态硬盘无法申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先写入较小编程单元物理块,再批量转移到较大编程单元物理块。本发明提出的方案有效降低了写放大,提升了SSD的可靠性。
Description
技术领域
本发明涉及存储系统技术领域,特别是涉及一种基于固态硬盘的写放大优化方法、装置、计算机设备及存储介质。
背景技术
随着固态硬盘技术的发展,SSD(Solid State Disk,固态硬盘)已经被广泛应用于各种场合,在PC市场已经逐步替代传统的HDD(Hard Disk Drive,硬盘驱动器),从可靠性和性能方面为用户提供较好的体验。
目前,随着主机接口以及NAND接口速度的提升,SSD性能要求越高。一般而言,传统SSD上均有一个较大的DRAM空间(如128GB SSD上有128MB的DRAM)用来存储映射表以及读写缓冲区。对于主机写入的数据,可以暂时存放于写缓冲区中,等待凑齐足够的数据再写入到NAND上。由于成本/功耗等方面的考虑,降低DRAM容量甚至彻底移除已经成为产品必须具备的特性。在这种场景下,SSD内部只有有限的Memory(如10MB左右),无法持有较大的写缓冲区,故而主机写入的数据需要实时写入到NAND上。而NAND的编程是有一定的颗粒度的,以TLC为例一般为48KB,以SLC为例一般为16KB。如果主机断断续续写入小颗粒度的数据且需要写入TLC,若凑不齐NAND的编程单元,会导致较大的浪费,也使得写放大(NAND实际写入的数据量除以主机需要写入的数据量)较大,进而导致磁盘寿命下降。
发明内容
基于此,有必要针对上述技术问题,提供一种基于固态硬盘的写放大优化方法、装置、计算机设备及存储介质。
一种基于固态硬盘的写放大优化方法,所述方法包括:
获取基于固态硬盘的写放大优化请求;
根据所述写放大优化请求向主机申请一定的内存空间用作HMB缓冲区,所述HMB缓冲区用于动态改变写入行为;
判断所述固态硬盘是否成功申请到主机端HMB缓冲区;
若所述固态硬盘成功申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先存放于所述HMB缓冲区中,待满足并发读写颗粒度需求后再写入NAND;
若所述固态硬盘无法申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先写入较小编程单元物理块,再批量转移到较大编程单元物理块。
在其中一个实施例中,所述若所述固态硬盘成功申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先存放于所述HMB缓冲区中,待满足并发读写颗粒度需求后再写入NAND的步骤还包括:
所述固态硬盘将所述HMB缓冲区映射到本地的读写缓冲区,待缓冲足够的数据再进行数据写入。
在其中一个实施例中,所述若所述固态硬盘无法申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先写入较小编程单元物理块,再批量转移到较大编程单元物理块的步骤还包括:
在所述固态硬盘内部保留小部分区域作为用户数据区的较小编程单元,在所述固态硬盘内部保留相对大的区域作为用户数据区的较大编程单元;
当主机写入少量数据时,优先将数据写入到对应用户数据区的较小编程单元中。
在其中一个实施例中,所述方法还包括:
当主机闲置时,通过后台将用户数据区的较小编程单元中的数据迁移到用户数据区的较大编程单元中以满足后续的主机小颗粒数据写入。
一种基于固态硬盘的写放大优化装置,所述装置包括:
获取模块,所述获取模块用于获取基于固态硬盘的写放大优化请求;
申请模块,所述申请模块用于根据所述写放大优化请求向主机申请一定的内存空间用作HMB缓冲区,所述HMB缓冲区用于动态改变写入行为;
判断模块,所述判断模块用于判断所述固态硬盘是否成功申请到主机端HMB缓冲区;
第一处理模块,所述第一处理模块用于若所述固态硬盘成功申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先存放于所述HMB缓冲区中,待满足并发读写颗粒度需求后再写入NAND;
第二处理模块,所述第二处理模块用于若所述固态硬盘无法申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先写入较小编程单元物理块,再批量转移到较大编程单元物理块。
在其中一个实施例中,所述第一处理模块还用于:
所述固态硬盘将所述HMB缓冲区映射到本地的读写缓冲区,待缓冲足够的数据再进行数据写入。
在其中一个实施例中,所述第二处理模块还用于:
在所述固态硬盘内部保留小部分区域作为用户数据区的较小编程单元,在所述固态硬盘内部保留相对大的区域作为用户数据区的较大编程单元;
当主机写入少量数据时,优先将数据写入到对应用户数据区的较小编程单元中。
在其中一个实施例中,所述装置还包括数据迁移模块,所述数据迁移模块用于:
当主机闲置时,通过后台将用户数据区的较小编程单元中的数据迁移到用户数据区的较大编程单元中以满足后续的主机小颗粒数据写入。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
上述基于固态硬盘的写放大优化方法、装置、计算机设备及存储介质通过获取基于固态硬盘的写放大优化请求;根据所述写放大优化请求向主机申请一定的内存空间用作HMB缓冲区,所述HMB缓冲区用于动态改变写入行为;判断所述固态硬盘是否成功申请到主机端HMB缓冲区;若所述固态硬盘成功申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先存放于所述HMB缓冲区中,待满足并发读写颗粒度需求后再写入NAND;若所述固态硬盘无法申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先写入较小编程单元物理块,再批量转移到较大编程单元物理块。本发明提出的方案根据固态硬盘支持的HMB(主机端内存借用)的特性,动态选择编程策略,从而有效降低了写放大,提升了SSD的可靠性。
附图说明
图1为一个典型的NAND组成的结构示意图;
图2为一个典型的SSD内部写入流程的示意图;
图3为一个实施例中基于固态硬盘的写放大优化方法的流程示意图;
图4为另一个实施例中基于固态硬盘的写放大优化方法的流程示意图;
图5为本发明中所引入的写入方法的示意图;
图6为本发明中对应的主机数据写入的流程示意图;
图7为一个实施例中基于固态硬盘的写放大优化装置的结构框图;
图8为另一个实施例中基于固态硬盘的写放大优化装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
如图1所示,典型的NAND组成如下,包括:DIE,可独立并发操作的单元;Block,可独立擦除的单元,其内各个物理位置的数据写入后在下一次写之前必须要将整个Block擦除;Page,读写单元,同一物理块内的Page必需按顺序编程:0->1->2->3…。
现有的SSD内部物理块一般有俩种模式,一种为较小编程单元物理块(如SLC),一种为较大编程单元物理块(如TLC)。前者的Page大小较小,而后者Page大小较大。为便于说明,本文中采用较小编程单元物理块(如SLC)的Page为16KB,较大编程单元物理块(如TLC)的Page为48KB的示例进行说明。
如图2所示,为一个典型的SSD内部写入流程,包括:主机提交写命令到SSD的前端模块;SSD前端模块将命令分割成映射单元(LPA,典型如4KB);提交操作请求到缓冲区管理模块,分配写缓冲区;根据所分配的缓冲区,建立与主机的数据传输,且在完成数据传输后告知主机命令完成;映射表管理模块负责根据逻辑地址分配对应的物理地址;映射表管理模块,根据访问的逻辑地址(LPA)以及分配的物理地址(PPA),更新内存中的映射表(L2P);提交操作请求到后端模块,后端模块根据物理地址发起对NAND写请求;等待NAND写操作请求完成。
在此过程中,SSD内部一般会在写缓冲区中积累足够的数据,满足对应的Page大小时,才进行数据的写入(如16KB或者48KB)。而在DRAMLess的SSD中,由于盘内内存很小,当数据不足时(例如主机写入4KB数据,且当前SSD内部需要写入到较大编程单元物理块(如TLC)的48K Page中则需要填充44KB的无效数据,此时会浪费NAND的使用空间,导致写放大变大,进而影响SSD的使用寿命。
基于此,本发明提出一种DRAMLess写放大优化方法,根据DRAMLess SSD支持HMB(主机端内存借用)的特性,动态选择编程策略,从而有效降低了写放大,提升了SSD的可靠性。
在一个实施例中,如图3所示,提供了一种基于固态硬盘的写放大优化方法,该方法包括:
步骤302,获取基于固态硬盘的写放大优化请求;
步骤304,根据写放大优化请求向主机申请一定的内存空间用作HMB缓冲区,HMB缓冲区用于动态改变写入行为;
步骤306,判断固态硬盘是否成功申请到主机端HMB缓冲区;
步骤308,若固态硬盘成功申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先存放于HMB缓冲区中,待满足并发读写颗粒度需求后再写入NAND;
步骤310,若固态硬盘无法申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先写入较小编程单元物理块,再批量转移到较大编程单元物理块。
在本实施例中,提供了一种基于固态硬盘的写放大优化方法,该方法的具体实现过程如下:
首先,获取基于固态硬盘的写放大优化请求。接着,根据写放大优化请求向主机申请一定的内存空间用作HMB缓冲区,HMB缓冲区用于动态改变写入行为。具体地,由于现有的DRAMLess一般支持HMB(主机缓冲区)特性,可以向主机申请一定的内存空间。
接着,判断固态硬盘是否成功申请到主机端HMB缓冲区。若SSD申请到主机端HMBBuffer,则将主机小颗粒度的写数据先存放于HMB Buffer中,满足并发读/写入颗粒度需求后再写入NAND。若SSD无法申请到主机端HMB Buffer,则将主机小颗粒度的写数据先写入较小编程单元物理块(如SLC),然后再批量转移到较大编程单元物理块(如TLC)。通过根据不同场景对SSD内部的数据写入进行调配,满足了写性能的同时也大大降低了写放大,提升了盘的可靠性。
在本实施例中,通过获取基于固态硬盘的写放大优化请求;根据所述写放大优化请求向主机申请一定的内存空间用作HMB缓冲区,所述HMB缓冲区用于动态改变写入行为;判断所述固态硬盘是否成功申请到主机端HMB缓冲区;若所述固态硬盘成功申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先存放于所述HMB缓冲区中,待满足并发读写颗粒度需求后再写入NAND;若所述固态硬盘无法申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先写入较小编程单元物理块,再批量转移到较大编程单元物理块。本实施例提出的方案根据固态硬盘支持的HMB的特性,动态选择编程策略,从而有效降低了写放大,提升了SSD的可靠性。
在一个实施例中,如图4所示,提供了一种基于固态硬盘的写放大优化方法,该方法还包括:
步骤402,若固态硬盘成功申请到主机端HMB缓冲区,将HMB缓冲区映射到本地的读写缓冲区,待缓冲足够的数据再进行数据写入;
步骤404,若固态硬盘无法申请到主机端HMB缓冲区,在固态硬盘内部保留小部分区域作为用户数据区的较小编程单元,在固态硬盘内部保留相对大的区域作为用户数据区的较大编程单元;
步骤406,当主机写入少量数据时,优先将数据写入到对应用户数据区的较小编程单元中;
步骤408,当主机闲置时,通过后台将用户数据区的较小编程单元中的数据迁移到用户数据区的较大编程单元中以满足后续的主机小颗粒数据写入。
在本实施例中,参考图5所示,提供了完整实现基于固态硬盘的写放大优化的方法,该方法具体的执行步骤如下:
现有的DRAMLESS SSD盘内基本无写缓冲区,故而无法本次积累足够的数据,满足对应NAND Page的大小。DRAMLess一般支持HMB(主机缓冲区)特性,可以向主机申请一定的内存空间。
在成功申请到HMB的场景下,SSD可以将其映射到本地的读写缓冲区,如同带DRAM的SSD一样,缓冲足够的数据再进行数据写入。
而在无法成功申请HMB的场景下,则无法通过借用主机缓冲来积累数据;此时,我们在SSD内部保留一小部分区域(用户数据区-较小编程单元,如16KB)当主机写入少量数据时,我们优先写入到对应的“用户数据区-较小编程单元”,由于其Page相对“用户数据区-较大编程单元”的48KB要小,所以在主机数据不足时写放大会较小。
进一步地,当主机闲置时,可以后台将“用户数据区-较小编程单元”中的数据迁移到“用户数据区-较大编程单元”,以满足后续的主机小颗粒数据写入。
通过上述策略,在DRAMLess SSD上,根据HMB是否成功分配缓冲区来动态切换SSD内部数据的写入策略,大大地降低了主机少量数据写入场景下的Page所需数据不足导致的写放大问题,进而提升了SSD寿命。
参考图6所示,为本发明对应的主机数据写入流程图,其具体地实现方式如下:
6.1)主机写入数据。
6.2)当前是否写入“较大编程单元物理块”。
6.2.1)若否,不做特殊处理,写入NAND。
6.2.2)若是,则到6.3。
6.3)主机数据大小是否满足“较大编程单元物理块”所需的Page大小。
6.3.1)若是,不做特殊处理,写入NAND。
6.3.2)若否,则到6.4。
6.4)检查HMB是否使能,主机分配了对应的缓冲区。
6.4.1)若是,使用主机端分配的HMB缓冲区,凑满所需Page大小的数据;然后再写入NAND。
6.4.2)若否,则到6.5。
6.5)切换NAND写入点到“较小编程单元物理块”(对应Page大小为16KB,而非48KB)。
6.6)写入主机数据。
6.7)主机闲置时,将数据从已经写满的“较小编程单元物理块”移动到“较大编程单元物理块”。
应该理解的是,虽然图1-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种基于固态硬盘的写放大优化装置700,该装置包括:
获取模块701,所述获取模块用于获取基于固态硬盘的写放大优化请求;
申请模块702,所述申请模块用于根据所述写放大优化请求向主机申请一定的内存空间用作HMB缓冲区,所述HMB缓冲区用于动态改变写入行为;
判断模块703,所述判断模块用于判断所述固态硬盘是否成功申请到主机端HMB缓冲区;
第一处理模块704,所述第一处理模块用于若所述固态硬盘成功申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先存放于所述HMB缓冲区中,待满足并发读写颗粒度需求后再写入NAND;
第二处理模块705,所述第二处理模块用于若所述固态硬盘无法申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先写入较小编程单元物理块,再批量转移到较大编程单元物理块。
在一个实施例中,第一处理模块704还用于:
所述固态硬盘将所述HMB缓冲区映射到本地的读写缓冲区,待缓冲足够的数据再进行数据写入。
在一个实施例中,第二处理模块705还用于:
在所述固态硬盘内部保留小部分区域作为用户数据区的较小编程单元,在所述固态硬盘内部保留相对大的区域作为用户数据区的较大编程单元;
当主机写入少量数据时,优先将数据写入到对应用户数据区的较小编程单元中。
在一个实施例中,如图8所示,提供了一种基于固态硬盘的写放大优化装置700,该装置还包括数据迁移模块706,用于:
当主机闲置时,通过后台将用户数据区的较小编程单元中的数据迁移到用户数据区的较大编程单元中以满足后续的主机小颗粒数据写入。
关于基于固态硬盘的写放大优化装置的具体限定可以参见上文中对于基于固态硬盘的写放大优化方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图9所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于固态硬盘的写放大优化方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于固态硬盘的写放大优化方法,其特征在于,所述方法包括:
获取基于固态硬盘的写放大优化请求;
根据所述写放大优化请求向主机申请一定的内存空间用作HMB缓冲区,所述HMB缓冲区用于动态改变写入行为;
判断所述固态硬盘是否成功申请到主机端HMB缓冲区;
若所述固态硬盘成功申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先存放于所述HMB缓冲区中,待满足并发读写颗粒度需求后再写入NAND;
若所述固态硬盘无法申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先写入较小编程单元物理块,再批量转移到较大编程单元物理块。
2.根据权利要求1所述的基于固态硬盘的写放大优化方法,其特征在于,所述若所述固态硬盘成功申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先存放于所述HMB缓冲区中,待满足并发读写颗粒度需求后再写入NAND的步骤还包括:
所述固态硬盘将所述HMB缓冲区映射到本地的读写缓冲区,待缓冲足够的数据再进行数据写入。
3.根据权利要求2所述的基于固态硬盘的写放大优化方法,其特征在于,所述若所述固态硬盘无法申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先写入较小编程单元物理块,再批量转移到较大编程单元物理块的步骤还包括:
在所述固态硬盘内部保留小部分区域作为用户数据区的较小编程单元,在所述固态硬盘内部保留相对大的区域作为用户数据区的较大编程单元;
当主机写入少量数据时,优先将数据写入到对应用户数据区的较小编程单元中。
4.根据权利要求3所述的基于固态硬盘的写放大优化方法,其特征在于,所述方法还包括:
当主机闲置时,通过后台将用户数据区的较小编程单元中的数据迁移到用户数据区的较大编程单元中以满足后续的主机小颗粒数据写入。
5.一种基于固态硬盘的写放大优化装置,其特征在于,所述装置包括:
获取模块,所述获取模块用于获取基于固态硬盘的写放大优化请求;
申请模块,所述申请模块用于根据所述写放大优化请求向主机申请一定的内存空间用作HMB缓冲区,所述HMB缓冲区用于动态改变写入行为;
判断模块,所述判断模块用于判断所述固态硬盘是否成功申请到主机端HMB缓冲区;
第一处理模块,所述第一处理模块用于若所述固态硬盘成功申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先存放于所述HMB缓冲区中,待满足并发读写颗粒度需求后再写入NAND;
第二处理模块,所述第二处理模块用于若所述固态硬盘无法申请到主机端HMB缓冲区,则将主机小颗粒度的写数据先写入较小编程单元物理块,再批量转移到较大编程单元物理块。
6.根据权利要求5所述的基于固态硬盘的写放大优化装置,其特征在于,所述第一处理模块还用于:
所述固态硬盘将所述HMB缓冲区映射到本地的读写缓冲区,待缓冲足够的数据再进行数据写入。
7.根据权利要求6所述的基于固态硬盘的写放大优化装置,其特征在于,所述第二处理模块还用于:
在所述固态硬盘内部保留小部分区域作为用户数据区的较小编程单元,在所述固态硬盘内部保留相对大的区域作为用户数据区的较大编程单元;
当主机写入少量数据时,优先将数据写入到对应用户数据区的较小编程单元中。
8.根据权利要求7所述的基于固态硬盘的写放大优化装置,其特征在于,所述装置还包括数据迁移模块,所述数据迁移模块用于:
当主机闲置时,通过后台将用户数据区的较小编程单元中的数据迁移到用户数据区的较大编程单元中以满足后续的主机小颗粒数据写入。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111356137.7A CN113986773A (zh) | 2021-11-16 | 2021-11-16 | 基于固态硬盘的写放大优化方法、装置及计算机设备 |
PCT/CN2022/117584 WO2023087861A1 (zh) | 2021-11-16 | 2022-09-07 | 基于固态硬盘的写放大优化方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111356137.7A CN113986773A (zh) | 2021-11-16 | 2021-11-16 | 基于固态硬盘的写放大优化方法、装置及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113986773A true CN113986773A (zh) | 2022-01-28 |
Family
ID=79748825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111356137.7A Pending CN113986773A (zh) | 2021-11-16 | 2021-11-16 | 基于固态硬盘的写放大优化方法、装置及计算机设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113986773A (zh) |
WO (1) | WO2023087861A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023087861A1 (zh) * | 2021-11-16 | 2023-05-25 | 深圳忆联信息系统有限公司 | 基于固态硬盘的写放大优化方法、装置及计算机设备 |
CN117472294A (zh) * | 2023-12-28 | 2024-01-30 | 合肥康芯威存储技术有限公司 | 一种存储器及其数据处理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10642496B2 (en) * | 2016-04-01 | 2020-05-05 | Sandisk Technologies Inc. | Out of order read transfer with host memory buffer |
KR20180043451A (ko) * | 2016-10-19 | 2018-04-30 | 삼성전자주식회사 | 컴퓨팅 시스템 및 그것의 동작 방법 |
CN110955384B (zh) * | 2018-09-26 | 2023-04-18 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
US11507309B2 (en) * | 2020-05-04 | 2022-11-22 | Western Digital Technologies, Inc. | Storage system and method for using memory allocated in a host for read data as a host memory buffer |
CN113986773A (zh) * | 2021-11-16 | 2022-01-28 | 深圳忆联信息系统有限公司 | 基于固态硬盘的写放大优化方法、装置及计算机设备 |
-
2021
- 2021-11-16 CN CN202111356137.7A patent/CN113986773A/zh active Pending
-
2022
- 2022-09-07 WO PCT/CN2022/117584 patent/WO2023087861A1/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023087861A1 (zh) * | 2021-11-16 | 2023-05-25 | 深圳忆联信息系统有限公司 | 基于固态硬盘的写放大优化方法、装置及计算机设备 |
CN117472294A (zh) * | 2023-12-28 | 2024-01-30 | 合肥康芯威存储技术有限公司 | 一种存储器及其数据处理方法 |
CN117472294B (zh) * | 2023-12-28 | 2024-04-09 | 合肥康芯威存储技术有限公司 | 一种存储器及其数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2023087861A1 (zh) | 2023-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11768632B2 (en) | Memory system and method of controlling nonvolatile memory | |
EP3686728A1 (en) | Data writing method and storage device | |
US10572391B2 (en) | Methods and apparatus for implementing a logical to physical address mapping in a solid state drive | |
CN112765006B (zh) | 固态硬盘日志生成方法及其固态硬盘 | |
US8909895B2 (en) | Memory apparatus | |
CN105718530B (zh) | 文件存储系统及其文件存储控制方法 | |
US11237756B2 (en) | System and method of writing to nonvolatile memory using write buffers | |
JP2019020788A (ja) | メモリシステムおよび制御方法 | |
US10360155B1 (en) | Multi-tier memory management | |
US20170003911A1 (en) | Information processing device | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US20210026763A1 (en) | Storage device for improving journal replay, operating method thereof, and electronic device including the storage device | |
CN111610930A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
CN115390746A (zh) | 主机设备、存储设备以及电子设备 | |
CN115756327A (zh) | 一种固态硬盘及其数据写方法、装置、主机和存储介质 | |
CN113590505B (zh) | 地址映射方法、固态硬盘控制器及固态硬盘 | |
CN116795735B (zh) | 固态硬盘空间分配方法、装置、介质及系统 | |
TWI724550B (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN108536619B (zh) | 快速恢复ftl表的方法与装置 | |
US20200183830A1 (en) | Method for gabage collecting for non-volatile memory | |
CN110888591A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
CN110609817A (zh) | 一种防止文件碎片化的文件存储系统 | |
EP4220414B1 (en) | Storage controller managing different types of blocks, operating method thereof, and operating method of storage device including the same |
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 |