CN114064522A - 一种计算机 - Google Patents

一种计算机 Download PDF

Info

Publication number
CN114064522A
CN114064522A CN202111356021.3A CN202111356021A CN114064522A CN 114064522 A CN114064522 A CN 114064522A CN 202111356021 A CN202111356021 A CN 202111356021A CN 114064522 A CN114064522 A CN 114064522A
Authority
CN
China
Prior art keywords
command
address
storage device
cache unit
open channel
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
Application number
CN202111356021.3A
Other languages
English (en)
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.)
Beijing Starblaze Technology Co ltd
Original Assignee
Beijing Starblaze Technology 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 Beijing Starblaze Technology Co ltd filed Critical Beijing Starblaze Technology Co ltd
Priority to CN202111356021.3A priority Critical patent/CN114064522A/zh
Publication of CN114064522A publication Critical patent/CN114064522A/zh
Pending legal-status Critical Current

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/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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请涉及存储技术,特别地,涉及一种计算机,包括:处理器和开放通道存储设备;处理器向开放通道存储设备的内存空间的缓存单元添加第一类地址,第一类地址为存储设备的物理地址,内存空间由开放通道存储设备提供;由缓存单元的索引替代IO命令指示的第二类地址以生成IO命令,第二类地址为逻辑地址;将IO命令发送给开放通道存储设备;开放通道存储设备接收IO命令,根据IO命令中的缓存单元索引从缓存单元中获取第一类地址,根据第一类地址访问NVM。本申请在不修改操作***内核的情况下,提供了使用物理地址访问存储设备的方法、主机与存储设备,从而使应用程序得以获得开放通道固态存储设备提供的优势,且避免了修改内核引入的风险。

Description

