CN109902039A - 存储器控制器、存储器***及于一存储器中管理数据配置的方法 - Google Patents
存储器控制器、存储器***及于一存储器中管理数据配置的方法 Download PDFInfo
- Publication number
- CN109902039A CN109902039A CN201810157021.2A CN201810157021A CN109902039A CN 109902039 A CN109902039 A CN 109902039A CN 201810157021 A CN201810157021 A CN 201810157021A CN 109902039 A CN109902039 A CN 109902039A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- super
- page
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/1041—Resource optimization
- G06F2212/1044—Space efficiency 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/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种***、方法及包含计算机可读式媒体的装置,用以管理于一存储器中的一超级区块的数据配置。于一方面,存储器具有一平面,平面包含至少两个物理区块,控制电路被设置用以判断一或多个待写入存储器的数据特征;基于被判断的一或多个数据特征及平面的此些物理区块的一区块信息,以配置一超级区块的一超级页面,超级区块组合来自平面上的一或多个物理区块,超级页面组合来自超级区块中相应一或多个物理区块的一或多个单一页面;配置一数据至超级页面中的一或多个单一页面;以及编程超级页面以将数据写入一或多个单一页面。
Description
技术领域
本案是有关于一种存储器控制器、存储器***及于一存储器中管理数据配置的方法。特别是有关于一种于一存储器的一超级区块中管理数据配置的存储器控制器、存储器***及于一存储器中管理数据配置的方法。
背景技术
为了管理像是NAND型闪存之类的存储器,可以指定逻辑超级区块(super block),使得每个超级区块将来自存储器中不同平面的多个物理区块组合起来。超级区块中的物理区块可以同时运行。然而,通常超级区块最初在存储器中被指定为每个超级区块作为整体区块(whole block)来管理,其中物理区块的组合直到其中一个用尽之前不会变化,且在超级区块中没有优化的数据配置,此可能导致效率低落。
发明内容
本案揭露用以于一存储器的一超级区块中管理数据配置的***及技术,例如,一非易失性存储器***,像是NAND型闪存,其可以通过精细的粒度(fine granularity)以管理物理区块及数据配置,藉此改进(或优化)效能。
本案的一方式是提供一种存储器控制器,用以管理一存储器中的数据配置,存储器控制器包含:一控制电路,耦接于存储器,存储器具有一平面,平面包含至少两个物理区块,控制电路被设置用以判断一或多个待写入存储器的数据特征;基于被判断的一或多个数据特征及平面的此些物理区块的一区块信息,以配置一超级区块(super block)的一超级页面(super page),超级区块组合来自平面上的一或多个物理区块,超级页面组合来自超级区块中相应一或多个物理区块的一或多个单一页面(single page);配置一数据至超级页面中的一或多个单一页面;以及编程超级页面以将数据写入一或多个单一页面。
控制电路被设置为通过判断超级区块包含超级页面且超级页面为空白并适于存储数据,以配置超级区块的超级页面。控制电路被设置为用以配置超级区块的超级页面,基于平面的一或多个物理区块的区块信息,以由平面选择一或多个物理区块;基于数据特征,擦除每一个被选择的一或多个物理区块;以及从平面中的一或多个物理区块以组合一或多个单一页面至超级页面。
于一些实施例中,控制电路被设置为配置数据至超级页面中的一或多个单一页面,通过于超级页面中的一第一空白单页准备数据;判断一第二空白单页位于超级页面中;以及于第二空白单页准备数据。于一些例子中,控制电路被设置为于第一空白单页准备数据,通过判断数据具有一特征,特征对应至包含第一空白单页的一第一物理区块的特征;将数据填入第一空白单页。于一些例子中,控制电路被设置为于第一空白单页准备数据;控制电路被设置为于第一空白单页准备数据;将数据及回收数据填入第一空白单页。于一些例子中,控制电路被设置为用以判断数据具有特征对应至第一物理区块的特征,是通过判断数据包含一可靠数据及第一物理区块为一单层式存储(SLC)区块;数据包含一一般数据及第一物理区块为一多层式存储(MLC)区块、三层式存储(TLC)区块及四层式存储(QLC)区块的其中之一;或是数据包含一热门数据且于超级区块中第一物理区块具有少于至少一其他物理区块的一擦除次数。
于一些实施例中,控制电路被设置为通过一个别程序特征同步编程具有数据的每个一或多个单一页面,以编程超级页面,单一页面的个别程序特征对应至被配置于单一页面的数据的一特征。于一些例子中,数据包含一可靠数据,可靠数据被配置至单一页面,且单一页面为一单层式存储(SLC)页面。于一些例子中,数据包含一一般数据,一般数据被配置至单一页面,且单一页面为为一多层式存储(MLC)页面,以及一般数据通过一全序列编程方法及一LM编程方法,以被编程至单一页面。
于一些例子中,数据与一指令相关,以及其中控制电路被设置为依据一需求,以分析数据特征。于一些例子中,需求包含一写入需求,用以从一主机的外部耦接的存储器写入数据;一回收需求,用以搬移位于存储器中的至少一牺牲区块的一有效数据;或一***需求,用以存储与存储器相关的一元数据;以及数据包含来自主机的一回收数据、有效数据或元数据的至少其中之一。于一些例子中,需求包含一系列的写入需求,以及控制电路被设置以通过将来自平面的最大数量的一或多个物理区块组合到超级区块并擦除每个位于超级区块的一或多个物理区块,使得每个位于超级区块的一或多个物理区块成为单层式存储(SLC)、多层式存储(MLC)、三层式存储(TLC)或四层式存储(QLC)的类型的其中之一,藉此以配置超级区块的超级页面。
控制电路被设置以基于判断的数据特征分类数据;以及其中控制电路被设置为通过依据所判断的数据特征,将分类的数据配置到超级页面中的不同单一页面,以将数据配置到超级页面中的一或多个单一页面,使得具有相同特征的数据被收集在同一单一页面中。
于一些例子中,控制电路被设置为基于一数据源、一存取频率、一***或一快取、或一另一数据或一元数据,以分类数据。于一些例子中,控制电路被设置用以依据被判断的数据特征,以判断数据包含不同类型数据;以及通过为超级页面中的不同类型的数据准备一相应的单一页面以配置超级区块的超级页面。
于一些实施例中,控制电路被设置以维持平面中每个独立物理区块的区块信息;以及其中平面中的一物理区块的区块信息包括一或多个参数,一或多个参数包含一区块类型、一擦除次数、一有效次数、一读取次数、一擦除延迟时间、一第一标志用以指示是否物理区块位于一当前数据区块,及一第二标志用以指示是否物理区块为一未使用区块。于一些例子中,控制电路被设置为用以组合多个超级区块,每个超级区块被配置为用于相应类型的数据。
本案的另一方式是提供一种存储器***,包含:一存储器包含多个物理区块;以及一控制器,被设置为用以管理一存储器中的数据配置,通过判断待写入存储器的一或多个数据特征;基于被判断的一或多个数据特征以配置一超级区块的一超级页面及此些物理区块的区块信息,超级区块组合来自存储器的一或多个物理区块,超级页面组合来自超级区块中相应一或多个物理区块的一或多个单一页面;配置一数据至超级页面中的一或多个单一页面;以及编程超级数据以将数据写入至一或多个单一页面。
本案的另一方式是提供一种于一存储器中管理数据配置的方法,包含:通过一控制电路维持存储器中独立物理区块的区块信息;控制电路根据一需求及区块信息以配置一超级区块的一超级页面,超级区块将来自存储器的至少一个物理区块进行组合,超级页面组合来自超级区块中至少一物理区块所对应的至少一单一页面;通过控制电路准备超级页面的至少一单一页面中的一数据,数据包括与需求相关的数据;通过控制电路编程超级页面已将数据写入至少一单一页面中。
上述技术的实现包括方法、电路、***、计算机程序产品和计算机可读性媒体。在一个例子中,可通过耦接到非易失性性存储器的存储器控制器以执行一方法,并且此方法可以包括通过存储器控制器执行的上述操作,例如用于管理超级区块的区块配置的操作。在另一个例子中,一个这样的计算机程序产品适当地嵌入非易失性机器可读性媒体中,非易失性机器可读性媒体可存储一个或多个处理器执行的指令。指令被配置为使得一个或多个处理器执行上述操作。一种这样存储指令的计算机可读性媒体,在指令由一个或多个处理器执行时,被配置为促使一个或多个处理器执行上述操作。
这些技术可以保持存储器的不同平面中的每个单一物理区块的区块信息(例如,擦除次数及/或有效计数),并且参考此信息组合(或配置)不同平面中的至少一个物理区块,以存储写入数据、回收数据和/或元数据。需注意的是,区块的区块信息主要指与包括擦除次数、有效次数,逐页读取次数、擦除延迟时间、未使用标志或CDB标志的区块的使用相关的信息,并且区块信息可以不包括存储器地址在其平面中的区块和/或区块编号(或位置编号)。这些技术提供了分散/收集机制以通过细粒度优化效率,例如,当编程一超级页面以收集具有相同(或相似)特性且位于相同物理区块的数据时,通过根据数据的特性(例如,热门/冷门,***/快取,数据/元数据)对数据进行分类以及依据数据特性以分散数据。相较于绑定超级区块中的物理块以进行管理,此技术可以提高回收效率,减少数据搬移,减少物理区块的擦除次数,解决由于不必要的复制而导致的性能下降和使用寿命下降的问题。这些技术可以同时在一个超级区块中操作多个物理块,并获得最大的数据吞吐量带宽。这些技术可以通过任何适当类型的控制器来实现,以提高存储器的效率。控制器可以是存储器的一部分,驻留在耦接至存储器的主机中,或在外部耦接至主机和存储器及/或与主机互动。控制器可以包括快闪翻译层(flash translation layer,FTL)管理。
此些技术可以应用于各种存储器类型,像是单层式存储(Single-Level Cell,SLC)装置、多层式存储(Multi-level cell,MLC)装置、三层式存储(Triple-Level Cell,TLC)装置、四层式存储(Quad-level cell,QLC)装置或其任何合适的组合。此技术可以应用于各种类型的非易失性性存储器***,像是NAND闪存存储器,NOR闪存存储器,AND闪存存储器,相变存储器存储器(phase-change memory,PCM)等等。另外或可替代地,这些技术可以应用于各种类型的设备和***,例如安全数字(secure digital,SD)卡、嵌入式多媒体卡(embedded multimedia card,eMMC)、固态驱动器(solid-state drives,SSD)、嵌入式***、硬盘、光盘、磁带或其他。***可以是混合***,包括以上多种类型的存储装置。
在附图和下述中阐述了一个或多个公开的实现的细节。由说明书、附图和权利要求,可使本案其他特征、方面和优点将变得显而易见。
附图说明
为让本揭示内容的上述和其他目的、特征、优点与实施例能更明显易懂,所附附图的说明如下:
图1为根据本案一或多个实施例所绘示的用以管理存储器的一***;
图2A为根据本案一或多个实施例所绘示的一存储器中指定的超级区块;
图2B为根据本案一或多个实施例所绘示的一存储器中的另一超级区块;
图3为根据本案一或多个实施例所绘示的于一存储器中管理区块的一状态图;
图4为根据本案一或多个实施例所绘示的于一存储器中的一平面的一区块数据表的一例;
图5为根据本案一或多个实施例所绘示的配置数据至一超级页面的一例;以及
图6为根据本案一或多个实施例所绘示的一种程序用以将数据从一需求写入至一超级区块的一超级页面的一例。
图7为根据本案一或多个实施例所绘示的一种程序用以依据一需求以配置一超级页面的一例。
图8为根据本案一或多个实施例所绘示的一种程序用以准备数据以编程具有一超级页面的一单一页面的一例。
图9为根据本案一或多个实施例所绘示的配置一超级页面用以依序写入的一例。
图10为根据本案一或多个实施例所绘示的配置用于混和类型数据的一超级页面的一例。
图11为根据本案一或多个实施例所绘示的配置包含混合类型数据的区块用以存储混和数据的一超级页面的一例。
图12A为根据本案一或多个实施例所绘示的通过全序列编程方法以编程一MLC单元的一例。
图12B为根据本案一或多个实施例所绘示的的通过LM编程方法以编程一MLC单元的一例。
图13为根据本案一或多个实施例所绘示的游一主机及一客户端配置数据至多个超级区块的一例。
【符号说明】
100:***
110:装置
112:装置控制器
113:处理器
114:内部存储器
116:存储器
120:主机装置
200:于一存储器中指定的超级区块的示例
202、204、206、250:超级区块
252、902、1002、1102:超级页面
300:绘示于一存储器中管理区块的示例300
302:未使用区块群组
304:当前数据区块群组
306:数据区块群组
308:牺牲区块群组
400:区块信息表
500:配置数据至一超级区块的一超级页面的示例
600:将数据由一需求写入于一存储器中的一超级区块的一超级页面的流程
700:根据需求于超级区块中分配超级页面的流程
800:准备数据以对超级页面中的单一页面进行编程的流程
602~610、702~708、802~812:步骤
900:主机装置进行一系列写入需求时,分配一超级页面的示例
1000:于一超级区块中配置一超级页面以混合热门、冷门及回收数据的示例
1100:配置包含混合类型区块以存储混合数据的一超级页面的示例
1200:全序列方法
1250:LM编程方法
1300:从主机端及装置端两者配置数据至存储器中的多个超级区块的示例
具体实施方式
图1绘示用以管理存储器的一***100的一例。***100包含一装置110及一主机装置120。装置110包含一装置控制器112及一存储器116。装置控制器112包含一处理器113及一内部存储器114。
于一些实施例中,装置110为一存储装置。例如,装置110可以是嵌入式多媒体卡(embedded multimedia card,eMMC)、一安全数字(secure digital,SD)卡、一固态驱动器(solid-state drive,SSD),或一些其他适合的存储器。于一些实施例中,装置110为一智能型手表、一数字相机或一多媒体播放器。于一些实施例中,装置110为耦接于主机装置120的一客户端装置。例如,装置110是作为主机装置120的一数字相机或一多媒体播放器中的SD卡。
装置控制器112可以是一通用微处理器或一专用微控制器。于一些实施例中,装置控制器112是装置110的一存储器控制器。以下部分描述装置控制器112为存储器控制器的实现的各种技术。然而,在以下部分中描述的技术也适用于装置控制器112为不同于一存储器控制器的另一类型的控制器的实现。装置控制器112亦可以被包含于一主机装置120或被外部地耦接于主机装置120或装置110。
处理器113被设置为执行指令并处理数据。此些指令包含固件指令及/或其他程序指令,其分别作为固件代码(firmware code)及/或程序代码,存储于内部存储器114中。数据包含程序数据,程序数据对应置固件及/或其他处理器所执行的程序其中其他合适的数据。于一些实施例中,处理器113是通用处理器或一专用微控制器。处理器113也被称作中央控制单元(central processing unit,CPU)。
处理器113由内部存储器114存取指令及数据。于一些实施例中,内部存储器114为一静态随机存取存储器(static random access memory,SRAM)或动态随机存取存储器(dynamic random access memory,DRAM)。举例而言,于一些实施例中,当装置110是eMMC、SD卡或智能型手表时,内部存储器114是一SRAM。于一些实施例中,当装置10是一数字相机或一多媒体播放器时,内部存储器114是一DRAM。
于一些实施例中,内部存储器114为一闪存(cache memory),其包含于装置控制器112中,如图1所示。内部存储器114存储指令代码及/或资处理器113在运行时所请求的数据,指令代码相当于处理器113所执行的指令。
装置控制器112将存储器116的指令代码及/或数据传送到内部存储器114。于一些实施例中,存储器116唯一非易失性存储器,被配置为用以长期存储指令及/或数据,例如,一NAND型闪存装置,或一些其他适合的非易失性存储器装置。在存储器116是NAND型闪存的实施例中,装置110是一闪存装置,例如,一快闪记忆卡,及装置控制器112为一NAND型快闪控制器。例如,于一些实施例中,当装置110是一eMMC或一SD卡时,存储器116为一NAND型快闪(NAND flash);于一些实施例中,当装置110是数字相机,存储器116是一SD卡;及于一些实施例中,当装置110是一多媒体播放器,存储器116是一硬盘(hard disk)。仅为了说明的目的,以下描述使用NAND型闪存作为存储器116的示例。
装置控制器112可以被设置以管理于存储器116中超级区块的区块配置,如美国专利US15/836476,标题为超级区块的区块管理配置(“MANAGING BLOCK ARRANGEMENT OFSUPER BLOCKS”)其与本案优先权文件US 15/836476同日提交其内容通过整体引用并入本文。举例而言,装置控制器112可以基于独立物理区块以维持区块信息,而不是基于整个超级区块,装置控制器112基于一策略以于一平面中选择一空闲区块(free block),例如,基于擦除次数(erase count)、未使用的区块数量(unused block count)、总有效次数(totalvalid count),及/或擦除延迟时间(erase delay time),将不同平面的至少一区块组合至一超级区块,及/或于平面中基于一策略(例如,贪婪(greedy)、刷新(refresh)或磨损平衡(wera-leveling))以选择一牺牲区块(victim block)。
装置控制器112可以根据一或多个特征以分类数据。用语「字符」(“character”)和“特征”(“characteristic”)在本文中可以互换使用。于一些例子中,数据根据数据源进行分类。一第一数据源可以是用以由主机装置120更新数据的一写入命令。数据在存储器116(或装置110)的外部,并且可以是用户数据。第二数据源可以是一区块回收(blockreclaim),将有效数据由一或多个牺牲区块搬移至超级区块(或一当前数据区块)。数据可以被视为回收数据(reclaim data)。第三数据源可以是存储器116(或装置110)的元数据(metadata),例如,***管理数据,像是快闪翻译层(flash translation layer,FTL)表。回收数据和元数据位于存储器116(或装置110)的内部。
于一些例子中,数据根据存取频率进行分类。于一些例子下,数据的存取频率可以通过读取次数、写入次数、或更新前的搬移次数以判断。于一些例子下,数据的存取频率可以由上次存取的增量时间(delta time)以决定,例如,上次读取与当前更新时间之间的时间区间。根据数据存取频率以决定一热门度(或冷门度),数据的存取频率越高,数据的热门度越高。
于一些例子中,数据以安全级别分类,内部***级别或是一般数据级别。在一般数据级别中,数据可以基于频繁的写入及读取(或一存取频率)被分类为具有高热门度。例如,数据热门度可由以下顺序逐渐地降低(1)频繁写入及读取的数据,(2)频繁写入但很少读取的数据,(3)很少写入但频繁读取的数据,(4)很少写入及很少读取的数据。安全级别(security level)的数据中,可以包含安全或或可靠的数据,此些数据可以被视为热门数据。内部***级别的数据中,可以包含***管理数据,此些数据可以被视为热门数据。
于一些例子中,数据依据***或快取以分类。于一些例子下,可以从例如来自主机装置120的命令的一或多个参数获得提示,以区分正常的、***的,或快取的数据。例如,命令可以包含用于指示***数据的标志(flag)及/或用于指示快取的另一个标志,***数据及/或快取数据可以被指定为热门数据。于另一例子中,若与命令相关的数据小于一默认长度,例如16千字节(kilobyte,KB),则数据可以被分类为热门数据。若与命令相关的数据大于一默认长度,例如128KB,则数据可以被分类为冷门数据。
于一些例子中,装置控制器112可以通过存取地址及/或长度以分类数据。若存取地址位于一内部***区域,例如文件分配表(file allocation table,FAT)中,则将数据分类为内部***数据(及/或热门数据)。若数据长度小于一门限值,例如16KB,则可将数据是为快取数据(及/或热门数据)。
如以下进一步详细讨论的,装置控制器112可以被配置为管理一超级区块中的数据配置。例如,装置控制器112可响应于一需求,例如,由主机装置120写入外部数据的请求、由一牺牲区块搬移有效数据的请求,及/或存储存储器116的元数据的请求,以指定超级区块或分配超级页面。如上所述,装置控制器112可以根据数据的特征(例如,热门/冷门、***/快取,及/或数据/元数据),对数据进行分类,并且在对超级页面进行编程(program)时,收集在相同物理区块中具有相同特征的数据。具体而言,装置控制器112可以通过策略,例如,未使用的区块数/平面上的擦除次数,以安排数据放置在不同平面上,且均匀地分散具有不同特征的数据于不同平面上,并于相同平面上收集具有类似特征的数据,例如相邻逻辑地址/存取频率。
图2A绘示于一存储器中指定的超级区块的示例200。存储器可以是图1中的存储器116。存储器可以包含一或多个存储器装置。于一些实施例中,存储器包含多个晶片(Die)。每个晶片可以是一存储器芯片,且其上包含多个存储器阵列及周边电路。一存储器阵列可以包含多个平面,每个平面包含多个存储器单元的多个物理区块。每个物理区块可包含多个存储器单元的页面,其可以存储多个数据区段。
位于共同平面的两个物理区块不能同时***作(例如,擦除),但位于不同平面的两个物理区块可以同时***作。一超级区块可以被指定,例如通过图1中的控制器112指定,以组合来自不同平面的至少一物理区块。每个超级区块中的物理区块来自不同的平面,即任何平面不能在超级区块中提供多于一个区块。超级区块包含多个超级页面,每个超级页面组合来自多个超级区块中对应的多个物理区块的多个页面。超级页面中的每个页面在其相应的物理区块中可以具有一相同的页码。超级页面可以被编程,超级页面中的所有页面可以被同时编程。
如图2A所示,存储器包含x晶片,从晶片#0至晶片#x-1。晶片#0包含i个平面,由平面#0至平面#i-1,每个平面包含m+1个物理区块,其中0、1、...、或m是指示一对应区块的物理位置的位置编号及其平面。晶片#i-1包含从平面#0到平面#j-1的j个平面,且每个平面包含n+1个物理区块,其中0、1、...、或n是指示对应区块的物理位置的位置编号及其平面。每个x、i及j为一大于1的整数,且每个m及n为大于0的整数,其中i=j或i≠j,m=n或m≠n。在一些例子中,存储器包含多个晶片,且每个晶片包含一平面。
于一些例子中,一超级区块包含具有相同位置号码的多个区块,一超级区块可以包含来自存储器中每个晶片的每个平面的一区块,此提供最大的带宽(bandwidth)。例如,如图2A所示,超级区块202包含存储器中每个平面的位置编号为0的区块。然而,一超级快可包含具有相同位置编号的区块,但是来自少于所有平面的区块,例如来自少于全部的经援或少于一晶片的全部平面。例如,超级区块204包含来自多个晶片的区块,但不包含每一个晶片的所有平面。因此,超级区块204具有比超级区块202更少的区块,且具有更小的带宽。超级区块206只包含一个物理区块,例如,一平面的区块#m,例如,于晶片#0中的平面#0。
于一些例子中,超级区块将来自不同平面的不同位置编号的物理区块组合在一起。如图2B所示,例如超级区块250将晶片#0的平面#0中的区块#5、晶片#0的平面#1中的区块#18、晶片#1的平面#0中的区块#66及晶片#1的平面#1中的区块#21组合在一起。超级页面252组合超级区块250中的四个区块中的四个页面。此四个页面在其区块中具有相同的页码,且在超级页面252被编程时可以被同时编程。
于一些实施例中,一超级区块将来自不同的相同存储器类型的区块组合在一起,例如,单层式存储(Single-Level Cell,SLC)、多层式存储(Multi-level cell,MLC)、三层式存储(Triple-Level Cell,TLC)或四层式存储(Quad-level cell,QLC)。超级块组合来自不同存储器类型的区块,例如,来自不同平面的混合SLC及MLC。
如在下面进一步详细讨论的,一超级区块可以被部署以写入更新数据,例如存储器外部的数据,像是来自主机装置的数据,以搬移有效数据,例如,存储器中的数据,或写入元数据,例如用于快闪翻译层(FTL)管理的数据。若超级区块不能写入/搬移时,一超级区块亦可以释放区块的组合。
图3绘示于一存储器中管理区块的示例300。存储器可以是图1中的存储器116,且可以被一控制器以管理,例如,图1中的控制器112。示例图300绘示出由控制器管理存储器中的超级区块的配置的一概况。
存储器包含多个平面,每个平面具有一或多个物理区块。两层式(two-level)的设置可以被分类以控制存储器中的硬件区块。第一层是单区块层(single block level),其中数据区块、未使用的区块(例如空闲区块(free block)或空区块(empty)),及牺牲区块皆属于它。如下面进一步详细讨论的,牺牲区块是要被回收到未使用区块中的区块。第二层是超级区块层(super block level),其中超级区块是当前数据区块(current data blocks,CDBs),开启用以进行数据写入。
初始时,例如,当存储器被初始化时,存储器中的物理区块被放入未使用区块群组302中,未使用区块群组302是由单区块层进行管理。控制器保持未使用区块群组302中的各个物理区块的区块信息。于后述表一、表二中进一步详细描述区块信息。
控制器可以从每个平面中选择不超过一个物理区块,并根据一或多个策略,组合被选择的物理区块,基于平面上物理区块的区块信息以获得一超级区块,例如,基于擦除次数、剩余有效次数及/或擦除延迟时间。超级区块包含从此些平面组合的至少一物理区块。控制器可将一或多个超级区块(或当前数据区块)组合(combine)于存储器中,当前数据区块位于当前数据区块群组304中,当前数据区块群组304是由超级区块层进行管理。
当一超级区块(或一当前数据区块)不能存储更多数据时,当前数据区块被释放(Release)为单独数据区块的数据区块群组306,数据区块群组306是由单区块层进行管理。
数据区块群组306中的数据区块可以依据一或多个策略,例如基于贪婪、刷新或磨损平衡策略,而被指定(assign)为一牺牲区块。牺牲区块被放入牺牲区块群组308,牺牲区块群组308是由单区块层进行管理。
回收操作(reclaim operation)可以被执行于牺牲区块群组308中的一或多个牺牲区块上。位于牺牲区块中的有效数据可以被搬移(migrate)到当前数据区块群组304中的一或多个超级区块(或当前数据区块)。然后,当一牺牲区块充满无效的数据时,牺牲区块可以被释出(free),例如,擦除,以成为未使用区块,其可以被推送到未使用区块群组302。
如上所述,当前数据区块群组304是由超级区块层进行管理,而未使用区块群组302、数据区块群组306及牺牲区块群组308中的每一者是由单区块层进行管理。通过此方法,此存储器可精细地被管理,此可提高或优化存储器的效率。
图4绘示一存储器的一平面的区块信息表400的一例。区块信息表400的各字段由左而右分别用以表示单一区块编号、当前区块标志、未使用旗标、擦除次数、有效次数及逐页读取次数。存储器可以是图1中的存储器116,平面可以是图1中的任何平面,例如,于晶片#0上的平面#0。平面可以包含N-1个物理区块。每个平面可以具有其自己的且独立于其他位于相同存储器中其他平面的表(table)。存储器控制器,例如,图1的控制器112,可管理存储器中每个平面的区块信息表。如区块信息表400所绘示,区块数据可以包含于下述讨论的多个参数。
当前数据区块标志字段指示是否一单一区块位于当前数据区块中,若当前数据区块标志为真(true),则单一区块位于当前数据区块中。若当前数据区块标志为假(false),单一区块不位于当前数据区块中,且可以是一个数据区块,例如,位于图3的数据区块群组306中,或一未使用区块,例如,位于图3的未使用区块群组302中。
未使用标志字段可以指示是否一单一区块为未使用数据区块。若未使用标志为真,则单一区块可以被选取至一当前数据区块,并将其有效次数及读取次数设置为0。若未使用标志为假,则单一区块可以位于当前数据区块中,也可以位于数据区块群组的一数据区块中。
擦除次数字段用于纪录单一区块被执行擦除操作的次数。擦除次数与单一区块的P/E(编程/擦除)周期相关。当擦除次数超过一门限值时,单一区块可以被认为是一紧急区块或已被磨损的一坏损区块。
有效次数字段用以记录在一单一区块中有多少有效数据。有效次数越大,存储的有效数据越多,此代表剩余未使用的次数越少,单一区块用尽的速度越快,或成为数据区块群组中的数据区块的速度越快。平面的总有效次数(或有效次数的总数)为平面中所有区块的有效次数的的总和。
通过逐页读取次数字段可通过页面纪录读取单一区块中每个页面被读取的次数。读取次数还可以记录单一区块被读取的次数,即单一区块上的读取操作的总和。
于一例子中,如图4所示,对于第1区块1而言,当前数据区块标志为真,未使用标志为假,擦除次数为6,有效次数为102,且每页读取次数分别为100、54、...、77。对于第N-1区块而言,当前数据区块为假,未使用标志为真,擦除次数为5,有效次数为0,且每页读取次数皆为0。
区块信息还可以包含一单一区块的擦除延迟时间,其记录从单一区块被擦除的时间点至当前时间点的一区段时间。表一为擦除信息表的一例,其包含擦除顺序,从倒数第一到倒数第十,及其相关联的权重(%),擦除顺序越小,权重越高。例如,如表一所示,从最后一次擦除到倒数第十次擦除的次序的权重分别是90%、80%、70%、...、0。
表一
表二为擦除信息表的另一例子,其包含擦除延迟时间及其相关的权重(%)。擦除延迟时间越短,权重越高。如表二所示,擦除延迟时间(erase delay time,EDT)小于1分钟时的权重为100%,擦除延迟时间小于3分钟时的权重为60%,擦除延迟时间小于15分钟时为30%,擦除延迟时间小于2小时的权重为10%,擦除延迟时间不小于两小时的权重为0。
表二
擦除信息表(表一、表二)可以被用以避免在一短时间内频繁地擦除区块,在短时间内频繁地擦除区块将会严重地耗损存储器单元(memory cells)。于一些例子中,「顺序」或「延迟时间」可以被作为计量以限制选择空闲区块及/或牺牲区块。例如,在选择空闲区块期间,控制器可以获得每个空闲区块的相应擦除次数并参考擦除信息表(表一、表二)以取得每个空闲区块的相应权重。然后,对于每个空闲区块可以通过将各个权重乘一个数,例如所有空闲区块的最大擦除次数,以计算各自的加权数。然后,控制器可以通过比较相应的擦除次数和相应空闲区块之间的加权数的总和,以选择一空闲区块。例如,控制器可以选择具有相应擦除次数和相应加权数最小和的空闲区块。
于一些例子中,控制器可以依据一类似选择一空闲区块的程序,以选择一牺牲区块。控制器可以取得每个候选牺牲区块的相应擦除次数,并参考擦除信息表(表一、表二)以取得候选牺牲区块的相应权重。然后,对于每个候选牺牲区块,可以通过将相应权重乘以一数值,例如,所有候选牺牲区块的一最大有效次数,以计算相应的加权数。然后,控制器可以通过比较候选牺牲区块之间的相应有效次数和相应的加权数的总和,以选择一牺牲区块。例如,控制器可以选择具有最大的相应有效次数和相应的加权数的总和的牺牲区块。
图5绘示配置数据至一超级区块的一超级页面的示例500。数据配置可以基于数据的一或多个数据特征及超级区块中的一或多个物理区块的特征。物理区块的特征可以存放在包括物理区块的相应平面的区块信息表中,例如图4的区块信息表400及表一的擦除信息表。
于一些例子中,超级区块将来自具有接近未使用区块数的平面的物理区块进行组合。如图5所绘示的,超级区块由晶片D#0及D#1中四个对应的平面,以组合四个物理区块。每个平面的未使用区块数分别为5、10、6及8。
如上所述,数据可以根据其特征,如热门度/冷门度,以被分类。如图5所示的例子,待写入的数据包含四个群组的数据:第一热门数据、第二热门数据、次热门数据(warmdata)、冷门数据。此四个群组的数据可以基于其特征及超级区块中的区块特征,以被配置至超级区块的超级页面中的相应的页面。
于一些例子中,具有未使用区块数少于其他平面的一平面,此平面可能具有比其他平面更多的有效数据。由于热门数据比冷门数据更容易变成无效数据,热门数据可以被放置于具有较少未使用区块的平面上的区块中。以此方式,区块可以更容易地被回收到一未使用区块,且平面上的未使用区块数可以被平衡。如图5所示,第一热门数据被配置至平面P#0的区块,D#0中的此区块具有5个未使用区块数,第二热门数据被配置至平面P#0的区块,D#1中的此区块具有6个未使用区块数,次热门数据被配置至平面P#1的区块,D#1中的此区块具有8个未使用区块数,冷门数据被配置至平面P#1的区块,D#0中的此区块具有10个未使用区块数。
图6绘示用以将数据由一需求写入于一存储器中的一超级区块的一超级页面的流程600的示例。存储器可以是图1的存储器116,且流程600可以由一控制器以执行,例如图1的控制器112。
控制器判断是否有任何写入/回收需求(602)。如上所述,在一些例子中,需求是来自主机装置,例如图1中的主机装置120,由外部耦接于存储器。需求可以包括从主机装置将数据,例如用户数据,写入存储器的请求。于一些例子中,需求是区块回收请求,以内部地将有效数据从存储器中的牺牲区块搬移至存储器一超级区块(或一当前数据区块)。于一些例子中,需求是将元数据写入存储器116,例如,***管理数据项是快闪翻译层表。需求亦可以包含二或多个写入需求,区域回收请求及元数据写入需求。
若控制器判断没有写入/回收需求,则结束流程600。若控制器判断有写入/回收需求,则控制器依据需求配置一超级页面(604),例如,于图7中进一步所讨论的。
于配置超级页面之前,控制器可以分类与需求相关的数据。如上所述,数据可以根据数据源、存取频率、***或快取、及/或数据或元数据以进行分类。不同类型的区块可以适合存储具有不同特征的数据。例如,单层式存储区块适合存储可信赖的数据,而多层式存储区块适合存储一般数据,例如来自主机装置的用户数据。多层式存储区块可存储比单层式存储区块更多的数据,且多层式存储区块可以被用于存储来自一系列写入需求的数据媒体流。具有较小擦除次数的区块适合存储热门数据,而具有较大擦除次数的区块适合存储冷门数据或回收数据。
被分配的超级页面可组合来自超级区块中的对应物理区块的一或多个单一页面。控制器执行一循环以配置超级页面中的数据。控制器在超级页面中的单一页面中准备及填入数据(606),例如,于图8进一步详细讨论的内容。然后,控制器判断超级页面中是否还有任何的空白单页(608)。若控制器判断超级页面中存在空白单页,则流程回到步骤606以继续循环。
若控制器判断超级页面中没有空白单页,也就是超级页面中的所有单一叶面都被分配数据,则控制器编程超级页面610,即将数据同时编程至超级页面中的所有单一页面。
图7绘示根据需求于超级区块中分配超级页面的流程700的示例。流程700可以如图6的步骤604一样地被控制器执行,需求可以是图6中的需求。
控制器判断是否存在任何适合存储数据的空白超级页面(702)。若控制器判断存在适合存储数据的空白超级页面,则控制器配置超级区块以存储数据,且结束流程700。控制器可以继续执行图6的步骤606。
于一些情况下,控制器判断没有适合存储数据的空白超级页面。例如,数据为安全数据。然而,超级页面不结合一单一单层式存储(SLC)页面,因此超级页面不适合存储数据。于一些例子中,控制器参考将不同类型的数据与不同类型的页面(或区块)相关联的一表格。例如,可靠数据包含安全数据及***数据,可靠数据可以与具有单层式存储(SLC)类型的页面相关联,一般数据包含用户数据和媒体流数据,可以与具有多层式存储(MLC)类型的页面相关联。若控制器基于此表,判断空白超级页面具有与一或多种类型数据相关联的一或多个单一页面,则控制器判断超级页面适合存储数据。若控制器基于此表,判断空白超级页面不具有与此些类型数据相关联的一或多个单一页面,则控制器判断超级页面不适合存储数据。
响应于判断不存在适合于存储数据的空白超级页面,控制器例如基于需求和/或根据需要选择(或组合)存储器的不同平面中的至少一区块(704),例如,基于需求及/或一或多个用以组合超级区块的策略。例如,策略可以基于擦除次数、未使用区块数、总有效次数、总擦除次数及/或擦除延迟时间。
于一些例子中,控制器判断需求与写入顺序相关。控制器可以选择相同类型的区块(单层式存储(SLC)、多层式存储(MLC)、三层式存储(TLC)或四层式存储(QLC)),例如单层式存储(SLC)用以存储可靠数据或多层式存储(MLC)用以存储一般数据,并且使用来自平面最大数量的区块以组合超级区块,例如使超级区块的带宽最大化。于一些例子中,由于单层式存储(SLC)可以用作非易失性快取,以避免数据在停电时的丢失,控制器可以将数据放入单层式存储(SLC),然后在迁移到三层式存储(TLC)(或四层式存储(QLC))。于一些例子中,控制器根据需求以判断一系列的写入包含不同的媒体流数据。控制器可以组合不同的超级区块,并将不同的数据媒体流分散至不同的超级区块。例如,一超级区块可以被设置为存储用户数据,一超级区块可以被设置为存储可靠数据,一超级区块可以被设置为存储元数据及一超级区块可以被设置为存储混和数据。
于一些例子中,控制器判断需求与不同的程序数据相关。控制器可以将不同类型的数据分成超级区块内的不同单一区块,并根据需求将每个单一区块(或页)设置对应的擦除/编程特征。例如,一或多个多层式存储(MLC)区块用于存储一般数据且衣或多个单层式存储(SLC)区块用于存储可靠数据。
然后,控制器通过由需求决定的特征以擦除每个单一区块(706)。此特征可包含区块的擦除/编程特征。例如,如上所述,如果需求需要存储可靠数据,一单一区块可以被擦除为单层式存储(SLC)区块,并且随后依据此特征被编程以存储可靠数据。若需求需要存储一般数据,则区块可以被擦除为多层式存储(MLC)区块。若需求需要存储可靠数据和一般数据,则控制器可以将多个区块擦除为单层式存储(SLC)区块与多层式存储(MLC)区块的组合。
然后,控制器组合将擦除过的单一区块从平面至超级区块,其中来自平面单一区块中的单一页面被组合为一超级页面(708)。超级页面可以被用以存储与需求相关的数据。接着,控制器可以进行执行图6中的步骤606。
图8绘示用以准备数据以对超级页面中的单一页面进行编程的流程800的示例。流程800可以如图6的步骤606一样地被控制器执行。数据与写入/回收需求相关,例如图6的需求。超级页面可以是图7配置的超级页面。图7中所述的组合的超级区块中,超级页面包括来自不同平面的相应的单一区块的多个单一页面。流程800是为了超级页面中的单一区块的单一页面准备数据。
控制器判断是否需求中有任何数据具有相同(或相似)特征的单一区块(或单一页面)(802)。例如,数据的特征对应于单一区块(或单一页面)的特征。如上所述,控制器可以存储一表,此表关于不同类型的数据与不同类型的区块(或页面)。于一些例子中,若数据包含可靠数据及单一区块为单层式存储(SLC)区块,则控制器判断需求中的数据具有与单一区块相同(或相似)的特征。如果数据包含可靠数据,且单一区块为多层式存储(MLC)数据,则控制器判断数据不具有与单一区块相同(或相似)的特征。于一些例子中,如果数据被分类为热门数据且单一区块被设置为(或适合于)存储热门数据,则控制器判断需求中的数据具有与单一区块相同(或相似)的特征。例如,单一区块可以具有适合于存储热门数据的一小擦除次数。若数据被分类为热门数据且单一区块被配置为存冷门数据或不是和存储热门数据,则控制器判断需求中的数据不具有与单一区块相同(或相似)的特征。
如果控制器判断需求中的数据具有与单一区块相同(或相似)的特征,则控制器接收具有与区块(804)相同(或相似)特征的写入数据。于一些例子中,控制器可以判断需求中是否存在任何其他的写入数据具有与区块相同(或相似)的特征,及/或是否存在任何写入数据与另一个需求具有与区块相同(或相似)的特征。需求中的所有数据可以来自主机,且可以被接收到存储器中的缓冲器,供之后编程使用。
然后,流程800进行到步骤806,其中控制器判断在单一页面中是否存在任何空闲空间(除了保留用于元数据的空闲空间)以进行回收(或「垃圾收集」)。藉此,控制器可以最大化超级页面的编程带宽,从而最大化存储器的效率。回收用以由一或多个牺牲区块中搬移有效数据。于一些例子中,于步骤804,若控制器判断需求中的数据不具有与单一区块相同(或相似)的特征,则流程800进入步骤806。
如果控制器判断在单一页面中有空闲空间进行回收,则控制器选择具有与区块相同(或相似)的回收数据(808)。例如,如果此区块被配置(或合适)以存储热门数据,控制器选择分类为热门数据的回收数据。如果此区块是单层式存储(SLC)区块,则控制器选择归类为可靠数据的回收数据,例如***数据或安全数据。如果此区块是多层式存储(MLC)区块,则控制器选择归类为用户数据的回收数据。
然后,流程800进入步骤810,其中控制器判断此页面中是否存在任何元数据更新需求(810)。于一些例子中,于步骤806中,若控制器判断单一页面中没有空闲空间以进行回收,流程800亦进入步骤810。
控制器判断此页面中存在元数据更新需求,控制器将元数据准备至缓冲器中(812)。然后,控制器将数据和/或元数据转存储至缓冲器中,以供单一页面依据此特征进行编程(814)。控制器可以将写入数据填入单一页面。控制器可以在单一页面的一部分,例如多个存储器单元,按照需求配置写入数据,并在单一页面的其余部分中回收数据。
于一些例子中,于步骤810,若控制器判断页面中没有元数据更新需求,流程800亦会进入步骤814。控制器可以重复流程800,如图6所绘示的,已准备数据至超级页面中的所有单一页面。
图9~11绘示分配超级页面并在超级页面中配置数据的示例。每个例子可以由控制器,例如图1的控制器112实现,控制器112耦接至一存储器,例如为图1的存储器116。
图9绘示例如从一主机装置像是图1中的主机装置120进行一系列写入需求时,分配一超级页面的示例900。控制器可以判断需求是针对包括大量数据的一系列写入。于一些例子中,控制器可以判断与需求相关联的数据的长度。若此长度比一预设门限值长,例如预设门限值为128kB,则控制器判断需求为一系列的写入。于一些例子中,需求包含指示一系列的写入的提示,且控制器可以判断需求是由提示开始的一系列的写入。控制器可以例如,根据图7的流程700,以配置超级页面902于超级区块中存储数据。控制器可以最大化在超级区块中的被组合的区块的数量,所有区块可以配置为多层式存储(MLC)区块。
如图9所示,超级区块在来自四个平面的四个多层式存储(MLC)区块中以两个芯片晶片0和晶片1组合,四个多层式存储(MLC)区块分别为位于平面0的多层式存储区块a、位于平面1的多层式存储区块b、位于平面0的多层式存储区块c及位于平面1的多层式存储区块d。单一区块中的每个页具有16k*8个存储器单元且每个页可以存储32kB数据,在每个存储器单元以多层式存储(MLC)编程时。由于超级页面包含四个单独的多层式存储(MLC)页面,超级页面可以被配置已用于存储128kB数据。然后,控制器可以接收128kB数据,将数据配置在超级页面中并编程超级页面。数据可以被编程到超级页面中,此超级页面组合多层式存储(MLC)页面,例如通过在图12A中进一步讨论的一系列方法。
图10绘示于一超级区块中配置一超级页面以混合热门、冷门及回收数据的示例1000。超级区块将三个单层式存储(SLC)区块组合在两个芯片晶片0和晶片1中。
控制器可以维护每个平面的区块信息表,其包含平面中物理区块的区块信息。控制器可以根据平面中的物理区块的区块信息及数据的特征以判断超级区块的组合。例如,控制器可以基于区块的总擦除次数(total erase counts,TECs)以判断超级区块的组合。于一些例子中,控制器判断平面的总擦除次数(TEC)是否超过一门限值。如果平面的总擦除次数(TEC)超过门限值,则控制器不会从此平面选择区块至超级区块。门限值可以基于经验值或平面的总擦除次数(TEC)以决定。于一些实施例中,每个平面的总擦除次数(TEC)测量每个平面的磨损状态。控制器可以监测最小总擦除次数(TEC)与最大总擦除次数(TEC)之间的差值,并根据差值设置一个门限值,基于差值以触发一冷却配置策略使得所有平面的磨损程度相同。
如图10所绘示的,晶片0的平面0与平面1及晶片1的平面0与平面1的总擦除次数(TEC)分别为00、01、10和11。由于晶片1的平面1的总擦除次数(TEC)太高,控制器可判断不要从此平面选择一区块,并允许此平面冷却下来。替代地,控制器选择晶片0中位于平面0的单层式存储(SLC)区块a,以收集此区块的热门数据,选择晶片0中位于平面1中的单层式存储(SLC)区块b,以收集此区块的冷门数据,选择晶片1中位于平面0中的单层式存储(SLC)区块c,以收集此区块的回收数据,选择晶片1中位于平面1中的单层式存储(SLC)区块d,不配置以冷却它。因此,控制器分配超级页面1002,其组合来自单层式存储(SLC)区块a、单层式存储(SLC)区块b、单层式存储(SLC)区块c的此三者单一页面。如果每个页面包含16k*8个存储器单元,超级页面可以提供48kB数据空间。
在特定的例子中,控制器由一主机接收32kB写入数据,例如,图1中的主机装置120,并评断(或判断)热门/冷门数据,例如,通过上述的更新计次或更新增量时间以判断热门/冷门数据。控制器可以由牺牲区块接收16kB的有效数据。然后,控制器可以通过同时对具有16kB热门数据的单层式存储(SLC)区块a中的单一页面和具有16kB冷门数据的单层式存储(SLC)区块b中的单一页面,及具有16kB回收数据的单层式存储(SLC)区块c中的单一页面进行编程,以编程超级页面1002。
图11绘示配置包含混合类型区块以存储混合数据的一超级页面的示例1100,其为配置一超级页面包含2多层式存储页面及2单层式存储页面的示例,于此例中,超级页面的示例1100包含位于平面0的多层式存储区块a、位于平面1的多层式存储区块b、位于平面0的多层式存储区块c及位于平面1的多层式存储区块d。混合数据可以包含一般数据、***数据及元数据,一般数据例如来自图1的主机设备120,***数据(例如可靠数据)例如来自主机,元数据例如用于快闪翻译层(FTL)管理的元数据。
控制器可以于超级区块中分配一超级页面1102,以存储混合数据。基于要写入超级页面1102中的数据,例如依据图7的流程700,控制器可以将位于晶片0的两个多层式存储(MLC)区块及位于晶片1的两个单层式存储(SLC)区块组合至超级区块中。因此,超级页面可以组合两个多层式存储(MLC)页面及两个单层式存储(SLC)页面。超级区块将混合的单层式存储(SLC)区块、多层式存储(MLC)区块及数据编程至超级区块中,其例如依据图12B所进一步详述的LM编程方法。
举例而言,若每一页包含16k*8个存储器单元,且超级快的映像颗粒(mappinggranularity)为4kB,每一个单层式存储(SLC)页面可以具有四个分配单元(allocationunits,AUs),每个多层式存储(MLC)页可以具有八个分配单元(AUs)。控制器可接收来自主机的一般数据包含X个分配单元(AU)热门数据及Y个分配单元冷门数据,及来自主机的Z个分配单元(AU)***数据,其中X或Y不大于八,且Z不大于四。依据图8的流程800,控制器可从存储器的牺牲区块中选择(8-X)个热门数据、(8-Y)个冷门数据及(4-Z)个***数据。控制器可以从控制器内部存储器准备28kB的元数据,例如,图1的内部存储器114,及/或从一或多个其他存储器的区块。例如,控制器可以准备位于平面1的晶片0的区块b中的12kB元数据及位于平面1的晶片1的区块d中的16kB元数据。
然后,控制器可以通过同时编程多层式存储(MLC)区块a中的单一页面,其具有X个热门一般数据及分配单元(AU)0至分配单元(AU)7中的(8-X)个热门回收数据、多层式存储(MLC)区块b中的单一页面,其具有Y个冷门一般数据及分配单元(AU)8到分配单元(AU)15中的(8-Y)个冷门回收数据、在单层式存储(SLC)区块c中的单一页面,其具有Z个***数据和分配单元(AU)16至分配单元(AU)19中的(4-Z)个回收***数据,及单层式存储(SLC)区块d中的单一页面,其在分配单元(AU)20至分配单元(AU)23中具有元数据,以编程超级页面1102。
图12A~12B分别绘示通过全序列(full sequence)方法1200(图12A)及LM编程方法1250(图12B)以编程多层式存储(MLC)的例子。此些方法可以由控制器以执行,控制器例如图1中的控制器112,控制器112耦接至存储器,存储器例如为图1中的存储器116。
对于图12A所示的全序列方法,控制器可以准备对所有单元(例如,最低有效位(least significant bit,LSB)及最高有效位(most significant bit,MSB)两者)中的位进行编程。假设每个字线(word line)有m位单元和n*8k个单元,例如每单一页面。单一页面可以存储m*n kB的数据。对于全序列方法,控制器可以准备m*n kB的数据,以将字线上每个单元的所有位编程在一起。另外,于图12A中,横轴为单元的电压门限值,纵轴为各电压的单元数。每个单元只指示11/0I/00/10状态中的一个,且全部四个分布包括n*8k个单元门限值电压状态。全序列方法可用于在多层式存储(MLC)区块中编程数据,其可增进编程效率。
对于LM编程方法,存储器单元的最低有效位首先被编程,在存储器单元的最低有效位被编程后,最高有效位被编程。对于这个过程,控制器可以准备n kB的数据,在每个字线的每个单元中以编程为一位,然后编程字线m次,存储m*n kB的数据。如图12B所示,一旦一个区块设置了一擦除功能,且通过单层式存储(SLC)模式以编程,此方法会与多层式存储(MLC)模式的情形不同。单层式存储(SLC)模式不需要全序列或LM编程方法对一个单元中的多个位进行编码。于一些例子中,控制器可以在同一平面内分配m个单层式存储(SLC)区块,且每个单层式存储(SLC)区块具有固定的空间,可以被编程以更新数据。于一些例子中,控制器可以配置一个不具有单层式存储(SLC)页面的超级页面。例如,控制器可以配置包括单层式存储(SLC)页面及多层式存储(MLC)页面的第一超级页面,并且配置不含单层式存储(SLC)页面但包含多层式存储(MLC)页面第二超级页面。于一些例子中,控制器可以使用LM编程方法在同一平面内组合两个单层式存储(SLC)区块,以便与超级区块内的其他多层式存储(MLC)区块(每个单元具有两个位)具有相同的页码。
图13绘示从主机端及装置端两者配置数据至存储器中的多个超级区块的示例1300。主机可以是图1的主机装置120,装置可以是图1的装置110,且存储器可以是图1的存储器116。数据配置可以由一控制器以执行,例如图1的控制器112。
待写入存储器的数据可以包含来自主机的用户数据、来自存储器的回收数据,及来自装置110(或存储器)的元数据。控制器可以针对不同类型的数据进行分类,并且组合n个超级区块,以根据如上所述的一或多个策略来配置数据。每个超级区块是当前数据区块(CDB),包含来自存储器中不同平面的多个单一区块。
控制器可以为不同类型的数据配置不同的超级区块。例如,图13所示,当前数据区块(CDB)#1被设置以存储来自主机的用户数据、当前数据区块(CDB)#2被设置以存储用户数据、回收数据及元数据、...、当前数据区块(CDB)#n-1被设置以存储回收数据,及当前数据区块(CDB)#n被设置以存储元数据。控制器可同时管理n个超级区块。
本案所公开及其他示例可以被实现为一个或多个计算机程序产品,例如,由计算机可读性媒体所编码的计算机程序指令的一个或多个模块,用于由数据处理设备执行或者控制数据处理设备的操作。计算机可读性媒体可以是一机器可读性存储装置、一机器可读性存储基板、一存储器装置或其一或多者的组合。「数据处理装置」的用语涵盖用于处理数据的所有设备、装置和机器,例如包括一可编程处理器、一计算机或多个处理器或计算机。除了硬件之外,设备还可以包括为计算机程序创建执行环境的程序代码,例如,用以构成处理器的固件的程序代码,一协议组(protocol stack)、一数据库管理***、一操作***,或其至少一或多者的组合。
***可以涵盖用于处理数据的所有设备、装置及机器,例如包括一可编程处理器、一计算机或多个处理器或计算机。除了硬件之外,***还可以包括为计算机程序创建执行环境的程序代码,例如,用以构成处理器的固件的程序代码,一协议组(protocol stack)、一数据库管理***、一操作***,或其至少一或多者的组合。
计算机软件(也称为程序,软件,软件应用程序,脚本(script)或程序代码)可以以任何形式的程序语言编写,包括编译或直译语言,并且可以以任何形式部署,包括一独立程序、一模块、一元件、一子例行程序(subroutine)或其他单元适合于计算环境中使用。计算机软件不一定对应于文件***中的一文件。程序可以存储在保存其他程序或数据(例如,存储于标记语言文件(markup language document)中的一个或多个脚本)的一文件的一部分中,专用于所讨论的程序的单一文件中,或者存储在多个协调文件(例如,多个文件存储一或多个模块、子程序或程序代码的部分)。计算机软件可以部署在一台计算机上,或是位于一个站点或分散于多个站点并通过通信网络互连的多台计算机上执行。
本文中描述的程序(process)和逻辑流程可以由一或多个可编程处理器执行一或多个计算机程序以实现本文所述的功能。程序和逻辑流程也可以由专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(特殊应用集成电路)以执行,且装置也可以由此实现。
适合执行一计算机程序的处理器包括,通用和专用微处理器两种,及任何类型的数字计算机的任何一个或多个处理器,可作为例子。通常,处理器将从只读存储器或随机存取存储器或此两者接收指令和数据。一计算机的基本元件可以包括用于执行指令的处理器及用于存储指令和数据的一或多个存储器装置。通常,一计算机还可以包括,一个或多个用于存储数据的大容量存储装置,例如,磁盘,磁光盘或光盘,或者可操作地耦接,以从其接收数据、传送数据、或接收及传送数据。然而,一计算机不需要有这样的装置。计算机可读性媒体适于存储计算机程序指令及数据,计算机可读性媒体可以包括所有形式的非易失性存储器、媒体和存储器装置,例如包括半导体存储器装置,例如EPROM,EEPROM,和闪存装置、磁盘。处理器和存储器可以由专用逻辑电路以扩充,或者并入专用逻辑电路。
虽然本文可描述许多细节,但是这些不应被解释为对要求保护的发明范围或可能要求保护的发明范围的限制,而是作为特定于特定实施例的特征的描述。在本文所描述的一些特征不仅在单一实施例实现,也可以在单一实施例中组合多个单一实施例实现。相反地,在单一实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实现。此外,尽管上文可以将特征描述为以某些组合运作,甚至最初的要求保护范围亦同,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从此组合中删除,并且所要求保护的组合可以针对子组合或子组合的变形。类似地,尽管在附图中以特定的顺序描述了操作,但是这不应该被理解为要求以所绘示的特定顺序或按顺序执行此操作,或者要执行所有绘示出的操作以实现预期的结果。
虽然本案已以实施例揭露如上,然其并非用以限定本案,任何本领域技术人员,在不脱离本案的精神和范围内,当可作各种的更动与润饰,因此本案的保护范围当以权利要求所界定的为准。
Claims (20)
1.一种存储器控制器,用以管理一存储器中的数据配置,该存储器控制器包含:
一控制电路,耦接于该存储器,该存储器具有一平面,该平面包含至少两个物理区块,该控制电路被设置用以:
判断一或多个待写入该存储器的数据特征;
基于被判断的该一或多个数据特征及该平面的这些物理区块的一区块信息,以配置一超级区块(super block)的一超级页面(super page),该超级区块组合来自该平面上的一或多个物理区块,该超级页面组合来自该超级区块中相应该一或多个物理区块的一或多个单一页面(single page);
配置一数据至该超级页面中的该一或多个单一页面;以及
编程该超级页面以将该数据写入该一或多个单一页面。
2.如权利要求1所述的存储器控制器,其中该控制电路被设置为通过判断该超级区块包含该超级页面且该超级页面为空白并适于存储该数据,以配置该超级区块的该超级页面。
3.如权利要求1所述的存储器控制器,其中该控制电路被设置为用以配置该超级区块的该超级页面,通过:
基于该平面的该一或多个物理区块的该区块信息,以由该平面选择该一或多个物理区块;
基于该数据特征,擦除每一个被选择的该一或多个物理区块;以及
从该平面中的该一或多个物理区块以组合该一或多个单一页面至该超级页面。
4.权利要求1所述的存储器控制器,其中该控制电路被设置为配置该数据至该超级页面中的该一或多个单一页面,通过:
于该超级页面中的一第一空白单页准备该数据;
判断一第二空白单页位于该超级页面中;以及
于该第二空白单页准备该数据。
5.如权利要求4所述的存储器控制器,其中该控制电路被设置为于该第一空白单页准备该数据,通过:
判断该数据具有一特征,该特征对应至包含该第一空白单页的一第一物理区块的特征;
将该数据填入该第一空白单页。
6.如权利要求4所述的存储器控制器,其中该控制电路被设置为于该第一空白单页准备该数据,通过:
响应于一判断,该判断表示该第一空白单页存在于一空闲空间,选择从一或多个牺牲区块中一回收数据,该回收数据具有一特征对应至该第一物理区块的特征;以及
将该数据及该回收数据填入该第一空白单页。
7.如权利要求1所述的存储器控制器,其中该控制电路被设置为用以判断该数据具有该特征对应至该第一物理区块的特征,是通过判断:
该数据包含一可靠数据及该第一物理区块为一单层式存储(SLC)区块;
该数据包含一一般数据及该第一物理区块为一多层式存储(MLC)区块、三层式存储(TLC)区块及四层式存储(QLC)区块的其中之一;或是
该数据包含一热门数据且于该超级区块中该第一物理区块具有少于至少一其他物理区块的一擦除次数。
8.如权利要求1所述的存储器控制器,其中该控制电路被设置为通过一个别程序特征同步编程具有该数据的每个该一或多个单一页面,以编程该超级页面,该单一页面的该个别程序特征对应至被配置于该单一页面的数据的一特征。
9.如权利要求8所述的存储器控制器,其中该数据包含一可靠数据,该可靠数据被配置至该单一页面,且该单一页面为一单层式存储(SLC)页面。
10.如权利要求8所述的存储器控制器,其中该数据包含一一般数据,该一般数据被配置至该单一页面,且该单一页面为为一多层式存储(MLC)页面,以及
其中该一般数据通过一全序列编程方法及一LM编程方法,以被编程至该单一页面。
11.如权利要求1所述的存储器控制器,其中该数据与一指令相关,以及
其中该控制电路被设置为依据一需求,以分析该数据特征。
12.如权利要求11所述的存储器控制器,其中该需求包含:
一写入需求,用以从一主机的外部耦接的该存储器写入数据;
一回收需求,用以搬移位于该存储器中的至少一牺牲区块的一有效数据;或
一***需求,用以存储与该存储器相关的一元数据;以及
其中该数据包含来自该主机的一回收数据、该有效数据或该元数据的至少其中之一。
13.如权利要求11所述的存储器控制器,其中该需求包含一系列的写入需求,以及
其中该控制电路被设置以通过将来自该平面的最大数量的该一或多个物理区块组合到该超级区块并擦除每个位于该超级区块的该一或多个物理区块,使得每个位于该超级区块的该一或多个物理区块成为单层式存储(SLC)、多层式存储(MLC)、三层式存储(TLC)或四层式存储(QLC)的类型的其中之一,藉此以配置该超级区块的该超级页面。
14.如权利要求1所述的存储器控制器,其中该控制电路被设置以基于判断的该数据特征分类该数据;以及
其中该控制电路被设置为通过依据所判断的该数据特征,将分类的该数据配置到该超级页面中的不同单一页面,以将该数据配置到该超级页面中的该一或多个单一页面,使得具有相同特征的该数据被收集在同一单一页面中。
15.如权利要求1所述的存储器控制器,其中该控制电路被设置为基于一数据源、一存取频率、一***或一快取、或一另一数据或一元数据,以分类该数据。
16.如权利要求1所述的存储器控制器,其中该控制电路被设置用以:
依据被判断的该数据特征,以判断该数据包含不同类型数据;以及
通过为该超级页面中的不同类型的数据准备一相应的单一页面以配置该超级区块的该超级页面。
17.如权利要求1所述的存储器控制器,其中该控制电路被设置以维持该平面中每个独立物理区块的该区块信息;以及
其中该平面中的一物理区块的该区块信息包括一或多个参数,该一或多个参数包含一区块类型、一擦除次数、一有效次数、一读取次数、一擦除延迟时间、一第一标志用以指示是否该物理区块位于一当前数据区块,及一第二标志用以指示是否该物理区块为一未使用区块。
18.如权利要求1所述的存储器控制器,其中该控制电路被设置为用以组合多个超级区块,每个超级区块被配置为用于相应类型的数据。
19.一种存储器***,包含:
一存储器,包含多个物理区块;以及
一控制器,被设置为用以管理一存储器中的数据配置,通过:
判断待写入存储器的一或多个数据特征;
基于该被判断的该一或多个数据特征以配置一超级区块的一超级页面及该些物理区块的区块信息,该超级区块组合来自该存储器的一或多个物理区块,该超级页面组合来自该超级区块中相应一或多个物理区块的一或多个单一页面;
配置一数据至该超级页面中的该一或多个单一页面;以及
编程该超级数据以将该数据写入至该一或多个单一页面。
20.一种于一存储器中管理数据配置的方法,包含:
通过一控制电路维持该存储器中独立物理区块的区块信息;
该控制电路根据一需求及该区块信息以配置一超级区块的一超级页面,该超级区块将来自该存储器的至少一个物理区块进行组合,该超级页面组合来自该超级区块中该至少一物理区块所对应的至少一单一页面;
通过该控制电路准备该超级页面的该至少一单一页面中的一数据,该数据包括与该需求相关的数据;
通过该控制电路编程该超级页面已将该数据写入该至少一单一页面中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/835,859 | 2017-12-08 | ||
US15/835,859 US10387243B2 (en) | 2017-12-08 | 2017-12-08 | Managing data arrangement in a super block |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109902039A true CN109902039A (zh) | 2019-06-18 |
CN109902039B CN109902039B (zh) | 2023-02-28 |
Family
ID=65804174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810157021.2A Active CN109902039B (zh) | 2017-12-08 | 2018-02-24 | 存储器控制器、存储器***及于一存储器中管理数据配置的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10387243B2 (zh) |
CN (1) | CN109902039B (zh) |
TW (1) | TWI647702B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817879A (zh) * | 2021-01-11 | 2021-05-18 | 成都佰维存储科技有限公司 | 垃圾回收方法、装置、可读存储介质及电子设备 |
CN112905388A (zh) * | 2021-03-15 | 2021-06-04 | 杭州迪普科技股份有限公司 | 页面配置信息处理方法及装置 |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12008266B2 (en) | 2010-09-15 | 2024-06-11 | Pure Storage, Inc. | Efficient read by reconstruction |
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
KR102516106B1 (ko) * | 2018-02-14 | 2023-03-31 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
CN108829344A (zh) * | 2018-05-24 | 2018-11-16 | 北京百度网讯科技有限公司 | 数据存储方法、装置及存储介质 |
KR20200043814A (ko) * | 2018-10-18 | 2020-04-28 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20200052150A (ko) * | 2018-11-06 | 2020-05-14 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
KR102680874B1 (ko) * | 2018-12-20 | 2024-07-02 | 에스케이하이닉스 주식회사 | 저장 장치, 컨트롤러 및 저장 장치의 동작 방법 |
KR20200085522A (ko) * | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 이종 메모리를 갖는 메인 메모리 장치, 이를 포함하는 컴퓨터 시스템 및 그것의 데이터 관리 방법 |
US11194473B1 (en) * | 2019-01-23 | 2021-12-07 | Pure Storage, Inc. | Programming frequently read data to low latency portions of a solid-state storage array |
KR20200134784A (ko) * | 2019-05-23 | 2020-12-02 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US10991413B2 (en) * | 2019-07-03 | 2021-04-27 | Micron Technology, Inc. | Memory with programmable die refresh stagger |
US10937468B2 (en) | 2019-07-03 | 2021-03-02 | Micron Technology, Inc. | Memory with configurable die powerup delay |
KR20210025412A (ko) * | 2019-08-27 | 2021-03-09 | 에스케이하이닉스 주식회사 | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 |
US11640259B2 (en) * | 2020-05-21 | 2023-05-02 | Western Digital Technologies, Inc. | Use of surplus erase block pairs in super block formation |
US11726689B2 (en) * | 2020-11-20 | 2023-08-15 | Micron Technology, Inc. | Time-based combining for block families of a memory device |
US20220171713A1 (en) * | 2020-11-30 | 2022-06-02 | Micron Technology, Inc. | Temperature-aware data management in memory sub-systems |
KR20220089868A (ko) * | 2020-12-22 | 2022-06-29 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
TWI808384B (zh) * | 2021-02-23 | 2023-07-11 | 慧榮科技股份有限公司 | 儲存裝置、快閃記憶體控制器及其控制方法 |
KR102569823B1 (ko) * | 2021-02-24 | 2023-08-24 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
US20230359365A1 (en) * | 2021-03-16 | 2023-11-09 | Micron Technology, Inc. | Memory management procedures for write boost mode |
KR20230018215A (ko) * | 2021-07-29 | 2023-02-07 | 삼성전자주식회사 | 스토리지 장치, 스토리지 컨트롤러 및 스토리지 컨트롤러의 동작 방법 |
US11593032B1 (en) * | 2021-08-06 | 2023-02-28 | Micron Technology, Inc. | Memory sub-system data migration |
US20230176778A1 (en) * | 2021-12-06 | 2023-06-08 | Micron Technology, Inc. | Managing single-level and multi-level programming operations |
JP2023130874A (ja) * | 2022-03-08 | 2023-09-21 | キオクシア株式会社 | メモリシステムおよび方法 |
US11809748B2 (en) * | 2022-03-10 | 2023-11-07 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and electronic device |
US20230333761A1 (en) * | 2022-04-14 | 2023-10-19 | Western Digital Technologies, Inc. | Tracking Data Usage in Storage Devices |
CN116382598B (zh) * | 2023-06-05 | 2023-09-08 | 深圳大普微电子科技有限公司 | 数据搬移方法、闪存设备控制器及闪存设备 |
TWI831704B (zh) * | 2023-06-12 | 2024-02-01 | 慧榮科技股份有限公司 | 藉助於動態區塊配置來進行記憶體裝置的儲存空間管理之方法、記憶體控制器、記憶體裝置以及電子裝置 |
CN117472590B (zh) * | 2023-12-27 | 2024-03-19 | 苏州元脑智能科技有限公司 | 存储调度方法、组件、存储装置、计算机设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050251617A1 (en) * | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
TW200823925A (en) * | 2006-08-28 | 2008-06-01 | Sandisk Il Ltd | Logical super block mapping for NAND flash memory |
CN102866956A (zh) * | 2012-09-14 | 2013-01-09 | 上海宝存信息科技有限公司 | 基于固态存储介质的数据实时跟踪存储***及方法 |
US20140281158A1 (en) * | 2013-03-14 | 2014-09-18 | Narendhiran Chinnaanangur Ravimohan | File differentiation based on data block identification |
US20160004464A1 (en) * | 2014-07-02 | 2016-01-07 | Sandisk Technologies Inc. | System and method of updating metablocks |
US20160180926A1 (en) * | 2014-12-19 | 2016-06-23 | Sandisk Technologies Inc. | Nonvolatile memory system storing system data in marginal word lines |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100512181B1 (ko) | 2003-07-11 | 2005-09-05 | 삼성전자주식회사 | 멀티 레벨 셀을 갖는 플래시 메모리 장치와 그것의 독출방법 및 프로그램 방법 |
US7350044B2 (en) * | 2004-01-30 | 2008-03-25 | Micron Technology, Inc. | Data move method and apparatus |
US8751755B2 (en) * | 2007-12-27 | 2014-06-10 | Sandisk Enterprise Ip Llc | Mass storage controller volatile memory containing metadata related to flash memory storage |
US8239614B2 (en) | 2009-03-04 | 2012-08-07 | Micron Technology, Inc. | Memory super block allocation |
US8095765B2 (en) | 2009-03-04 | 2012-01-10 | Micron Technology, Inc. | Memory block management |
US8688894B2 (en) | 2009-09-03 | 2014-04-01 | Pioneer Chip Technology Ltd. | Page based management of flash storage |
KR101638061B1 (ko) * | 2009-10-27 | 2016-07-08 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법 |
US8832507B2 (en) | 2010-08-23 | 2014-09-09 | Apple Inc. | Systems and methods for generating dynamic super blocks |
US8914670B2 (en) * | 2012-11-07 | 2014-12-16 | Apple Inc. | Redundancy schemes for non-volatile memory using parity zones having new and old parity blocks |
US9262268B2 (en) * | 2013-12-20 | 2016-02-16 | Seagate Technology Llc | Method to distribute user data and error correction data over different page types by leveraging error rate variations |
US10180805B2 (en) | 2015-03-25 | 2019-01-15 | SK Hynix Inc. | Memory system and operating method thereof |
CN107422992A (zh) * | 2017-07-31 | 2017-12-01 | 郑州云海信息技术有限公司 | 一种SSD运行时Journal保存方法及*** |
-
2017
- 2017-12-08 US US15/835,859 patent/US10387243B2/en active Active
-
2018
- 2018-02-14 TW TW107105679A patent/TWI647702B/zh active
- 2018-02-24 CN CN201810157021.2A patent/CN109902039B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050251617A1 (en) * | 2004-05-07 | 2005-11-10 | Sinclair Alan W | Hybrid non-volatile memory system |
TW200823925A (en) * | 2006-08-28 | 2008-06-01 | Sandisk Il Ltd | Logical super block mapping for NAND flash memory |
CN102866956A (zh) * | 2012-09-14 | 2013-01-09 | 上海宝存信息科技有限公司 | 基于固态存储介质的数据实时跟踪存储***及方法 |
US20140281158A1 (en) * | 2013-03-14 | 2014-09-18 | Narendhiran Chinnaanangur Ravimohan | File differentiation based on data block identification |
US20160004464A1 (en) * | 2014-07-02 | 2016-01-07 | Sandisk Technologies Inc. | System and method of updating metablocks |
US20160180926A1 (en) * | 2014-12-19 | 2016-06-23 | Sandisk Technologies Inc. | Nonvolatile memory system storing system data in marginal word lines |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112817879A (zh) * | 2021-01-11 | 2021-05-18 | 成都佰维存储科技有限公司 | 垃圾回收方法、装置、可读存储介质及电子设备 |
CN112817879B (zh) * | 2021-01-11 | 2023-04-11 | 成都佰维存储科技有限公司 | 垃圾回收方法、装置、可读存储介质及电子设备 |
CN112905388A (zh) * | 2021-03-15 | 2021-06-04 | 杭州迪普科技股份有限公司 | 页面配置信息处理方法及装置 |
CN112905388B (zh) * | 2021-03-15 | 2023-12-15 | 杭州迪普科技股份有限公司 | 页面配置信息处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109902039B (zh) | 2023-02-28 |
US10387243B2 (en) | 2019-08-20 |
TW201926350A (zh) | 2019-07-01 |
US20190179698A1 (en) | 2019-06-13 |
TWI647702B (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109902039A (zh) | 存储器控制器、存储器***及于一存储器中管理数据配置的方法 | |
US10915442B2 (en) | Managing block arrangement of super blocks | |
US10838859B2 (en) | Recency based victim block selection for garbage collection in a solid state device (SSD) | |
US10739996B1 (en) | Enhanced garbage collection | |
Jung et al. | A group-based wear-leveling algorithm for large-capacity flash memory storage systems | |
CN110781096B (zh) | 用于通过预测需求时间来执行垃圾收集的设备和方法 | |
CN106874217B (zh) | 存储器***及控制方法 | |
JP6385556B2 (ja) | 不揮発性メモリデバイスおよび不揮発性メモリデバイスのデータ記憶方法 | |
US8711631B1 (en) | Management of memory array with magnetic random access memory (MRAM) | |
CN113015965B (zh) | 基于小计写入计数器执行混合损耗均衡操作 | |
US11429284B2 (en) | Data categorization based on invalidation velocities | |
US10289317B2 (en) | Memory apparatus and methods thereof for write amplification aware wear leveling | |
US20230176965A1 (en) | Media management based on data access metrics | |
CN109164975A (zh) | 一种将数据写入固态硬盘的方法以及固态硬盘 | |
CN112035061A (zh) | 固态硬盘资源分配方法、装置和存储介质 | |
CN111538680A (zh) | 基于逻辑饱和度选择用于垃圾收集的大容量存储装置流 | |
CN112130749A (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
Yong et al. | Design and implementation of virtual stream management for NAND flash-based storage | |
CN107203341A (zh) | 基于闪存的数据存储方法、装置以及闪存芯片 | |
Gudeta et al. | Probability-based static wear-leveling algorithm for block and hybrid-mapping NAND flash memory | |
US20240241642A1 (en) | Storage device including non-volatile memory device and operating method of storage device | |
KR20240114865A (ko) | 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 | |
CN115599293A (zh) | 分区配置方法、数据储存管理方法及装置 | |
Zou et al. | A low hardware cost wear-leveling algorithm for application of smart mobile terminals | |
Yang et al. | ZWR: Combining wear‐leveling with reclamation for flash‐memory‐based storage systems of embedded systems |
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 |