CN114730300A - 对区命名空间存储器的增强型文件***支持 - Google Patents
对区命名空间存储器的增强型文件***支持 Download PDFInfo
- Publication number
- CN114730300A CN114730300A CN202080081567.XA CN202080081567A CN114730300A CN 114730300 A CN114730300 A CN 114730300A CN 202080081567 A CN202080081567 A CN 202080081567A CN 114730300 A CN114730300 A CN 114730300A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory device
- host
- region
- namespace
- 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
- 230000015654 memory Effects 0.000 claims abstract description 260
- 238000012545 processing Methods 0.000 claims abstract description 42
- 238000000034 method Methods 0.000 claims description 38
- 238000005192 partition Methods 0.000 claims description 11
- 230000002085 persistent effect Effects 0.000 claims description 8
- 235000019580 granularity Nutrition 0.000 description 25
- 230000008569 process Effects 0.000 description 17
- 238000007726 management method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 239000003990 capacitor Substances 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000017702 response to host Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
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/0626—Reducing size or complexity of storage systems
-
- 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
- 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/0284—Multiple user address space allocation, e.g. using different base addresses
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
-
- 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/0608—Saving storage space on storage systems
-
- 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/0614—Improving the reliability of storage systems
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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
- 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/0683—Plurality of storage devices
-
- 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)
Abstract
存储器子***中的处理装置识别第一存储器装置和第二存储器装置,且用区命名空间配置所述第二存储器装置。所述处理装置识别所述第一存储器装置的第一部分和第二部分,所述第一部分存储对应于所述第二存储器装置上的所述区命名空间的区命名空间元数据。所述处理装置进一步将所述第一存储器装置的所述第二部分作为非分区可寻址存储器区域暴露于主机***。
Description
技术领域
本公开的实施例大体上涉及存储器子***,且更具体地说,涉及对区命名空间存储器的增强型文件***支持。
背景技术
存储器子***可包含存储数据的一或多个存储器组件。存储器组件可为例如非易失性存储器组件和易失性存储器组件。一般来说,主机***可利用存储器子***以将数据存储在存储器组件处且从存储器组件检索数据。
附图说明
根据下文提供的详细描述和本公开的各种实施例的附图将更加全面地理解本公开。然而,图式不应视为将本公开限于特定实施例,而是仅用于解释和理解。
图1说明根据本公开的一些实施例的包含存储器子***的实例计算环境。
图2为根据本公开的一些实施例的说明存储器区域管理器对具有区命名空间存储器的存储器子***执行增强型文件***支持的操作的框图。
图3为根据本公开的一些实施例的用于实施区命名空间的存储器子***的存储器区域管理的实例方法的流程图。
图4为根据本公开的一些实施例的在实施非易失性存储器装置的区命名空间的存储器子***中管理主机存取请求的实例方法的流程图。
图5为其中可操作本公开的实施例的实例计算机***的框图。
具体实施方式
本公开的方面涉及对存储器子***中的区命名空间存储器的增强型文件***支持。存储器子***可为存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机***可利用包含一或多个存储器组件的存储器子***,所述一或多个存储器组件例如存储数据的存储器装置。主机***可提供将存储在存储器子***处的数据,且可请求将从存储器子***检索的数据。
存储器子***可包含可存储来自主机***的数据的多个存储器装置。非易失性存储器装置的一个实例为与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。存储器子***包含存储器子***控制器,其可与存储器装置通信以执行例如在存储器装置处读取数据、写入数据或擦除数据等操作和其它此类操作。下文结合图1更详细地描述存储器子***控制器。
主机***可将存取请求(例如,写入命令、读取命令)发送到存储器子***,以便在存储器子***处的存储器装置上存储数据以及从存储器子***上的存储器装置读取数据。如由主机请求所指定,待读取或写入的数据在下文中称作“主机数据”。主机请求可包含用于主机数据的逻辑地址信息(例如,逻辑块地址(LBA)、命名空间),其为主机***与主机数据相关联的位置。逻辑地址信息(例如,LBA、命名空间)可为主机数据的元数据的部分。元数据与主机数据一起在下文中被称作“有效负载”。用于错误校正的元数据、主机数据和奇偶校验数据可共同地形成错误校正码(ECC)码字。元数据还可包含数据版本(例如,用于区分所写入的数据的寿命)、有效位图(指定哪些LBA或逻辑传送单元含有有效数据)等。
存储器装置中的每一个可包含一或多个存储器单元阵列。存储器单元(“单元”)为存储信息的电子电路。取决于单元类型,单元可存储二进制信息的一或多个位,且具有与正存储的位数目相关的各种逻辑状态。逻辑状态可由二进制值(例如“0”和“1”)或这种值的组合表示。举例来说,单层级单元(SLC)可存储一个信息位且具有两个逻辑状态。
存储器子***可发起媒体管理操作,其可包含例如对存储在存储器装置上的主机数据进行例如写入操作或读取操作。举例来说,存储器子***可将先前写入的主机数据从存储器装置上的位置重写到与写入刷新操作的部分相同的位置或新位置。在另一实例中,媒体管理操作可包含重读存储在存储器装置上的主机数据作为读取刷新操作的部分。下文中的“用户数据”通常指代主机数据和重写为媒体管理的部分的数据。下文中的“***数据”指由存储器子***创建和/或维护以用于响应于主机请求而执行操作和用于媒体管理的数据。***数据的实例包含但不限于***表(例如,逻辑到物理地址映射表)、来自记录的数据、暂存数据等。
在某些实施方案中,文件***可用作通过提供存储、检索和更新数据以及管理一或多个存储器装置上的可用空间的程序来组织存储器子***的一或多个存储器装置上的用户数据的方式。文件***以有效的方式组织数据且可被调谐到存储器装置的特定特性。在各种类型的数据存储装置上使用文件***来维持计算机文件的物理位置。文件***通常以颗粒方式分配空间,通常使用存储器装置上的多个物理单元。文件***负责组织文件和目录,以及追踪装置的哪些区域属于某些文件和哪些未被使用。文件***含有存储来自在主机***上运行的应用程序或操作***的实际数据的数据块,以及元数据块。此文件***元数据含有关于用于存储实际数据的数据结构的设计、结构和布局的信息。在其它实施方案中,对象存储器可代替文件***使用。举例来说,在某些大规模计算实施方案中,当那些对象的特征更加合适时(例如,与文件一起存储的全面元数据的存在消除与文件***相关联的分层文件结构),对象可代替文件使用。
某些存储器装置还配置有区命名空间。在区命名空间中,将存储器装置的地址空间划分成允许随着存储器装置的容量增加而对数据进行更高效管理的区。然而,经设计以与常规文件***一起工作的主机***在与具有区命名空间的存储器装置交互时可能面临某些挑战。举例来说,常规文件***可以小到4千字节(KB)大小的块来写入数据,而区命名空间存储器装置可具有在大致100KB(例如,64KB、128KB、196KB)的范围内的最优写入大小。虽然可调整文件***写入的数据部分以适应此类粒度,但这对于大小显著较小的文件***元数据写入不一定如此。另外,使用区命名空间,从每一区的开头开始依序执行写入。许多文件***利用就地写入方法(即,随机写入),其粒度通常小于区命名空间的最优粒度。然而,在区命名空间中,区内的数据通常无法任意地被覆写。替代地,通常复位区写入指针,从而有效地删除区中的数据且可从所述区的开头重新开始数据的写入。
因此,为了能够使用具有常规文件***的区命名空间存储器装置,可能需要某些昂贵的修改。一般来说,主机计算***可在不太困难的情况下修改常规数据的写入大小粒度,使得基于区命名空间的最优写入大小将数据累积到较大块中。然而,由于主机元数据小得多,且必须用对应的规则数据写入到存储器装置,因此某些存储器装置配置成包含例如可写入主机元数据的非易失性双列直插存储器模块(NVDIMM)。NVDIMM可包含多个动态随机存取存储器(DRAM)装置,其可以较小写入大小接受来自文件***的主机元数据且临时存储所述主机元数据,直到到达区命名空间的最优写入大小且接着将主机元数据冲洗到底层主要存储媒体(例如,NAND)为止。此NVDIMM的添加将显著成本增加添加到存储器子***且消耗至少一个额外可用存储器槽。其它解决方案试图修改文件***以遵守区命名空间的规则,但此类改变可能是复杂的和侵入性的,使得其不大可能获得市场接受。除区命名空间之外,另外其它解决方案尝试在存储器子***上创建常规命名空间,使得可执行任何大小的写入操作。然而,此解决方案可导致存储器容量的低效使用,实施起来可能复杂,且可缺乏适应性,因为每一命名空间的大小将必须在配置时间预定。
本公开的方面通过提供对区命名空间存储器装置的增强型文件***支持来解决以上和其它缺陷。与常规文件***相比,可使用显著较小量的区命名空间元数据(例如,地址映射表)来实施区命名空间。由于区命名空间使用较大写入大小粒度且强制依序写入,因此所需的区命名空间元数据的量仅小于大小相当的非分区存储器子***的量。因此,需要存储器装置上的较少容量来维持区命名空间的区命名空间元数据。举例来说,具有16太字节(TB)的容量的区命名空间存储器装置可能仅需要约50兆字节(MB)的区命名空间元数据,而常规存储器装置可能需要约16GB的元数据。区命名空间存储器装置仍可包含一些DRAM以存储区命名空间元数据。由于在大多数实施方案中,可用的最小DRAM装置的大小将为约1GB或更大,因此约90%或更多的DRAM仍可用于其它用途。
某些存储器子***包含称为持久存储器区域(PMR)的特征,其允许存储器子***将内部DRAM(或其它易失性存储器)暴露于主机***。DRAM是不可高速缓存的,且因此无法用于运行时间操作,但将是非易失性的(借助于电容器或其它电池),且因此可用作非易失性缓冲器。另外,来自多个存储器子***的PMR可作为具有等于所有个别PMR贡献的总和的容量的单个较大存储器而暴露于主机***。因此,在一个实施例中,存储器子***可经由PMR暴露DRAM的未使用部分(本文中被称作“PMR自由空间”),进而允许主机***将PMR自由空间注册为不可高速缓存的PCIe存储器。PMR自由空间有效地充当可用于支持元数据管理的存储器子***中的NVDIMM。由于DRAM已存在于存储器子***中,因此不存在额外成本,且将不消耗任何额外PCIe槽。鉴于持久存储器的此可用性,文件***的任何改变可相对较小。举例来说,文件***可继续将4KB块大小的元数据写入到PMR自由空间以用于临时缓冲。一旦PMR自由空间中的元数据的量达到区命名空间的最优写入大小,存储器子***便可将来自PMR自由空间的元数据的区写入发出到主存储器(例如,NAND)。在其它实施例中,可使用其它非易失性存储技术来提供PMR功能性代替具有电源的DRAM。举例来说,可使用作为非易失性存储器的交叉点阵列的铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)或三维交叉点(“3D交叉点”)存储器装置,其可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变而执行位存储。
在电力故障的情况下,存储器子***可使用备用电力(例如,来自电容器或其它电池)将数据从PMR自由空间转储到NAND中。在此实例中,PMR自由空间中的数据可包含元数据以及用于回滚的元数据日志两者。当电力恢复时,存储器子***可通过从NAND检索到数据而将数据恢复到PMR自由空间。文件***将安装,且作为故障恢复的部分,将检查PMR签名且检索先前保存的所有元数据和日志以能够恢复整个文件***。因此,对文件***和存储器子***两者的改变受到限制,且将不会显著影响存储器子***的成本,同时仍提供大量新的能力。举例来说,区命名空间可在存储器子***中实施,所述存储器子***利用比常规文件***较少的元数据。因此,为元数据保留存储器子***的较少容量,且可将更多容量提供到主机***。另外,通过将存储器子***中的DRAM用于多种目的(即,以存储区命名空间元数据且作为用于主机数据的非易失性缓冲器),简化存储器子***的设计,从而阻止对额外离散存储器装置的需要。此外,对电力损耗的抵抗提供于原本易失性存储器子***中。
图1说明根据本公开的一些实施例的包含存储器子***110的实例计算***100。存储器子***110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类的组合。
存储器子***110可为存储装置、存储器模块或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储器(UFS)驱动器以及硬盘驱动器(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)、双列直插存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可用于在主机***120与存储器子***110之间传输数据。当存储器子***110通过PCIe接口与主机***120耦合时,主机***120可进一步使用NVM高速(NVMe)接口来存取存储器组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子***110与主机***120之间传送控制、地址、数据和其它信号的接口。
存储器装置可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)类型快闪存储器和就地写入(write-in-place)存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器的交叉点阵列可以结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC),可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或此类的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分和MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可被分组以形成块。
虽然描述了例如3D交叉点类型和NAND类型存储器的非易失性存储器组件,但存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电随机存取存储器(FeRAM)、磁性随机存取存储器(MRAM)、“或非”(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)、命名空间)与物理地址(例如,物理MU地址、物理块地址)之间的地址转换。存储器子***控制器115可进一步包含主机接口电路***以经由物理主机接口与主机***120通信。主机接口电路***可将从主机***接收到的命令转换成命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换成用于主机***120的信息。
存储器子***110还可包含未说明的额外电路***或组件。在一些实施例中,存储器子***110可包含高速缓存器或缓冲器(例如,DRAM)和地址电路***(例如,行解码器和列解码器),所述地址电路***可从存储器子***控制器115接收地址且解码所述地址以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,所述本地媒体控制器结合存储器子***控制器115操作以对存储器装置130的一或多个存储器单元进行操作。外部控制器(例如,存储器子***控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130为受管理存储器装置,其为与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例为受管理NAND(MNAND)装置。
存储器子***110包含存储器区域管理器113。在一个实施方案中,存储器区域管理器113可管理跨越存储器装置130和存储器装置140的不同区域/部分的数据的写入和存储。如上文所描述,存储器装置130可包含非易失性存储器装置(例如,NAND),且存储器装置140可包含易失性存储器装置(例如,DRAM)。在一个实施例中,存储器装置130配置有区命名空间,且存储器装置140的第一部分用于存储对应于存储器装置130上的区命名空间的区命名空间元数据。由于区命名空间元数据与存储器装置140的总容量相比相对较小,因此存储器区域管理器113可将剩余部分(例如,并不存储区命名空间元数据的部分)作为非分区可寻址存储器区域暴露于主机***120。在一个实施例中,存储器区域管理器113利用PMR特征以致使非分区可寻址存储器区域(在本文中也被称作“PMR自由空间”)呈现为到主机***120的单独PCIe存储器装置。因此,存储器区域管理器113可将主机数据对象存储在存储器装置130上的区命名空间中,且将对应主机元数据对象存储在存储器装置140上的PMR自由空间中。一旦存储器装置140上的主机元数据的量达到给定阈值,存储器区域管理器113就可将主机元数据传送到存储器装置130上的区命名空间。下文描述关于存储器区域管理器113的操作的其它细节。
图2为根据本公开的一些实施例的说明存储器区域管理器113对具有区命名空间存储器的存储器子***110执行增强型文件***支持的操作的框图。在一个实施例中,存储器区域管理器113经由一或多个电连接件(例如,一或多个总线)以操作方式与存储器装置130和存储器装置140耦合。可用区命名空间232配置非易失性存储器装置130。在区命名空间232中,将存储器装置130的地址空间划分成允许对数据进行更高效管理的区,尤其当存储器装置130的容量较大时。区命名空间232可优化以使用对应写入大小粒度经由存储器区域管理器113从主机***120接受写入。举例来说,区命名空间232可具有在约100KB(例如,64KB、128KB、196KB)的范围内的最优写入大小。此写入大小粒度可不同于由主机***的文件***使用且用于写入到易失性存储器装置140的写入大小粒度,所述写入大小粒度可例如为约4KB。另外,在区命名空间232中,从每一区的开头开始依序执行写入。许多文件***利用就地写入方法(即,随机写入),其粒度通常小于区命名空间232的最优粒度。然而,在区命名空间232中,区内的数据无法任意地被覆写。替代地,存储器区域管理器113可复位区写入指针以删除区中的数据且可从所述区的开头重新开始数据的写入。
与常规文件***相比,可使用显著较小量的区命名空间元数据242(例如,地址映射表)来实施区命名空间232。由于区命名空间232使用较大写入大小粒度且强制依序写入,因此所需的区命名空间元数据242的量小于大小相当的非分区存储器子***的量。因此,需要存储器装置140上的较少容量来维持区命名空间232的区命名空间元数据242。举例来说,如果区命名空间232具有16TB的容量,那么区命名空间元数据242可为约50MB。由于存储器装置140的大小可为约1GB或更大,因此存储器装置140上可存在相当大的未使用容量。
因此,存储器区域管理器113可识别存储器装置140的存储区命名空间元数据242的部分和未存储区命名空间元数据242的剩余部分。举例来说,存储器区域管理器113可检查存储器装置140的个别片段(例如,块、页)以查看哪些被映射到数据且哪些未被映射。存储器区域管理器113可将存储器装置140的剩余部分分段,且使用PMR特征(例如)将剩余部分作为非分区可寻址存储器区域暴露于主机***120。PMR能够借助于电容器250、电池或其它电源将易失性存储器(例如,DRAM)呈现为持久存储器。主机***120上的文件***可将所得PMR自由空间244(即,非分区可寻址存储器区域)视为单独PCIe存储器装置。因此,存储器区域管理器113可接收对应于写入到非易失性存储器130的主机数据234至236的主机元数据,且可将所述主机元数据作为主机元数据对象246至248写入到PMR费用空间244。由于PMR自由空间244是不分区的,因此其可具有与区命名空间232不同的写入大小粒度,且不受制于相同的依序写入要求。举例来说,存储器区域管理器113可将主机元数据对象246至248作为4KB组块写入到PMR自由空间244。
在电力故障的情况下,存储器子***110可使用来自电容器250的备份电力将主机元数据246至248从PMR自由空间244传送到非易失性存储器130。当恢复电力时,存储器子***110可通过从非易失性存储器130检索主机元数据246至248而将其恢复到PMR自由空间244。文件***将安装,且作为故障恢复的部分,将检查PMR签名且检索先前保存的所有元数据和日志以便能够恢复整个文件***。因此,一旦重启存储器子***,就可从同一点恢复在电力损耗时执行的数据的任何处理。
在一个实施例中,主机元数据246至248仅临时存储在存储器装置140上的PMR自由空间244中。存储器区域管理器113可监视PMR自由空间244中的主机元数据的量且将所述量与阈值进行比较。在一个实施例中,阈值等于存储器装置130上的区命名空间232的写入粒度。因此,一旦PMR自由空间244中的元数据246至248的量(例如,4KB组块)等于区命名空间232的写入粒度(例如,128KB),存储器区域管理器113就可将主机元数据246至248迁移、复制、写入或以其它方式移动到区命名空间232,在所述区命名空间中所述主机元数据可作为主机元数据238存储。
图3为根据本公开的一些实施例的用于实施区命名空间的存储器子***的存储器区域管理的实例方法的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或进行的指令)或其组合。在一些实施例中,方法300由存储器区域管理器113执行,如图1和图2中所展示。虽然以特定顺序或次序展示,但是除非另外规定,否则可修改过程的次序。因此,应理解所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程是可能的。
在操作310处,处理逻辑提供第一存储器装置(例如,易失性存储器装置140)和第二存储器装置(例如,非易失性存储器装置130)。在一个实施例中,用区命名空间232配置非易失性存储器装置130。如上文所描述,区命名空间232可包含多个单独区,所述区各自经优化以使用对应写入大小粒度(例如,128KB)经由存储器区域管理器113从主机***120接受写入。从每一区的开头开始,依次执行对区命名空间232的这些写入。
在操作320处,处理逻辑识别易失性存储器装置140的第一部分,所述第一部分存储对应于非易失性存储器装置130上的区命名空间232的区命名空间元数据242。由于区命名空间232使用较大写入大小粒度且强制依序写入,因此所需的区命名空间元数据242的量小于大小相当的非分区存储器子***的量。举例来说,如果区命名空间232具有16TB的容量,那么区命名空间元数据242可为约50MB。在一个实施例中,存储器区域管理器113可检查存储器装置140的个别片段(例如,块、页)以查看哪些被映射到数据(即,区命名空间元数据242)且哪些未被映射。
在操作330处,处理逻辑识别易失性存储器装置140的未存储区命名空间元数据242的第二部分。由于存储器装置140的大小可为约1GB或更大,因此存储器装置140上可存在相当大的未使用容量。因此,存储器区域管理器113可识别存储器装置140的未存储区命名空间元数据242的剩余部分。存储器区域管理器113可经由上文所使用的相同检查过程识别存储器装置140的任何未映射片段。
在操作340处,处理逻辑将易失性存储器装置140的第二部分作为非分区可寻址存储器区域暴露于主机***120。在一个实施例中,存储器区域管理器113使用PMR特征来暴露非分区可寻址存储器区域,所述非分区可寻址存储器区域可被称为PMR自由空间244。PMR能够借助于电容器250、电池或其它电源将存储器装置140的一部分(即,易失性存储器)呈现为持久存储器。主机***120上的文件***可将所得PMR自由空间244(即,非分区可寻址存储器区域)视为单独PCIe存储器装置。
在操作350处,处理逻辑将从主机***120接收到的主机元数据246至248临时存储在PMR自由空间244中。举例来说,存储器区域管理器113可接收对应于写入到非易失性存储器130的主机数据234至236的主机元数据,且可将所述主机元数据作为主机元数据对象246至248写入到PMR费用空间244。由于PMR自由空间244是不分区的,因此其可具有与区命名空间232不同的写入大小粒度,且不受制于相同的依序写入要求。举例来说,存储器区域管理器113可将主机元数据对象246至248作为4KB组块写入到PMR自由空间244。如关于图4更详细地描述,存储器区域管理器113可监视PMR自由空间244中的主机元数据的量且将所述量与阈值进行比较。在一个实施例中,阈值等于存储器装置130上的区命名空间232的写入粒度。因此,一旦PMR自由空间244中的元数据246至248的量(例如,4KB组块)等于区命名空间232的写入粒度(例如,128KB),存储器区域管理器113就可将主机元数据246至248迁移、复制、写入或以其它方式移动到区命名空间232,在所述区命名空间中所述主机元数据可作为主机元数据238存储。
图4为根据本公开的一些实施例的在实施非易失性存储器装置的区命名空间的存储器子***中管理主机存取请求的实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由存储器区域管理器113执行,如图1和图2中所展示。虽然以特定顺序或次序展示,但是除非另外规定,否则可修改过程的次序。因此,应理解所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每一实施例中都需要所有过程。其它过程流程是可能的。
在操作410处,处理逻辑从主机***120接收包含主机数据对象234至236和主机元数据对象246至248的写入操作。在一个实施例中,存储器区域管理器113从主机***120接收写入操作,所述写入操作具有用以将对应数据存储在存储器子***110中的指令。在一个实施例中,主机数据对象234至236可具有对应写入大小粒度(例如,128KB),且主机元数据对象246至248可具有不同写入大小粒度(例如,4KB)。主机元数据对象246至248可各自对应于主机数据对象234至236中的一个。举例来说,主机元数据对象246至248可包含主机数据对象234至236中的一或多个的元数据信息,例如文件的名称、文件的长度、文件的创建者、文件的创建时间/日期等。
在操作420处,处理逻辑使用第一写入大小粒度将主机元数据对象246至248单独地写入到易失性存储器装置140上的PMR自由空间244。在一实施例中,存储器区域管理器113可将主机元数据对象246至248以4KB写入到PMR费用空间244。由于PMR自由空间244为非分区可寻址存储器区域,因此无需使用较大写入大小粒度或按区命名空间232所需要的依序方式写入主机元数据对象246至248。在一个实施例中,PMR自由空间244借助于电容器250、电池或其它电源呈现为持久存储器。
在操作430处,处理逻辑使用第二写入大小粒度将主机数据对象234至236单独地写入到非易失性存储器装置130上的区命名空间232。在一个实施例中,针对区命名空间232优化第二写入大小粒度(例如,128KB),且存储器区域管理器113将主机数据对象234至236依序写入到区命名空间232。
在操作440处,处理逻辑确定易失性存储器装置140上的PMR自由空间244中的所有主机元数据对象246至248的总大小。尽管每一个别主机元数据对象的大小可例如为4KB,但在一个实施例中,存储器区域管理器113可确定所有主机元数据对象246至248的总大小。举例来说,此可包含确定主机元数据对象的数目乘以每一主机元数据对象的大小,与为空的部分相比,充满主机元数据对象的PMR自由空间244的百分比或部分,或用于确定总大小的一些其它过程。
在操作450处,处理逻辑确定所有主机元数据对象246至248的总大小是否满足阈值准则。在一个实施例中,存储器区域管理器113可监视PMR自由空间244中的主机元数据的总大小且将所述量与阈值进行比较。在一个实施例中,阈值等于存储器装置130上的区命名空间232的写入粒度。在一个实施例中,如果总大小大于或等于阈值(例如,128KB),那么存储器区域管理器113确定总大小满足阈值准则。相反地,如果总大小小于阈值,那么存储器区域管理器113确定总大小不满足阈值准则。
如果总大小不满足阈值准则,那么处理逻辑返回到操作420。然而,如果总大小确实满足阈值准则,那么在操作460处,处理逻辑使用第二写入大小粒度将主机元数据对象246至248从易失性存储器装置140上的PMR自由空间244一起迁移到非易失性存储器装置130上的区命名空间232。在一个实施例中,存储器区域管理器113可将主机元数据对象246至248迁移、复制、写入或以其它方式移动到区命名空间232,在所述区命名空间中所述主机元数据对象可作为主机元数据238存储。存储器区域管理器113可将个别主机元数据对象246至248(例如,各自4KB)一起组合成单个主机元数据对象238(例如,大小为128KB)。如果一些主机元数据对象保持在PMR自由空间244中,那么存储器区域管理器113可将那些元数据对象维持在PMR自由空间244中,直到总大小再次满足阈值准则为止。
图5说明计算机***500的实例机器,在所述机器内可进行用于使机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机***500可对应于主机***(例如,图1的主机***120),所述主机***包含、耦合到或利用存储器子***(例如,图1的存储器子***110)或可用于执行控制器的操作(例如,进行操作***以执行对应于图1的存储器区域管理器113的操作)。在替代性实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)进行指定待由所述机器采取的动作的指令集的任何机器。此外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地进行一(或多个)指令集以执行本文中所论述的方法中的任何一或多种。
实例计算机***500包含通过总线530彼此通信的处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)的动态随机存取存储器(DRAM)、静态存储器506(例如,快闪存储器、静态随机存取存储器(SRAM)等)和数据存储***518。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器、或实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502配置成进行指令526,以用于执行本文中所论述的操作和步骤。计算机***500可进一步包含通过网络520通信的网络接口装置508。
数据存储***518可包含机器可读存储媒体524(也被称作计算机可读媒体),在所述机器可读存储媒体上存储有一或多个指令集526或体现本文中所描述的方法或功能中的任何一或多个的软件。指令526还可在其由计算机***500执行期间完全或至少部分地驻留在主存储器504内和/或处理装置502内,主存储器504和处理装置502还构成机器可读存储媒体。机器可读存储媒体524、数据存储***518和/或主存储器504可以对应于图1的存储器子***110。
在一个实施例中,指令526包含用于实施对应于图1的存储器区域管理器113的功能性的指令。尽管在实例实施例中将机器可读存储媒体524展示为单个媒体,但应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器进行的指令集且使机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示为数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在这里且通常认为是引起所需结果的操作的自洽序列。操作为需要对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可以指将计算机***的寄存器和存储器内的表示为物理(电子)数量的数据操控和变换为计算机***存储器或寄存器或其它此类信息存储***内的类似地表示为物理数量的其它数据的计算机***或类似电子计算装置的动作和过程。
本公开还涉及一种用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可以存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘,其包含软盘、光盘、CD-ROM和磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁性卡或光学卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机***总线。
本文呈现的算法和显示在本质上与任何特定的计算机或其它设备无关。各种通用***可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些***的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。
本公开可被提供为计算机程序产品或软件,其可包含其上存储有可用于编程计算机***(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,本公开的实施例已经参考其具体实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应在说明性意义上而非限制性意义上看待。
Claims (20)
1.一种***,其包括:
多个存储器装置,其包括第一存储器装置和第二存储器装置;
处理装置,其以操作方式与所述多个存储器装置耦合以执行包括以下的操作:
用区命名空间配置所述第二存储器装置;
识别所述第一存储器装置的第一部分和第二部分,所述第一部分存储对应于所述第二存储器装置上的所述区命名空间的区命名空间元数据;及
将所述第一存储器装置的所述第二部分作为非分区可寻址存储器区域暴露于主机***。
2.根据权利要求1所述的***,其中所述存储器装置的所述第二部分使用持久存储器区域(PMR)特征暴露于主机计算***,且其中所述存储器装置的所述第二部分包括配置成从所述主机***接收主机元数据的PMR自由空间。
3.根据权利要求1所述的***,其中所述第一存储器装置包括具有备用电源的易失性存储器,且其中所述第二存储器装置包括非易失性存储器。
4.根据权利要求1所述的***,其中所述非分区可寻址存储器区域从所述主机***接受就地写入操作,且其中所述第二存储器装置上的所述区命名空间从所述主机***接受依序写入操作。
5.根据权利要求1所述的***,其中所述非分区可寻址存储器区域使用第一写入大小粒度从所述主机***接受写入,且其中所述第二存储器装置上的所述区命名空间使用第二写入大小粒度从所述主机***接受写入。
6.根据权利要求5所述的***,其中所述处理装置用于执行包括以下的进一步操作:
接收包括多个主机数据对象和多个主机元数据对象的多个写入操作;
使用所述第二写入大小粒度将所述多个主机数据对象中的每一个单独地写入到所述第二存储器装置上的所述区命名空间;及
使用所述第一写入大小粒度将所述多个主机元数据对象中的每一个单独地写入到所述第一存储器装置上的所述非分区可寻址存储器区域。
7.根据权利要求6所述的***,其中所述处理装置用于执行包括以下的进一步操作:
确定所述非分区可寻址存储器区域中的所述多个主机元数据对象的总大小满足与所述第二写入大小粒度相关联的阈值准则;及
使用所述第二写入大小粒度将所述多个主机元数据对象从所述第一存储器装置上的所述非分区可寻址存储器区域一起移动到所述第二存储器装置上的所述区命名空间。
8.一种方法,其包括:
从主机***接收包括多个主机数据对象和多个主机元数据对象的多个写入操作;
使用第一写入大小粒度将所述多个主机元数据对象中的每一个单独地写入到第一存储器装置上的非分区可寻址存储器区域;
使用第二写入大小粒度将所述多个主机数据对象中的每一个单独地写入到第二存储器装置上的区命名空间;
确定所述非分区可寻址存储器区域中的所述多个主机元数据对象的总大小满足阈值准则;及
使用所述第二写入大小粒度将所述多个主机元数据对象从所述第一存储器装置上的所述非分区可寻址存储器区域一起迁移到所述第二存储器装置上的所述区命名空间。
9.根据权利要求8所述的方法,其中所述第一存储器装置包括存储对应于所述第二存储器装置上的所述区命名空间的区命名空间元数据的第一部分,其中所述第一存储器装置包括不存储所述区命名空间元数据的第二部分,且其中将所述第一存储器装置的所述第二部分作为所述非分区可寻址存储器区域暴露于所述主机***。
10.根据权利要求9所述的方法,其中使用持久存储器区域(PMR)特征将所述存储器装置的所述第二部分暴露于所述主机计算***。
11.根据权利要求8所述的方法,其中所述第一存储器装置包括具有备用电源的易失性存储器,且其中所述第二存储器装置包括非易失性存储器。
12.根据权利要求8所述的方法,其中所述非分区可寻址存储器区域从所述主机***接受就地写入操作,且其中所述第二存储器装置上的所述区命名空间从所述主机***接受依序写入操作。
13.根据权利要求8所述的方法,其中当所述总大小等于或大于所述第二写入大小粒度时,所述非分区可寻址存储器区域中的所述多个主机元数据对象的所述总大小满足所述阈值准则。
14.一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置进行时使得所述处理装置执行包括以下的操作:
识别第一存储器装置和第二存储器装置;
用区命名空间配置所述第二存储器装置;
识别所述第一存储器装置的第一部分和第二部分,所述第一部分存储对应于所述第二存储器装置上的所述区命名空间的区命名空间元数据;及
将所述第一存储器装置的所述第二部分作为非分区可寻址存储器区域暴露于主机***。
15.根据权利要求14所述的非暂时性计算机可读存储媒体,其中所述存储器装置的所述第二部分使用持久存储器区域(PMR)特征暴露于所述主机计算***,且其中所述存储器装置的所述第二部分包括配置成从所述主机***接收主机元数据的PMR自由空间。
16.根据权利要求14所述的非暂时性计算机可读存储媒体,其中所述第一存储器装置包括具有备用电源的易失性存储器,且其中所述第二存储器装置包括非易失性存储器。
17.根据权利要求14所述的非暂时性计算机可读存储媒体,其中所述非分区可寻址存储器区域从所述主机***接受就地写入操作,且其中所述第二存储器装置上的所述区命名空间从所述主机***接受依序写入操作。
18.根据权利要求14所述的非暂时性计算机可读存储媒体,其中所述非分区可寻址存储器区域使用第一写入大小粒度从所述主机***接受写入,且其中所述第二存储器装置上的所述区命名空间使用第二写入大小粒度从所述主机***接受写入。
19.根据权利要求18所述的非暂时性计算机可读存储媒体,其中所述处理装置用于执行包括以下的进一步操作:
接收包括多个主机数据对象和多个主机元数据对象的多个写入操作;
使用所述第二写入大小粒度将所述多个主机数据对象中的每一个单独地写入到所述第二存储器装置上的所述区命名空间;及
使用所述第一写入大小粒度将所述多个主机元数据对象中的每一个单独地写入到所述第一存储器装置上的所述非分区可寻址存储器区域。
20.根据权利要求19所述的非暂时性计算机可读存储媒体,其中所述处理装置用于执行包括以下的进一步操作:
确定所述非分区可寻址存储器区域中的所述多个主机元数据对象的总大小满足与所述第二写入大小粒度相关联的阈值准则;及
使用所述第二写入大小粒度将所述多个主机元数据对象从所述第一存储器装置上的所述非分区可寻址存储器区域一起移动到所述第二存储器装置上的所述区命名空间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/695,481 | 2019-11-26 | ||
US16/695,481 US11593258B2 (en) | 2019-11-26 | 2019-11-26 | Enhanced filesystem support for zone namespace memory |
PCT/US2020/061540 WO2021108259A1 (en) | 2019-11-26 | 2020-11-20 | Enhanced filesystem support for zone namespace memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114730300A true CN114730300A (zh) | 2022-07-08 |
CN114730300B CN114730300B (zh) | 2024-05-10 |
Family
ID=75973865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080081567.XA Active CN114730300B (zh) | 2019-11-26 | 2020-11-20 | 对区命名空间存储器的增强型文件***支持 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11593258B2 (zh) |
KR (1) | KR20220085826A (zh) |
CN (1) | CN114730300B (zh) |
DE (1) | DE112020005787T5 (zh) |
WO (1) | WO2021108259A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210125774A (ko) * | 2020-04-09 | 2021-10-19 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US11656795B2 (en) * | 2021-01-21 | 2023-05-23 | EMC IP Holding Company LLC | Indicating optimized and non-optimized paths to hosts using NVMe-oF in a metro cluster storage system |
US11907587B2 (en) | 2021-06-09 | 2024-02-20 | Western Digital Technologies, Inc. | Managing persistent memory regions across multiple protocols |
US20230050976A1 (en) * | 2021-08-12 | 2023-02-16 | Seagate Technology Llc | File system aware computational storage block |
CN114356219A (zh) * | 2021-12-08 | 2022-04-15 | 阿里巴巴(中国)有限公司 | 数据处理方法、存储介质和处理器 |
US11907582B2 (en) | 2022-03-14 | 2024-02-20 | Western Digital Technologies, Inc. | Cloud storage device implementing composite zoned namespace architecture |
US11853611B2 (en) | 2022-03-14 | 2023-12-26 | Western Digital Technologies, Inc. | Network interface card implementing composite zoned namespace architecture |
US11874771B2 (en) * | 2022-05-16 | 2024-01-16 | Western Digital Technologies, Inc. | Multiple indirection sizes for logical-to-physical translation tables |
WO2024103362A1 (zh) * | 2022-11-17 | 2024-05-23 | 长江存储科技有限责任公司 | 存储***操作方法、存储控制器、存储***及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276744A1 (en) * | 2010-05-05 | 2011-11-10 | Microsoft Corporation | Flash memory cache including for use with persistent key-value store |
US20130080732A1 (en) * | 2011-09-27 | 2013-03-28 | Fusion-Io, Inc. | Apparatus, system, and method for an address translation layer |
US20130250686A1 (en) * | 2012-03-26 | 2013-09-26 | Kabushiki Kaisha Toshiba | Semiconductor memory device, information processing system and control method |
US20190034098A1 (en) * | 2015-03-30 | 2019-01-31 | Toshiba Memory Corporation | Solid-state drive with non-volatile random access memory |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4079506B2 (ja) | 1997-08-08 | 2008-04-23 | 株式会社東芝 | 不揮発性半導体メモリシステムの制御方法 |
EP2715510B1 (en) | 2011-05-24 | 2018-05-02 | Marvell World Trade Ltd. | Method for storage devices to achieve low write amplification with low over provision |
KR101835604B1 (ko) | 2011-06-03 | 2018-03-07 | 삼성전자 주식회사 | 메모리를 위한 스케줄러 |
KR20160056380A (ko) * | 2014-11-10 | 2016-05-20 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US10642532B2 (en) * | 2017-02-28 | 2020-05-05 | International Business Machines Corporation | Storing data sequentially in zones in a dispersed storage network |
US11821766B2 (en) | 2018-10-02 | 2023-11-21 | Brendan MUIR | Systems for and methods of monitoring water consumption |
US11294827B2 (en) * | 2019-09-12 | 2022-04-05 | Western Digital Technologies, Inc. | Non-sequential zoned namespaces |
US11209989B2 (en) * | 2019-09-25 | 2021-12-28 | Western Digital Technologies, Inc. | Zoned namespaces in solid-state drives |
US11262830B2 (en) * | 2019-11-11 | 2022-03-01 | Microsoft Technology Licensing, Llc | Managing ephemeral storage on a computing node |
US11409720B2 (en) * | 2019-11-13 | 2022-08-09 | Western Digital Technologies, Inc. | Metadata reduction in a distributed storage system |
US20200089407A1 (en) * | 2019-11-22 | 2020-03-19 | Intel Corporation | Inter zone write for zoned namespaces |
-
2019
- 2019-11-26 US US16/695,481 patent/US11593258B2/en active Active
-
2020
- 2020-11-20 WO PCT/US2020/061540 patent/WO2021108259A1/en active Application Filing
- 2020-11-20 CN CN202080081567.XA patent/CN114730300B/zh active Active
- 2020-11-20 DE DE112020005787.9T patent/DE112020005787T5/de active Pending
- 2020-11-20 KR KR1020227017655A patent/KR20220085826A/ko unknown
-
2023
- 2023-01-25 US US18/101,497 patent/US11983107B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110276744A1 (en) * | 2010-05-05 | 2011-11-10 | Microsoft Corporation | Flash memory cache including for use with persistent key-value store |
US20130080732A1 (en) * | 2011-09-27 | 2013-03-28 | Fusion-Io, Inc. | Apparatus, system, and method for an address translation layer |
US20130250686A1 (en) * | 2012-03-26 | 2013-09-26 | Kabushiki Kaisha Toshiba | Semiconductor memory device, information processing system and control method |
US20190034098A1 (en) * | 2015-03-30 | 2019-01-31 | Toshiba Memory Corporation | Solid-state drive with non-volatile random access memory |
Also Published As
Publication number | Publication date |
---|---|
WO2021108259A1 (en) | 2021-06-03 |
KR20220085826A (ko) | 2022-06-22 |
US20230168997A1 (en) | 2023-06-01 |
US11593258B2 (en) | 2023-02-28 |
CN114730300B (zh) | 2024-05-10 |
DE112020005787T5 (de) | 2023-04-20 |
US11983107B2 (en) | 2024-05-14 |
US20210157720A1 (en) | 2021-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114730300B (zh) | 对区命名空间存储器的增强型文件***支持 | |
US11119940B2 (en) | Sequential-write-based partitions in a logical-to-physical table cache | |
CN113126907B (zh) | 用于存储器装置的异步电力损失恢复 | |
US11422945B2 (en) | Generating, maintaining, or utilizing a compressed logical-to-physical table based on sequential writes | |
CN113031856A (zh) | 存储器子***中的断电数据保护 | |
US20210334200A1 (en) | Storing translation layer metadata in host memory buffer | |
US20220398045A1 (en) | Addressing zone namespace and non-zoned memory based on data characteristics | |
US20220300195A1 (en) | Supporting multiple active regions in memory devices | |
KR20210050592A (ko) | 저장 디바이스 상의 네임스페이스에서의 오류 검사 | |
US20240184695A1 (en) | Managing power loss recovery using a dirty section write policy for an address mapping table in a memory sub-system | |
CN112835828A (zh) | 用于非连续源及目的地存储器地址的直接存储器存取(dma)命令 | |
US11704057B2 (en) | Memory sub-systems including memory devices of various latencies and capacities | |
US20230102184A1 (en) | Dynamically sized redundant write buffer with sector-based tracking | |
WO2023201462A1 (en) | Namespace level valid translation unit count | |
US11599466B2 (en) | Sector-based tracking for a page cache | |
US20230195350A1 (en) | Resequencing data programmed to multiple level memory cells at a memory sub-system | |
US11314643B2 (en) | Enhanced duplicate write data tracking for cache memory | |
CN114637695A (zh) | 用于两遍编程存储器装置的日志方案 | |
CN113126906A (zh) | 用于存储器装置的元数据指示 | |
US11392505B2 (en) | Rebuilding logical-to-physical address mapping with limited memory | |
CN114077404B (zh) | 使存储器单元与主机***解除关联 | |
CN115827689A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |