CN114077549A - 基于数据特性寻址区域命名空间和非分区存储器 - Google Patents

基于数据特性寻址区域命名空间和非分区存储器 Download PDF

Info

Publication number
CN114077549A
CN114077549A CN202110931180.5A CN202110931180A CN114077549A CN 114077549 A CN114077549 A CN 114077549A CN 202110931180 A CN202110931180 A CN 202110931180A CN 114077549 A CN114077549 A CN 114077549A
Authority
CN
China
Prior art keywords
region
payload
memory
data
memory device
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
CN202110931180.5A
Other languages
English (en)
Inventor
L·伯特
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN114077549A publication Critical patent/CN114077549A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • 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/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

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)

Abstract

本申请涉及基于数据特性来寻址区域命名空间和非分区存储器。本发明提供一种存储器装置,其包括配置为非分区可寻址存储器的第一区和配置为区域命名空间的第二区。接收包括有效负载和所述有效负载的功能指定的写入命令,其中功能描述指示所述有效负载是否包括可顺序写入的数据。基于所述有效负载的所述功能指定,确定所述存储器装置的所述第一区或所述第二区中的对应一个,其中所述第二区将存储可顺序写入的数据。所述有效负载存储在所述存储器装置的所述第一区或所述第二区中的所述对应一个中。

Description

