CN108874303B - 非易失性存储器命令冲突避免的储存系统和方法 - Google Patents
非易失性存储器命令冲突避免的储存系统和方法 Download PDFInfo
- Publication number
- CN108874303B CN108874303B CN201810225738.6A CN201810225738A CN108874303B CN 108874303 B CN108874303 B CN 108874303B CN 201810225738 A CN201810225738 A CN 201810225738A CN 108874303 B CN108874303 B CN 108874303B
- Authority
- CN
- China
- Prior art keywords
- memory
- group
- busy
- tile
- tiles
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- 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/0629—Configuration or reconfiguration 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/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/7202—Allocation control and policies
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2213/00—Indexing scheme relating to G11C13/00 for features not covered by this group
- G11C2213/70—Resistive array aspects
- G11C2213/71—Three dimensional array
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/22—Nonvolatile memory in which reading can be carried out from one memory bank or array whilst a word or sector in another bank or array is being erased or programmed simultaneously
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/04—Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1063—Control signal output circuits, e.g. status or busy flags, feedback command signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Microelectronics & Electronic Packaging (AREA)
Abstract
提供了包括控制器和存储器的储存系统,存储器包括组织为多个瓦片组的存储器的多个瓦片,其中当给定的瓦片组中的任意瓦片是繁忙的时,给定的瓦片组是繁忙的。控制器配置为:将多个瓦片组的繁忙状态告知主机;从主机接收多个命令,其中每个命令提供有不繁忙的瓦片组的不同瓦片组标识符;并执行多个命令,其中因为每个命令包括不繁忙的瓦片组的不同瓦片组标识符,所以并行执行多个命令。
Description
技术领域
本申请涉及存储器领域。
背景技术
一些储存系统具有组织为多个瓦片(子阵列)组的存储器阵列,其被设计为一次仅处理一个读取/写入命令。相应地,当在给定的瓦片组中执行读取/写入命令时,直到先前的读取/写入命令完成为止,无法对该瓦片组执行后续的读取/写入命令。相比之下,如果将读取/写入命令发送到就绪的瓦片组,则可以立即执行该读取/写入命令。
发明内容
在一个实施例中,提供了包括控制器和存储器的储存系统,存储器包括组织为多个瓦片组的存储器的多个瓦片,其中当在给定的瓦片组中的任意瓦片是繁忙的时,给定的瓦片组是繁忙的。控制器配置为:将多个瓦片组的繁忙状态告知主机;从主机接收多个命令,其中每个命令提供有不繁忙的瓦片组的不同瓦片组标识符来提供;并执行多个命令,其中因为每个命令包括不繁忙的瓦片组的不同瓦片组标识符,所以并行地执行多个命令。
在一些实施例中,控制器配置为通过将每个瓦片组的就绪/繁忙指示符写入在储存系统中的一个或多个主机可读取的寄存器中,来将多个瓦片组的繁忙状态告知主机。
在一些实施例中,执行多个命令致使至少一个瓦片组中的一些而非全部的瓦片是繁忙的,并且其中控制器还配置为在至少一个不繁忙的瓦片组中的瓦片中的至少一个中进行背景操作。
在一些实施例中,存储器包括三维存储器。
在一些实施例中,存储器系统嵌入在主机中。
在一些实施例中,存储器系统可移除地连接到主机。
在另一个实施例中,提供命令冲突避免的方法。该方法包括:在储存系统中接收多个存储器子阵列组的就绪/未就绪的信息,其中每个存储器子阵列组包括多个存储器子阵列,且其中如果给定的存储器子阵列组中的至少一个存储器子阵列是未就绪的,则该给定的存储器子阵列组是未就绪的;并且将多个存储器存取命令发送到储存系统,其中每个存储器存取命令连同就绪的存储器子阵列组不同存储器子阵列组ID一起发送。
在一些实施例中,接收就绪/未就绪的信息包括从储存系统中至少一个寄存器读取就绪/未就绪信息。
在一些实施例中,方法还包括通过使用数据结构来确定要连同给定的存储器存取命令一起发送哪个存储器子阵列组ID,该数据结构将逻辑块地址与存储器子阵列组ID相关联。
在一些实施例中,方法还包括基于发送到特定存储器子阵列组ID的存储器存取命令的历史来确定是否将存储器存取命令发送到特定存储器子阵列组ID。
在一些实施例中,至少两个存储器子阵列组具有彼此不同的存储器类型,并且其中方法还包括基于适合于给定的存储器存取命令的存储器类型来确定要连同给定的存储器存取命令一起发送哪个存储器子阵列组ID。
在一些实施例中,一个存储器类型具有比其他存储器类型更高的可靠性。
在一些实施例中,多个存储器子阵列组中的至少一个包括三维存储器。
在一些实施例中,由与储存系统通信的主机进行接收和发送。
在一些实施例中,存储器系统嵌入在主机中。
在一些实施例中,存储器系统可移除地连接到主机。
在另一个实施例中,提供了储存系统,包括:存储器;用于在存储器中将多个瓦片组的就绪/繁忙信息提供到主机的包括;用于从主机接收多个命令的构件,其中每个命令与不繁忙的瓦片组的唯一瓦片组标识符相关联;以及,用于并行地执行多个命令的构件。
在一些实施例中,多个瓦片组中的至少一个包括三维存储器。
在一些实施例中,存储器系统嵌入在主机中。
在一些实施例中,存储器系统可移除地连接到主机。
其他实施例是可能的,并且实施例中的每一个可以单独使用或者组合在一起使用。相应地,现将参考附图描述各种实施例。
附图说明
图1A是实施例的非易失性储存系统的框图。
图1B是示出实施例的储存模块的框图。
图1C是示出实施例的分层储存系统的框图。
图2A是示出根据实施例的图1A中所示出的非易失性储存系统的控制器的组件的框图。
图2B是示出根据实施例的图1A中所示出的非易失性存储器储存系统的组件的框图。
图3是示出实施例的主机和储存系统的框图。
图4是示出损耗均衡操作期间实施例的主机和储存系统的框图。
图5是命令冲突避免的实施例的方法的流程图。
图6是示出实施例的主机和储存系统的框图,其中主机发送瓦片组ID。
图7是示出两个瓦片组的活动的图示。
图8是示出当使用实施例的命令冲突避免方法时两个瓦片组的活动的图示。
图9是示出替代实施例的主机和储存系统的框图。
具体实施方式
作为介绍,下面的实施例涉及使用明确瓦片分组的非易失性存储器命令冲突避免的储存系统和方法。
实施例
图1A-1C中示出了适于这些实施例的实现方面中使用的储存系统。图1A是示出根据文中描述的主题的实施例的非易失性储存系统100的框图。参考图1A,非易失性储存系统100可以包含控制器102和非易失性存储器,非易失性存储器可以由一个或多个非易失性存储器裸芯104构成。如本文中所使用的,术语裸芯是指非易失性存储器单元的集合以及用于管理那些非易失性存储器单元的物理操作的相关电路,其形成在单个半导体基板上。控制器102与主机系统相接,并且将读取、编程和擦除操作的命令序列发送到非易失性存储器裸芯104。
控制器102(其可以是非易失性存储器控制器(例如,闪存、Re-RAM、PCM或MRAM控制器))可以采取以下形式:处理电路、微处理器或处理器,以及计算机可读介质,计算机可读介质储存由例如(微)处理器、逻辑门、开关、应用专用集成电路(ASIC)、可编程逻辑控制器和嵌入式微控制器可执行的计算机可读程序代码(例如,固件)。控制器102可以配置有硬件和/或固件,以进行如下所述和在流程图中示出的各种功能。另外,示出为在控制器内部的组件也可以储存在控制器外部,并且可以使用其他组件。此外,短语“与……可操作地通信”可以意味着与之直接通信或者通过可能在或可能不在本文中示出或描述的一个或多个组件与之间接(有线地或无线地)通信。
如本文所用的,非易失性存储器控制器是管理储存在非易失性存储器上的数据并且与主机通信的装置,诸如计算机或电子装置。非易失性存储器控制器可以具有除了本文所描述的具体功能之外的各种功能。例如,非易失性存储器控制器可以将非易失性存储器格式化以确保存储器正在正确地操作,映射出坏的非易失性存储器单元,以及分配空闲单元以替换将来失效的单元。空闲单元的一些部分可以用于保持固件,以操作非易失性存储器控制器并实现其他特征。在操作中,当主机需要从非易失性存储器读取数据或者将数据写入到非易失性存储器时,其可以与非易失性存储器控制器通信。如果主机提供数据将读取/写入的逻辑地址,则非易失性存储器控制器可以将从主机所接收的逻辑地址转换为非易失性存储器中的物理地址(替代地,主机可以提供物理地址)。非易失性存储器控制器还可以进行各种存储器管理功能,诸如但不限于损耗均衡(分布写入以避免损耗存储器的特定块,否则将重复写入到该特定块)和垃圾收集(在块满后,仅将数据的有效页移动到新的块,所以可以擦除和重复使用完整的块)。
非易失性存储器裸芯104可以包含任意适当的非易失性储存器(storage)介质,包含电阻式随机存取存储器(ReRAM)、磁阻式随机存取存储器(MRAM)、相变存储器(PCM)、NAND闪速存储器单元和/或NOR闪速存储器单元。存储器单元可以采取固态(例如,闪存)存储器单元的形式,并且可以是一次可编程的、几次可编程的或者许多次可编程的。存储器单元还可以是单级单元(SLC)、多级单元(MLC)、三级单元(TLC)或者使用现已知的或以后开发的其他存储器单元级技术。另外,存储器单元可以制造为二维或三维形式。
在控制器102和非易失性存储器裸芯104之间的接口可以是任意适当的闪速接口,诸如切换(Toggle)模式200、400或800。在一个实施例中,储存系统100可以是基于卡的系统,例如安全数字(SD)或微型安全数字(micro-SD)卡。在替代实施例中,储存系统100可以是嵌入式储存系统的部分。
尽管在图1A中示出的示例中,非易失性储存系统100(有时在文中称为储存模块)包含在控制器102和非易失性存储器裸芯104之间的单个信道,本文所描述的主题不限于具有单个存储器信道。例如,在一些储存系统架构(诸如图1B和图1C中所示的多个储存系统架构),取决于控制器能力,控制器和存储器装置之间可以存在2、4、8个或更多存储器信道。在本文中所描述的任意实施例中,即使在附图中示出了单个信道,控制器和存储器裸芯之间也可以存在多于一个信道。
图1B示出了包含多个非易失性储存系统100的储存模块200。就此而言,储存模块200可以包含与主机且与储存系统204相接的储存控制器202,储存系统204包含多个非易失性储存系统100。储存控制器202和非易失性储存系统100之间的接口可以是总线接口,例如,诸如串行先进技术附件(SATA)、外围组件接口高速(PCIe)或双数据速率(DDR)接口。在一个实施例中,储存模块200可以是固态驱动器(SDD)或非易失性双列直插式存储器模块(NVDIMM),诸如在服务器PC或诸如膝上型计算机和平板计算机的可便携式计算装置中所见的。
图1C是示出分层储存系统的框图。分层储存系统250包含多个储存器控制器202,储存器控制器202中的每一个控制相应的储存系统204。主机系统252可以经由总线接口存取储存系统内的存储器。在一个实施例中,总线接口可以是NVMe或在以太网(FCoE)接口之上的光纤通道。在一个实施例中,在图1C中示出的系统可以是可由多个主机计算机可存取的可机架安装的大容量储存系统,例如将在需要大容量储存器的数据中心或其它位置中找到的。
图2A是更详细地说明控制器102的组件的框图。控制器102包含与主机相接的前端模块108、与一个或多个非易失性存储器裸芯104相接的后端模块110以及进行现将详细描述的功能的各种其他模块。模块可以采取如下形式:设计为与其他组件一起使用的封装功能性硬件单元,由通常进行相关功能中的特定功能的(微)处理器或处理电路可执行的程序代码(例如,软件或固件)的部分,或者与较大系统相接的自足式(self-contained)硬件或软件组件,作为示例。控制器102的模块可以包含命令冲突避免模块111,其在下面更详细地描述,并且可以实现为硬件或软件/固件。
再次参考控制器102的模块,缓冲器管理器/总线控制器114管理随机存取存储器(RAM)116中的缓冲器并且控制控制器102的内部总线仲裁(arbitration)。只读存储器(ROM)118储存系统引导代码。尽管图2A示出为与控制器102分开,但是在其它实施例中,RAM116和ROM 118中的一者或两者可以位于控制器内。在其他实施例中,RAM和ROM的部分可以即位于控制器102之内又位于控制器的之外。
前端模块108包含主机接口120和物理层接口(PHY)122,其提供与主机或下个级别的储存器控制器的电接口。主机接口120的类型的选择可以取决于正在使用的存储器的类型。主机接口120的示例可以包含但不限于SATA、SATA高速、SAS、光纤通道、USB、PCIe以及NVMe。主机接口120可以典型地促进数据、控制信号和计时信号的传输。
后端模块110包含错误纠正控制器(ECC)引擎124,其将从主机接收的数据字节编码,并且将从非易失性存储器读取的数据字节解码和错误纠正。命令定序器126产生要发送到非易失性存储器裸芯104的命令序列,诸如编程和擦除命令序列。RAID(独立驱动器冗余阵列)模块128管理RAID奇偶校验的产生和失效数据的恢复。RAID奇偶校验可以用作写入到存储器装置104中的数据的附加水平的完整性保护。在一些情况下,RAID模块128可以是ECC引擎124的部分。存储器接口130将命令序列提供到非易失性存储器裸芯104并且从非易失性存储器裸芯104接收状态信息。在一个实施例中,存储器接口130可以是双倍数据速率(DDR)接口,诸如切换(Toggle)模式200、400或800接口。闪存控制层132控制后端模块110的总体操作。
储存系统100还包含其他分立式组件140,诸如外部电接口、外部RAM、电阻器、电容器或可以与控制器102相接的其他组件。在替代实施例中,物理层接口122、RAID模块128、介质管理层138和缓冲器管理/总线控制器114中的一个或多个是可选的组件,其在控制器102中不是必要的。
图2B是更详细地图示非易失性存储器裸芯104的组件的框图。非易失性存储器裸芯104包含外围电路141和非易失性存储器阵列142。非易失性存储器阵列142包含用于储存数据的非易失性存储器单元。非易失性存储器单元可以是任意适当的非易失性存储器单元,包含二维和/或三维配置的ReRAM、MRAM、PCM、NAND闪速存储器单元和/或NOR闪速存储器单元。非易失性存储器裸芯104还包含缓存数据的数据缓存156。外围电路141包含向控制器102提供状态信息的状态机152。
图3是实施例的一个特定实现方式的示意图。应当注意的是,这仅是示例,并且可以使用他实现方式。图3示出了与储存系统100的组件中的一些(即,控制器102和存储器104)通信的主机50。应当理解的是,为了简化附图,储存系统100(包含但不限于上面描述的这些组件)的其他组件可以被使用并且未在图3中示出。在此,存储器104包括多个非易失性存储器芯片(或裸芯);然而,在其他实施例中,存储器104可以包含单个芯片/裸芯。图3更详细地示出了存储器芯片300中的一个。可以类似地组织其他存储器芯片中的一些或全部。如图3中所示的,该实施例中的存储器芯片300包括多个存储器瓦片(在此,瓦片0到瓦片16),其组织为多个逻辑瓦片组(在此,瓦片组A到瓦片组D)。如本文所使用的,存储器瓦片可以指存储器子阵列,并且瓦片(或子阵列)组可以指单独存储器瓦片(或子阵列)的逻辑分组。
如图3所示的,在该实施例中,每个存储器瓦片/子阵列包括多个位线、多个字线、在位线和字线的交叉点处的多个存储器单元、多个列地址解码器、多个字线驱动器(未示出)和由多个位线共用的单个感测放大器。在该特定实施例中,存储器单元是字线和位线的交点处的二维装置,但是还可以使用其他存储器单元设计。如图3所示的,在瓦片中的给定的存储器单元的读取/感测操作期间,在其他存储器单元中可能存在一些漏电流。再次,因为存在由给定的存储器瓦片中的全部存储器单元共用的单个感测放大器,所以可以在任意给定的时间从给定的瓦片读取仅一个存储器单元。换言之,当单个瓦片的非易失性存储器单元被写入或读取时,由于瓦片中的电路(例如,感测放大器)的物理共用,直到完成前面的写入或读取操作为止,无法向相同瓦片服务下一读取/写入命令。另外,因为写入操作远慢于读取操作,相同瓦片上的写入后读取/写入序列可能比读取后读取/写入序列更加显著地延迟。相比之下,如果读取/写入命令存取单元阵列的闲置瓦片,则将直接执行读取/写入命令。
如上面提到的,在该实施例中,将多个存储器瓦片(在此,瓦片0到瓦片16)组织为多个逻辑瓦片组(在此,瓦片组A到瓦片组D)。在该实施例中,逻辑瓦片组中的瓦片不共用组件(例如,字线、位线、列解码器、感测放大器)。换言之,瓦片组中的每个瓦片具有其自身的组件并且可以独立地操作。然而,在该实施例中,使用逻辑瓦片组来将主机50和储存系统100之间的通信协议简化。具体而言,因为每个存储器瓦片可以独立地操作,控制器102可以保持存储器瓦片中的每一个的就绪/繁忙状态的追踪。然而,因为储存系统中可能存在数千个存储器瓦片,向主机50通信数千个存储器瓦片的就绪/繁忙状态可能消耗大量带宽并且损害性能。因此,在一个实施例中,逻辑瓦片组用于将两个和更多个瓦片在逻辑上分组在一起。在该组织框架中,当给定的瓦片组中的任意瓦片是繁忙的时,给定的瓦片组认为是繁忙的,并且当给定的瓦片组中的全部瓦片是就绪的时,给定的瓦片组认为是就绪的。再次地,使用该逻辑抽象化来将管理就绪/繁忙指示符中的开销(overhead)减少到比全部存储器瓦片更小的组,但是这种便利性带来不使用认为是繁忙的瓦片组中的就绪的存储器瓦片的权衡。该概念在图4中图示。
图4示出了控制器102发送损耗均衡(或刷新)的命令的情况。因为对存储器单元/瓦片的重复的读取/写入操作可能降低存储器单元的/瓦片的可靠地保留数据的能力(耐用性),控制器102可以实现损耗均衡算法,其中将数据在存储器104四处移动,以助于确保比如果不使用损耗均衡算法更均等地使用存储器104中的各瓦片。在图4中,损耗均衡操作引起将数据在瓦片1和瓦片11之间移动,这意味着瓦片1和瓦片11二者都是繁忙的(例如,因为每个瓦片仅具有单个感测放大器,其被该操作占用)。在该实施例的瓦片组抽象化下,因为瓦片1和瓦片11是繁忙的,瓦片组A和C也认为是繁忙的(因为瓦片1属于瓦片组A,并且瓦片11属于瓦片组C)。即使这两个组中的其他瓦片可能是就绪的,这也是成立的(再次地,这是在该抽象化下为了简化就绪/繁忙管理的“代价”)。这意味着直到交换操作完成并且瓦片组A和C被标记为就绪为止,来自主机50的要映射到瓦片组A或瓦片组C的读取/写入命令需要等待。
命令需要等待直到瓦片组就绪为止的这个问题在本文中称为“命令冲突”。主机50可以尝试将命令重新排序来“避开”冲突“调度”。然而,主机通过调度命令以避免冲突的尝试可能是无效的,特别是在主机50不具有关于物理存储器瓦片放置的信息并且简单地用读取/写入命令将逻辑块地址发送到储存系统100的环境中。存储器系统100中的控制器102将把来自主机50的逻辑块地址转译到瓦片或其部分的物理地址。因此,因为控制器102通过损耗均衡或坏页管理的内部逻辑到物理映射来隐藏阵列中的物理瓦片放置,所以主机50可能不准确地知道哪个瓦片是否是闲置的。另外,可以从控制器102发布用于损耗均衡或非易失性存储器单元刷新(读取和写入)的附加的写入命令。因此,可以延迟对正服务于控制器102的繁忙瓦片的任意主机命令,以及主机发布的命令。注意到,可以由主机写入操作或造成读取干扰的主机读取操作触发损耗均衡。另外,虽然已经对NAND闪存提出了写入挂起(suspension),但是其需要诸如写入缓冲器的附加硬件资源,并且由于挂起的写入脉冲可能不保证将正确的数据写入,所以可能对诸如PCM、RRAM和MRAM的非易失性存储器的某些类型是不可能的。
可以使用下面的实施例来解决命令冲突问题并且由此改善来自主机50的读取/写入命令的瓦片时延。总体上,这些实施例由使用逻辑瓦片组向主机50报告每个瓦片组的就绪/繁忙状态而利用就绪/繁忙指示符的简化管理的优点。在一个实施例中,主机50可以将读取/写入命令仅调度到就绪的瓦片组,因而这些命令可以在就绪的瓦片组之中并行执行。换言之,通过发布具有不同组ID的多个读取/写入命令,可以从不同的物理瓦片组来一起服务每个命令,这提供了在给定的功率消耗限制下的更高性能。以这种方式,主机50可以通过不请求对繁忙的瓦片组的进一步存储器存取来优化写入/读取调度。现将结合图5中的流程图500与图6的框图来呈现该实施例的说明。
如图5和6所示,在一个实施例中,储存系统100将多个瓦片组的繁忙状态告知主机50(行动510)。在提供瓦片组的繁忙状态中,储存系统100可以肯定地指示哪个瓦片组是繁忙的和哪个是就绪的(不繁忙的),或者储存系统100可以仅当瓦片组是繁忙的时指示,而主机50推断未被指示为繁忙的瓦片组是就绪的。储存系统100可以以任意合适的方式将多个瓦片组的繁忙状态告知主机50。例如,储存系统100可以通过将状态储存在储存系统100中供主机读取来将繁忙状态告知主机50。替代地,储存系统100可以以一些形式(例如,周期性地,响应于接收信息的特定请求,在接收给予主机50对其重新调度的机会的存储器存取命令之后,等)将繁忙信息发送到主机50。
在一个实施例中,储存系统100(例如控制器102、命令冲突避免模块111或一些其他组件)将每个瓦片组的就绪/繁忙指示符写入在储存系统100中的一个或多个主机可读取寄存器中。主机50可以在任意适当时间(例如,开机期间、闲置时间期间、要存取存储器104的任意时间等)存取/轮询(多个)寄存器。假定对寄存器的存取时间短于对非易失性存储器104的存取时间,主机50可以通过在寄存器中存取信息比如果将该信息储存在非易失性存储器104中更快。当然,可以将信息代替地储存在非易失性存储器104中或储存系统100的其他组件中。
通过关于瓦片组的繁忙状态的信息,主机50将知道哪个瓦片组是繁忙的和哪个瓦片组是自由的,并且可以将多个存储器存取指令调度到自由的瓦片组。在一个实施例中,主机50包含表格或其他数据结构,其将逻辑块地址(LBA)与瓦片组/存储器子阵列组ID相联系。通过这样的数据结构,鉴于从储存系统100得到的就绪/繁忙信息,主机50可以知道特定LBA的存储器存取请求中要包含哪个瓦片组ID。以这种方式,主机50可以发布逻辑瓦片组ID,控制器102将逻辑瓦片组ID映射到一些逻辑瓦片组(例如瓦片组A、B、C或D)。
通过将多个存储器存取命令调度到自由的瓦片组,可以立即执行命令(不同于将命令发送到繁忙的瓦片组,其中仅在对那个瓦片组的正在进行的命令完成之后才执行该命令)。在图7和8中的图示中示出了这个优点。图7示出了未使用该实施例的命令冲突避免方法的情况。在该示例中,主机50发送写入命令,之后是读取命令。这些两个命令碰巧映射到相同瓦片组(在该示例中,瓦片组C)。因此,当存取相同瓦片时,对瓦片组C的读取命令需要等待直到对瓦片组C的写入命令完成。整段时间,瓦片组A是空闲的,因此浪费了资源。
图8示出了使用该实施例的命令冲突避免方法的情况。在该示例中,主机50(从读取/繁忙指示符)知道瓦片组A和C两者都是自由的,所以主机50将具有标识符的写入命令发送给瓦片组C并且将具有标识符的读取命令发送给瓦片组A。这在图5中的行动520中示出(主机50发送多个读取/写入命令,各自具有不繁忙的瓦片组的不同瓦片组标识符)。作为响应,储存系统100(例如控制器102)与在瓦片组C执行写入命令并行地在瓦片组A中执行读取命令(图5中的行动530)。如将图7和图8比较所示,通过该实施例的命令冲突避免方法,利用瓦片组A和C两者,而在执行读取命令中不发生延迟。这提供了存储器资源的更高效使用,并且避免了命令执行中的延迟。
存在许多可以与这些实施例一起使用的替代方案。例如,一个替代实施例利用可以同时存取瓦片组内的瓦片的事实的优点。如上面所述的,当即使组中的一个瓦片是繁忙的时则认为整个瓦片组是繁忙的概念便于避免将全部瓦片的就绪/繁忙状态报告到主机50所需的带宽和资源。然而,储存系统100的控制器102将知道其正在存取哪个瓦片。因此,当对于命令由主机50指定给定的瓦片组时,控制器102将知道组中的哪个瓦片对于主机命令正在被存取,并且组中的哪些瓦片是自由的。控制器102则可以在自由的组中的瓦片中进行背景操作。以图9中呈现的示例示出了该概念。在图9中,主机50将读取/写入命令发送到全部就绪的瓦片组A-D,并且控制器102分别在瓦片3、4、8和13中执行这些命令。控制器102知道这些组的每一个中的其他瓦片对背景操作是自由的。因此,基于瓦片组内的命令历史,控制器102可以向具有与来自主机50的先前命令相同瓦片组ID的瓦片发布背景命令。在该示例中,控制器102在每个组中的两个自由的瓦片(这里分别地,瓦片0和1(瓦片组A)、瓦片6和7(瓦片组B)、瓦片9和10(瓦片组C)、瓦片12和15(瓦片组D))中将用于背景损耗均衡操作的数据交换。
在另一替代方案中,存储器104中的瓦片组中的一些或全部可以具有不同的存储器类型(例如,瓦片组A可以具有单级单元(SLC)、瓦片组B可以具有多级单元(MLC)、瓦片组C和D可以具有三级单元(TLC))。通过这样的混合配置,主机50可以确定哪个瓦片组适合于给定的读取/写入命令。例如,主机50可以对冷数据(即,具有相对低的期望存取频率的数据)使用TLC瓦片组,并且对热数据(即,具有相对高的期望存取频率的数据)使用SLC瓦片组。作为另一个示例,主机50可以将更多写入/读取操作分配到具有更高可靠性的瓦片组,这当主机50负责存储器104的损耗的全局管理时可以是有利的。
在另一个实施例中,基于与特定的瓦片组ID一起发送的读取/写入命令的历史,主机50可以将读取/写入命令连同特定的瓦片组ID一起发送。例如,如果主机50知道特定的瓦片组被存取很多,则其可以假定储存系统100可能需要很快在该瓦片组中进行损耗均衡操作。就此而言,即使认为该瓦片组是就绪/不繁忙的,主机50也可以避免对该瓦片组调度存储器存取操作。
最后,如上所述,可以使用任意适当类型的存储器。半导体存储器装置包含诸如动态随机存取存储器(“DRAM”)或静态随机存取存储器(“SRAM”)装置的易失性存储器装置,诸如电阻式随机存取存储器(“ReRAM”)、电力可擦除可编程只读存储器(“EEPROM”)、闪速存储器(其也可以认为是EEPROM的子集)、铁电式随机存取存储器(“FRAM”)和磁阻式随机存取存储器(“MRAM”)的非易失性存储器装置,以及能够存储信息的其他半导体元件。每种类型的存储器装置可以具有不同的配置。例如,闪速装置可以配置为NAND或NOR配置。
存储器装置可以由无源和/或有源元件以任意组合形成。作为非限制性的示例,无源半导体存储器元件包含ReRAM装置元件,在一些实施例中其包含诸如反熔丝、相变材料等的电阻率切换储存元件,并且可选择地包含诸如二极管等的转向元件。进一步作为非限制性的示例,有源半导体存储器元件包含EEPROM和闪速存储器装置元件,一些实施例中其包含含有电荷储存区域的元件,诸如浮置栅极、导电纳米颗粒、或电荷储存电介质材料。
可以配置多个存储器元件,使得它们串联连接或者使得每个元件单独地可存取。作为非限制性的示例,NAND配置的闪速存储器装置(NAND存储器)典型地含有串联连接的存储器元件。可以配置NAND存储器阵列,使得阵列由存储器的多个串构成,其中串由共用单个位线且作为组存取的多个存储器元件构成。替代地,可以配置存储器元件,使得每个元件是单独地可存取的,例如,NOR存储器阵列。NAND和NOR存储器配置是示例,并且存储器元件可以以其它方式配置。
位于基板内和/或之上的半导体存储器元件可以布置为二维或三维,诸如二维存储器结构或三维存储器结构。
在二维存储器结构中,半导体存储器元件布置在单个平面或单个存储器装置级中。典型地,在二维存储器结构中,存储器元件被布置在实质上平行于支承存储器元件的基板的主表面延伸的平面(例如,x-z方向上的平面)中。基板可以是晶片,存储器元件的层形成在晶片上或晶片中,或者基板可以是载体基板,其在存储器元件形成之后附接至存储器元件。作为非限制性的示例,基板可以包含诸如硅的半导体。
存储器元件可以以有序阵列(诸如以多个行和/或列)布置在单个存储器装置级中。然而,存储器元件可以排列为非规则或非正交的配置。存储器元件可以各自具有两个或更多个电极或者接触线,例如位线和字线。
布置三维存储器阵列,使得存储器元件占据多个平面或多个存储器装置级,从而形成三维的结构(即在x、y和z方向上,其中y方向实质上垂直于基板的主表面,且x方向和方向实质上平行于基板的主表面)。
作为非限制性的示例,三维存储器结构可以被垂直地布置为多个二维存储器装置级的堆叠体。作为另一个非限制性的示例,三维存储器阵列可以布置为多个垂直列(例如,实质上垂直于基板的主表面(即在y方向上)延伸的列),且每个列在每个列中具有多个存储器元件。列可以布置为二维配置(例如在x-z平面中),产生具有多个垂直堆叠的存储器平面上的元件的存储器元件的三维布置。三维的存储器元件的其他配置也可以构成三维存储器阵列。
作为非限制性的示例,在三维NAND存储器阵列中,存储器元件可以被耦接在一起以形成在单个水平(例如,x-z)存储器装置级内的NAND串。替代地,存储器元件可以被耦接在一起以形成跨越多个水平存储器装置级的垂直NAND串。可以设想其他的三维配置,其中一些NAND串在单个存储器级中含有存储器元件,而其他串含有跨越穿过多个存储器级的存储器元件。三维存储器阵列还可以设计为NOR配置和ReRAM配置。
典型地,在单片三维存储器阵列中,一个或多个存储器装置级形成在单个基板上方。可选地,单片三维存储器阵列还可以具有至少部分在单个基板内的一个或多个存储器层。作为非限制性的示例,基板可以包含诸如硅的半导体。在单片三维阵列中,构成阵列的每个存储器装置级的层典型地形成在阵列的下面的存储器装置级的层上。但是,单片三维存储器阵列的相邻的存储器装置级的层可以被共用或者具有在存储器装置级之间的中介层。
反之,二维阵列可以分开地形成然后封装在一起以形成具有存储器的多个层的非单片存储器装置。例如,可以通过在分开的基板上形成存储器级然后将存储器级相互叠置来构建非单片堆叠存储器。基板在堆叠前可以减薄或者从存储器装置级移除,但是由于最初在分开的基板上形成存储器装置级,得到的存储器阵列不是单片三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可以在分开的芯片上形成然后封装在一起,以形成堆叠芯片存储器装置。
存储器元件的操作和与存储器元件的通信典型地需要相关联的电路。作为非限制性的示例,存储器装置可以具有用于控制和驱动存储器元件以完成诸如编程和读取的功能的电路。该相关联的电路可以与存储器元件在相同的基板上和/或在分开的基板上。例如,用于存储器读取-写入操作的控制器可以位于分开的控制器芯片上和/或在与存储器元件相同的基板上。
本领域的技术人员将认识到,本发明不限于所描述的二维和三维结构,而是覆盖如本文所描述的并且如本领域技术人员所理解的本发明的精神和范围内的全部相关存储器结构。
前述的详细描述意图被理解为本发明可以采取的所选择的形式的说明,而不是作为本发明的限定。仅以下权利要求(包含全部等同)意图限定所要求保护的本发明的范围的。最后,应该注意的是,本文所描述的任意实施例的任意方面都可以单独使用或相互组合使用。
Claims (20)
1.一种储存系统,包括:
存储器,所述存储器包括组织为多个瓦片组的存储器的多个瓦片,其中当给定的瓦片组中的任意瓦片是繁忙的时,给定的瓦片组是繁忙的,其中当给定的瓦片正在进行包括读取操作和编程操作中的至少一者的命令的执行时,所述给定的瓦片是繁忙的;以及
控制器,所述控制器与所述存储器并与主机通信,其中所述控制器配置为:
将所述多个瓦片组中的每一个的状态指示符写入到对应的寄存器,其中相应瓦片组的所述状态指示符响应于所述相应瓦片组中的至少一个瓦片是繁忙的而指示所述相应瓦片组是繁忙的,使得响应于所述相应瓦片组中的任一瓦片正在进行所述读取操作和编程操作中的至少一者的执行,所述相应瓦片组是繁忙的;
将所述多个瓦片组的繁忙状态告知所述主机;
从所述主机接收多个命令,其中每个命令提供有不繁忙的瓦片组的不同瓦片组识别符;并且
执行所述多个命令,其中因为每个命令包括不繁忙的瓦片组的不同瓦片组标识符,所以并行地执行所述多个命令,并且其中所述控制器在由所述不同瓦片组标识符标识的所述瓦片组中的至少一些瓦片上执行背景命令。
2.根据权利要求1所述的储存系统,其中所述控制器配置为,通过将每个瓦片组的就绪/繁忙指示符写入在所述储存系统中的一个或多个主机可读取的寄存器中,将所述多个瓦片组的繁忙状态告知所述主机。
3.根据权利要求1所述的储存系统,其中执行所述多个命令致使至少一个瓦片组中一些而不是全部瓦片是繁忙的,并且其中所述控制器还配置为,在所述不繁忙的至少一个瓦片组中的瓦片中的至少一个中进行背景操作。
4.根据权利要求1所述的储存系统,其中所述存储器包括三维存储器。
5.根据权利要求1所述的储存系统,其中所述储存系统嵌入在所述主机中。
6.根据权利要求1所述的储存系统,其中所述储存系统可移除地连接到所述主机。
7.一种命令冲突避免的方法,所述方法包括:
在储存系统中接收多个存储器子阵列组的就绪/繁忙的信息,所述就绪/繁忙信息是基于在所述多个存储器子阵列组中的相应一个的对应的寄存器中写入的状态指示符,其中每个存储器子阵列组包括多个存储器子阵列,其中如果给定的存储器子阵列组中的至少一个存储器子阵列繁忙,则所述给定的存储器子阵列组繁忙,使得所述给定的存储器子阵列组响应于所述给定的存储器子阵列组中的任一存储器子阵列正在进行包括读取操作和编程操作中的至少一者的命令的执行而是繁忙的,并且其中相应存储器子阵列组的所述状态指示符响应于所述相应存储器子阵列组中的所述至少一个存储器子阵列是繁忙的而指示所述相应存储器子阵列组是繁忙的;
将多个存储器存取命令发送到所述储存系统,其中每个存储器存取命令连同就绪的存储器子阵列组的不同存储器子阵列组ID一起发送;以及
在所述存储器子阵列组中与所述不同存储器子阵列组ID相对应的至少一些存储器子阵列上执行背景命令。
8.根据权利要求7所述的方法,其中接收所述就绪/繁忙的信息包括从所述储存系统中的至少一个寄存器读取所述就绪/繁忙的信息。
9.根据权利要求7所述的方法,还包括通过使用数据结构来确定要连同给定的存储器存取命令一起发送哪个存储器子阵列组ID,所述数据结构将逻辑块地址与存储器子阵列组ID相关联。
10.根据权利要求7所述的方法,还包括基于发送到特定存储器子阵列组ID的存储器存取命令的历史,确定是否将存储器存取命令发送到所述特定存储器子阵列组ID。
11.根据权利要求7所述的方法,其中至少两个存储器子阵列组具有彼此不同的存储器类型,并且其中所述方法还包括基于适合于所述给定的存储器存取命令的存储器类型来确定要连同给定的存储器存取命令一起发送哪个存储器子阵列组。
12.根据权利要求11所述的方法,其中一个存储器类型具有比另一其他存储器类型更高的可靠性。
13.根据权利要求7所述的方法,其中所述多个存储器子阵列组中的至少一个包括三维存储器。
14.根据权利要求7所述的方法,其中由与所述储存系统通信的主机来进行所述接收和发送。
15.根据权利要求14所述的方法,其中所述储存系统嵌入在所述主机中。
16.根据权利要求14所述的方法,其中所述储存系统可移除地连接到所述主机。
17.一种储存系统,包括:
存储器;
用于将多个瓦片组中的每一个的状态指示符写入到对应的寄存器的构件,其中相应瓦片组的所述状态指示符响应于所述相应瓦片组中的至少一个瓦片是繁忙的而指示所述相应瓦片组是繁忙的,其中当给定的瓦片正在进行包括读取操作和编程操作中的至少一者的命令的执行时,所述给定的瓦片是繁忙的;
用于将所述存储器中的多个瓦片组的就绪/繁忙信息提供到主机的构件;
用于从所述主机接收多个命令的构件,其中每个命令与不繁忙的瓦片组的唯一瓦片组识别符相关联;
用于并行地执行所述多个命令的构件;以及
用于在由所述唯一瓦片组标识符标识的所述瓦片组中的至少一些瓦片上执行背景命令的构件。
18.根据权利要求17所述的储存系统,其中所述多个瓦片组中的至少一个包括三维存储器。
19.根据权利要求17所述的储存系统,其中所述储存系统嵌入在所述主机中。
20.根据权利要求17所述的储存系统,其中所述储存系统可移除地连接到所述主机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/590,789 | 2017-05-09 | ||
US15/590,789 US20180329815A1 (en) | 2017-05-09 | 2017-05-09 | Storage system and method for non-volatile memory command collision avoidance with explicit tile grouping |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108874303A CN108874303A (zh) | 2018-11-23 |
CN108874303B true CN108874303B (zh) | 2022-03-01 |
Family
ID=63962459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810225738.6A Active CN108874303B (zh) | 2017-05-09 | 2018-03-19 | 非易失性存储器命令冲突避免的储存系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20180329815A1 (zh) |
CN (1) | CN108874303B (zh) |
DE (1) | DE102018105871A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11126550B1 (en) * | 2017-09-01 | 2021-09-21 | Crossbar, Inc | Integrating a resistive memory system into a multicore CPU die to achieve massive memory parallelism |
US11099778B2 (en) * | 2018-08-08 | 2021-08-24 | Micron Technology, Inc. | Controller command scheduling in a memory system to increase command bus utilization |
US10606775B1 (en) | 2018-12-28 | 2020-03-31 | Micron Technology, Inc. | Computing tile |
US11194473B1 (en) * | 2019-01-23 | 2021-12-07 | Pure Storage, Inc. | Programming frequently read data to low latency portions of a solid-state storage array |
KR20200109682A (ko) * | 2019-03-14 | 2020-09-23 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 장치 및 그 동작 방법 |
US20210064368A1 (en) * | 2019-08-28 | 2021-03-04 | Micron Technology, Inc. | Command tracking |
US11474885B2 (en) * | 2020-04-07 | 2022-10-18 | Micron Technology, Inc. | Method for an internal command of a first processing core with memory sub-system that caching identifiers for access commands |
CN111562888B (zh) * | 2020-05-14 | 2023-06-23 | 上海兆芯集成电路有限公司 | 存储器自更新的调度方法 |
CN111459850B (zh) * | 2020-05-18 | 2023-08-15 | 北京时代全芯存储技术股份有限公司 | 记忆体装置以及运作方法 |
US11822793B2 (en) * | 2022-04-04 | 2023-11-21 | Western Digital Technologies, Inc. | Complete and fast protection against CID conflict |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104903842A (zh) * | 2012-12-31 | 2015-09-09 | 桑迪士克科技股份有限公司 | 用于在非易失性存储器中的异步裸芯操作的方法和系统 |
CN106610790A (zh) * | 2015-10-26 | 2017-05-03 | 华为技术有限公司 | 一种重复数据删除方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7657699B2 (en) * | 2005-11-09 | 2010-02-02 | Sandisk Il Ltd. | Device and method for monitoring operation of a flash memory |
CN101512496A (zh) * | 2005-11-09 | 2009-08-19 | 晟蝶以色列有限公司 | 用于监控闪存操作的设备和方法 |
US8074021B1 (en) * | 2008-03-27 | 2011-12-06 | Netapp, Inc. | Network storage system including non-volatile solid-state memory controlled by external data layout engine |
KR20130028349A (ko) * | 2011-09-09 | 2013-03-19 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템 및 그 데이터 저장 방법 |
JP6208997B2 (ja) * | 2012-07-12 | 2017-10-04 | 本田技研工業株式会社 | 燃料電池 |
US9335952B2 (en) * | 2013-03-01 | 2016-05-10 | Ocz Storage Solutions, Inc. | System and method for polling the status of memory devices |
US9218283B2 (en) * | 2013-12-02 | 2015-12-22 | Sandisk Technologies Inc. | Multi-die write management |
US10146448B2 (en) * | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US9703491B2 (en) * | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US20160162215A1 (en) * | 2014-12-08 | 2016-06-09 | Sandisk Technologies Inc. | Meta plane operations for a storage device |
US9921763B1 (en) * | 2015-06-25 | 2018-03-20 | Crossbar, Inc. | Multi-bank non-volatile memory apparatus with high-speed bus |
US9626312B2 (en) * | 2015-07-17 | 2017-04-18 | Sandisk Technologies Llc | Storage region mapping for a data storage device |
-
2017
- 2017-05-09 US US15/590,789 patent/US20180329815A1/en not_active Abandoned
-
2018
- 2018-03-14 DE DE102018105871.3A patent/DE102018105871A1/de not_active Withdrawn
- 2018-03-19 CN CN201810225738.6A patent/CN108874303B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104903842A (zh) * | 2012-12-31 | 2015-09-09 | 桑迪士克科技股份有限公司 | 用于在非易失性存储器中的异步裸芯操作的方法和系统 |
CN106610790A (zh) * | 2015-10-26 | 2017-05-03 | 华为技术有限公司 | 一种重复数据删除方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108874303A (zh) | 2018-11-23 |
DE102018105871A1 (de) | 2018-11-15 |
US20180329815A1 (en) | 2018-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108874303B (zh) | 非易失性存储器命令冲突避免的储存系统和方法 | |
CN110088724B (zh) | 使用控制器存储器缓冲区进行自适应提前完成发布的系统和方法 | |
US10037167B2 (en) | Multiple scheduling schemes for handling read requests | |
US10901620B2 (en) | Storage system and method for thin provisioning | |
US9870153B2 (en) | Non-volatile memory systems utilizing storage address tables | |
US9323657B1 (en) | Memory system and method for improving read latency of a high-priority partition | |
US10025536B2 (en) | Memory system and method for simplifying scheduling on a flash interface module and reducing latencies in a multi-die environment | |
US10095412B2 (en) | Memory system and method for improving write performance in a multi-die environment | |
US10713157B2 (en) | Storage system and method for improving read performance using multiple copies of a logical-to-physical address table | |
US9431120B1 (en) | Memory die and method for efficient use of data latches in serving mixed traffic loads | |
US9678684B2 (en) | Systems and methods for performing an adaptive sustain write in a memory system | |
US11086786B2 (en) | Storage system and method for caching a single mapping entry for a random read command | |
US10379781B2 (en) | Storage system and method for improved command flow | |
US11748027B2 (en) | Storage system and method for avoiding clustering of reads during a program suspend | |
US20220197557A1 (en) | Storage System and Method for Dual Fast Release and Slow Release Responses | |
US11847323B1 (en) | Data storage device and method for host buffer management | |
US9558009B1 (en) | Expedited find sector to decrease boot time | |
US11487449B2 (en) | Data storage device and method for enabling higher lane utilization in run time via device hints on workload patterns | |
US20240143227A1 (en) | Data Storage Device and Method for Reducing Flush Latency | |
US11550487B2 (en) | Data storage device and method for enabling endurance re-evaluation | |
US11429296B2 (en) | Storage system, host, and method for extended and imaginary logical-to-physical address mapping | |
US11544107B2 (en) | Storage system and method for multiprotocol handling | |
US20230409234A1 (en) | Data Storage Device and Method for Host Multi-Command Queue Grouping Based on Write-Size Alignment in a Multi-Queue-Depth Environment | |
US20230385068A1 (en) | Data Storage Device and Method for Storage-Class-Memory-Accelerated Boot Partition Optimization | |
US20240143509A1 (en) | Data Storage Device and Method for Handling Write Commands in Zoned Storage |
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 |