CN108806754B - 用于管理存储设备中的数据的方法和装置 - Google Patents

用于管理存储设备中的数据的方法和装置 Download PDF

Info

Publication number
CN108806754B
CN108806754B CN201810418745.8A CN201810418745A CN108806754B CN 108806754 B CN108806754 B CN 108806754B CN 201810418745 A CN201810418745 A CN 201810418745A CN 108806754 B CN108806754 B CN 108806754B
Authority
CN
China
Prior art keywords
pages
page
sequence
data
memory
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
Application number
CN201810418745.8A
Other languages
English (en)
Other versions
CN108806754A (zh
Inventor
T·L·卡内帕
A·唐
S·汉纳
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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of CN108806754A publication Critical patent/CN108806754A/zh
Application granted granted Critical
Publication of CN108806754B publication Critical patent/CN108806754B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/004Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供了用于管理存储设备中的数据的方法和装置。在一些实施方案中,非易失性高速缓存存储器存储来自主机设备的页面序列。非易失性主存储器具有布置在m个单独集成电路管芯上的多个n层单元,每个n层单元可使用相关联的传输电路在编程和读取操作期间同时访问,其中m和n是复数。控制电路将来自所述页面序列的第一页面和第二页面写入到选定的一组n层单元,所述选定的一组n层单元耦接到所选集成电路管芯上的共用字线。所述第二页面与所述页面序列中的所述第一页面隔开一定逻辑偏移量,所述逻辑偏移量包括所述页面序列中的多个居间页面。所述逻辑偏移量响应于集成电路管芯的m数量以及与所述传输电路相关联的延迟时间而选择。

Description

用于管理存储设备中的数据的方法和装置
技术领域
本申请涉及用于管理存储设备中的数据的方法和装置。
背景技术
本行业仍要继续努力提高半导体存储器(诸如NAND闪存设备)的存储容量。虽然可操作以增强给定设备的数据存储容量,但对一组多位闪存存储器单元进行编程带来了许多挑战。
发明内容
本文所公开的各种实施方案整体涉及数据存储设备(诸如使用n层NAND闪存存储器单元的固态驱动器(SSD))中的数据的管理。
根据一些实施方案,非易失性高速缓存存储器存储来自主机设备的页面序列。非易失性主存储器具有布置在m个单独集成电路管芯上的多个n层单元,每个n层单元可使用相关联的传输电路在编程和读取操作期间同时访问,其中m和n是复数。控制电路将来自该页面序列的第一页面和第二页面写入到选定的一组n层单元,该选定的一组n层单元耦接到所选集成电路管芯上的共用字线。第二页面与该页面序列中的第一页面隔开一定逻辑偏移量,该逻辑偏移量包括该页面序列中的多个居间页面。响应于集成电路管芯的m数量和与传输电路相关联的延迟时间来选择逻辑偏移量。
根据下面的详细讨论和附图,可以理解可表征各种实施方案的这些和其他特征与优点。
附图说明
图1提供了根据一些实施方案的示例性数据存储设备的功能块表示。
图2是图1的设备的NAND闪存存储器阵列的一部分的示意性图示。
图3示出了根据一些实施方案使用不同编程约定时图2的闪存存储器单元上的累积电荷分布。
图4示出了根据一些实施方案执行的数据传输的问题情况和理想情况。
图5是根据一些实施方案的数据存储设备的功能块表示。
图6示出了图5的n层闪存阵列的各方面。
图7是一些实施方案中的块序列以示出输入写入数据被布置在主机块地址(HPA)和子R块中的示例性方式。
图8是一些实施方案中累积数据从高速缓存存储器中的子R块向图4的n层闪存阵列的传输的功能表示。
图9A示出了高速缓存存储器中的示例性累积数据。
图9B示出了n层闪存阵列中可用于容纳图8的数据的存储器位置。
图10A、图10B和图10C相继示出了一些实施方案中数据沿着子R块边界从高速缓存存储器向n层闪存阵列的传输。
图11示出了垃圾收集操作以在N层闪存阵列中重新布置数据。
图12是说明根据一些实施方案执行的步骤的SSD数据管理例程的流程图。
具体实施方式
本公开整体涉及在包括具有多位闪存存储器单元(例如,n层闪存存储器单元,其中n大于1)的NAND闪存阵列的固态驱动器(SSD)数据存储设备中的数据管理。
数据存储设备设置有一个或多个存储器设备以存储和/或检索计算机化数据。一些基于固态半导体的存储器设备(诸如闪存存储器)利用电荷转移来确立单独存储器单元中的编程状态。
闪存存储器将数据以累积电荷的形式存储在闪存存储器单元的浮动门上。存储器单元可表征为具有浮动门结构的nMOSFET(n沟道金属氧化物半导体场效应晶体管),该浮动门结构与每个晶体管的主控制门电隔离。存储器单元在擦除状态下基本上不会将累积电荷存储在浮动门上,并且在编程时存储增加量的累积电荷。编程操作致使电荷从主沟道迁移到浮动门,并且擦除操作使电荷从浮动门迁移以将这些单元复位为基本(擦除)状态。
本行业仍要继续努力提高半导体存储器(诸如NAND闪存设备)的存储容量。被配置为单层单元(SLC)的存储器单元均每个单元存储一位,并且往往既能提供更快的数据传输速率,又能提供增加的操作寿命。可通过将这些单元编程为存储一位以上来提高数据存储密度。多层单元(MLC)存储两位,三层单元(TLC)存储三位,4X层单元(XLC)存储四位,以此类推。一般来讲,单元可被编程为使用2N个不同电荷电平时总共为N位(例如,存储两位需要四个电平,存储三位需要八个电平,等等)。每个单元存储多位往往会降低数据传输速率并增加这些单元上的磨损,从而导致操作寿命缩短。
要写入到闪存存储器的输入用户数据通常被布置成称为页面的数据分组。数据的每个页面具有所选的总位数,具体取决于包括存储器的物理构造在内的多种因素。示例性页面长度可为4KB(4096字节)、8KB、16KB、32KB等等。通常将NAND闪存存储器布置成具有连接到公共门控制线(字线)的多个闪存存储器单元。数据的每个页面存储到与相同字线相连的存储器单元,其中该页面的一位沿着字线存储到不同单元。存储多位的存储器单元通常被布置成最初将数据的第一页面存储为SLC。写入到相同单元的数据的第二页面使单元转换为MLC,写入到相同单元的第三页面使单元转换为TLC,等等。
虽然可操作以增强给定设备的数据存储容量,但对一组多位闪存存储器单元(例如,n层单元,其中n大于1)进行编程带来了许多挑战。使用来自主机的顺序数据扇区(例如,逻辑块地址或LBA)直接对n层闪存单元字线进行编程往往在后续读取操作期间会降低存储器的顺序读取性能。这是因为给定逻辑范围内的所有相邻数据将存储在相同半导体管芯上并且使用相同回读电路(线道或沟道)来恢复数据。例如,在32KB页面存储在一组TLC中并且下页面、中页面和上页面存储连续LBA的情况下,96KB或更多的数据将存储在相同字线上的单组存储器单元上。这可最终限制可从存储器回收流传输LBA的速率。
因此,本公开的各种实施方案涉及用于管理具有n层存储器单元的存储器(诸如但不限于NAND闪存存储器)中的数据存储的方法和装置。如下面所解释,在一些实施方案中,非易失性高速缓存存储器(诸如SLC闪存高速缓存)被配置为存储来自主机设备的数据的多个按顺序接收的页面。
非易失性主存储器被配置为从高速缓存存储器接收高速缓存页面的传输。非易失性主存储器被配置为包括布置在m个单独集成电路管芯上的多个n层单元,每个n层单元可使用相关联的传输电路在编程和读取操作期间同时访问,其中m和n都是复数。
控制电路(诸如SSD控制器)被配置为指示来自高速缓存的非相邻页面的所选组同时写入到与共用字线耦接的n层单元。响应于管芯的m数量和与传输电路相关联的延迟时间来选择写入到字线的第一页面与第二页面之间的逻辑偏移量。这样,可在读取操作期间以最大平均数据传输速率回收存储到主存储器的基本上任何组的页面。
在下面的讨论中举例说明利用TLC记录的NAND闪存存储器阵列。这仅仅为了说明而不是限制性的,因为可使用任何数量的布置方式,包括但不限于MLC、XLC等;二维(2D)闪存阵列;三维(3D)闪存阵列;其他形式的固态半导体非易失性存储器,诸如RRAM、MRAM、STRAM、PLC等;适于每个“单元”存储多位的非固态存储器,诸如采用多个堆叠记录层的三维磁记录(3DMR)盘等。
从总体上示出示例性数据存储设备100的图1的回顾开始,将理解各种实施方案的这些和其他特征与方面。设备100包括控制器102和存储器模块104。控制器102提供对设备100的顶层控制,并且可被配置为在本地存储器中具有相关联的编程的可编程处理器。除此之外或另选地,控制器可采用基于硬件的控制电路的形式,其具有逻辑门或其他元件以执行所需的控制器功能。
存储器模块104可被布置为一个或多个非易失性存储器元件,包括可旋转记录盘和固态存储器阵列。虽然图1中示出了单独控制器102,但这并不必要,因为另选实施方案可将任何必需的控制器功能直接结合到存储器模块中。虽然并非限制性的,但为了本讨论的目的,可以设想数据存储设备100是利用三维(3D)NAND闪存存储器阵列的固态驱动器(SSD),该三维(3D)NAND闪存存储器阵列构成存储器模块的至少一些存储器容量以便为主机设备(未示出)提供主数据存储。可使用存储器的其他形式。
图2提供了根据一些实施方案的图1的存储器模块104的闪存存储器阵列110的一部分的示意性图示。可使用其他配置,因此图2仅仅是示例性的,而非限制性的。图2中的布置方式是与常规2D NAND配置类似的二维(2D)布局。可以设想(但并非必需)图2中的每列表示3D阵列内的元件的垂直叠堆。
通过位线(BL0-BL3)114、源线(SL0-SL3)116和字线(WL0-WL2)118来访问闪存存储器单元112。可以设想其他选择电路和控制线,但为清楚起见并未示出,诸如每列顶部和底部的选择晶体管等。通过将适当电压施加到相应位线114、源线116和字线118来执行编程、读取和擦除操作。数据的一个或多个页面存储到每行单元,例如耦接到给定字线118的单元112。为了本示例的目的,可以设想每个页面为32KB,但可使用其他大小。
图3是用于图2的闪存存储器单元112的不同编程格式的图形表示。单层单元(SLC)编程在120处表示,并且包括如由一般性群体曲线122和124所示的单元的两个相应群体。这些曲线的形状和范围往往会呈基本上高斯分布,但基于多种因素,可出现其他形式。曲线122表示处于擦除或基本上擦除状态的闪存存储器单元,因此这些单元的浮动门结构上很少或没有电荷累积。这对应于逻辑1的逻辑状态或值(编程值)。曲线124表示这样的闪存存储器单元,它们所累积的累积电荷的所选量子足以指示逻辑0的编程值。可使用其他约定。
闪存存储器单元的浮动门上的电荷累积往往会升高需要施加到控制门(附连到字线)以使该单元处于正向(源极-漏极)导电状态的电压量。合适的中间门电压V1的施加将使设备100的回读电路能够识别这些单元的编程状态。应当理解,电压V1的施加将使群体122中的单元呈导电状态,而电压V1将不足以使群体124中的单元处于导电状态。
图3进一步在130处将多层单元(MLC)编程示出为分别包括11、10、00和01的二位逻辑值(群体132、134、136和138)。如本领域中公知的,SLC120随后被编程为具有将两个SLC分布分成四个MLC分布所需的附加累积电荷。如果SLC使用数据的第一页面来编程,则如图所示,数据的第二页面在第一页面的顶部上编程,其中每个单元的最高有效位(MSB)表示第一页面中的对应位,并且每个单元的最低有效位(LSB)表示第二页面中的对应位。如前所述,可相继施加合适的中间电压诸如(但不限于)电压V2和V3以识别给定单元的最终编程状态。
在140处表示三层单元(Triple-level cell,TLC)编程,它有时也称为三层单元编程(three-level cell programming)。这涉及八个三位状态111、110、101、100、000、001、011和010,如由对应群体142、144、146、148、150、152、154和156提供。可相继施加各种中间电压(包括但不限于电压V4和V5)以识别各个单元的编程状态。
可通过将数据的第三页面编程到一组MLC上来形成TLC。在TLC的情况下,MSB表示第一页面,中间有效位(ISB)表示第二页面,并且LSB表示第三页面。可根据本发明实施方案使用其他格式,包括4X层单元(XLC)(也称四层单元(FLC))等。一般来讲,可从中看出,N位的总数可使用2N个不同累积电荷状态存储在给定单元中。
固态驱动器(SSD)的主要优点是能够将命令排队到多个设备,从而大大增加任何单个闪存设备的总带宽。对于高速顺序读取尤其是这样,在高速顺序读取中,主机接口的极高带宽可将许多单独且相对缓慢的闪速数据读取集合成单个单片传输,仅有初始延时代价。随着多层闪存设备的“单触发”编程的出现,控制器要负责保证被编程到SSD中的管芯阵列的数据页面以一定形式格式化,使得任何顺序读取请求均自然地调用多个闪存线道和管芯以完成该传输。图3中的示例示出了在控制器将顺序数据简单地写入到单触发闪存设备中的给定字线时将发生的性能损失。
图4示出了SSD控制器160(对应于图1中的控制器102),该控制器提供数据的不同页面162向n层闪存阵列164的写入的顶层控制。在第一情况(“问题情况”)中,将页面0-2写入到闪存阵列164中的相同管芯M,诸如但不限于相同字线。
在问题情况中,将数据按从主机设备接收到的形式经单个闪存总线顺序地写入到单个闪存设备。当主机设备试图读取该相同数据时,该传输将变慢,这是由于必须访问每个页面并且必须以串行方式将数据传输到主机。例如,如果每个页面162的长度为32KB,传输速率Tr为50μs(例如,提供读取命令所需的指定闪存阵列读取延迟时间),闪存总线具有400MT/s的传输速率(可从阵列164读取数据的最大速率)并且主机接口传输速率为1GB/s,则读取问题情况数据(页面0-2)所需的最坏情况带宽BW(吞吐速率)可确定如下:
BW=3*32KB/((3*(50+32KB/500MT/s)+32KB/1000MB/s)=225MB/s (1)
图4进一步示出了第二情况(“理想情况”),其中将三个页面X、Y和Z写入到阵列164的不同管芯,使得不同读取/写入电路可访问每个单独管芯位置。如前所述,可将数据按从主机设备接收到的形式顺序地写入,但这次是经过多个线道写入到多个管芯。
在后续的读取操作期间,回读性能将得到改善。如前所述,如果每个页面为32KB,Tr为50μs,闪存总线传输速率为400MT/s,并且主机接口传输速率为1GB/s,则读取理想情况数据(页面X-Z)所需的最坏情况带宽BW可确定如下:
BW=3*32KB/((50+32KB/500MT/s)+3*(32KB/1000MB/s)=385MB/s (2)
这表示与问题情况相比传输速率的约70%增加。
本公开用于以一定方式分布输入高速缓存数据,以便实现存储到n层阵列的顺序数据的近乎理想数据回读传输速率。如下面所解释,这可通过将输入高速缓存数据分成称为子R块的数据组来执行。子R块具有页面边界,这些页面边界被选择成使得来自多个子R块的数据的对应页面被写入到n层阵列中的相同字线。写入到相同字线的不同页面之间的逻辑距离足以获得对于所写入的数据的任何所选子组而言基本均匀的回读速率。
图5是总体上对应于图1中的设备100的SSD数据存储设备200的功能块图。设备200包括提供对设备200的顶层控制的SSD控制器202。与控制器100一样,SSD控制器202可以以多种电路配置来实现,包括利用本地存储器203中的对应可执行指令(固件,FW)的可编程处理器。SSD控制器可另选地实现为硬件电路等。存储于本地存储器中的映射结构204由SSD控制器用于跟踪系统中的数据。
主机接口(I/F)206提供与外部主机设备的通信路径。可任选地提供本地易失性缓冲存储器208以在主机传输操作期间临时地缓冲数据。本地存储器208可由包括DRAM、SRAM等的一个或多个存储器设备形成。
SLC高速缓存存储器210最初存储从主机接收到的数据。可以设想,SLC高速缓存存储器210由作为如上所述的SLC进行配置和操作的一组非易失性闪存存储器单元形成。可使用其他配置。
随后在SSD控制器202的指导下将在高速缓存存储器210中积累的数据传输到n层闪存阵列212。出于本示例的目的可以设想,n层闪存阵列的NAND闪存存储器单元被配置为如上所述的TLC,但这不是限制性的。
如下所述,数据作为预定义边界处的子R块的序列被积累并平铺在SLC高速缓存存储器210中。当高速缓存存储器已满时,执行溢出操作,其中SSD控制器202将子R块按要求的间距分级以确保预期的顺序读取性能。
一旦写入,则驻留在n层闪存阵列212中的数据可以使用垃圾收集技术重新布置到新的位置。垃圾收集技术类似地应用于SLC高速缓存存储器210,并且用从主机新接收的数据形成新的子R块。
图6示出了根据一些实施例的图5的n层闪存阵列212的各个方面。阵列212包括复数m个管芯214,每个管芯构成组成阵列212的半导体集成电路的物理分离部分。示出了总共四(4)个管芯214(管芯0-3),但是在给定阵列中可以使用任意复数个管芯。
每个管芯214通过单独的数据访问或传输电路216(也被称为读/写/擦除或R/W/E电路)访问。分离的管芯214和电路216允许在公共地址上同时执行数据传输操作(例如,编程和读取)。
每个管芯214进一步示出为并入多个擦除块218。尽管每个管芯示出为仅包括总共12个这样的块218,但是应当理解,每个管芯具有明显多得多的擦除块。每个擦除块218表示可以一次擦除的最小量的存储器单元(例如,图2中的112)。数据的页面跨每个块218中的不同字线(存储器单元的行)存储。
最后,在图6中将R块220描绘为跨相应管芯214的所选擦除块218的分组。通常,R块可以看作是RAISE块(独立硅元素的冗余阵列)或垃圾收集单元(GCU),它们作为一个单元独立分配和擦除。每个R块220通常具有跨特定R块地址处的管芯的整个阵列的所有块218。R块地址是以下表达式的整数结果:
R块地址=Int(闪存块地址/闪存平面大小) (3)
在图7中描绘了子R块222。每个子R块在本文中也被称为间隔块,是关联的R块220内的整数个擦除块218。换句话讲,给定的R块220被分成复数个子R块222。可以设想,给定R块220中的所有子R块222将具有相同的大小(例如,构成相同数量的擦除块218),但这不是必需的。
如图7中的224所示,使用独立于设备200的存储介质的主机级别寻址方案以选定的形式接收主机数据。一个常见的示例是固定大小的逻辑块地址LBA(例如,扇区)的形式。可以使用其他形式,包括虚拟地址、密钥块地址等。在一些情况下,主机数据LBA将具有选定的统一大小,诸如512字节、4096字节等。
主机数据在图7中的226处被组合到所谓的主机块地址或HPA中。每个HPA构成适合于由图5的相应SLC高速缓存存储器210和n层闪存阵列212存储的数据的页面。如上所述,在本示例中,可以设想每个HPA的长度将为32KB。从该方案中可以看出,几个(如果不是许多)主机LBA将被组合到每个HPA中。由SSD控制器202(图5)利用的映射结构204保持闪存转换层数据结构以使得能够识别给定主机LBA的当前位置和状态。
如图7所示,来自226的HPA用于依次填充每个子R块222,从HPA 0到HPA N-1。根据需要,填充位228可被附加在每个子R块222的末端以实现期望的大小。这可以用于主机数据压缩时。其他数据也可被并入到每个子R块中,诸如页眉和/或页脚控制数据、ECC数据等,但是为了方便讨论已经省略了这些数据。
根据定义,在每个R块的开始处存在HPA边界(例如,图7中的HPA0),并且每个R块的开始也是子R块的开始。同样,根据定义,在每个R块的末端处存在HPA边界(例如,图7中的HPA N-1),并且每个R块的末端也是子R块的末端。
为了将主机数据平铺到高速缓存存储器210,在R块的开始处开始新的HPA和子R块边界,并且将任意数量的HPA平铺到模数“0”页面,直到到达预定义的子R块边界。当接近子R块边界时,SSD控制器将确定子R块中的最后一个完整HPA,然后将数据从最后一个HPA的末端填充到闪存平面(管芯)的末端。
为了将积累的数据从高速缓存存储器210传输(平铺)到n层闪存阵列214,对于字线中的每个页面,在R块的开始处开始新的HPA和子R块边界。从高速缓存存储器中读取来自交错子R块的有效预压缩HPA并将其传输到n层闪存单元。字线的每个页面都具有一个独特的回收子R块线程,以保持字线中页面之间的HPA间距。当接近公共字线子R块边界时,SSD控制器确定子R块中每个页面的最后一个完整HPA,并像之前一样将数据填充到闪存平面(管芯)的末端。
当在闪存阵列中存储RAISE/奇偶校验(RAISE-独立硅元素的冗余阵列)代码时,代码的位置将从包含该块的任何子R块中进行跟踪和删除。当固件遇到奇偶校验块时,它会跳过该块并进行下一个块以继续回收。根据定义,RAISE/奇偶校验是块对齐的并且不包含用户数据,因此它不会影响子R块的结构,但它是不可回收的情况除外。
这些操作一般在图8中示出。高速缓存存储器220中的数据的所选R块220包括多个子R块222,包括子R块0-2。每个子R块222又包括编号为HPA 0-2的HPA 226。
如图8所示,n层闪存阵列212的不同字线118(见图2)被表示为WL0-WL2。每个子R块中的第一HPA 226(HPA 0)被写入第一字线(WL 0)。也就是说,连接到WL0的存储器单元被配置为TLC以接收数据的第一页面、第二页面和第三页面。数据的第一页面是来自子R块0的HPA 0页面;数据的第二页面是来自子R块1的HPA 0页面;并且数据的第三页面是来自子R块2的HPA 0页面。n层阵列212中的每个字线类似地从三个不同的子R块接收三个间隔开的HPA。
由此可以看出,每个子R块(间隔块)222的大小(即,HPA的数量)确定写入阵列214中给定n层单元的数据的第一页面和第二页面之间的逻辑距离。
通常,R块中子R块的最佳数目是支持主机I/F的完全顺序读取性能所需的管芯和通道线程的数目。那么,子R块的大小就是管芯总数除以所需管芯和通道线程的数目。
确定每个子R块的合适大小的基本方程可以表述如下:
管芯/通道线程的数目=主机读取带宽/闪存通道带宽
闪存通道带宽=闪存平面大小/(Tr+Txfer);
Tr=每个数据表规格的闪存阵列读取延迟时间
Txfer=传输延迟时间=闪存平面大小/闪存通道速率
每个R页面的子R块的数目=管芯总数/管芯/通道线程的数目。 (4)
由此可以看出,逻辑距离(例如,从一个子R块中的第一HPA到下一个子R块中的第一HPA的主机扇区/LBA的数目)通常相对于管芯/通道数目和n通道阵列的读取延迟响应来确定。如方程(4)所示,也可以利用其他因素。
已提供图9A和图9B给出前述讨论的简化示例。图9A示出了已经存储到图5的SLC高速缓存存储器210的HPA的内容。在这个简化的示例中,HPA按10个分组(例如,第一个块HPA0表示存储从HPA 0到HPA 9的前十个HPA,等等)。数据以任何合适的方式存储在SLC高速缓存中。为了简化处理,可以设想高速缓存存储器210和主存储器212两者将共享公共页面大小(例如,32KB),但这不是必需的。
图9B示出了n层闪存阵列212的对应方面。更具体地讲,示出了总共16个管芯(管芯0-F)的第一字线和第二字线112(WL0和WL1)。标号“E”表示连接到每条字线的单元的特定位位置处于擦除状态并准备好适应数据。图9A中的所有数据将被存储在跨图9B中的所有16个管芯的两条字线上。
图10A示出了将第一页数据从高速缓存212写入到n层闪存阵列214中的相应字线。HPA的每个暗块对应于不同的子R块。因此,每个子R块标称布置在40个HPA边界上(例如,第一个写入的子R块从HPA 0延伸到HPA 39)。在图10A的数据编程操作结束时,存储器单元中沿着相应字线的每一个被编程为SLC。
图10B示出了将第二页数据从高速缓存212写入到阵列214中的相应字线。如前所述,数据是在指定的HPA边界处写入的。在图10B的数据编程操作结束时,阵列214中的存储器单元现在被编程为MLC。
图10C示出了将第三页数据从高速缓存212写入到阵列214中的相应字线。这将单元编程为TLC,并用作数据溢出/传输过程的结束。此时,高速缓存存储器210的存储所传输数据的该部分可被进行垃圾收集并且重新分配用于新的用户数据。
图11示出了重新定位从图10C获得的TLC数据的示例性垃圾收集过程。如图所示,可以保持数据间隔,但可以根据需要使用桶形移位方法。例如,将注意到,WL1上的ISB页面和LSB页面已移位整数个管芯(ISB列向下移位12个管芯并且LSB列向下移位8个管芯)。这可以增强损耗均衡和其他效果。
图12提供了SSD数据管理例程300的流程图以总结前述讨论。可以设想,例程由图5的SSD 200执行,其配置有SLC闪存高速缓存存储器210和基于TLC的NAND闪存存储器阵列212。可使用其他配置,因此这仅仅是示例性的,而非限制性的。
在步骤302中配置高速缓存和n层主SSD存储器,随后定义各种操作参数,包括HPA大小、R块大小和子R块大小(边界)。如上所述,子R块的大小将确定第一页面(HPA)从一个子R块到下一个子R块的逻辑间距,这继而将建立写入附接到所选字线的所选管芯上选定的一组存储单元中的第一页与第二页之间的逻辑间距。此间隔应当足以至少标称地以最大可实现的数据传输速率实现顺序数据请求。
之后在步骤306中将数据累积在高速缓存存储器中。可以设想,输入主机数据(例如,LBA)将如上所述被顺序地分组到HPA中。HPA中的数据可能会或可能不会重新排列成逻辑顺序,但可以根据需要执行。例如,可以执行一些重新排序措施,使得LBA 0-1000从0-X排列到一些对应的HPA集合中,但这不是必需的。在其他实施方案中,不管LBA值如何,基于LBA的接收顺序对HPA进行顺序地排序。
此时需要注意的是,在写密集型环境中,LBA可能会不断更新,并且旧版本在高速缓存中标记为过时。版本跟踪可根据需要使用现有的修订映射技术来执行。在一些情况下,可写入新的替换HPA,并将旧版本标记为过时以容纳读取/修改写入更新。无论如何,可以设想,SSD控制器所使用的管理系统将足够稳健以在任何给定时间识别高速缓存中最新版本的数据,并且可以将数据从高速缓存系统地传输到阵列中的TLC存储器单元,同时考虑写入更新等。
决定步骤308确定是否已在高速缓存存储器中累积足够数量的子R块数据。在一些情况下,将累积完整的R块数据,再继续进行传输。在其他情况下,将会积累足够数量的子R块数据,以便在所有可用管芯位置上分配数据。
一旦高速缓存被认为填满,则在步骤310中将数据从高速缓存传输到主存储器,如上面在图9A至图10C中所讨论。应当理解,高速缓存被描述为“填满”并不一定意味着不能将另外的数据存储到高速缓存,而是已达到启动向TLC的传输所需的数据量。
此后,继续执行正常的数据读取和写入操作。读取数据的请求最初将通过SLC高速缓存(或甚至诸如DRAM/SRAM的易失性存储器位置)进行评估以实现高速缓存命中;否则读取操作将使用主存储器来执行和满足。成功传输数据所涉及的高速缓存部分将被回收,并准备好存储来自主机设备的新写入数据。
决定步骤312确定是否应在主存储器上执行垃圾收集操作;如果应该,可将TLC数据写入新的位置,并且可执行桶形移位和其他合适的数据重排技术以增强损耗均衡,而不减少相应数据的逻辑距离以保持最佳的回读性能。
应当理解,尽管在前面的描述中已经阐述了本公开的各种实施方案的诸多特征和优点以及本公开的各种实施方案的结构和功能的细节,但是该具体实施方式仅仅是说明性的,并且可以在由所附权利要求所表达的术语的广泛一般含义所指示的全部范围内对细节进行改变,尤其是在本公开的原理内的部件的结构和布置方面的改变。

Claims (20)

1.一种数据存储设备,包括:
非易失性高速缓存存储器,所述非易失性高速缓存存储器被配置为存储来自主机设备的页面序列;
非易失性主存储器,所述非易失性主存储器包括布置在m个单独集成电路管芯中的每个上的多个n层单元,每个n层单元能够使用相关联的传输电路在编程和读取操作期间同时访问,其中m和n是复数;以及
控制电路,所述控制电路被配置为引导将来自所述页面序列的第一页面和第二页面写入到选定的一组所述n层单元,所述选定的一组所述n层单元耦接到所选集成电路管芯上的共用字线,所述第二页面与所述页面序列中的所述第一页面隔开一定逻辑偏移量,所述逻辑偏移量包括所述页面序列中的多个居间页面,所述逻辑偏移量响应于所述集成电路管芯的m数量以及与所述传输电路相关联的延迟时间而选择。
2.根据权利要求1所述的数据存储设备,其中所述控制电路被进一步配置为将紧接在所述页面序列中的所述第一页面之后的第三页面和紧接在所述页面序列中的所述第二页面之后的第四页面写入耦接到第二集成电路管芯上的共用字线的第二组所述n层单元。
3.根据权利要求1所述的数据存储设备,其中所述控制电路被进一步配置为将所述页面序列布置为对应的间隔块序列,每个间隔块包括来自所述页面序列的所述页面的不同子组,每个间隔块中的每个所述页面具有页面地址,并且其中所述第一页面位于第一间隔块中的第一页面地址处,并且所述第二页面位于不同的第二间隔块中的所述第一页面地址处。
4.根据权利要求3所述的数据存储设备,其中每个间隔块中的每个所述页面被写入所述非易失性主存储器中的所述集成电路管芯中的不同一者。
5.根据权利要求1所述的数据存储设备,其中所述非易失性高速缓存存储器是NAND闪存存储器,所述NAND闪存存储器包括写入所述页面序列的多个单层单元(SLC)。
6.根据权利要求5所述的数据存储设备,其中所述非易失性主存储器是n层NAND闪存存储器,其中所述n层单元至少包括多层单元(MLC)、三层单元(TLC)或4X层单元(XLC)中所选的一者。
7.根据权利要求1所述的数据存储设备,还包括被配置为存储第一总位数的用户数据块的易失性缓冲器,并且其中所述控制电路将所述用户数据块中的多个用户数据块组合到所述页面序列中的每个所述页面中,使得所述页面序列中的每个所述页面具有大于所述第一总位数的第二总位数。
8.根据权利要求1所述的数据存储设备,其中所述控制电路是固态驱动器(SSD)控制器电路,所述固态驱动器(SSD)控制器电路包括可编程处理器和存储在存储器位置中的相关联的编程。
9.根据权利要求1所述的数据存储设备,其中响应于与所述非易失性主存储器相关联的存储器数据传输速率进一步选择所述页面序列中所述第一页面与所述第二页面之间的所述逻辑偏移量。
10.根据权利要求1所述的数据存储设备,还包括耦接到所述主机设备的主机接口(I/F)电路,并且响应于与所述主机I/F相关联的主机数据传输速率进一步选择所述页面序列中所述第一页面与所述第二页面之间的所述逻辑偏移量。
11.一种方法,包括:
在非易失性高速缓存存储器中将从主机设备顺序地接收的数据块按所选顺序存储为页面序列,所述页面序列中的每个后续页面包括多个不同的顺序地接收的数据块;以及
将所述页面序列从所述非易失性高速缓存存储器传输到非易失性主存储器,包括将所述页面序列中的第一页面和第二页面写入所述非易失性主存储器的选定的一组n层单元,所述选定的一组n层单元耦接到所述非易失性主存储器的所选集成电路管芯上的共用字线,所述第二页面与所述页面序列中的所述第一页面隔开一定逻辑偏移量,所述逻辑偏移量包括所述页面序列中的多个居间页面,所述逻辑偏移量响应于所述非易失性主存储器中的集成电路管芯的总复数m以及与所选集成电路管芯相关联的传输电路相关联的延迟时间而选择。
12.根据权利要求11所述的方法,其中所述传输步骤还包括将紧接在所述页面序列中的所述第一页面之后的第三页面和紧接在所述页面序列中的所述第二页面之后的第四页面写入第二组所述n层单元,所述第二组n层单元耦接到所述m个集成电路管芯的第二集成电路管芯上的共用字线。
13.根据权利要求11所述的方法,还包括将所述页面序列布置为对应的间隔块序列,每个间隔块包括来自所述页面序列的所述页面的不同子组,每个间隔块中的每个所述页面具有页面地址,并且其中所述第一页面位于第一间隔块中的第一页面地址处,并且所述第二页面位于不同的第二间隔块中的所述第一页面地址处。
14.根据权利要求13所述的方法,其中每个间隔块中的每个所述页面被写入所述非易失性主存储器中的集成电路管芯中的不同一者。
15.根据权利要求11所述的方法,其中所述非易失性高速缓存存储器是NAND闪存存储器,所述NAND闪存存储器包括写入所述页面序列的多个单层单元(SLC)。
16.根据权利要求15所述的方法,其中所述非易失性主存储器是n层NAND闪存存储器,其中所述n层单元至少包括多层单元(MLC)、三层单元(TLC)或4X层单元(XLC)中所选的一者。
17.根据权利要求11所述的方法,还包括在将所述数据块作为所述页面序列传输到所述非易失性高速缓存存储器之前将来自所述主机设备的所述数据块存储在易失性存储器缓冲器中,每个所述数据块具有第一总体大小,并且所述页面序列中的每个所述页面具有作为所述第一总体大小的倍数的第二总体大小。
18.根据权利要求17所述的方法,其中所述第二总体大小为32KB。
19.根据权利要求11所述的方法,其中响应于与所述非易失性主存储器相关联的存储器数据传输速率以及与所述主机设备相关联的主机数据传输速率进一步选择所述页面序列中所述第一页面与所述第二页面之间的所述逻辑偏移量。
20.根据权利要求11所述的方法,还包括随后在垃圾收集操作期间将所述非易失性主存储器内的所述页面序列迁移到新的位置,同时保持所述第一页面与所述第二页面之间的所述逻辑偏移量。
CN201810418745.8A 2017-05-03 2018-05-03 用于管理存储设备中的数据的方法和装置 Active CN108806754B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/585,429 2017-05-03
US15/585,429 US9905294B1 (en) 2017-05-03 2017-05-03 Writing logically offset pages of data to N-level memory cells coupled to a common word line

Publications (2)

Publication Number Publication Date
CN108806754A CN108806754A (zh) 2018-11-13
CN108806754B true CN108806754B (zh) 2022-04-05

Family

ID=61225806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810418745.8A Active CN108806754B (zh) 2017-05-03 2018-05-03 用于管理存储设备中的数据的方法和装置

Country Status (5)

Country Link
US (1) US9905294B1 (zh)
JP (1) JP2018190483A (zh)
KR (1) KR20180122565A (zh)
CN (1) CN108806754B (zh)
TW (1) TWI689926B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11609718B1 (en) * 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
US11593262B1 (en) 2018-04-25 2023-02-28 Seagate Technology Llc Garbage collection command scheduling
US10922014B1 (en) 2018-06-05 2021-02-16 Seagate Technology Llc Die access order variation
US11138069B2 (en) 2018-06-11 2021-10-05 Seagate Technology, Llc Providing additional parity for non-standard sized parity data sets
US10896002B2 (en) 2018-06-29 2021-01-19 Seagate Technology Llc Reverse directory structure in a garbage collection unit (GCU)
US20200183622A1 (en) * 2018-12-07 2020-06-11 Micron Technology, Inc. Memory circuit package with adjustable active channel count
KR20200114481A (ko) * 2019-03-28 2020-10-07 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
US10956049B2 (en) * 2019-06-12 2021-03-23 International Business Machines Corporation Wear-aware block mode conversion in non-volatile memory
US11294820B2 (en) * 2019-06-28 2022-04-05 Micron Technology, Inc. Management of programming mode transitions to accommodate a constant size of data transfer between a host system and a memory sub-system
US11243711B2 (en) 2020-02-05 2022-02-08 Micron Technology, Inc. Controlling firmware storage density based on temperature detection
US11403228B2 (en) * 2020-02-18 2022-08-02 Micron Technology, Inc. Memory device page program sequence
US11275687B2 (en) * 2020-07-07 2022-03-15 Micron Technology, Inc. Memory cache management based on storage capacity for parallel independent threads

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541757A (zh) * 2011-11-30 2012-07-04 华为技术有限公司 写缓存方法、缓存同步方法和装置
CN103620563A (zh) * 2011-04-26 2014-03-05 Lsi公司 用于非易失性存储器的可变超量配置
CN104769520A (zh) * 2012-11-05 2015-07-08 高通股份有限公司 用于动态存储器功率管理的系统和方法
CN105512048A (zh) * 2014-10-16 2016-04-20 瑞昱半导体股份有限公司 数据配置方法与装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7210001B2 (en) 1999-03-03 2007-04-24 Adaptec, Inc. Methods of and apparatus for efficient buffer cache utilization
KR100389867B1 (ko) 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
US7085909B2 (en) * 2003-04-29 2006-08-01 International Business Machines Corporation Method, system and computer program product for implementing copy-on-write of a file
US7099993B2 (en) * 2003-09-24 2006-08-29 Seagate Technology Llc Multi-level caching in data storage devices
US7549021B2 (en) 2006-02-22 2009-06-16 Seagate Technology Llc Enhanced data integrity using parallel volatile and non-volatile transfer buffers
US7499320B2 (en) * 2007-03-07 2009-03-03 Sandisk Corporation Non-volatile memory with cache page copy
ITMI20071012A1 (it) 2007-05-18 2008-11-19 St Microelectronics Srl Dispositivo di memoria migliorato a veloce programmazione
US7975109B2 (en) * 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
US9201790B2 (en) 2007-10-09 2015-12-01 Seagate Technology Llc System and method of matching data rates
US7984259B1 (en) 2007-12-17 2011-07-19 Netapp, Inc. Reducing load imbalance in a storage system
US8180954B2 (en) 2008-04-15 2012-05-15 SMART Storage Systems, Inc. Flash management using logical page size
US8566507B2 (en) 2009-04-08 2013-10-22 Google Inc. Data storage device capable of recognizing and controlling multiple types of memory chips
US8688894B2 (en) * 2009-09-03 2014-04-01 Pioneer Chip Technology Ltd. Page based management of flash storage
KR101619249B1 (ko) 2009-11-26 2016-05-11 삼성전자주식회사 프로그램 방법
US8301836B2 (en) 2010-02-26 2012-10-30 Red Hat, Inc. Methods for determining alias offset of a cache memory
US8700842B2 (en) 2010-04-12 2014-04-15 Sandisk Enterprise Ip Llc Minimizing write operations to a flash memory-based object store
US20120110239A1 (en) * 2010-10-27 2012-05-03 Seagate Technology Llc Causing Related Data to be Written Together to Non-Volatile, Solid State Memory
CN103858116B (zh) * 2011-08-09 2015-09-02 Lsi公司 I/o设备及计算主机互操作
US9323659B2 (en) 2011-08-12 2016-04-26 Sandisk Enterprise Ip Llc Cache management including solid state device virtualization
US8724389B2 (en) 2012-07-26 2014-05-13 Ocz Storage Solutions, Inc. Non-volatile solid state memory-based mass storage device and methods thereof
US8526234B1 (en) * 2012-11-16 2013-09-03 Avalanche Technology, Inc. Controller management of memory array of storage device using magnetic random access memory (MRAM)
US9910747B2 (en) 2014-09-12 2018-03-06 International Business Machines Corporation Parallel mirrored copying with write consistency
JP5804584B1 (ja) * 2014-10-30 2015-11-04 ウィンボンド エレクトロニクス コーポレーション Nand型フラッシュメモリのプログラム方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103620563A (zh) * 2011-04-26 2014-03-05 Lsi公司 用于非易失性存储器的可变超量配置
CN102541757A (zh) * 2011-11-30 2012-07-04 华为技术有限公司 写缓存方法、缓存同步方法和装置
CN104769520A (zh) * 2012-11-05 2015-07-08 高通股份有限公司 用于动态存储器功率管理的系统和方法
CN105512048A (zh) * 2014-10-16 2016-04-20 瑞昱半导体股份有限公司 数据配置方法与装置

Also Published As

Publication number Publication date
TW201907401A (zh) 2019-02-16
CN108806754A (zh) 2018-11-13
JP2018190483A (ja) 2018-11-29
TWI689926B (zh) 2020-04-01
KR20180122565A (ko) 2018-11-13
US9905294B1 (en) 2018-02-27

Similar Documents

Publication Publication Date Title
CN108806754B (zh) 用于管理存储设备中的数据的方法和装置
US11036628B2 (en) Storage system having a host directly manage physical data locations of storage device
CN108694128B (zh) 存储器系统和用于数据存储的方法
EP2565792B1 (en) Block management schemes in hybrid SLC/MLC memory
US11221771B2 (en) Distribution of logical-to-physical address entries across bank groups
US9471425B2 (en) Data conditioning to improve flash memory reliability
US8677058B2 (en) Memory system selecting write mode of data block and data write method thereof
JP5069256B2 (ja) 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法
KR101089576B1 (ko) 업데이트 및 스크래치 패드 블록들을 위한 개선된 인덱싱을갖는 비휘발성 메모리 및 방법
KR101202620B1 (ko) 복수-스트림 업데이팅을 갖는 비휘발성 메모리 및 방법
CN111373383B (zh) 存储器高速缓存管理
JP2014513850A (ja) 小さな論理グループがアクティブなslcおよびmlcメモリパーティションに分散させられる不揮発性メモリおよび方法
US10055267B2 (en) Block management scheme to handle cluster failures in non-volatile memory
US9817593B1 (en) Block management in non-volatile memory system with non-blocking control sync system
US8995183B2 (en) Data retention in nonvolatile memory with multiple data storage formats
US11640336B2 (en) Fast cache with intelligent copyback
KR20240008590A (ko) 저장 장치 및 그 동작 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant