CN117120985A - 用于存储设备应用的基于nvm主机控制器接口规范的持久性日志记录 - Google Patents
用于存储设备应用的基于nvm主机控制器接口规范的持久性日志记录 Download PDFInfo
- Publication number
- CN117120985A CN117120985A CN202180089034.0A CN202180089034A CN117120985A CN 117120985 A CN117120985 A CN 117120985A CN 202180089034 A CN202180089034 A CN 202180089034A CN 117120985 A CN117120985 A CN 117120985A
- Authority
- CN
- China
- Prior art keywords
- plog
- nvm
- command
- region
- memory
- 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
- 230000002085 persistent effect Effects 0.000 title claims abstract description 10
- 230000015654 memory Effects 0.000 claims abstract description 94
- 238000013507 mapping Methods 0.000 claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 21
- 238000005192 partition Methods 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims abstract description 6
- 238000012545 processing Methods 0.000 claims description 28
- 238000012005 ligant binding assay Methods 0.000 claims 4
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 208000031339 Split cord malformation Diseases 0.000 description 5
- 238000004645 scanning capacitance microscopy Methods 0.000 description 5
- 238000013068 supply chain management Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000005070 sampling 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
操作计算系统(100)的方法包括:定义用于计算系统的存储器设备(120)的非易失性存储器(NVM)的分区命名空间,该分区命名空间包括NVM的多个非重叠逻辑块地址(LBA)的多个NVM区域;将持久性日志记录(PLOG)标识(ID)映射到NVM区域,PLOG ID标识一个或多个NVM区域的PLOG区域;以及,响应于从计算系统的主机设备接收的特定于PLOG的命令,对NVM的PLOG区域执行特定于PLOG的访问操作。
Description
背景技术
存储器设备可以包括易失性和非易失性存储器。易失性存储器可能需要供电来维护数据,包括随机存取存储器(random-access memory,RAM)、动态随机存取存储器(dynamic random-access memory,DRAM)和同步动态随机存取存储器(synchronousdynamic random-access memory,SDRAM)等。非易失性存储器(non-volatile memory,NVM)可以通过在未通电时保留存储的数据来提供持久数据,并可以包括NAND闪存和/或NOR闪存等。
存储器设备的一些示例为硬盘驱动器(hard disk drive,HDD)、固态驱动器(solid-state drive,SSD)和存储级存储器(storage class memory,SCM)。所有这些类型的设备都可以包括NVM。NVM主机控制器接口规范(NVM express,NVMe)是设备接口协议,用于访问SSD和外围组件快速互连(peripheral component interconnect express,PCIe)卡等的非易失性存储器。将NVMe扩展为统一用于HDD、SSD和SCM的协议的接口协议会是有益的。但是,NVMe对于某些类型的数据传输可能效率低下。
发明内容
现在描述各种示例,以简化形式引入一些概念,将在下文的详细说明中进一步描述这些概念。发明内容并非旨在标识请求保护的主题的关键或必要特征,也并非旨在用于限制请求保护的主题的范围。
根据本公开的一个方面,提供了计算机实现的方法。该计算机实现的方法包括:定义用于存储器设备的非易失性存储器(non-volatile memory,NVM)的分区命名空间,以及将持久性日志记录(persistence logging,PLOG)标识(identifier,ID)映射到NVM区域。分区命名空间包括NVM的多个非重叠逻辑块地址(logical block address,LBA)的多个NVM区域,并且PLOG ID标识一个或多个NVM区域的PLOG区域。该方法还包括:响应于从系统的主机设备接收的特定于PLOG的命令,对NVM的PLOG区域执行特定于PLOG的访问操作。
可选地,在前述方面中,另一种实现方式提供了将PLOG ID映射到NVM区域,将PLOGID映射到与PLOG ID对应的PLOG区域的物理块地址(physical block address,PBA)。
可选地,在前述任一方面中,另一种实现方式提供了特定于PLOG的访问操作是将数据和元数据写入NVM的PLOG区域的PLOG附加操作。
可选地,在前述方面中,另一种实现方式提供了特定于PLOG的命令是PLOG附加命令,包括可编程字节级附加大小字段,该字段指示要在PLOG区域内附加的字节数。
可选地,在前述两个方面中的任一方面中,另一种实现方式提供了特定于PLOG的命令是PLOG附加命令,其对PLOG区域内的任何字节是字节可寻址的。
可选地,在前述任一方面中,另一种实现方式提供了特定于PLOG的访问操作是从NVM的PLOG区域读取数据和元数据的PLOG读取操作。
可选地,在前述任一方面中,另一种实现方式提供了特定于PLOG的命令包括命令序号字段;执行特定于PLOG的访问操作包括存储器设备以序号字段指示的顺序执行多个特定于PLOG的命令。
根据本公开的另一方面,提供了存储器设备,包括NVM和存储器控制器。存储器控制器包括存储器控制器处理电路,该存储器控制器处理电路被配置为根据分区命名空间将NVM映射到多个NVM区域,分区命名空间将NVM的多个非重叠LBA标识为多个NVM区域;将多个PLOG ID映射到NVM区域,每个PLOG ID标识一个或多个NVM区域的PLOG区域;解码从主机设备接收的特定于PLOG的命令;并响应于特定于PLOG的命令,对NVM的一个或多个PLOG区域执行特定于PLOG的访问操作。
可选地,在前述任一方面中,另一种实现方式提供了存储器控制器处理电路,被配置为将PLOG ID映射到与PLOG ID对应的PLOG区域的物理块地址(PBA)。
可选地,在前述两个方面中的任一方面中,另一种实现方式提供了存储器控制器处理电路,被配置为解码将数据和元数据写入NVM的PLOG区域的PLOG附加命令。
可选地,在前述方面中,另一种实现方式提供了存储器控制器处理电路,被配置为解码包括在PLOG附加命令中的字节级附加大小字段,该字节级附加大小字段指示要在PLOG区域中附加的字节数。
可选地,在前述任一方面中,另一种实现方式提供了特定于PLOG的访问操作是从NVM的PLOG区域读取数据和元数据的PLOG读取操作。
可选地,在前述任一方面中,另一种实现方式提供了存储器控制器处理电路,被配置为解码特定于PLOG的命令中的命令序号字段,并以该序号字段指示的顺序执行主机设备接收的多个命令中特定于PLOG的命令。
根据本公开的另一方面,提供了计算机系统,包括存储器设备和主机设备。存储器设备包括NVM和包括存储器控制器处理电路的存储器控制器。主机设备包括主机设备处理电路,该主机设备处理电路被配置为根据将NVM的多个非重叠LBA标识为多个NVM区域的分区命名空间将NVM映射到多个NVM区域;将多个PLOG ID映射到NVM区域,每个PLOG ID标识一个或多个NVM区域的PLOG区域;编码将由存储器控制器处理电路执行的特定于PLOG的命令。
可选地,在前述任一方面中,另一种实现方式提供了存储器控制器处理电路,被配置为将PLOG ID的LBA映射到与PLOG ID对应的PLOG区域的物理块地址(PBA)。
可选地,在前述任一方面中,另一种实现方式提供了主机设备处理电路,被配置为编码将数据和元数据写入NVM的PLOG区域的PLOG附加命令。
可选地,在前述方面中,另一种实现方式提供了PLOG附加命令,包括字节级附加大小字段,该字节级附加大小字段指示要在PLOG区域中附加的字节数。
可选地,在前述两个方面中的任一方面中,另一种实现方式提供了字节可寻址的PLOG附加命令。
可选地,在前述三个方面中的任一方面中,另一种实现方式提供了包括命令序号字段的PLOG附加命令。
可选地,在前述方面中的任一方面中,另一种实现方式提供了主机设备处理电路,被配置为编码从NVM的PLOG区域读取数据和元数据的PLOG读取命令。
附图说明
说明示例实施例的一些附图包含在具体实施方式的文本中。
图1是实现NVM主机控制器接口规范(NVM express,NVMe)接口的计算系统的图。
图2是实现一个或多个示例实施例的传统非易失性存储器(NVM)地址空间的图。
图3是实现一个或多个示例实施例的分区地址空间的图。
图4是实现一个或多个示例实施例的持久性日志记录(PLOG)地址空间的图。
图5是实现一个或多个示例实施例的操作计算系统的方法的流程图。
图6至图8是实现示例实施例的计算系统的框图。
图9是实现一个或多个示例实施例的PLOG附加命令数据结构的图示。
图10是实现一个或多个示例实施例的PLOG管理(Admin)命令数据结构的图示。
图11是实现一个或多个示例实施例的另一计算系统的框图。
具体实施方式
在下面的描述中,参考构成本文一部分的附图,在附图中通过说明示出了可以实践的具体实施例。这些实施例被足够详细地描述,以使本领域技术人员能够实践本发明,并且应当理解,可以使用其它实施例。在不脱离本发明的范围的情况下,可以进行结构、逻辑和/或电的改变。因此,以下对示例实施例的描述不应以限制性的意义来理解,并且本发明的范围由所附权利要求书限定。
在一个实施例中,本文描述的功能或算法可以在软件中实现。软件可以由存储于计算机可读介质或计算机可读存储设备(如一个或多个非瞬时性存储器或其它类型的基于硬件的本地或网络存储设备)中的计算机可执行指令构成。此外,此类功能与模块对应,模块可以是软件、硬件、固件或其任何组合。根据需要,可以在一个或多个模块中执行多个功能,所描述的实施例仅仅是示例。软件可以在数字信号处理器、ASIC、微处理器或在计算机系统(例如个人计算机、服务器或其它计算机系统)上运行的其它类型的处理器上执行,将这种计算机系统转变成专门编程的机器。
所述功能可以配置为例如使用软件、硬件、固件等执行操作。例如,短语“被配置为”可以指用于实现关联功能的硬件元件的逻辑电路结构。短语“被配置为”也可以指用于实现固件或软件的关联功能的编码设计的硬件元件的逻辑电路结构。术语“模块”是指可以使用任何合适的硬件(例如处理器等)、软件(例如应用等)、固件、或者硬件、软件和固件的任何组合来实现的结构元件。术语“逻辑”包括执行任务的任何功能。例如,流程图中所示的每个操作对应于执行该操作的逻辑。操作可以使用软件、硬件或固件等执行。术语“组件”、“系统”等可以指计算机相关实体、硬件、以及执行中的软件、固件、或其组合。组件可以是运行在处理器上的进程、对象、执行、程序、函数、子例程、计算机、或软件和硬件的组合。术语“处理器”可以指硬件组件,例如计算机系统的处理单元。
此外,所要求保护的主题可以实现为使用标准编程和工程技术来产生软件、固件、硬件或其任何组合,以控制计算设备实现所公开的主题的方法、装置或制品。本文中使用的术语“制品”旨在包括可从任何计算机可读存储设备或介质访问的计算机程序。计算机可读存储介质可以包括但不限于磁存储设备,例如硬盘、软盘、磁条、光盘、压缩磁盘(compactdisk,CD)、数字多功能磁盘(digital versatiledisk,DVD)、智能卡、闪存设备等。相反,计算机可读介质(即不限于存储介质)可以另外包括通信介质,例如用于无线信号的传输介质等。
图1是根据一些实施例的包括主机设备105和存储器设备120的计算系统100的示例的图。主机设备105包括存储器106和处理器108(即处理单元,或一个或多个其它设备、处理器或控制器)。主机设备105包括用于与外部设备和/或网络通信的通信接口111。主机设备105通信耦合到存储器设备120,并可以与存储器设备120交换数据。例如,主机设备105可以向存储器设备120写入数据和/或可以从存储器设备120读取数据。此外,主机设备105可以控制存储器设备120的操作。在一些实施例中,主机设备105可以经由通信接口111与存储器设备120交换通信,包括经由通信接口111读取和/或写入数据。在其它实施例中,主机设备105可以仅使用接口控制器112与存储器设备120交换通信,而不使用通信接口111。
主机设备105和存储器设备120各自可以包括接口控制器112或122,例如NVMe控制器112或122。接口控制器112或122可以包括多个接收器或驱动器电路(未示出),被配置为通过通信接口111发送或接收信号。接口控制器112或122可以包括接口电路,例如数据控制单元、采样电路或其它被配置为处理数据的中间电路(未示出)。主机设备105可以使用接口控制器112来交换主机设备105和存储器设备120之间的通信。
所示实施例中的存储器设备120包括接口控制器122、存储器控制器124和存储器元件130。存储器控制器124可以包括专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)、或布置或编程以管理到存储器阵列、来自存储器阵列或在存储器阵列内部的数据传输或操作的一个或多个其它处理电路。存储器元件130包括用于存储数据的多个存储器单元或元件。在某些示例中,存储器接口电路(未示出)位于存储器元件130和存储器控制器124之间。存储器元件130可以包括存储器阵列136(例如,一个或多个非易失性存储器元件阵列,例如NAND闪存阵列,和/或一个或多个其它存储器阵列(例如DRAM存储器阵列))。在某些示例中,存储器设备120可以包括多个存储器元件130,每个存储器元件130具有与存储器控制器124分离的控制逻辑。
图2是逻辑统一的传统NVM地址空间202的图。NVM地址空间202包含x个逻辑块地址(LBA)。NVMe是NAND闪存的主流接口协议。但是,NVMe无法满足涉及数千个HDD和SSD的大规模数据管理的需求。为了满足更大规模数据管理的需求,使用了分区地址空间。
图3是分区地址空间320的图,其中,图2中的NVM地址空间202被划分为y个分区命名空间(zoned namespace,ZNS)区域305。y个ZNS区域305被用于创建和定义与NVM地址空间202一起使用的ZNS。数据从区域的开始处根据块大小粒度被顺序写入ZNS区域305。在根据ZNS区域305写入NVM地址空间202之前,数据在主机处被缓冲,以将数据合并成对齐的块。在一些实施例中,块被形成为适合ZNS区域305。通常在这之后使用主机处的合并缓冲器和相应映射表将数据写入ZNS区域305和NVM地址空间202。这种按区域写入块对于SCM来说是低效的,并且对于分布式存储器系统来说甚至更加低效。
为了解决效率低下的问题,使用了ZNS接口协议的扩展,称为基于NVMe的持久性日志记录(PLOG)接口。基于NVMe的PLOG接口建立在NVMe ZNS接口的基础上,提供用于存储设备(如HDD、SSD和SCM)的统一的接口协议。
图4为向地址空间添加另一层寻址的PLOG地址空间418的图。当定义ZNS时,ZNS区域305被映射到PLOG标识(ID)。PLOG ID标识PLOG区域426,并且每个PLOG区域426被映射到一个或多个ZNS区域。因此,PLOG ID标识PLOG区域,PLOG区域标识ZNS区域,ZNS区域标识PBA,PBA指向物理存储器位置。作为映射的结果,PLOG ID指定物理存储器位置的块,其中PLOG ID可用于例如块读取和块写入操作。在所示的示例中,y个ZNS区域305映射到z个PLOG区域426,其中z等于或小于y。主机设备(例如,图1的主机设备105)可以向存储器控制器124发送命令以创建PLOG区域。PLOG区域426的大小是可变的,并且该命令可以设置PLOG大小和PLOG ID。然后,可以通过不同大小的PLOG区域426发生对NVM地址空间202的写入。
图5是操作包括存储器设备(例如图1的存储器设备120)和主机设备(例如图1的主机设备105)的计算系统的方法500的流程图。在块505处,定义用于存储器设备120的NVM的ZNS。ZNS包括多个NVM区域,每个NVM区域包括NVM的多个非重叠逻辑块地址(LBA)。ZNS可以由存储器控制器124定义,可以由主机设备105定义,或者可以由执行ZNS管理(Admin)命令的另一个设备定义。
在块510处,将PLOG ID映射到NVM区域。每个PLOG ID标识一个或多个NVM区域的PLOG区域。如本文其它地方所解释的,该映射可以由主机设备105或存储器控制器124执行,并且该映射可以驻留在主机设备105或存储器设备120中。在块515处,响应于从主机设备接收的特定于PLOG的命令,对NVM的PLOG区域执行特定于PLOG的访问操作。
特定于PLOG的命令可以是PLOG读取命令或PLOG写入命令。PLOG读取或写入命令可以指定PLOG区域,以在存储器阵列和主机存储器之间传输。此外,PLOG读取或写入命令可以是存储器阵列的PLOG区域和主机存储器之间的字节级传输。
在图1的示例中,PLOG映射由主机设备105执行。主机设备存储器106包括由主机设备105生成的将PLOG地址映射到LBA的映射表。如同在NVMe接口中,LBA和数据经由通信接口111向存储器设备120的存储器控制器124发送。存储器设备120包括将LBA映射到物理块地址(PBA)的LBA-PBA映射表。存储器控制器124解码命令并将数据写入由PBA指示的NVM。
图6是计算系统600的示例的框图,计算系统600包括主机设备605和具有基于NVMe的PLOG接口的存储器设备620。在图6的示例中,PLOG映射由存储器控制器624执行。存储器控制器624生成可存储在存储器元件630中的映射表。映射表将PLOG地址映射到PBA。这通过消除PLOG地址到LBA映射和LBA到PBA映射,消除了一级间接映射,并将其替换为一个PLOG地址到PBA映射。这将PLOG区域的映射和命名服务转移到存储器设备。这可以提高系统600的性能。
基于NVMe的PLOG接口还可以将排序转移到存储器设备。图7是计算系统700的另一个示例的框图。如同在图6的示例中,存储器设备720的存储器元件730包括由存储器控制器724生成的将PLOG地址映射到PBA的映射表。主机设备705编码多个PLOG附加命令,并且这些命令被发送到存储器设备。为了保留命令的顺序,PLOG附加命令包括序号字段(例如序列号或序号(seq)#1至序号(seq)#n)。PLOG附加命令的顺序和因此发生的来自主机设备的写入事务由存储器设备处理,而不需要在写入命令上设置队列深度(例如,队列深度=1),这通常用于维护NVMe设备中单个主机事务的顺序。
图8是计算系统800的另一个示例的框图。系统800包括向存储器设备820发送PLOG附加命令的两个主机设备(805A、805B)。该示例扩展了图7示例的概念。存储器设备820包括将PLOG地址映射到PBA的映射表。协议与图7中的相同,存储器设备820使用跨多个主机的全局序号或序列号执行命令的顺序,而不需要保留获取/释放命令,这些命令通常用于维护NVMe设备中的多个主机的事务顺序。
图9是PLOG附加命令数据结构900的示例的图示。PLOG附加命令数据结构900包括字节级附加大小字段945,该字节级附加大小字段945指示要在PLOG区域内附加的字节数。为了支持对存储器设备的命令排序,PLOG附加命令数据结构包括排序使能位950,该排序使能位950指示排序已启用,并且包括序(或序列)号955。PLOG区域起始逻辑块地址(PLOGzone start logical block address,PZSLBA)字段952可以定义PLOG区域的最低逻辑块地址。在图9的示例中,PZSLBA字段952在物理区域页(physical region page,PRP)条目字段947之后,排序使能位950和附加大小字段945在PZLSBA字段952之后,附加大小字段945在排序使能位950之后。序号955在初始逻辑块参考标记(initial logical block referencetag,ILBRT)字段957之后。
图10是PLOG管理命令数据结构1000的示例的图示。PLOG管理命令数据结构1000可用于实现PLOG命名服务。PLOG ID 1060可以映射到ZNS的区域。PLOG管理命令数据结构1000可用于使用PLOG ID 1060和PLOG大小1065创建和删除PLOG区域。PLOG大小1065是ZNS区域的数量,因此PLOG区域的大小是可变的。在变型中,PLOG管理命令数据结构1000可以指示PZSLBA 1052,其中PLOG ID 1060在PZSLBA 1052之后。PLOG状态1070可以指示PLOG区域的状态,例如区域打开、关闭、空、满、只读或离线。PLOG ID 1060的字节不必如图10的示例所示在PLOG管理命令数据结构1000中连续,PLOG ID 1060的一些字节可以在PLOG大小1065和PLOG状态1070之后。
图11是用于执行根据示例实施例的方法和算法的计算系统1100的框图。无需在各种实施例中使用所有组件。
一个示例是计算设备,可以包括处理单元1102、存储器1103、可移动存储1110和不可移动存储1112。虽然示例计算设备被图示和描述为计算机1100,但在不同的实施例中,计算设备可以是不同的形式。例如,计算设备可以是主机设备、服务器、路由器或虚拟路由器。
虽然各种数据存储元件被图示为计算机1100的一部分,但存储也可以或可选地包括可经由网络访问的基于云的存储,例如互联网或基于服务器的存储。该存储可以包括SSD、HDD或SCM,并且可以包括可以在其上运行解析器的存储器控制器,允许通过SSD和主存储器之间的I/O通道传输经过解析、过滤的数据。
存储器1103可以包括易失性存储器1114和非易失性存储器1108。计算机1100可以包括或有权访问包括各种计算机可读介质的计算环境,例如易失性存储器1114和非易失性存储器1108、可移动存储1110和不可移动存储1112。计算机存储包括随机存取存储器(random-access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)或电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、闪存或其它存储器技术、光盘只读存储器(compact disc read-only memory,CDROM)、数字多功能磁盘(Digital Versatile Disk,DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁存储设备,或任何其它能够存储计算机可读指令的介质。
计算机1100可以包括或有权访问包括输入接口1106、输出接口1104和通信接口1116的计算环境。输出接口1104可以包括显示设备,例如也可以用作输入设备的触摸屏。输入接口1106可以包括以下中的一个或多个:触摸屏、触摸板、鼠标、键盘、相机、一个或多个设备专用按钮、集成在计算机1100内或经由有线或无线数据连接耦合到计算机1100的一个或多个传感器以及其它输入设备。通信接口1116与外部设备和网络交换通信。计算机1100可以使用连接到一个或多个远程计算机(例如数据库服务器)的通信连接在联网环境中操作。远程计算机可以包括个人计算机(personal computer,PC)、服务器、路由器、网络PC、对等设备或其它公共数据流网络交换机等。通信连接可以包括局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、蜂窝、Wi-Fi、蓝牙或其它网络。根据一个实施例,计算机1100的各种组件与系统总线1120连接。
存储在计算机可读介质上的计算机可读指令(例如程序1118)可由计算机1100的处理单元1102执行。在一些实施例中,程序1118包括用于实现本文描述的一个或多个方法的软件。硬盘、CD-ROM和RAM是包括非瞬时性计算机可读介质(如存储设备)的物品的一些示例。术语计算机可读介质和存储设备不包括被认为太短暂的载波。存储还可以包括网络存储,如存储区域网络(storage area network,SAN)。计算机程序1118连同工作空间管理器1122可用于使处理单元1102执行本文描述的一个或多个方法或算法。
虽然上文详细描述了几个实施例,但其它修改是可能的。例如,图中描述的逻辑流程不需要所示的特定顺序或连续顺序来达到期望的结果。可以向所描述的流程提供其它步骤或从所描述的流程中去除步骤,并可以向所描述的系统添加其它组件或从所描述的系统移除组件。其它实施例可以在所附权利要求书的范围内。
Claims (20)
1.一种操作计算系统的方法,所述方法包括:
定义用于所述计算系统的存储器设备的非易失性存储器NVM的分区命名空间,所述分区命名空间包括所述NVM的多个非重叠逻辑块地址LBA的多个NVM区域;
将持久性日志记录PLOG标识ID映射到所述NVM区域,PLOG ID标识一个或多个NVM区域的PLOG区域;以及
响应于从所述计算系统的主机设备接收的特定于PLOG的命令,对所述NVM的PLOG区域执行特定于PLOG的访问操作。
2.根据权利要求1所述的方法,其中,将所述PLOG ID映射到所述NVM区域是将PLOG ID映射到与所述PLOG ID对应的PLOG区域的物理块地址PBA。
3.根据权利要求1所述的方法,其中,所述特定于PLOG的访问操作是将数据和元数据写入所述NVM的所述PLOG区域的PLOG附加操作。
4.根据权利要求3所述的方法,其中,所述特定于PLOG的命令是PLOG附加命令,包括可编程字节级附加大小字段,所述可编程字节级附加大小字段指示要在所述PLOG区域内附加的字节数。
5.根据权利要求3所述的方法,其中,所述特定于PLOG的命令是PLOG附加命令,对所述PLOG区域内的任何字节是字节可寻址的。
6.根据权利要求1所述的方法,其中,所述特定于PLOG的访问操作是从所述NVM的所述PLOG区域读取数据和元数据的PLOG读取操作。
7.根据权利要求1所述的方法,其中,所述特定于PLOG的命令包括命令序号字段;所述执行特定于PLOG的访问操作包括所述存储器设备以所述序号字段指示的顺序执行多个特定于PLOG的命令。
8.一种存储器设备,包括:
非易失性存储器NVM;和
存储器控制器,包括存储器控制器处理电路,所述存储器控制器处理电路被配置为:
根据分区命名空间将所述NVM映射到多个NVM区域,所述分区命名空间将所述NVM的多个非重叠逻辑块地址LBA标识为所述多个NVM区域;
将多个持久性日志记录PLOG标识ID映射到所述NVM区域,每个PLOG ID标识一个或多个NVM区域的PLOG区域;
解码从主机设备接收的特定于PLOG的命令;以及
响应于所述特定于PLOG的命令,对所述NVM的一个或多个PLOG区域执行特定于PLOG的访问操作。
9.根据权利要求8所述的存储器设备,其中,所述存储器控制器处理电路被配置为将所述PLOG ID映射到与所述PLOG ID对应的PLOG区域的物理块地址PBA。
10.根据权利要求8所述的存储器设备,其中,所述存储器控制器处理电路被配置为解码将数据和元数据写入所述NVM的PLOG区域的PLOG附加命令。
11.根据权利要求10所述的存储器设备,其中,所述存储器控制器处理电路被配置为解码包括在所述PLOG附加命令中的字节级附加大小字段,所述字节级附加大小字段指示要在所述PLOG区域中附加的字节数。
12.根据权利要求8所述的存储器设备,其中,所述特定于PLOG的访问操作是从所述NVM的所述PLOG区域读取数据和元数据的PLOG读取操作。
13.根据权利要求8所述的存储器设备,其中,所述存储器控制器处理电路被配置为:
解码所述特定于PLOG的命令中的命令序号字段;以及
以所述序号字段指示的顺序,执行从所述主机设备接收的多个命令中所述特定于PLOG的命令。
14.一种计算机系统,包括:
存储器设备,包括:
非易失性存储器NVM;和
存储器控制器,包括存储器控制器处理电路;
主机设备,包括主机设备处理电路,所述主机设备处理电路被配置为:
根据分区命名空间将所述NVM映射到多个NVM区域,所述分区命名空间将所述NVM的多个非重叠逻辑块地址LBA标识为所述多个NVM区域;
将多个持久性日志记录PLOG标识ID映射到所述NVM区域,每个PLOG ID标识一个或多个NVM区域的PLOG区域;以及
编码将由所述存储器控制器处理电路执行的特定于PLOG的命令。
15.根据权利要求14所述的计算机系统,其中,所述存储器控制器处理电路被配置为将PLOG ID的所述LBA映射到与所述PLOGID对应的PLOG区域的物理块地址PBA。
16.根据权利要求14所述的计算机系统,其中,所述主机设备处理电路被配置为编码将数据和元数据写入所述NVM的PLOG区域的PLOG附加命令。
17.根据权利要求16所述的计算机系统,其中,所述PLOG附加命令包括字节级附加大小字段,所述字节级附加大小字段指示要在所述PLOG区域中附加的字节数。
18.根据权利要求16所述的计算机系统,其中,所述PLOG附加命令是字节可寻址的。
19.根据权利要求16所述的计算机系统,其中,所述PLOG附加命令包括命令序号字段。
20.根据权利要求14所述的计算机系统,其中,所述主机设备处理电路被配置为编码从所述NVM的PLOG区域读取数据和元数据的PLOG读取命令。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2021/016587 WO2022169450A1 (en) | 2021-02-04 | 2021-02-04 | Persistence logging over nvm express for storage devices application |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117120985A true CN117120985A (zh) | 2023-11-24 |
Family
ID=74798080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180089034.0A Pending CN117120985A (zh) | 2021-02-04 | 2021-02-04 | 用于存储设备应用的基于nvm主机控制器接口规范的持久性日志记录 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230376201A1 (zh) |
EP (1) | EP4278263A1 (zh) |
CN (1) | CN117120985A (zh) |
WO (1) | WO2022169450A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11416161B2 (en) * | 2019-06-28 | 2022-08-16 | Western Digital Technologies, Inc. | Zone formation for zoned namespaces |
US11797433B2 (en) * | 2019-12-20 | 2023-10-24 | Sk Hynix Nand Product Solutions Corp. | Zoned namespace with zone grouping |
US20200393974A1 (en) * | 2020-08-27 | 2020-12-17 | Intel Corporation | Method of detecting read hotness and degree of randomness in solid-state drives (ssds) |
JP2022050016A (ja) * | 2020-09-17 | 2022-03-30 | キオクシア株式会社 | メモリシステム |
-
2021
- 2021-02-04 EP EP21708856.6A patent/EP4278263A1/en active Pending
- 2021-02-04 CN CN202180089034.0A patent/CN117120985A/zh active Pending
- 2021-02-04 WO PCT/US2021/016587 patent/WO2022169450A1/en unknown
-
2023
- 2023-08-03 US US18/365,111 patent/US20230376201A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4278263A1 (en) | 2023-11-22 |
WO2022169450A8 (en) | 2023-07-06 |
US20230376201A1 (en) | 2023-11-23 |
WO2022169450A1 (en) | 2022-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7089830B2 (ja) | 不揮発性メモリデータの書き込み管理のための装置、システム、及び、方法 | |
US10282128B2 (en) | Data deduplication | |
TWI507869B (zh) | 虛擬化儲存裝置之系統、設備及方法 | |
KR100923990B1 (ko) | 플래시 저장 장치의 특성을 기반으로 한 컴퓨팅 시스템 | |
CN107111452B (zh) | 应用于计算机系统的数据迁移方法和装置、计算机系统 | |
CN110032333B (zh) | 存储器系统及其操作方法 | |
CN106649144B (zh) | 数据储存设备及其操作方法 | |
US8489805B2 (en) | Memory devices operated within a communication protocol standard timeout requirement | |
US8918554B2 (en) | Method and apparatus for effectively increasing a command queue length for accessing storage | |
KR102285275B1 (ko) | 하이브리드 메모리 드라이브, 컴퓨터 시스템, 및 멀티 모드 하이브리드 드라이브를 동작시키기 위한 관련 방법 | |
US20180366158A1 (en) | Method for accessing shingled magnetic recording smr disk, and server | |
KR102585883B1 (ko) | 메모리 시스템의 동작 방법 및 메모리 시스템 | |
CN111625188A (zh) | 一种存储器及其数据写入方法与存储系统 | |
CN114371812B (zh) | 控制器及其操作方法 | |
CN114036079A (zh) | 映射表压缩方法、系统、存储器控制器、固态硬盘及数据读取方法 | |
CN113448487B (zh) | 写入闪存管理表的计算机可读取存储介质、方法及装置 | |
KR20220103340A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN116643690A (zh) | 存储器子系统处的主机限定区群组配置 | |
US11656786B2 (en) | Operation method of storage device | |
US20230376201A1 (en) | Persistence logging over nvm express for storage devices application | |
TWI749490B (zh) | 寫入閃存管理表的電腦程式產品及方法及裝置 | |
KR20220130526A (ko) | 메모리 시스템 및 그 동작 방법 | |
KR20220076803A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN113838503A (zh) | 具有容量可伸缩性的存储系统和操作其的方法 | |
TWI835027B (zh) | 更新主機與閃存位址對照表的方法及電腦程式產品及裝置 |
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 |