CN117785049A - 异常掉电下Write Zero命令的优化处理方法和装置 - Google Patents
异常掉电下Write Zero命令的优化处理方法和装置 Download PDFInfo
- Publication number
- CN117785049A CN117785049A CN202311818889.XA CN202311818889A CN117785049A CN 117785049 A CN117785049 A CN 117785049A CN 202311818889 A CN202311818889 A CN 202311818889A CN 117785049 A CN117785049 A CN 117785049A
- Authority
- CN
- China
- Prior art keywords
- command
- write zero
- slot
- cmd
- buff
- 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
- 230000002159 abnormal effect Effects 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000003672 processing method Methods 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 14
- 230000003139 buffering effect Effects 0.000 claims description 3
- 238000005457 optimization Methods 0.000 abstract description 18
- 238000010586 diagram Methods 0.000 description 9
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及一种异常掉电下Write Zero命令的优化处理方法、装置、计算机设备和存储介质,其中该方法包括:SSD获取主机下发的Write Zero命令;将多个Write Zero命令的command slot id缓存在固件前端的cmd slot id buff中;待所述固件前端缓存的Write Zero命令的数量达到预设的数量后,触发发送vu trim命令;待所述vu trim命令执行完成后,根据缓存在cmd slot id buff中的command slot id逐个回复CQ Entry。本发明解决了异常掉电下导致Host与SSD相关LBA Range中的数据将不一致的问题。
Description
技术领域
本发明涉及固态硬盘技术领域,特别是涉及一种异常掉电下Write Zero命令的优化处理方法、装置、计算机设备和存储介质。
背景技术
SSD(固态硬盘)已经被广泛应用于各种场合,目前在PC市场,已经逐步替代传统的HDD,从可靠性和性能方面为用户提供较好的体验。目前,市场上大部分SSD接口都是NVMe接口。其中,Write Zero命令是NVMe协议的标准命令之一。Write Zero命令因不需要Host端分配专用数据内存而成为Host格式化部分SSD Nand时的首选。
为了提高Write Zero命令的执行效率,SSD固件开发过程中一般会采用缓存多个Write Zero命令中的LBA Range,将多个Write Zero命令合并成一个vu trim命令发送至FTL层执行的方法。但是上述方法会提前回复Write Zero命令的Complete Queue Entry(CQ条目),在遇到异常掉电的场景时,可能会导致Host与SSD数据不一致的风险。
发明内容
基于此,有必要针对上述技术问题,提供一种异常掉电下Write Zero命令的优化处理方法、装置、计算机设备和存储介质。
一种异常掉电下Write Zero命令的优化处理方法,所述方法包括:
SSD获取主机下发的Write Zero命令;
将多个Write Zero命令的command slot id缓存在固件前端的cmd slot id buff中;
待所述固件前端缓存的Write Zero命令的数量达到预设的数量后,触发发送vutrim命令;
待所述vu trim命令执行完成后,根据缓存在cmd slot id buff中的commandslot id逐个回复CQ Entry。
在其中一个实施例中,所述将多个Write Zero命令的command slot id缓存在固件前端的cmd slot id buff中的步骤还包括:
将所述Write Zero命令的cmd slot id保存到cmd slot id buff中,此时并不回复CQ Entry。
在其中一个实施例中,所述将所述Write Zero命令的cmd slot id保存到cmdslot id buff中,此时并不回复CQ Entry的步骤还包括:
主机只有收到Write Zero命令的CQ Entry才会判定所述命令执行成功。
在其中一个实施例中,所述SSD获取主机下发的Write Zero命令的步骤还包括:
将所述Write Zero命令携带的LBA Range取出并保存到lba range buff中。
一种异常掉电下Write Zero命令的优化处理装置,所述装置包括:
获取模块,所述获取模块用于SSD获取主机下发的Write Zero命令;
缓存模块,所述缓存模块用于将多个Write Zero命令的command slot id缓存在固件前端的cmd slot id buff中;
命令触发模块,所述命令触发模块用于待所述固件前端缓存的Write Zero命令的数量达到预设的数量后,触发发送vu trim命令;
回复模块,所述回复模块用于待所述vu trim命令执行完成后,根据缓存在cmdslot id buff中的command slot id逐个回复CQ Entry。
在其中一个实施例中,所述缓存模块还用于:
将所述Write Zero命令的cmd slot id保存到cmd slot id buff中,此时并不回复CQ Entry。
在其中一个实施例中,所述缓存模块还用于:
主机只有收到Write Zero命令的CQ Entry才会判定所述命令执行成功。
在其中一个实施例中,所述装置还包括:
保存模块,所述保存模块用于将所述Write Zero命令携带的LBA Range取出并保存到lba range buff中。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
上述异常掉电下Write Zero命令的优化处理方法、装置、计算机设备和存储介质通过将多个Write Zero命令的command slot id缓存在固件前端的cmd slot id buff中;待所述固件前端缓存的Write Zero命令的数量达到预设的数量后,触发发送vu trim命令;待所述vu trim命令执行完成后,根据缓存在cmd slot id buff中的command slot id逐个回复CQ Entry。本发明解决了因缓存多个Write Zero命令过程中遇到异常掉电而产生的Host与SSD数据不一致的问题,提高了Write Zero命令处理的可靠性。
附图说明
图1为传统技术中Write Zero命令一般优化方案的示意图;
图2为一个实施例中异常掉电下Write Zero命令的优化处理方法的流程示意图;
图3为另一个实施例中异常掉电下Write Zero命令的优化处理方法的流程示意图;
图4为一个实施例中异常掉电下Write Zero命令的优化处理的示意图;
图5为一个实施例中异常掉电下Write Zero命令的优化处理装置的结构框图;
图6为另一个实施例中异常掉电下Write Zero命令的优化处理装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参考图1所示的传统技术中Write Zero命令一般优化方案的示意图,传统处理方案在收到Write Zero命令后,将其携带的LBARange取下来,缓存在lba range data buff中。随后立即回复CQ Entry。等超时或缓存一定数量Write Zero命令后,将lba range databuff通过vu trim发给FTL/NFC执行。显然,上述方案如果在执行完成之前遇到异常掉电,则Host与SSD相关LBA Range中的数据将会不一致。
基于此,本发明提供一种异常掉电下Write Zero命令的优化处理方法,旨在可以解决异常掉电下导致Host与SSD相关LBA Range中的数据将不一致的问题。
在一个实施例中,如图2所示,提供了一种异常掉电下Write Zero命令的优化处理方法,该方法包括:
步骤202,SSD获取主机下发的Write Zero命令;
步骤204,将多个Write Zero命令的command slot id缓存在固件前端的cmd slotid buff中;
步骤206,待所述固件前端缓存的Write Zero命令的数量达到预设的数量后,触发发送vu trim命令;
步骤208,待所述vu trim命令执行完成后,根据缓存在cmd slot id buff中的command slot id逐个回复CQ Entry。
在本实施例中,提供了一种异常掉电下Write Zero命令的优化处理方法,该方法将多个Write Zero命令的command slot id缓存在固件前端,等待vu trim命令完成后,再根据缓存的command slot id去cmmand slot中读取对应的Write Zero命令的SubmissionQueue Entry,逐个回复Complete Queue Entry,以解决因缓存多个write zero命令过程中遇到异常掉电而产生的Host与SSD数据不一致的问题。
首先,SSD获取主机下发的Write Zero命令。
在一个实施例中,所述SSD获取主机下发的Write Zero命令的步骤还包括:将所述Write Zero命令携带的LBA Range取出并保存到lba range buff中。
具体地,当SSD收到一个Write Zero命令时,将其携带的LBA Range取下来,保存到lba range buff中。将多个Write Zero命令的command slot id缓存在固件前端的cmdslot id buff中,同时将该Write Zero命令的cmd slot id保存到cmd slot id buff中,此时不回复CQ Entry。
当前端缓存的Write Zero命令达到规定的数量后,触发发送vu trim命令给FTL/NFC。等vu trim命令执行完成后,前端根据保存在cmd slot id buff中cmd slot id,逐个cmd回复CQ Entry。
在上述实施例中,通过将多个Write Zero命令的command slot id缓存在固件前端的cmd slot id buff中;待所述固件前端缓存的Write Zero命令的数量达到预设的数量后,触发发送vu trim命令;待所述vu trim命令执行完成后,根据缓存在cmd slot id buff中的command slot id逐个回复CQ Entry。本方案解决了因缓存多个Write Zero命令过程中遇到异常掉电而产生的Host与SSD数据不一致的问题,提高了Write Zero命令处理的可靠性。
在一个实施例中,如图3所示,提供了一种异常掉电下Write Zero命令的优化处理方法,该方法还包括:
步骤302,将所述Write Zero命令的cmd slot id保存到cmd slot id buff中,此时并不回复CQ Entry;
步骤304,主机只有收到Write Zero命令的CQ Entry才会判定所述命令执行成功。
具体地,参考图4所示的异常掉电下Write Zero命令的优化处理的示意图,包括如下步骤:
步骤4.1、当SSD收到一个Write Zero命令时,将其携带的LBA Range取下来,保存到lba range buff中。
步骤4.2、同时将该Write Zero命令的cmd slot id保存到cmd slot id buff中。此时不回复CQ Entry。Host只有收到Write Zero命令的CQ Entry,才会认为该cmd执行成功。即该Write Zero命令中携带的LBA Range被写0。
步骤4.3、前端缓存的Write Zero命令达到规定的数量(例如256个)后,触发发送vu trim命令给FTL/NFC。
步骤4.4、等vu trim命令执行完成后,前端根据保存在cmd slot id buff中cmdslot id,逐个cmd回复CQ Entry。
在本实施例中,将多个Write Zero命令的command slot id缓存在固件前端,等待vu trim命令完成后,再根据缓存的command slot id去cmmand slot中读取对应的WriteZero命令的Submission Queue Entry,逐个回复Complete Queue Entry,以解决因缓存多个Write Zero命令过程中遇到异常掉电而产生的Host与SSD数据不一致的问题
应该理解的是,虽然图1-图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种异常掉电下Write Zero命令的优化处理装置500,该装置包括:
获取模块501,所述获取模块用于SSD获取主机下发的Write Zero命令;
缓存模块502,所述缓存模块用于将多个Write Zero命令的command slot id缓存在固件前端的cmd slot id buff中;
命令触发模块503,所述命令触发模块用于待所述固件前端缓存的Write Zero命令的数量达到预设的数量后,触发发送vu trim命令;
回复模块504,所述回复模块用于待所述vu trim命令执行完成后,根据缓存在cmdslot id buff中的command slot id逐个回复CQ Entry。
在一个实施例中,缓存模块502还用于:
将所述Write Zero命令的cmd slot id保存到cmd slot id buff中,此时并不回复CQ Entry。
在一个实施例中,缓存模块502还用于:
主机只有收到Write Zero命令的CQ Entry才会判定所述命令执行成功。
在一个实施例中,如图6所示,提供了一种异常掉电下Write Zero命令的优化处理装置500,该装置还包括:
保存模块505,所述保存模块用于将所述Write Zero命令携带的LBA Range取出并保存到lba range buff中。
关于异常掉电下Write Zero命令的优化处理装置的具体限定可以参见上文中对于异常掉电下Write Zero命令的优化处理方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图7所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种异常掉电下Write Zero命令的优化处理方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一种非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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.一种异常掉电下Write Zero命令的优化处理方法,所述方法包括:
SSD获取主机下发的Write Zero命令;
将多个Write Zero命令的command slot id缓存在固件前端的cmd slot id buff中;
待所述固件前端缓存的Write Zero命令的数量达到预设的数量后,触发发送vu trim命令;
待所述vu trim命令执行完成后,根据缓存在cmd slot id buff中的command slot id逐个回复CQ Entry。
2.根据权利要求1所述的异常掉电下Write Zero命令的优化处理方法,其特征在于,所述将多个Write Zero命令的command slot id缓存在固件前端的cmd slot id buff中的步骤还包括:
将所述Write Zero命令的cmd slot id保存到cmd slot id buff中,此时并不回复CQEntry。
3.根据权利要求2所述的异常掉电下Write Zero命令的优化处理方法,其特征在于,所述将所述Write Zero命令的cmd slot id保存到cmd slot id buff中,此时并不回复CQEntry的步骤还包括:
主机只有收到Write Zero命令的CQ Entry才会判定所述命令执行成功。
4.根据权利要求1-3任一项所述的异常掉电下Write Zero命令的优化处理方法,其特征在于,所述SSD获取主机下发的Write Zero命令的步骤还包括:
将所述Write Zero命令携带的LBA Range取出并保存到lba range buff中。
5.一种异常掉电下Write Zero命令的优化处理装置,其特征在于,所述装置包括:
获取模块,所述获取模块用于SSD获取主机下发的Write Zero命令;
缓存模块,所述缓存模块用于将多个Write Zero命令的command slot id缓存在固件前端的cmd slot id buff中;
命令触发模块,所述命令触发模块用于待所述固件前端缓存的Write Zero命令的数量达到预设的数量后,触发发送vu trim命令;
回复模块,所述回复模块用于待所述vu trim命令执行完成后,根据缓存在cmd slotid buff中的command slot id逐个回复CQ Entry。
6.根据权利要求5所述的异常掉电下Write Zero命令的优化处理装置,其特征在于,所述缓存模块还用于:
将所述Write Zero命令的cmd slot id保存到cmd slot id buff中,此时并不回复CQEntry。
7.根据权利要求6所述的异常掉电下Write Zero命令的优化处理装置,其特征在于,所述缓存模块还用于:
主机只有收到Write Zero命令的CQ Entry才会判定所述命令执行成功。
8.根据权利要求5-7任一项所述的异常掉电下Write Zero命令的优化处理装置,其特征在于,所述装置还包括:
保存模块,所述保存模块用于将所述Write Zero命令携带的LBA Range取出并保存到lba range buff中。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311818889.XA CN117785049A (zh) | 2023-12-27 | 2023-12-27 | 异常掉电下Write Zero命令的优化处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311818889.XA CN117785049A (zh) | 2023-12-27 | 2023-12-27 | 异常掉电下Write Zero命令的优化处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117785049A true CN117785049A (zh) | 2024-03-29 |
Family
ID=90381139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311818889.XA Pending CN117785049A (zh) | 2023-12-27 | 2023-12-27 | 异常掉电下Write Zero命令的优化处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117785049A (zh) |
-
2023
- 2023-12-27 CN CN202311818889.XA patent/CN117785049A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110568998B (zh) | 基于固态硬盘的Trim命令实现方法、装置和计算机设备 | |
US10152274B2 (en) | Method and apparatus for reading/writing data from/into flash memory, and user equipment | |
CN110888602A (zh) | 基于固态硬盘的读性能提升方法、装置及计算机设备 | |
US11567860B2 (en) | Memory system for updating mapping information | |
CN114253483B (zh) | 基于命令的写缓存管理方法、装置、计算机设备及存储介质 | |
US10698830B2 (en) | Obtaining data in a nonvolatile memory device through the use of descriptors | |
US10754552B2 (en) | Data storage device and operating method thereof | |
CN113094296B (zh) | Ssd读加速的实现方法、装置、计算机设备及存储介质 | |
US20200125285A1 (en) | Memory system and operating method thereof | |
CN117785049A (zh) | 异常掉电下Write Zero命令的优化处理方法和装置 | |
CN114115745B (zh) | 多Pass编程NAND的RAID优化方法、装置及计算机设备 | |
US20190163534A1 (en) | Memory system and operating method thereof | |
CN115563021A (zh) | 基于固态硬盘的重复读性能提升方法、装置和计算机设备 | |
US11467910B2 (en) | Memory system re-performing access operation and operating method thereof | |
CN114327274B (zh) | 基于固态硬盘的映射表加载检查方法、装置及计算机设备 | |
US20230305952A1 (en) | Memory system and operating method of a controller of the memory system | |
CN114047880B (zh) | 多Pass编程的NAND写入功耗优化方法、装置及计算机设备 | |
CN117055960A (zh) | SSD Write Zero命令的加速处理方法和装置 | |
CN113986126B (zh) | 基于固态硬盘的tcg数据删除方法、装置及计算机设备 | |
CN113094294B (zh) | Ssd异常掉电处理方法、装置、计算机设备及存储介质 | |
CN116909478A (zh) | 固态硬盘的tlc写性能提升方法、装置和计算机设备 | |
US20240160385A1 (en) | Memory controller and operation method thereof, memory system and electronic device | |
CN116755623A (zh) | 固态硬盘顺序读性能的提升方法、装置和计算机设备 | |
CN117032582A (zh) | 基于DRAM-less固态硬盘的写性能提升方法和装置 | |
CN116974485A (zh) | 基于HMB的RAID Parity暂存方法、装置和计算机设备 |
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 |