CN104919431B - 配置固态存储器中操作模式的系统和方法 - Google Patents
配置固态存储器中操作模式的系统和方法 Download PDFInfo
- Publication number
- CN104919431B CN104919431B CN201480004813.6A CN201480004813A CN104919431B CN 104919431 B CN104919431 B CN 104919431B CN 201480004813 A CN201480004813 A CN 201480004813A CN 104919431 B CN104919431 B CN 104919431B
- Authority
- CN
- China
- Prior art keywords
- data
- pattern
- unit
- mlc
- slc
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
Abstract
本文公开了将控制器与NVM(非易失性存储器)存储系统进行配对的架构。NVM存储系统包括与控制器通信的桥设备。在一个实施例中,桥设备允许在闪存管芯中的某些数据单元(任意其他粒度的块、页面或单元):(1)被放置到防止进行数据访问的保留模式中,(2)响应于控制器命令而被分配到SLC(单级单元)模式或MLC(多级单元)模式中,(3)在分配模式后可用于数据访问。这一灵活性使得控制器能够基于运行时间条件而增加SLC模式或MLC模式数据单元。在一个实施例中,通过确保观察存储器供应商所强加的保证条件的方式执行对保留的数据单元的分配。
Description
技术领域
本公开涉及非易失性存储系统,包括但不限于闪存驱动器。更具体而言,本公开涉及用于固态驱动器中增强型控制器架构的系统和方法。
背景技术
存在用于控制闪存介质的各种类型的控制器架构。开放式NAND闪存接口(ONFI)是一种标准的接口,其规定闪存制造商应该支持的一些共同命令组。ONFI支持一些低级别基础I/O操作,这些操作包括例如页面写入/读取和块擦除。但是,有效的闪存介质管理通常涉及大量高级别和潜在地进程密集型功能,诸如逻辑-物理映射、垃圾收集、以及损耗均衡。这些功能超过了ONFI的范围,因此有效的控制器架构需要解决这些需求,同时为主机提供高级别的数据吞吐量性能。
附图说明
现在将结合附图来描述具体实现本发明的各种特征的系统和方法,在附图中:
图1A-1C示出了若干固态驱动器(SSD)控制器架构。
图1D是示出根据实施例的控制器架构的框图。
图2A和2B是示出根据一些实施例的控制器架构的框图。
图3是示出根据一个实施例的控制器和桥设备之间的命令处理部件的框图。
图4是示出根据一个实施例的桥设备如何响应来自控制器的模式配置命令的框图。
图5A和5B示出了根据一个实施例的数据单元的示例操作模式配置设定。
图6是示出根据一个实施例的配置数据单元的操作模式的过程的流程图。
图7A和7B示出根据各种实施例的用于数据单元的多个范围的示例操作模式配置设置。
图8A和8B示出根据各种实施例的跨多个存储器设备的示例配置。
具体实施方式
虽然描述了本发明的一些实施例,但这些实施例只是通过示例的方式给出,而并不意图限制本发明的范围。事实上,本文所描述的新颖的方法和系统可以以多种其它形式来实现。此外,在不背离本发明的精神的情况下,可以对本文所描述的方法和系统的形式进行各种省略、替换和改变。
I.控制器/桥设计
图1A-1C示出了多个SSD控制器架构。图1A示出了包括ONFI(开放式NAND闪存接口)接口的SSD控制器。ONFI接口是低级别的平行I/O接口,其提供基础命令支持以使得外部部件(例如主机控制器)能够控制NAND中的操作。图1A示出了典型的设置,其中诸如计算机的主机设备包括SSD控制器,而SSD控制器包括ONFI接口用于控制支持ONFI的非易失性存储器(NVM)单元。ONFI接口提供对操作(例如页面编程、页面读取、块擦除等)的一些基本级别的控制。当前版本的ONFI支持每管芯和平面一个命令,并通过命令(例如“多次读取”和“多次写入”命令)提供一些基本队列能力。然而,可以存在不混合的不同类型的命令。此外,命令被批处理,这意味着命令必须在能够接受更多命令之前完全清除队列。在该方案中的SSD控制器将执行高级别NVM管理功能,例如垃圾收集、损耗均衡、映射等。
图1B示出了替代方案,其中NVM耦合到桥控制器/设备,其执行NAND的某一级别的基本信道管理以及信号处理。桥可以向SSD控制器提供ONFI或ONFI等价接口。然而,该接口可以从标准ONFI接口修改,并可以支持额外的能力,例如支持多命令。在该设计中,SSD控制器扔执行高级别NAND管理功能,例如垃圾收集,并经由ONFI或ONFI等价接口与桥进行通信。
图1C描绘了第三种方案,其中NVM耦合到在存储系统中的桥。在该方案中,桥执行多个高级别NVM管理功能,例如垃圾收集、损耗均衡、以及映射,并执行较低级别的功能,例如信道管理和信号处理。存储系统通过高级别I/O接口(如,eMMC或UFS)耦合到主机设备。这在许多存储器卡产品中是常用设计。主机利用逻辑寻址向存储系统发送命令(例如,读取和写入命令)。可以支持诸如高级命令队列、健康报告、以及详细的错误报告的特征。
II.系统概览
图1D是示出根据本发明的一些实施例的控制器设计架构的框图。图1D示出了执行高级别NVM管理功能(例如,垃圾收集、损耗均衡等)的SSD控制器。在一个实施例中,SSD控制器通过高级别的高速接口(例如PCIe和eMMC)耦合到NVM存储系统。代替PCIe或eMMC,可以将其它标准化和/或专有接口扩展用作该总线接口。在一个实施例中,NVM存储系统包括桥,其经由高级别的高速接口与SSD控制器通信,并且利用低级别接口(例如ONFI)控制NAND存储器。如图所示,通过高级别接口可以支持诸如高级命令队列、健康报告、以及详细的错误报告的额外特征。
不像如上所述的设计,在该架构中的控制器通过复杂且快速的接口(例如PCIe)被提供有对于NVM的单独元件的一组丰富的物理级别控制(例如,页面级别控制)。可以观察到,在许多控制器-桥类型设计中,桥通常实现于由于功率问题而具有降低性能的处理器上,而控制器通常处于面对较少功率问题的环境中。如果处理器密集型功能转移到更高性能的控制器,那么能够减小整体时延。因此,在一些实施例中,控制器通常实现于较高功率的处理器中,其能够支持高级NVM管理功能。在另一方面,在一些实施例中,桥实现于较低功率的处理器中以最小化整体NVM存储模块/单元中的能量使用。因此,桥可以执行基本信号处理和NVM的信道管理,以及一些基本的错误校正功能和XOR奇偶性累加。在一些实施例中,控制器执行逻辑-物理地址映射、垃圾收集、损耗均衡、奇偶性管理(经由桥内的奇偶性累加器的控制)、RAID条带等。这种劳动分工仍然向控制器提供NVM的直接的物理(例如,页面级别)控制,导致控制器通过诸如PCIe的快速高级别接口在页面级别和块级别管理NVM。在一个实施例中的控制器还管理桥中的其它集成服务,例如XOR奇偶性累加。
在一个实施例中,该架构的管理任务划分的另一优点涉及NVM产业趋势。NVM的物理管理变得日益重要,这是因为大部分普通类型的NVM(例如,MLC(多级单元)NAND)继续发展从而以耐久性下降为代价提供更高的容量。例如,当今的具有5,000P/E周期耐久性的MLC产品由具有1,500-2,000P/E周期耐久性的下一代MLC产品所代替。通常,桥设计者能够最好地理解NVM的物理属性以及如何最好地通过实现各种耐久性增强/管理功能来扩展其生命。因为该快速变化的技术环境,以及因为每个个体NVM制造商可能要求不同的这种耐久性增强/管理功能,所以这些功能可能不断地需要微调以适合NVM产品的多样性和不断变化的品种。因此,一些实施例的架构通过隔离桥中的这些功能并允许控制器设计者聚焦于高级别数据管理功能,而提供其劳动分工的另一优点。换句话说,由于控制器和桥具有不同的设计制约和属性,所以在该架构下,每一者可以根据不同的时间表和方式进行更新,而不会导致整体的完全重新设计。
通过该设计提供的减少的时延,桥可以与较廉价的介质配对。例如,桥可以与MLCNAND而不是SLC(单级单元)NAND配对,同时仍然满足顾客所需要的性能标准。另外,在一些实施例中,上述控制器-桥设计能够适用于包括闪存和硬盘部件的混合驱动器中。在那些实施例中,控制器除了管理通过桥对NVM的数据访问外,还可以管理对一个或多个硬盘驱动器的数据访问。下面将通过各附图和本发明实施例的描述来进一步阐述该设计的附加特征。
II.A.控制器-桥实现方式
图2A示出了先前在图1D中介绍的控制器-桥架构的实施例。如图所示,固态非易失性存储系统120连接到主机系统110。主机系统110利用存储接口112与非易失性存储系统120通信。主机的存储接口112能够利用任意已知的通信协议(例如SATA、SCSI、SAS、USB、光纤通道、PCIe、eMMC等)与非易失性存储系统120通信。
在一个实施例中,非易失性存储系统120包括控制器130和NVM存储模块150。在一个实施例中,控制器130经由诸如PCIe的高级别接口(通过总线逻辑/接口140)与NVM存储模块150内的桥设备152通信。在一个实施例中使用PCIe,因为其定义了丰富的基于分组的路由和服务质量(QoS)基础设施并提供高速接口。控制器可以包括处理器136以控制数据功能,并且核心可以耦合静态存储器132和动态存储器134。控制器130还可以包括数据路径138,用于处理/转移与来自主机系统110的数据访问命令相关的数据。在一个实施例中,控制器130实现在SoC(片上系统)上,虽然本领域技术人员将认识到其它硬件/固件实现方式也是可以的。
在一个实施例中,使用PCIe意味着分配给设备功能的地址范围用于在交换结构上和在设备内的分组路由。在一个实施例中,PCIe事务层将分组递送到固件所读取的内部寄存器接口。高级设备通常将进入分组引导至内部RAM或硬件加速模块。
在一个实施例中,桥设备152包括总线逻辑/接口154,用于通过高级别接口总线与总线逻辑/接口140(在控制器130上)通信。在桥的另一端,桥设备152包括低级别接口158,例如ONFI,用于与NVM存储装置160(例如,NAND)通信,所述NVM存储装置160可以包括多个存储设备,例如闪存管芯162、164、166、以及168。虽然在该实施例中描述了ONFI,但也可以使用其它适当的闪存接口。在另一实施例中,桥可以使用不同的接口,例如Toggle或专用接口,来与NVM存储装置160通信,或向存储装置发送直接命令。
II.B.劳动分工
对NVM管理功能进行划分的优点已在上述II部分进行了概述。具体地,该架构减小了时延并解决了各种设计制约,同时允许控制器和桥设计者优化该架构的其相应部分。在一个实施例中,控制器负责块级别管理、奇偶性条带布局、垃圾收集、损耗均衡、处理读取干扰以及错误恢复。在一个实施例中,桥设备管理原始NVM闪存接口。还可以提供以下项中的一个或多个:命令队列、错误校正、XOR奇偶性累加器、数据保护,并增强块耐久性。在一个实施例中,桥和控制器之间的接口是轻量级的基于PCIe的数据和管理接口。控制器使用接口控制命令来配置桥和数据命令以访问NVM介质。
还应注意的是,控制器使用物理页面寻址代替现有控制器-桥设计中常用的逻辑页面寻址。桥能够识别页面、块、平面、以及管芯之间的关系。这给予控制器最大的灵活性以创建RAID条带布局、执行数据移动、以及处理不良块。这些细节从桥中提取出。当使用直接寻址时,控制器简单地在命令头中向桥提供一组直接页面地址。在一个实施例中,页面不必是连续的或甚至不必在同一块中。在大部分情况下,控制器将访问跨多个平面和多个管芯分散的页面,以便最大化并发硬件访问。
II.C.混合应用
控制器-桥架构的一些实施例能够适用于其它用途。例如,图2B显示了在混合驱动器122中控制器架构的使用,除了上述的NVM和桥部件外,混合驱动器122包括磁性存储模块180,其具有例如旋转硬盘驱动器(HDD)的磁性介质184。从而,在该实施例中的控制器130将管理对NVM存储模块150和磁性存储模块180的数据访问。在一个实施例中,与接口140(其连接到NVM)不同的接口可以用于将控制器130连接到磁性存储模块180。
混合应用示出了控制器架构的额外优点。混合驱动器通常包括SSD,SSD具有其自己的内部控制器,其具有映射表以在SSD内寻址NVM。虽然混合式的HDD部分通常直接寻址,但是混合控制器使用特别的映射表来确定数据是在SSD内还是HDD内。在于混合式的SSD部分中访问数据的情况下,使用该特别的映射表以及内部SSD映射表引进了加倍的开销,这是由于存在两个映射表并且存在与维护每个表相关联的显著成本。
相反地,因为本架构中的控制器130在块级别以及页面级别管理NVM以及磁性介质,所以可以在单个单元跨闪存介质和磁性介质提供一致的地址管理。因此,没有必要具有上述的两个表。这具有减少加倍表格查找以及与维护分开的映射表有关的所有相关联的成本/复杂性的优点。在统一映射方案中使用直接页面寻址。
另外,在混合应用中,即使在NVM具有大量不良块时(例如,50%),其仍旧能够提供有效的性能增强。在一个混合式实施例中,控制器还具有有效的地址间隙处理能力(在不良块所引起的间隙上)。在替代混合式实施例中,统一的寻址方案不必要求桥与控制器一起工作。控制器能够潜在地使用原始NVM接口(例如,ONFI)来访问NVM。
III.数据命令处理
图3是示出根据一个实施例的控制器和桥设备之间的命令处理部件的框图。利用PCIe接口(或其它等价接口)的构造,控制器和桥在能够被另一设备所寻址的其相应的设备存储器中实现其自己的地址空间(210、250)。在一个实施例中,通过写入位于地址空间内特定地址内的队列来传递消息,并且地址被存储于配置和状态寄存器252中。下面将进一步描述使用单独队列来处理数据访问命令并在控制器和桥之间进行通信。
III.A.命令和管理队列-桥
在一个实施例中,控制器将数据访问命令发送给桥设备中的命令队列262。这是通过控制器将数据命令消息发送给桥(通过写入命令队列BAR(基地址寄存器))而执行的。在一个实施例中,命令队列具有用于十六个消息的空间,虽然消息的数目在其它实施例中可以改变。命令队列可以以多种方式实现。一个选择是完全硬件自动化,其中控制器简单地写入固定偏移。可选的是可以利用环形缓冲区或基于阵列的链表实现在存储器中。在一个实施例中,实现方式必须允许具有最小总线通信量的有效插入和通知。在一个实施例中,控制器基于桥已经发送回的状态响应数目(例如,到控制器的完成队列的消息表示命令的完成)而知道当前队列深度。应该注意的是,数据命令比实际数据小得多。一旦桥发送回完成状态或错误报告,则认为在队列中给定的记录槽是可用的。
在图3所示的实施例中,桥侧250还实现配置和状态寄存器(CSR)252以及管理队列258,用于从控制器接收与命令队列的操作相关的命令消息(例如,用于暂停命令队列的消息)或通常与桥的操作相关的管理消息。管理队列258可以以类似于命令队列的方式实现,例如通过完全硬件自动化或环形缓冲区。另外,类似于命令队列,管理队列可以被配置用于以最小化的总线流通量进行有效的插入和通知。类似于命令队列,控制器能够基于来自桥的响应而导出当前队列深度和可用槽。
III.B.状态队列-控制器
在控制器侧210上是数据地址212处的一组数据端口214以及多个状态队列。在一个实施例中,状态队列包括错误队列218、信息队列222、以及命令完成队列226。这些队列负责从桥接收关于命令处理的消息以及桥和NVM的当前状态。
III.C.控制器和桥之间的通信
在一个实施例中,通过PCIe协议栈230影响控制器和桥之间的通信,所述PCIe协议栈230在两侧包括多层,包括事务层(232、242)、数据链路层(234、240)以及物理层(236、238)。虽然在本公开中使用PCIe来阐明控制器和桥的操作,但也可以使用其它类似标准。
PCIe事务层基于在其虚拟信道(VC)缓冲空间中剩余多少空间来分配传输信用。根据PCIe规范,设备必须实现VC0,尽管一些设备实现额外的VC来确保高优先级消息具有专用资源。分组基于其流量类型(TC)被引导至适当的VC。当分组在PCIe交换结构上流动时,TC还用于确定优先级。较高TC分组通常被根联合体、交换机和终端设备给予优先级。
在一个实施例中,控制器被设计为仅利用VC0进行操作。在一个实施例中,虽然桥可以实现额外的VC,但它必须是可配置的以能够在单个VC模式中操作。考虑以下对数据处理流程的简洁描述,能够更好地理解在控制器和桥之间通信的消息。为了服务来自主机的读取命令,控制器首先将命令消息发送给桥的命令队列。一旦桥处理命令消息,它将读取来自NVM的请求数据并将读取数据发送回控制器侧上对应的数据端口。这个动作触发了控制器上的数据路径,这导致数据被发送回主机。相反地,为了服务来自主机的写入命令,控制器可首先将命令消息发送给桥的命令队列。一旦桥处理命令消息,它将从控制器侧上的对应的数据端口进行读取。这个动作触发了控制器上的数据路径,这导致写入数据被从控制器中的缓冲区发送到桥以写入NVM。
在一个实施例中,控制器利用具有递增优先级的三种消息类型与桥进行通信:待写入NVM用于写入命令的数据(0),用于桥的命令队列的消息(1),以及用于桥的管理队列的消息(2)。本领域技术人员将认识到不同优先级可以被分配给这些消息,并且这些消息可以取决于实现方式而组合成更少类型或划分成更多类型。在一个实施例中,在正常条件下,控制器将稳定的数据分组流发送给桥。
在一个实施例中,桥利用其自己的一组优先化消息类型(在此以递增优先级列出)与控制器交互:从NVM读取的用于读取命令的数据(0),用于控制器的完成/信息队列的消息(1),以及用于控制器的错误队列的消息(2)。本领域的技术人员将认识到可以将不同优先级分配给这些消息,并且这些消息可以基于实现方式组合成更少类型或划分成更多类型。如下面将进一步描述的,为了促进数据访问命令的快速处理,桥对控制器中数据端口的读取或写入自动触发控制器中的数据路径。在一个实施例中,对于桥并行处理若干命令不是不常见的。在一个实施例中,当命令已经成功完成时,桥使用完成队列226来通知控制器。另外,非关键消息被发送给信息队列222,同时详细的错误报告被发送给错误队列218。在其它实施例中,这些队列可以组合成更少的队列(具有由特别标志或隐式地址值所区别的不同消息类型)或者分隔成更多队列(例如,用于不同类型错误的不同错误队列或者用于从桥返回的不同类型信息的不同信息队列)。
在使用不同于PCIe的接口的其它实施例中,PCIe协议栈可以由所述接口的适当堆栈/层替代。本领域技术人员将认识到其它等价标准化接口(例如,eMMC)可以适用于替代PCIe。在其它实施例中,可以使用定制/专用接口来处理控制器和桥之间的通信。
IV. SLC/MLC模式管理
所使用的一般类型的固态存储器是多级单元(MLC)NAND存储器,其通常能够在至少一个多级单元(MLC)模式或单级单元(SLC)模式中操作。在一个实施例中,上述NVM桥架构允许闪存管芯中的某些数据单元(任意其它粒度的块、页面或单元):(1)放置到防止数据访问的保留模式,(2)响应于控制器命令而分配到SLC模式或MLC模式,(3)在分配模式之后可用于数据访问。这种灵活性以多种方式增强了整个系统的功能,包括基于运行时间条件和/或产品配置而给予控制器增加SLC模式或MLC模式数据单元的方式。在一个实施例中,对保留数据单元的分配是通过确保观察外部约束(例如存储器供应商所强加的保证条件)的方式执行的。
IV.A.概述
图4是示出根据一个实施例的桥设备如何响应来自控制器的模式配置命令的框图。如先前所述,在一个实施例中,桥设备152与包括一个或多个闪存管芯的NVM存储装置160耦合。在一个实施例中,桥设备通过总线(例如,前述的PCIe总线)获得来自控制器130的命令,并在NVM存储装置160中执行数据访问命令。总线协议的类型并不局限于PCIe,在其它实施例中可以使用其它协议。桥设备152还可以知道如何延伸闪存管芯的寿命。
闪存管芯可以包括能够在MLC或SLC模式中操作的MLC单元。例如,在能够存储高达每单元2比特数据的MLC单元中,将块放置在SLC模式中将数据容量从每单元2比特减少到每单元1比特。在另一方面,在SLC模式中操作产生更好的编程/擦除(P/E)耐久性。由于存储器制造商强加的保证限制,MLC单元被设定为在存储设备到达使用字段之前在一个模式或另一模式中操作是常见的。在本公开中,术语MLC指的是能够存储每单元2比特或更多比特的存储器单元。在每单元多于2比特的实现方式中,存在若干级别的MLC模式,并且这里所公开的调整方法可应用于将单元分配在那些不同MLC级别处操作。例如,在每单元3比特模式可用的存储器中,可以对保留区域进行分配以在每单元3比特MLC模式、每单元2比特MLC模式、或SLC模式中操作。
本发明的一些实施例允许在需要时将某些存储器块放置在待由控制器130使用的保留区域中,用于以减小存储容量为成本而提高耐久性、性能和可靠性。一些例子包括管理高访问热点,并存储关键系统数据。不需要在存储设备的生命开始将保留块提交给MLC模式或SLC模式,并且控制器在生命过程中具有灵活性来选择分配多少。为此,在一个实施例中,桥设备提供允许控制器在运行时间将一个范围的保留数据单元放置到SLC或MLC模式的方法。例如,控制器能够通过发送一个或多个命令到桥设备来设定模式。例如,如果使用PCIe,则如图3所示的CSR 252能够用于允许通过在CSR内设定字段来通信命令。
在一个实施例中,使用两个寄存器字段来建立保留数据单元的范围:开始地址(例如min_slc_block)和结束地址(例如max_slc_block)。所述开始地址和结束地址定义了保留区域。在其它实施例中,控制器130能够直接通过一个或多个命令而不是使用寄存器(例如,利用诸如SATA的协议通过总线发送命令)表明保留区域的范围。
如图4的表400中所示,在一个实施例中,开始地址和结束地址值定义了三个区域402:SLC、保留、以及MLC。SLC区域和MLC区域能够被正常访问,如访问值406所表示的。保留区域的访问值表明其不能被访问以防止区域内的块被使用。应该注意的是,表400是一种意图示出概念的教导型例子,并且存储在寄存器中或被命令发送以实现相同配置的实际值或值的类型可以不同。
在一个实施例中,区域可以具有不同配置,这将在图7A和7B中进一步示出。在一个实施例中,配置应用于跨所有管芯的每个平面。在另一个实施例中,每个管芯或管芯的每个子集可能具有其自己的区域配置,如将在图8A和8B中进一步示出的。
IV.B.用于生长MLC或SLC区域的过程
图5A和5B示出了根据一个实施例的数据单元的示例性操作模式配置设定。图5A的图示1显示了地址范围的初始设置。该范围被划分成保留区域(0到SLC_Max)和MLC区域(SLC_Max+1到NAND_Max),其中SLC_Max和NAND_Max是范围中的地址。例如,在具有1024个数据块/数据单元的管芯中,SLC_Max可以是255,而NAND_Max可以是1023。在图示1的左侧是保留区域的边界值,具有开始地址(Min Block=0)和结束地址(Max Block=SLC_Max)。如上所述,桥设备防止访问保留区域内的数据单元。
为了改变保留区域的尺寸(相应地,相邻的非保留区域的尺寸),可以经由来自控制器的命令,或者经由桥设备中的寄存器值的设置,来改变开始地址值和结束地址值。在图示2中,开始地址(最小快)从0改变到30。在图示3中,相应地调整保留区域,从而其现在从30处开始。范围0到29中的数据单元现在分配给SLC区域(即,分配以在SLC模式中操作),并且现在启用数据访问。换句话说,SLC区域从0数据单元生长到30数据单元(0-29)。
IV.B.I访问启用选项
从图示2到图示3的转变可以以多种方式发生。在一个实施例中,在接收到来自控制器的用于将初始开始地址调整到新的开始地址的命令时,立即发生对新分配的数据单元(例如,图示2-3中的0-29)的数据访问。在其它实施例中,可以以直接或间接方式延迟对新分配的数据单元的数据访问。在一个实施例中,当接收到来自控制器的后来命令以激活访问时,直接启用访问。在另一实施例中,当接收到不是特别用于访问激活的后来命令时,间接启用访问。例如,可以是从控制器到新分配的数据单元之一的数据访问(如写入)命令。
在图示4中,保留区域的结束地址被调整(将最大块设定为80);在图示5中,MLC区域增长以包括先前在保留区域中的那些单元(80–SLC_Max)。与图示2到图示3的转变非常像,对新分配以在MLC模式中操作的那些数据单元的数据访问可以如上所述通过直接或间接机制以延迟方式立即被启用。
IV.B.II生长规律
应该注意的是,在一个实施例中,桥设备被配置为允许重复调整开始地址或结束地址以将保留区域中的数据单元分配给SLC或MLC区域。例如,响应于来自控制器的命令,桥设备可以连续调整到大于先前开始地址的新的开始地址(例如,图示2到图示3),并且在每次连续调整后,分配位于新的开始地址和先前开始地址之间的数据单元以在模式中操作,从而匹配与先前开始地址相邻的区域中数据单元的操作模式(在该例子中是SLC区域)。可以在MLC区域侧/结束地址侧进行相同的重复。应该注意的是,可以保留在这些图示中的布局,从而MLC区域可以处于较低地址范围,而SLC区域可以处于较高地址范围。
在一个实施例中,桥设备确保仅在减小保留区域的尺寸的方向上进行调整。换句话说,能够分配保留区域中的数据单元以在SLC或MLC模式中操作,从而适应相邻SLC或MLC区域的生长,但是来自相邻SLC或MLC区域的数据单元因为处于保留区域中而不被再指定。该过程允许存储器根据一些制造商所提出的规则(例如,保证协议)使用,在一旦模式已经被选择并且数据单元在所选择的模式中使用时,其阻止数据单元被重新设置为操作的不同模式。
IV.B.III重新设定选项
在一个实施例中,桥设备可选地允许这种操作模式的重新设定通过(例如基于来自控制器130的命令)执行的重新设定功能而发生。如图5B的图示6所示,保留区域的边界被重新设定。因此,先前分配以结合相邻区域的数据单元现在返回到保留区域中。例如,先前在图示3所示的已经被设定在SLC模式中操作的数据单元30现在是自由的,可以被重新分配在MLC模式中操作。
可选地,可以设定重新设定标志以表明这种重新设定已经发生。设定该标志将表明已经使诸如耐久性保证的操作约束无效。在一些例子中,对于测试/开发目的而言重新设定功能是有用的,但是在使用字段可能被禁用。
IV.B.IV生长摘要,示例性使用情况
在图6的流程图中总结了调整过程。所示的过程500可以由控制器和/或桥设备执行。在框504中,桥设备和/或控制器执行保留区域的初始设置(例如,设定边界等)。在框506和508中,保留区域中的数据单元可以被分配以在SLC或MLC模式中操作,以促进如图5A和5B中的例子所示的模式的相邻区域的生长。如流程图中所示,任意分配都可被以连续顺序或混合序列重复多次。可选地,可以在框510中执行重新设定,且可以在框512中设定重新设定标志。
在一个实施例中,MLC或SLC区域生长到保留区域受到阈值的限制。所以桥设备可以被配置为当超过根据制造商保证约束设定的阈值时不调整到新的开始地址。
由于相同存储设备中的固态存储器管芯在诸如耐久性和质量(如,所遭遇的读取错误)的各方面不同,所以保留区域允许控制器和/或桥设备调整在存储器管芯中遭遇的这种变化。例如,在一些实施例中,控制器和/或桥设备可以指定对应于被确定提供更强性能的物理存储器单元的数据单元处于SLC模式。可以保留这种数据单元以存储关键数据,例如系统数据或被认为对于提高访问时间和耐久性而言是关键的任意其它用户数据。作为具体的例子,一些存储系统硬编程某些数据单元处于SLC模式(例如,前10个存储器块)以存储诸如系统表的系统关键数据。与此相反,在一些实施例中,保留区域为每个控制器和/或桥设备在字段中提供如果控制器和/或桥设备在前10个存储器块中遭遇质量问题则移位存储系统关键数据的SLC区域的能力。在一些实施例中,控制器和/或桥设备可以指定对应于较高质量物理存储器单元的数据单元处于MLC模式,以抵消与SLC模式相对的MLC模式的固有的耐久性缺点。此外,保留区域还可以用于给予控制器和/或桥设备在系统损坏时调整整个系统的使用的机会。在又一实施例中,控制器和/或桥设备可以利用保留区域来设定SLC模式中的一个范围的数据单元,从而在系统处于低认知状态时(例如,当系统启动并且还未激活所有功能时)存储数据。这些功能允许控制器和/或桥设备响应于诸如使用模式、介质损耗、以及外部约束的条件而动态调谐存储器区域。
IV.C.变型
图7A和7B显示了根据各个实施例的用于多个范围的存储器单元的示例操作模式配置设定。图7A显示了保留区域可以在任意两个设定了操作模式(例如,MLC或SLC模式,或者两个不同的MLC模式,或者两个相同模式)的区域之间的一般配置。在图5A和5B中示出的配置是该一般配置的特定情况。如前在图5A所示的(图示1),保留区域初始可以开始于0地址。在一个实施例中,存储并相应地调整指示区域边界的值以分配保留区域的数据单元来适应相邻区域的生长。例如,在图7A的方案中,每个MLC/SLC非保留区域可以具有一对顶/底值表示其占据的地址范围。可选地或者另外地,可以保持保留区域的边界。
图7B显示了图7A的概念的延伸,其中跨地址范围存在多个保留区域并且保留区域彼此不相邻。每对顶/底值跟踪非保留区域的边界。可选地或另外地,可以保持保留区域的边界。图7B的非保留区域则可以灵活地生长以消耗到处分散的保留区域。
遍及地址范围使用保留区域在许多情况下是有用的。例如,存储设备可以配置为由多条总线访问,每条总线访问特定子范围。在这种场景下,每个子范围可以被分配一个或多个保留区域,从而这些区域所提供的灵活性可以提供给与总线相关联的单独控制器。更一般地,本文所描述的各种配置为任意控制器提供调整分配数据单元给MLC/SLC模式以适应其需要的能力。
图8A和8B示出了在不同实施例中可以使用的不同配置。图8A显示了所有管芯(或跨管芯的所有平面)共享相同配置从而跨管芯发生对保留区域边间的改变的实施例。图8B显示了允许每个管芯具有不同配置并被允许单独改变的实施例。在一些实施例中,管芯可以被划分为子集,其中在相同子集中的管芯共享相同的配置并当共享配置内的边界改变时以相同方式受到影响。
V.替代实施例;结论
如在该应用中使用的,“非易失性存储器”通常指的是诸如NAND闪存的固态存储器。然而,本公开的系统和方法在更多传统硬盘驱动器和包括固态和硬盘驱动器部件的混合驱动器中也是有用的。这样,虽然某些内部操作指的是那些通常与固态驱动器相关联的,例如“损耗均衡”和“垃圾收集”,但用于硬盘驱动器的类似操作也能够利用本公开的一些实施例。固态存储器可以包括多种技术,例如闪存集成电路、Chalcogenide RAM(C-RAM)、相变存储器(PC-RAM或PRAM)、可编程金属化单元RAM(PMC-RAM或PMCm)、Ovonic Unified Memory(OUM)、阻抗RAM(RRAM)、NAND存储器、NOR存储器、EEPROM、铁电存储器(FeRAM),或其它离散NVM(非易失性存储器)芯片。如本领域所公知的,固态存储设备(例如管芯)可以物理上划分为平面、块、页面、以及扇区。可以另外或可选地使用其它形式的存储装置(例如,配有电池的易失性DRAM或SRAM设备、磁盘驱动器等)。
虽然已经描述了本发明的某些实施例,但这些实施仅通过例子的方式表示出,并不意图限制本发明的范围。事实上,本文所描述的新颖的方法和系统可以以各种其它形式实现。此外,在不背离本发明的精神的情况下,可以做出以本文所描述的方法和系统形式的各种省略、替换和改变。随附的权利要求及其等价物意图覆盖这种形式或修改,视为落入本发明的范围和精神内。例如,图1D、2A、2B、3、以及4中所示出的各个部件可以实现为处理器、ASIC/FPGA上的软件和/或固件、或专用硬件。例如,本领域的技术人员将理解,在一些实施例中,图6中所示出的过程中所采取的实际步骤可以不同于图中所示。取决于实施例,上述例子中所描述的某些步骤可以被移除,可以添加其它步骤,并且步骤的顺序可以改变和/或并行执行。另外,以上公开的具体实施例的特征和属性可以以不同方式组合以形成附加的实施例,其所有都落入本公开的范围内。虽然本公开提供某些优选实施例和应用,但是对于本领域技术人员而言显而易见的其它实施例(包括未提供本文所阐述的所有特征和优点的实施例)也落入到本公开的范围内。因此,本公开的范围意图仅通过参考随附的权利要求而被定义。
Claims (44)
1.一种非易失性数据存储系统,包括:
控制器;
一个或多个固态存储器存储设备的阵列,所述存储器存储设备包括多个多级单元(MLC)存储器数据单元,所述多级单元(MLC)存储器数据单元能够在多级单元(MLC)模式和单级单元(SLC)模式中操作;以及桥设备,其与所述阵列耦合,所述桥设备被配置为:
在至少一些所述多级单元(MLC)存储器数据单元内定义第一区域和第二区域,其中:
所述第一区域包括在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作的数据单元;
所述第二区域包括被配置为被分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作的数据单元;
响应于来自所述控制器的命令,对所述第二区域中的数据单元进行分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作;以及
防止对所述第二区域中的所述数据单元进行数据访问,直到它们被分配为在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作。
2.如权利要求1所述的数据存储系统,其中,由初始开始地址和初始结束地址来定义所述第二区域。
3.如权利要求2所述的数据存储系统,其中,所述初始开始地址表明所述第一区域和所述第二区域之间的边界。
4.如权利要求2所述的数据存储系统,其中,所述桥设备进一步被配置为至少通过以下步骤对所述第二区域中的数据单元进行分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作:
将所述初始开始地址调整到新的开始地址;
对位于所述第二区域中的在所述初始开始地址和所述新的开始地址之间的所述数据单元进行分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作,以便匹配所述第一区域中与所述初始开始地址相邻的所述数据单元的操作模式;以及
启用对新分配的数据单元的数据访问。
5.如权利要求4所述的数据存储系统,其中,启用所述数据访问包括以下之一:
当接收到来自所述控制器的将所述初始开始地址调整到所述新的开始地址的命令时,立即启用对所述新分配的数据单元的数据访问;
当接收到来自所述控制器的激活访问的命令时,启用对所述新分配的数据单元的数据访问;以及
当接收到来自所述控制器的不专用于访问激活的命令时,启用对所述新分配的数据单元的数据访问。
6.如权利要求4所述的数据存储系统,其中,所述桥设备进一步被设置为:
响应于来自所述控制器的命令,连续地调整到新的开始地址,其中每个新的开始地址大于先前的开始地址;以及
在到所述新的开始地址的每次连续调整之后,对位于所述新的开始地址和所述先前的开始地址之间的所述数据单元进行分配以在所述单级单元(SLC)模式中或在所述多级单元(MLC)模式中操作,以便匹配所述第一区域中与所述先前的开始地址相邻的所述数据单元的操作模式。
7.如权利要求4所述的数据存储系统,其中,所述桥设备进一步被配置为:在超过根据制造商保证约束设定的阈值时,不调整到所述新的开始地址。
8.如权利要求4所述的数据存储系统,其中,所述桥设备进一步被配置为:根据来自所述控制器的命令,将所述新的开始地址重新设定为所述初始开始地址。
9.如权利要求8所述的数据存储系统,其中,所述桥设备进一步被配置为:根据所述重新设定来设定重新设定标志。
10.如权利要求2所述的数据存储系统,其中,所述桥设备进一步被配置为:在至少一些多级单元(MLC)存储器数据单元内定义包括在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作的数据单元的第三区域,并且其中,所述初始结束地址表明所述第二区域和所述第三区域之间的边界。
11.如权利要求10所述的数据存储系统,其中,所述桥设备进一步被配置为至少通过以下步骤对所述第二区域中的数据单元进行分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作:
将所述初始结束地址调整到新的结束地址;
对位于所述第二区域中的在所述初始结束地址和所述新的结束地址之间的所述数据单元进行分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作,以便匹配所述第三区域中与所述初始结束地址相邻的所述数据单元的操作模式;以及
启用对新分配的数据单元的数据访问。
12.如权利要求11所述的数据存储系统,其中,启用所述数据访问包括以下之一:
当接收到来自所述控制器的将所述初始结束地址调整到所述新的结束地址的命令时,立即启用对所述新分配的数据单元的数据访问;
当接收到来自所述控制器的激活访问的命令时,启用对所述新分配的数据单元的数据访问;以及
当接收到来自所述控制器的不专用于访问激活的命令时,启用对所述新分配的数据单元的数据访问。
13.如权利要求11所述的数据存储系统,其中,所述桥设备进一步被配置为:
响应于来自所述控制器的命令,连续地调整到新的结束地址,其中每个新的结束地址小于先前的结束地址;以及
在到所述新的结束地址的每次连续调整之后,对位于所述新的结束地址和所述先前的结束地址之间的所述数据单元进行分配以在所述单级单元(SLC)模式中或在所述多级单元(MLC)模式中操作,以便匹配所述第三区域中与所述先前的结束地址相邻的所述数据单元的操作模式。
14.如权利要求11所述的数据存储系统,其中,所述桥设备进一步被配置为:在超过根据制造商保证约束设定的阈值时,不调整到所述新的结束地址。
15.如权利要求11所述的数据存储系统,其中,所述桥设备进一步被配置为:根据来自所述控制器的命令,将所述新的结束地址重新设定为所述初始结束地址。
16.如权利要求15所述的数据存储系统,其中,所述桥设备进一步被配置为:根据所述重新设定来设定重新设定标志。
17.如权利要求10所述的数据存储系统,其中,所述第一区域包括在所述单级单元(SLC)模式中操作的数据单元,并且所述第三区域包括在所述多级单元(MLC)模式中操作的数据单元。
18.如权利要求1所述的数据存储系统,其中,所述桥设备包括一个或多个配置寄存器,并且来自所述控制器的所述命令是通过所述一个或多个寄存器的设定而被指示的。
19.如权利要求1所述的数据存储系统,其中,所述桥设备进一步被配置为:
在至少一些多级单元(MLC)存储器数据单元内定义包括被配置为被分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作的数据单元的第四区域;
响应于来自所述控制器的命令,对所述第四区域中的数据单元进行分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作;以及
防止对所述第四区域中的所述数据单元进行数据访问,直到它们被分配为在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作。
20.如权利要求19所述的数据存储系统,其中,所述第二区域和所述第四区域彼此不相邻。
21.如权利要求1所述的数据存储系统,还包括在所述控制器的控制下旋转磁性介质。
22.一种在非易失性数据存储系统中操作桥设备的方法,所述非易失性数据存储系统包括(1)控制器,(2)一个或多个固态存储器存储设备的阵列,所述存储器存储设备包括多个多级单元(MLC)存储器数据单元,所述多级单元(MLC)存储器数据单元能够在多级单元(MLC)模式和单级单元(SLC)模式中操作,以及(3)与所述阵列耦合的所述桥设备,所述方法包括:
在至少一些所述多级单元(MLC)存储器数据单元内定义第一区域和第二区域,其中:
所述第一区域包括在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作的数据单元;
所述第二区域包括被配置为被分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作的数据单元;
响应于来自所述控制器的命令,对所述第二区域中的数据单元进行分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作;以及
防止对所述第二区域中的所述数据单元进行数据访问,直到它们被分配为在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作。
23.如权利要求22所述的方法,其中,由初始开始地址和初始结束地址来定义所述第二区域。
24.如权利要求23所述的方法,其中,所述初始开始地址表明所述第一区域和所述第二区域之间的边界。
25.如权利要求23所述的方法,其中,对所述第二区域中的数据单元进行分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作还包括:
将所述初始开始地址调整到新的开始地址;
对位于所述第二区域中的在所述初始开始地址和所述新的开始地址之间的所述数据单元进行分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作,以便匹配所述第一区域中与所述初始开始地址相邻的所述数据单元的所述操作模式;以及
启用对新分配的数据单元的数据访问。
26.如权利要求25所述的方法,其中,启用所述数据访问包括以下之一:
当接收到来自所述控制器的将所述初始开始地址调整到所述新的开始地址的命令时,立即启用对所述新分配的数据单元的数据访问;
当接收到来自所述控制器的激活访问的命令时,启用对所述新分配的数据单元的数据访问;以及
当接收到来自所述控制器的不专用于访问激活的命令时,启用对所述新分配的数据单元的数据访问。
27.如权利要求25所述的方法,还包括:
响应于来自所述控制器的命令,连续地调整到新的开始地址,其中每个新的开始地址大于先前的开始地址;以及
在到所述新的开始地址的每次连续调整之后,对位于所述新的开始地址和所述先前的开始地址之间的所述数据单元进行分配以在所述单级单元(SLC)模式中或在所述多级单元(MLC)模式中操作,以便匹配所述第一区域中与所述先前的开始地址相邻的所述数据单元的所述操作模式。
28.如权利要求25所述的方法,还包括:在超过根据制造商保证约束设定的阈值时,不调整到所述新的开始地址。
29.如权利要求25所述的方法,还包括:根据来自所述控制器的命令,将所述新的开始地址重新设定为所述初始开始地址。
30.如权利要求29所述的方法,还包括:根据所述重新设定来设定重新设定标志。
31.如权利要求23所述的方法,还包括:在至少一些多级单元(MLC)存储器数据单元内定义包括在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作的数据单元的第三区域,并且其中,所述初始结束地址表明所述第二区域和所述第三区域之间的边界。
32.如权利要求31所述的方法,其中,对所述第二区域中的数据单元进行分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作包括:
将所述初始结束地址调整到新的结束地址;
对位于所述第二区域中的在所述初始结束地址和所述新的结束地址之间的所述数据单元进行分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作,以便匹配所述第三区域中与所述初始结束地址相邻的所述数据单元的操作模式;以及
启用对新分配的数据单元的数据访问。
33.如权利要求32所述的方法,其中,启用所述数据访问包括以下之一:
当接收到来自所述控制器的将所述初始结束地址调整到所述新的结束地址的命令时,立即启用对所述新分配的数据单元的数据访问;
当接收到来自所述控制器的激活访问的命令时,启用对所述新分配的数据单元的数据访问;以及
当接收到来自所述控制器的不专用于访问激活的命令时,启用对所述新分配的数据单元的数据访问。
34.如权利要求32所述的方法,还包括:
响应于来自所述控制器的命令,连续地调整到新的结束地址,其中每个新的结束地址小于先前的结束地址;以及
在到所述新的结束地址的每次连续调整之后,对位于所述新的结束地址和所述先前的结束地址之间的所述数据单元进行分配以在所述单级单元(SLC)模式中或在所述多级单元(MLC)模式中操作,以便匹配所述第三区域中与所述先前的结束地址相邻的所述数据单元的操作模式。
35.如权利要求32所述的方法,还包括:在超过根据制造商保证约束设定的阈值时,不调整到所述新的结束地址。
36.如权利要求32所述的方法,还包括:根据来自所述控制器的命令,将所述新的结束地址重新设定为所述初始结束地址。
37.如权利要求36所述的方法,还包括:根据所述重新设定来设定重新设定标志。
38.如权利要求31所述的方法,其中,所述第一区域包括在所述单级单元(SLC)模式中操作的数据单元,并且所述第三区域包括在所述多级单元(MLC)模式中操作的数据单元。
39.如权利要求22所述的方法,其中,所述桥设备包括一个或多个配置寄存器,并且来自所述控制器的所述命令是通过所述一个或多个寄存器的设定而被指示的。
40.如权利要求22所述的方法,还包括:
在至少一些多级单元(MLC)存储器数据单元内定义包括被配置为被分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作的数据单元的第四区域;
响应于来自所述控制器的命令,对所述第四区域中的数据单元进行分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作;以及
防止对所述第四区域中的所述数据单元进行数据访问,直到它们被分配为在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作。
41.如权利要求40所述的方法,其中,所述第二区域和所述第四区域彼此不相邻。
42.如权利要求22所述的方法,其中,所述数据存储系统还包括在所述控制器的控制下旋转磁性介质。
43.一种被配置为与以下部件耦合的桥设备:(1)一个或多个固态存储器存储设备的阵列,所述存储器存储设备包括多个多级单元(MLC)存储器数据单元,所述多级单元(MLC)存储器数据单元能够在多级单元(MLC)模式和单级单元(SLC)模式中操作,以及(2)在非易失性数据存储系统中的控制器,所述桥设备被配置为:
在至少一些所述多级单元(MLC)存储器数据单元内定义第一区域和第二区域,其中:
所述第一区域包括在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作的数据单元;
所述第二区域包括被配置为被分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作的数据单元;
响应于来自所述控制器的命令,对所述第二区域中的数据单元进行分配以在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作;以及
防止对所述第二区域中的所述数据单元进行数据访问,直到它们被分配为在所述单级单元(SLC)模式或在所述多级单元(MLC)模式中操作。
44.一种非易失性数据存储系统,包括:
控制器;
一个或多个固态存储器存储设备的阵列,所述存储器存储设备包括多个多级单元(MLC)存储器数据单元,所述多级单元(MLC)存储器数据单元能够在多个多级单元(MLC)模式和单级单元(SLC)模式中操作;以及
桥设备,其与所述阵列耦合,所述桥设备被配置为:
在至少一些所述多级单元(MLC)存储器数据单元内定义第一区域和第二区域,其中:
所述第一区域包括在所述单级单元(SLC)模式或在多个多级单元(MLC)模式中的一个中操作的数据单元;
所述第二区域包括被配置为被分配以在所述单级单元(SLC)模式或在所述多个多级单元(MLC)模式中的一个中操作的数据单元;
响应于来自所述控制器的命令,对所述第二区域中的数据单元进行分配以在所述单级单元(SLC)模式或在所述多个多级单元(MLC)模式中的一个中操作;以及
防止对所述第二区域中的所述数据单元进行数据访问,直到它们被分配为在所述单级单元(SLC)模式或在所述多个多级单元(MLC)模式中的一个中操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/741,299 | 2013-01-14 | ||
US13/741,299 US8954655B2 (en) | 2013-01-14 | 2013-01-14 | Systems and methods of configuring a mode of operation in a solid-state memory |
PCT/US2014/011352 WO2014110535A1 (en) | 2013-01-14 | 2014-01-13 | Systems and methods of configuring a mode of operation in a solid-state memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104919431A CN104919431A (zh) | 2015-09-16 |
CN104919431B true CN104919431B (zh) | 2017-03-15 |
Family
ID=51166143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480004813.6A Active CN104919431B (zh) | 2013-01-14 | 2014-01-13 | 配置固态存储器中操作模式的系统和方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8954655B2 (zh) |
EP (1) | EP2943882B1 (zh) |
JP (1) | JP6321682B2 (zh) |
KR (1) | KR20150106447A (zh) |
CN (1) | CN104919431B (zh) |
HK (1) | HK1215082A1 (zh) |
WO (1) | WO2014110535A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9477865B2 (en) * | 2013-12-13 | 2016-10-25 | Symbol Technologies, Llc | System for and method of accurately determining true bearings of radio frequency identification (RFID) tags associated with items in a controlled area |
KR102111741B1 (ko) * | 2014-01-10 | 2020-05-15 | 삼성전자주식회사 | 임베디드 멀티미디어 카드 및 이의 동작 방법 |
US9755294B2 (en) | 2014-07-07 | 2017-09-05 | Symbol Technologies, Llc | Accurately estimating true bearings of radio frequency identification (RFID) tags associated with items located in a controlled area |
US9619158B2 (en) | 2014-12-17 | 2017-04-11 | International Business Machines Corporation | Two-level hierarchical log structured array architecture with minimized write amplification |
US9606734B2 (en) | 2014-12-22 | 2017-03-28 | International Business Machines Corporation | Two-level hierarchical log structured array architecture using coordinated garbage collection for flash arrays |
US10008250B2 (en) * | 2015-03-27 | 2018-06-26 | Intel Corporation | Single level cell write buffering for multiple level cell non-volatile memory |
US10096355B2 (en) * | 2015-09-01 | 2018-10-09 | Sandisk Technologies Llc | Dynamic management of programming states to improve endurance |
US9773136B2 (en) | 2015-10-19 | 2017-09-26 | Symbol Technologies, Llc | System for, and method of, accurately and rapidly determining, in real-time, true bearings of radio frequency identification (RFID) tags associated with items in a controlled area |
US9959058B1 (en) * | 2016-03-31 | 2018-05-01 | EMC IP Holding Company LLC | Utilizing flash optimized layouts which minimize wear of internal flash memory of solid state drives |
KR102593362B1 (ko) | 2016-04-27 | 2023-10-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
JP6679412B2 (ja) * | 2016-05-19 | 2020-04-15 | キヤノン株式会社 | ストレージ制御装置、情報処理方法及びプログラム |
US10108555B2 (en) | 2016-05-26 | 2018-10-23 | Macronix International Co., Ltd. | Memory system and memory management method thereof |
US9940980B2 (en) * | 2016-06-30 | 2018-04-10 | Futurewei Technologies, Inc. | Hybrid LPDDR4-DRAM with cached NVM and flash-nand in multi-chip packages for mobile devices |
KR102353782B1 (ko) * | 2016-08-31 | 2022-01-19 | 삼성전자주식회사 | NVMe 기반 솔리드 스테이트 드라이브에서 읽기 버퍼 사이즈 요구량을 감소하는 방법 |
JP6924026B2 (ja) * | 2016-12-19 | 2021-08-25 | シナプティクス インコーポレイテッド | 半導体装置、ヒューマンインターフェース装置及び電子機器 |
US10726218B2 (en) | 2017-07-27 | 2020-07-28 | Symbol Technologies, Llc | Method and apparatus for radio frequency identification (RFID) tag bearing estimation |
US10318301B2 (en) * | 2017-08-31 | 2019-06-11 | Micron Technology, Inc. | Managed multiple die memory QoS |
US10223259B1 (en) * | 2017-08-31 | 2019-03-05 | Micron Technology, Inc. | Memory device with dynamic storage mode control |
JP2019159471A (ja) * | 2018-03-08 | 2019-09-19 | キヤノン株式会社 | ストレージシステム、その制御方法およびプログラム |
KR20200015247A (ko) | 2018-08-03 | 2020-02-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
CN109491592B (zh) * | 2018-09-20 | 2022-11-15 | 中山市江波龙电子有限公司 | 存储设备及其数据写入方法、存储装置 |
WO2020180045A1 (en) * | 2019-03-07 | 2020-09-10 | Samsung Electronics Co., Ltd. | Electronic device and method for utilizing memory space thereof |
US11237893B2 (en) * | 2019-06-26 | 2022-02-01 | Western Digital Technologies, Inc. | Use of error correction-based metric for identifying poorly performing data storage devices |
US11269524B2 (en) | 2019-10-07 | 2022-03-08 | Samsung Electronics Co., Ltd. | Methods and systems for managing data transfer between a UFS host and a UFS target |
JP6852207B2 (ja) * | 2020-03-18 | 2021-03-31 | キヤノン株式会社 | ストレージ制御装置、情報処理方法及びプログラム |
JP2022030146A (ja) | 2020-08-06 | 2022-02-18 | キオクシア株式会社 | メモリシステムおよび書き込み制御方法 |
JP2022049553A (ja) | 2020-09-16 | 2022-03-29 | キオクシア株式会社 | 半導体装置および方法 |
JP2022049552A (ja) | 2020-09-16 | 2022-03-29 | キオクシア株式会社 | 半導体装置および方法 |
KR20220105303A (ko) | 2021-01-20 | 2022-07-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20220107733A (ko) * | 2021-01-26 | 2022-08-02 | 에스케이하이닉스 주식회사 | 보호모드를 지원하는 비휘발성 메모리 장치 및 그를 포함하는 메모리 시스템 |
KR20230027957A (ko) | 2021-08-20 | 2023-02-28 | 삼성전자주식회사 | 호스트 및 스토리지 장치를 포함하는 스토리지 시스템 및 이의 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266835A (zh) * | 2007-01-17 | 2008-09-17 | 三星电子株式会社 | 包含多用户可选编程模式的非易失存储设备及相关的方法 |
Family Cites Families (100)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3629144B2 (ja) * | 1998-06-01 | 2005-03-16 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP2000173281A (ja) * | 1998-12-04 | 2000-06-23 | Sony Corp | 半導体記憶装置 |
US6401160B1 (en) | 1999-03-31 | 2002-06-04 | Intel Corporation | Method and apparatus to permit adjustable code/data boundary in a nonvolatile memory |
US8078794B2 (en) | 2000-01-06 | 2011-12-13 | Super Talent Electronics, Inc. | Hybrid SSD using a combination of SLC and MLC flash memory arrays |
US6856556B1 (en) | 2003-04-03 | 2005-02-15 | Siliconsystems, Inc. | Storage subsystem with embedded circuit for protecting against anomalies in power signal from host |
US7502256B2 (en) | 2004-11-30 | 2009-03-10 | Siliconsystems, Inc. | Systems and methods for reducing unauthorized data recovery from solid-state storage devices |
JP4805696B2 (ja) * | 2006-03-09 | 2011-11-02 | 株式会社東芝 | 半導体集積回路装置およびそのデータ記録方式 |
US7653778B2 (en) | 2006-05-08 | 2010-01-26 | Siliconsystems, Inc. | Systems and methods for measuring the useful life of solid-state storage devices |
US7765373B1 (en) | 2006-06-27 | 2010-07-27 | Siliconsystems, Inc. | System for controlling use of a solid-state storage subsystem |
US8108692B1 (en) | 2006-06-27 | 2012-01-31 | Siliconsystems, Inc. | Solid-state storage subsystem security solution |
US7509441B1 (en) | 2006-06-30 | 2009-03-24 | Siliconsystems, Inc. | Systems and methods for segmenting and protecting a storage subsystem |
US7447807B1 (en) | 2006-06-30 | 2008-11-04 | Siliconsystems, Inc. | Systems and methods for storing data in segments of a storage subsystem |
US8161227B1 (en) | 2006-10-30 | 2012-04-17 | Siliconsystems, Inc. | Storage subsystem capable of programming field-programmable devices of a target computer system |
KR100833188B1 (ko) | 2006-11-03 | 2008-05-28 | 삼성전자주식회사 | 데이터의 특성에 따라 싱글 레벨 셀 또는 멀티 레벨 셀에데이터를 저장하는 불휘발성 메모리 시스템 |
US8549236B2 (en) | 2006-12-15 | 2013-10-01 | Siliconsystems, Inc. | Storage subsystem with multiple non-volatile memory arrays to protect against data losses |
US7596643B2 (en) | 2007-02-07 | 2009-09-29 | Siliconsystems, Inc. | Storage subsystem with configurable buffer |
JP2008276733A (ja) * | 2007-04-06 | 2008-11-13 | Toshiba Corp | メモリシステム |
US7685337B2 (en) | 2007-05-24 | 2010-03-23 | Siliconsystems, Inc. | Solid state storage subsystem for embedded applications |
US7685338B2 (en) | 2007-05-24 | 2010-03-23 | Siliconsystems, Inc. | Solid state storage subsystem for embedded applications |
US7685374B2 (en) | 2007-07-26 | 2010-03-23 | Siliconsystems, Inc. | Multi-interface and multi-bus structured solid-state storage subsystem |
US8095851B2 (en) | 2007-09-06 | 2012-01-10 | Siliconsystems, Inc. | Storage subsystem capable of adjusting ECC settings based on monitored conditions |
US8078918B2 (en) | 2008-02-07 | 2011-12-13 | Siliconsystems, Inc. | Solid state storage subsystem that maintains and provides access to data reflective of a failure risk |
US7962792B2 (en) | 2008-02-11 | 2011-06-14 | Siliconsystems, Inc. | Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem |
US8281061B2 (en) | 2008-03-31 | 2012-10-02 | Micron Technology, Inc. | Data conditioning to improve flash memory reliability |
US9477587B2 (en) | 2008-04-11 | 2016-10-25 | Micron Technology, Inc. | Method and apparatus for a volume management system in a non-volatile memory device |
US7733712B1 (en) | 2008-05-20 | 2010-06-08 | Siliconsystems, Inc. | Storage subsystem with embedded circuit for protecting against anomalies in power signal from host |
US8060719B2 (en) | 2008-05-28 | 2011-11-15 | Micron Technology, Inc. | Hybrid memory management |
US8375151B1 (en) | 2009-02-12 | 2013-02-12 | Siliconsystems, Inc. | Command portal for securely communicating and executing non-standard storage subsystem commands |
US8583835B1 (en) | 2008-08-06 | 2013-11-12 | Siliconsystems, Inc. | Command portal for executing non-standard storage subsystem commands |
US8407400B2 (en) | 2008-11-12 | 2013-03-26 | Micron Technology, Inc. | Dynamic SLC/MLC blocks allocations for non-volatile memory |
CN102257568B (zh) * | 2008-12-18 | 2013-09-18 | 莫塞德技术公司 | 具有主存储单元和需要预设操作的辅存储单元的半导体设备 |
US9176859B2 (en) | 2009-01-07 | 2015-11-03 | Siliconsystems, Inc. | Systems and methods for improving the performance of non-volatile memory operations |
US8090899B1 (en) | 2009-03-04 | 2012-01-03 | Western Digital Technologies, Inc. | Solid state drive power safe wear-leveling |
US8266503B2 (en) | 2009-03-13 | 2012-09-11 | Fusion-Io | Apparatus, system, and method for using multi-level cell storage in a single-level cell mode |
US10079048B2 (en) | 2009-03-24 | 2018-09-18 | Western Digital Technologies, Inc. | Adjusting access of non-volatile semiconductor memory based on access time |
WO2011000082A1 (en) * | 2009-06-29 | 2011-01-06 | Mosaid Technologies Incorporated | A bridging device having a frequency configurable clock domain |
JP2011186563A (ja) * | 2010-03-04 | 2011-09-22 | Toshiba Corp | メモリ管理装置およびメモリ管理方法 |
US8254172B1 (en) | 2009-09-30 | 2012-08-28 | Western Digital Technologies, Inc. | Wear leveling non-volatile semiconductor memory based on erase times and program times |
US8243525B1 (en) | 2009-09-30 | 2012-08-14 | Western Digital Technologies, Inc. | Refreshing non-volatile semiconductor memory by reading without rewriting |
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 |
US8261012B2 (en) | 2009-10-30 | 2012-09-04 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory comprising power fail circuitry for flushing write data in response to a power fail signal |
US8135903B1 (en) | 2009-10-30 | 2012-03-13 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory compressing data to improve performance |
US8307151B1 (en) | 2009-11-30 | 2012-11-06 | Micron Technology, Inc. | Multi-partitioning feature on e-MMC |
US8397107B1 (en) | 2009-12-11 | 2013-03-12 | Western Digital Technologies, Inc. | Data storage device employing data path protection using both LBA and PBA |
US8443167B1 (en) | 2009-12-16 | 2013-05-14 | Western Digital Technologies, Inc. | Data storage device employing a run-length mapping table and a single address mapping table |
US8316176B1 (en) | 2010-02-17 | 2012-11-20 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory segregating sequential data during garbage collection to reduce write amplification |
US8407449B1 (en) | 2010-02-26 | 2013-03-26 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table |
US8725931B1 (en) | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US8713066B1 (en) | 2010-03-29 | 2014-04-29 | Western Digital Technologies, Inc. | Managing wear leveling and garbage collection operations in a solid-state memory using linked lists |
US9021177B2 (en) | 2010-04-29 | 2015-04-28 | Densbits Technologies Ltd. | System and method for allocating and using spare blocks in a flash memory |
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 |
US8341339B1 (en) | 2010-06-14 | 2012-12-25 | Western Digital Technologies, Inc. | Hybrid drive garbage collecting a non-volatile semiconductor memory by migrating valid data to a disk |
US8612669B1 (en) | 2010-06-28 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for performing data retention in solid-state memory using copy commands and validity and usage data |
US8447920B1 (en) | 2010-06-29 | 2013-05-21 | Western Digital Technologies, Inc. | System and method for managing data access in non-volatile memory |
US8521972B1 (en) | 2010-06-30 | 2013-08-27 | Western Digital Technologies, Inc. | System and method for optimizing garbage collection in data storage |
US8656256B2 (en) | 2010-07-07 | 2014-02-18 | Stec, Inc. | Apparatus and method for multi-mode operation of a flash memory device |
US8639872B1 (en) | 2010-08-13 | 2014-01-28 | Western Digital Technologies, Inc. | Hybrid drive comprising write cache spanning non-volatile semiconductor memory and disk |
US8775720B1 (en) | 2010-08-31 | 2014-07-08 | Western Digital Technologies, Inc. | Hybrid drive balancing execution times for non-volatile semiconductor memory and disk |
US8638602B1 (en) | 2010-09-10 | 2014-01-28 | Western Digital Technologies, Inc. | Background selection of voltage reference values for performing memory read operations |
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 |
JP5066241B2 (ja) * | 2010-09-24 | 2012-11-07 | 株式会社東芝 | メモリシステム |
US8612804B1 (en) | 2010-09-30 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
US8601313B1 (en) | 2010-12-13 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for a data reliability scheme in a solid state memory |
US8615681B2 (en) | 2010-12-14 | 2013-12-24 | Western Digital Technologies, Inc. | System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss |
US8601311B2 (en) | 2010-12-14 | 2013-12-03 | Western Digital Technologies, Inc. | System and method for using over-provisioned data capacity to maintain a data redundancy scheme in a solid state memory |
US8458435B1 (en) | 2010-12-20 | 2013-06-04 | Western Digital Technologies, Inc. | Sequential write thread detection |
US8392635B2 (en) | 2010-12-22 | 2013-03-05 | Western Digital Technologies, Inc. | Selectively enabling a host transfer interrupt |
US8886990B2 (en) * | 2011-01-27 | 2014-11-11 | Apple Inc. | Block management schemes in hybrid SLC/MLC memory |
US8683113B2 (en) | 2011-02-04 | 2014-03-25 | Western Digital Technologies, Inc. | Concurrently searching multiple devices of a non-volatile semiconductor memory |
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 |
US9342446B2 (en) | 2011-03-29 | 2016-05-17 | SanDisk Technologies, Inc. | Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache |
US8537613B2 (en) | 2011-03-31 | 2013-09-17 | Sandisk Technologies Inc. | Multi-layer memory system |
US8769232B2 (en) | 2011-04-06 | 2014-07-01 | Western Digital Technologies, Inc. | Non-volatile semiconductor memory module enabling out of order host command chunk media access |
US8751728B1 (en) | 2011-04-29 | 2014-06-10 | Western Digital Technologies, Inc. | Storage system bus transfer optimization |
US8862804B2 (en) | 2011-04-29 | 2014-10-14 | Western Digital Technologies, Inc. | System and method for improved parity determination within a data redundancy scheme in a solid state memory |
US9021178B2 (en) | 2011-05-02 | 2015-04-28 | Western Digital Technologies, Inc. | High performance path for command processing |
US8503237B1 (en) | 2011-05-18 | 2013-08-06 | Western Digital Technologies, Inc. | System and method for data recovery in a solid state storage device |
US8793429B1 (en) | 2011-06-03 | 2014-07-29 | Western Digital Technologies, Inc. | Solid-state drive with reduced power up time |
US8719531B2 (en) | 2011-06-14 | 2014-05-06 | Western Digital Technologies, Inc. | System and method for performing data retention that incorporates environmental conditions |
US8423722B1 (en) | 2011-08-26 | 2013-04-16 | Western Digital Technologies, Inc. | System and method for high performance command processing in solid state drives |
US8713357B1 (en) | 2011-09-06 | 2014-04-29 | Western Digital Technologies, Inc. | Systems and methods for detailed error reporting 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 |
US8700834B2 (en) | 2011-09-06 | 2014-04-15 | Western Digital Technologies, Inc. | Systems and methods for an enhanced controller architecture in data storage systems |
US8977803B2 (en) | 2011-11-21 | 2015-03-10 | Western Digital Technologies, Inc. | Disk drive data caching using a multi-tiered memory |
US8724422B1 (en) | 2012-02-29 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for charging back-up charge storage element for data storage device using spindle phase switching elements |
US9003224B2 (en) | 2012-04-25 | 2015-04-07 | Western Digital Technologies, Inc. | Managing unreliable memory in data storage systems |
US8788778B1 (en) | 2012-06-04 | 2014-07-22 | Western Digital Technologies, Inc. | Garbage collection based on the inactivity level of stored data |
US8966343B2 (en) | 2012-08-21 | 2015-02-24 | Western Digital Technologies, Inc. | Solid-state drive retention monitor using reference blocks |
US8788880B1 (en) | 2012-08-22 | 2014-07-22 | Western Digital Technologies, Inc. | Efficient retry mechanism for solid-state memory failures |
US9268682B2 (en) | 2012-10-05 | 2016-02-23 | Skyera, Llc | Methods, devices and systems for physical-to-logical mapping 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 |
US20140223255A1 (en) | 2012-12-18 | 2014-08-07 | Western Digital Technologies, Inc. | Decoder having early decoding termination detection |
US9430376B2 (en) | 2012-12-26 | 2016-08-30 | Western Digital Technologies, Inc. | Priority-based garbage collection for data storage systems |
-
2013
- 2013-01-14 US US13/741,299 patent/US8954655B2/en active Active
-
2014
- 2014-01-13 EP EP14737805.3A patent/EP2943882B1/en active Active
- 2014-01-13 CN CN201480004813.6A patent/CN104919431B/zh active Active
- 2014-01-13 KR KR1020157021853A patent/KR20150106447A/ko not_active Application Discontinuation
- 2014-01-13 WO PCT/US2014/011352 patent/WO2014110535A1/en active Application Filing
- 2014-01-13 JP JP2015552867A patent/JP6321682B2/ja active Active
-
2016
- 2016-03-14 HK HK16102903.4A patent/HK1215082A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101266835A (zh) * | 2007-01-17 | 2008-09-17 | 三星电子株式会社 | 包含多用户可选编程模式的非易失存储设备及相关的方法 |
Also Published As
Publication number | Publication date |
---|---|
JP6321682B2 (ja) | 2018-05-09 |
EP2943882B1 (en) | 2018-05-23 |
CN104919431A (zh) | 2015-09-16 |
HK1215082A1 (zh) | 2016-08-12 |
US8954655B2 (en) | 2015-02-10 |
KR20150106447A (ko) | 2015-09-21 |
JP2016508276A (ja) | 2016-03-17 |
US20140201423A1 (en) | 2014-07-17 |
EP2943882A1 (en) | 2015-11-18 |
EP2943882A4 (en) | 2016-08-17 |
WO2014110535A1 (en) | 2014-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104919431B (zh) | 配置固态存储器中操作模式的系统和方法 | |
CN103176746B (zh) | 用于数据存储系统中增强的控制器架构的系统和方法 | |
US9921956B2 (en) | System and method for tracking block level mapping overhead in a non-volatile memory | |
US9098395B2 (en) | Logical block management method for a flash memory and control circuit storage system using the same | |
CN102317925B (zh) | 存储器系统和控制存储器系统的方法 | |
CN110874188B (zh) | 数据存储装置、其操作方法以及具有其的存储系统 | |
US20180018101A1 (en) | Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (hmb) | |
US9053008B1 (en) | Systems and methods for providing inline parameter service in data storage devices | |
CN102292778A (zh) | 用于管理错误区域的存储器装置及方法 | |
US20180188975A1 (en) | Methods, systems and computer readable media for intelligent fetching of data storage device commands from submission queues | |
CN114730604A (zh) | 动态zns开放分区活动限制 | |
US20160071604A1 (en) | Semiconductor memory device | |
US20100088540A1 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
CN114746834A (zh) | 基于分区状态的分区附加命令调度 | |
CN109213438A (zh) | 预先管理待分配给写入数据的物理地址的存储装置 | |
US11829270B2 (en) | Semiconductor die failure recovery in a data storage device | |
CN115437580A (zh) | 一种数据存储设备的管理方法、系统及数据存储设备 | |
US11720280B2 (en) | Storage system and method for improving utilization of a communication channel between a host and the storage system | |
CN102314396B (zh) | 区块为基础闪存的字节存取的方法与装置 | |
US11086804B2 (en) | Storage system and method for reducing read-retry duration | |
CN112181276B (zh) | 提升存储设备服务质量的大块构造、分配方法及其存储设备 | |
CN112352216B (zh) | 数据存储方法及数据存储装置 | |
US11487449B2 (en) | Data storage device and method for enabling higher lane utilization in run time via device hints on workload patterns | |
US11914900B2 (en) | Storage system and method for early command cancelation | |
US11816360B2 (en) | Method and apparatus for performing data access performance shaping of memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1215082 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1215082 Country of ref document: HK |