一种计算机
技术领域
本申请涉及存储技术,特别地,涉及包含使用CMB(ControllerMemoryBu ffer,控制器内存缓冲区)来提供开放通道(Open Channel)存储设备的一种计算机。
背景技术
图1是现有技术中的存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(SmallComputer System Interface,小型计算机***接口)、SAS(Serial Attached SCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal SerialBus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速***组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(Dynamic Random Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)、XPoint存储器等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
在一些存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了访问存储设备的主机所感知到的存储设备的存储空间。物理地址是用于访问存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。这些情况下,存储设备所接收的读/写命令指示逻辑地址。存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。
一些存储设备的FTL由同存储设备所耦合的主机提供,由主机的存储器存储FTL表,主机的CPU执行软件提供FTL。还有一些被设置在主机与存储设备之间的存储管理装置提供FTL。这些情况下,物理地址构成了访问存储设备的主机所感知到的存储设备的存储空间,存储设备所接收的读/写命令指示物理地址。
根据NVMe协议,主机使用逻辑地址访问存储设备,存储设备向主机提供的存储地址空间是由逻辑地址构成的逻辑地址空间。
近年来,还提供了开放通道固态存储设备(Open-Channel Solid State Drives),在http://lightnvm.io/docs/OCSSD-2_0-20180129.pdf可获得《开放通道固态存储设备规范(Open-Channel Solid State DrivesSpecification)》,将其全文通过引用合并于此。开放通道固态存储设备规范在NVMe协议基础上提供了扩展。根据开放通道固态存储设备规范,主机使用物理地址访问存储设备,存储设备向主机提供的存储地址空间是由物理地址构成的地址空间。
为实施《开放通道固态存储设备规范》,存储设备要支持开放通道固态存储设备规范定义的IO命令,而主机的操作***内核中要增加驱动程序(例如,从https://openchannelssd.readthedocs.io/en/latest/可获得的LightNVM子***)。
图2是现有技术中的使用开放通道固态存储设备的示意图。
主机同开放通道固态存储设备耦合。主机的操作***中安装了NVMe设备驱动与LightNVM子***。主机的用户空间运行应用程序。应用程序访问存储设备(开放通道SSD)。NVMe设备驱动是为访问NVMe存储设备而运行在操作***内核的驱动程序,从https://nvmexpress.org/resources/drivers/可获得。LightNVM子***是为访问开放通道SSD而运行在内核的驱动程序。
作为举例,应用程序使用逻辑地址访问存储设备。运行于主机的FTL将逻辑地址转换为物理地址,并提供给LightNVM子***。LightNVM子***通过NVMe设备驱动生成符合《开放通道固态存储设备规范》的IO命令,并提供给开放通道SSD。开放通道SSD执行IO命令。IO命令指示了例如主机内存地址、存储设备的物理地址与IO命令要访问的数据长度。可选地,IO命令还指示例如在NVMe协议中由存储设备生成并附加写入非易失存储介质中的元数据。元数据例如同存储的数据关联的逻辑地址、用于保护数据的校验信息等。
作为又一个例子,应用程序向LightNVM子***提供物理地址以访问存储设备。
发明内容
NVMe设备驱动通常认为是成熟的驱动程序,并已得到广泛的验证。而使用开放通道固态存储设备,需要在内核中添加LightNVM子***或提供类似功能的驱动程序,或使用包括了Light NVM子***的新版本操作***内核。修改或更新操作***内核带来了风险。数据中心、互联网运营商等不愿意承担修改内核的风险。
当使用开放通道固态存储设备时,主机知晓开放通道存储设备的同非易失存储介质相关的特性,例如,在向存储介质写入数据前要实施擦除操作。而现有技术的操作***提供的用于访问存储设备的***调用仅提供了读(read()、pread())与写(write()、pwrite())操作,从而在不更新操作***内核的情况下,用户空间的应用缺乏足以操作开放通道固态存储设备的能力。
根据本申请的实施例,在不修改操作***内核的情况下,提供了使用物理地址访问存储设备的方法、主机与存储设备,从而使应用程序得以获得开放通道固态存储设备提供的优势,且避免了修改内核引入的风险。
根据本申请的第一方面,提供了根据本申请第一方面的第一存储设备,包括:命令接口、控制部件和NVM;所述存储设备向主机提供存储空间与内存空间;所述内存空间的缓存单元存储第一类地址;控制部件通过命令接口接收指示缓存单元索引的IO命令,并且根据IO命令中的缓存单元索引从缓存单元中获取第一类地址,根据第一类地址访问NVM。
根据本申请的第一方面的第一存储设备,提供了根据本申请第一方面的第二存储设备,其中,所述IO命令指示的缓存单元索引,是对所述IO命令的第二类地址的替代。
根据本申请的第一方面的第一或第二存储设备,提供了根据本申请第一方面的第三存储设备,其中,第一类地址是索引存储设备的NVM的物理地址,第二类地址是索引所述存储空间的逻辑地址。
根据本申请的第一方面的第一至第三存储设备之一,提供了根据本申请第一方面的第四存储设备,其中,若IO命令指示用于存储设备的第二类地址,控制部件根据闪存转换层(FTL)将第二类地址转换为第一类地址,并根据第一类地址访问NVM。
根据本申请的第一方面的第一至第三存储设备之一,提供了根据本申请第一方面的第五存储设备,其中,若IO命令指示用于存储设备的第一类地址,控制部件根据第一类地址访问NVM。
根据本申请的第一方面的第一至第三存储设备之一,提供了根据本申请第一方面的第六存储设备,其中,若IO命令指示用于存储设备的用于KV存储设备的关键字,控制部件根据闪存转换层(FTL)将关键字转换为第一类地址,并根据第一类地址访问NVM。
根据本申请的第一方面的第一至第六存储设备之一,提供了根据本申请第一方面的第七存储设备,其中,所述存储设备向主机提供的内存空间是根据NVMe协议定义的控制器内存缓冲区或根据PCIe协议定义的内存空间。
根据本申请的第一方面的第七存储设备,提供了根据本申请第一方面的第八存储设备,其中,控制器内存缓冲区是非易失存储空间。
根据本申请的第一方面的第一至第八存储设备之一,提供了根据本申请第一方面的第九存储设备,其中,第一类地址为遵循开放通道固态存储设备规范的物理地址。
根据本申请的第一方面的第九存储设备,提供了根据本申请第一方面的第十存储设备,其中,IO命令是通过使用pread()/pwrite()***调用来操作存储设备驱动生成的。
根据本申请的第一方面的第十存储设备,提供了根据本申请第一方面的第十一存储设备,其中,使用pread()/pwrite()***调用时,地址参数“__offset”被设置为缓存单元索引,存储设备驱动用所述地址参数“__offset”生成IO命令的第二类地址。
根据本申请的第一方面的第十或第十一存储设备,提供了根据本申请第一方面的第十二存储设备,其中,若IO命令是读命令,则读命令是通过调用Pread()***调用生成的。
根据本申请的第一方面的第十至第十二存储设备之一,提供了根据本申请第一方面的第十三存储设备,其中,若IO命令是写命令,则写命令是存储设备驱动通过调用Pwead()***调用生成的。
根据本申请的第一方面的第一至第十三存储设备之一,提供了根据本申请第一方面的第十四存储设备,其中,同IO命令关联的第一类地址写入用于生成IO命令的缓存单元索引对应的缓存单元。
根据本申请的第一方面的第一至第十四存储设备之一,提供了根据本申请第一方面的第十五存储设备,其中,控制部件响应于IO命令处理完成而生成完成命令,完成命令包含对应的IO命令指示的缓存单元索引,以使主机根据完成命令包含的缓存单元索引释放缓存单元。
根据本申请的第一方面的第一至第十四存储设备之一,提供了根据本申请第一方面的第十六存储设备,其中,响应于IO命令处理失败,控制部件将IO命令对应的错误信息写入所述IO命令所指示的缓存单元,以使主机知晓失败的处理结果后从缓存单元中获取错误信息。
根据本申请的第一方面的第十五存储设备,提供了根据本申请第一方面的第十七存储设备,其中,完成命令是符合NVMe规范的命令。
根据本申请的第一方面的第一至第十七存储设备之一,提供了根据本申请第一方面的第十八存储设备,其中,缓存单元还存储同IO命令关联的元数据。
根据本申请的第一方面的第十八存储设备,提供了根据本申请第一方面的第十九存储设备,其中,同IO命令关联的元数据记录了IO命令所访问的数据的第二类地址和/或数据的校验信息。
根据本申请的第一方面的第一至第十九存储设备之一,提供了根据本申请第一方面的第二十存储设备,其中,缓存单元还存储同IO命令关联的扩展信息,控制单元根据IO命令中的缓存单元索引从缓存单元中获取扩展信息,根据扩展信息知晓IO命令的扩展含义。
根据本申请的第一方面的第二十存储设备,提供了根据本申请第一方面的第二十一存储设备,其中,扩展信息为代表擦除命令的扩展信息。
根据本申请的第一方面的第二十存储设备,提供了根据本申请第一方面的第二十二存储设备,其中,扩展信息为代表向主机提供IO命令对应的完成命令的时机的扩展信息,控制单元根据命令指示的时机向主机提供完成命令。
根据本申请的第一方面的第二十二存储设备,提供了根据本申请第一方面的第二十三存储设备,其中,向主机提供完成命令的时机为将写命令待写入的数据搬移到缓存单元后立即向主机提供同写命令对应的完成命令,或者将写命令待写入的数据存储到NVM后再向主机提供同写命令对应的完成命令。
根据本申请的第二方面,提供了根据本申请第二方面的第一访问存储设备的方法,包括如下步骤:向存储设备的内存空间的缓存单元添加第一类地址,所述内存空间为主机可访问的由存储设备提供的内存空间;由所述缓存单元的索引替代IO命令所指示的第二类地址以生成IO命令;将IO命令发送给存储设备。
根据本申请的第二方面的第一访问存储设备的方法,提供了根据本申请第二方面的第二访问存储设备的方法,其中,第一类地址是索引存储设备的NVM的物理地址,第二类地址是索引存储设备的存储空间的逻辑地址。
根据本申请的第二方面的第一或第二访问存储设备的方法,提供了根据本申请第二方面的第三访问存储设备的方法,其中,第一类地址为遵循开放通道固态存储设备规范的物理地址。
根据本申请的第二方面的第一至第三访问存储设备的方法之一,提供了根据本申请第二方面的第四访问存储设备的方法,其中,使用pread()/pwrite()***调用来操作存储设备驱动以生成IO命令。
根据本申请的第二方面的第四访问存储设备的方法,提供了根据本申请第二方面的第五访问存储设备的方法,其中,使用pread()/pwrite()***调用时,地址参数“__offset”被设置为缓存单元索引,存储设备驱动使用所述地址的参数“__offset”生成IO命令。
根据本申请的第二方面的第一至第五访问存储设备的方法之一,提供了根据本申请第二方面的第六访问存储设备的方法,其中,以访问主机内存的方式将第一类地址写入存储设备的缓存单元。
根据本申请的第二方面的第一至第六访问存储设备的方法之一,提供了根据本申请第二方面的第七访问存储设备的方法,其中,根据访问的存储设备存储空间的逻辑地址生成第一类地址,或者将URI或关键字转化为第一类地址,以将第一类地址存储于存储设备的缓存单元。
根据本申请的第二方面的第一至第七访问存储设备的方法之一,提供了根据本申请第二方面的第八访问存储设备的方法,其中,根据访问的存储空间的逻辑地址查询FTL表得到第一类地址。
根据本申请的第二方面的第一至第八访问存储设备的方法之一,提供了根据本申请第二方面的第九访问存储设备的方法,其中,响应于IO命令处理完成,根据存储设备为IO命令生成的完成命令释放IO命令指示的缓存单元。
根据本申请的第二方面的第九访问存储设备的方法,提供了根据本申请第二方面的第十访问存储设备的方法,其中,根据完成命令包含的缓存单元索引,释放所述缓存单元索引指示的缓存单元。
根据本申请的第二方面的第九访问存储设备的方法,提供了根据本申请第二方面的第十一访问存储设备的方法,其中,响应于获得完成命令,根据所发送给存储设备的IO命令与用于生成所述IO命令的缓存单元索引的对应关系,释放缓存单元。
根据本申请的第二方面的第一至第八访问存储设备的方法之一,提供了根据本申请第二方面的第十二访问存储设备的方法,其中,响应于IO命令处理失败,从存储设备的缓存单元中获取IO命令对应的错误信息。
根据本申请的第二方面的第一至第十二访问存储设备的方法之一,提供了根据本申请第二方面的第十三访问存储设备的方法,其中,响应于向缓存单元添加第一类地址,还向缓存单元添加同IO命令关联的元数据。
根据本申请的第二方面的第十三访问存储设备的方法,提供了根据本申请第二方面的第十四访问存储设备的方法,其中,同IO命令关联的元数据记录了IO命令所访问的数据的第二类地址和/或IO命令所访问的数据的校验信息。
根据本申请的第二方面的第一至第十四访问存储设备的方法之一,提供了根据本申请第二方面的第十五访问存储设备的方法,其中,响应于向缓存单元添加第一类地址,还向缓存单元添加同IO命令关联的扩展信息,以使存储设备根据扩展信息知晓IO命令的扩展含义。
根据本申请的第二方面的第十五访问存储设备的方法,提供了根据本申请第二方面的第十六访问存储设备的方法,其中,扩展信息为代表擦除命令的扩展信息。
根据本申请的第二方面的第十五访问存储设备的方法,提供了根据本申请第二方面的第十七访问存储设备的方法,其中,扩展信息为代表存储设备向主机提供IO命令对应的完成命令的时机的扩展信息。
根据本申请的第二方面的第十五访问存储设备的方法,提供了根据本申请第二方面的第十八访问存储设备的方法,其中,存储设备向主机提供完成命令的时机为将写命令待写入的数据搬移到缓存单元后立即向主机提供同写命令对应的完成命令,或者将写命令待写入的数据存储到NVM后再向主机提供同写命令对应的完成命令。
根据本申请的第三方面,提供了根据本申请第三方面的第一计算机,包括:处理器与存储设备,所述处理器执行上述所述的方法之一。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是现有技术中的存储设备的框图;
图2是现有技术的使用开放通道固态存储设备的示意图;
图3是根据本申请的实施例操作存储设备的示意图;
图4是根据本申请的又一实施例操作存储设备的示意图;
图5是根据本申请的再一实施例操作存储设备的示意图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图3是根据本申请的实施例操作存储设备的示意图。
例如固态驱动器(SSD)的存储设备耦合到主机。SSD向主机提供NVMe命令接口以及CMB(ControllerMemoryBuffer,控制器内存缓冲区)。NVMe命令接口包括多个命令队列。主机通过NVMe命令接口与CMB向SSD提供根据本申请实施例的IO命令。
NVMe协议的IO命令,指示了存储设备的逻辑地址。访问开放通道固态存储设备的IO命令,指示了遵循开放通道固态存储设备规范的物理地址。需要指出的,在2018年1月29日发布的“Open-Channel Solid State Drives SpecificationVersion 2.0(开放通道固态存储设备规范2.0)”版本中,用“LogicalBlockAddresses(LBA)”代表提供给开放通道存储设备的IO命令中的地址,其含义同本申请的实施例中的“逻辑地址”一致。为了清楚的目的,在本申请中,如非特别声明,“逻辑地址”或“LBA”的含义同NVMe协议的逻辑地址的一致,而“物理地址”、“PPA”或“PBA”的含义同遵循开放通道固态存储设备规范的IO命令的用于访问存储设备的地址一致,或者代表存储设备的非易失存储介质的可寻址的物理存储单元的地址。
而根据本申请实施例的IO命令指示了CMB索引。CMB索引了CMB中的缓存单元,在CMB中的缓存单元存储了IO命令用于访问SSD的物理地址。可选地,在CMB的缓存单元中还存储同IO命令关联的元数据与扩展信息。同IO命令关联的元数据,记录了例如IO命令所访问的数据的逻辑地址和/或数据的校验信息。同IO命令关联的扩展信息,记录了例如扩展操作码,用于指示IO命令的扩展的含义。例如,通过扩展操作码,指示擦除命令,或者指示主机接收到写命令被处理完成的完成命令时,写命令对应的数据是被写入到存储设备的缓存中还是非易失存储介质中。
可选地,根据本申请的实施例的IO命令,使用NVMe协议的IO命令,并将NVMe协议的IO命令中指示逻辑地址的部分替换为指示CMB索引,而不改变NVMe协议的IO命令的其他结构,从而通过将向NVMe设备驱动提供的逻辑地址替换为CMB索引,能够使用NVMe设备驱动程序来生成根据本申请实施例的IO命令。
CMB是在NVMe协议中定义的主机可访问的由存储设备提供的内存(Memory)空间。可选地,CMB可以是例如非易失的。依然可选地,由根据其他(例如,PCIe协议)定义的主机可访问的由存储设备提供的内存空间来替代根据本申请实施例的存储设备中的CMB。
主机操作***的内核空间运行NVMe设备驱动。主机的用户空间运行应用程序。应用程序通过诸如文件等现有技术的方式访问存储设备。
用户空间还运行IO命令管理单元,用于根据应用程序对诸如文件的访问生成根据本申请实施例的IO命令。作为举例,IO命令管理单元还包括FTL表,以根据应用程序访问的存储空间地址生成用于SSD的物理地址,或者应用程序以诸如URI(统一资源定位符,UniversalResource Identifier)或关键字访问存储空间,IO命令管理单元还将URI或关键字转换为用于SSD的物理地址。
为生成IO命令,IO命令管理单元从CMB中分配可用的缓存单元。在主机看来,CMB是可访问的内存空间。根据本申请的实施例,IO命令管理单元负责CMB的缓存单元的分配、使用与释放。
IO命令管理单元将为IO命令生成的用于SSD的物理地址填充到分配的CMB的缓存单元(其索引为CMBID)。
IO命令管理单元使用内核中的NVMe设备驱动程序生成NVMe命令。为生成NVMe命令,IO命令管理单元将本应提供给NVMe设备驱动的存储空间的逻辑地址替换为填充了IO命令要访问的用于SSD的物理地址的缓存单元的索引(CMB ID)。
NVMe设备驱动程序生成携带了CMB的缓存单元索引的NVMe命令通过SSD的NVMe命令接口提供给SSD。
SSD的控制部件从NVMe命令接口获取IO命令,根据IO命令所指示的CMB的缓存单元索引,访问CMB,从CMB缓存单元获取物理地址,根据物理地址访问SSD的非易失存储介质。若IO命令是读命令,SSD控制部件将从非易失存储介质读出的数据传输到IO命令的主机地址所指示的存储空间;若IO命令是写命令,控制部件将IO命令的主机地址所指示的存储空间的数据搬移到非易失存储介质。在IO命令处理完成后,SSD的控制部件还生成指示IO命令处理完成的完成命令。完成命令例如也是符合NVMe规范的完成命令。
响应于收到同IO命令对应的完成命令,释放该IO命令所使用的CMB缓存单元。可选地,在完成命令中指示了要释放的CMB缓存单元的索引。
作为一个例子,IO命令管理单元使用诸如pread()/pwrite()的***调用来操作NVMe设备驱动程序来生成NVMe命令。***调用Pread()/pwrite()的参数“__offset”用来代表逻辑地址,在根据本申请的实施例中,在调用Pread()/pwrite()时,用CMB缓存单元的索引(CMB ID)来填充代表逻辑地址的参数“__offset”。作为对***调用的响应,NVMe设备驱动程序(或类似的其他存储设备驱动程序)会用Pread()/pwrite()***调用提供的参数“__offset”生成NVMe命令中的逻辑地址字段,从而实现用缓存单元的索引(CMB ID)对IO命令中的逻辑地址的替代。
依然作为举例,现有技术中,响应于Pread()***调用,NVMe设备驱动程序生成读命令发送给存储设备,而响应于Pwead()***调用,NVMe设备驱动程序生成写命令发送给存储设备。根据本申请的实施例,IO命令管理单元向CMB的缓存单元添加了例如扩展信息,从而虽然通过使用诸如pread()/pwrite()的***调用来生成发送给存储设备的IO命令,存储设备根据IO命令对应的CMB缓存单元中的扩展信息,知晓IO命令所代表的含义。例如,使用pread()***调用生成了发送给存储设备的E命令(其本身的操作码指示其含义为读命令),而在CMB的缓存单元中用扩展信息指示了该E命令为擦除命令。从而根据本申请的实施例,通过使用例如pread()***调用,向存储设备指示了执行擦除操作。
根据本申请的实施例的SSD,向主机提供了两种接口:诸如NVMe命令接口的第一接口,以及诸如CMB的第二接口。对于每个IO命令,主机将IO命令的部分通过第一接口下发,将IO命令的其他部分通过第二接口下发。SSD将从两个接口各自接收的命令组合得到完整的IO命令,并处理IO命令。在一种实施方式中,第一接口是传统存储设备接口,因而使用现有技术的存储设备驱动程序通过第一接口向SSD发送IO命令的部分;第二接口是内存接口,因而也使用现有技术通过第二接口向SSD发送IO命令的其他部分。从而无须在主机的内核空间运行其他驱动程序。SSD中,提供第一接口获取的IO命令的部分同通过第二接口获取的IO命令的其他部分一一对应。SSD组合从各接口的IO命令的各部分,得到完整的IO命令并处理。
IO命令管理单元通过例如Linux操作***内核提供的ioctl、异步IO(LinuxAsynchronous I/O)等***调用或者用户空间库来访问NVMe设备驱动程序与CMB。
图4是根据本申请的又一实施例操作存储设备的示意图。
主机耦合到SSD,并通过读命令访问SSD提供的存储设备地址空间。
主机提供给存储设备的读命令指示了例如符合开放通道固态存储设备规范的物理地址。提供给运行在主机的用户空间的IO命令管理单元的读命令,指示了例如存储空间地址。存储空间地址是例如逻辑地址、URI或物理地址。提供给IO命令管理单元的读命令还指示主机地址,主机地址用于接收根据读命令从SSD读出的数据。
参看图4,主机包括存储器(展示为主机内存)。存储器包括数据缓存与可选地主机地址缓存。读命令的主机地址指示数据缓存的地址。一些情况下,数据缓存包括多个连续或不连续的存储空间,使用包括多个条目的地址列表指示数据缓存的多个存储空间,并用主机地址缓存存储包括多个条目的地址列表。读命令用主机地址缓存的地址来指示主机地址。SSD根据读命令,从主机地址缓存获取地址列表,并根据地址列表将从SSD读出的数据传输到主机地址对应的多个存储空间。
SSD包括命令队列、完成队列与CMB。作为举例,命令队列是NVMe协议定义的SQ(Submission Queue,提交队列),而完成队列是NVMe协议定义的CQ(CompletionQueue,完成队列),CMB是NVMe协议定义的控制器内存缓冲区。SSD还包括用于处理IO命令的控制部件与NVM(非易失存储介质)。
命令队列包括多个条目,每个条目用于容纳一条IO命令。完成队列包括多个条目,每个条目用于容纳对应于一条IO命令的完成命令。CMB包括多个缓存单元,每个缓存单元用于容纳对应于一条IO命令的存储设备地址(物理地址)。可选地,缓存单元还用于存储同IO命令关联的元数据与扩展信息。依然可选地,缓存单元还用于容纳要通过完成命令传递给主机的IO命令处理结果。
根据本申请的实施例,主机的IO命令管理单元分配CMB的缓存单元,并将分配的CMB的缓存单元的索引提供给每个IO命令。
若IO命令管理单元收到的用于IO命令的地址是逻辑地址或URI,IO命令管理单元还根据逻辑地址或URI生成诸如遵从开放通道固态存储设备的物理地址的存储设备地址。
IO命令管理单元将用于IO命令的存储设备地址,写入为该IO命令分配的CMB的缓存单元(图4中,用带有序号(1)的箭头指示)。可选地,IO命令管理单元还将同该IO命令对应的元数据或扩展信息写入为该IO命令分配的CMB的缓存单元。同该IO命令对应的元数据是例如该IO命令访问的逻辑地址。
CMB作为一段内存空间提供给主机,从而IO命令管理单元以访问主机内存的方式将存储设备地址写入CMB的缓存单元。
IO命令管理单元还将读命令写入SSD的命令队列(图4中,用带有序号(2)的箭头指示),该读命令中指示了为该读命令所分配的CMB的缓存单元的索引,并且该缓存单元中已被写入了用于该读命令的存储设备地址。作为举例,IO命令管理单元通过主机的NVMe设备驱动程序,生成遵循NVMe协议的读命令,并用CMB的缓存单元的索引作为遵循NVMe协议的读命令的用于SSD的逻辑地址。作为又一个例子,IO命令管理单元收到的用于读命令的地址是URI,IO命令管理单元将存储了同URI对应物理地址的CMB缓存单元的索引替代添加到命令队列的读命令的URI。依然作为举例,IO命令管理单元使用pread()***调用来将读命令写入SSD的命令队列,以及在调用pread()时,将其中代表逻辑地址的参数“__offset”用CMB缓存单元的索引替代。
存储设备的控制部件,从命令队列获取读命令。响应于识别出读命令指示了CMB的缓存单元的索引,控制部件还根据索引访问CMB的缓存单元,从中获取例如物理地址,根据物理地址从SSD的NVM中读取数据。并将数据搬移到由读命令的主机地址所指示的主机中的数据缓存。可选地,若识别出读命令未指示CMB的缓存单元的索引,而是指示了用于SSD的逻辑地址、物理地址或用于KV存储设备的关键字,控制部件根据读命令指示的逻辑地址、物理地址或用于KV存储设备的关键字从非易失存储介质读出数据。
响应于对从命令队列获取的读命令处理完成,控制部件还为读命令生成完成命令,并写入完成队列。作为举例,读命令所指示的CMB缓存单元的索引也被写入完成命令。完成命令还指示了例如读命令的处理结果,例如成功、失败和/或错误类型。可选地或进一步地,响应于读命令处理失败,控制部件将读命令对应的错误信息写入该读命令所指示的CMB的缓存单元,从而使主机有机会获取错误信息,以决策如何进行错误处理。若读命令处理成功,可选地,没有附加的信息被写入该读命令所指示的CMB的缓存单元。
主机的IO命令处理单元,通过NVMe驱动程序从完成队列获取指示了IO命令处理结果的完成命令(图4中,用带有序号(3)的箭头指示)。从完成命令获取读命令的处理结果。一个例子中,读命令处理成功,IO命令管理单元释放该完成命令所指示的CMB的缓存单元。可选地,完成命令中不写带CMB的缓存单元的索引,而由IO命令管理单元记录所发出的IO命令与CMB的缓存单元的索引的对应关系,并响应于收到完成命令,根据完成命令的命令ID而释放同该命令ID对应的CMB缓存单元。
在又一个例子中,读命令处理失败,IO命令管理单元根据从完成命令获取的CMB的缓存单元索引,访问CMB缓存单元,从CMB缓存单元读出该读命令的错误信息(图4中,用带有序号(4)的箭头指示),以及释放同该完成命令对应的CMB缓存单元。
图5是根据本申请的再一实施例操作存储设备的示意图。
主机提供给存储设备的写命令指示了例如符合开放通道固态存储设备规范的物理地址。提供给运行在主机的用户空间的IO命令管理单元的写命令,指示了存储空间地址。存储空间地址是例如逻辑地址、URI或物理地址。提供给IO命令管理单元的写命令还指示主机地址,主机地址用于存储待写入SSD的数据。
写命令用例如主机地址缓存的地址来指示主机地址。SSD根据写命令,从主机地址缓存获取地址列表,并根据地址列表将主机地址对应的多个存储空间的数据搬移到SSD,并写入由物理地址指示的非易失存储介质。可选地,主机地址对应的一个或多个存储空间由CMB提供,在将写命令添加到命令队列前,主机已经将写命令待写入的数据的部分或全部搬移到由CMB提供的存储空间中。
SSD包括命令队列、完成队列与CMB。CMB包括多个缓存单元,每个缓存单元用于容纳对应于一条IO命令的存储设备地址(物理地址)。可选地,缓存单元还用于存储同IO命令关联的元数据与扩展信息。依然可选地,缓存单元还用于容纳要通过完成命令传递给主机的IO命令处理结果。
主机的IO命令管理单元分配CMB的缓存单元,并将分配的CMB的缓存单元的索引提供给每个IO命令。
IO命令管理单元将用于写命令的存储设备地址,写入为该写命令分配的CMB的缓存单元(图5中,用带有序号(1)的箭头指示)。可选地,IO命令管理单元还将同该写命令对应的元数据或扩展信息写入为该写命令分配的CMB的缓存单元。同该写命令对应的元数据是例如该写命令访问的逻辑地址或者同该写命令要写入的数据对应的校验信息。
IO命令管理单元还将写命令写入SSD的命令队列(图5中,用带有序号(2)的箭头指示),该写命令中指示了为该写命令所分配的CMB的缓存单元的索引,并且该缓存单元中已被写入了用于该写命令的物理地址。依然作为举例,IO命令管理单元使用pwrite()***调用来将写命令写入SSD的命令队列,以及在调用pwrite()时,将其中代表逻辑地址的参数“__offset”用CMB缓存单元的索引替代。
存储设备的控制部件,从命令队列获取写命令。根据写命令的主机地址,将写命令待写入SSD的数据从主机的数据缓存搬移到SSD。可选地,若写命令待写入SSD的数据已经位于CMB中,可省略从数据缓存搬移数据的操作。
响应于识别出写命令指示了CMB的缓存单元的索引,控制部件还根据索引访问CMB的缓存单元,从中获取例如物理地址,根据物理地址,将写命令要写入SSD的数据写入物理地址所指示的非易失存储介质。
可选地,若识别出写命令未指示CMB的缓存单元的索引,而是指示了用于SSD的逻辑地址、物理地址或用于KV存储设备的关键字,控制部件根据写命令指示的逻辑地址、物理地址或用于KV存储设备的关键字将写命令要写入SSD的数据写入SSD的非易失存储介质。
响应于对从命令队列获取的写命令处理完成,控制部件还为写命令生成完成命令,并写入完成队列。作为举例,写命令所指示的CMB缓存单元的索引也被写入完成命令。完成命令还指示了例如写命令的处理结果。
主机的IO命令处理单元,通过NVMe驱动程序从完成队列获取指示了IO命令处理结果的完成命令(图5中,用带有序号(3)的箭头指示)。从完成命令获取写命令的处理结果。一个例子中,写命令处理成功,IO命令管理单元释放该完成命令所指示的CMB的缓存单元。
在又一个例子中,写命令处理失败,IO命令管理单元根据从完成命令获取的CMB的缓存单元索引,访问CMB缓存单元,从CMB缓存单元读出该写命令的错误信息(图5中,用带有序号(4)的箭头指示),以及释放同该完成命令对应的CMB缓存单元。
在依然又一个例子中,IO命令管理单元还向CMB缓存单元写入扩展信息,以指示SSD在将写命令待写入的数据搬移到SSD后立即向主机提供同写命令对应的完成命令,还是在将写命令待写入的数据存储到SSD的非易失存储介质后再向主机提供同写命令对应的完成命令。作为响应,SSD在获取了写命令后,根据写命令指示的CMB的缓存单元索引,访问CMB缓存单元,从CMB缓存单元取出扩展信息,以确定向主机提供同写命令对应的完成命令的时机。
根据本申请的有一个实施例,主机中运行的应用程序希望通过IO命令管理单元向SSD发出擦除命令。IO命令管理单元分配CMB的缓存单元,分配的缓存单元写入物理地址与代表擦除命令的扩展信息。IO命令管理单元还通过pread()或pwrite()***调用向SSD发出所谓的“读命令”或“写命令”。该“读命令”或“写命令”的参数“__offset”指示所分配的CMB的缓存单元索引。另一方面,SSD获取的IO命令虽然在形式上是“读命令”或“写命令”,但SSD识别出该命令指示了CMB的缓存单元的索引,并从对应的CMB缓存单元获取到扩展信息与物理地址,根据获取的扩展信息,SSD识别出该命令指示擦除操作,并实施对指定物理地址的擦除操作。
从而,IO命令管理单元通过例如read()、pread()、write()和/或pwrite()等***调用,得以向SSD发出不同于读命令或写命令的其他命令。以此方式,主机也得以向SSD发出自定义的私有命令。通过存储在CMB的缓存单元中的扩展信息指示了私有命令的含义以及可选地执行私有命令所需的参数,而SSD通过扩展信息识别出私有命令的含义并对其进行处理。
虽然当前申请参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种计算机,包括:处理器和开放通道存储设备;
所述处理器向所述开放通道存储设备的内存空间的缓存单元添加第一类地址,其中,第一类地址为存储设备的物理地址,所述内存空间为所述处理器可访问的由所述开放通道存储设备提供的内存空间;由所述缓存单元的索引替代IO命令所指示的第二类地址以生成IO命令,其中,第二类地址为逻辑地址;将IO命令发送给所述开放通道存储设备;
所述开放通道存储设备接收所述IO命令,并且根据IO命令中的缓存单元索引从缓存单元中获取第一类地址,根据第一类地址访问NVM。
2.根据权利要求1所述的计算机,其中,所述处理器还由KV存储设备的关键字替代IO命令所指示的第二类地址以生成IO命令;
所述开放通道存储设备接收所述IO命令,根据闪存转换层(FTL)将关键字转换为第一类地址,并根据第一类地址访问NVM。
3.根据权利要求1或2所述的计算机,其中,所述处理器根据访问的所述开放通道存储设备存储空间的逻辑地址生成第一类地址,或者将URI或关键字转化为第一类地址,以将第一类地址存储于所述开放通道存储设备的缓存单元。
4.根据权利要求1-3任一项所述的计算机,其中,所述处理器通过使用pread()/pwrite()***调用来操作存储设备驱动生成IO命令。
5.根据权利要求4所述的计算机,其中,所述处理器使用pread()/pwrite()***调用时,地址参数“__offset”被设置为缓存单元索引,存储设备驱动用所述地址参数“__offset”生成IO命令的第二类地址。
6.根据权利要求1-5任一项所述的计算机,其中,所述处理器响应于向缓存单元添加第一类地址,还向所述缓存单元添加同IO命令关联的元数据。
7.根据权利要求1-6任一项所述的计算机,其中,所述处理器响应于向缓存单元添加第一类地址,还向所述缓存单元添加同IO命令关联的扩展信息;
所述开放通道存储设备根据IO命令中的缓存单元索引从缓存单元中获取扩展信息,根据扩展信息知晓IO命令的扩展含义。
8.根据权利要求1-7任一项所述的计算机,其中,所述开放通道存储设备响应于IO命令处理完成而生成完成命令,完成命令包含对应的IO命令指示的缓存单元索引;
所述处理器根据完成命令包含的缓存单元索引释放缓存单元。
9.根据权利要求8所述的计算机,其中,所述开放通道存储设备向主机提供完成命令的时机为将写命令待写入的数据搬移到缓存单元后立即向主机提供同写命令对应的完成命令,或者将写命令待写入的数据存储到NVM后再向主机提供同写命令对应的完成命令。
10.根据权利要求1-9任一项所述的计算机,其中,所述开放通道存储设备响应于IO命令处理失败,将IO命令对应的错误信息写入所述IO命令所指示的缓存单元;
所述处理器根据失败的处理结果从缓存单元中获取错误信息。
CN202111356021.3A 2019-05-09 2019-05-09 一种计算机 Pending CN114064522A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111356021.3A CN114064522A (zh) 2019-05-09 2019-05-09 一种计算机

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910385222.2A CN111913892B (zh) 2019-05-09 2019-05-09 使用cmb提供开放通道存储设备
CN202111356021.3A CN114064522A (zh) 2019-05-09 2019-05-09 一种计算机

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201910385222.2A Division CN111913892B (zh) 2019-05-09 2019-05-09 使用cmb提供开放通道存储设备

Publications (1)

Publication Number Publication Date
CN114064522A true CN114064522A (zh) 2022-02-18

Family

ID=73050530

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202111356021.3A Pending CN114064522A (zh) 2019-05-09 2019-05-09 一种计算机
CN201910385222.2A Active CN111913892B (zh) 2019-05-09 2019-05-09 使用cmb提供开放通道存储设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910385222.2A Active CN111913892B (zh) 2019-05-09 2019-05-09 使用cmb提供开放通道存储设备

Country Status (2)

Country Link
CN (2) CN114064522A (zh)
WO (1) WO2020224662A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112486870A (zh) * 2020-11-16 2021-03-12 深圳宏芯宇电子股份有限公司 计算机***及计算机***控制方法
CN113722248B (zh) * 2021-07-28 2023-08-22 湖南国科微电子股份有限公司 命令处理方法及命令处理装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305524B2 (en) * 2004-10-08 2007-12-04 International Business Machines Corporation Snoop filter directory mechanism in coherency shared memory system
CN101266538B (zh) * 2008-05-06 2010-09-08 普天信息技术研究院有限公司 一种智能存储卡的接口访问控制方法
CN102436423B (zh) * 2011-10-13 2014-09-03 浙江大学 通用片外NorFlash核心数据保护的控制器及方法
CN103810113B (zh) * 2014-01-28 2016-07-06 华中科技大学 一种非易失存储器和动态随机存取存储器的融合内存***
US9813504B2 (en) * 2015-08-03 2017-11-07 Citrix Systems, Inc. Virtualizing device management services on a multi-session platform
CN106919339B (zh) * 2015-12-25 2020-04-14 华为技术有限公司 一种硬盘阵列及硬盘阵列处理操作请求的方法
IL260711B2 (en) * 2016-01-24 2024-02-01 Syed Kamran Hasan Computer security is based on artificial intelligence
US10481799B2 (en) * 2016-03-25 2019-11-19 Samsung Electronics Co., Ltd. Data storage device and method including receiving an external multi-access command and generating first and second access commands for first and second nonvolatile memories
US9940980B2 (en) * 2016-06-30 2018-04-10 Futurewei Technologies, Inc. Hybrid LPDDR4-DRAM with cached NVM and flash-nand in multi-chip packages for mobile devices
CN107783917B (zh) * 2016-08-26 2024-05-17 北京忆芯科技有限公司 生成nvm芯片接口命令的方法与装置
CN107818052B (zh) * 2016-09-13 2020-07-21 华为技术有限公司 内存访问方法及装置
CN108614671B (zh) * 2016-12-12 2023-02-28 北京忆恒创源科技股份有限公司 基于命名空间的键-数据访问方法与固态存储设备
US10073640B1 (en) * 2017-03-10 2018-09-11 Toshiba Memory Corporation Large scale implementation of a plurality of open channel solid state drives
CN109213433A (zh) * 2017-07-07 2019-01-15 华为技术有限公司 闪存设备中数据写入的方法及设备
CN107391391B (zh) * 2017-07-19 2019-05-14 深圳大普微电子科技有限公司 在固态硬盘的ftl实现数据拷贝的方法、***及固态硬盘
TWI645289B (zh) * 2017-10-31 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體操作方法

Also Published As

Publication number Publication date
CN111913892B (zh) 2021-12-07
WO2020224662A1 (zh) 2020-11-12
CN111913892A (zh) 2020-11-10

Similar Documents

Publication Publication Date Title
CN106354615B (zh) 固态硬盘日志生成方法及其装置
KR101301840B1 (ko) 비휘발성 메모리 장치의 데이터 처리 방법
US11675698B2 (en) Apparatus and method and computer program product for handling flash physical-resource sets
US20200356491A1 (en) Data storage device and method for loading logical-to-physical mapping table thereof
US11449270B2 (en) Address translation method and system for KV storage device
KR20200072639A (ko) 저장 장치 및 그것의 동작 방법
CN111913892B (zh) 使用cmb提供开放通道存储设备
CN111324414B (zh) Nvm存储介质模拟器
CN108628762B (zh) 一种固态存储设备及其处理io命令的方法
CN110515861B (zh) 处理刷写命令的存储设备及其方法
CN110865945B (zh) 存储设备的扩展地址空间
CN112148626A (zh) 压缩数据的存储方法及其存储设备
CN110968527A (zh) Ftl提供的缓存
CN111290974A (zh) 用于存储设备的缓存淘汰方法与存储设备
WO2018041258A1 (zh) 去分配命令处理的方法与存储设备
CN110532199B (zh) 预读方法及其存储控制器
CN112578993B (zh) 多平面nvm处理编程出错的方法与存储设备
KR20210142863A (ko) 데이터 처리 시스템의 동작 효율성을 높이기 위한 장치 및 방법
CN112579328A (zh) 处理编程出错的方法与存储设备
CN113051189A (zh) 为多命名空间提供不同数据保护级别的方法与存储设备
CN108614669B (zh) 解决哈希冲突的键-数据访问方法与固态存储设备
CN111258491B (zh) 降低读命令处理延迟的方法与装置
CN110659216A (zh) Nid分配方法及其存储设备
US20240168876A1 (en) Solving submission queue entry overflow using metadata or data pointers
CN118193053A (zh) NVMe命令处理的方法及其相关产品

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