一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

可调节缓冲存储器空间的制作方法

2022-02-22 07:52:50 来源:中国专利 TAG:


1.本公开的实施例大体上是关于存储器装置,且更确切地说,是关于由存储器子系统提供的可调节缓冲存储器空间。


背景技术:

2.存储器子系统可包括存储数据的一个或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可以利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。


技术实现要素:

3.在一方面,本技术提供一种系统,其包含:第一组存储器装置;第二组存储器装置;和处理装置,其可操作地耦合到第一组存储器装置和第二组存储器装置,配置成进行包含以下各项的操作:分配第二组存储器装置上的存储空间以用于存储将名称空间的逻辑存储器地址映射到物理存储器地址的逻辑到物理存储器地址映射数据,物理存储器地址与第一组存储器装置上的数据存储位置相对应;确定是否在系统上启用可调节缓冲存储器空间特征;和基于确定启用了可调节缓冲存储器空间特征:确定所分配存储空间中的未指派存储空间;确定第二组存储器装置上的未分配存储空间;和对于主机系统,启用对第二组存储器装置上的缓冲存储器空间的存取,缓冲存储器空间包含未分配存储空间的一部分和未指派存储空间的一部分。
4.在另一方面,本技术提供一种方法,其包含:通过存储器子系统的存储器控制器确定是否在存储器子系统上启用可调节缓冲存储器空间特征,存储器子系统包含第一组存储器装置和第二组存储器装置,第二组存储器装置包含所分配存储空间,所分配存储空间用于存储将名称空间的逻辑存储器地址映射到与第一组存储器装置上的数据存储位置相对应的物理存储器地址的逻辑到物理存储器地址映射数据;和基于确定启用了可调节缓冲存储器空间特征:通过存储器控制器确定所分配存储空间中的一组过度布建存储空间,所述一组过度布建存储空间指派到一组当前名称空间,当前名称空间的过度布建存储空间与逻辑到物理存储器地址映射数据的存储相关联,所述逻辑到物理存储器地址映射数据将当前名称空间的一组逻辑存储器地址映射到与第一组存储器装置上的一组数据存储位置相对应的一组物理存储器地址,且所述一组数据存储位置在存储器子系统上保留为过度布建的;确定第二组存储器装置上的未分配存储空间;和对于耦合到存储器子系统的主机系统,启用对第二组存储器装置上的缓冲存储器空间的存取,缓冲存储器空间包括未分配存储空间的一部分和一组过度布建存储空间的一部分。
5.在又一方面,本技术提供一种非暂时性计算机可读存储媒体,其包含指令,所述指令在由处理装置执行时使得处理装置进行包含以下各项的操作:从主机系统接收减小逻辑到物理存储器地址映射数据的数据大小的请求,逻辑到物理存储器地址映射数据包含一组条目,所述条目中的每一个将名称空间的逻辑存储器地址映射到与存储在存储器子系统的
第一组存储器装置上的数据单元相对应的物理存储器地址,数据单元具有数据单元大小,逻辑到物理存储器地址映射数据存储在存储器子系统的第二组存储器装置上;和响应于请求:将数据单元大小从第一值更新到第二值,第二值大于第一值;基于更新的数据单元大小产生减小大小的逻辑到物理存储器地址映射数据,减小大小的逻辑到物理存储器地址映射数据存储在第二组存储器装置上;基于减小大小的逻辑到物理存储器地址映射数据确定第二组存储器装置上的未分配存储空间;和对于主机系统,启用对第二组存储器装置上的缓冲存储器空间的存取,缓冲存储器空间包含未分配存储空间的一部分。
附图说明
6.根据下文给出的详细描述且根据本公开的各种实施例的附图将更加充分地理解本公开。然而,图式不应视为将本公开限制于特定实施例,而是仅用于解释和理解。
7.图1为说明根据本公开的一些实施例的包括存储器子系统的实例计算系统的框图。
8.图2至4为说明根据本公开的一些实施例的调节由存储器子系统的存储器装置提供的缓冲存储器空间的实例的框图。
9.图5至8为根据本公开的一些实施例的用于调节由存储器子系统提供的缓冲存储器空间的实例方法的流程图。
10.图9a和9b提供说明其中进行如本文所描述的用于调节由存储器子系统提供的缓冲存储器空间的方法的一些实施例的上下文中的计算环境的组件之间的交互的交互图。
11.图10为其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
12.本公开的各方面是针对调节由存储器子系统提供的缓冲存储器空间。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包括一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可将存取请求发送到存储器子系统,以便将数据存储在存储器子系统处和从存储器子系统读取数据。
13.主机系统可将存取请求(例如,写入命令、读取命令)发送到存储器子系统,以便将数据存储在存储器子系统处的存储器装置上,从存储器子系统上的存储器装置读取数据,或相对于存储器子系统上的存储器装置写入/读取构造(例如,提交和完成队列)。如由主机请求指定,待读取或写入的数据在下文中称为“主机数据”。主机请求可包括用于主机数据的逻辑地址信息(例如,逻辑块地址(lba)、名称空间),其为主机系统与主机数据相关联的位置。逻辑地址信息(例如,lba、名称空间)可为主机数据的元数据的部分。元数据还可包括错误处理数据(例如,ecc码字、奇偶检验码)、数据版本(例如,用于区分所写入数据的期限)、有效位图(其lba或逻辑传输单元含有有效数据)等。
14.存储器子系统可对存储在存储器装置上的主机数据启动媒体管理操作,例如写入操作。举例来说,存储器子系统的固件可将先前写入的主机数据从存储器装置上的位置重写到新位置,作为垃圾收集管理操作的部分。重写的数据(例如,如通过固件启动)在下文中称为“垃圾收集数据”。
15.下文中的“用户数据”大体是指主机数据和垃圾收集数据。下文中的“系统数据”是指由存储器子系统产生和/或维护以用于响应于主机请求而进行操作和用于媒体管理的数据。系统数据的实例包括但不限于系统表(例如,逻辑到物理存储器地址映射表(在本文中也称为l2p表))、来自日志记录的数据、高速暂存数据等。
16.存储器装置可为非易失性存储器装置。非易失性存储器装置为一或多个裸片的封装。每一裸片可由一或多个平面构成。对于一些类型的非易失性存储器装置(例如,与非(nand)型装置),每一平面由一组物理块构成。对于一些存储器装置,块为可擦除的最小区域。每一块由页集构成。每一页由存储数据位的存储器单元集构成。存储器装置可为原始存储器装置(例如,nand),其例如由外部控制器进行外部管理。存储器装置可为受管理存储器装置(例如,受管理nand),其为与本地嵌入式控制器组合以用于同一存储器装置封装内的存储器管理的原始存储器装置。
17.传统上,存储器子系统控制器管理逻辑到物理存储器地址映射数据(例如,将逻辑块地址(lba)映射到物理页地址的l2p表),所述逻辑到物理存储器地址映射数据往往较大且通常使用条目阵列实施(例如,存储物理存储器地址)。当例如存储器子系统控制器从主机系统接收存储器命令且所述存储器命令(例如,读取或写入命令)具有在存储器命令可成功地执行之前需要映射到对应物理存储器地址的至少一个相关联逻辑存储器地址时,逻辑到物理存储器地址映射数据可由存储器子系统控制器使用。
18.一般来说,在存储器子系统的操作期间,逻辑到物理存储器地址(l2p)映射数据可存储在主动存储器(例如,存储器子系统控制器的主动存储器)中,所述主动存储器可包含一或多个动态随机存取存储器(dram)装置或一或多个三维交叉点存储器装置。对于一些存储器子系统,用于存储l2p映射数据的存储器的至少一部分可暴露(例如,呈现可存取)到主机系统以用作缓冲存储器空间(例如,控制器存储器缓冲器(cmb)),主机系统可向所述缓冲存储器空间写入数据或构造(例如,队列),主机系统可从所述缓冲存储器空间读取数据或构造,或所述缓冲存储器空间可用作数据高速暂存器。在某些应用中,主机系统可使用存储器子系统的存储器上暴露的缓冲存储器空间以避免必须使用主机系统的处理器将数据中继到存储器子系统。举例来说,缓冲存储器空间可用于将待写入到存储器子系统的数据排队以用于永久存储,而不必涉及主机系统的处理器(例如,中央处理单元(cpu))来将数据中继到存储器子系统。缓冲存储器空间可例如由主机系统的图形处理器单元(gpu)或网络接口卡(nic)使用已将数据直接传送到存储器子系统(例如,gpu或nic复制待写入到缓冲存储器空间的数据,且随后,主机系统可接着发出指示存储器子系统将数据从缓冲存储器空间写入到存储器子系统上的永久性存储器的命令)。
19.本公开的各方面提供通过减小存储在存储器上的l2p映射数据的量来调节(例如,增大)由用于存储逻辑到物理存储器地址(l2p)映射数据的存储器子系统的存储器(例如,主动存储器)提供的缓冲存储器空间。确切地说,对于一些实施例,借助于改变l2p映射数据的结构、借助于减小暴露给主机系统使用的(逻辑名称空间的)逻辑存储器空间或通过两者的某一组合来减小存储在存储器上的l2p映射数据的量以使得其占据存储器上的较小空间。一些实施例通过实施或使用l2p映射数据高速缓存、通过改变l2p映射数据的间接单元大小或其某一组合来改变l2p映射数据的结构。另外,一些实施例通过限制存储在存储器上的l2p映射数据的量、通过使用一或多个名称空间的自动精简配置(其产生以一或多个名称
空间中的每一个的大小和存储位置锁定的过度布建存储空间)或其某一组合来减小暴露于主机系统的逻辑存储器空间。通过减小存储在存储器上的l2p映射数据的大小,额外的未使用数据存储空间在存储器上产生,其中此额外的未使用数据存储空间表示从减小中节省的且原本将用于将l2p映射数据存储在存储器上的存储空间。对于一些实施例,可调节存储器上的缓冲存储器空间以使用由l2p映射数据减少产生的额外的未使用数据存储空间中的一些或全部。
20.如本文中所描述,存储在存储器子系统的存储器上的l2p映射数据(例如l2p表)的减少结果可通过减小可供(例如,暴露到)主机系统存取的逻辑存储器空间(例如,名称空间的局部块或逻辑容量)来促进。因此,对于一些实施例,通过减小名称空间的暴露的逻辑存储器空间而减少l2p映射数据与可用于或可由主机系统存取的缓冲存储器空间的增大是平衡的(例如,可用或暴露于主机系统的逻辑存储器空间的减小可促进可用或暴露于主机系统的缓冲存储器空间的增大)。此平衡的实例在下表1中相对于使用(例如,存储器子系统控制器的)本地存储器存储l2p映射数据的存储器子系统进行说明。如表中所提到,可用的缓冲存储器空间假定本地存储器的256mib由杂项/开销数据使用。
[0021][0022]
取决于实施例,用于存储l2p映射数据且提供缓冲存储器空间的存储器子系统的存储器可包含例如一或多个dram或sram装置的一或多个易失性存储器装置,或例如三维交叉点存储器装置的一或多个非易失性存储器装置。对于其中主动存储器包含一或多个易失性存储器装置(例如,dram装置)的一些实施例,缓冲存储器空间实施控制器存储器缓冲器(cmb),例如由主机系统根据外围组件互连高速(pcie)标准可经由基地址寄存器(bar)空间存取的cmb。另外,对于其中主动存储器包含一或多个非易失性存储器装置(例如,三维交叉点存储器装置)的一些实施例,缓冲存储器空间实施例如非易失性存储器高速(nvme)pmr的永久性存储器区(pmr)。
[0023]
通过使用各种实施例,可在主机系统的请求(例如,指令或命令)处调节(例如,增加)存储器子系统的存储器(例如,dram)上的缓冲存储器空间,而不必将额外存储器装置(例如,额外dram装置)添加到存储器子系统。另外,各种实施例使得主机系统能够基于存储器子系统的不同使用情况/应用而调节(例如,增大或减小)待调节(例如,随时间)的存储器子系统的缓冲存储器空间。举例来说,特定使用情况/应用可使用(或得益于使用)缓冲存储器空间来存储存储器子系统的数据队列,且调节(例如,增大)缓冲存储器空间的能力可使得缓冲存储器空间能够支持适于或有益于使用情况/应用的队列大小(例如,队列深度)。此
外,各种实施例可使得单个存储器子系统架构能够支持(例如,提供)不同大小的缓冲存储器空间(例如,基于来自主机系统的调节或调谐请求),由此减小提供不同sku所需的不同存储器子系统架构的数目。
[0024]
如本文中所使用,数据存储空间也可称为存储空间或空间。另外,如本文中所使用,名称空间(或逻辑地址名称空间)可提供与另一名称空间相关联的另一逻辑地址空间(用于另一逻辑存储器空间)分离/隔离的逻辑地址空间(用于映射到物理存储器块的逻辑存储器块的逻辑存储器空间)。在一些情况下,可在存储器子系统上为在存储器子系统上操作的单独应用的创建单独的名称空间(例如,使用存储器子系统的服务器使用用于单独的服务器软件服务的单独的名称空间)。名称空间的实例可包括但不限于nvme名称空间。根据各种实施例,在分配用于存储器装置上的l2p映射数据的存储的数据存储空间中,每一名称空间被指派其自身的数据存储空间(所指派存储空间)。对于存储器子系统的给定名称空间,用于给定名称空间的指派数据存储空间用于存储l2p映射数据,所述l2p映射数据将给定名称空间的逻辑存储器地址映射到存储器子系统上的物理存储器地址。取决于实施例,可过度布建给定名称空间,以使得指派(例如,布建)到给定名称空间的数据存储空间(来自分配到l2p映射数据存储的数据存储空间)的量比存储由给定名称空间可用的逻辑地址空间(例如,逻辑地址空间的大小)的l2p映射数据更为必要。在本文中,用于给定名称空间的额外指派数据存储空间可称为过度布建存储空间。对于各种实施例,与给定名称空间相关联的过度布建存储空间可以大小固定且锁定在所分配存储空间内的位置(例如,相对于用于自动精简配置给定名称空间的所分配数据存储空间的位置)处。
[0025]
本文中揭示如本文所描述的用于调节由存储器子系统提供的缓冲存储器空间的系统的一些实例。
[0026]
图1说明根据本公开的一些实施例的包括存储器子系统110的实例计算系统100。存储器子系统110可包括媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
[0027]
存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包括固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、安全数字(sd)卡、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储器(ufs)驱动器和硬盘驱动器(hdd)。存储器模块的实例包括双列直插式存储器模块(dimm)、小型dimm(so-dimm)和各种类型的非易失性双列直插式存储器模块(nvdimm)。
[0028]
计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(iot)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包括的嵌入式计算机),或包括存储器和处理装置的这类计算装置。
[0029]
计算系统100可包括耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与...耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有介入组件),无论有线或无线,包括例如电连接、光学连接、磁性连接等连接。
[0030]
主机系统120可包括处理器芯片组和由处理器芯片组执行的软件栈。处理器芯片
组可包括一或多个核心、一个或多个高速缓存器、存储器控制器(例如,nvdimm控制器)和存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用存储器子系统110例如将数据写入到存储器子系统110和从存储器子系统110读取数据。
[0031]
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包括但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行附接scsi(sas)、小型计算机系统接口(scsi)、双数据速率(ddr)存储器总线、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)、开放nand快闪接口(onfi)、双数据速率(ddr)、低功率双数据速率(lpddr),或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120可进一步利用nvm高速(nvme)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据以及其它信号的接口。图1说明作为实例的存储器子系统110。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
[0032]
存储器装置130、140可包括不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为(但不限于)随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
[0033]
非易失性存储器装置(例如,存储器装置130)的一些实例包括与非(nand)型快闪存储器和就地写入存储器,如三维交叉点(“3d交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来进行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand型快闪存储器包括例如二维nand(2d nand)和三维nand(3d nand)。
[0034]
存储器装置130中的每一个可包括一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(slc)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(mlc)、三层级单元(tlc)、四层级单元(qlc)和五层级单元(plc)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包括一或多个存储器单元阵列,如slc、mlc、tlc、qlc或这些的任何组合。在一些实施例中,特定存储器装置可包括存储器单元的slc部分,以及mlc部分、tlc部分或qlc部分。存储器装置130的存储器单元可分组为可指代用于存储数据的存储器装置的逻辑单元的页。对于一些类型的存储器(例如,nand),页可被分组以形成块。
[0035]
尽管描述了例如nand型快闪存储器(例如,2d nand、3d nand)和非易失性存储器单元的3d交叉点阵列等非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻式随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器以及电可擦除可编程只读存储器(eeprom)。
[0036]
存储器子系统控制器115(或简称为控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,及其它这类操作。存储器子系统控制器115可包括硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包括具有专用(即,硬译码)逻辑的数字电路系统以进行本文中所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。
[0037]
存储器子系统控制器115可包括配置成执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明的实例中,存储器子系统控制器115的本地存储器119包括嵌入式存储器,其配置成存储指令以用于进行控制存储器子系统110的操作(包括处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
[0038]
在一些实施例中,本地存储器119可包括存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包括用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包括存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包括存储器子系统控制器115,且可替代地依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
[0039]
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或适当命令以实现对存储器装置130和/或存储器装置140的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑地址(例如,逻辑块地址(lba)、名称空间)与物理存储器地址(例如,物理块地址)之间的地址转译。存储器子系统控制器115还可包括主机接口电路系统以通过物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120接收到的命令转换成命令指令以存取存储器装置130和/或存储器装置140,以及将与存储器装置130和/或存储器装置140相关联的响应转换成用于主机系统120的信息。
[0040]
存储器子系统110还可包括未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包括高速缓存器或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址且解码所述地址以存取存储器装置130。
[0041]
在一些实施例中,存储器装置130包括本地媒体控制器135,其结合存储器子系统控制器115操作以在存储器装置130的一或多个存储器单元上执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130进行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地媒体控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例为受管理nand(mnand)装置。
[0042]
存储器子系统控制器115包括储器空间调节器113,所述缓冲存储器空间调节器113使能够或促进调节由如本文所描述的存储器子系统110的存储器装置提供的缓冲存储器空间的缓冲存。举例来说,对于一些实施例,本地存储器119存储用于存储器子系统110的逻辑到物理存储器地址(l2p)映射数据,且缓冲存储器空间调节器113使能够或促进调节由如本文所描述的存储器子系统110的本地存储器119提供的缓冲存储器空间。取决于实施
例,缓冲存储器空间调节器113可减小或限制存储在本地存储器119上的l2p映射数据的量,这可产生本地存储器119上的未使用数据存储空间。一些实施例的缓冲存储器空间调节器113可调节由本地存储器119提供的缓冲存储器空间以包括(例如,使用)所得未使用数据存储空间中的一些或全部。如本文中所描述,对于一些实施例,本地存储器119包含一或多个易失性存储器装置(例如,dram装置),且由本地存储器119提供的缓冲存储器空间实施控制器存储器缓冲器(cmb),例如根据外围组件互连高速(pcie)标准可经由基地址寄存器(bar)空间存取的cmb。另外,对于一些实施例,本地存储器119包含一或多个非易失性存储器装置(例如,三维交叉点存储器装置),且由本地存储器119提供的缓冲存储器空间实施永久性存储器区(pmr),例如(例如,可通过bar存取的)nvm高速(nvme)pmr。
[0043]
图2至4为说明根据本公开的一些实施例的调节由存储器子系统(例如,存储器子系统110)的存储器装置(例如,本地存储器119)提供的缓冲存储器空间的实例的框图。确切地说,图2说明使用未指派存储空间和未分配存储空间来提供缓冲存储器空间260,图3说明使用过度布建存储空间和未分配存储空间来提供缓冲存储器空间380,且图4说明使用过度布建存储空间、未指派存储空间及未分配存储空间来提供缓冲存储器空间490。
[0044]
现参看图2,所述图说明在应用(例如,启用)本文中所描述的实施例之前存储器装置的实例数据存储使用200,且进一步说明在提供根据本文中所描述的各种实施例的缓冲存储器空间260时的同一存储器装置的实例数据存储使用202。如所展示,存储器装置的数据存储使用200包含:开销数据空间210,其可表示存储由存储器子系统控制器用于操作存储器子系统的数据的存储空间;l2p映射数据分配空间212,其表示在存储器子系统的操作期间被分配以存储名称空间的l2p映射数据的数据存储空间;和未分配空间214,其表示当前未分配的数据存储空间(即,当前未分配用于存储l2p映射数据)。未分配空间214可用作存储器子系统的缓冲存储器空间。
[0045]
类似于数据存储使用200,存储器装置的数据存储使用202包含开销数据空间210、l2p映射数据分配空间212和未分配空间214。如所展示,l2p映射数据分配空间212包含所指派储存空间240-1至240-n以存储分别用于名称空间1到n的l2p映射数据。同样如所展示,l2p映射数据分配空间212包含用于存储l2p映射数据250(下文称为未指派空间250)的未指派空间,其表示当前未指派到任何现有名称空间的l2p映射数据分配空间212的部分。一般来说,在存储器子系统上创建的新名称空间(例如,新名称空间-n 1)可从未指派空间250指派数据存储空间,且现有名称空间的移除可导致指派到现有名称空间的l2p映射数据分配空间212中的数据存储空间未指派(例如,释放以供另一名称空间使用),这将增大未指派空间250的大小。根据各种实施例,限制l2p映射数据分配空间212(例如,锁定),使得阻止来自未指派空间250的存储空间被指派到另一(例如,新)名称空间。举例来说,根据一些实施例,一旦启用,一些实施例使得所指派存储空间240-1至240-n可保持指派到名称空间1至n,而将拒绝或阻止将数据存储空间从未指派空间250指派到任何新名称空间n 1。取决于实施例,现有名称空间1至n的一个的移除可释放所指派存储空间240-1至240-n中的对应一个以供另一(例如,新)名称空间使用,同时继续拒绝/阻止将数据存储空间从未指派空间250指派到任何新的或现有名称空间。
[0046]
根据一些实施例,在限制(例如,锁定)l2p映射数据存储之后,来自l2p映射数据分配空间212的未指派空间250的至少一些(例如,全部)和未分配空间214的至少一些(例如,
全部)用作由存储器子系统提供的缓冲存储器空间260。因此,缓冲存储器空间260已被调节为使用未指派空间250以相较于仅使用未分配空间214增大其存储器空间。取决于实施例,可基于在存储器子系统的操作期间由存储器子系统从主机系统接收到的请求(例如,指令或命令)而进行限制l2p映射数据存储以及将未指派空间250和未分配空间214用作缓冲存储器空间260。另外,启用l2p映射数据存储上限以及将未指派空间250和未分配空间214用作缓冲存储器空间260可涉及重启存储器子系统(例如,以准许缓冲存储器空间260[基于数据存储空间中的改变]调节报告给主机系统的大小)。对于一些实施例,可停用或移除l2p映射数据存储上限(例如,锁定)(例如,当缓冲存储器空间260不需要由未指派空间250提供的额外存储空间时),使得可恢复未指派空间250的部分(例如,到新的名称空间)的指派。在停用或移除l2p映射数据存储上限(例如,锁定)之后,可调节(例如,再调节)缓冲存储器空间260以使用仅未分配空间214作为存储空间。
[0047]
现参看图3,所述图说明在应用(例如,启用)本文中所描述的实施例之前存储器装置的实例数据存储使用300,且进一步说明在提供根据本文中所描述的各种实施例的缓冲存储器空间380时的同一存储器装置的实例数据存储使用302。如所展示,存储器装置的数据存储使用300类似于关于图2所描述的数据存储使用200,其中开销数据空间310类似于开销数据空间210,l2p映射数据分配空间312类似于l2p映射数据分配空间212,且未分配空间314类似于未分配空间214。
[0048]
类似于数据存储使用300,存储器装置的数据存储使用302包含开销数据空间310、l2p映射数据分配空间312和未分配空间314。如所展示,l2p映射数据分配空间312包含所指派储存空间370-1至370-n以存储分别用于名称空间1至n的l2p映射数据,且那些名称空间分别包含过度布建空间372-1至372-n。如本文中所描述,过度布建空间372-1至372-n中的每一个可表示指派(例如,布建)到其相应名称空间的额外数据存储空间。根据各种实施例,过度布建空间372-1至372-n中的每一个锁定在l2p映射数据分配空间312中,使得阻止或拒绝存储器系统(例如,存储器子系统控制器)使用过度布建空间372-1至372-n中的任何一个来存储任何(现有或新)名称空间的l2p映射数据。
[0049]
根据一些实施例,过度布建空间372-1至372-n中的至少一些(例如,全部)和未分配空间314的至少一些(例如,全部)用作由存储器子系统提供的缓冲存储器空间380。因此,缓冲存储器空间380已被调节为使用过度布建空间372-1至372-n以相较于仅使用未分配空间314增大其存储器空间。取决于实施例,可基于在存储器子系统的操作期间由存储器子系统从主机系统接收到的请求(例如,指令或命令)而进行将过度布建空间372-1至372-n和未分配空间314用作缓冲存储器空间380。另外,将过度布建空间372-1至372-n和未分配空间314用作缓冲存储器空间380可涉及重启存储器子系统(例如,以准许缓冲存储器空间380[基于数据存储空间中的改变]调节报告给主机系统的大小)。对于一些实施例,可停用过度布建空间372-1至372-n的使用,这可导致调节(例如,再调节)缓冲存储器空间380以仅使用未分配空间314作为存储空间。
[0050]
现参看图4,所述图说明在应用(例如,启用)本文中所描述的实施例之前存储器装置的实例数据存储使用400,且进一步说明在提供根据本文中所描述的各种实施例的缓冲存储器空间490时的同一存储器装置的实例数据存储使用402。如所展示,存储器装置的数据存储使用400类似于关于图2所描述的数据存储使用200,其中开销数据空间410类似于开
销数据空间210,l2p映射数据分配空间412类似于l2p映射数据分配空间212,且未分配空间414类似于未分配空间214。
[0051]
类似于数据存储使用400,存储器装置的数据使用402包含开销数据空间410、l2p映射数据分配空间412和未分配空间414。如所展示,l2p映射数据分配空间412包含所指派储存器空间470-1至470-n以存储分别用于名称空间1至n的l2p映射数据,且那些名称空间分别包含过度布建空间472-1至472-n。如本文中所描述,过度布建空间472-1至472-n中的每一个可表示指派(例如,提供)到其相应名称空间的额外数据存储空间。根据各种实施例,过度布建空间472-1至472-n锁定在l2p映射数据分配空间412中,使得阻止或拒绝存储器系统(例如,存储器子系统控制器)使用过度布建空间472-1至472-n中的任何一个来存储任何(现有或新)名称空间的l2p映射数据。
[0052]
如进一步展示,l2p映射数据分配空间412包含用于存储l2p映射数据450(下文称为未指派空间450)的未指派空间,其表示当前未指派到任何现有名称空间的l2p映射数据分配空间412的部分。如本文中所描述,在存储器子系统上创建的新名称空间(例如,新名称空间-n 1)可从未指派空间450指派数据存储空间,且现有名称空间的移除可导致指派到现有名称空间的l2p映射数据分配空间412中的数据存储空间未指派(例如,释放以供另一名称空间使用),这将增大未指派空间450的大小。根据各种实施例,限制(例如,锁定)l2p映射数据分配空间412,使得阻止来自未指派空间450的存储空间被指派到另一(例如,新)名称空间。举例来说,根据一些实施例,一旦启用,一些实施例使得所指派存储空间470-1至470-n(具有其相应过度布建空间472-1至472-n)可保持指派到名称空间1至n,而将拒绝或阻止将数据存储空间从未指派空间450指派到任何新名称空间n 1。
[0053]
根据一些实施例,在限制(例如,锁定)l2p映射数据存储之后,过度布建空间472-1至472-n的至少一些(例如,全部)、来自l2p映射数据分配空间412的未指派空间450的至少一些(例如,全部)和未分配空间414的至少一些(例如,全部)用作由存储器子系统提供的缓冲存储器空间490。因此,缓冲存储器空间490已被调节为使用过度布建空间472-1至472-n和未指派空间450以相较于仅使用未分配空间414增大其存储器空间。取决于实施例,可基于在存储器子系统的操作期间由存储器子系统从主机系统接收到的请求(例如,指令或命令)而进行限制l2p映射数据存储以及将未指派空间450用作缓冲存储器空间490、将过度布建空间472-1至472-n和未分配空间414用作缓冲存储器空间490。另外,将未指派空间450、过度布建空间472-1至472-n和未分配空间414用作缓冲存储器空间490可涉及重启存储器子系统(例如,以准许缓冲存储器空间490[基于数据存储空间中的改变]调节报告给主机系统的大小)。对于一些实施例,可停用或移除l2p映射数据存储上限(例如,锁定)(例如,当缓冲存储器空间490不需要未指派空间450提供的额外存储空间时),使得可恢复未指派空间450的部分(例如,到新名称空间)的指派。另外,可停用过度布建空间472-1至472-n的使用的使用。对于一些实施例,在停用或移除l2p映射数据存储上限(例如,锁定)且停用过度布建空间472-1至472-n的使用的使用之后,可再调节缓冲存储器空间490以仅使用未分配空间414作为存储空间。
[0054]
图5至8为根据本公开的一些实施例的用于调节由存储器子系统提供的缓冲存储器空间的实例方法的流程图。方法500、600、700、800可由处理逻辑进行,所述处理逻辑可包括硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路
等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法500、600、700、800中的至少一个由图1的存储器子系统控制器115基于缓冲存储器空间调节器113进行。另外或替代地,对于一些实施例,方法500、600、700、800中的至少一个至少部分地由图1的存储器装置130的本地媒体控制器135进行。尽管以特定序列或次序展示,但是除非另外规定,否则可修改过程的次序。因此,所说明的实施例应仅作为实例理解,且所说明的过程可以不同次序进行,并且一些过程可并行进行。另外,可以在各种实施例中省略一个或多个过程。因此,并非全部过程都在每一实施例中使用。其它过程流程是可能的。
[0055]
图5至7的方法500、600、700是关于减小由存储器子系统暴露以供主机系统使用的逻辑存储器空间,这可使可由主机系统存取的缓冲存储器空间能够被调节(例如,增大)。现参看图5的方法500,在操作502处,处理装置(例如,存储器子系统控制器115的处理器117)分配存储器子系统(例如,存储器子系统110)的一组存储器装置(例如,本地存储器119)上的存储空间(例如,212、312、412),以用于存储将名称空间(具有一组逻辑存储器地址)的逻辑存储器地址映射到物理存储器地址的逻辑到物理存储器地址映射数据,其中物理存储器地址与存储器子系统的另一组存储器装置(例如,存储器装置130和/或存储器装置140)上的数据存储位置相对应。取决于实施例,用于存储逻辑到物理存储器地址映射数据且提供缓冲存储器空间(如本文所描述)的存储器装置组可包含例如dram装置的一或多个易失性存储器装置,或例如三维交叉点存储器装置的一或多个非易失性存储器装置。在存储器子系统的操作期间,将在存储器子系统上创建和移除一或多个名称空间,这可影响存储器装置组上的剩余的未指派存储空间的多少。举例来说,新名称空间的创建可导致所分配存储空间的一部分指派到新名称空间,这可导致未指派存储空间的减小。现有名称空间的移除可导致其在所分配的存储空间中的对应的所分配存储空间的释放(例如,未指派),这可导致未分配存储空间的增大。
[0056]
在操作504处,处理装置(例如,处理器117)确定是否在存储器子系统上启用可调节缓冲存储器空间特征。根据一些实施例,可调节缓冲存储器空间特征使得缓冲存储器空间能够通过使用原本将指派(例如,保留)在用于存储给定名称空间的逻辑到物理存储器地址映射数据的存储器装置组(例如,本地存储器119)上的数据存储空间增大(例如,扩展)。
[0057]
在操作506处,处理装置(例如,处理器117)基于启用可调节缓冲存储器而进行操作520至524。确切地说,对于一些实施例,当启用可调节缓冲存储器时进行操作520至524,且当停用可调节缓冲存储器时不进行操作520至524。如本文中所描述,当停用可调节缓冲存储器时,由存储器子系统提供的缓冲存储器空间可受限于存储器装置组(例如,本地存储器119)上的未分配存储空间(例如,在用于存储开销数据的存储空间外部和在分配用于存储逻辑到物理存储器地址映射数据的存储空间外部的存储空间)。
[0058]
在操作520处,处理装置(例如,处理器117)确定(例如,识别)所分配存储空间(由操作502分配用于存储逻辑到物理存储器地址映射数据)中的未指派存储空间(例如,250、450)。对于一些实施例,确定未指派存储空间可包含确定多少未指派存储空间可用或未指派存储空间位于存储器装置组上的何处。另外,在操作522处,处理装置(例如,处理器117)确定(例如,识别)存储器装置组上的未分配存储空间(在被分配以存储l2p映射数据的数据存储空间外部的数据存储空间)。对于一些实施例,确定未分配存储空间可包含确定多少未分配存储空间可用或未分配存储空间位于存储器装置组上的何处。
[0059]
在操作524处,处理装置(例如,处理器117)针对耦合到存储器子系统的主机系统启用对存储器装置组上的缓冲存储器空间的存取,其中缓冲存储器空间包含由操作522确定的未分配存储空间的一部分(例如,一些或全部)和由操作520确定的未指派存储空间的一部分(例如,一些或全部)。对于一些实施例,用作缓冲存储器空间的未分配存储空间或未指派存储空间的部分或量是基于来自耦合到存储器子系统的主机系统的请求(例如,指令)。在通过操作524启用对缓冲存储器空间的存取之后,一些实施例保留未指派存储空间和未分配存储空间以用作缓冲存储器空间的部分。一旦保留,存储器子系统(例如,存储器子系统控制器115)就可阻止或拒绝将未指派存储空间或未分配存储空间用于除缓冲存储器空间以外的某物的任何请求或尝试。举例来说,在保留未指派存储空间和未分配存储空间以用作缓冲存储器空间的部分之后,存储器子系统可接收对存储器子系统上的逻辑存储器地址的新名称空间的(的创建)的请求。响应于对新名称空间的请求,存储器子系统可确定在不指派未分配存储空间的情况下是否可布建新名称空间(例如,可通过从在现有名称空间的移除之后释放的所分配存储空间指派存储空间来布建)。响应于确定在不指派未分配存储空间的情况下不能布建新名称空间,存储器子系统可拒绝或阻止来自主机系统的请求。保留未分配存储空间可以有效地限制(或冻结)在启用可调节缓冲存储器空间特征时用于存储l2p映射数据的存储器装置组上可用的存储空间的量。对于一些实施例,未指派存储空间和未分配存储空间保持保留直到停用可调节缓冲存储器空间特征为止。经由主机系统,用户可停用可调节缓冲存储器空间特征以便将存储器子系统和缓冲存储器空间恢复到传统配置。
[0060]
在存储器装置组包含一或多个易失性存储器装置(例如,dram装置)的情况下,缓冲存储器空间可实施cmb,例如根据pcie标准经由bar空间可由主机系统存取的cmb。另外,在存储器装置组包含一或多个非易失性存储器装置(例如,三维交叉点存储器装置)的情况下,缓冲存储器空间可实施pmr,例如nvme pmr。对于一些实施例,启用对缓冲存储器空间的存取包含重启或重置存储器子系统以调节报告给主机系统的缓冲存储器空间的存储大小(以考量将未指派存储空间的部分包括为缓冲存储器空间的部分)。举例来说,在由主机系统使用bar空间存取缓冲存储器空间的情况下,存储器子系统的重启可使bar空间得以调节以反映缓冲存储器的当前存储空间(例如,可由主机系统存取的内容和向主机系统报告为可存取的内容)。
[0061]
对于一些实施例,存储器子系统可从主机系统接收停用可调节缓冲存储器空间特征的请求。作为响应,处理装置(例如,处理器117)可调节缓冲存储器空间以从缓冲存储器空间排除(例如,移除)过度布建存储空间组的部分。对于一些实施例,停用可调节缓冲存储器空间特征包含重启或重置存储器子系统以调节报告给主机系统的缓冲存储器空间的存储大小(以考量从缓冲存储器空间排除未指派存储空间)。
[0062]
现参看图6的方法600,根据一些实施例,操作602和604分别类似于关于图5描述的方法500的操作502和504。
[0063]
在操作606处,处理装置(例如,处理器117)基于启用可调节缓冲存储器而进行操作620至624。确切地说,对于一些实施例,当可启用调节缓冲存储器时进行操作620至624,且当停用可调节缓冲存储器时不进行操作620至624。如本文中所描述,当停用可调节缓冲存储器时,由存储器子系统提供的缓冲存储器空间可受限于存储器装置组(例如,本地存储
器119)上的未分配存储空间(例如,在用于存储开销数据的存储空间外部和在分配用于存储逻辑到物理存储器地址映射数据的存储空间外部的存储空间)。
[0064]
在操作620处,处理装置(例如,处理器117)确定(例如,识别)一组过度布建存储空间(例如,372、472)在所分配存储空间中指派到一组当前名称空间(例如,370、470)。对于一些实施例,确定过度布建存储空间组可包含确定多少过度布建存储空间可用或过度布建存储空间中的每一个位于存储器装置组上的何处。另外,在操作622处,处理装置(例如,处理器117)确定(例如,识别)存储器装置组上的未分配存储空间(在被分配以存储l2p映射数据的数据存储空间外部的数据存储空间)。对于一些实施例,确定未分配存储空间可包含确定多少未分配存储空间可用或未分配存储空间位于存储器装置组上的何处。
[0065]
在操作624处,处理装置(例如,处理器117)针对耦合到存储器子系统的主机系统启用对存储器装置组上的缓冲存储器空间的存取,其中缓冲存储器空间包含由操作622确定的未分配存储空间的一部分(例如,一些或全部)和由操作620确定的过度布建存储空间组的一部分(例如,一些或全部)。对于一些实施例,用作缓冲存储器空间的未分配存储空间或过度布建存储空间组的部分或量是基于来自耦合到存储器子系统的主机系统的请求(例如,指令)。在通过操作624启用对缓冲存储器空间的存取之后,一些实施例保留未分配存储空间和过度布建存储空间组以用作缓冲存储器空间的部分。一旦保留,存储器子系统(例如,存储器子系统控制器115)就可阻止或拒绝将过度布建存储空间组或未分配存储空间用于除缓冲存储器空间以外的某物的任何请求或尝试。举例来说,在保留过度布建存储空间组和未分配存储空间以用作缓冲存储器空间的部分之后,存储器子系统可经由命令(例如,formatnvm)接收(创建)调节过度布建存储空间中的一或多个(例如,增大或减小过度布建存储空间)的请求。响应于调节过度布建存储空间中的一个或多个的请求,存储器子系统可拒绝或阻止来自主机系统的请求。对于一些实施例,过度布建存储空间组和未分配存储空间保持保留直到停用可调节缓冲存储器空间特征为止。如本文中所描述,经由主机系统,用户可在偏好将存储器子系统和缓冲存储器空间恢复到传统配置时停用可调节缓冲存储器空间特征。
[0066]
如本文中所描述,在存储器装置组包含一或多个易失性存储器装置(例如,dram装置)的情况下,缓冲存储器空间可实施cmb,例如根据pcie标准经由bar空间可由主机系统存取的cmb。另外,在存储器装置组包含一或多个非易失性存储器装置(例如,三维交叉点存储器装置)的情况下,缓冲存储器空间可实施pmr,例如nvme pmr。对于一些实施例,启用对缓冲存储器空间的存取包含重启或重置存储器子系统以调节报告给主机系统的缓冲存储器空间的存储大小(以考量包括过度布建存储空间组的部分作为缓冲存储器空间的部分)。
[0067]
对于一些实施例,存储器子系统可从主机系统接收停用可调节缓冲存储器空间特征的请求。作为响应,处理装置(例如,处理器117)可调节缓冲存储器空间以从缓冲存储器空间排除(例如,移除)过度布建存储空间组的部分。对于一些实施例,停用可调节缓冲存储器空间特征包含重启或重置存储器子系统以调节报告给主机系统的缓冲存储器空间的存储大小(以考量从缓冲存储器空间排除过度布建存储空间组)。
[0068]
现参看图7的方法700,根据一些实施例,操作702类似于关于图5描述的方法500的操作502。
[0069]
在操作704处,处理装置(例如,处理器117)从主机系统接收启用可调节缓冲存储
器空间特征的请求。举例来说,请求可包含来自主机系统的命令,例如设置命令(例如,nvme设置特征命令)、布建商特定/唯一命令(例如,基于nvme协议标准的布建商特定(vs)命令)、现有命令上的布建商特定(vs)位或经由用于存储器子系统的各种管理操作(例如,将固件从主机系统上载到存储器子系统)的边带总线接口(例如,smbus)发布到存储器子系统的边带命令。作为用于启用可调节缓冲存储器空间的实例抢占方法,请求可包含启用可调节缓冲存储器空间且指定需要多少逻辑地址空间或需要多少缓冲存储器空间的一个或多个命令。作为另一实例,请求可包含从预定保留多少数据存储空间用于存储l2p映射数据和提供多少缓冲存储器空间的一组选项中选择的命令。在又另一实例中,请求可包含使用主机系统通过其存取缓冲存储器空间的接口选择缓冲存储器空间大小的主机系统(例如,主机系统通过基于pcie标准的接口选择缓冲存储器空间的bar大小)。
[0070]
在操作706处,处理装置(例如,处理器117)确定是否在存储器子系统上启用可调节缓冲存储器空间特征。举例来说,在操作704处所接收的启用可调节缓冲存储器空间特征的请求完成的情况下,操作706可确定启用可调节缓冲存储器空间特征。关于方法700,可调节缓冲存储器空间特征使得缓冲存储器空间能够通过使用原本应分配(例如,保留)在用于存储逻辑到物理存储器地址映射数据的存储器装置组(例如,本地存储器119)上的数据存储空间增大(例如,扩展)。
[0071]
在操作708处,处理装置(例如,处理器117)基于启用可调节缓冲存储器而进行操作720至726。确切地说,对于一些实施例,当启用可调节缓冲存储器时进行操作720至726,且当停用可调节缓冲存储器时不进行操作720至726。如本文中所描述,当停用可调节缓冲存储器时,由存储器子系统提供的缓冲存储器空间可受限于存储器装置组(例如,本地存储器119)上的未分配存储空间(例如,在用于存储开销数据的存储空间外部和在分配用于存储逻辑到物理存储器地址映射数据的存储空间外部的存储空间)。
[0072]
在操作720处,处理装置(例如,处理器117)确定(例如,识别)一组过度布建存储空间(例如,372、472)在所分配的存储空间中指派到一组当前名称空间(例如,370、470)。如本文中所描述,确定过度布建存储空间组可包含确定多少过度布建存储空间可用或过度布建存储空间中的每一个位于存储器装置组上的何处。在操作722处,处理装置(例如,处理器117)确定(例如,识别)所分配存储空间(由操作702分配用于存储逻辑到物理存储器地址映射数据)中的未指派存储空间(例如,250、450)。如本文中所描述,确定未指派存储空间可包含确定多少未指派存储空间可用或未指派存储空间位于存储器装置组上的何处。另外,在操作724处,处理装置(例如,处理器117)确定(例如,识别)存储器装置组上的未分配存储空间(在被分配以存储l2p映射数据的数据存储空间外部的数据存储空间)。如本文中所描述,确定未分配存储空间可包含确定多少未分配存储空间可用或未分配存储空间位于存储器装置组上的何处。
[0073]
在操作726处,处理装置(例如,处理器117)针对耦合到存储器子系统的主机系统启用对存储器装置组上的缓冲存储器空间的存取,其中缓冲存储器空间包含由操作724确定的未分配存储空间的一部分(例如,一些或全部)、由操作722确定的未指派存储空间的一部分(例如,一些或全部)和由操作720确定的过度布建存储空间组的一部分(例如,一些或全部)。对于一些实施例,用作缓冲存储器空间的未分配存储空间、未指派存储空间或过度布建存储空间组的部分或量是基于来自耦合到存储器子系统的主机系统的请求(例如,指
令)。在通过操作726启用对缓冲存储器空间的存取之后,一些实施例保留未指派存储空间和过度布建存储空间组以用作缓冲存储器空间的部分。一旦保留,存储器子系统(例如,存储器子系统控制器115)就可阻止或拒绝将未指派存储空间、过度布建存储空间组或未分配存储空间用于除缓冲存储器空间以外的某物的任何请求或尝试。
[0074]
举例来说,在保留未指派存储空间和未分配存储空间以用作缓冲存储器空间的部分之后,存储器子系统可接收对存储器子系统上的逻辑存储器地址的新名称空间的(的创建)的请求。响应于对新名称空间的请求,存储器子系统可确定在不指派未分配存储空间的情况下是否可布建新名称空间(例如,可通过从在现有名称空间的移除之后释放的所分配存储空间指派存储空间来布建)。响应于确定在不指派未分配存储空间的情况下不能布建新名称空间,存储器子系统可拒绝或阻止来自主机系统的请求。在另一实例中,在保留未指派存储空间、过度布建存储空间组和未分配存储空间以用作缓冲存储器空间的部分之后,存储器子系统可经由命令(例如,formatnvm)接收(创建)调节过度布建存储空间中的一或多个(例如,增大或减小过度布建存储空间)的请求。响应于调节过度布建存储空间中的一个或多个的请求,存储器子系统可拒绝或阻止来自主机系统的请求。对于一些实施例,未指派存储空间、过度布建存储空间组和未分配存储空间保持保留直到停用可调节缓冲存储器空间特征为止。
[0075]
在操作710处,处理装置(例如,处理器117)从主机系统接收停用可调节缓冲存储器空间特征的请求。如本文中所描述,经由主机系统,用户可停用可调节缓冲存储器空间特征以便将存储器子系统和缓冲存储器空间恢复到传统配置。
[0076]
在操作712处,响应于停用可调节缓冲存储器空间特征的请求(由操作710接收),处理装置(例如,处理器117)调节缓冲存储器空间以从缓冲存储器空间排除(例如,移除)未指派存储空间的部分和过度布建存储空间组的部分。对于一些实施例,停用可调节缓冲存储器空间特征包含重启或重置存储器子系统以调节报告给主机系统的缓冲存储器空间的存储大小(以考量从缓冲存储器空间排除未指派存储空间和过度布建存储空间组)。
[0077]
现参看图8的方法800,方法800是关于改变到l2p映射数据的结构(例如,架构)以减小存储在存储器子系统的存储器(例如,本地存储器119)上的l2p映射数据的量,其可使得能够调节(例如,增大)可由主机系统(例如,主机系统120)存取的缓冲存储器空间。在操作802处,处理装置(例如,处理器117)接收减小逻辑到物理存储器地址(l2p)映射数据(例如,l2p表)的数据大小的请求(例如,指令或命令),其中l2p映射数据包含各自将名称空间的逻辑存储器地址映射到与存储在存储器子系统的第一组存储器装置(例如,130、140)上的数据单元(例如,间接单元)相对应的物理存储器地址的一组条目,其中数据单元具有数据单元大小(例如,间接单元大小),且其中l2p映射数据存储在存储器子系统的第二组存储器装置(例如,本地存储器119)上。举例来说,请求可包含来自主机系统的命令,例如设置命令(例如,nvme设置特征命令)、布建商特定/唯一命令(例如,基于nvme协议标准的布建商特定(vs)命令)、现有命令上的布建商特定(vs)位(例如,nvme格式nvm命令)或经由用于存储器子系统的各种管理操作(例如,将固件从主机系统上载到存储器子系统)的边带总线接口(例如,smbus)发布到存储器子系统的边带命令。对于一些实施例,请求(例如,命令)从确定预定数据单元大小(例如,间接单元大小)的多个选项中的一个进行选择。举例来说,数据单元大小的一个选项可包含4k(例如,4k字节),数据单元大小的另一选项可包含6k,数据单元
大小的另一选项可包含8k,且数据单元大小的另一选项可包含10k。
[0078]
响应于由操作802接收到的请求,在操作804处,处理装置(例如,处理器117)将数据单元大小从第一值更新到第二值,其中第二值大于第一值。举例来说,第一值可包含4k(例如,表示4k字节间接单元大小),且第二值可包含8k(例如,表示8k字节间接单元大小)。第一和第二值可在不同实施例之间变化。对于一些实施例,第一值表示存储器子系统的默认值或制造商设定值。
[0079]
在操作806处,处理装置(例如,处理器117)基于更新后的数据单元大小产生减小大小的逻辑到物理存储器地址映射数据,其中减小大小的逻辑到物理存储器地址(l2p)映射数据存储在第二组存储器装置(例如,本地存储器119)上。确切地说,对于各种实施例,l2p映射数据基于数据单元大小为第一值而产生,减小大小的l2p映射数据基于数据单元大小为第二值而产生,且减小大小的l2p映射数据的数据大小小于(先前的)l2p映射数据。
[0080]
在操作808处,处理装置(例如,处理器117)基于由操作806产生的减小大小的l2p映射数据而确定第二组存储器装置(例如,本地存储器119)上的未分配存储空间。根据各种实施例,l2p映射数据的数据大小的减小(通过操作806)导致第二组存储器装置上的未分配存储空间比将另外存在于第二组存储器装置上的未分配存储空间更大。表2说明在使用4k间接单元大小和8k间接单元大小的情况下,使用(例如,存储器子系统控制器的)本地存储器来存储l2p映射数据的存储器子系统可暴露多少缓冲存储器空间的实例。如表中所提到,可用的缓冲存储器空间假定本地存储器的256mib由杂项/开销数据使用。
[0081][0082]
如由表2所展示,8k数据大小单元导致减小大小的l2p映射数据,所述减小大小的l2p映射数据的数据大小小于基于4k数据大小单元产生的l2p映射数据。
[0083]
在操作810处,处理装置(例如,处理器117)针对主机系统启用对第二组存储器装置上的缓冲存储器空间的存取,其中缓冲存储器空间包含未分配存储空间的一部分。如本文中所描述,启用对缓冲存储器空间的存取包含重启或重置存储器子系统以调节报告给主机系统的缓冲存储器空间的存储大小(以考量包括通过l2p映射数据的结构中的改变而由l2p映射数据的尺寸减小产生的额外存储空间)。
[0084]
尽管未说明,但对于一些实施例,使用l2p映射数据高速缓存还可用于减小用于存储第二组存储器装置上的l2p映射数据的数据存储的量。根据各种实施例,基于高速缓存l2p映射数据的l2p映射数据的数据大小的减小导致(或允许)第二组存储器装置上的额外未分配数据存储(例如,未分配用于存储l2p映射数据的更多数据存储空间)。
[0085]
图9a和9b提供说明其中进行如本文所描述的用于调节由存储器子系统提供的缓冲存储器空间的方法的一些实施例的上下文中的计算环境的组件之间的交互的交互图。所述方法的操作可由处理逻辑执行,所述处理逻辑可包括硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,所述方法由主机系统(例如,120、存储器子系统控制器(例如,115)、本地存储器(例如,119)或其某一组合进行。尽管以特定序列或次序展示操作,但除非另外说明,否则可修改过程的次序。因此,所说明的实施例应仅作为实例理解,且所说明的过程可以不同次序进行,并且一些过程可并行进行。另外,可以在各种实施例中省略一个或多个过程。因此,并非全部过程都在每一实施例中使用。在图9a和9b中说明的实例的上下文中,主机系统可包括主机系统120,存储器子系统控制器可包括存储器子系统控制器115,且本地存储器可包括本地存储器119。
[0086]
如图9a中所展示,在操作910处,存储器子系统控制器115分配存储器子系统的一组存储器装置(例如,本地存储器119)上的存储空间(例如,212、312、412)以用于存储将名称空间的逻辑存储器地址(具有一组逻辑存储器地址)映射到物理存储器地址的逻辑到物理存储器地址映射数据,其中物理存储器地址与存储器子系统的另一组存储器装置上的数据存储位置相对应。在操作902处,主机系统120发送启用可调节缓冲存储器空间特征的请求。在操作930处,本地存储器119促进用于存储逻辑到物理存储器地址映射数据的数据存储空间的分配。
[0087]
在操作912处,存储器子系统控制器115接收请求。在操作914处,存储器子系统控制器115确定是否在存储器子系统上启用可调节缓冲存储器空间特征。基于确定启用可调节缓冲存储器空间特征,由存储器子系统控制器115进行操作916至922。
[0088]
在操作916处,存储器子系统控制器115确定(例如,识别)所分配存储空间(由操作910分配用于存储逻辑到物理存储器地址映射数据)中的未指派存储空间(例如,250、450)。在操作932处,本地存储器119促进未指派存储空间的确定。在操作918处,存储器子系统控制器115确定(例如,识别)一组过度布建存储空间(例如,372、472)在所分配存储空间中指派到一组当前名称空间(例如,370、470)。在操作934处,本地存储器119促进过度布建存储空间组的确定。在操作920处,存储器子系统控制器115确定(例如,识别)存储器装置组上的未分配存储空间。在操作936处,本地存储器119促进未分配存储空间的确定。
[0089]
现参看图9b,在操作922处,存储器子系统控制器115针对耦合到存储器子系统的主机系统启用对存储器装置组上的缓冲存储器空间的存取,其中缓冲存储器空间包含由操作920确定的未分配存储空间的一部分(例如,一些或全部)、由操作916确定的未指派存储空间的一部分(例如,一些或全部)和由操作918确定的过度布建存储空间组的一部分(例如,一些或全部)。在操作904处,主机系统120(从存储器子系统110)接收对存储器子系统110的本地存储器119上启用的缓冲存储器空间的存取。
[0090]
图10说明呈计算机系统1000的形式的实例机器,在其内可执行指令集以用于使所述机器进行本文中所论述的任何一或多个方法。在一些实施例中,计算机系统1000可与主机系统(例如,图1的主机系统120)相对应,其包括、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于进行本文中所描述的操作。在替代实施例中,所述机器可连接(例如,联网)到局域网(lan)、内联网、外联网和/或因特网中的其它机器。机器可作为对
等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
[0091]
机器可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂巢式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包括机器的任何集合,所述集合单独地或共同地执行一个(或多个)指令集以进行本文中所论述的方法中的任何一或多个。
[0092]
实例计算机系统1000包括处理装置1002、主存储器1004(例如,只读存储器(rom)、快闪存储器、如同步dram(sdram)或rambus dram(rdram)等的动态随机存取存储器(dram))、静态存储器1006(例如,快闪存储器、静态随机存取存储器(sram)等),和数据存储装置1018,其经由总线1030彼此通信。
[0093]
处理装置1002表示一或多个通用处理装置,如微处理器、中央处理单元或其类似物。更确切地说,处理装置1002可为复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置1002也可为一或多个专用处理装置,如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器或其类似物。处理装置1002配置成执行用于进行本文中所论述的操作和步骤的指令1026。计算机系统1000可进一步包括网络接口装置1008以通过网络1020通信。
[0094]
数据存储装置1018可包括机器可读存储媒体1024(也称为计算机可读媒体),在其上存储有一或多个指令集1026或体现本文中所描述的方法或功能中的任何一或多个的软件。指令1026还可在其由计算机系统1000执行期间完全或至少部分地驻存在主存储器1004内和/或处理装置1002内,主存储器1004和处理装置1002也构成机器可读存储媒体。机器可读存储媒体1024、数据存储装置1018和/或主存储器1004可与图1的存储器子系统110相对应。
[0095]
在一个实施例中,指令1026包括用以实施与调节由如本文所描述的存储器子系统(例如,图1的缓冲存储器空间调节器113)提供的缓冲存储器空间相对应的功能性的指令。尽管在实例实施例中机器可读存储媒体1024展示为单个媒体,但应认为术语“机器可读存储媒体”包括存储一或多个指令集的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包括能够存储或编码供机器执行的指令集且使得机器进行本公开的方法中的任何一或多个的任何媒体。因此,应认为术语“机器可读存储媒体”包括但不限于固态存储器、光学媒体和磁性媒体。
[0096]
已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示为数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作为要求对物理量进行物理操控的操作。通常(但未必),这些量呈能够存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或其类似物是方便的。
[0097]
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅是应用于这些量的方便标签。本公开可指操控计算机系统的寄存器和存储器内的表示为物理(电子)量的数
据且将所述数据变换成计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
[0098]
本公开还涉及用于进行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包括通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包括软盘、光盘、cd-rom和磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自连接到计算机系统总线。
[0099]
本文中呈现的算法和显示本质上并不与任何特定计算机或另一设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构造用以进行所述方法更加专用的设备是方便的。将如下文描述中所阐述而表现用于各种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示。
[0100]
本公开可提供为计算机程序产品或软件,其可包括在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包括用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包括机器(例如,计算机)可读存储媒体,如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
[0101]
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中所阐述的本公开的实施例的更广精神和范围的情况下对其进行各种修改。因此,应在说明性意义上而非限制性意义上看待本说明书和附图。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献