基于数据特性寻址区域命名空间和非分区存储器
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及基于数据特性寻址区域命名空间和非分区存储器。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统将数据存储在存储器装置处且从存储器装置检索数据。
发明内容
本申请的方面涉及一种系统,其包括:存储器装置,其包括配置为非分区可寻址存储器的第一区和配置为区域命名空间的第二区;以及处理装置,其以操作方式与所述存储器装置耦合,以执行包括以下的操作:接收包括有效负载和所述有效负载的功能指定的写入命令,其中功能描述指示所述有效负载是否包括可顺序写入的数据;基于所述有效负载的所述功能指定识别所述存储器装置的所述第一区或所述第二区中的对应一个,其中所述第二区将存储可顺序写入的数据;以及将所述有效负载存储在所述存储器装置的所述第一区或所述第二区中的所述对应一个中。
本申请的另一方面涉及一种方法,其包括:接收包括逻辑块地址、有效负载和指示所述有效负载是否被指定为元数据的标记的写入命令;响应于确定所述标记指示所述有效负载被指定为元数据,识别对应于存储器装置的第一区的第一命名空间标识符,其中所述第一区配置为非分区命名空间;将所述逻辑块地址和所述第一命名空间标识符转换为所述存储器装置的所述第一区中的物理块地址;以及将所述有效负载写入到所述存储器装置的所述第一区中的所述物理块地址。
本申请的又一方面涉及一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时使得所述处理装置执行包括以下的操作:接收包括有效负载和所述有效负载的功能指定的写入命令,其中功能描述指示所述有效负载是否包括可顺序写入的数据;基于所述有效负载的所述功能指定识别所述存储器装置的第一区或第二区中的对应一个,其中所述第一区配置为非分区可寻址存储器且所述第二区配置为区域命名空间,其中所述第二区将存储可顺序写入的数据;以及将所述有效负载存储在所述存储器装置的所述第一区或所述第二区中的所述对应一个中。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,图式不应视为将本公开限制于特定实施例,而是仅用于解释和理解。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2说明根据本公开的一些实施例的实例主机系统的框图。
图3说明根据本公开的一些实施例的实例存储器子系统的框图。
图4是根据本公开的一些实施例的用于标记写入请求以指示写入请求的有效负载的功能指定的实例方法的流程图。
图5和6是根据本公开的一些实施例的用于执行经标记的写入命令以将有效负载写入到适当存储器区的实例方法的流程图。
图7是其中本公开的实施例可操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及根据数据的特性将数据存储在区域命名空间存储器或非分区存储器中。存储器子系统可以是存储装置、存储器模块,或存储装置与存储器模块的组合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(如存储数据的存储器装置)的存储器子系统。主机系统可提供将存储在存储器子系统处的数据且可请求将从存储器子系统检索的数据。
存储器子系统可包含多个存储器装置以存储来自主机系统的数据。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。存储器子系统包含存储器子系统控制器,其可与存储器装置通信以执行如在存储器装置处读取数据、写入数据或擦除数据等操作和其它此类操作。下文结合图1更详细地描述存储器子系统控制器。
主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,如在存储器子系统的存储器装置上存储数据和从存储器子系统的存储器装置读取数据。如由主机请求指定,待读取或写入的数据称为“主机数据”。主机请求可包含主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、命名空间),其为主机系统与主机数据相关联的位置。逻辑地址信息(例如,LBA、命名空间)可以是主机数据的元数据的部分。元数据、主机数据或两者一起可在下文中称为“有效负载”。用于错误校正的元数据、主机数据和奇偶校验数据可共同地形成错误校正码(ECC)码字。元数据还可包含数据版本(例如,用于区分所写入的数据的老化程度)、有效位图(指定哪些LBA或逻辑传送单元含有有效数据)等。
存储器装置中的每一个可包含一或多个存储器单元阵列。存储器单元(“单元”)是存储信息的电子电路。取决于单元类型,单元可存储二进制信息的一或多个位,且具有与所存储的位数目相关的各种逻辑状态。逻辑状态可由二进制值(如“0”和“1”)或此类值的组合表示。举例来说,单层级单元(SLC)可存储一个信息位且具有两种逻辑状态,多层级单元(MLC)可存储两个信息位且具有四种逻辑状态,三层级单元(TLC)可存储三个信息位且具有八种逻辑状态。
在某些实施方案中,文件系统可用作通过提供存储、检索和更新数据以及管理一或多个存储器装置上的可用空间的程序来组织存储器子系统的一或多个存储器装置上的用户数据的方式。文件系统以有效的方式组织数据且可调谐到存储器装置的特定特性。在各种类型的数据存储装置上使用文件系统来维持计算机文件的物理位置。文件系统通常以颗粒方式分配空间,通常使用存储器装置上的多个物理单元。文件系统负责组织文件和目录,且跟踪装置的哪些区域属于某些文件以及哪些区域未被使用。文件系统含有存储来自在主机系统上运行的应用程序或操作系统的实际数据的数据块,以及元数据块。此文件系统元数据含有关于用于存储实际数据的数据结构的设计、结构和布局的信息。在其它实施方案中,对象存储可代替文件系统使用。举例来说,在某些大规模计算实施方案中,当那些对象的特征更加合适时(例如,与文件一起存储的全面元数据的存在消除了与文件系统相关联的分层文件结构),对象可代替文件使用。
叠瓦式磁记录(SMR)硬盘驱动器将数据存储在部分重叠的磁道中,以增加存储密度,且因此增加硬盘驱动器的容量。使用重叠磁道格式,因为使用现有硬盘驱动器技术不能将写磁头制造得像读磁头一样窄(例如,因为将写磁头减小到更小的尺寸将导致由写磁头产生的磁场不足以改变存储媒体的磁化)。当写入每一磁道时,磁道与先前写入的磁道的一部分重叠,留下可随后由读磁头读取但太窄而无法由写磁头更新的剩余部分。因此,写入到磁道会覆写相邻磁道的区域。为了避免覆写现有数据,磁道被分组成区域,且写入到区域的数据在所述区域中的有效数据的最后一个磁道之后附加。数据按顺序写入到每一区域内的磁道。如果将修改有效磁道中的数据,那么将所述区域中的所有有效磁道读取到存储器中且用修改后的数据重新写入。因此,SMR硬盘驱动器具有写入命令按顺序写入数据(例如,写入到存储媒体上的顺序物理块)的要求。然而,为了支持非顺序地存储元数据的现有文件系统,SMR硬盘驱动器可例如通过将非顺序逻辑块地址映射到顺序物理块地址而提供将有限数目的非顺序写入转换为顺序写入的特征。此转换可由硬盘驱动器控制器在I/O操作之间的闲置时间期间执行。举例来说,硬盘驱动器每秒可执行数百(例如,200到300)个I/O操作,且硬盘驱动器控制器有足够的时间将随机写入转换为顺序写入(例如,对于每一I/O操作,至少100微秒可为可用的)。
某些存储器装置还配置有区域命名空间。在区域命名空间中,将存储器装置的地址空间划分成允许随着存储器装置的容量增加而对数据进行更有效管理的区域。然而,当与具有区域命名空间的存储器装置交互时,设计成与常规文件系统一起工作的主机系统可能面临某些挑战。举例来说,常规文件系统可以小到4千字节(KB)大小的块来写入数据,而区域命名空间存储器装置可具有在大致100KB(例如,64KB,128KB,196KB)的范围内的最佳写入大小。
此外,区域命名空间并不直接支持乱序写入,因此对区域命名空间的随机写入被拒绝而不被执行。许多文件系统利用就地写入方法(即,随机写入,在本文中也称为“非顺序”写入),通常具有比对于区域命名空间最优的粒度更小的粒度。举例来说,文件系统元数据通常使用随机写入写入。然而,在区域命名空间中,从每一区域的开头开始顺序地执行写入。由SMR硬盘驱动器执行的转换技术在每秒执行更多的I/O操作且不具有足够的处理能力在可用时间内(例如,在1微秒内)执行重新映射的固态存储器装置中是不可行的。因此,区域命名空间尽管非常适合于存储如SMR的文件系统的顺序数据,但并不提供使用随机写入写入的有效支持数据,如由SMR文件系统写入的文件系统元数据。
本公开的方面通过提供存储器子系统来解决以上和其它缺陷,所述存储器子系统有效地组合用于随机写入数据(例如,元数据)的非分区命名空间和用于在同一存储器子系统(例如,SSD)中顺序写入数据(例如,“主机数据”)的区域命名空间。通过使用非分区命名空间来存储元数据且使用区域命名空间来存储主机数据,存储器子系统可支持现有文件系统,如SMR文件系统。元数据的预期大小通常为文件系统的主机数据的大小的分数(例如,小于百分之一),因此可基于针对主机数据分配的区域命名空间的大小来确定非分区命名空间的大小。存储器子系统可基于每一写入命令的有效负载是元数据还是数据而将写入命令从主机引导到非分区命名空间或区域命名空间。相对较小的非分区命名空间可对应于使用具有适用于存储元数据的相对较长的编程/擦除寿命的单元(例如,TLC或SLC)的存储器区,所述元数据比主机数据更频繁地写入。区域命名空间可对应于使用更经济地适合于存储较大量的不频繁写入的数据(如主机数据)的单元(例如,QLC)的存储器区。
本公开的优点包含但不限于更有效地使用存储器子系统来为如叠瓦式磁记录(SMR)文件系统的文件系统提供固态存储。不需要修改设计成用于与磁盘存储装置一起使用的现有文件系统来适应存储器子系统与磁盘存储装置之间的差异,如与存储随机写入的元数据相关的那些差异,同时还使用有效地支持顺序写入的元数据的区域命名空间。此外,可将随机写入的元数据存储在具有较长寿命的存储器装置中,且较不频繁地写入的顺序主机数据可存储在较经济但具有较短寿命的存储器装置中。因此,本公开的方面产生执行得更好且持续时间更长的存储器装置。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类的组合。
存储器子系统110可以是存储装置、存储器模块,或存储装置与存储器模块的组合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可以是计算装置,如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(IoT)的装置、嵌入式计算机(例如,运载工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的多个存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与...耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含如电连接、光学连接、磁连接等的连接。
主机系统120可包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器),和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110例如将数据写入到存储器子系统110和从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是(但不限于)随机存取存储器(RAM),如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,如三维交叉点(“3D交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2DNAND)和三维NAND(3DNAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,如SLC、MLC、TLC、QLC、PLC或这些的任何组合。在一些实施例中,特定存储器装置可包含SLC部分和存储器单元的MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为可指代用于存储数据的存储器装置的逻辑单元的页。对于一些类型的存储器(例如,NAND),页可被分组以形成块。
尽管描述了如非易失性存储器单元的3D交叉点阵列和NAND型快闪存储器(例如,2D NAND、3D NAND)的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器,或电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行如在存储器装置130处读取数据、写入数据或擦除数据之类的操作和其它此类操作。存储器子系统控制器115可包含硬件,如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路。存储器子系统控制器115可以是微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可包含处理装置,所述处理装置包含配置成执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明的实例中,存储器子系统控制器115的本地存储器119包含配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可替代地依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130的所需存取。存储器子系统控制器115可负责其它操作,如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路以经由物理主机接口与主机系统120通信。主机接口电路可将从主机系统接收的命令转换成命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换成主机系统120的信息。
存储器子系统110还可以包含未说明的额外电路或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)和地址电路(例如,行解码器和列解码器),所述地址电路可从存储器子系统控制器115接收地址且解码所述地址以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115进行操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110是包含原始存储器装置130的受管理存储器装置,所述原始存储器装置130具有在裸片上的控制逻辑(例如,本地控制器132)和用于相同存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统110包含存储器区管理器113。在一个实施方案中,存储器区管理器113可管理跨越存储器装置130和存储器装置140的不同区/部分的数据的写入和存储。如上文所描述,存储器装置130可包含非易失性存储器装置(例如,NAND)。在一个实施例中,存储器装置130的第一区配置有非分区命名空间,且存储器装置130的第二区配置有区域命名空间。非分区命名空间可对应于非分区可寻址存储器区,其可以是不包含在区域命名空间中的存储器装置130的一部分。存储元数据的第一区(其对应于非分区命名空间)的大小与第二区(其对应于区域命名空间)的大小和存储器装置130的总容量相比相对较小。第一区可包含例如TLC或SLC存储器单元,且第二区可包含例如QLC存储器单元。
存储器区管理器113可确定在哪个命名空间中存储包含在写入请求中的有效负载。将有效负载存储在命名空间中导致有效负载存储在配置为命名空间的区的存储器单元中。因此,举例来说,将有效负载存储在非分区命名空间中导致有效负载存储在第一区的存储器单元中,且将有效负载存储在区域命名空间中导致有效负载存储在第二区的存储器单元中。尽管在本文中的实例中描述特定命名空间、区和存储器单元,但可使用任何合适的命名空间、区或存储器单元。举例来说,在另一实施方案中,可存在两个非分区命名空间,其中的一个对应于包含TLC存储器单元的区,且其中的另一个对应于包含SLC存储器单元的区,且存储器区管理器113可基于有效负载的特性(如有效负载的大小以及有效负载的功能指定)确定三个命名空间(第一常规、第二常规或区域命名空间)中的哪一个存储包含在写入请求中的有效负载。因此,举例来说,大小小于阈值字节数目的元数据可存储在第一非分区区中,且大小大于阈值字节数目的元数据可存储在第二非分区区中。
在特定实施例中,存储器子系统控制器115包含存储器区管理器113的至少一部分。在特定实施例中,存储器区管理器113是主机系统110、应用程序或操作系统的部分。在其它实施例中,本地媒体控制器135包含存储器区管理器113的至少一部分且配置成执行本文中所描述的功能性。
存储器区管理器113可从主机系统120、从存储器子系统控制器115或从存储器子系统110的一些其他组件接收写入命令。写入命令可包含逻辑地址、有效负载和反映有效负载的特性的标记。特性可表示有效负载中的数据的功能指定或有效负载中的数据的预期更新频率。在一个实施方案中,写入请求的源可以是文件系统,在此情况下,写入命令中的标记可指示有效负载中的数据是数据还是元数据。在另一实施方案中,写入请求的源可以是键值存储,在此情况下,写入命令中的标记可指示有效负载中的数据是键还是值。
当存储器装置通过NVMe协议配置时,每一命名空间可以是一定数量的一或多个存储器装置130-140,其可以被格式化成逻辑块(例如,LBA空间的范围)。NVMe协议提供对单个命名空间的存取,其呈现为文件系统和应用程序可部署在其上而没有任何修改的标准块装置。存储器区管理器113基于请求的一或多个特性(如包含在请求中的标记)识别每一主机请求(例如,每一读取或写入请求)的区(或对应的命名空间)中的一个,且将有效负载存储在所识别的区(或对应的命名空间)中。
在特定实施例中,来自主机文件系统的写入请求可由被设计成拦截写入请求且确定写入请求的某些特性的软件架构在主机系统上拦截。软件架构可例如实施为在Linux内核层级处操作的装置映射器(例如,作为驱动器堆栈的部分),以用于将物理块装置映射到较高层级的虚拟块装置上。
装置映射器可通过查询文件系统来确定与每一写入命令相关联的有效负载是否对应于元数据或主机数据。装置映射器可接着将标记与写入命令相关联,以将有效负载的功能指定提供为元数据或主机数据,且将写入命令发送到存储子系统(例如,经由主机接口)。存储子系统在接收到写入命令时可使用标记来识别有效负载的功能指定。如果标记指示有效负载是元数据,那么存储子系统可将有效负载写入到非分区命名空间,或如果标记指示有效负载是主机数据,那么存储子系统可将有效负载写入到区域命名空间。此外,由于非分区命名空间存储元数据且是区域命名空间的大小的分数,因此非分区命名空间可经济地包含存储器区,其中物理存储器块是TLC或SLC NAND存储器,其相对具有相对较长的编程/擦除寿命。由于区域命名空间存储主机数据且预期被顺序写入(例如,如在由SMR文件系统存储主机数据的情况下),因此区域命名空间可包含存储器区,其中物理存储器块是QLCNAND存储器,其可比TLC或SLC NAND存储器更经济地存储大量数据。
可由存储器子系统使用在执行写入命令时构造的数据分配表来处理读取命令。数据分配表可包含写入有效负载的逻辑块地址与有效负载的对应功能指定之间的关联。在接收到读取命令时,存储器子系统可通过从数据分配表中检索与逻辑块地址相关联的功能指定来确定有效负载是在非分区命名空间还是在区域命名空间中。举例来说,如果逻辑块地址的功能指定是元数据,那么有效负载在非分区命名空间中,且如果功能指定是主机数据,那么有效负载在区域命名空间中。可使用逻辑块地址从所识别的命名空间中检索有效负载,且将其提供到主机文件系统。
因此,存储器子系统可有效地使用用于随机写入数据的非分区命名空间和用于顺序写入数据的区域命名空间,以有效地对SMR文件系统或顺序和非顺序写入数据的其他文件系统执行读取和写入操作。区域文件系统可将QLC NAND存储装置用于主机数据以更经济地满足存储装置的增长的所需容量,而常规文件系统可将具有较长编程/擦除寿命的NAND存储装置(如TLC或SLC NAND)用于主机数据的主机文件系统所存储的相对少量的元数据。
基于上文所介绍的标记,存储器区管理器113可识别用于存储有效负载的存储器装置130的区。举例来说,如果标记指示有效负载中的数据是来自文件系统的元数据,那么存储器区管理器113可将存储器装置130的第一区识别为用于存储有效负载的区。如果标记指示有效负载中的数据是来自文件系统的数据,那么存储器区管理器113可将存储器装置130的第二区识别为用于存储有效负载的区。类似地,如果标记指示有效负载中的数据是来自键值存储(KVS)的键,那么存储器区管理器113可识别第一区。如果标记指示有效负载中的数据是来自KVS的值,那么存储器区管理器113可识别第二区。
在一个实施方案中,标记可指示预期频繁更新有效负载中的数据(例如,在指定时间段内至少一次),在此情况下,存储器区管理器113可将第一区域识别为用于存储有效负载的区。替代地,如果标记指示预期不频繁更新有效负载中的数据,那么存储器区管理器113可将第二区识别为用于存储有效负载的区。第二区可包含可以是面向块的存储器,且可具有比第一区的存储器更高的时延。第一区的存储器可以是面向字节的,且可具有比第二区的存储器更小的容量,所述第二区的存储器可以是高容量存储器。也就是说,用于存储频繁更新的数据的第一区的低时延存储器可以是单层级或三层级单元存储器,而用于存储较不频繁更新的数据的第二区的高容量存储器可以是具有每单元较高位数目的存储器(例如,四层级单元存储器)。
一旦存储器区管理器113已识别出要在其上存储有效负载的区(或对应的命名空间),存储器区管理器113就可将有效负载存储在所识别的区(或对应的命名空间)中。存储器区管理器113可接着更新数据分配表以使逻辑地址与反映有效负载在存储器装置上的位置的所识别的区的指示相关联。
图2说明根据本公开的一些实施例的实例主机系统的框图200。在一个实施方案中,主机系统120包含操作系统210,所述操作系统210包含文件系统211、数据分配装置映射器220和系统表250。操作系统210还可包含键值存储或另一类型的应用程序(未图示)。系统表250可存储由文件系统211存储的数据的描述符,如关于每一文件的信息,包含元数据和数据。文件系统211可发送包含有效负载的写入请求212。写入请求(在本文中也称为写入命令)可以是主机请求,其包含逻辑地址和要在逻辑地址处写入到存储子系统的数据或元数据的有效负载。
在特定实施例中,来自主机文件系统的写入请求212可由被设计成拦截写入请求且确定写入请求的某些特性的软件架构在主机系统120上拦截。软件架构可例如实施为在Linux内核层级处操作的装置映射器220(例如,作为驱动器堆栈的部分),以用于将物理块装置映射到较高层级的虚拟块装置上。装置映射器220可将信息从虚拟块装置传递到存储器子系统。在一些实施方案中,可在内核空间层级处或在用户空间层级处实施软件架构。
在某些实施方案中,装置映射器220可拦截由文件系统211发出的或来自键值存储(KVS)的写入命令212。在文件系统211中,例如,来自主机系统120的写入请求可用于数据或元数据。来自主机系统120的用于数据的写入请求可含有来自在主机系统上运行的应用程序或操作系统210的实际数据,而用于元数据的写入请求可含有关于用于存储实际数据的数据结构的设计、结构和布局的信息。数据写入请求的大小倾向于比元数据大,且预期以最少的更新来存储较长时间段。元数据写入请求倾向于比数据写入小,且预期会频繁更新。元数据也应该是一致的,且因此当写入元数据时,可暂停其它I/O操作。因而,元数据写入请求预期以低时延快速执行。装置映射器可基于文件系统211的系统表250来确定例如写入命令212是用于数据还是用于元数据。系统表250可存储由文件系统存储的数据的描述符。装置映射器220可搜索系统表250以识别与写入请求中指定的数据相关联的描述符,例如写入请求中指定的数据是用于元数据还是数据。装置映射器220可接着指示写入命令的特性,如有效负载的功能指定或有效负载的预期更新频率。举例来说,装置映射器220可确定有效负载是表示元数据还是数据。装置映射器可接着将反映此特性的标记与写入命令相关联。
在特定实施例中,数据分配装置映射器220可拦截写入请求212。数据分配装置映射器220可使用系统表250识别关于有效负载的特性。举例来说,数据分配装置映射器220可将查询214发送到文件系统211,以确定有效负载的特性,如有效负载是数据还是元数据。文件系统211可响应于查询214而将有效负载特性216(如指示有效负载是数据还是元数据的功能指定)提供到数据分配装置映射器220。作为另一实例,文件系统211可发送包含先前存储的有效负载的逻辑地址的读取请求224,以检索先前存储的有效负载。数据分配装置映射器220可拦截读取请求224,但在此实例中,数据分配装置映射器220不识别读取请求的有效负载特性,这是因为有效负载不具备读取请求224。在另一实例中,数据分配装置映射器220可确定有效负载是键值存储中的键还是值。
一旦确定有效负载的特性,数据分配装置映射器220就可将描述有效负载的特性的属性附加到写入请求。在一个实施方案中,反映有效负载的特性的标记与写入请求相关联。数据分配装置映射器220可设置驱动器堆栈中的字段的值。举例来说,Linux驱动器堆栈具有StreamID字段,数据分配装置映射器220可以使用所述StreamID字段作为标记来指示有效负载的特性。Linux驱动器经编程以保留和保存StreamID字段。也就是说,一旦设置,例如,当命令通过块层级和NVMe驱动器时,StreamID标记将不会受到干扰。因此,在一些实施方案中,装置映射器可设置StreamID标记以指定写入命令中的数据的类型,且可接着将写入命令连同StreamID一起转发到存储器子系统。在文件系统实例中,将streamID设置成零可指示有效负载是用于数据的,且将streamID设置成一可指示有效负载是用于元数据的。在键值存储实例中,将streamID设置成零可指示有效负载是用于值的,且将streamID设置成一可指示有效负载是用于键的。可存在使标记与写入请求相关联以反映有效负载的特性的其它方式。数据分配装置映射器220或操作系统210的其它组件可基于写入请求212将包含描述有效负载的特性的属性的写入请求222经由主机接口230发送到存储器子系统110。数据分配装置映射器220可经由主机接口230将基于读取请求224的读取请求226发送到存储器子系统110。
图3说明根据本公开的一些实施例的包含存储器区管理器113的实例存储器子系统110的框图300。存储器区管理器113可存储数据分配表304,其可将逻辑地址与反映数据在存储器装置上的位置的功能指定或其它标识符相关联。在一个实施例中,分配表304可存储在图1的本地存储器119中。存储器子系统110还包含上文参考图1所描述的存储器装置130。存储器装置130可包含第一存储器区320,其可包含对应于非区域命名空间322(例如,如上文所描述的非分区命名空间)的逻辑存储器块的物理存储器块的集合。存储器装置130还可包含第二存储器区330,其可包含对应于区域命名空间332的逻辑存储器块的物理存储器块的集合。
在一个实施例中,存储器区管理器113可从主机系统120接收指定逻辑地址、标记和有效负载的写入命令302。存储器区管理器113可基于标记识别存储有效负载的存储器装置130的区。标记可表示有效负载的特性,如有效负载中的数据的功能指定或数据的预期更新频率。举例来说,标记可指示有效负载是表示元数据或数据,还是键或值。在另一实例中,标记可指示有效负载中的数据是否预期频繁地更新,例如,在指定时间段内至少一次(如可能是元数据),或数据是否预期在具有较少期望更新的情况下被长期存储。作为实例,频繁地更新的数据可每秒更新一次,而较不频繁地更新的数据可每30秒更新一次。
在特定实施例中,存储器区管理器113可基于标记确定在存储器装置130的存储器区320、330中的哪一个中存储有效负载。如果标记指示有效负载是用于元数据(或键值对的键,或其预期频繁更新),那么存储器区管理器113可确定将存储有效负载的所识别的存储器区是第一存储器区320。作为实例,第一存储器区320可包含具有低时延的相对较小容量的存储器(如TLC或SLC NAND)。替代地,如果标记指示有效负载是用于数据(或键值对的值,或其预期长期存储),那么存储器区管理器113可确定将存储有效负载的所识别的存储器区是第二存储器区330。作为实例,第二存储器区330可包含较大容量、较不依赖于性能的存储器(如QLC NAND)。较大容量存储器装置可以是面向块的,且可具有比低时延存储器装置更高的时延。另外,低时延存储器装置可以是面向字节的,且可具有比高容量存储器装置更小的容量。也就是说,用于存储频繁更新的数据的低时延存储器装置可以是单层级或三层级单元存储器,而用于存储较不频繁更新的数据的高容量存储器装置可以是具有每单元较高位数目的存储器(例如,四层级单元存储器)。所识别的存储器区可配置为对应的命名空间。举例来说,第一存储器区320可配置为非区域(例如,常规)命名空间322,且第二存储器区330可配置为区域命名空间332。由于存储器区320、330与命名空间322、332之间的对应关系,存储器区320、330或命名空间322、332可用于寻址区320、330中的存储器。
如果所识别的区是第一存储器区320,那么存储器区管理器113可将有效负载写入到第一存储器区320(箭头306)。在此情况下,有效负载作为主机元数据324存储在第一存储器区320中的基于指定逻辑块地址(其可由存储器子系统110转换为物理块地址)的位置处。替代地,如果所识别的区是第二存储器区330,那么存储器区管理器113可将有效负载写入到第二存储器区330(箭头312)。在此情况下,有效负载作为主机数据334存储在第二存储器区330中的基于指定逻辑块地址(其可由存储器子系统110转换为物理块地址)的位置处。在另一实例中,可存在多个区域命名空间,且如果所识别的区是第二存储器区330,那么可将有效负载存储在由写入命令302的逻辑地址中的命名空间标识符指定的区域命名空间中。也就是说,目的地区域命名空间可以是与区域命名空间332不同的命名空间,其可理解为可由写入命令302的逻辑地址中指定的区域命名空间覆盖的默认区域命名空间332。
在另一实例中,由于第一存储器区可存储除主机元数据324之外的主机数据326,因此写入命令302可包含由存储器区管理器113(例如,基于除功能指定外的特性)存储在第一存储器区320中的主机数据,这是因为具有主机数据的功能指定的有效负载存储在第二存储器区330中。
存储器区管理器113可通过使写入命令302中的逻辑地址与来自写入命令302的标记(例如,功能指定)或有效负载写入到的所识别区的其它指示相关联来更新数据分配表304。区的指示可以是例如与所识别的区相关联的标识符(例如,“1”或“2”)、与所识别的命名空间相关联的标识符(例如,“非分区”或“区域”)或有效负载的特性(例如,“元数据”或“数据”的指定)。
在一个实施例中,存储器区管理器113可从主机系统120接收指定逻辑地址的读取命令310。存储器区管理器113可基于逻辑地址识别存储器装置130的区,从所述区检索由读取命令请求的数据。存储器区管理器113可例如通过在数据分配表304中搜索在读取命令310中指定的逻辑地址来从数据分配表304中检索所请求的数据所在的区的指示。如果存储器区管理器113将数据存储在逻辑地址处,那么存储所述区的数据的指示与分配表中的逻辑地址相关联。存储器区管理器113可通过识别存储器区320、330中的哪一个对应于区的指示来检索数据。举例来说,如果区的指示是区标识符,如“1”或“2”,那么可基于区标识符来识别对应区。作为另一实例,如果区的指示是命名空间标识符(例如,“非分区”或“区域”),那么可基于命名空间标识符来识别命名空间322、332中的对应一个。作为又一实例,如果区的指示是有效负载的特性(例如,“元数据”或“数据”的指定),那么可基于有效负载的特性(例如,第一存储器区320对应于指定“元数据”且第二存储器区330对应于指定“主机数据”)来识别区320、330(或命名空间322、332)中的对应一个。
存储器区管理器113可从存储器区320、330中的所识别的一个的逻辑地址的逻辑块地址部分(或对应于相应区320、330的命名空间322、332中的所识别的一个)检索数据。如果所识别的区是第一存储器区320,那么存储器区管理器113可从第一存储器区320检索指定逻辑块地址处的主机元数据324(箭头308),且将所检索的主机元数据324发送到主机系统120(箭头316)。替代地,如果所识别的区是第二存储器区330,那么存储器区管理器113可从第二存储器区330检索指定逻辑块地址处的主机数据334(箭头314),且将所检索的主机数据334发送到主机系统120(箭头316)。在另一实例中,由于第一存储器区可存储除主机元数据324之外的主机数据326,因此第一存储器区可含有指定逻辑块地址处的主机数据326,在此情况下,可从第一存储器区320检索主机数据326(箭头308)且将其返回到主机系统120(箭头316)。
图4是根据本公开的一些实施例的由主机系统实施的用于标记写入请求以指示有效负载的功能指定的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图2的数据分配装置映射器220执行。尽管以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明的实施例应仅作为实例理解,且所说明的过程可以不同次序执行,且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
在操作410处,处理逻辑从文件系统接收包含有效负载的写入请求。写入请求还可包含待写入有效负载的逻辑地址。可替代地从键值存储或其它应用程序接收写入请求。在操作420处,处理装置使用与文件系统(或键值存储)相关联的数据结构来确定有效负载的功能指定(或其它特性)。与应用程序相关联的数据结构可以是描述有效负载的系统表。举例来说,文件系统系统表可描述有效负载是用于数据还是元数据。作为另一实例,在键值存储实例中,键值存储系统表可描述有效负载是用于键还是用于值。与应用程序相关联的数据结构不限于这些实例。
在操作430处,处理逻辑将反映有效负载的功能指定(或其它特性)的标记与写入请求相关联。有效负载中的数据的功能指定,如有效负载中的数据是表示元数据或数据,还是键或值。替代地或另外,有效负载的另一特性可表示有效负载中的数据的预期更新频率。在一个实施例中,与写入请求相关联的标记可以是驱动器堆栈的部分。举例来说,如上文所描述,标记可以是Linux驱动器堆栈中的StreamID。
在操作440处,处理逻辑将写入命令发布到存储器子系统。写入命令包含有效负载和标记,且还可包含在写入命令中接收到的逻辑地址。存储器子系统可以是SSD,如上文所描述。存储器子系统可包含例如一或多个单层级或三层级单元存储装置类型和一或多个四层级单元存储装置类型。
图5是根据本公开的一些实施例的由存储器子系统控制器实施的用于执行经标记的写入命令以将有效负载写入到适当存储器区的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的存储器区管理器113执行。尽管以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明的实施例应仅作为实例理解,且所说明的过程可以不同次序执行,且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
在操作510处,处理逻辑接收包含有效负载和有效负载的功能指定(或其它特性)的写入命令。有效负载中的数据的功能指定可指示有效负载中的数据是表示文件系统中的元数据或数据,还是键值对的键或值。功能指定还可理解为指示有效负载是否包含可顺序写入的数据。替代地或另外,有效负载的另一特性可表示有效负载中的数据的预期更新频率。写入命令还可包含待写入有效负载的逻辑地址。
在操作520处,处理逻辑基于有效负载的功能指定识别存储器装置的第一区或第二区中的对应一个。第二区可配置为用于存储可顺序写入的数据的区域命名空间。如上文参考图3所描述,如果处理装置确定有效负载中的数据的功能指定是元数据(或键值对的键),那么处理装置可识别用于存储有效负载的存储器装置的第一区。如果处理装置确定有效负载的功能指定是数据(或键值对的值),那么处理装置可识别用于存储有效负载的存储器装置的第二区。在操作530处,处理逻辑将有效负载存储在存储器装置的所识别的对应第一或第二存储器区中。在操作540处,处理逻辑更新数据分配表以使逻辑地址与有效负载的功能指定(或所识别的第一或第二存储器区的其它指示)相关联。
图6是根据本公开的一些实施例的由存储器子系统控制器实施的用于执行经标记的写入命令以将有效负载写入到适当存储器区的实例方法600的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法600由图1的存储器区管理器113执行。尽管以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明的实施例应仅作为实例理解,且所说明的过程可以不同次序执行,且一些过程可并行地执行。另外,可以在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
在操作602处,处理逻辑接收包含逻辑块地址、有效负载和指示有效负载是否被指定为元数据的标记的写入命令。在操作604处,处理装置确定标记是否指示有效负载被指定为元数据。如果是,那么在操作608处,处理装置识别对应于配置为非分区命名空间的第一存储器区的第一命名空间ID。举例来说,第一存储器区可包含TLC或SLC NAND存储器。在操作610处,处理装置将逻辑块地址和第一命名空间ID转换为第一存储器区中的物理块地址。在操作612处,处理装置将有效负载写入到第一存储器区中的物理块地址。
如果操作604确定标记指示有效负载未被指定为元数据,那么在操作614处,处理逻辑识别对应于配置为分区命名空间的第二存储器区的第二命名空间ID。举例来说,第二存储器区可包含QLC NAND存储器。在操作616处,处理装置将逻辑块地址和第二命名空间ID转换为第二存储器区中的物理块地址。在操作618处,处理装置将有效负载写入到第二存储器区中的物理块地址。
图7说明计算机系统700的实例机器,在所述实例机器内可执行用于使得所述机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的存储器区管理器113的操作)。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云端计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(按顺序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,虽然说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或联合地执行指令的集合(或多个集合)以执行本文中所论述的方法中的任何一或多种。
实例计算机系统700包含经由总线730彼此通信的处理装置702、主存储器704(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),如同步DRAM(SDRAM)或RDRAM等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储系统718。
处理装置702表示一或多个通用处理装置,如微处理器、中央处理单元等。更具体地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702也可以是一或多个专用处理装置,如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702配置成执行用于执行本文中所论述的操作和步骤的指令726。计算机系统700可进一步包含网络接口装置708以经由网络720通信。
数据存储系统718可包含机器可读存储媒体724(也称为计算机可读媒体),所述机器可读存储媒体上存储有一或多个指令集726或体现本文所描述的方法或功能中的任何一或多个的软件。指令726还可在其由计算机系统700执行期间完全或至少部分地驻存在主存储器704内和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718和/或主存储器704可对应于图1的存储器子系统110。
在一个实施例中,指令726包含用于实施对应于存储器装置选择组件(例如,图1的存储器区管理器113)的功能性的指令。虽然在实例实施例中将机器可读存储媒体724展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应认为包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的任何一或多种的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体和磁性媒体。
已依据对计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里且通常认为是引起所期望的结果的操作的自洽序列。操作为要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数字等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可指将计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理数量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘,包含软盘、光盘、CD-ROM和磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
本文中呈现的算法和显示本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前文说明书中,已参考其特定实例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本发明进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

Claims (20)

1.一种系统,其包括:
存储器装置,其包括配置为非分区可寻址存储器的第一区和配置为区域命名空间的第二区;以及
处理装置,其以操作方式与所述存储器装置耦合,以执行包括以下的操作:
接收包括有效负载和所述有效负载的功能指定的写入命令,其中功能描述指示所述有效负载是否包括可顺序写入的数据;
基于所述有效负载的所述功能指定识别所述存储器装置的所述第一区或所述第二区中的对应一个,其中所述第二区将存储可顺序写入的数据;以及
将所述有效负载存储在所述存储器装置的所述第一区或所述第二区中的所述对应一个中。
2.根据权利要求1所述的系统,其中当所述功能指定对应于元数据时,所述第一区或所述第二区中的所述对应一个是所述第一区,且当所述功能指定对应于数据时,所述第一区或所述第二区中的所述对应一个是所述第二区。
3.根据权利要求2所述的系统,其中存储所述有效负载包括:当所述功能指定对应于元数据时将所述有效负载存储在所述存储器装置的所述第一区中,且当所述功能指定对应于数据时将所述有效负载存储在所述存储器装置的所述第二区中。
4.根据权利要求2所述的系统,其中当所述功能指定对应于元数据时,所述有效负载包括随机存取写入数据。
5.根据权利要求2所述的系统,其中当所述功能指定对应于数据时,所述有效负载包括顺序写入数据。
6.根据权利要求1所述的系统,其中所述第一区包括三层级单元TLC存储器或单层级单元SLC存储器中的至少一个,且其中所述第二区包括四层级单元QLC存储器。
7.根据权利要求1所述的系统,其中从文件系统接收所述写入命令,且由所述文件系统使用与所述文件系统相关联的数据结构来确定所述有效负载的所述功能指定。
8.根据权利要求7所述的系统,其中所述文件系统包括叠瓦式磁记录SMR文件系统。
9.根据权利要求1所述的系统,其中所述写入命令进一步包括逻辑地址,所述操作进一步包括:
更新数据分配表以将所述逻辑地址与所述有效负载的所述功能指定相关联。
10.根据权利要求9所述的系统,所述操作进一步包括:
接收包括逻辑地址的读取命令;
使用所述数据分配表识别与所接收的逻辑地址相关联的功能指定;
基于与所述所接收的逻辑地址相关联的所述功能指定识别所述存储器装置的所述第一区或所述第二区中的所述对应一个;以及
从所述存储器装置的所述第一区或所述第二区中的所述对应一个中检索一或多个块。
11.根据权利要求1所述的系统,其中所述有效负载的所述功能指定包括指示所述有效负载是否包括元数据或数据的标记。
12.一种方法,其包括:
接收包括逻辑块地址、有效负载和指示所述有效负载是否被指定为元数据的标记的写入命令;
响应于确定所述标记指示所述有效负载被指定为元数据,识别对应于存储器装置的第一区的第一命名空间标识符,其中所述第一区配置为非分区命名空间;
将所述逻辑块地址和所述第一命名空间标识符转换为所述存储器装置的所述第一区中的物理块地址;以及
将所述有效负载写入到所述存储器装置的所述第一区中的所述物理块地址。
13.根据权利要求12所述的方法,其中当所述标记指示所述有效负载被指定为元数据时,所述有效负载包括随机存取写入数据。
14.根据权利要求12所述的方法,其进一步包括:
响应于确定所述标记指示所述有效负载被指定为主机数据,识别对应于所述存储器装置的第二区的第二命名空间标识符,其中所述第二区配置为分区命名空间;
将所述逻辑块地址和所述第二命名空间标识符转换为所述存储器装置的所述第二区中的物理块地址;以及
将所述有效负载写入到所述存储器装置的所述第二区中的所述物理块地址。
15.根据权利要求14所述的方法,其中当所述标记指示所述有效负载被指定为主机数据时,所述有效负载包括顺序写入数据。
16.根据权利要求14所述的方法,其中所述第一区包括三层级单元TLC存储器或单层级单元SLC存储器中的至少一个,且其中所述第二区包括四层级单元QLC存储器。
17.一种非暂时性计算机可读存储媒体,其包括指令,所述指令在由处理装置执行时使得所述处理装置执行包括以下的操作:
接收包括有效负载和所述有效负载的功能指定的写入命令,其中功能描述指示所述有效负载是否包括可顺序写入的数据;
基于所述有效负载的所述功能指定识别所述存储器装置的第一区或第二区中的对应一个,其中所述第一区配置为非分区可寻址存储器且所述第二区配置为区域命名空间,其中所述第二区将存储可顺序写入的数据;以及
将所述有效负载存储在所述存储器装置的所述第一区或所述第二区中的所述对应一个中。
18.根据权利要求17所述的非暂时性计算机可读存储媒体,其中当所述功能指定对应于元数据时,所述第一区或所述第二区中的所述对应一个是所述第一区,且当所述功能指定对应于数据时,所述第一区或所述第二区中的所述对应一个是所述第二区。
19.根据权利要求18所述的非暂时性计算机可读存储媒体,其中存储所述有效负载包括:当所述功能指定对应于元数据时将所述有效负载存储在所述存储器装置的所述第一区中,且当所述功能指定对应于数据时将所述有效负载存储在所述存储器装置的所述第二区中。
20.根据权利要求17所述的非暂时性计算机可读存储媒体,其中所述第一区包括三层级单元TLC存储器或单层级单元SLC存储器中的至少一个,且其中所述第二区包括四层级单元QLC存储器。
CN202110931180.5A 2020-08-13 2021-08-13 基于数据特性寻址区域命名空间和非分区存储器 Pending CN114077549A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/992,728 US11422745B2 (en) 2020-08-13 2020-08-13 Addressing zone namespace and non-zoned memory based on data characteristics
US16/992,728 2020-08-13

Publications (1)

Publication Number Publication Date
CN114077549A true CN114077549A (zh) 2022-02-22

Family

ID=80222890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110931180.5A Pending CN114077549A (zh) 2020-08-13 2021-08-13 基于数据特性寻址区域命名空间和非分区存储器

Country Status (2)

Country Link
US (2) US11422745B2 (zh)
CN (1) CN114077549A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220048569A (ko) * 2020-10-13 2022-04-20 에스케이하이닉스 주식회사 메모리 시스템에서 저장 공간을 제어하는 장치 및 방법
US20230050976A1 (en) * 2021-08-12 2023-02-16 Seagate Technology Llc File system aware computational storage block
US11928336B2 (en) 2022-03-03 2024-03-12 Samsung Electronics Co., Ltd. Systems and methods for heterogeneous storage systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080209114A1 (en) * 1999-08-04 2008-08-28 Super Talent Electronics, Inc. Reliability High Endurance Non-Volatile Memory Device with Zone-Based Non-Volatile Memory File System
WO2005043394A1 (ja) * 2003-10-31 2005-05-12 Matsushita Electric Industrial Co., Ltd. 情報記録媒体、情報記録媒体に対するアクセス装置及びアクセス方法
US9128820B1 (en) * 2012-06-18 2015-09-08 Western Digital Technologies, Inc. File management among different zones of storage media
IN2014DE00500A (zh) * 2014-02-21 2015-08-28 Netapp Inc
US10725925B2 (en) * 2018-09-13 2020-07-28 Seagate Technology Llc Metadata-specific cache policy for device reliability

Also Published As

Publication number Publication date
US20220050630A1 (en) 2022-02-17
US20220398045A1 (en) 2022-12-15
US11422745B2 (en) 2022-08-23

Similar Documents

Publication Publication Date Title
CN112433956B (zh) 逻辑到物理表高速缓存中基于顺序写入的分区
CN114730300B (zh) 对区命名空间存储器的增强型文件系统支持
US20220398045A1 (en) Addressing zone namespace and non-zoned memory based on data characteristics
CN113851166B (zh) 存储器子系统中的加速读取转译路径
US11422945B2 (en) Generating, maintaining, or utilizing a compressed logical-to-physical table based on sequential writes
KR20220129662A (ko) 순차적으로 프로그래밍하는 메모리 서브시스템의 순차 판독 최적화
CN115605852A (zh) 在主机存储器缓冲区中存储转换层元数据
CN112835828A (zh) 用于非连续源及目的地存储器地址的直接存储器存取(dma)命令
CN112948284A (zh) 高速缓存媒体中的动态存取粒度
CN113961142B (zh) 包含各种时延和容量的存储器装置的存储器子系统
US20240069739A1 (en) Effective storage allocation for sequentially-written memory devices
CN113849424A (zh) 依序编程的存储器子系统中的直接高速缓存命中和传递
US20230350798A1 (en) Namespace management for memory sub-systems
WO2023201462A1 (en) Namespace level valid translation unit count
CN112805692A (zh) 混合式双列直插式存储器模块中的高速缓存操作
US20230195350A1 (en) Resequencing data programmed to multiple level memory cells at a memory sub-system
CN115145480A (zh) 具有经分区名字空间的存储器子系统的分区块暂存组件
CN114579044A (zh) 存储器子系统中的温度感知数据管理
CN113918479B (zh) 用于并行独立线程的低位密度存储器高速缓存的方法及系统
US11928063B1 (en) Dynamic updates to logical-to-physical address translation table bitmaps
US11922011B2 (en) Virtual management unit scheme for two-pass programming in a memory sub-system
CN117591005A (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