CN102736863A - 支持失序主机命令组块介质访问的非易失性半导体存储器模块 - Google Patents

支持失序主机命令组块介质访问的非易失性半导体存储器模块 Download PDF

Info

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
Application number
CN2012100998748A
Other languages
English (en)
Other versions
CN102736863B (zh
Inventor
D·S·苏里亚布迪
M-M·L·苏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western Digital Technologies Inc
Original Assignee
Western Digital Technologies Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Western Digital Technologies Inc filed Critical Western Digital Technologies Inc
Publication of CN102736863A publication Critical patent/CN102736863A/zh
Application granted granted Critical
Publication of CN102736863B publication Critical patent/CN102736863B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-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所述的方法,其中,所述存储器件包括闪存存储器件。
CN201210099874.8A 2011-04-06 2012-04-06 支持失序主机命令组块介质访问的非易失性半导体存储器模块 Active CN102736863B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111477256A (zh) * 2019-01-24 2020-07-31 西部数据技术公司 用于使用异步独立平面读取功能改善存储设备的性能的方法和系统

Families Citing this family (204)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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