CN117369729A - 一种zns ssd的附加写入实现方法 - Google Patents
一种zns ssd的附加写入实现方法 Download PDFInfo
- Publication number
- CN117369729A CN117369729A CN202311645076.5A CN202311645076A CN117369729A CN 117369729 A CN117369729 A CN 117369729A CN 202311645076 A CN202311645076 A CN 202311645076A CN 117369729 A CN117369729 A CN 117369729A
- Authority
- CN
- China
- Prior art keywords
- partition
- ssd
- writing
- block address
- write
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000005192 partition Methods 0.000 claims description 60
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 5
- 239000007787 solid Substances 0.000 claims description 5
- 239000000758 substrate Substances 0.000 claims 4
- 239000000523 sample Substances 0.000 claims 1
- 230000003993 interaction Effects 0.000 abstract description 3
- 238000011161 development Methods 0.000 abstract description 2
- 238000013403 standard screening design Methods 0.000 description 46
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000003321 amplification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000012005 ligant binding assay Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种ZNS SSD的附加写入实现方法,可以通过完成队列条目与主机之间的交互来实现在同一个zone内的多线程写入操作,避免因为主机等待完成队列条目而导致的并行写入性能下降的问题,同时仅在完成队列条目中加入两个DW即可实现简化固件逻辑并加快固件开发效率,降低对缓存空间的需求,减少了缓存空间扩增导致的高成本。进一步的提高SSD设备的运行速度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种ZNS SSD的附加写入实现方法。
背景技术
随着存储技术的不断发展,固态硬盘(solid state drive,SSD)因在性能、可靠性、能耗、轻便性上有着绝对优势而广泛应用于各个领域,SSD采用快闪记忆体(NANDFlash)作为存储介质,通常,SSD会包含多个NAND Flash颗粒。主机与传统的SSD交互的方式为主机在写IO命令中指定地址,然后SSD根据写命令向主机指定的地址中写入数据,但是不支持实现并发写数据。为进一步提高固态硬盘各方面的性能,业界提出了分区命名空间(zoned namespace,ZNS)SSD,其中,ZNS SSD的整个逻辑区块地址(logical blockaddress,LBA)空间划分为多个分区(zone),zone类似于叠瓦式磁记录(shingled magneticrecording,SMR)盘划分的一个区域,从而实现分区存储。由于zone内要求顺序写入,当多线程写入同一个zone时,多个线程之间会因为写指针的竞争导致写入速度受限或者写入位置不正确的问题,为此,ZNS提供了附加写(append)的写入模式,这种写入模式中主机(host)和硬盘的配合过程为:主机向SSD中的某个zone下发写IO命令(输入输出命令)时,该写IO命令携带的内容包括该zone的起始LBA、数据所占LBA的个数和数据本身,ZNS SSD接收到IO后,由ZNS SSD自主决定该IO携带的数据实际写入到zone中的位置,在ZNS SSD完成写操作后,将数据实际写入的该zone的位置的地址发送给host,host需要等待待写入的数据完成写入之后,再记录该实际写入数据的地址,这种配合方式能够允许host针对单个zone并发地下发多个写IO,但是主机与ZNS SSD的这种配合方式,需要改变包括传统的SSD和主机的存储系统中的软件架构才能实现,例如将传统的SSD中的闪存转换层(flash translationlayer,FTL)从SSD内部迁移到上层的主机端,而且还需要改动传统的SSD的驱动器,从而引入了不必要的复杂度和额外的工作量。
发明内容
本申请提供一种ZNS SSD的附加写入实现方法,以实现在不改变传统存储系统的软件架构的情况下,实现计算设备向存储设备并发写数据,提高写数据的效率。
使用追加写方式的分区命名空间 SSD,在逻辑分区的任意位置进行第一写入操作,并通过完成队列条目(CQE)向主机报告实际写入的逻辑区块地址(LBA);所述主机在收到所述完成队列条目后确认第二写入操作的起始逻辑区块位置并同时进行所述第二写入操作。
进一步的,在所述第一写入操作之前,通过处理器获取存储设备分区命名空间SSD中第一分区的起始逻辑区块地址以及所述第一分区的剩余容量;所述处理器向分区命名空间SSD发送至少一个第一输入输出命令,所述第一输入输出命令至少包含所述起始逻辑区块地址以及所述第一分区的剩余容量。
进一步的,判断收到的所述第一输入输出命令解析得到的起始逻辑区块地址与待写的分区是否匹配;如果匹配,根据当前写的分区写指针按序写入到此分区,并记录所述写入前的写指针,并根据所述第一输入输出命令解析得到的逻辑区块地址来更新分区写指针,作为下一次写入的分区写指针。
进一步的,所述完成队列条目至少包括所述第一写入操作的所述逻辑区块地址,其中所述逻辑区块地址至少包括Low SLBA(低位起始逻辑区块地址)和High SLBA(高位逻辑区块地址),并将所述Low SLBA和High SLBA分别记录在所述完成队列条目的DW0和DW1中。
进一步的,所述完成队列条目至少包括完成写入的逻辑区块地址、物理扇区、完成状态、错误代码中的一种或多种;SSD固件通过轮询或使用回调机制来检查所述完成队列条目以了解特定输入输出操作的完成情况,并根据所述完成情况处理已完成写入的数据和/或发起下一个输入输出操作。
进一步的,本申请还提供一种计算设备,该计算设备包括处理器和通信接口,处理器通过通信接口耦合至存储设备。处理器,用于获取存储设备分区命名空间 SSD中一个分区的第一起始逻辑区块地址以及剩余容量,并向所述存储设备发送第一输入输出命令,所述输入输出命令至少包括第一信息,所述第一信息包括所述第一起始逻辑区块地址、所述第一写入操作的容量以及所述分区的剩余容量。
进一步的,第一信息还包括以下至少一项第二信息:第一写入操作的第一逻辑区块对应的第一缓存空间的状态码,状态码指示第一缓存空间已满;存储设备的剩余容量。所述处理器根据至少一项第二信息,确定是否继续向存储设备下发位于第二地址范围内的第二输入输出命令。计算机可以在第一缓存空间已满或剩余容量为零时及时知晓,不再往第一逻辑分区下发数据,这样可形成反压机制,避免计算设备无限制的往该第一逻辑分区下发写数据。
进一步的,所述处理器从所述第一缓存空间中未查找到所述第一逻辑区块地址对应的第一输入输出命令,则暂停向所述第一逻辑区块进行写入操作,并向所述计算设备发送包括向所述第一地址写数据失败的结果和第二逻辑区块地址的第一信息,且所述第二逻辑区块地址与所述第一逻辑区块地址相同,所述第一信息用于所述计算设备下发所述第一逻辑区块地址对应的第一输入输出命令。因此在未成功向第一逻辑区块地址写入数据时,可以尽快获取到当前需要写数据的第一逻辑区块地址对应的输入输出命令,从而可以提高写数据的效率。
进一步的,当所述存储设备接收到所述第一输入输出命令后,将Low SLBA和HighSLBA分别写入完成队列条目中,并将所述完成队列条目传递给主机,进而实现在第一输入输出操作的同时,同一个分区(zone)内,在计算得到的第二起始逻辑区块位置同时进行第二写入操作,消除了多线程同步写入同一个分区因等待而导致的性能下降。
本发明的有益效果:
1.充分利用了ZNS SSD的每一个zone内是顺序写入,不同zone之间写入不互相干扰的特点,在同一个zone内进行多线程写入时,不改变传统的SSD写操作的基础上,仅需在完成队列条目中额外增加两个DW分别记录低位起始逻辑区块地址和高位起始逻辑区块地址即可实现大幅提升多线程写性能;
2.在提升多线程并行写性能的同时,可以提高队列深度;
3.降低对缓存空间的需求,减少了因缓存空间容量扩增导致的成本。
附图说明
图1为本申请一种实施例所示的主机与SSD交互示意图;
图2为本申请一种实施例所示的完成队列条目示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请的实施例进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,为了提高传统的SSD多线程并行写入操作的性能,业界提出了分区命名空间(ZNS)技术的SSD。ZNS是NVMe里面新提出的一种主机和盘配合的方式。ZNS盘具有如下特性:ZNS SSD的整个逻辑区块地址(LBA)空间被划分为多个zone,单个zone的大小例如为4MB~4GB;单个zone里面,主机只能顺序写入数据,不能随机写入数据,可以随机读数据;某个zone被从头到尾写完一遍后,再次写入数据的时候,必须先将整个zone擦除掉,然后才能按顺序从头到尾进行数据的写入,一般来说,这里的一个zone,可以对应到NAND Flash上的一个或多个物理block;整个zone的数据是一起淘汰的,不需要进行有效数据的搬移,盘没有写放大。常规的固态盘,是找包含无效数据最多的这种物理block,将其有效数据搬移走,然后将该block擦除,这就涉及到有效数据的搬移,从而有一定的写放大,ZNS的配合方式将写放大消除掉了。
由此可见 ZNS SSD顺序写入数据的方式,要求host串行地进行数据的写入,性能相对比较低,因此又引入了分区附加写(zone append)的这种并发写入的方式。zoneappend的并发写入方式能够支持单个zone内多个写命令的并发写,这种写入模式中host和硬盘的配合过程为:主机向ZNS SSD中的某个zone下发写命令时,该写命令携带内容包括该zone的起始LBA、数据所占的LBA的个数和数据本身,ZNS SSD接收到该输入输出命令后,由ZNS SSD自主决定该输入输出命令携带的数据实际写入到zone中的位置,在ZNS SSD完成写操作后,将数据实际写入到该zone的位置的起始地址发送给host,host记录该实际写入数据的地址。
为了提高ZNS SSD的append写入性能,实施例采用了一种实现使用追加写方式的实现方法,允许在逻辑分区的任意位置进行第一写入操作,并通过完成队列条目(CQE)向主机报告实际写入的逻辑区块地址(LBA)位置;所述主机在收到所述完成队列条目后确认第二写入操作的起始逻辑区块位置。而不用在等待ZNS SSD完成所述第一写入操作之后再将后续的第二写入操作的逻辑区块地址发送给host并记录该实际写入数据的地址。
具体实现方式参见附图1,其中,ZSLBA是指zone的起始地址,write pointer是指该zone对应的写指针(写该命令的时候)。
在处理器获取存储设备分区命名空间 SSD中第一个分区的起始逻辑区块地址ZSLBA+1、第一分区的剩余容量等信息,例如当前写操作的写指针(write pointer);处理器向SSD发送至少包含当前区块起始逻辑区块地址ZSLBA和第一写操作容量信息的第一输入输出命令;处理器发送所述第一输入输出命令之后,SSD固件判断收到的所述第一输入输出命令解析得到的起始逻辑区块地址与待写的分区是否匹配;如果匹配,根据当前写的分区写指针按序写入到此分区,并记录所述写入前的写指针,并根据所述第一输入输出命令解析得到的逻辑区块地址来更新分区写指针,作为第二写入操作的分区写指针。
参见图2,与此同时主机收到的所述完成队列条目中至少包括第一写入操作之前所确定的写指针以及所述第一写入操作的容量,并将起始逻辑区块地址中的低位和高位地址(分别对应LOW SLBA和HIGH SLBA)记录在所述完成队列条目的DW0和DW1中。
在其他实施例中,完成队列条目还可以包括完成写入的逻辑区块地址、物理扇区、完成状态、错误代码等信息;SSD固件通过轮询或使用回调机制来检查所述完成队列条目以了解特定输入输出操作的完成情况,并根据所述完成情况处理已完成写入的数据和/或发起下一个输入输出操作。
主机与ZNS SSD的这种配合方式能够允许主机针对单个zone并发地下发多个输入输出命令,然后通过完成队列条目(completion queue entry,CQE)与主机之间的交互可以大幅提高ZNS SSD的并行写入性能。
在其他实施例中,本申请还提供一种计算设备,该计算设备包括处理器和通信接口,处理器通过通信接口耦合至存储设备。处理器,用于获取存储设备分区命名空间 SSD中一个分区的第一逻辑分区的起始逻辑区块地址以及剩余容量,并向所述存储设备发送第一输入输出命令,所述输入输出命令至少包括第一信息,所述第一信息包括所述第一起始逻辑区块地址、所述第一写入操作的容量以及所述分区的剩余容量。
该第一信息还包括以下至少以下信息:第一写入操作的第一逻辑区块对应的第一缓存空间的状态码,状态码指示第一缓存空间已满;存储设备的剩余容量。通过处理器根据至少一项以上信息,确定是否继续向存储设备下发位于第二地址范围内的第二输入输出命令。计算机可以在第一缓存空间已满或剩余容量为零时及时知晓,不再往第一逻辑分区下发数据,这样可形成反压机制,避免计算设备无限制的往该第一逻辑分区传输数据。
在其他可能的实施例中,处理器还可以从所述第一缓存空间中未查找到所述第一逻辑区块地址对应的第一输入输出命令,则暂停向所述第一逻辑区块进行写入操作,并向所述计算设备发送包括向所述第一地址写数据失败的结果和第二逻辑区块地址的第一信息,且所述第二逻辑区块地址与所述第一逻辑区块地址相同,所述第一信息用于所述计算设备下发所述第一逻辑区块地址对应的第一输入输出命令。因此在未成功向第一逻辑区块地址写入数据时,可以尽快获取到当前需要写数据的第一逻辑区块地址对应的输入输出命令,从而可以提高写数据的效率。
应注意,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
根据本申请实施例提供的方法,本申请还提供一种计算机程序产品,该计算机程序产品包括:计算机程序代码,当该计算机程序代码在计算机上运行时,使得该计算机执行实施例中所详述的方法。
根据本申请实施例提供的方法,本申请还提供一种计算机可读存储介质,该计算机可读介质存储有程序代码,当该程序代码在计算机上运行时,使得该计算机执行实施例中的方法。其中,存储介质可以是计算机能够存取的任何可用介质,例如SSD、PCM等。
根据本申请实施例提供的方法,本申请还提供一种数据处理系统,该数据处理系统包括上述内容任一所述的计算设备、存储控制器和闪存阵列。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的保护范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (8)
1.一种分区命名空间固态硬盘ZNS SSD的附加写入实现方法,其特征在于,包括以下步骤:
使用追加写方式的分区命名空间固态硬盘ZNS SSD,在逻辑分区的任意位置进行第一写入操作,并通过完成队列条目CQE向主机报告实际写入的逻辑区块地址LBA;所述主机在收到所述完成队列条目后确认第二写入操作的起始逻辑区块位置并同时进行所述第二写入操作。
2.根据权利要求1所述的方法,其特征在于,
在所述第一写入操作之前,通过处理器获取存储设备分区命名空间固态硬盘ZNS SSD中第一分区的起始逻辑区块地址以及所述第一分区的剩余容量;
所述处理器向分区命名空间固态硬盘ZNS SSD发送至少一个第一输入输出命令,所述第一输入输出命令至少包含所述起始逻辑区块地址以及所述第一分区的剩余容量。
3.根据权利要求2所述的方法,其特征在于,
判断收到的所述第一输入输出命令解析得到的起始逻辑区块地址与待写的分区是否匹配;
如果匹配,根据当前写的分区写指针按序写入到此分区,并记录所述写入前的写指针,并根据所述第一输入输出命令解析得到的逻辑区块地址来更新分区写指针,作为下一次写入的分区写指针。
4.根据权利要求1所述的方法,其特征在于,
所述完成队列条目至少包括所述第一写入操作的所述逻辑区块地址,其中所述逻辑区块地址至少包括低位起始逻辑区块地址Low SLBA和高位起始逻辑区块地址High SLBA,并将所述Low SLBA和High SLBA分别记录在所述完成队列条目的DW0和DW1中。
5.根据权利要求1所述的方法,其特征在于,
所述完成队列条目至少包括完成写入的逻辑区块地址、物理扇区、完成状态、错误代码、写入容量中的一种或多种;
固态硬盘SSD固件通过轮询或使用回调机制来检查所述完成队列条目以了解特定输入输出操作的完成情况,并根据所述完成情况处理已完成写入的数据和/或发起下一个输入输出操作。
6.根据权利要求5所述的方法,其特征在于,
所述完成状态包含当前写入的所在逻辑分区所对应的缓存空间的状态码,所述状态码用于指示所述缓存空间是否已满。
7.一种存储控制器,其特征在于,
包括如权利要求1-6中任一项所述方法进行附加写入的存储设备。
8.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行权利要求1-6任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311645076.5A CN117369729B (zh) | 2023-12-04 | 2023-12-04 | 一种zns ssd的附加写入实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311645076.5A CN117369729B (zh) | 2023-12-04 | 2023-12-04 | 一种zns ssd的附加写入实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117369729A true CN117369729A (zh) | 2024-01-09 |
CN117369729B CN117369729B (zh) | 2024-02-06 |
Family
ID=89400523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311645076.5A Active CN117369729B (zh) | 2023-12-04 | 2023-12-04 | 一种zns ssd的附加写入实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117369729B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555491A (zh) * | 2024-01-11 | 2024-02-13 | 武汉麓谷科技有限公司 | 一种实现zns固态硬盘加密功能的方法 |
CN117707436A (zh) * | 2024-02-05 | 2024-03-15 | 苏州元脑智能科技有限公司 | 固件模式切换方法、装置、电子设备和存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150074358A1 (en) * | 2013-09-06 | 2015-03-12 | Skyera, Inc. | High performance system providing selective merging of dataframe segments in hardware |
CN112148627A (zh) * | 2019-06-28 | 2020-12-29 | 西部数据技术公司 | 针对分区命名空间的分区形成 |
US20200409601A1 (en) * | 2019-06-28 | 2020-12-31 | Western Digital Technologies, Inc. | Hold of Write Commands in Zoned Namespaces |
CN112463333A (zh) * | 2020-12-03 | 2021-03-09 | 北京浪潮数据技术有限公司 | 一种基于多线程并发的数据存取方法、装置和介质 |
CN113196226A (zh) * | 2019-09-25 | 2021-07-30 | 西部数据技术公司 | 固态驱动器中的分区命名空间 |
US20220075716A1 (en) * | 2020-09-04 | 2022-03-10 | Western Digital Technologies, Inc. | Zoned Namespace Limitation Mitigation Using Sub Block Mode |
CN114442914A (zh) * | 2020-11-04 | 2022-05-06 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN114691020A (zh) * | 2020-12-30 | 2022-07-01 | 上海曼卜信息科技有限公司 | 基于zns标准提供数据压缩存储设备及其方法 |
US20220229722A1 (en) * | 2022-04-08 | 2022-07-21 | Intel Corporation | Method and apparatus to improve performance of a redundant array of independent disks that includes zoned namespaces drives |
CN115951839A (zh) * | 2023-01-18 | 2023-04-11 | 北京有竹居网络技术有限公司 | 分区命名空间固态硬盘的数据写入方法、装置及电子设备 |
-
2023
- 2023-12-04 CN CN202311645076.5A patent/CN117369729B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150074358A1 (en) * | 2013-09-06 | 2015-03-12 | Skyera, Inc. | High performance system providing selective merging of dataframe segments in hardware |
CN112148627A (zh) * | 2019-06-28 | 2020-12-29 | 西部数据技术公司 | 针对分区命名空间的分区形成 |
US20200409601A1 (en) * | 2019-06-28 | 2020-12-31 | Western Digital Technologies, Inc. | Hold of Write Commands in Zoned Namespaces |
CN113196226A (zh) * | 2019-09-25 | 2021-07-30 | 西部数据技术公司 | 固态驱动器中的分区命名空间 |
US20220075716A1 (en) * | 2020-09-04 | 2022-03-10 | Western Digital Technologies, Inc. | Zoned Namespace Limitation Mitigation Using Sub Block Mode |
CN114442914A (zh) * | 2020-11-04 | 2022-05-06 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN112463333A (zh) * | 2020-12-03 | 2021-03-09 | 北京浪潮数据技术有限公司 | 一种基于多线程并发的数据存取方法、装置和介质 |
CN114691020A (zh) * | 2020-12-30 | 2022-07-01 | 上海曼卜信息科技有限公司 | 基于zns标准提供数据压缩存储设备及其方法 |
US20220229722A1 (en) * | 2022-04-08 | 2022-07-21 | Intel Corporation | Method and apparatus to improve performance of a redundant array of independent disks that includes zoned namespaces drives |
CN115951839A (zh) * | 2023-01-18 | 2023-04-11 | 北京有竹居网络技术有限公司 | 分区命名空间固态硬盘的数据写入方法、装置及电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555491A (zh) * | 2024-01-11 | 2024-02-13 | 武汉麓谷科技有限公司 | 一种实现zns固态硬盘加密功能的方法 |
CN117555491B (zh) * | 2024-01-11 | 2024-03-15 | 武汉麓谷科技有限公司 | 一种实现zns固态硬盘加密功能的方法 |
CN117707436A (zh) * | 2024-02-05 | 2024-03-15 | 苏州元脑智能科技有限公司 | 固件模式切换方法、装置、电子设备和存储介质 |
CN117707436B (zh) * | 2024-02-05 | 2024-05-03 | 苏州元脑智能科技有限公司 | 固件模式切换方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117369729B (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117369729B (zh) | 一种zns ssd的附加写入实现方法 | |
US8380922B1 (en) | Data storage device comprising host interface state machine blocking on target logical block address | |
JP5759623B2 (ja) | メモリシステムコントローラを含む装置および関連する方法 | |
US20110296084A1 (en) | Data storage apparatus and method of writing data | |
US20100268871A1 (en) | Non-volatile memory controller processing new request before completing current operation, system including same, and method | |
TWI719654B (zh) | 閃存實體資源集合管理裝置及方法以及電腦程式產品 | |
CN107564558B (zh) | 实现分散原子i/o写入 | |
US11086554B2 (en) | Writing same data on a storage system | |
CN110908843A (zh) | 诊断存储器系统的设备及其操作方法 | |
CN113272903A (zh) | 处理非易失性存储器中的操作冲突 | |
US20230205461A1 (en) | Apparatus and method for driving redundant array of independent disks (raid) engine | |
US10338998B2 (en) | Methods for priority writes in an SSD (solid state disk) system and apparatuses using the same | |
US10521156B2 (en) | Apparatus and method of managing multi solid state disk system | |
TWI797905B (zh) | 驅動獨立磁碟冗餘陣列引擎的裝置及方法 | |
TWI814647B (zh) | 執行主機命令的方法及電腦程式產品及裝置 | |
KR20210018570A (ko) | 컨트롤러, 컨트롤러의 동작 방법 및 이를 포함하는 저장 장치 | |
TWI844174B (zh) | 主機命令的邏輯位址區間搜索方法及裝置 | |
CN111045961A (zh) | 数据处理方法及使用所述方法的存储控制器 | |
US20240012564A1 (en) | Memory controller and storage device including the same | |
TWI758745B (zh) | 排程主機命令執行的電腦程式產品及方法及裝置 | |
TWI805505B (zh) | 排程和執行主機資料更新命令的方法及電腦程式產品及裝置 | |
TWI835027B (zh) | 更新主機與閃存位址對照表的方法及電腦程式產品及裝置 | |
US20240176734A1 (en) | Apparatus and method for searching for logical address ranges of host commands | |
US20240177777A1 (en) | Method and non-transitory computer-readable storage medium and apparatus for executing host commands | |
US20230342046A1 (en) | Memory controller and memory system 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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |