CN114171076A - 自适应缓冲器分割 - Google Patents
自适应缓冲器分割 Download PDFInfo
- Publication number
- CN114171076A CN114171076A CN202110966214.4A CN202110966214A CN114171076A CN 114171076 A CN114171076 A CN 114171076A CN 202110966214 A CN202110966214 A CN 202110966214A CN 114171076 A CN114171076 A CN 114171076A
- Authority
- CN
- China
- Prior art keywords
- buffer
- memory
- data
- store
- amount
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
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/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
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/14—Word line organisation; Word line lay-out
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/061—Improving I/O performance
-
- 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/0656—Data buffering arrangements
-
- 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/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4097—Bit-line organisation, e.g. bit-line layout, folded bit lines
Abstract
本申请案针对于自适应缓冲器分割。存储器系统可包含用于存储(例如,与从主机系统接收的读取命令或写入命令相关联的)数据的缓冲器。举例来说,所述缓冲器可在将与写入命令相关联的数据存储于所述存储器系统的存储器装置处之前缓冲所述数据。在另一实例中,所述缓冲器可在将与读取命令相关联的数据发射到所述主机系统之前缓冲所述数据。在一些情况下,所述缓冲器可包含被配置成存储与一或多个读取命令相关联的数据的第一部分、被配置成存储与一或多个写入命令相关联的数据的第二部分以及被配置成存储与一或多个读取命令或一或多个写入命令相关联的数据的第三部分。
Description
交叉引用
本专利申请案主张帕特里压尔卡(Patriarca)等人在2020年11月17日申请的标题为“自适应缓冲器分割(ADAPTIVE BUFFER PARTITIONING)”的美国专利申请案第16/950,596号的优先权,所述美国专利申请案主张帕特里压尔卡等人在2020年8月21日申请的标题为“自适应缓冲器分割(ADAPTIVE BUFFER PARTITIONING)”的美国暂时专利申请案第63/068,949号的优先权,这两篇申请案转让给本受让人,且以引用的方式明确并入本文中。
技术领域
技术领域涉及自适应缓冲器分割。
背景技术
存储器装置广泛用于将信息存储在例如计算机、无线通信装置、相机、数字显示器等的各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。举例来说,二进制存储器单元可编程到两个支持状态中的一个,常常由逻辑1或逻辑0来标示。在一些实例中,单个存储器单元可支持多于两个状态,可存储所述状态中的任一个。为了存取所存储信息,组件可以读取或感测存储器装置中的至少一个所存储状态。为了存储信息,组件可在存储器装置中写入状态或对状态进行编程。
存在各种类型的存储器装置和存储器单元,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、快闪存储器、相变存储器(PCM)、自选存储器、硫属化物存储器技术和其它。存储器单元可为易失性或非易失性的。非易失性存储器,例如FeRAM,可维持其所存储的逻辑状态很长一段时间,即使无外部电源存在也是这样。例如DRAM的易失性存储器装置在与外部电源断开连接时可能会丢失其所存储的状态。
发明内容
描述一种存储代码的非暂时性计算机可读媒体。所述代码可包括指令,所述指令在由电子装置的处理器执行时致使所述电子装置:从主机系统接收与数据集相关联的写入命令;针对被配置成缓冲正在所述主机系统和存储器系统的存储器装置集之间传送的数据的缓冲器,确定所述缓冲器内可用于存储所述数据集的空间量足以存储所述数据集,其中所述缓冲器内的所述可用空间量至少部分地基于所述缓冲器的与读取命令相关联的第一部分、所述缓冲器的与写入命令相关联的第二部分以及所述缓冲器的与读取命令和写入命令相关联的第三部分;将对所述缓冲器内的所述空间量足以存储所述数据集的指示发射到所述主机系统;和通过所述缓冲器至少部分地基于发射所述指示而从所述主机系统接收所述数据集。
描述一种存储代码的非暂时性计算机可读媒体。所述代码可包括指令,所述指令在由电子装置的处理器执行时致使所述电子装置:从主机系统接收与数据集相关联的读取命令;针对被配置成缓冲正在存储器系统的存储器装置集和所述主机系统之间传送的数据的缓冲器,确定所述缓冲器内可用于存储所述数据集的空间量,其中所述缓冲器内的所述可用空间量至少部分地基于所述缓冲器的与读取命令相关联的第一部分、所述缓冲器的与写入命令相关联的第二部分以及所述缓冲器的与读取命令和写入命令相关联的第三部分;至少部分地基于所述缓冲器内的足以存储所述数据集的所述空间量而将所述读取命令发到所述存储器装置集的存储器装置;和至少部分地基于发出所述读取命令而将所述数据集从所述存储器装置传送到所述缓冲器。
描述一种设备。所述设备可包含接口,其被配置成与主机系统通信且被配置成从所述主机系统接收一或多个读取命令和一或多个写入命令;存储器装置集,其被配置成至少部分地基于所述一或多个读取命令和所述一或多个写入命令而存储一或多个数据集;和缓冲器,其与所述接口和所述存储器装置集耦合并且被配置成根据所述一或多个读取命令和一或多个写入命令在所述接口和所述存储器装置集之间传送所述一或多个数据集,所述缓冲器包括:第一部分,其被配置成存储与所述一或多个读取命令相关联的数据;第二部分,其被配置成存储与所述一或多个写入命令相关联的数据;和第三部分,其被配置成存储与所述一或多个读取命令和所述一或多个写入命令相关联的数据。
附图说明
图1说明根据本文所公开的实例的支持自适应缓冲器分割的系统的实例。
图2说明根据本文所公开的实例的支持自适应缓冲器分割的存储器装置的实例。
图3说明根据本文所公开的实例的支持自适应缓冲器分割的系统的实例。
图4说明根据本文所公开的实例的支持自适应缓冲器分割的缓冲器配置的实例。
图5和6说明根据本文所公开的实例的支持自适应缓冲器分割的实例流程图。
图7示出根据本公开的方面的支持自适应缓冲器分割的存储器系统的框图。
图8和9示出根据本文所公开的实例的说明支持自适应缓冲器分割的一或多种方法的流程图。
具体实施方式
存储器系统可从主机系统接收存取命令(例如,读取命令、写入命令)。存储器系统可使用读取和写入缓冲空间管理读取命令和写入命令的队列。也就是说,与读取命令相关联的数据和与写入命令相关联的数据可在分别发射到主机系统或存储于存储器系统的存储器装置处之前缓冲于缓冲空间内。在一些情况下,存储器系统可使用硬件用于存储器分配和解除分配,包含将数据加载到缓冲器并且在主机系统和存储器系统的存储器装置之间传送数据。另外,一些存储器系统可具有读取和写入缓冲空间的固定分配。在一些实例中,可在读取和写入缓冲空间之间分割总缓冲空间,但分割可为静态(例如,永久性)或半静态(例如,分割可不频繁地改变且具有限制,例如为即将发生的分割清除缓冲器)。在一些情况下(例如,对于连续读取命令,对于连续写入命令),固定分区可能不适应于命令序列改变,尤其是高数据速率下的命令序列改变。因此,可基于缓冲空间内存储与读取命令或写入命令相关联的数据的空间的可用度而影响存储器系统的速度(例如,时延、数据速率)。
在本文所描述的实例中,存储器系统可包含具有自适应分割的缓冲器。举例来说,缓冲器可包含专用为读取缓冲器(例如,用于存储与读取命令相关联的数据)的第一部分、专用为写入缓冲器(例如,用于存储与写入命令相关联的数据)的第二部分,以及可动态分配给存储与读取或写入命令相关联的数据的第三部分。在一些情况下,存储器系统可包含确定缓冲器内可用于与读取命令相关联的数据(例如,在接收到读取命令之后)或与写入命令相关联的数据(例如,在接收到写入命令之后)的空间量的固件。存储器系统可基于先前接收到的读取或写入命令确定基于缓冲器的正在被使用的第一、第二和第三部分的量的可用空间量。另外,存储器系统处的固件可发送对空间可用于处理命令(例如,针对写入命令接收数据,针对读取命令从存储器装置检索数据)的指示。
一开始在参考图1和2所描述的系统和裸片的上下文中描述本公开的特征。在如参考图3-6所描述的系统、缓冲器配置和流程图的上下文中描述本公开的特征。参考涉及如参考图7到9所描述的自适应缓冲器分割的设备图和流程图进一步说明且描述本公开的这些和其它特征。
图1说明根据本文所公开的实例的支持自适应缓冲器分割的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
存储器系统110可以是或包含任何装置或装置的集合,其中装置或装置的集合包含至少一个存储器阵列。举例来说,存储器系统110可为或包含通用快闪存储(UFS)装置、嵌入式多媒体控制器(eMMC)装置、快闪装置、通用串行总线(USB)快闪装置、安全数字(SD)卡、固态驱动器(SSD)、硬盘驱动器(HDD)、双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),或非易失性DIMM(NVDIMM),以及其它可能性。
系统100可包含在计算装置中,所述计算装置如台式计算机、手提式计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具物联网(IoT)功能的装置、嵌入式计算机(例如,包含在交通工具、工业设备或联网商业装置中的嵌入式计算机),或包含存储器和处理装置的任何其它计算装置。
系统100可包含可与存储器系统110耦合的主机系统105。在一些实例中,此耦合可包含与主机系统控制器106的接口,所述主机系统控制器106可以是配置成使得主机系统105根据如本文中所描述的实例执行各种操作的控制组件的实例。主机系统105可包含一或多个装置,且在一些情况下可包含处理器芯片组和通过处理器芯片组执行的软件堆栈。举例来说,主机系统105可包含被配置成用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个核心、一或多个高速缓存器(例如,主机系统105本地的或包含在主机系统105的存储器)、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,UFS控制器、PCIe控制器、SATA控制器)。主机系统105可使用存储器系统110例如将数据写入到存储器系统110以及从存储器系统110读取数据。虽然图1中示出一个存储器系统110,但应理解,主机系统105可与任何数量的存储器系统110耦合。
主机系统105可经由至少一个物理主机接口与存储器系统110耦合。在一些情况下,主机系统105及存储器系统110可经配置以使用相关联协议经由物理主机接口通信(例如,以在存储器系统110与主机系统105之间交换或以其它方式传达控制、地址、数据及其它信号)。物理主机接口的实例可包含但不限于串行高级技术附件(SATA)接口、UFS接口、eMMC接口、外围组件互连高速(PCIe)接口、USB接口、光纤通道、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、双数据速率(DDR)、双列直插式存储器模块(DIMM)接口(例如,支持DDR的DIMM套接接口)、开放NAND快闪接口(ONFI)、低功率双数据速率(LPDDR)。在一些实例中,一或多个这种接口可包含在主机系统105的主机系统控制器106与存储器系统110的存储器系统控制器115中或以其它方式在其间得到支持。在一些实例中,主机系统105可经由用于包含在存储器系统110中的每一存储器装置130或存储器装置140的相应物理主机接口,或经由用于包含在存储器系统110中的每一类型的存储器装置130或存储器装置140的相应物理主机接口而与存储器系统110耦合(例如,主机系统控制器106可与存储器系统控制器115耦合)。
存储器系统110可包含存储器系统控制器115、存储器装置130和存储器装置140。存储器装置130可包含第一类型的存储器单元(例如,一种类型的非易失性存储器单元)的一或多个存储器阵列,且存储器装置140可包含第二类型的存储器单元(例如,一种类型的易失性存储器单元)的一或多个存储器阵列。虽然在图1的实例中展示一个存储器装置130和一个存储器装置140,但应理解,存储器系统110可包含任何数量的存储器装置130和存储器装置140,且在一些情况下,存储器系统110可不具有存储器装置130或存储器装置140。
存储器系统控制器115可与主机系统105耦合和通信(例如,经由物理主机接口),且可以是配置成使得存储器系统110根据如本文中所描述的实例执行各种操作的控制组件的实例。存储器系统控制器115还可与存储器装置130或存储器装置140耦合和通信以进行例如在存储器装置130或存储器装置140处读取数据、写入数据、擦除数据或刷新数据的操作,以及可通常被称为存取操作的其它此类操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令且与一或多个存储器装置130或存储器装置140通信以执行此类命令(例如,在一或多个存储器装置130或存储器装置140内的存储器阵列处)。举例来说,存储器系统控制器115可从主机系统105接收命令或操作并且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130或存储器装置140的所要存取。且在一些情况下,存储器系统控制器115可与主机系统105以及一或多个存储器装置130或存储器装置140交换数据(例如,响应于或以其它方式结合来自主机系统105的命令)。举例来说,存储器系统控制器115可将与存储器装置130或存储器装置140相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的对应信号。
存储器系统控制器115可配置成用于与存储器装置130或存储器装置140相关联的其它操作。举例来说,存储器系统控制器115可执行或管理操作,例如耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,以及与来自主机系统105的命令相关联的逻辑地址(例如,逻辑块地址(LBA))和与存储器装置130或存储器装置140内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转译。
存储器系统控制器115可包含硬件,如一或多个集成电路或离散组件、缓冲存储器或其组合。硬件可包含具有专用(例如,硬译码)逻辑的电路系统,以执行本文中归于存储器系统控制器115的操作。存储器系统控制器115可以是或包含微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)),或任何其它合适的处理器或处理电路。
存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(ROM)或其它存储器,其可存储可由存储器系统控制器115执行的操作代码(例如,可执行指令)以执行本文中归因于存储器系统控制器115的功能。在一些情况下,本地存储器120可另外或替代地包含静态随机存取存储器(SRAM)或其它存储器,其可由存储器系统控制器115用于例如与本文中归因于存储器系统控制器115的功能有关的内部存储或计算。另外或替代地,本地存储器120可充当用于存储器系统控制器115的高速缓存器。
尽管图1中的存储器系统110的实例已说明为包含存储器系统控制器115,但在一些情况下,存储器系统110可不包含存储器系统控制器115。举例来说,存储器系统110可另外或替代地依赖于外部控制器(例如,由主机系统105实施)或可分别在存储器装置130或存储器装置140内部的一或多个本地控制器135或本地控制器145,以执行本文中归因于存储器系统控制器115的功能。一般来说,本文中归因于存储器系统控制器115的一或多个功能可在一些情况下改为由主机系统105、本地控制器135或本地控制器145或其任何组合执行。
存储器装置140可包含易失性存储器单元的一或多个阵列。举例来说,存储器装置140可包含随机存取存储器(RAM)存储器单元,如动态RAM(DRAM)存储器单元和同步DRAM(SDRAM)存储器单元。在一些实例中,存储器装置140可(例如,由主机系统105)支持相对于存储器装置130具有减少的等待时间的随机存取操作,或可提供相对于存储器装置130的一或多个其它性能差异。
存储器装置130可包含非易失性存储器单元的一或多个阵列。举例来说,存储器装置130可包含NAND(例如,NAND快闪)存储器、ROM、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电RAM(FeRAM)、磁性RAM(MRAM)、NOR(例如,NOR快闪)存储器、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)和电可擦除可编程ROM(EEPROM)。
在一些实例中,存储器装置130或存储器装置140可分别包含(例如,在同一裸片上或同一封装内)本地控制器135或本地控制器145,其可执行存储器装置130或存储器装置140的一或多个存储器单元上的操作。本地控制器135或本地控制器145可结合存储器系统控制器115操作,或可执行本文中归于存储器系统控制器115的一或多个功能。在一些情况下,包含本地控制器135或本地控制器145的存储器装置130或存储器装置140可称作受管理存储器装置,且可包含与本地(例如,裸片上或封装内)控制器(例如,本地控制器135或本地控制器145)组合的存储器阵列和相关电路。受管理存储器装置的实例是受管理NAND(MNAND)装置。
在一些情况下,存储器装置130可以是或包含NAND装置(例如,NAND快闪装置)。存储器装置130可以是或包含存储器裸片160。举例来说,在一些情况下,存储器装置130可为包含一或多个裸片160的封装。在一些实例中,裸片160可以是从晶片切割的一块电子级半导体(例如,从硅晶片切割的硅裸片)。每个裸片160可包含一或多个平面165,并且每个平面165可包含相应的块170的集,其中每个块170可包含相应的页175的集,并且每个页175可包含存储器单元集。
在一些情况下,NAND存储器装置130可包含被配置成各自存储一个信息位的存储器单元,其可被称为单层级单元(SLC)。另外或替代地,NAND存储器装置130可包含配置成各自存储多个信息位的存储器单元,如果配置成各自存储两个信息位,则其可称为多层级单元(MLC),如果配置成各自存储三个信息位,则其可称为三层级单元(TLC),如果配置成各自存储四个信息位,则其可称为四层级单元(QLC),或更一般地称为多层级存储器单元。多层级存储器单元可相对于SLC存储器单元提供更大的存储密度,但在一些情况下,可能涉及用于支持电路系统的更窄读取或写入裕度或更大复杂度。
在一些情况下,平面165可指块170的群组,且在一些情况下,可在不同平面165内发生并行操作。举例来说,可对不同块170内的存储器单元执行并行操作,只要不同块170处于不同平面165中。在一些情况下,在不同平面165中执行并行操作可受制于一或多个限制,例如对不同页面175内的存储器单元执行并行操作,所述存储器单元在其相应平面165内具有相同页地址(例如,与命令解码、页地址解码电路系统,或跨越平面165共享的其它电路系统相关)。
在一些情况下,块170可包含组织成行(页175)和列(例如,串,未展示)的存储器单元。举例来说,同一页175中的存储器单元可共享共同字线(例如,与其耦合),并且同一串中的存储器单元可共享共同数字线(其可替代地被称为位线)(例如,与其耦合)。
对于一些NAND架构,存储器单元可在第一粒度级别(例如,在页粒度级别)读取和编程(例如,写入),但可在第二粒度级别(例如,在块粒度级别)擦除。也就是说,页175可为可独立地编程或读取(例如,作为单个编程或读取操作的一部分同时编程或读取)的存储器(例如,存储器单元的集合)的最小单元,且块170可为可独立地擦除(例如,作为单个擦除操作的一部分同时擦除)的存储器(例如,存储器单元的集合)的最小单元。此外,在一些情况下,NAND存储器单元可在其可用新数据重写之前进行擦除。因此,举例来说,在一些情况下,可直到包含页175的整个块170已被擦除才更新所使用的页175。
在一些情况下,存储器系统控制器115、本地控制器135或本地控制器145可执行用于存储器装置130或存储器装置140的操作(例如,作为一或多个媒体管理算法的部分),例如耗损均衡、后台刷新、垃圾收集、擦除、块扫描、健康监测或其它,或这些操作的任何组合。在一些实例中,主机系统105可通过发送主机主动垃圾收集(HAGC)命令来起始垃圾收集操作。举例来说,在存储器装置130内,块170可具有含有有效数据的一些页175和含有无效数据的一些页175。为了避免等待块170中的所有页175具有无效数据以便擦除和重复使用块170,可调用称为“垃圾收集”的算法,以允许块170被擦除和释放为用于后续写入操作的空闲块。垃圾收集可指媒体管理操作集,其包含例如:选择含有有效和无效数据的块170;选择所述块中含有有效数据的页175;将所述有效数据从所选页175复制到新位置(例如,另一块170中的自由页175);将先前选择的页175中的数据标记为无效;和擦除所选块170。因此,可增加已擦除的块170的数量,使得可使用更多的块170来存储后续数据(例如,随后从主机系统105接收到的数据)。
系统100可包含支持自适应缓冲器分割的任何数量的非暂时性计算机可读媒体。举例来说,主机系统105、存储器系统控制器115、存储器装置130或存储器装置140可包含或以其它方式可存取存储指令(例如,固件)的一或多个非暂时性计算机可读媒体以用于执行本文中归属于主机系统105、存储器系统控制器115、存储器装置130或存储器装置140的功能。举例来说,此类指令当由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115、由存储器装置130(例如,由本地控制器135)或由存储器装置140(例如,由本地控制器145)执行时可致使主机系统105、存储器系统控制器115、存储器装置130或存储器装置140执行本文所描述的相关联功能。
在本文所描述的实例中,存储器系统110可包含具有自适应分割的缓冲器。举例来说,缓冲器可包含专用为读取缓冲器(例如,用于存储与读取命令相关联的数据)的第一部分、专用为写入缓冲器(例如,用于存储与写入命令相关联的数据)的第二部分,以及可动态分配给存储与读取或写入命令相关联的数据的第三部分。在一些情况下,存储器系统110可包含确定缓冲器内可用于与读取命令相关联的数据(例如,在接收到读取命令之后)或与写入命令相关联的数据(例如,在接收到写入命令之后)的空间量的固件(例如,在存储器系统控制器115处)。固件可基于先前接收到的读取或写入命令确定基于缓冲器的充满(例如,被占用)的第三部分的量的可用空间量。另外,存储器系统110处的固件可发送对空间可用于处理命令(例如,针对写入命令接收数据,针对读取命令从存储器装置检索数据)的指示。
图2说明根据本文所公开的实例的支持自适应缓冲器分割的存储器装置200的实例。在一些情况下,存储器装置200可为参考图1所描述的存储器装置130的实例。图2是存储器装置200的各种组件和特征的说明性表示。因此,应了解,展示存储器装置200的组件和特征以说明功能相互关系,且未必是存储器装置200内的实际物理位置。另外,虽然图2中包含的一些元件标记有数字指示符,而其它对应元件未经标记,但它们是相同的或将理解为相似的,以便增加所描绘特征的可见性和清晰度。
存储器装置200可包含一或多个存储器单元,例如存储器单元205-a和存储器单元205-b。例如在存储器单元205-a的放大图中,存储器单元205可为例如快闪或其它类型的NAND存储器单元。
每一存储器单元205可编程为存储表示一或多个信息位的逻辑值。在一些情况下,单一存储器单元205(例如SLC存储器单元205)可编程到两个支持状态中的一个且因此可一次存储一个信息位(例如,逻辑0或逻辑1)。在其它情况下,单一存储器单元205(例如MLC、TLC、QLC或其它类型的多层级存储器单元205)可编程到大于两个支持状态中的一个且因此可一次存储多于一个信息位。在一些实例中,单一MLC存储器单元205可编程到四个支持状态中的一个且因此可一次存储与四个逻辑值(例如,逻辑00、逻辑01、逻辑10或逻辑11)中的一个对应的两个信息位。在一些实例中,单一TLC存储器单元205可编程到八个支持状态中的一个且因此可一次存储与八个逻辑值(例如,000、001、010、011、100、101、110或111)中的一个对应的三个信息位。在一些实例中,单一QLC存储器单元205可编程到十六个支持状态中的一个且因此可一次存储与十六个逻辑值(例如,0000、0001、……、1111)中的一个对应的四个信息位。
在一些情况下,多层级存储器单元205(例如,MLC存储器单元、TLC存储器单元或QLC存储器单元)可物理上不同于SLC单元。举例来说,多层级存储器单元205可使用不同单元几何形状或可使用不同材料制造。在一些情况下,多层级存储器单元205可与SLC单元物理上相同或类似,且存储器块中的其它电路系统(例如,控制器、感测放大器、驱动器)可被配置成将存储器单元操作(例如,读取和编程)为SLC单元,或MLC单元,或TLC单元等。
不同类型的存储器单元205可以不同方式存储信息。在DRAM存储器阵列中,举例来说,每一存储器单元205可包含如下电容器:其包含存储表示可编程状态且因此所存储的信息的电荷的介电材料(例如,绝缘体)。在FeRAM存储器阵列中,作为另一实例,每一存储器单元205可包含如下电容器:其包含存储表示可编程状态且因此所存储的信息的电荷或极化的铁电材料。
在一些NAND存储器阵列(例如,快闪阵列)中,每一存储器单元205可包含具有用于存储表示逻辑值的电荷量的浮动栅极或介电材料的晶体管。举例来说,图2中的放大说明包含可用于存储逻辑值的晶体管210(例如,金属氧化物半导体(MOS)晶体管)的NAND存储器单元205-a。晶体管210具有控制栅极215且还可包含浮动栅极220,其中浮动栅极220包夹在介电材料225的两个部分之间。晶体管210包含第一节点230(例如,源极或漏极)和第二节点235(例如,漏极或源极)。可通过将一数量的电子(例如,一电荷量)放置(例如,写入、存储)于浮动栅极220上来将逻辑值存储于晶体管210中。将存储于浮动栅极220上的电荷的量可取决于将存储的逻辑值。存储于浮动栅极220上的电荷可影响晶体管210的阈值电压,进而影响当激活晶体管210时(例如,当电压施加到控制栅极215时)流过晶体管210的电流量。
可通过将电压施加到控制栅极215(例如,经由字线260,施加到控制节点240)以激活晶体管210并且测量(例如,检测、感测)流过第一节点230或第二节点235(例如,经由数字线265)的所得电流量,以此感测存储于晶体管210中的逻辑值(例如,作为读取操作的部分)。举例来说,感测组件270可确定SLC存储器单元205是否以二进制方式存储逻辑0或逻辑1(例如,基于当读取电压施加到控制栅极215时穿过存储器单元205的电流存在或不存在,或基于电流是高于还是低于阈值电流)。对于多层级存储器单元205,感测组件270可基于当读取电压施加到控制栅极215时各个中间阈值电流电平来确定存储于存储器单元205中的逻辑值。在多层级架构的一个实例中,感测组件270可基于定义可被TLC存储器单元205存储的八个潜在逻辑值的八个不同电流电平或电流范围,确定TLC存储器单元205的逻辑值。
可通过将两个电压(例如,高于阈值的电压或低于阈值的电压)中的一个施加到SLC存储器单元205以将电荷存储或不存储于浮动栅极220上且进而致使存储器单元205存储两个可能逻辑值中的一个,以此写入存储器单元205。举例来说,当相对于晶体管210的体节点245将第一电压施加到控制节点240(例如,经由字线260)时(例如,当控制节点240与块体相比处于较高电压时),电子可隧穿到浮动栅极220中。在一些情况下,体节点245可被替代地称作主体节点。电子到浮动栅极220中的注入可被称为编程存储器单元205并且可作为编程操作的部分发生。在一些情况下,经编程存储器单元可被视为存储逻辑0。当相对于晶体管210的体节点245将第二电压施加到控制节点240(例如,经由字线260)时(例如,当控制节点240与体节点245相比处于较低电压时),电子可离开浮动栅极220。电子从浮动栅极220的移除可被称为擦除存储器单元205并且可作为擦除操作的部分发生。在一些情况下,经擦除存储器单元被视为存储逻辑1。在一些情况下,归因于页175的存储器单元205共享共同字线260,因此可以页175粒度级编程存储器单元205,且归因于块的存储器单元205共享被共同加偏压的体节点245,因此可以块170粒度级擦除存储器单元205。
相比于写入SLC存储器单元205,写入多层级(例如,MLC、TLC或QLC)存储器单元205可涉及以更细粒度级将不同电压施加到存储器单元205(例如,施加到其控制节点240或体节点245)以更精细地控制存储于浮动栅极220上的电荷量,进而使得能够表示更大逻辑值集。因此,多层级存储器单元205可相对于SLC存储器单元205提供更大密度的存储,但在一些情况下,可涉及针对支持电路系统的更窄读取或写入容限或更大复杂性。
电荷捕集NAND存储器单元205可与浮动栅极NAND存储器单元205以类似方式操作,但作为将电荷存储于浮动栅极220上的替代或补充,电荷捕集NAND存储器单元205可存储表示控制栅极215下方的介电材料中的逻辑状态的电荷。因此,电荷捕集NAND存储器单元205可包含或可不包含浮动栅极220。
在一些实例中,存储器单元205的每一行可连接到对应字线260,且存储器单元205的每一列可连接到对应数字线265。因此,一个存储器单元205可位于字线260与数字线265的相交点处。此相交点可被称为存储器单元205的地址。数字线265可被替代地称作位线。在一些情况下,字线260和数字线265可大体上垂直于彼此且可产生存储器单元阵列205。在一些情况下,字线260和数字线265可一般地被称为存取线或选择线。
在一些情况下,存储器装置200可包含三维(3D)存储器阵列,其中多个二维(2D)存储器阵列可彼此上下地形成。这与2D阵列相比可增加可放置或制造于单个裸片或衬底上的存储器单元205的数量,继而可降低生产成本,或提高存储器阵列的性能,或这两者。在图2的实例中,存储器装置200包含多个层级(例如,叠组)的存储器单元205。在一些实例中,所述层级可通过电绝缘材料分隔开。每一层级可对准或定位成使得存储器单元205可跨每一层级彼此对准(例如,准确对准、重叠或大致对准),从而形成存储器单元堆叠275。在一些情况下,存储器单元堆叠275可被称为存储器单元串205。
可通过行解码器260和列解码器250控制存取存储器单元205。举例来说,行解码器260可从存储器控制器255接收行地址并且基于所接收的行地址激活适当的字线260。类似地,列解码器250可从存储器控制器255接收列地址并且激活适当的数字线265。因此,通过激活一个字线260和一个数字线265,可存取一个存储器单元205。
在存取之后,可通过感测组件270读取或感测存储器单元205。举例来说,感测组件270可被配置成基于存取存储器单元205产生的信号来确定存储器单元205的所存储的逻辑值。所述信号可包含电流、电压或这两者,存储器单元205的数字线265上的电流和电压可取决于存储器单元205所存储的逻辑值。感测组件270可包含被配置成检测和放大数字线265上的信号(例如,电流或电压)的各个晶体管或放大器。可经由输入/输出280输出如感测组件270检测到的存储器单元205的逻辑值。在一些情况下,感测组件270可为列解码器250或行解码器260的一部分,或感测组件270可以其它方式与列解码器250或行解码器260连接或电子通信。
可通过激活相关字线260和数字线265以使得逻辑值(例如,表示一或多个信息位)能够存储于存储器单元205中来编程或写入存储器单元205。列解码器250或行解码器260可接受例如来自输入/输出280的数据写入到存储器单元205。如先前论述,在NAND存储器(例如用于一些NAND和3D NAND存储器装置中的快闪存储器)的情况下,可通过将电子存储于浮动栅极或绝缘材料中来写入存储器单元205。
存储器控制器255可通过各种组件,例如行解码器260、列解码器250和感测组件270控制存储器单元205的操作(例如,读取、写入、重写、刷新)。在一些情况下,行解码器260、列解码器250和感测组件270中的一或多个可与存储器控制器255处于相同位置。存储器控制器255可产生行地址信号和列地址信号以便激活所要字线260和数字线265。在一些实例中,存储器控制器255可产生和控制在存储器装置200的操作期间使用的各个电压或电流。
在本文所描述的实例中,输入/输出280可与具有自适应分割的缓冲器通信。缓冲器可包含专用为读取缓冲器(例如,用于存储与读取命令相关联的数据)的第一部分、专用为写入缓冲器(例如,用于存储与写入命令相关联的数据)的第二部分,以及可动态分配给存储与读取或写入命令相关联的数据的第三部分。因此,输入/输出280可从缓冲器接收将存储于存储器装置200处的数据(例如,基于写入命令)。也就是说,缓冲器可将与写入命令相关联的数据存储于第二部分或第三部分中并且可将数据传送到输入/输出280以存储于存储器装置200处。另外,输入/输出280可基于读取命令将数据(例如,从存储器装置200)传送到缓冲器。在一些情况下,输入/输出280可基于缓冲器具有用于存储与读取命令相关联数据的足够空间,在(例如,从参考图1所描述的存储器系统控制器115)接收到读取命令之后将数据传送到缓冲器。
图3说明根据本文所公开的实例的支持自适应缓冲器分割的系统300的实例。在一些情况下,系统300可为参考图1所描述的系统100的实例。另外,系统300可实施参考图1和2所描述的系统100和存储器装置200的方面。举例来说,主机系统305可为主机系统105的实例,存储器系统310可为存储器系统110的实例,且存储器系统控制器315可为存储器系统控制器115的实例。另外,存储器装置组330可包含参考图1和2所描述的一或多个存储器装置。举例来说,存储器装置组330可包含NAND存储器、PCM、自选存储器、3D XPoint、其它基于硫族化物的存储器、FERAM、MRAM、NOR(例如,NOR快闪)存储器、STT-MRAM、CBRAM、RRAM或OxRAM。
存储器系统310可另外包含接口320、缓冲器325和总线335。存储器装置集330可使用特定于存储器装置集330内的每个类型的存储器装置的协议,直接或经由总线335与存储器系统控制器315和缓冲器325通信。另外,缓冲器325和接口320可使用特定于存储器系统310的协议(例如,与彼此、与存储器系统控制器315)通信。
存储器系统310可通过接口320与主机系统305通信(例如,存储器系统310的前端)。在一些情况下,接口320可管理数据和命令在主机系统305和存储器系统310之间的传送。也就是说,接口320可根据协议(例如,通用快闪存储(UFS)协议、eMMC协议、PCIe)与主机系统305通信。在一些情况下,主机系统305可将一或多个读取或写入命令经由接口320发射到存储器系统310。接口320可将命令(例如,直接或经由总线335)传送到存储器系统控制器315。在主机系统305将写入命令发射到存储器系统310的实例中,主机系统305可另外经由接口320将数据发射到存储器系统310。在主机系统305将读取命令发射到存储器系统310的实例中,存储器系统310可将数据经由接口320发射到主机系统305。
当执行存取操作(例如,执行从主机系统305接收的读取命令或写入命令)时,存储器系统310可将与存取操作相关联的数据缓冲于缓冲器325中(例如,存储器系统310的中端)。也就是说,在主机系统305将读取命令发射到存储器系统310的情况下,存储器系统控制器315可促进与读取命令相关联的数据从存储器装置集330的存储器装置传送到缓冲器325。缓冲器325可在经由接口320将数据发射到主机系统305之前暂时存储数据。另外,在主机系统305将写入命令发射到存储器系统310的情况下,存储器系统控制器315可促进与写入命令相关联的数据从主机系统305发射到缓冲器325(例如,经由接口320)。缓冲器325可在将数据传送到存储器装置集330的存储器装置中的一个之前暂时存储数据。缓冲器325内的数据暂时存储可指在执行存取命令期间将数据存储于缓冲器325中。也就是说,在存取命令完成之后,数据可不再维持于缓冲器325中(例如,可被用于额外读取或写入命令的数据覆写)。另外,缓冲器325可为非高速缓存缓冲器。也就是说,主机系统305可不从缓冲器325直接读取数据。举例来说,读取命令可置于队列上而无需将地址匹配到已经处于缓冲器中的地址的操作(例如,无需高速缓存器地址匹配或查找操作)。
存储器系统控制器315可另外存储包含与目前存储于缓冲器325中的数据相关联的存取命令(例如,读取命令、写入命令)的队列。也就是说,在缓冲器325存储与存取命令相关联的数据时,存储器系统控制器315可将所述存取命令存储于队列中。在一些情况下,队列中的每一命令可与缓冲器325处的地址相关联。也就是说,可维持指示与每一命令相关联的数据存储在缓冲器325中何处的指针。因此,当从队列移除命令(例如,归因于命令完成)时,先前存储与命令相关联的数据的地址可用于存储与新命令相关联的数据。在一些情况下,缓冲器地址管理(例如,对缓冲器中的方位寻址的指针)可由硬件电路(例如,逻辑门电路)执行。
缓冲器325可利用自适应分割存储与读取命令和写入命令相关联的数据。也就是说,缓冲器325可包含专用为读取缓冲器(例如,用于存储与读取命令相关联的数据)的第一部分、专用为写入缓冲器(例如,用于存储与写入命令相关联的数据)的第二部分,以及可动态分配给存储与读取或写入命令相关联的数据的第三部分。因此,基于从主机系统305接收的命令,缓冲器325的第三部分可存储与读取命令相关联的数据、与写入命令相关联的数据,或与读取命令相关联的数据和与写入命令相关联的数据的组合。在一些情况下,在与具有静态或半静态分割的缓冲器相比时,缓冲器325的自适应分割(例如,缓冲器325的第三部分被配置成存储与读取命令或写入命令相关联的数据)可降低缓冲器325不具有用于与从主机系统接收的命令相关联的数据的足够空间的可能性。
存储器系统控制器315可包含用于确定缓冲器325内可用于与存储与接收到的命令相关联的数据的固件(例如,控制器固件)。举例来说,如果主机系统305将写入命令发射到存储器系统310,那么存储器系统控制器315可确定缓冲器325内可用于存储与写入命令相关联的数据的空间量。也就是说,存储器系统控制器315可确定缓冲器325的第一部分和缓冲器325的第三部分内可用的空间量。如果存储器系统控制器315确定缓冲器325内存在可用于存储与写入命令相关联的数据的足够空间,那么存储器系统310可经由接口320将可用度指示(例如,准备传送指示)发射到主机系统。随后,接口320可将与写入命令相关联的数据传送到缓冲器325以进行暂时存储。另外,存储器系统控制器315可将写入命令添加到队列。
在其中主机系统305将读取命令发射到存储器系统310的实例中,存储器系统控制器315可确定缓冲器325内可用于存储与读取命令相关联的数据的空间量。也就是说,存储器系统控制器315可确定缓冲器325的第二部分和缓冲器325的第三部分内可用的空间量。如果存储器系统控制器315确定缓冲器325内存在可用于存储与读取命令相关联的数据的足够空间,那么存储器系统310将读取命令发到存储器装置集内的存储器装置。随后,存储器装置集330的存储器装置可将与读取命令相关联的数据传送到缓冲器325以进行暂时存储。另外,存储器系统控制器315可将读取命令添加到队列。
可另外从缓冲器325传送数据。举例来说,存储器系统控制器315可包含先前接收到的读取命令和写入命令的队列。存储器系统控制器315可根据次序(例如,先入先出次序,根据队列的次序)完成先前接收到的命令的执行并且随后可从队列移除命令。为完成写入命令执行,存储器系统控制器315可将与暂时存储于缓冲器325中的写入命令相关联的数据传送到存储器装置集330的存储器装置以进行存储。在写入命令完成之后,存储器系统控制器315可从队列移除写入命令。为完成读取命令的执行,存储器系统控制器315可经由接口320将与暂时存储于缓冲器325中的读取命令相关联的数据发射到主机系统305。在读取命令完成之后,存储器系统控制器315可从队列移除读取命令。
存储器系统控制器315可另外被配置成用于与存储器装置集330相关联的操作。举例来说,存储器系统控制器315可执行或管理例如以下各项的操作:耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,以及与来自主机系统305的命令相关联的逻辑地址(例如,逻辑块地址(LBA))和与存储器装置集330内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转译。也就是说,主机系统305可发出指示一或多个LBA的命令,且存储器系统控制器315可识别由LBA指示的一或多个物理块地址。在一些情况下,一或多个连续LBA可为不连续的物理块地址。
图4说明根据本文所公开的实例的支持自适应缓冲器分割的缓冲器配置400的实例。(例如,缓冲器425的)缓冲器配置400可为参考图1到3所描述的存储器系统内缓冲器的实例配置。缓冲器425可包含读取缓冲器405(例如,用于存储与读取命令相关联数据)、读取和写入缓冲器410(例如,用于存储与读取命令或写入命令相关联的数据),以及写入缓冲器415(例如,用于存储与写入命令相关联的数据)。
缓冲器425可具有总缓冲器大小435,其中缓冲器大小435对应于缓冲器425可存储的最大数据数量。缓冲器425可另外具有最小读取缓冲器大小420。最小读取缓冲器大小420对应于缓冲器425的专用于存储与读取命令相关联的数据的部分(例如,读取缓冲器405的大小)。另外,缓冲器425可与最小写入缓冲器大小430相关联。最小写入缓冲器大小430对应于缓冲器425的专用于存储与写入命令相关联的数据的部分(例如,写入缓冲器415的大小)。
最大读取缓冲器大小440可对应于与缓冲器425可被配置成存储的读取命令相关联的最大数据量。也就是说,最大读取缓冲器大小440可对应于读取缓冲器405与读取和写入缓冲器410的大小。最大写入缓冲器大小445可对应于与缓冲器425可被配置成存储的写入命令相关联的最大数据量。也就是说,最大写入缓冲器大小445可对应于读取和写入缓冲器410与写入缓冲器415的大小。
在缓冲器425(例如,以及缓冲器分区)的初始化期间,与缓冲器425相关联的控制器(例如,如本文中所描述的存储器系统控制器)可确定缓冲器425内可用于存储与读取命令和写入命令相关联的数据的空间数量。举例来说,控制器可确定缓冲器425内可用于存储与读取命令相关联数据的空间等于最大读取缓冲器大小440,原因是读取缓冲器405与读取和写入缓冲器410在初始化期间是空的。另外,控制器可确定缓冲器内可用于存储与写入命令相关联的数据的空间等于最大写入缓冲器大小445,原因是读取和写入缓冲器410与写入缓冲器415在初始化期间是空的。在一些情况下,控制器可将缓冲器425内可用于读取命令和写入命令两者的空间的指示存储于控制器处的单独计数器中。在一些其它情况下,控制器可将缓冲器425内目前用以存储与读取命令相关联的数据的空间量的指示存储于第一计数器中并且将缓冲器425内目前用以存储与写入命令相关联的数据的空间量的指示存储于第二计数器中。在初始化期间,第一计数器和第二计数器两者可初始化为零(例如,指示缓冲器425不存储与读取或写入命令相关联的任何数据)。
当存储器系统(例如,包含缓冲器425的存储器系统)接收写入命令时,控制器可将与写入命令相关联的数据的大小与缓冲器425内可用于存储与写入命令相关联的数据的空间进行比较。举例来说,控制器可将与写入命令相关联的数据的大小与存储于控制器处的计数器中的值(例如,指示缓冲器425内可用于存储与写入命令相关联的数据的空间量)进行比较。在一些情况下,控制器可确定最大写入缓冲器大小445与存储于计数器中的值(例如,指示缓冲器425内目前用于存储与写入命令相关联的数据的空间量)的组合之间的差以及读取和写入缓冲器410内与读取命令相关联的数据的数量,因此确定缓冲器425中可用于存储与写入命令相关联的数据的空间量。在控制器确定缓冲器425中存在用于存储与写入命令相关联的数据的足够空间的情况下,控制器可将可用度指示发射到主机系统。控制器也可指示缓冲器管理器(例如,分配/解除分配缓冲器425中的空间的硬件层)分配空间并且从存储器系统接收数据以存储于缓冲器425中。主机系统接着可将数据发射到存储器系统以暂时存储于缓冲器425处。
控制器可更新计数器的指示缓冲器内可用于存储与写入命令相关联的数据的空间量的值。举例来说,控制器可根据数据大小使计数器的值递减(例如,从计数器的值减去数据大小)。在一些情况下,控制器可使计数器的指示缓冲器425内目前用于存储与写入命令相关联的数据的空间量的值递增。在一些情况下,控制器可在将缓冲器425内的可用度指示发射到主机系统之后即刻更新计数器的值。另外,控制器可更新计数器的指示缓冲器内可用于存储与读取命令相关联的数据的空间量的值(例如,在与写入命令相关联的数据存储于读取和写入缓冲器410中的情况下)。
当存储器系统(例如,包含缓冲器425的存储器系统)接收到读取命令时,控制器可将与读取命令相关联的数据的大小与缓冲器425内可用于存储与读取命令相关联的数据的空间进行比较。举例来说,控制器可将与读取命令相关联的数据的大小与存储于控制器处的计数器中的值(例如,指示缓冲器425内可用于存储与读取命令相关联的数据的空间量)进行比较。在一些情况下,控制器可确定最大读取缓冲器大小440与存储于计数器中的值(例如,指示缓冲器425内目前用于存储与读取命令相关联的数据的空间量)的组合之间的差以及读取和写入缓冲器410内与写入命令相关联的数据的数量,因此确定缓冲器425中可用于存储与读取命令相关联的数据的空间量。在控制器确定缓冲器425中存在用于存储与读取命令相关联的数据的足够空间的情况下,控制器可将读取命令发到存储器系统处的存储器装置。存储器装置接着可将数据传送到缓冲器425。
控制器可更新计数器的指示缓冲器内可用于存储与读取命令相关联的数据的空间量的值。举例来说,控制器可根据数据大小使计数器的值递减(例如,从计数器的值减去数据大小)。在一些情况下,控制器可使计数器的指示缓冲器425内目前用于存储与写入命令相关联的数据的空间量的值递增。在一些情况下,控制器可在将与读取命令相关联的数据传送到缓冲器425之后即刻更新计数器的值。另外,控制器可更新计数器的指示缓冲器内可用于存储与读取命令相关联的数据的空间量的值(例如,在与读取命令相关联的数据存储于读取和写入缓冲器410中的情况下)。因此,缓冲器425内可用于存储与读取命令或写入命令相关联的数据的空间量是基于与先前接收到的读取命令和写入命令(例如,仍处于与不完整读取命令和写入命令相关联的队列中)相关联的数据量。
控制器可包含先前接收到的与正存储于缓冲器425中的数据相关联的读取命令和写入命令(例如,不完整读取和写入命令)的队列。控制器可完成先前所接收命令的执行并且可从队列移除所述命令。为完成写入命令的执行,控制器可将与写入命令相关联的正存储于缓冲器425中的数据传送到存储器装置以进行存储。基于将数据从缓冲器425传送到存储器装置,控制器可更新计数器的指示缓冲器内可用于存储与写入命令相关联的数据的空间量的值。举例来说,控制器可根据数据大小使计数器的值递增(例如,可将数据大小与计数器的值相加)。另外,控制器可更新计数器的指示缓冲器内可用于存储与读取命令相关联的数据的空间量的值(例如,在与写入命令相关联的数据存储于读取和写入缓冲器410中的情况下)。
为完成读取命令的执行,控制器可将与读取命令相关联的正存储于缓冲器425中的数据发射到主机系统。基于将数据从缓冲器425发射到主机系统,控制器可更新计数器的指示缓冲器内可用于存储与读取命令相关联的数据的空间量的值。举例来说,控制器可根据数据大小使计数器的值递增(例如,可将数据大小与计数器的值相加)。另外,控制器可更新计数器的指示缓冲器内可用于存储与写入命令相关联的数据的空间量的值(例如,在与写入命令相关联的数据存储于读取和写入缓冲器410中的情况下)。
图5说明根据本文所公开的实例的支持自适应缓冲器分割的流程图500的实例。流程图500可与参考图1到4所描述的写入命令的执行有关。流程图500的操作可由参考图1到3所描述的存储器系统控制器115、存储器控制器255或存储器系统控制器315执行。另外,在一些实例中,流程图500可实施为存储于存储器中的指令(例如,存储于本地存储器120或如本文中所描述的其它存储器控制器或存储器系统中的固件)。举例来说,所述指令当由控制器(例如,存储器系统控制器315)执行时可致使控制器执行流程图500的操作。
在505处,可执行初始化程序。举例来说,存储器系统可执行一或多个初始化程序(例如,在存储器系统通电之后)。在初始化期间,存储器系统可确定缓冲器内可用于存储与写入命令相关联的数据的空间数量。举例来说,存储器系统可确定缓冲器内可用于存储与写入命令相关联的数据的空间等于最大写入缓冲器大小。存储器系统可存储指示缓冲器内可用于存储与写入命令相关联的数据的空间量的值。
在510处,可接收写入命令。举例来说,存储器系统从主机系统接收与数据集相关联的写入命令。
在515处,可确定缓冲器处可用于存储与写入命令相关联的数据的空间量。举例来说,存储器系统可确定缓冲器内被配置成缓冲正在主机系统与存储器系统的可用于存储与写入命令相关联的数据集的存储器装置集之间传送的数据的空间量。在一些情况下,空间量可基于缓冲器的与读取命令相关联的第一部分、缓冲器的与写入命令相关联的第二部分,以及缓冲器的与读取命令和写入命令相关联的第三部分。另外,空间量可基于缓冲器的与写入命令相关联的第二部分内的第一空间可用度以及缓冲器的与读取命令和写入命令相关联的第三部分内的第二空间可用度。
在520处,存储器系统可确定缓冲器内可用于存储数据集的空间量是否足以存储数据集。如果存储器系统确定缓冲器内可用于存储数据集的空间量足以存储数据集,那么存储器系统可转到525。也就是说,存储器系统可响应于确定缓冲器内可用于存储数据集的空间量足以存储数据集而转到525。替代地,如果存储器系统确定缓冲器内可用于存储数据集的空间量不足以存储数据集,那么存储器系统可转到515。也就是说,存储器系统可响应于确定缓冲器内可用于存储数据集的空间量不足以存储数据集而转到515。在一些情况下,存储器系统随后可(例如,在520处)在已从缓冲器传送另一数据集(例如,传送到存储器装置,传送到主机系统)之后确定缓冲器中的可用度足以存储数据集。
在525处,可使指示缓冲器内可用于存储与写入命令相关联的数据的空间量(例如,基于数据集的大小)的值递减(例如,基于数据的大小)。
在530处,可通过存储器系统将对缓冲器内的空间量足以存储数据集的指示发射到主机系统。在一些情况下,存储器系统可基于使指示缓冲器内可用于存储与写入命令相关联的数据的空间量的值递减,发射对缓冲器内的空间量足以存储数据集的指示。
在535处,可通过存储器系统基于发射指示而从主机系统接收数据集。另外,存储器系统可将与数据集相关联的写入命令添加到包含不完整命令集的队列。
在540处,可基于从主机系统接收到数据集,将数据集从缓冲器传送到存储器装置集的存储器装置。在一些情况下,存储器系统接着可从队列移除与数据集相关联写入命令(例如,基于通过将数据集传送到存储器装置完成写入命令的执行)。
在545处,可基于将数据集传送到存储器装置而使指示缓冲器内可用于存储与写入命令相关联的数据的空间量的所存储值递增(例如,基于数据集的大小)。
图6说明根据本文所公开的实例的支持自适应缓冲器分割的流程图600的实例。流程图600可与参考图1到4所描述的读取命令的执行有关。流程图600的操作可由参考图1到3所描述的存储器系统控制器115、存储器控制器255或存储器系统控制器315执行。另外,在一些实例中,流程图600可实施为存储于存储器中的指令(例如,存储于本地存储器120或如本文中所描述的其它存储器控制器或存储器系统中的固件)。举例来说,所述指令当由控制器(例如,存储器系统控制器315)执行时可致使控制器执行流程图600的操作。
在605处,可执行初始化程序(例如,在存储器系统通电之后)。在初始化期间,存储器系统可确定缓冲器内可用于存储与读取命令相关联的数据的空间数量。举例来说,存储器系统可确定缓冲器内可用于存储与读取命令相关联的数据的空间等于最大读取缓冲器大小。存储器系统可存储指示缓冲器内可用于存储与读取命令相关联的数据的空间量的值。
在610处,可通过存储器系统从主机系统接收与数据集相关联的读取命令。
在615处,可通过存储器系统确定缓冲器内被配置成缓冲正在存储器系统的可用于存储与读取命令相关联的数据集的存储器装置集与主机系统之间传送的空间量。在一些情况下,空间量可基于缓冲器的与读取命令相关联的第一部分、缓冲器的与写入命令相关联的第二部分以及缓冲器的与读取命令和写入命令相关联的第三部分。另外,空间量可基于缓冲器的与读取命令相关联的第一部分内的第一空间可用度以及缓冲器的与读取命令和写入命令相关联的第三部分内的第二空间可用度。
在620处,存储器系统可确定缓冲器内可用于存储数据集的空间量是否足以存储数据集。如果存储器系统确定缓冲器内可用于存储数据集的空间量足以存储数据集,那么存储器系统可转到625。也就是说,响应于确定缓冲器内可用于存储数据集的空间量足以存储数据集,存储器系统可转到625。替代地,如果存储器系统确定缓冲器内可用于存储数据集的空间量不足以存储数据集,那么存储器系统可转到615。也就是说,响应于确定缓冲器内可用于存储数据集的空间量不足以存储数据集,存储器系统可转到615。在一些情况下,存储器系统随后可(例如,在620处)在已从缓冲器传送另一数据集(例如,传送到存储器装置,传送到主机系统)之后确定缓冲器中的可用度足以存储数据集。
在625处,可使指示缓冲器内可用于存储与读取命令相关联的数据的空间量的值递减(例如,基于数据集的大小)。
在630处,存储器系统可基于确定缓冲器内的空间量足以存储数据集,将读取命令发到存储器系统处的存储器装置集的存储器装置。另外,存储器系统可基于使指示缓冲器内可用于存储与读取命令相关联的数据的空间量的值递减而发出读取命令。
在635处,可基于发出读取命令而将数据集从存储器装置传送到缓冲器。在一些情况下,存储器装置可基于使指示缓冲器内可用于存储与读取命令相关联的数据的空间量的值递减而将数据传送到缓冲器。另外,存储器系统可将与数据集相关联的读取命令添加到包含不完整命令集的队列。
在640处,可基于将数据传送到缓冲器而将数据集从缓冲器发射到主机系统。在一些情况下,存储器系统接着可从队列移除与数据集相关联的读取命令(例如,基于通过将数据集传送到主机而完成读取命令的执行)。
在645处,可基于将数据发射到主机系统而使指示缓冲器内可用于存储与读取命令相关联的数据的空间量的所存储值递增(例如,基于数据集的大小)。
图7示出根据本文所公开的实例的支持自适应缓冲器分割的存储器系统705的框图700。存储器系统705可为参考图1到6所描述的存储器系统的方面的实例。存储器系统705可包含命令接口710、可用空间管理器715、空间指示管理器720、数据管理器725和值管理器730。这些模块中的每一个可与彼此直接或间接(例如,经由一或多个总线)通信。
命令接口710可从主机系统接收与数据集相关联的写入命令。另外,命令接口710可从主机系统接收与数据集相关联的读取命令。
可用空间管理器715可针对被配置成缓冲正在主机系统和存储器系统的存储器装置集之间传送的数据的缓冲器,确定缓冲器内可用于存储与写入命令相关联的数据集的空间量足以存储数据集。在一些情况下,缓冲器可包含缓冲器的与读取命令相关联的第一部分、缓冲器的与写入命令相关联的第二部分以及缓冲器的与读取命令和写入命令相关联的第三部分。此处,可用空间管理器715可基于缓冲器的第一、第二和/或第三部分确定缓冲器内可用的空间量。举例来说,可用空间管理器715可基于缓冲器的被配置成存储与写入命令相关联的数据的部分(例如,第二部分和第三部分)确定缓冲器内的空间量。在一些情况下,可用空间管理器715也可基于缓冲器的第一部分确定缓冲器内的空间量。
在一些实例中,可用空间管理器715可基于缓冲器的与写入命令相关联的第二部分内的第一空间可用度和缓冲器的与读取命令和写入命令相关联的第三部分内的第二空间可用度,确定缓冲器内可用于存储与写入命令相关联的数据集的空间量。在一些情况下,缓冲器的与写入命令相关联的第二部分内的第一空间可用度是基于与包含先前接收到的写入命令的第一队列相关联的数据量。在一些情况下,针对缓冲器的与读取命令和写入命令相关联的第三部分的第二空间可用度是基于与包含先前接收到的读取命令和先前接收到的写入命令的第二队列相关联的数据量。在一些实例中,可用空间管理器715可将数据集大小与指示缓冲器内可用于存储与写入命令相关联的数据的空间量的值进行比较,其中确定缓冲器内的空间量足以存储数据集是基于所述比较。
可用空间管理器715可针对被配置成缓冲正在存储器系统的存储器装置集和主机系统之间传送的数据的缓冲器,确定缓冲器内可用于存储与读取命令相关联的数据集的空间量足以存储数据集。在一些情况下,缓冲器可包含缓冲器的与读取命令相关联的第一部分、缓冲器的与写入命令相关联的第二部分以及缓冲器的与读取命令和写入命令相关联的第三部分。此处,可用空间管理器715可基于缓冲器的第一、第二和/或第三部分确定缓冲器内可用于存储与读取命令相关联的数据集的空间量。举例来说,可用空间管理器715可基于缓冲器的被配置成存储与读取命令相关联的数据的部分(例如,第一部分和第三部分)确定缓冲器内的空间量。在一些情况下,可用空间管理器715也可基于缓冲器的第二部分确定缓冲器内的空间量。
在一些实例中,可用空间管理器715可基于缓冲器的与读取命令相关联的第一部分内的第一空间可用度和缓冲器的与读取命令和写入命令相关联的第三部分内的第二空间可用度,确定缓冲器内可用于存储与读取命令相关联的数据集的空间量。在一些情况下,缓冲器的与读取命令相关联的第一部分内的第一空间可用度是基于与包含先前接收到的读取命令的第一队列相关联的数据量。在一些情况下,针对缓冲器的与读取命令和写入命令相关联的第三部分的第二空间可用度是基于与包含先前接收到的读取命令和先前接收到的写入命令的第二队列相关联的数据量。在一些实例中,可用空间管理器715可将数据集大小与指示缓冲器内可用于存储与读取命令相关联的数据的空间量的值进行比较,其中确定缓冲器内的空间量足以存储数据集是基于所述比较。
空间指示管理器720可将对缓冲器内的空间量足以存储(例如,与写入命令相关联的)数据集的指示发射到主机系统。另外,空间指示管理器720可基于缓冲器内的空间量足以存储(例如,与读取命令相关联的)数据集,将读取命令发到存储器装置集的存储器装置。
数据管理器725可通过缓冲器基于发射指示(例如,对缓冲器内的空间量足以存储与写入命令相关联的数据集的指示)而从主机系统接收数据集。在一些实例中,数据管理器725可基于从主机系统接收到数据集,将数据集从缓冲器传送到存储器装置集的存储器装置。
数据管理器725可基于发出读取命令而将数据集从存储器装置传送到缓冲器。在一些实例中,数据管理器725可根据读取命令并且基于将数据集传送到缓冲器,将数据集从缓冲器发射到主机系统。
值管理器730可存储指示缓冲器内的可用(例如,可用于与写入命令相关联的数据的)空间量的值。在一些实例中,值管理器730可更新指示缓冲器内可用于存储与写入命令相关联的数据的空间量的值,其中发射指示(例如,对缓冲器内的空间量足以存储与写入命令相关联的数据集的指示)可基于更新所述值。此处,更新所述值可包含基于数据集大小而使所述值递减。在一些情况下,值管理器730可基于将数据集传送到存储器装置,更新指示缓冲器内可用于存储与写入命令相关联的数据的空间量的值。此处,更新所述值可包含基于数据集大小而使所述值递增。
另外,值管理器730可存储指示缓冲器内的可用(例如,可用于与读取命令相关联的数据的)空间量的值。在一些实例中,值管理器730可更新指示缓冲器内可用于存储与读取命令相关联的数据的空间量的值,其中将数据集传送到缓冲器可基于更新所述值。此处,更新所述值可包含基于数据集大小而使所述值递减。在一些情况下,值管理器730可基于将数据集发射到主机系统,更新指示缓冲器内可用于存储与读取命令相关联的数据的空间量的值。此处,更新所述值可包含基于数据集大小而使所述值递增。
图8示出根据本公开的方面的说明支持自适应缓冲器分割的一或多种方法800的流程图。方法800的操作可由如本文中所描述的存储器系统或其组件实施。举例来说,方法800的操作可由如参考图7所描述的存储器系统执行。在一些实例中,存储器系统可执行指令集以控制存储器系统的功能元件来执行所描述的功能。另外或替代地,存储器系统可使用专用硬件执行所描述的功能的方面。
在805处,存储器系统可从主机系统接收与数据集相关联的写入命令。可根据本文中所描述的方法执行805的操作。在一些实例中,可由参考图7所描述的命令接口执行805的操作的方面。
在810处,存储器系统可针对被配置成缓冲正在主机系统和存储器系统的存储器装置集之间传送的数据的缓冲器,确定缓冲器内可用于存储与写入命令相关联的数据集的空间量足以存储数据集,其中缓冲器内的可用空间量是基于缓冲器的与读取命令相关联的第一部分、缓冲器的与写入命令相关联的第二部分以及缓冲器的与读取命令和写入命令相关联的第三部分。可根据本文中所描述的方法来执行810的操作。在一些实例中,可由参考图7所描述的可用空间管理器执行810的操作的方面。
在815处,存储器系统可将对缓冲器内的空间量足以存储数据集的指示发射到主机系统。可根据本文中所描述的方法执行815的操作。在一些实例中,可由参考图7所描述的空间指示管理器执行815的操作的方面。
在820处,存储器系统可通过缓冲器基于发射指示而从主机系统接收数据集。可根据本文中所描述的方法执行820的操作。在一些实例中,可由参考图7所描述的数据管理器执行820的操作的方面。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法800。所述设备可包含用于以下操作的特征、装置或指令(例如,非暂时性计算机可读媒体存储的可由处理器执行的指令):从主机系统接收与数据集相关联的写入命令;针对被配置成缓冲正在主机系统和存储器系统的存储器装置集之间传送的数据的缓冲器,确定缓冲器内可用于存储与写入命令相关联的数据集的空间量足以存储数据集,其中缓冲器内的可用空间量是基于缓冲器的与读取命令相关联的第一部分、缓冲器的与写入命令相关联的第二部分,以及缓冲器的与读取命令和写入命令相关联的第三部分;将对缓冲器内的空间量足以存储数据集的指示发射到主机系统;和通过缓冲器基于发射指示而从主机系统接收数据集。
本文所描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:基于所述缓冲器的与写入命令相关联的所述第二部分内的第一空间可用度和所述缓冲器的与读取命令和写入命令相关联的所述第三部分内的第二空间可用度,确定所述缓冲器内可用于存储与所述写入命令相关联的数据集的所述空间量;和存储指示所述缓冲器内的所述可用空间量的值。
本文所描述的方法800和设备的一些情况可另外包含用于以下操作的操作、特征、装置或指令:将所述数据集的大小与指示所述缓冲器内可用于存储与所述写入命令相关联的数据的所述空间量的所述值进行比较,其中确定所述缓冲器内的所述空间量足以存储所述数据集可基于所述比较。
本文所描述的方法800和设备的一些例子可另外包含用于以下操作的操作、特征、装置或指令:更新指示所述缓冲器内可用于存储与所述写入命令相关联的数据的所述空间量的所述值,其中发射所述指示是基于更新所述值。
在本文所描述的方法800和设备的一些实例中,更新所述值可包含用于以下操作的操作、特征、装置或指令:基于所述数据集的所述大小使所述值递减。
在本文所描述的方法800和设备的一些情况下,所述缓冲器的与写入命令相关联的所述第二部分内的所述第一空间可用度可基于与包含先前接收到的写入命令的第一队列相关联的数据量,且针对所述缓冲器的与读取命令和写入命令相关联的所述第三部分的所述第二空间可用度可基于与包含先前接收到的读取命令和先前接收到的写入命令的第二队列相关联的数据量。
本文所描述的方法800和设备的一些例子可另外包含用于以下操作的操作、特征、装置或指令:基于从所述主机系统接收到所述数据集,将所述数据集从所述缓冲器传送到所述存储器装置集的存储器装置。
本文所描述的方法800和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:基于将所述数据集传送到所述存储器装置,更新指示所述缓冲器内可用于存储与所述写入命令相关联的数据的所述空间量的值。
在本文所描述的方法800和设备的一些情况下,更新所述值可包含用于以下操作的操作、特征、装置或指令:基于所述数据集的大小使所述值递增。
图9示出根据本公开的方面的说明支持自适应缓冲器分割的一或多种方法900的流程图。方法900的操作可由如本文中所描述的存储器系统或其组件实施。举例来说,方法900的操作可由如参考图7所描述的存储器系统执行。在一些实例中,存储器系统可执行指令集以控制存储器系统的功能元件来执行所描述的功能。另外或替代地,存储器系统可使用专用硬件执行所描述的功能的方面。
在905处,存储器系统可从主机系统接收与数据集相关联的读取命令。可根据本文中所描述的方法执行905的操作。在一些实例中,可由参考图7所描述的命令接口执行905的操作的方面。
在910处,存储器系统可针对被配置成缓冲正在存储器系统的存储器装置集和主机系统之间传送的数据的缓冲器,确定缓冲器内可用于存储与读取命令相关联的数据集的空间量足以存储数据集,其中缓冲器内的可用空间量是基于缓冲器的与读取命令相关联的第一部分、缓冲器的与写入命令相关联的第二部分以及缓冲器的与读取命令和写入命令相关联的第三部分。可根据本文中所描述的方法执行910的操作。在一些实例中,可由参考图7所描述的可用空间管理器执行910的操作的方面。
在915处,存储器系统可基于缓冲器内的足以存储数据集的空间量而将读取命令发到存储器装置集的存储器装置。可根据本文中所描述的方法执行915的操作。在一些实例中,可由参考图7所描述的可用空间管理器执行915的操作的方面。
在920处,存储器系统可基于发出读取命令而将数据集从存储器装置传送到缓冲器。可根据本文中所描述的方法执行920的操作。在一些实例中,可由参考图7所描述的数据管理器执行920的操作的方面。
在一些实例中,如本文中所描述的设备可执行一或多种方法,例如方法900。所述设备可包含用于以下操作的特征、装置或指令(例如,非暂时性计算机可读媒体存储的可由处理器执行的指令):从主机系统接收与数据集相关联的读取命令;针对被配置成缓冲正在存储器系统的存储器装置集和主机系统之间传送的数据的缓冲器,确定缓冲器内可用于存储与读取命令相关联的数据集的空间量足以存储数据集,其中缓冲器内的可用空间量是基于缓冲器的与读取命令相关联的第一部分、缓冲器的与写入命令相关联的第二部分以及缓冲器的与读取命令和写入命令相关联的第三部分;基于缓冲器内的足以存储数据集的空间量而将读取命令发到存储器装置集的存储器装置;和基于发出读取命令而将数据集从存储器装置传送到缓冲器。
本文所描述的方法900和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:基于所述缓冲器的与读取命令相关联的所述第一部分内的第一空间可用度和所述缓冲器的与读取命令和写入命令相关联的所述第三部分内的第二空间可用度,确定所述缓冲器内可用于存储与所述读取命令相关联的所述数据集的所述空间量;和存储指示所述缓冲器内的所述可用空间量的值。
本文所描述的方法900和设备的一些情况可另外包含用于以下操作的操作、特征、装置或指令:将所述数据集的大小与指示所述缓冲器内可用于存储与所述读取命令相关联的数据的所述空间量的所述值进行比较,其中确定所述缓冲器内的所述空间量足以存储所述数据集可基于所述比较。
本文所描述的方法900和设备的一些例子可另外包含用于以下操作的操作、特征、装置或指令:更新指示所述缓冲器内可用于存储与所述读取命令相关联的数据的所述空间量的所述值,其中将所述数据集传送到所述缓冲器是基于更新所述值。
在本文所描述的方法900和设备的一些实例中,更新所述值可包含用于以下操作的操作、特征、装置或指令:基于所述数据集的所述大小使所述值递减。
在本文所描述的方法900和设备的一些情况下,所述缓冲器的与读取命令相关联的所述第一部分内的所述第一空间可用度可基于与包含先前接收到的读取命令的第一队列相关联的数据量,且针对所述缓冲器的与读取命令和写入命令相关联的所述第三部分的所述第二空间可用度可基于与包含先前接收到的读取命令和先前接收到的写入命令的第二队列相关联的数据量。
本文所描述的方法900和设备的一些例子可另外包含用于以下操作的操作、特征、装置或指令:根据所述读取命令并且基于将所述数据集传送到所述缓冲器,将所述数据集从所述缓冲器发射到所述主机系统。
本文所描述的方法900和设备的一些实例可另外包含用于以下操作的操作、特征、装置或指令:基于将所述数据集发射到所述主机系统,更新指示所述缓冲器内可用于存储与所述读取命令相关联的数据的所述空间量的所述值。
在本文所描述的方法900和设备的一些情况下,更新所述值可包含用于以下操作的操作、特征、装置或指令:基于所述数据集的大小使所述值递增。
应注意,上文所描述的方法描述了可能的实施方案,且操作和步骤可经重新布置或以其它方式修改,且其它实施方案是可能的。此外,可以组合来自方法中的两个或更多个的部分。
描述一种设备。所述设备可包含接口,其被配置成与主机系统通信且被配置成从所述主机系统接收一或多个读取命令和一或多个写入命令;存储器装置集,其被配置成基于所述一或多个读取命令和所述一或多个写入命令而存储一或多个数据集;和缓冲器,其与所述接口和所述存储器装置集耦合并且被配置成根据所述一或多个读取命令和一或多个写入命令在所述接口和所述存储器装置集之间传送所述一或多个数据集,所述缓冲器包含:第一部分,其被配置成存储与所述一或多个读取命令相关联的数据;第二部分,其被配置成存储与所述一或多个写入命令相关联的数据;和第三部分,其被配置成存储与所述一或多个读取命令和所述一或多个写入命令相关联的数据。
所述设备的一些实例可包含第一计数器,所述第一计数器被配置成存储指示所述缓冲器的所述第二部分和所述缓冲器的所述第三部分内可用于存储与所述一或多个写入命令相关联的数据的空间量的值。
所述设备的一些实例可包含基于将与所述一或多个写入命令相关联的数据存储于所述缓冲器的所述第二部分或所述缓冲器的所述第三部分内而使所述第一计数器所存储的所述值递减;和基于将与所述一或多个写入命令相关联的数据从所述缓冲器传送到所述存储器装置集的存储器装置而使所述第一计数器所存储的所述值递增。
所述设备的一些例子可包含第二计数器,所述第二计数器被配置成存储指示所述缓冲器的所述第一部分和所述缓冲器的所述第三部分内可用于存储与读取命令相关联的数据的空间量的值。
所述设备的一些实例可包含基于将与所述一或多个读取命令相关联的数据存储于所述缓冲器的所述第一部分或所述缓冲器的所述第三部分内而使所述第二计数器所存储的所述值递减;和基于将与所述一或多个读取命令相关联的数据从所述缓冲器发射到所述主机系统而使所述第二计数器所存储的所述值递增。
可使用多种不同技术和技艺中的任一种来表示本文中所描述的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个以上描述中参考的数据、指令、命令、信息、信号、位、符号和码片。一些图式可将信号说明为单个信号;然而,所属领域的一般技术人员应理解,信号可表示信号的总线,其中总线可具有各种位宽度。
术语“电子通信”、“导电接触”、“连接”和“耦合”可以指组件之间支持电子在组件之间流动的关系。如果组件之间存在可在任何时间支持信号在组件之间流动的任何导电路径,那么组件被视为彼此电子通信(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子通信(或导电接触或连接或耦合)的组件之间的导电路径可以是开路或闭路。所连接组件之间的导电路径可以是组件之间的直接导电路径,或所连接组件之间的导电路径可以是可包含如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管等一或多个中间组件来中断所连接组件之间的信号流一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。当例如控制器等组件将其它组件耦合在一起时,组件起始允许信号经由先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此隔离。举例来说,由定位在两个组件之间的开关间隔开的组件在开关断开时彼此隔离。当控制器分隔开两个组件时,所述控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
本文中论述的装置,包含存储器阵列,可形成于例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底是半导体晶片。在其它实例中,衬底可以是绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延材料。可通过使用包含但不限于磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法执行掺杂。
本文中所论述的开关组件或晶体管可表示场效应晶体管(FET),且包括包含源极、漏极和栅极的三端装置。所述端子可通过导电材料(例如金属)连接到其它电子元件。源极和漏极可为导电的,且可包括经重掺杂,例如简并,半导体区。源极与漏极可通过经轻掺杂半导体区或沟道分离。如果沟道是n型的(即,大部分载流子为电子),那么FET可被称为n型FET。如果沟道是p型的(即,大部分载流子为空穴),那么FET可被称为p型FET。沟道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制沟道导电性。举例来说,将正电压或负电压分别施加到n型FET或p型FET可导致沟道变得导电。当大于或等于晶体管的阈值电压的电压被施加到晶体管栅极时,晶体管可“接通”或“激活”。当小于晶体管的阈值电压的电压施加到晶体管栅极时,晶体管可“断开”或“解除激活”。
本文结合附图阐述的描述内容描述了实例配置,且并不表示可以实施的或在权利要求书的范围内的所有实例。本文中所使用的术语“示范性”是指“充当实例、例子或说明”,且不“优选于”或“优于”其它实例。详细描述包含具体细节,以提供对所描述技术的理解。然而,可在没有这些具体细节的情况下实践这些技术。在一些情况下,以框图形式示出熟知结构和装置,以免混淆所描述实例的概念。
在附图中,类似组件或特征可以具有相同的参考标记。另外,可通过在参考标记之后跟着短划线及在类似组件当中进行区分的第二标记来区分相同类型的各种组件。如果说明书中仅使用第一参考标记,那么描述适用于具有相同第一参考标记的类似组件中的任一者,与第二参考标记无关。
结合本文中的公开内容所描述的各种说明性块和模块可使用通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或经设计以执行本文所描述的功能的其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器还可被实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此配置)。
本文中所描述的技术可在硬件、通过处理器执行的软件、固件或其任何组合中实施。如果以由处理器执行的软件来实施,那么可将功能作为一或多个指令或代码存储于计算机可读媒体上或通过计算机可读媒体予以传输。其它实例和实施在本公开和所附权利要求书的范围内。举例来说,归因于软件的性质,上文所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或任何这些的组合实施。实施功能的特征还可物理上位于各种位置处,包含经分布以使得功能的部分在不同物理位置处实施。并且,如本文中所使用,包含在权利要求书中,项目的列表(例如,以例如“中的至少一者”或“中的一或多者”的短语开始的项目的列表)中所使用的“或”指示包含性列表,使得(例如)A、B或C中的至少一者的列表意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。另外,如本文所用,短语“基于”不应理解为提及封闭条件集。举例来说,在不脱离本公开的范围的情况下,描述为“基于条件A”的示范性步骤可基于条件A和条件B两者。换句话说,如本文所用,短语“基于”应同样地解释为短语“至少部分地基于”。当用以描述条件性动作或过程时,术语“如果……,那么……”、“当……时”、“基于……”、“至少部分地基于……”和“响应于……”可互换。
计算机可读媒体包含非暂时性计算机存储媒体以及包含促进将计算机程序从一处传递到另一处的任何媒体的通信媒体两者。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可包括RAM、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、压缩光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或者通用或专用处理器存取的任何其它非暂时性媒体。并且,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术从网站、服务器或其它远程源传输软件,那么所述同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电和微波的无线技术包含在媒体的定义中。如本文中所使用,磁盘和光盘包含CD、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各者的组合也包含在计算机可读媒体的范围内。
提供本文中的描述使得所属领域的技术人员能够进行或使用本公开。所属领域技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的范围。因此,本公开不限于本文所述的实例和设计,而是被赋予与本文所公开的原理和新颖特征一致的最宽范围。
Claims (23)
1.一种存储包括指令的代码的非暂时性计算机可读媒体,所述指令在由电子装置的处理器执行时致使所述电子装置:
从主机系统接收与数据集相关联的写入命令;
针对被配置成缓冲正在所述主机系统和存储器系统的存储器装置集之间传送的数据的缓冲器,确定所述缓冲器内可用于存储所述数据集的空间量足以存储所述数据集,其中所述缓冲器内的所述可用空间量至少部分地基于所述缓冲器的与读取命令相关联的第一部分、所述缓冲器的与写入命令相关联的第二部分以及所述缓冲器的与读取命令和写入命令相关联的第三部分;
将对所述缓冲器内的所述空间量足以存储所述数据集的指示发射到所述主机系统;和
通过所述缓冲器至少部分地基于发射所述指示而从所述主机系统接收所述数据集。
2.根据权利要求1所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
至少部分地基于所述缓冲器的与写入命令相关联的所述第二部分内的第一空间可用度和所述缓冲器的与读取命令和写入命令相关联的所述第三部分内的第二空间可用度,确定所述缓冲器内可用于存储与所述写入命令相关联的数据集的所述空间量;和
存储指示所述缓冲器内的所述可用空间量的值。
3.根据权利要求2所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
将所述数据集的大小与指示所述缓冲器内可用于存储与所述写入命令相关联的数据的所述空间量的所述值进行比较,其中确定所述缓冲器内的所述空间量足以存储所述数据集至少部分地基于所述比较。
4.根据权利要求3所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
更新指示所述缓冲器内可用于存储与所述写入命令相关联的数据的所述空间量的所述值,其中发射所述指示至少部分地基于更新所述值。
5.根据权利要求4所述的非暂时性计算机可读媒体,其中更新所述值的所述指令进一步致使所述电子装置至少部分地基于所述数据集的所述大小使所述值递减。
6.根据权利要求2所述的非暂时性计算机可读媒体,其中:
所述缓冲器的与写入命令相关联的所述第二部分内的所述第一空间可用度至少部分地基于与包括先前接收到的写入命令的第一队列相关联的数据量;且
针对所述缓冲器的与读取命令和写入命令相关联的所述第三部分的所述第二空间可用度至少部分地基于与包括先前接收到的读取命令和先前接收到的写入命令的第二队列相关联的数据量。
7.根据权利要求2所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
至少部分地基于从所述主机系统接收到所述数据集,将所述数据集从所述缓冲器传送到所述存储器装置集的存储器装置。
8.根据权利要求7所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
至少部分地基于将所述数据集传送到所述存储器装置,更新指示所述缓冲器内可用于存储与所述写入命令相关联的数据的所述空间量的所述所存储值。
9.根据权利要求8所述的非暂时性计算机可读媒体,其中更新所述值的所述指令进一步致使所述电子装置至少部分地基于所述数据集的大小使所述值递增。
10.一种存储包括指令的代码的非暂时性计算机可读媒体,所述指令在由电子装置的处理器执行时致使所述电子装置:
从主机系统接收与数据集相关联的读取命令;
针对被配置成缓冲正在存储器系统的存储器装置集和所述主机系统之间传送的数据的缓冲器,确定所述缓冲器内可用于存储与所述读取命令相关联的所述数据集的空间量足以存储所述数据集,其中所述缓冲器内的所述可用空间量至少部分地基于所述缓冲器的与读取命令相关联的第一部分、所述缓冲器的与写入命令相关联的第二部分以及所述缓冲器的与读取命令和写入命令相关联的第三部分;
至少部分地基于所述缓冲器内的足以存储所述数据集的所述空间量而将所述读取命令发到所述存储器装置集的存储器装置;和
至少部分地基于发出所述读取命令而将所述数据集从所述存储器装置传送到所述缓冲器。
11.根据权利要求10所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
至少部分地基于所述缓冲器的与读取命令相关联的所述第一部分内的第一空间可用度和所述缓冲器的与读取命令和写入命令相关联的所述第三部分内的第二空间可用度,确定所述缓冲器内可用于存储与所述读取命令相关联的所述数据集的所述空间量;和
存储指示所述缓冲器内的所述可用空间量的值。
12.根据权利要求11所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
将所述数据集的大小与指示所述缓冲器内可用于存储与所述读取命令相关联的数据的所述空间量的所述值进行比较,其中确定所述缓冲器内的所述空间量足以存储所述数据集至少部分地基于所述比较。
13.根据权利要求12所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
更新指示所述缓冲器内可用于存储与所述读取命令相关联的数据的所述空间量的所述值,其中将所述数据集传送到所述缓冲器至少部分地基于更新所述值。
14.根据权利要求13所述的非暂时性计算机可读媒体,其中更新所述值的所述指令进一步致使所述电子装置至少部分地基于所述数据集的所述大小使所述值递减。
15.根据权利要求11所述的非暂时性计算机可读媒体,其中:
所述缓冲器的与读取命令相关联的所述第一部分内的所述第一空间可用度至少部分地基于与包括先前接收到的读取命令的第一队列相关联的数据量;且
针对所述缓冲器的与读取命令和写入命令相关联的所述第三部分的所述第二空间可用度至少部分地基于与包括先前接收到的读取命令和先前接收到的写入命令的第二队列相关联的数据量。
16.根据权利要求11所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
根据所述读取命令并且至少部分地基于将所述数据集传送到所述缓冲器,将所述数据集从所述缓冲器发射到所述主机系统。
17.根据权利要求16所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步致使所述电子装置:
至少部分地基于将所述数据集发射到所述主机系统,更新指示所述缓冲器内可用于存储与所述读取命令相关联的数据的所述空间量的所述值。
18.根据权利要求17所述的非暂时性计算机可读媒体,其中更新所述值的所述指令进一步致使所述电子装置至少部分地基于所述数据集的大小使所述值递增。
19.一种设备,其包括:
接口,其被配置成与主机系统通信且被配置成从所述主机系统接收一或多个读取命令和一或多个写入命令;
存储器装置集,其被配置成至少部分地基于所述一或多个读取命令和所述一或多个写入命令而存储一或多个数据集;和
缓冲器,其与所述接口和所述存储器装置集耦合并且被配置成根据所述一或多个读取命令和一或多个写入命令在所述接口和所述存储器装置集之间传送所述一或多个数据集,所述缓冲器包括:
第一部分,其被配置成存储与所述一或多个读取命令相关联的数据;
第二部分,其被配置成存储与所述一或多个写入命令相关联的数据;和
第三部分,其被配置成存储与所述一或多个读取命令和所述一或多个写入命令相关联的数据。
20.根据权利要求19所述的设备,其另外包括第一计数器,所述第一计数器被配置成存储指示所述缓冲器的所述第二部分和所述缓冲器的所述第三部分内可用于存储与所述一或多个写入命令相关联的数据的空间量的值。
21.根据权利要求20所述的设备,其另外包括控制器,所述控制器被配置成:
至少部分地基于将与所述一或多个写入命令相关联的数据存储于所述缓冲器的所述第二部分或所述缓冲器的所述第三部分内而使所述第一计数器所存储的所述值递减;和
至少部分地基于将与所述一或多个写入命令相关联的数据从所述缓冲器传送到所述存储器装置集的存储器装置而使所述第一计数器所存储的所述值递增。
22.根据权利要求19所述的设备,其另外包括第二计数器,所述第二计数器被配置成存储指示所述缓冲器的所述第一部分和所述缓冲器的所述第三部分内可用于存储与读取命令相关联的数据的空间量的值。
23.根据权利要求22所述的设备,其另外包括控制器,所述控制器被配置成:
至少部分地基于将与所述一或多个读取命令相关联的数据存储于所述缓冲器的所述第一部分或所述缓冲器的所述第三部分内而使所述第二计数器所存储的所述值递减;和
至少部分地基于将与所述一或多个读取命令相关联的数据从所述缓冲器发射到所述主机系统而使所述第二计数器所存储的所述值递增。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063068949P | 2020-08-21 | 2020-08-21 | |
US63/068,949 | 2020-08-21 | ||
US16/950,596 | 2020-11-17 | ||
US16/950,596 US20220057958A1 (en) | 2020-08-21 | 2020-11-17 | Adaptive buffer partitioning |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114171076A true CN114171076A (zh) | 2022-03-11 |
Family
ID=80270747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110966214.4A Pending CN114171076A (zh) | 2020-08-21 | 2021-08-23 | 自适应缓冲器分割 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220057958A1 (zh) |
CN (1) | CN114171076A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11386656B2 (en) * | 2020-04-08 | 2022-07-12 | Moxa Inc. | Device and method of handling video content analysis |
US11709664B2 (en) * | 2020-06-02 | 2023-07-25 | SambaNova Systems, Inc. | Anti-congestion flow control for reconfigurable processors |
-
2020
- 2020-11-17 US US16/950,596 patent/US20220057958A1/en not_active Abandoned
-
2021
- 2021-08-23 CN CN202110966214.4A patent/CN114171076A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220057958A1 (en) | 2022-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11704252B2 (en) | Dual address encoding for logical-to-physical mapping | |
CN113625943A (zh) | 用于顺序地存储的数据的经压缩逻辑到物理映射 | |
CN114625671A (zh) | 存储器装置的动态逻辑页大小 | |
CN114171076A (zh) | 自适应缓冲器分割 | |
US11907556B2 (en) | Data relocation operation techniques | |
CN115705887A (zh) | 存储器操作完成标记 | |
CN115904221A (zh) | 高速缓存块预算技术 | |
CN114627916A (zh) | 用于存储器装置的状态信息检索 | |
CN114816900A (zh) | 用于存储器系统的温度跟踪 | |
CN114822670A (zh) | 有效数据感知媒体可靠性扫描 | |
WO2022039939A1 (en) | Multi-stage memory device performance notification | |
CN113870928A (zh) | 智能工厂重置程序 | |
CN116610251A (zh) | 执行写入操作的技术 | |
US20220188242A1 (en) | Multi-tier cache for a memory system | |
CN115951932A (zh) | 用于命令序列调整的技术 | |
CN115729848A (zh) | 直接逻辑到物理地址映射 | |
US11755490B2 (en) | Unmap operation techniques | |
CN114647378A (zh) | 用于垃圾收集的有效数据标识 | |
CN115374025A (zh) | 可配置刷新操作速度 | |
CN114756167A (zh) | 使用压缩存储器的读取操作 | |
CN114520016B (zh) | 用于存储器地址区的激活和去激活的增强 | |
CN114546895B (zh) | 主机侧存储器地址管理 | |
US11922069B2 (en) | Adaptive block mapping | |
US20240086070A1 (en) | Read disturb management for memory | |
WO2022125909A1 (en) | Multi-tier cache for a memory system |
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 |