CN102736863A - 支持失序主机命令组块介质访问的非易失性半导体存储器模块 - Google Patents
支持失序主机命令组块介质访问的非易失性半导体存储器模块 Download PDFInfo
- Publication number
- CN102736863A CN102736863A CN2012100998748A CN201210099874A CN102736863A CN 102736863 A CN102736863 A CN 102736863A CN 2012100998748 A CN2012100998748 A CN 2012100998748A CN 201210099874 A CN201210099874 A CN 201210099874A CN 102736863 A CN102736863 A CN 102736863A
- Authority
- CN
- China
- Prior art keywords
- chunk
- movable
- memory device
- dependence
- tabulation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及支持失序主机命令组块介质访问的非易失性半导体存储器模块。本发明公开一种非易失性半导体存储器模块,其包括存储器件和可操作耦合到存储器件的存储器控制器,其中存储器控制器可操作用于接收主机命令,将主机命令分离为包括含有至少一个逻辑块地址(LBA)的第一组块的一个或更多个组块,以及对照包括一个或更多个活动组块的活动组块一致性列表检查第一组块以确定第一组块是否是独立组块并准备被提交以访问存储器件,或者是否是依赖组块并且延迟访问存储器件直至相关联的依赖性被清除为止。
Description
技术领域
背景技术
可以采用非易失性半导体存储器(NVSM)模块作为计算机系统(例如,桌上型计算机、膝上型计算机、便携式计算机等)或者消费类装置(例如,音乐播放器、蜂窝电话、相机等)或者其它合适应用的大容量存储器。NVSM模块可以包括一个或更多个存储器件(诸如闪存存储器)和用于经包括I/O总线的通道访问每个存储器件的存储器控制器。存储器控制器可以接收命令,诸如来自主机的写命令或者读命令,并且向存储器件提交每个命令。当向存储器件提交写命令时,存储器控制器通过I/O总线传递地址和写数据。当提交读命令时,存储器控制器通过I/O总线传递地址,接着通过I/O总线接收读取的数据。
然而,主机可以通过相应的读命令和写命令对一个或更多个存储器件中的任意物理位置进行读取和写入。因此,存储器控制器负责确保全部命令按照主机指定的顺序在一个或更多个存储器件上执行。这通常通过使用基于命令的一致性方案来实现。然而,如果多个主机命令正在访问存储器件的公共物理区域,则基于命令的一致性方案要求按照命令被接收到的相同顺序逐个执行命令。
发明内容
附图说明
图1示出根据本发明实施例的非易失性半导体存储器模块,其包括可操作地耦合到多个存储器件的存储器控制器,其中所述存储器控制器包括一致性检查模块和缓冲器,该缓冲器包括活动组块一致性列表。
图2图解说明根据本发明实施例的活动组块一致性列表,其包括已经从先前接收的主机命令分离的活动组块。
图3是根据本发明实施例的流程图,其中主机命令被分离为一个或更多个组块,并且针对活动组块一致性列表中的先前接收的活动组块评估每个组块的依赖性。
图4是根据本发明实施例的流程图,其中检查存储器件中已经完成执行的每个活动组块的前向依赖性,并且如果检测到前向依赖性,则相关联的依赖活动组块被清除以提交用于存储器件访问。
具体实施方式
图1示出根据本发明实施例的非易失性存储器模块102,其包括N个存储器件1041-104N,每个存储器件包括存储器阵列106。在一个实施例中,每个存储器阵列106包括多个块,其中每个块包括被称为页的多个存储段。在读/写命令期间被访问的存储段可以包括任意适当大小,诸如一组页中的完整页或者部分页。
非易失性半导体存储器模块102还包括经相应通道1101-110N可操作地耦合到存储器件1041-104N中每个的存储器控制器108,其中每个通道包括用于在相关联的存储器件和存储器控制器108之间传递读/写数据的I/O总线。非易失性半导体存储器模块102可以包括存储器控制器108和存储器件1041-1041N的任意适当配置。在图1的实施例中,存储器件1041-104N中的每个包括适当的闪存(例如,NAND或者NOR闪存),并且存储器控制器包括闪存控制器。在一个实施例中,每个存储器件1041-104N可以包括例如相位变化随机存取存储器(PRAM)、电阻变化RAM(ReRAM)、磁阻RAM(MRAM)或者其它适当类型的非易失性半导体存储器。
在一个实施例中,存储器控制器108通过仿真可被主机系统使用标准磁盘驱动通信协议(例如,ATA协议)访问的磁盘驱动器来实现固态驱动器(SSD)。该实施例中的主机112可以包括单独的微处理器(例如,在桌上型或者膝上型计算机中),其通过适当接口(例如串行或者并行ATA)与SSD通信。在替代实施例中,非易失性半导体存储器模块2可以在消费类装置(例如相机或者蜂窝电话)中实现。
在一个实施例中,非易失性半导体存储器模块102是用混合驱动器中的硬盘驱动器(HDD)实现的,其中存储器控制器108使用一个接口(例如,嵌入式多媒体卡(eMMC)、通用闪存存储器(UFS)或者开放NAND闪存接口(ONFI)接口)经由桥与HDD通信。该实施例中的主机112可以使用另一个接口(例如串行ATA(SATA)或者串行附接SCSI(SAS)接口)与HDD通信。在一个实施例中,一个或更多个非易失性半导体存储器模块102被实现为具有存储装置中的桥,其中主机112经一个接口(例如SAS接口)与该桥通信,并且一个或更多个非易失性半导体存储器模块102中的每个经另一个接口(例如SATA接口)与该桥通信。
在图1的实施例中,存储器控制器108包括一致性检查模块114,该一致性检查模块可操作以将从主机112接收的每个命令分离为一个或更多个组块,其中每个组块具有与闪存的至少一个编程单元相对应的大小。在一个实施例中,该至少一个编程单元对应于闪存的页。在图1的实施例中,一致性检查模块114还可操作用于通过对照包括一个或更多个活动组块(即,已经从先前接收的主机命令分离但是未在存储器件1041-104N之一中完成执行的组块)的活动组块一致性表116检查每个块来确定当前主机命令中的每个组块是独立组块还是依赖组块。在图1的实施例中,活动组块一致性列表116被存储在缓冲器118中。在一个实施例中,活动组块一致性列表116被存储在一致性检查模块114中。在本发明的实施例中,一致性检查模块114还可操作用于从主机112接收命令(例如,读命令和写命令)。下面将结合图2的描述提供关于活动组块一致性列表的额外细节。
在本发明的实施例中,独立组块准备好被提交用于访问存储器件,而依赖组块被延迟访问存储器件直至相关联的依赖性被清除为止。在一个实施例中,当依赖组块所依赖的活动组块在存储器件中完成执行时,依赖组块的相关联的依赖性被清除。在一个实施例中,活动组块包括至少一个逻辑块地址(LBA)。在一个实施例中,活动组块包括八个LBA。
在图1的实施例中,存储器控制器108还包括可通信地耦合到一致性检查模块110的缓冲器118,其中缓冲器118存储已经在一致性检查模块110中从主机命令分离的组块。缓冲器118包括易失性存储器,诸如动态随机存取存储器(DRAM)或者静态随机存取存储器(SRAM)。在本发明的一个实施例中,缓冲器118从主机112接收命令(例如,读命令和写命令)。
在图1的实施例中,存储器控制器108还包括执行模块120,该执行模块可通信地耦合到缓冲器118并且可操作用于从缓冲器118接收组块并提交组块以访问适当的存储器件。在图1的实施例中,执行模块120包括执行队列122,该执行队列用于临时存储主机命令的组块,这些组块已经被清除以提交用于存储器件访问直至适当的存储器件变得可用为止。在图1的实施例中,执行模块120还包括状态块124,该状态块用于从存储器件1041-104N中的每个接收已经被提交用于存储器件访问的组块的状态(例如,组块完成指示)。在一个实施例中,执行队列122包括多个单独的执行队列,每个单独的执行队列经通道1101-110N之一可操作地耦合到存储器件1041-104N之一,其中每个单独的执行队列提供对仅仅一个存储器件的访问。在替代实施例中,执行队列122包括全局执行队列,用于为被清除以提交到存储器件1041-104N中任意一个的组块提供临时存储。
图2图解说明根据本发明实施例的活动组块一致性列表。在图2的活动组块一致性列表216中,活动组块0_0-0_5与命令A相关联,活动组块1_0-1_5与命令B相关联,活动组块2_0-2_2与命令C相关联,以及活动组块3_0-3_5与命令D相关联。在图2所示的示例中,用黑影标记独立组块,并且用缺少阴影标记依赖组块。在一个实施例中,当活动组块中的一个与另一个活动组块交叠时,在两个活动组块之间形成依赖性链路,其中当活动组块中一个的至少一个LBA与另一个活动组块中的至少一个LBA相同时两个活动组块之间发生交叠。在一个实施例中,活动组块是依赖的,因为它们与一个或更多个其它活动组块正在访问相同的逻辑组块号(LCN)。
在一个实施例中,用依赖性指针指示两个活动组块之间的依赖性,其中依赖性指针从交叠组块指到被交叠组块(即,依赖组块)。在一个实施例中,独立组块被清除以提交到存储器件之一,因为它(即独立组块)不具有与另一个活动组块的依赖性。相反地,依赖组块必须等待被提交以对存储器件访问直至其依赖的活动组块在存储器件中完成执行并且与完成的活动组块的依赖性链路被清除。
在图2的实施例中,依赖性指针218指示活动组块3_1依赖于活动组块0_0,依赖性指针220指示活动组块1_0依赖于活动组块0_3,并且依赖性指针222指示活动组块3_4依赖于活动组块1_0。在图2的活动组块一致性列表216中,形成例如在活动组块0_0和3_1之间,活动组块0_3和1_0之间,以及活动组块1_0和3_4之间的依赖性链路。在图2的实施例中,独立组块3_0、0_0-0_5、1_3-1_5和2_0-2_2被清除以提交用于访问存储器件,而依赖组块3_1-3_5和1_0-1_2必须各自等待提交用于存储器件访问直至与另一个活动组块的相关联的依赖性链路被清除为止。在图2的实施例中,在命令C之前从主机接收命令B。然而,来自命令C的独立组块2_0-2_2被清除用于存储器件访问,而来自命令B的依赖组块1_0-1_2必须等待被提交用于存储器件访问直至来自命令A的相应独立组块0_3-0_5在存储器件中完成执行为止。因而,本发明的实施方式使得独立组块能够被失序地提交用于存储器件访问。
在一个实施例中,每个活动组块具有包括依赖性指针条目和状态指示的结构。在一个实施例中,组块状态指示可以是例如活动的、不活动、等待、读取或者写入。在一个实施例中,当两个活动组块交叠时,在这些活动组块之间形成依赖性链路,并且在相对于另一个活动组块独立的活动组块中的依赖性指针条目中标记依赖性指针。当独立组块在存储器件中完成执行时,依赖性链路被清除,因而触发依赖组块被提交用于存储器件访问。例如,在图2的活动组块列表216中,由于活动组块0_0交叠活动组块3_1,所以在活动组块0_0和活动组块3_1之间形成依赖性链路,并且在活动组块0_0的结构中的依赖性指针条目中标记依赖性指针218。当活动组块0_0在存储器件中完成执行时,依赖性链路被清除,因而触发活动组块3_1被提交用于存储器件访问。
在一个实施例中,在与主机命令相关联的每个活动组块在存储器件中完成执行之后,与该主机命令相关联的全部活动组块被从活动组块列表中去除。例如,在图2中的活动组块列表216中,当与主机命令A相关联的活动组块0_0-0_5已经在存储器件中各自完成执行时,活动组块0_0-0_5全部被从活动组块列表216中去除。
在图2的活动组块一致性列表216中,活动组块根据增加的LCN被水平地排序,并且根据进入活动组块列表216的时间被竖直地排序。因而,与命令D相关联的活动组块3_0-3_5是活动组块一致性列表216中的最新活动组块,而与命令A相关联的活动组块0_0-0_5是活动组块列表216中的最老活动组块。在一个实施例中,当在一致性检查模块114(图1)中将新主机命令分离为一个或更多个组块时,对照活动组块列表中的每个活动组块从最近的到最老的活动组块检查每个组块的依赖性。当被交叠的活动组块被标识时或者当全部活动组块已经被检查而没有标识被交叠的组块时,针对新主机命令中每个组块的依赖性检查结束。例如,在图2的活动组块一致性列表216中,首先对照活动组块3_0-3_5检查来自新主机命令的组块的依赖性,接着对照活动组块2_0-2_2检查,依次类推,直至标识了交叠组块或者到达活动组块列表216的末端为止。
图3是根据本发明的实施例由图1中的存储器控制器108执行的流程图,其中存储器控制器108从主机接收命令(步骤302),并且将主机命令(例如读命令或者写命令)分离为一个或更多个组块(步骤304)。在一个实施例中,每个组块具有与闪存的至少一个编程单元相对应的大小。在本发明的实施例中,该至少一个编程单元对应于闪存的页。对于每个组块,存储器控制器108对照活动组块一致性列表检查组块(步骤306),并且确定该组块是否是依赖组块(步骤308)。在一个实施例中,活动组块一致性列表包括一个或更多个活动组块,其中每个活动组块与先前接收的主机命令(例如读命令或者写命令)相关联,并且其中“活动”组块是指在存储器件中未完成执行的组块。在一个实施例中,按照从最新到最老活动组块的顺序对照活动组块一致性列表中的每个活动组块检查当前主机命令的每个组块,直至被交叠的活动组块被标识或者已经检查了列表中的全部活动组块,其中当每个组块中至少一个LBA相同时两个组块交叠。如果在活动组块一致性列表中找到被交叠的活动组块,则正被检查的当前组块被标识为依赖组块。在一个实施例中,在交叠的活动组块和当前组块之间建立依赖性链路,并且在交叠的活动组块的结构中的条目中标记依赖性指针。
在图3所示的本发明的实施例中,如果正被检查依赖性的当前组块被确定为是依赖组块,则存储器控制器108存储该依赖组块并且延迟提交用于访问存储器件直至依赖性被清除为止(步骤310)。在一个实施例中,依赖组块被存储在缓冲器118中(图1)。在一个实施例中,在链接到依赖组块的活动组块已经在存储器件中完成执行并且先前在这两个组块之间形成的依赖性链路被清除之后,清除依赖性。如果正被检查依赖性的当前组块被确定为是独立组块,则存储器控制器108将该独立组块发送到执行队列120(图1)以提交到存储器件1041-104N之一(图1)(步骤312)。在图3的实施例中,当存储器件可用时,存储器控制器108将独立组块提交到存储器件(步骤314)。在图3的本发明的实施例中,步骤306、308、310、312和314被存储器控制器108针对当前主机命令中的每个组块适当地重复。
图4是根据本发明的实施例由图1中的存储器控制器108执行的流程图,其中当活动组块在图1的存储器件104中完成执行时(步骤402),存储器控制器108在活动组块一致性列表中将该活动组块标记为已完成(步骤404),并且检查已完成的活动组块的前向依赖性(步骤406)。在一个实施例中,前向依赖性由在完成的活动组块中的依赖性指针条目中标记的依赖性指针指示,其中依赖性指针指示依赖于完成的活动组块的活动组块。
在图4的实施例中,如果前向依赖性检查指示前向依赖性,则存储器控制器108清除相关联的依赖组块以提交到存储器件(步骤408),将清除了依赖性的活动组块发送到执行队列(步骤410),并且当存储器件可用时将清除了依赖性的活动组块提交到存储器件(步骤412)。在一个实施例中,通过清除先前在相关联的依赖活动组块和完成的活动组块之间形成的依赖性链路,相关联的依赖组块被清除以提交到存储器件。在一个实施例中,完成的活动组块中的依赖性指针指示相关联的依赖组块将被清除用于存储器件提交。
在图4的实施例中,如果在完成的活动组块中不指示前向依赖性(步骤406),或者指示前向依赖性并且相关联的依赖组块被提交到存储器件用于执行(步骤412),则存储器控制器108确定完成的活动组块是否是相关联的主机命令中要完成的最后活动组块(步骤414)。如果完成的活动组块被确定为相关联的主机命令中要完成的最后活动组块,则存储器控制器108从活动组块一致性列表中去除相关联的主机命令中的全部活动组块(步骤416)。然而,如果完成的活动组块不是相关联的主机命令中要完成的最后活动组块,则存储器控制器108在活动组块一致性列表中保留完成的活动组块直至相关联的主机命令中的全部剩余的(若干)活动组块在存储器件中完成执行为止。
应注意的是在图3和图4的流程图中示出步骤的具体顺序以图解说明本发明的各个方面。在其它实施例中,可以按照不同顺序执行图3和图4中的流程图中的步骤。
非易失性半导体存储器模块102(图1)中的存储器控制器108可以包括任意适当电路,诸如一个或更多个集成电路。在一个实施例中,存储器控制器108包括微处理器,该微处理器执行控制程序的代码片段以便实现上述流程图。替代地,或者除了微处理器之外,存储器控制器108可以包括用专用集成电路实现的状态机电路。
Claims (26)
1.一种非易失性半导体存储器模块,其包括:
存储器件;
可操作地耦合到所述存储器件的存储器控制器,所述存储器控制器可操作用于:
从主机接收命令;
将所述命令分离为一个或更多个组块,所述一个或更多个组块包括第一组块,所述第一组块包括至少一个逻辑块地址LBA;以及
对照包括一个或更多个活动组块的活动组块一致性列表检查所述第一组块以确定所述第一组块是否是独立组块并且准备提交用于访问所述存储器件,或者是否是依赖组块并且延迟访问所述存储器件直至相关联的依赖性被清除为止。
2.根据权利要求1所述的非易失性半导体存储器模块,其中,所述存储器控制器还可操作用于:
通过确定所述第一组块交叠所述活动组块一致性列表中的活动组块,确定所述第一组块是依赖组块;
在所述第一组块和被交叠的活动组块之间形成依赖性链路;以及
延迟提交所述第一组块用于访问所述存储器件直至所述依赖性链路被清除为止。
3.根据权利要求2所述的非易失性半导体存储器模块,其中,所述存储器控制器还可操作用于在被交叠的组块已在所述存储器件中完成执行之后清除所述依赖性链路。
4.根据权利要求2所述的非易失性半导体存储器模块,其中,所述存储器控制器还可操作用于在被交叠的活动组块中形成依赖性指针,以及其中在被交叠的活动组块已在所述存储器件中完成执行之后所述依赖性指针触发提交所述第一组块用于访问所述存储器件。
5.根据权利要求2所述的非易失性半导体存储器模块,其中,所述存储器控制器还可操作用于当所述第一组块中的至少一个LBA与所述活动组块中的至少一个LBA相同时确定所述第一组块和所述活动组块交叠。
6.根据权利要求2所述的非易失性半导体存储器模块,其中,所述存储器控制器包括缓冲器,以及其中所述控制器还可操作用于将所述第一组块存储在所述缓冲器中直至所述依赖性链路被清除为止。
7.根据权利要求1所述的非易失性半导体存储器模块,其中,所述活动组块一致性列表中的所述一个或更多个活动组块的每个没有在所述存储器件中完成执行。
8.根据权利要求1所述的非易失性半导体存储器模块,其中,所述一个或更多个组块还包括第二组块,其中所述第二组块包括至少一个LBA以及其中所述存储器控制器可操作用于:
通过确定所述第一组块交叠所述活动组块一致性列表中的活动组块,确定所述第一组块是依赖组块;
在所述第一组块和被交叠的活动组块之间形成依赖性链路;
延迟提交所述第一组块用于访问所述存储器件直至所述依赖性链路被清除为止;
通过确定所述第二组块不交叠所述活动组块一致性列表中的任何活动组块,确定所述第二组块是独立组块;以及
提交所述第二组块用于访问所述存储器件。
9.根据权利要求1所述的非易失性半导体存储器模块,其中,所述存储器控制器还可操作用于按照从最新到最旧活动组块的顺序对照所述活动组块一致性列表中的每个活动组块检查所述第一组块,直至被交叠的活动组块被标识或者全部活动组块已经被检查。
10.根据权利要求1所述的非易失性半导体存储器模块,其中,所述活动组块一致性列表中的所述一个或更多个活动组块的每个与先前接收的主机命令相关联。
11.根据权利要求1所述的非易失性半导体存储器模块,其中,所述第一组块具有与闪存的至少一个编程单元相对应的大小。
12.根据权利要求11所述的非易失性半导体存储器模块,其中,所述至少一个编程单元对应于闪存的页。
13.根据权利要求1所述的非易失性半导体存储器模块,其中,所述存储器件包括闪存存储器件。
14.一种操作包括存储器件的非易失性半导体存储器模块的方法,所述方法包括:
从主机接收命令;
将所述命令分离为一个或更多个组块,所述一个或更多个组块包括第一组块,所述第一组块包括至少一个逻辑块地址;以及
对照包括一个或更多个活动组块的活动组块一致性列表检查所述第一组块以确定所述第一组块是否是独立组块并且准备提交用于访问所述存储器件,或者是否是依赖组块并且延迟访问所述存储器件直至相关联的依赖性被清除为止。
15.根据权利要求14所述的方法,还包括:
通过确定所述第一组块交叠所述活动组块一致性列表中的活动组块,确定所述第一组块是依赖组块;
在所述第一组块和被交叠的活动组块之间形成依赖性链路;以及
延迟提交所述第一组块用于访问所述存储器件直至所述依赖性链路被清除为止。
16.根据权利要求15所述的方法,还包括在被交叠的组块在所述存储器件中已经完成执行之后清除所述依赖性链路。
17.根据权利要求15所述的方法,还包括在被交叠的活动组块中形成依赖性指针,以及其中所述依赖性指针在被交叠的活动组块已在所述存储器件中完成执行之后触发提交所述第一组块用于访问所述存储器件。
18.根据权利要求15所述的方法,还包括当所述第一组块中的至少一个逻辑块地址与所述活动组块中的至少一个逻辑块地址相同时确定所述第一组块和所述活动组块交叠。
19.根据权利要求15所述的方法,还包括将所述第一组块存储在缓冲器中直至所述依赖性链路被清除为止。
20.根据权利要求14所述的方法,其中,所述活动组块一致性列表中的所述一个或更多个活动组块的每个没有在所述存储器件中完成执行。
21.根据权利要求14所述的方法,其中,所述一个或更多个组块还包括第二组块,其中所述第二组块包括至少一个逻辑块地址,所述方法还包括:
通过确定所述第一组块交叠所述活动组块一致性列表中的活动组块,确定所述第一组块是依赖组块;
在所述第一组块和被交叠的活动组块之间形成依赖性链路;
延迟提交所述第一组块用于访问所述存储器件直至所述依赖性链路被清除为止;
通过确定所述第二组块不交叠所述活动组块一致性列表中的任何活动组块,确定所述第二组块是独立组块;以及
提交所述第二组块用于访问所述存储器件。
22.根据权利要求14所述的方法,还包括:按照从最新到最老活动组块的顺序对照所述活动组块一致性列表中的每个活动组块检查所述第一组块,直至被交叠的活动组块被标识或者全部活动组块已经被检查。
23.根据权利要求14所述的方法,其中,所述活动组块一致性列表中的所述一个或更多个活动组块的每个与先前接收的主机命令相关联。
24.根据权利要求14所述的方法,其中,所述第一组块具有与闪存的至少一个编程单元相对应的大小。
25.根据权利要求24所述的方法,其中,所述至少一个编程单元对应于闪存的页。
26.根据权利要求14所述的方法,其中,所述存储器件包括闪存存储器件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/080,800 US8769232B2 (en) | 2011-04-06 | 2011-04-06 | Non-volatile semiconductor memory module enabling out of order host command chunk media access |
US13/080,800 | 2011-04-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102736863A true CN102736863A (zh) | 2012-10-17 |
CN102736863B CN102736863B (zh) | 2017-06-23 |
Family
ID=46966998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210099874.8A Active CN102736863B (zh) | 2011-04-06 | 2012-04-06 | 支持失序主机命令组块介质访问的非易失性半导体存储器模块 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8769232B2 (zh) |
CN (1) | CN102736863B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111477256A (zh) * | 2019-01-24 | 2020-07-31 | 西部数据技术公司 | 用于使用异步独立平面读取功能改善存储设备的性能的方法和系统 |
Families Citing this family (204)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9176859B2 (en) | 2009-01-07 | 2015-11-03 | Siliconsystems, Inc. | Systems and methods for improving the performance of non-volatile memory operations |
US10079048B2 (en) | 2009-03-24 | 2018-09-18 | Western Digital Technologies, Inc. | Adjusting access of non-volatile semiconductor memory based on access time |
US9753847B2 (en) | 2009-10-27 | 2017-09-05 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping |
US8782327B1 (en) | 2010-05-11 | 2014-07-15 | Western Digital Technologies, Inc. | System and method for managing execution of internal commands and host commands in a solid-state memory |
US9026716B2 (en) | 2010-05-12 | 2015-05-05 | Western Digital Technologies, Inc. | System and method for managing garbage collection in solid-state memory |
US8959284B1 (en) | 2010-06-28 | 2015-02-17 | Western Digital Technologies, Inc. | Disk drive steering write data to write cache based on workload |
US9058280B1 (en) | 2010-08-13 | 2015-06-16 | Western Digital Technologies, Inc. | Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time |
US8769190B1 (en) | 2010-09-15 | 2014-07-01 | Western Digital Technologies, Inc. | System and method for reducing contentions in solid-state memory access |
US8788779B1 (en) | 2010-09-17 | 2014-07-22 | Western Digital Technologies, Inc. | Non-volatile storage subsystem with energy-based performance throttling |
US9164886B1 (en) | 2010-09-21 | 2015-10-20 | Western Digital Technologies, Inc. | System and method for multistage processing in a memory storage subsystem |
US9021192B1 (en) | 2010-09-21 | 2015-04-28 | Western Digital Technologies, Inc. | System and method for enhancing processing of memory access requests |
US9069475B1 (en) | 2010-10-26 | 2015-06-30 | Western Digital Technologies, Inc. | Hybrid drive selectively spinning up disk when powered on |
US8700950B1 (en) | 2011-02-11 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for data error recovery in a solid state subsystem |
US8700951B1 (en) | 2011-03-09 | 2014-04-15 | Western Digital Technologies, Inc. | System and method for improving a data redundancy scheme in a solid state subsystem with additional metadata |
US9361044B2 (en) | 2011-03-28 | 2016-06-07 | Western Digital Technologies, Inc. | Power-safe data management system |
US8898373B1 (en) | 2011-06-29 | 2014-11-25 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US9195530B1 (en) | 2011-09-06 | 2015-11-24 | Western Digital Technologies, Inc. | Systems and methods for improved data management in data storage systems |
US8713357B1 (en) | 2011-09-06 | 2014-04-29 | Western Digital Technologies, Inc. | Systems and methods for detailed error reporting in data storage systems |
US8700834B2 (en) * | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US8707104B1 (en) | 2011-09-06 | 2014-04-22 | Western Digital Technologies, Inc. | Systems and methods for error injection in data storage systems |
US9268701B1 (en) | 2011-11-21 | 2016-02-23 | Western Digital Technologies, Inc. | Caching of data in data storage systems by managing the size of read and write cache based on a measurement of cache reliability |
US8977804B1 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Varying data redundancy in storage systems |
US8959416B1 (en) | 2011-12-16 | 2015-02-17 | Western Digital Technologies, Inc. | Memory defect management using signature identification |
US9348741B1 (en) | 2011-12-19 | 2016-05-24 | Western Digital Technologies, Inc. | Systems and methods for handling write data access requests in data storage devices |
US9053008B1 (en) | 2012-03-26 | 2015-06-09 | Western Digital Technologies, Inc. | Systems and methods for providing inline parameter service in data storage devices |
US8966205B1 (en) | 2012-05-10 | 2015-02-24 | Western Digital Technologies, Inc. | System data management using garbage collection and hybrid self mapping |
US8984247B1 (en) | 2012-05-10 | 2015-03-17 | Western Digital Technologies, Inc. | Storing and reconstructing mapping table data in a data storage system |
US9977612B1 (en) | 2012-05-11 | 2018-05-22 | Western Digital Technologies, Inc. | System data management using garbage collection and logs |
US9170932B1 (en) | 2012-05-22 | 2015-10-27 | Western Digital Technologies, Inc. | System data storage mechanism providing coherency and segmented data loading |
US8954653B1 (en) | 2012-06-26 | 2015-02-10 | Western Digital Technologies, Inc. | Mechanisms for efficient management of system data in data storage systems |
US8924832B1 (en) | 2012-06-26 | 2014-12-30 | Western Digital Technologies, Inc. | Efficient error handling mechanisms in data storage systems |
US8966343B2 (en) | 2012-08-21 | 2015-02-24 | Western Digital Technologies, Inc. | Solid-state drive retention monitor using reference blocks |
US9507523B1 (en) | 2012-10-12 | 2016-11-29 | Western Digital Technologies, Inc. | Methods, devices and systems for variable size logical page management in a solid state drive |
US9489296B1 (en) | 2012-10-17 | 2016-11-08 | Western Digital Technologies, Inc. | Methods, devices and systems for hardware-based garbage collection in solid state drives |
US8972826B2 (en) | 2012-10-24 | 2015-03-03 | Western Digital Technologies, Inc. | Adaptive error correction codes for data storage systems |
US9177638B2 (en) | 2012-11-13 | 2015-11-03 | Western Digital Technologies, Inc. | Methods and devices for avoiding lower page corruption in data storage devices |
US8954694B2 (en) | 2012-11-15 | 2015-02-10 | Western Digital Technologies, Inc. | Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive |
US9021339B2 (en) | 2012-11-29 | 2015-04-28 | Western Digital Technologies, Inc. | Data reliability schemes for data storage systems |
US9059736B2 (en) | 2012-12-03 | 2015-06-16 | Western Digital Technologies, Inc. | Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme |
US9032271B2 (en) | 2012-12-07 | 2015-05-12 | Western Digital Technologies, Inc. | System and method for lower page data recovery in a solid state drive |
US9619317B1 (en) | 2012-12-18 | 2017-04-11 | Western Digital Technologies, Inc. | Decoder having early decoding termination detection |
US9122625B1 (en) | 2012-12-18 | 2015-09-01 | Western Digital Technologies, Inc. | Error correcting code encoder supporting multiple code rates and throughput speeds for data storage systems |
US8966339B1 (en) | 2012-12-18 | 2015-02-24 | Western Digital Technologies, Inc. | Decoder supporting multiple code rates and code lengths for data storage systems |
US9214963B1 (en) | 2012-12-21 | 2015-12-15 | Western Digital Technologies, Inc. | Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system |
US8954655B2 (en) | 2013-01-14 | 2015-02-10 | Western Digital Technologies, Inc. | Systems and methods of configuring a mode of operation in a solid-state memory |
US8972655B2 (en) | 2013-01-21 | 2015-03-03 | Western Digital Technolgies, Inc. | Initialization of a storage device |
US9274966B1 (en) | 2013-02-20 | 2016-03-01 | Western Digital Technologies, Inc. | Dynamically throttling host commands to disk drives |
US9454474B2 (en) | 2013-03-05 | 2016-09-27 | Western Digital Technologies, Inc. | Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive |
US8924824B1 (en) | 2013-03-12 | 2014-12-30 | Western Digital Technologies, Inc. | Soft-decision input generation for data storage systems |
US9641378B1 (en) | 2013-03-12 | 2017-05-02 | Western Digital Technologies, Inc. | Adjustment of compression ratios for data storage |
US9280472B1 (en) | 2013-03-13 | 2016-03-08 | Western Digital Technologies, Inc. | Caching data in a high performance zone of a data storage system |
US8990668B2 (en) | 2013-03-14 | 2015-03-24 | Western Digital Technologies, Inc. | Decoding data stored in solid-state memory |
US9218279B2 (en) | 2013-03-15 | 2015-12-22 | Western Digital Technologies, Inc. | Atomic write command support in a solid state drive |
US9059742B1 (en) | 2013-03-15 | 2015-06-16 | Western Digital Technologies, Inc. | System and method for dynamic scaling of LDPC decoder in a solid state drive |
US9448738B2 (en) | 2013-03-15 | 2016-09-20 | Western Digital Technologies, Inc. | Compression and formatting of data for data storage systems |
US9335950B2 (en) | 2013-03-15 | 2016-05-10 | Western Digital Technologies, Inc. | Multiple stream compression and formatting of data for data storage systems |
US9013920B2 (en) | 2013-04-03 | 2015-04-21 | Western Digital Technologies, Inc. | Systems and methods of write precompensation to extend life of a solid-state memory |
US9123686B2 (en) | 2013-04-12 | 2015-09-01 | Western Digital Technologies, Inc. | Thermal management for solid-state drive |
US9338927B2 (en) | 2013-05-02 | 2016-05-10 | Western Digital Technologies, Inc. | Thermal interface material pad and method of forming the same |
US9195293B1 (en) | 2013-05-03 | 2015-11-24 | Western Digital Technologies, Inc. | User controlled data storage device power and performance settings |
US9081700B2 (en) | 2013-05-16 | 2015-07-14 | Western Digital Technologies, Inc. | High performance read-modify-write system providing line-rate merging of dataframe segments in hardware |
US9632926B1 (en) | 2013-05-16 | 2017-04-25 | Western Digital Technologies, Inc. | Memory unit assignment and selection for internal memory operations in data storage systems |
US9170938B1 (en) | 2013-05-17 | 2015-10-27 | Western Digital Technologies, Inc. | Method and system for atomically writing scattered information in a solid state storage device |
US9280200B1 (en) | 2013-05-20 | 2016-03-08 | Western Digital Technologies, Inc. | Automatic peak current throttle of tiered storage elements |
US9740248B2 (en) | 2013-06-07 | 2017-08-22 | Western Digital Technologies, Inc. | Component placement within a solid state drive |
US9274978B2 (en) | 2013-06-10 | 2016-03-01 | Western Digital Technologies, Inc. | Migration of encrypted data for data storage systems |
US9436630B2 (en) | 2013-06-11 | 2016-09-06 | Western Digital Technologies, Inc. | Using dual phys to support multiple PCIe link widths |
US9830257B1 (en) | 2013-06-12 | 2017-11-28 | Western Digital Technologies, Inc. | Fast saving of data during power interruption in data storage systems |
US9665501B1 (en) | 2013-06-18 | 2017-05-30 | Western Digital Technologies, Inc. | Self-encrypting data storage device supporting object-level encryption |
US9304560B2 (en) | 2013-06-19 | 2016-04-05 | Western Digital Technologies, Inc. | Backup power for reducing host current transients |
US9208101B2 (en) | 2013-06-26 | 2015-12-08 | Western Digital Technologies, Inc. | Virtual NAND capacity extension in a hybrid drive |
US9583153B1 (en) | 2013-06-28 | 2017-02-28 | Western Digital Technologies, Inc. | Memory card placement within a solid state drive |
US9042197B2 (en) | 2013-07-23 | 2015-05-26 | Western Digital Technologies, Inc. | Power fail protection and recovery using low power states in a data storage device/system |
US9141176B1 (en) | 2013-07-29 | 2015-09-22 | Western Digital Technologies, Inc. | Power management for data storage device |
US9070379B2 (en) | 2013-08-28 | 2015-06-30 | Western Digital Technologies, Inc. | Data migration for data storage device |
US9442668B1 (en) | 2013-08-29 | 2016-09-13 | Western Digital Technologies, Inc. | Adaptive power management control with performance feedback |
US9263136B1 (en) | 2013-09-04 | 2016-02-16 | Western Digital Technologies, Inc. | Data retention flags in solid-state drives |
US9304709B2 (en) | 2013-09-06 | 2016-04-05 | Western Digital Technologies, Inc. | High performance system providing selective merging of dataframe segments in hardware |
US9007841B1 (en) | 2013-10-24 | 2015-04-14 | Western Digital Technologies, Inc. | Programming scheme for improved voltage distribution in solid-state memory |
US10444998B1 (en) | 2013-10-24 | 2019-10-15 | Western Digital Technologies, Inc. | Data storage device providing data maintenance services |
US9330143B2 (en) | 2013-10-24 | 2016-05-03 | Western Digital Technologies, Inc. | Data storage device supporting accelerated database operations |
US8917471B1 (en) | 2013-10-29 | 2014-12-23 | Western Digital Technologies, Inc. | Power management for data storage device |
US9323467B2 (en) | 2013-10-29 | 2016-04-26 | Western Digital Technologies, Inc. | Data storage device startup |
US9286176B1 (en) | 2013-11-08 | 2016-03-15 | Western Digital Technologies, Inc. | Selective skipping of blocks in an SSD |
US9270296B1 (en) | 2013-11-13 | 2016-02-23 | Western Digital Technologies, Inc. | Method and system for soft decoding through single read |
US9529710B1 (en) | 2013-12-06 | 2016-12-27 | Western Digital Technologies, Inc. | Interleaved channels in a solid-state drive |
US9007854B1 (en) | 2013-12-09 | 2015-04-14 | Western Digital Technologies, Inc. | Method and system for optimized soft decoding in a data storage device |
US10140067B1 (en) | 2013-12-19 | 2018-11-27 | Western Digital Technologies, Inc. | Data management for data storage device with multiple types of non-volatile memory media |
US9036283B1 (en) | 2014-01-22 | 2015-05-19 | Western Digital Technologies, Inc. | Data storage device with selective write to a first storage media or a second storage media |
US9337864B1 (en) | 2014-01-29 | 2016-05-10 | Western Digital Technologies, Inc. | Non-binary LDPC decoder using binary subgroup processing |
US9250994B1 (en) | 2014-02-05 | 2016-02-02 | Western Digital Technologies, Inc. | Non-binary low-density parity check (LDPC) decoding using trellis maximization |
US9384088B1 (en) | 2014-02-24 | 2016-07-05 | Western Digital Technologies, Inc. | Double writing map table entries in a data storage system to guard against silent corruption |
US9354955B1 (en) | 2014-03-19 | 2016-05-31 | Western Digital Technologies, Inc. | Partial garbage collection for fast error handling and optimized garbage collection for the invisible band |
US9348520B2 (en) | 2014-03-24 | 2016-05-24 | Western Digital Technologies, Inc. | Lifetime extension of non-volatile semiconductor memory for data storage device |
US9268487B2 (en) | 2014-03-24 | 2016-02-23 | Western Digital Technologies, Inc. | Method and apparatus for restricting writes to solid state memory when an end-of life condition is reached |
US9448742B2 (en) | 2014-03-27 | 2016-09-20 | Western Digital Technologies, Inc. | Communication between a host and a secondary storage device |
US9564212B2 (en) | 2014-05-06 | 2017-02-07 | Western Digital Technologies, Inc. | Solid-state memory corruption mitigation |
US9690696B1 (en) | 2014-05-14 | 2017-06-27 | Western Digital Technologies, Inc. | Lifetime extension of memory for data storage system |
US9472222B2 (en) | 2014-05-16 | 2016-10-18 | Western Digital Technologies, Inc. | Vibration mitigation for a data storage device |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
US9275741B1 (en) | 2014-09-10 | 2016-03-01 | Western Digital Technologies, Inc. | Temperature compensation management in solid-state memory |
US9418699B1 (en) | 2014-10-09 | 2016-08-16 | Western Digital Technologies, Inc. | Management of sequentially written data |
US9405356B1 (en) | 2014-10-21 | 2016-08-02 | Western Digital Technologies, Inc. | Temperature compensation in data storage device |
US9823859B2 (en) | 2014-11-06 | 2017-11-21 | Western Digital Technologies, Inc. | Mechanical shock mitigation for data storage |
US9857995B1 (en) | 2015-03-09 | 2018-01-02 | Western Digital Technologies, Inc. | Data storage device and method providing non-volatile memory buffer for real-time primary non-volatile memory protection |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
KR102387460B1 (ko) | 2015-04-09 | 2022-04-15 | 삼성전자주식회사 | 데이터 저장 장치와 이의 작동 방법 |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US9785563B1 (en) | 2015-08-13 | 2017-10-10 | Western Digital Technologies, Inc. | Read command processing for data storage system based on previous writes |
KR102444694B1 (ko) * | 2015-08-26 | 2022-09-20 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US9668337B2 (en) | 2015-09-08 | 2017-05-30 | Western Digital Technologies, Inc. | Temperature management in data storage devices |
US9727261B2 (en) | 2015-09-24 | 2017-08-08 | Western Digital Technologies, Inc. | Weighted programming patterns in solid-state data storage systems |
US9836232B1 (en) | 2015-09-30 | 2017-12-05 | Western Digital Technologies, Inc. | Data storage device and method for using secondary non-volatile memory for temporary metadata storage |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US10013174B2 (en) | 2015-09-30 | 2018-07-03 | Western Digital Technologies, Inc. | Mapping system selection for data storage device |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
US9620226B1 (en) | 2015-10-30 | 2017-04-11 | Western Digital Technologies, Inc. | Data retention charge loss and read disturb compensation in solid-state data storage systems |
US10126981B1 (en) | 2015-12-14 | 2018-11-13 | Western Digital Technologies, Inc. | Tiered storage using storage class memory |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US10387303B2 (en) | 2016-08-16 | 2019-08-20 | Western Digital Technologies, Inc. | Non-volatile storage system with compute engine to accelerate big data applications |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
US10459644B2 (en) | 2016-10-28 | 2019-10-29 | Western Digital Techologies, Inc. | Non-volatile storage system with integrated compute engine and optimized use of local fast memory |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US10565123B2 (en) | 2017-04-10 | 2020-02-18 | Western Digital Technologies, Inc. | Hybrid logical to physical address translation for non-volatile storage devices with integrated compute module |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US10769062B2 (en) | 2018-10-01 | 2020-09-08 | Western Digital Technologies, Inc. | Fine granularity translation layer for data storage devices |
US10956071B2 (en) | 2018-10-01 | 2021-03-23 | Western Digital Technologies, Inc. | Container key value store for data storage devices |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
US10740231B2 (en) | 2018-11-20 | 2020-08-11 | Western Digital Technologies, Inc. | Data access in data storage device including storage class memory |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US12001355B1 (en) | 2019-05-24 | 2024-06-04 | Pure Storage, Inc. | Chunked memory efficient storage data transfers |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US11016905B1 (en) | 2019-11-13 | 2021-05-25 | Western Digital Technologies, Inc. | Storage class memory access |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
US11379151B2 (en) | 2020-03-31 | 2022-07-05 | Western Digital Technologies, Inc. | Flow control of large sequential host read commands based on a queue threshold |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11249921B2 (en) | 2020-05-06 | 2022-02-15 | Western Digital Technologies, Inc. | Page modification encoding and caching |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070109856A1 (en) * | 2005-11-08 | 2007-05-17 | Stmicroelectronics S.R.I | Method of managing fails in a non-volatile memory device and relative memory device |
US20090164729A1 (en) * | 2007-12-21 | 2009-06-25 | Ibm Corporation | Sync-id for multiple concurrent sync dependencies in an out-of-order store queue |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8452912B2 (en) | 2007-10-11 | 2013-05-28 | Super Talent Electronics, Inc. | Flash-memory system with enhanced smart-storage switch and packed meta-data cache for mitigating write amplification by delaying and merging writes until a host read |
US7222222B1 (en) * | 2003-06-20 | 2007-05-22 | Unisys Corporation | System and method for handling memory requests in a multiprocessor shared memory system |
US8078848B2 (en) | 2009-01-09 | 2011-12-13 | Micron Technology, Inc. | Memory controller having front end and back end channels for modifying commands |
US8321639B2 (en) * | 2009-12-30 | 2012-11-27 | Lsi Corporation | Command tracking for direct access block storage devices |
-
2011
- 2011-04-06 US US13/080,800 patent/US8769232B2/en active Active
-
2012
- 2012-04-06 CN CN201210099874.8A patent/CN102736863B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070109856A1 (en) * | 2005-11-08 | 2007-05-17 | Stmicroelectronics S.R.I | Method of managing fails in a non-volatile memory device and relative memory device |
US20090164729A1 (en) * | 2007-12-21 | 2009-06-25 | Ibm Corporation | Sync-id for multiple concurrent sync dependencies in an out-of-order store queue |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111477256A (zh) * | 2019-01-24 | 2020-07-31 | 西部数据技术公司 | 用于使用异步独立平面读取功能改善存储设备的性能的方法和系统 |
CN111477256B (zh) * | 2019-01-24 | 2023-03-24 | 西部数据技术公司 | 用于使用异步独立平面读取功能改善存储设备的性能的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
US20120260020A1 (en) | 2012-10-11 |
CN102736863B (zh) | 2017-06-23 |
US8769232B2 (en) | 2014-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102736863A (zh) | 支持失序主机命令组块介质访问的非易失性半导体存储器模块 | |
TWI694329B (zh) | 用於記憶體之針對性淨除之方法及設備 | |
US10372603B2 (en) | Handling of unaligned writes | |
TWI375151B (en) | A controller for one type of nand flash memory for emulating another type of nand flash memory and methods for the same | |
US8078848B2 (en) | Memory controller having front end and back end channels for modifying commands | |
US20200210309A1 (en) | Controller and operation method thereof | |
US9990146B2 (en) | Apparatus and method of data sequencing | |
US11269722B2 (en) | Apparatus for diagnosing memory system and operating method thereof | |
US20160140007A1 (en) | Storage device and operating method of the same | |
CN109656736A (zh) | 存储装置、计算系统及其调试方法 | |
TW201227506A (en) | Controller and method for performing background operations | |
TW201931366A (zh) | 資料儲存裝置以及非揮發式記憶體操作方法 | |
KR102495539B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
US11782840B2 (en) | Memory system, operation method thereof, and database system including the memory system | |
CN110910941B (zh) | 存储器系统及其操作方法 | |
CN110781023A (zh) | 用于在存储器系统中处理数据的设备和方法 | |
KR20180114649A (ko) | 복수의 프로세서를 포함하는 컨트롤러 및 컨트롤러의 동작방법 그리고 멀티 프로세서 시스템 | |
CN114625673A (zh) | 存储装置及其操作方法 | |
KR20180062065A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN110895449A (zh) | 用于在存储器系统中管理有效数据的装置和方法 | |
CN110928485B (zh) | 存储器系统及其操作方法 | |
US11681638B2 (en) | Method of synchronizing time between host device and storage device and system performing the same | |
WO2022225590A1 (en) | Cache based flow for a simple copy command | |
CN110825655A (zh) | 存储器件、存取数据的方法及管理数据的方法 | |
US8972650B2 (en) | Methods and systems for performing efficient page reads in a non-volatile memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1173539 Country of ref document: HK |
|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1173539 Country of ref document: HK |