CN109901788B - 存储器控制器、存储器系统及控制方法 - Google Patents

存储器控制器、存储器系统及控制方法 Download PDF

Info

Publication number
CN109901788B
CN109901788B CN201810197962.9A CN201810197962A CN109901788B CN 109901788 B CN109901788 B CN 109901788B CN 201810197962 A CN201810197962 A CN 201810197962A CN 109901788 B CN109901788 B CN 109901788B
Authority
CN
China
Prior art keywords
block
physical
blocks
plane
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
CN201810197962.9A
Other languages
English (en)
Other versions
CN109901788A (zh
Inventor
刘庭宇
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.)
Macronix International Co Ltd
Original Assignee
Macronix International Co Ltd
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 Macronix International Co Ltd filed Critical Macronix International Co Ltd
Publication of CN109901788A publication Critical patent/CN109901788A/zh
Application granted granted Critical
Publication of CN109901788B publication Critical patent/CN109901788B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • 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/7202Allocation control and policies
    • 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/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5644Multilevel memory comprising counting devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5646Multilevel memory with flag bits, e.g. for showing that a "first page" of a word line is programmed but not a "second page"
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)

Abstract

本发明提供用于存储器的超级区块的区块配置管理的系统、方法及装置包括计算器可读媒体。存储器例如NAND闪存。一方面,一存储器控制器用以管理一存储器中的超级区块的区块配置,包括控制电路耦接至存储器。存储器具有至少两个平面的物理区块。控制电路用以保存平面中的各物理区块的区块信息以及基于平面中的物理区块的区块信息组合来自平面的一或多个物理区块为一超级区块。

Description

存储器控制器、存储器系统及控制方法
技术领域
本发明涉及存储器控制器、存储器系统及控制方法。特别涉及用于超级区块组成的存储器控制器、存储器系统及控制方法。
背景技术
为了管理像是NAND闪存的存储器,可指定逻辑超级区块,使得每个超级区块将来自存储器中不同平面的多个物理区块组合在一起。位在一个超级区块中的物理区块可同时运行。然而,超级区块通常在一开始时就在存储器中被指定。每个超级区块被当作一个整体的区块而被管理,其中物理区块的组合不会改变,直到其中一个物理区块磨损。此外,超级区块内没有数据的优化配置,这可能会导致效率低下。
发明内容
本揭露描述存储器中超级区块的区块配置管理的系统与技术,可精细地管理物理区块而增进(或优化)效率,其中存储器可例如NAND闪存的非挥发性存储器。
本揭露的一方面揭露一种用于存储器中的超级区块的区块配置管理的存储器控制器,包括一控制电路耦接至具有至少两个平面的物理区块的存储器,控制电路用以保存这些平面中的各物理区块的区块信息,控制电路基于这些平面中的这些物理区块的区块信息组合这些平面的一或多个物理区块为一超级区块。物理区块的区块信息可包括下列至少其中之一:擦除计数、有效计数、页读取计数、擦除延迟时间、指示此物理区块是否位于一目前数据区块的一第一旗标或指示此物理区块是否为一未使用区块的一第二旗标。
在一些实施例中,对于各平面,控制电路是用以基于此平面的这些物理区块的区块信息选择此平面的这些物理区块中具有一最小擦除计数的一未使用物理区块。在一些例子中,控制电路是用以:基于从这些平面中所选的未使用物理区块的擦除计数决定一阈值;响应于所选的未使用物理区块具有大于所决定的阈值的判断,决定不为超级区块选取所选的未使用物理区块;以及响应于所选的未使用物理区块具有不大于所决定的阈值的判断,决定为超级区块选取所选的未使用物理区块。
在一些实施例中,控制电路是用以计算各平面的这些物理区块的有效计数的一个别的总和;比较这些平面的有效计数的个别的总和;以及基于比较得出的一结果,决定是否为超级区块从这些平面中选择一物理区块。
在一些实施例中,控制电路是用以计算这些平面的这些物理区块的擦除计数的一个别的最大值;选择一平面,所选平面的擦除计数的个别的最大值小于擦除计数的个别的最大值中的最大者;选择此平面中的未使用物理区块,其中各所选的未使用物理区块的一擦除延迟时间大于此所选平面中的物理区块的擦除延迟时间的最小者;以及选择一物理区块,此物理区块具有这些所选的未使用物理区块中擦除计数的最小者。
在一些例子中,控制电路是用以:响应于此超级区块无法储存更多数据的判断,释放此超级区块以获得个别的数据区块。在一些例子中,控制电路是用以:响应于一平面中的未使用区块的数量小于一第一回收阈值的判断,选取此平面中具有有效计数最小者的一物理区块为一牺牲者区块。
在一些实施例中,控制电路是用以响应于一平面中的未使用区块的数量不小于一第一回收阈值且此平面中存在一紧急区块的判断,选取此紧急区块为一牺牲者区块。控制电路可用以借由以下至少一决定一物理区块为一紧急区块:此物理区块曾发生过一编程失败;此物理区块中的错误位的数量达到一第一阈值,或此物理区块中的错误位的数量小于第一阈值且达到一第二阈值,第二阈值小于第一阈值。
在一些实施例中,控制电路是用以:响应于一平面中的未使用区块的数量不小于一第二回收阈值的判断,借由比较一权重值与一阈值选取此平面中的一物理区块为一牺牲者区块,其中权重值是基于一或多个参数(因子)包括区块类型、有效计数、擦除排序(eraseorder)及擦除延迟时间决定。在一些例子中,控制电路是用以计算各平面中的牺牲者区块的一个别数量;选择这些平面中具有个别数量中最大者的一平面,所选平面包括具有小于一预设阈值的权重值的一或多个其他的物理区块,其中一较小的有效计数相较于一较大的有效计数对应至一较小的权重值,且一较长的擦除延迟时间相较于一较短的擦除延迟时间对应至一较小的权重值;以及选择一物理区块,借由确定此物理区块是在一逻辑与实体对应表(logical to physical table,L2P table)中相同于在此平面中的一特定数量的牺牲者区块,且此特定数量高于此平面中的各一或多其他物理区块的数量。
控制电路可用以:基于一或多个回收优先度策略配置要被迁移的一或多个平面的一或多个牺牲者区块中的有效数据;以及同时地将有效数据迁移至一目前数据区块。控制电路也可用以:擦除不具有有效数据的一牺牲者区块以获得一未使用物理区块。
在一些实施例中,控制电路是用以决定要被写入存储器的数据的特征。此数据可包括来自存储器外部的一装置的至少一数据、来自存储器的要被迁移的有效数据或相关于存储器的元数据(metadata),且特征可包括下列至少其中之一:安全等级、内部系统等级或读取及写入频率等级。
在一些例子中,控制电路是用以基于被决定要被写入的数据的特征组合来自各平面的物理区块为一超级区块。在一些例子中,控制电路是用以:响应于不存在空白超级页以储存此数据的判断,组合来自各平面的物理区块为超级区块;基于要被写入的数据的特征擦除各所选物理区块;以及组合来自平面中的物理区块的单页(single page)以获得用以储存此数据的一超级页。在一些例子中,控制电路是用以:基于所计算的数据的特征来对数据进行分类;基于所计算的数据的特征和超级区块中各个物理区块的区块信息将数据配置到超级区块中的各个物理区块;以及对超级区块的一或多个超级页进行编程以储存数据。
本揭露的另一方面揭露一种存储器系统包括:包括至少两个平面的物理区块的一存储器;以及一存储器控制器。存储器控制器用以借由保存这些平面中的各物理区块的区块信息管理存储器的物理区块,及基于这些平面中的这些物理区块的区块信息组合这些平面的一或多个物理区块为一超级区块。
本揭露的又一方面揭露借由存储器控制器管理存储器中的超级区块组成方法,包括:由存储器控制器的一控制电路保存存储器的至少两个平面的物理区块各自的区块信息;由控制电路计算要被写入存储器的数据的一或多个特征;以及由控制电路基于这些平面中的这些物理区块的区块信息及此数据的特征组合这些平面的一或多个物理区块为一超级区块。
上述技术的实现包括方法、电路、系统、计算器程序产品和计算器可读媒体。在一个示例中,方法可借由耦合到非挥发性性存储器的存储器控制器来执行,并且此方法可包括由存储器控制器执行的上述动作,例如,超级区块组成方法的动作。在另一个示例中,一个这样的计算器程序产品可适合实现于储存由一或多个处理器执行的指令的非挥发性机器可读媒体中。指令可用以致使一或多个处理器执行上述动作。一个这样的计算器可读媒体储存有指令,当这些指令被一或多个处理器执行时致使一或多个处理器执行上述动作。
此技术可记录管理信息,例如,位于存储器中不同平面的各单一的物理区块擦除计数和/或有效计数,并参考此信息以组合(配置)位于不同平面的至少一物理区块以写入外部数据、元数据和/或迁移的内部有效数据。需要注意的是,一个区块的区块信息主要是指使用此区块的相关数据报括擦除计数、有效计数、页读取计数、擦除延迟时间、未使用旗标、或CDB旗标,且区块信息可不包括区块在所在的平面中的存储器位置和/或一区块编号(或一位置编号)。相较于在超级区块中绑定物理区块进行管理,本技术可以提高回收效率,减少数据迁移,减少物理区块的擦除次数,解决因不必要的复制而导致的效能下降和使用寿命下降的问题。本技术可通过任何适当类型的控制器来实现,以提高存储器的效率。控制器可为存储器的一部分、设置在耦合到存储器的主机中或或者从外部耦合到主机和存储器和/或与主机协作。控制器可包括闪存转换层(flash translation layer,FTL)管理。
本技术可应用于各种存储器类型,诸如单阶储存单元(single-level cell,SLC)装置、多阶储存单元(multi-level cell,MLC)装置(如双阶储存单元(2-level cell)装置、三阶储存单元(triple-level cell)装置)、四阶储存单元(quad-level cell,QLC)装置,或其任何合适的组合。本技术可应用于各种类型的非挥发性存储器系统,诸如NAND闪存、NOR闪存、相变化存储器(phase-change memory,PCM)等。额外地或可替代地,此技术可应用于各种类型的装置和系统,例如安全数字(secure digital,SD)卡、嵌入式多媒体卡(embedded multimedia card,eMMC)、固态硬盘(solid state drive,SSD)、嵌入式系统、硬盘、光盘、磁带或其他。系统可为混合系统、包括以上多种类型的储存装置。
所揭露的一或多个实施方式的细节将在下文搭配所附附图进行说明。借由说明书和附图,本发明的其他特征、方面和优点将变得显而易见。
附图说明
图1绘示依据一或多个实施例的用以管理存储器的系统一例。
图2A绘示依据一或多个实施例的存储器中被指定的超级区块的一例。
图2B绘示依据一或多个实施例的存储器中被指定的超级区块的另一例。
图3绘示依据一或多个实施例的管理存储器中的区块的一例的状态图。
图4绘示依据一或多个实施例的一平面的区块信息表的一例。
图5绘示依据一或多个实施例基于未使用区块计数指定一超级区块的技术的一例。
图6绘示依据一或多个实施例带宽与未使用区块群组之间关系的一例。
图7绘示依据一或多个实施例决定一超级区块的组成的程序的一例。
图8绘示依据一或多个实施例于一平面中选取一牺牲者区块的一例。
图9绘示依据一或多个实施例借由一紧急策略选取一牺牲者区块的程序的一例。
图10绘示依据一或多个实施例借由依照需求策略的选取一牺牲者区块的程序的一例。
图11绘示依据一或多个实施例回收操作的一例。
图12A绘示依据一或多个实施例回收操作中的数据迁移步骤的一例。
图12B绘示依据一或多个实施例回收操作中的释放区块步骤的一例。
图12C绘示依据一或多个实施例回收操作中的选取牺牲者区块步骤的一例。
图13绘示依据一或多个实施例定位一超级页的程序的一例。
图14绘示依据一或多个实施例用于管理存储器中的超级区块的区块配置的程序的一例。
【符号说明】
100:系统
110:装置
112:装置控制器
113:处理器
114:内部存储器
116:存储器
120:主机装置
202:超级区块
400:区块信息表
702~708、802~812、902~908、1002~1006、1304~1308、1402~1410:步骤
具体实施方式
图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卡。
装置控制器120可为一通用微处理器或一专用微控制器。在一些实施例中,装置控制器112是用于装置110的一存储器控制器。之后的段落描述的技术所基于的实施例中装置控制器112是一存储器控制器。然而,描述于之后段落的技术也可应用于装置控制器112为不同于存储器控制器的其他类型的控制器的实施例中。装置控制器112也可包括在主机装置120中,或是从外部耦接于主机装置120或装置110。
处理器113是用以执行指令及处理数据。指令包括固件指令和/或以固件代码和/或其他程序代码分别储存于内部存储器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。在一些实施例中,当装置110是一数字相机或一媒体播放器,内部存储器是一DRAM。
在一些实施例中,内部存储器是包括于装置控制器112中的一高速缓存,如图1所示。内部存储器114储存有对应于由处理器113执行的指令的脚本,和/或处理器113在运行期间所要求的数据。
装置控制器112从存储器116传送脚本和/或数据到内部存储器114。在一些实施例中,存储器116是用以长期储存指令和/或数据的一非挥发性存储器,例如一NAND闪存装置或其他适合的非挥发性存储器装置。在存储器116为NAND闪存的实施例中,装置110是一闪存装置,例如一闪存卡,且装置控制器112是一NAND闪存控制器。例如,在一些实施例中,当装置110是一eMMC或一SD卡,存储器116是一NAND闪存;在一些实施例中,当装置110是一数字相机,存储器116是一SD卡;以及在一些实施例中,当装置110是一媒体播放器,存储器116是一硬盘。仅为了说明的目的,之后的叙述以存储器116是NAND闪存为例。
当于下文进一步描述细节时,装置控制器112是用于存储器116中的超级区块的区块配置管理。装置控制器112可保存基于个别物理区块的区块信息、而不是一整个超级区块、基于一策略(例如基于擦除计数)在一平面中选择一空闲区块、组合位于不同平面的至少一区块为一超级区块、和/或基于一策略(例如基于贪婪、刷新或寿命)在一平面中选择一牺牲者区块。装置控制器112可响应于一需求,例如来自主机装置120的写入外部数据的一请求,指定一超级区块或分配一超级区块、从一牺牲者区块迁移有效数据、和/或储存存储器116的元数据(meta data)。
数据可以在一安全等级、一内部系统等级或一通常数据等级上被特征化。在通常数据等级上,数据可基于写入或读取频率被特征化为具有一「热度」等级。例如,数据的热度等级可被分级从(1)经常被写入及读取的数据、(2)经常被写入但不常被读取的数据、(3)经常被读取但不常被写入的数据、至(4)不常被写入及读取的数据,依序递减。在安全等级上,数据可包括安全或可靠数据,可被视为热数据。在内部系统等级上,数据报括系统管理数据,可被视为热数据。
装置控制器112可用于超级区块中的数据配置管理,如与本揭露同时提出申请的美国专利申请“MANAGING DATA ARRANGEMENT IN SUPER BLOCKS”所描述,其内容经引用结合于此。例如,装置控制器112可依据数据的特征(例如热或冷)分类数据并在编程一超级页时借由特征分散数据以将具有相同特征的数据聚集在一物理区块中。特别地,装置控制器112可基于策略,例如未使用区块计数/平面的擦除计数配置数据位置,以平均地分散具有不同特征的数据至不同的平面,并聚集具有类似特征例如相邻逻辑地址/存取频率的数据至同一个平面。在本文中特征(character)及特征(characteristic)将被互换的使用。
图2A绘示于一存储器中指定超级区块的一例。存储器可为图1所示的存储器116。存储器可包括一或多个存储器装置。在一些实施例中,存储器包括多个芯片(die)。各芯片可为一存储器芯片(memory chip),且可包括多个存储器阵列及外设电路于其上。一存储器阵列可包括多个平面,各平面包括具有多个物理区块的存储单元。各物理区块可包括可储存多个扇片的数据的多个页的存储单元。
来自一共同平面的两个物理区块无法同时被操作(例如擦除),但来自两个不同平面的两个物理区块可同时被操作。一超级区块可被例如像图1所示的控制器112的一存储器控制器指定,以组合位于不同平面的至少一物理区块。超级区块中的各物理区块来自不同平面,也就是说,任何平面不可提供多于一个的区块给超级区块。超级区块包括多个超级页(super page),各超级页组合对应于在超级区块中的多个物理区块的多个页。超级页中的各页可具有于与各自对应的物理区块中的一相同页编号。一个超级页可通过同时编程超级页中的所有页而被编程。
如图2A和图2B所示,存储器包括从芯片#0到芯片#x-1的x个芯片。芯片#0包括从平面#0到平面#i-1的i个平面,且各平面包括mi+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。在一些例子中,存储器包括多个芯片,且各芯片包括一平面。
在一些例子中,一超级区块包括具有一相同的位置编号的多个区块。一超级区块可包括来自存储器的各芯片的各平面的一个区块;这提供最大带宽。例如,如图2A所示,超级区块202包括来自存储器的各个平面的位置编号0的区块。然而,一超级区块可包括少于所有平面,例如来自少于所有芯片或少于一芯片中所有平面的位置编号0的区块。因此,超级区块204具有少于超级区块202的区块(数量),且超级区块204具有较小的带宽。超级区块206只包括一个物理区块例如来自一平面(例如芯片#0的平面#0)的区块#m。
在一些例子中,一超级区块组合来自不同平面中具有不同位置编号的物理区块。如图2B所示,示例的超级区块250组合来自芯片#0的平面#0的区块#5、来自芯片#0的平面#1的区块#18、来自芯片#1的平面#0的区块#66以及来自芯片#1的平面#1的区块#21。超级页252组合来自超级区块250中的四个区块中的页。此四个页具有一相同页编号于各自的区块中,且于超级页252被编程时可同时地被编程。
在一些例子中,一超级区块组合来自不同平面具有相同存储器类型的区块,例如,SLC、MLC、TLC或QLC。在一些例子中,一超级区块组合来自不同平面具有不同存储器类型例如混合SLC及MLC的区块。
如下面进一步详细叙述的,超级区块可被部署来写入更新数据,例如来自主机装置的数据的存储器外的数据,或迁移有效数据,例如存储器内的数据,或写入元数据,例如闪存转换层(FTL)管理数据。如果超级区块无法再被写入/迁移,组合的区块也可被释放。
图3绘示存储器中管理区块的示意图300的一例。存储器可为图1所示的存储器116,且可被一控制器例如图1所示的控制器112管理。示意图300说明了借由一控制器进行存储器中超级区块组成方法的概略情况。
存储器包括多个平面,各平面具有一或多个物理区块。双级设置可被用来分类以控制存储器中的物理区块。第一级是单一区块级,其中为数据区块,未使用区块(例如,空闲区块或空的区块)和「牺牲者」区块。如下面进一步详细描述的,牺牲者区块是要被回收到未使用区块中的区块。第二级是超级区块级,其中超级区块是开放数据写入的目前数据区块(current data block,CDB)。
例如在一开始,当存储器被初始化,存储器中的物理区块被放入以单一区块层级管理的未使用区块群组302。控制器保存未使用区块群组302中的个别物理区块的区块信息。区块信息将在图4中进一步说明。
控制器可基于平面的各物理区块的区块信息从各平面选择不多于一个物理区块并组合所选物理区块以获得一超级区块。超级区块包括来自平面组合的至少一物理区块。在一些例子中,控制器可从一平面选择两个或多个物理区块(例如SLC区块)到超级区块。图5到图7说明超级区块的组合(或选择)的不同实施例或策略。控制器可在存储器中组合一或多个超级区块(或目前数据区块(CDB))。CDB是位于以超级区块层级管理的目前数据区块群组304。
当一超级区块(或一目前数据区块)无法再储存更多数据时,目前数据区块会被释放为单一的物理区块,并被放到以单一区块层级管理的数据区块群组306中。
依据如图8至10进一步说明的的一或多个策略,数据区块群组306中的一数据区块可被指派为一牺牲者区块。牺牲者区块被放置在以单一区块层级管理的牺牲者区块群组308中。
如在图11至12C中进一步说明的,可对牺牲者区块群组308中的一或多个牺牲者区块执行一回收操作。牺牲者区块中的有效数据可被迁移至目前区块群组304中的一或多个超级区块(或CDB)。于是一个填满无效数据的牺牲者区块可被释放(例如擦除),而成为放置于未使用区块群组302的未使用区块。
如上所述,目前数据区块群组304是以超级区块层级管理,而各未使用区块群组302、数据区块群组306及牺牲者区块群组308是以单一区块层级管理。在这种方式下,此存储器可被精细地管理,并能够增进或优化存储器的效能。
图4绘示存储器中的一平面的区块信息表400的一个示例。存储器可为图1所示的存储器116,且平面可为图1所示的任何平面(例如芯片#0的平面#0)。平面可包括N-1个物理区块。各平面可具有各自独立于存储器中其他平面的的表。一存储器控制器(例如图1所示的控制器112)可为存储器中的各平面管理区块信息表。如表400所示,区块信息可包括将在底下说明的多个参数(因子)。
一CDB旗标区域指示一单一区块是否在一目前数据区块(CDB)中。当CDB旗标为真(true),此单一区块是在CDB中。当CDB旗标为假(false),此单一区块不在CDB中,且可为一数据区块(例如在如图3所示的数据区块群组306中)或为一未使用区块(例如在如图3所示的未使用区块群组302中)。
未使用旗标区域可指示一单一区块是否是一未使用数据区块。当未使用旗标为真,此单一区块可被捡取至一目前数据区块,且此单一区块的有效计数及读取计数会被设为0。当未使用旗标为假,此单一区块可为CDB或数据区块群组的一数据区块中。
擦除计数区域是用以记录擦除操作被执行在一单一区块的次数。当擦除次数在一阈值之下,此单一区块可被认为是一紧急区块或已经磨损的一损坏区块。
有效计数区域是用以记录一单一区块中储存的有效数据的数量。有效计数越大,储存的有效数据越多,这代表剩余越少的未使用次数以及此单一区块会越块被用上或程为数据区块群组中的一数据区块。一平面的一总和有效计数(或有效计数的总数)为此平面中所有区块的有效计数的总和。
页读取计数(read count by page)记录在一单一区块中有多少页被读取过。读取计数也可记录此单一区块被读取过几次,也就是执行于此单一区块上的读取操作的次数总和。
例如,在图4中,对于单一区块编号1,CDB旗标为真(true),未使用旗标为假(false),擦除计数为6,有效计数为102,以及页读取计数分别为100、54、...、77。对于区块编号N-1,CDB旗标为假,未使用旗标为真,擦除计数为5,有效计数为0,以及页读取计数皆为0。
区块信息也可包括各单一区块的擦除延迟时间,擦除延迟时间记录此单一区块上次被擦除的时间点到目前时间点之间的时间。表1显示擦除信息表的一例,擦除信息表包括擦除排序(例如从最新一次到第十新的一次)以及相关的权重(%)。擦除排序越小,权重越高。例如,如表1所示,擦除排序从最新一次到第十新的一次,权重分别为90%、80%、70%、...、0%。
表1
表2显示擦除信息表的另一例,擦除信息表包括擦除延迟时间以及相关的权重(%)。擦除延迟时间越少,权重越高。如表2所示,擦除延迟时间(erase delay time,EDT)少于一分钟的权重为100%,擦除延迟时间少于三分钟的权重为60%,擦除延迟时间少于十五分钟的权重为30%,擦除延迟时间少于两小时的权重为10%,以及擦除延迟时间大于或等于二小时的权重为0。
表2
表1和/或表2的擦除信息表可被用以避免短时间内频繁地擦除区块。因短时间内频繁地擦除区块可能导致存储单元严重磨损。在一些例子中,“排序(order)”及“延迟时间(delay time)”(即擦除延迟时间)可被用作阻止选取一空闲区块和/或一牺牲者区块的标准。例如,选取一空闲区块时,控制器可取得各空闲区块的个别的擦除计数,并参考表1或表2以取得空闲区块的权重。接着,对于各空闲区块可借由将自各的权重乘上一个数字(例如所有空闲区块的擦除计数中的最大者)计算出各自对应的一个加权数字(weightednumber)。控制器可借由比较计算出的加权数字选取一空闲区块。例如,用于一特定的区块的值可被计算为此区块的擦除计数与此区块的权重数字的和。例如,控制器可选取一空闲区块,此空闲区块的擦除计数与权重数字的和为空闲区块中最小的。
在一些例子中,控制器可依据相似于选取一空闲区块的程序选择一牺牲者区块。控制器可取得各候选牺牲者区块的个别的擦除计数,并参考表1或表2以取得候选牺牲者区块的个别的权重。接着,对于各候选牺牲者区块可借由将自各的权重乘上一个数字计算出各自对应的一个加权数字。控制器可借由比较候选牺牲者区块的个别的有效计数与个别的权重数字的和选择一牺牲者区块。例如,控制器可选择一牺牲者区块,此牺牲者区块的有效计数与权重数字的和是候选牺牲者区块中最小的。
图5绘示基于未使用区块计数指定一超级区块的技术500的一例。超级区块组合来自具有相近的未使用区块计数的平面的物理区块。如图5所示,超级区块组合来自芯片#0及芯片#1的四个不同的平面的四个物理区块。各平面的未使用区块计数分别为5、10、6及8。
如上所述,数据可根据各自的特征(例如热度/冷度)被特征化。如图5所示的示例,要被写入的数据报括四个群组的数据:第一热数据、第二热数据、温数据及冷数据。此四个群组的数据可基于各自的特征及超级区块中的数据区块的特征而被配置到超级区块的超级页中个别的页。在一些例子中,具有未使用区块计数少于其他平面的平面可比其他平面具有更多有效数据。由于热数据比冷数据更容易成为无效数据,热数据会被放进具有未使用区块计数较其他平面低的平面的区块中。在这种方式下,区块可更简单地被回收为未使用区块,且未使用区块计数可被平衡。如图5所示,第一热数据被配置到具有未使用区块计数5的芯片#0的平面#0的区块中,第二热数据被配置到具有未使用区块计数6的芯片#1的平面#0的区块中,温数据被配置到具有未使用区块计数8的芯片#1的平面#1的区块中以及冷数据被配置到具有未使用区块计数10的芯片#0的平面#1的区块中。
表3显示基于擦除计数指定超级区块的技术的一例。首先,各平面中的物理区块中具有最小擦除计数的一单一未使用区块被选择。接着,若一特定所选区块的擦除计数远大于其他所选区块,此特定区块会被放弃,也就是,不会被选取或组合到超级区块中。
表3
在一些实施例中,一阈值是基于从平面的所选区块的擦除计数决定。若一特定所选区块具有大于所决定的阈值的擦除计数,此特定所选区块会被放弃,也就是说,不被使用于超级区块;若一特定所选区块具有不大于所决定的阈值,此特定所选区块会被组合到超级区块中。
如表3所示,来自四个平面的各所选区块的擦除计数分别为5、6及51。阈值可被决定为擦除计数的平均值再乘上一系数。此系数可为一常数(例如依据经验数据预先决定)。例如,系数为2,且阈值为33。只有来自芯片#1的平面#1的所选区块具有大于阈值的擦除计数51。因此,来自芯片#1的平面#1的所选区块被放弃。其他三个所选区块可被组合到超级区块。
表4显示基于有效计数平衡指定超级区块的技术的一例。首先,各平面的物理区块的有效计数被加总以获得各平面的一个别的总和有效计数(有效计数总计或有效计数总和)。接着,比较平面的个别的有效计数总和且基于比较的结果,决定是否为超级区块从这些平面的其中之一选择一物理区块。若一平面具有远大于其他平面的有效计数总和,来自此平面的一物理区块将被决定不包括在超级区块中。在一些例子中,一阈值可基于平面的个别的有效计数总和决定,且借由比较各平面的有效计数总和与阈值分别决定是否为超级区块选择来自各平面的物理区块。
表4
如表4所示,芯片#0的平面#0的有效计数总和为3452,芯片#0的平面#1的有效计数总和为3500,芯片#1的平面#0的有效计数总和为6980以及芯片#1的平面#1的有效计数总和为3587。由于6980远大于其他有效计数总和,故控制器不会选择来自芯片#1的平面#0的物理区块。
图6绘示带宽与未使用区块群组的关系600的一例。在情境(a)中,未使用区块群组包括来自芯片#0的平面#0及平面#1的未使用区块以及来自芯片#1的平面#0及平面#1的未使用区块。各平面中的未使用区块的最小的擦除计数EC分别为12、12、10及10。依据表3所示的技术,各平面中具有最小擦除计数的区块会被组合以获得一超级区块(或一目前数据区块)。因此,超级区块包括来自四个平面的四个单一区块,且超级区块中的各超级页包括此四个单一区块的四个页。也就是说,超级页具有一最大带宽4。
在情境(b)中,未使用区块群组包括来自芯片#0的平面#0及平面#1的未使用区块以及来自芯片剃的平面#0及平面#1的未使用区块。依据表3所示的技术,由于各平面中的未使用区块的最小的擦除计数EC分别为12、12、44及10,44远大于其他擦除计数,因此芯片#1的平面#0中不会有区块被选取。三个区块来自其他三个平面会被选取以获得一超级区块(或一目前数据区块),此三个区块为具有个平面中最小的擦除计数的区块。因此,超级区块包括来自此三个平面的三个单一区块,超级区块中的超级页包括此三个单一区块中的三个页。也就是说,此超级区块具有一较少的带宽3。
一个超级区块的组合可依据多个因子决定,包括:区块的存储器类型(例如SLC、MLC、TLC、QLC或其组合)以满足一需求、擦除延迟时间以减少损害、擦除计数总和以平衡负载,以及各擦除计数以分级磨损程度。存储器控制器可参考一或多个所述因子以从不同的平面选取空闲或未使用区块(例如依据优先度和/或公式)。对于不同的存储器,优先度和/或公式也可有所不同。
图7绘示程序700的一例,程序700用以依据一优先度为存储器决定一超级区块的组合。存储器可为图1所示的存储器116。程序700可借由一控制器(例如图1所示的控制器112)执行。
不具有擦除计数的最大值的平面会被选择(702),且空闲区块从这些平面中选择。如表3中所说明的,依据技术,具有擦除计数的最大值的区块的平面(例如表3中芯片#1的平面#1)会被放弃。不具有擦除计数的最大值的平面(例如表3中芯片#0的平面#0及平面#1以及芯片#1的平面#1)会被选择到超级区块中。
在所选平面中选择不具有一最小擦除延迟时间的空闲区块的候选者(704)。如表2中所说明的,选择具有较长擦除延迟时间的区块是有利于减少损害的。在各所选平面中,区块中具有一最小擦除延迟时间的空闲区块会被放弃,且平面中的其他空闲区块可被选取为超级区块的空闲区块的候选者。在一些例子中,擦除延迟时间的一阈值(例如可预先决定为一小时),以及具有大于阈值的擦除延迟时间的空闲区块可被选择为超级区块的空闲区块的候选者。
从候选者中选择各平面中具有一最小擦除计数的一空闲区块(706)。此步骤可根据表3的技术而被执行。
所选空闲区块的区块类型借由一需求被决定,以及所选空闲区块被组合为超级区块(708)。区块的存储器类型(例如SLC、MLC、TLC、QLC或其组合)可基于需求而被决定。接着,各所选空闲区块可基于各自被决定的存储器类型被擦除并组合为超级区块。
图8绘示于存储器中的一平面选取一牺牲者区块的程序800的一例。存储器可为图1所示的存储器112。如底下所说明的,控制器可借由一或多个策略于一平面中选取一牺牲者区块。
控制器判断此平面中的未使用区块的数量是否少于一第一阈值(例如一紧急回收阈值)(802)。控制器可借由监看平面的一区块信息表(例如图4中的区块信息表400)管理未使用区块群组(例如图3中的未使用区块群组302)。
若控制器判断此平面中的未使用区块的数量少于第一阈值,控制器执行一贪婪(greedy)策略,其中贪婪策略为选取相较于平面中其他区块具有最小的有效计数的一单一区块为一牺牲者区块(804)。
若控制器判断此平面中的未使用区块的数量不少于第一阈值,控制器判断是否发生一紧急区块(806)。在一些例子中,控制器可在运行期间标记一区块为紧急区块。响应于此平面中的未使用区块的数量不少于第一阈值的判断,控制器可检查是否存在任何紧急区块。
在一些例子中,例如图9所示,响应于此平面中的未使用区块的数量不少于第一阈值的判断,控制器检查各个区块以判断是否有一损坏区块或一单一区块中的错误位数量达到一阈值。若控制器判断存在一紧急区块,控制器执行一紧急(urgent)策略,其中紧急策略为选取紧急区块为一牺牲者区块(808)。
图9绘示依据一紧急策略选取一牺牲者区块的程序900的一例。控制器(例如图8中的控制器)判断是否有任何区块曾发生过编程失败(902)。若控制器判断有区块曾发生过编程失败,控制器选取此区块为一牺牲者区块(904)。
若控制器判断没有区块曾发生过编程失败,控制器进一步判断是否有任何区块的错误位的数量达到一第一阈值(906)。第一阈值可为一磨损阈值,磨损阈值可预先选定以指示磨损的区块。第一阈值是用以检查一区块的耐久度问题。各区块具有一编程/擦除(program/erase,P/E)极限周期。当一区块被过度使用,此区块中的数据被认为是容易失真的,且数据的错误位述可能会很多。若一个区块中的错误位的数量达到第一阈值,此区块可被认为是已磨损或是一损坏区块或存在耐久度问题。若控制器判断一区块中的错误位数量达到第一阈值,控制器选取此区块为一牺牲者区块(904)。
当控制器判断没有区块中的错误位的数量达到第一阈值,控制器判断是否有任何区块的错误位数量达到一第二阈值(908)。第二阈值可为一刷新阈值,且是用以检查读取干扰和/或保存问题。若一区块中的错误位数量达到一第二阈值,此区块中的数据需要被迁移到其他区块以确保数据的正确性,于是此区块会被回收到未使用区块群组中。第二阈值小于第一阈值。若控制器判断没有区块的错误位的数量达到第二阈值,程序900结束。若控制器判断有区块的错误位数量达到第二阈值,控制器选取此区块为一牺牲者区块(904)。
在一些例子中,程序900由控制器执行以判断是否存在一紧急区块。若控制器判断有区块曾发生编程失败,控制器可标记此区块为紧急区块。若控制器判断有区块的错误位数量达到第一阈值,控制器可标记此区块为紧急区块。若控制器判断有区块的错误位数量达到第二阈值,控制器可标记此区块为紧急区块。如上所述,在图8的步骤806中,控制器可检查是否有任何区块被标记为紧急区块。
回到图8,若控制器判断没有紧急区块,控制器判断未使用区块的数量是否少于一第二回收阈值(810)。第二回收阈值可被认为是一「贪婪」回收阈值。第二回收阈值大于第一回收阈值。若控制器判断未使用区块的数量少于第二回收阈值,程序800继续到步骤804,也就是说,控制器执行贪婪策略(选取此平面中相较于其他区块具有最小有效计数的一单一区块为一牺牲区块)。
若控制器判断未使用区块的数量不少于第二回收阈值,控制器执行依照需求(on-demand)策略(812),例如将在图10进一步说明的。对于依照需求策略,控制器可参考一或多个因子清单以借由一优先度或一公式选取一牺牲者区块。因子清单可包括擦除计数、此平面中牺牲者区块的数量、擦除延迟时间、区块类型、有效计数、页读取计数以及一逻辑与实体对应表(logical to physical table,L2P table)中与此平面相同的其他牺牲者区块的数量。因子清单可被保存于此平面的一区块信息表(例如图4的表400、表1的表1和/或表2的表2)。
在一些例子中,可决定此平面中各单一区块的一权重值。控制器可选取具有权重值达到一阈值的一单一区块为一牺牲者区块。若没有单一区块达到此标准,控制器判断不选取此平面中任何区块为牺牲者区块。
图10绘示依据一依照需求策略选取一牺牲者区块的程序1000的一例。程序1000可由一控制器(例如图8中的控制器)执行。
控制器选择具有一或多个牺牲者区块的一平面(1002)。接着控制器为此平面中的各区块计算个别的权重值以缩小牺牲者区块的候选者(的数量)(1004)。控制器可基于此平面的区块信息表中的一或多个因子计算权重值。因子可包括区块类型、有效计数和/或擦除延迟时间。在本揭露中,具有较小权重值的区块较适合被选为牺牲者区块。
在一些例子中,因子包括区块类型及有效计数,这可被用最大化数据迁移的好处。例如,假设一区块若被设置为SLC可储存100单位,若被设置为MLC可储存200单位,若被设置为TLC可储存300单位。对于此平面中的一区块,权重值可为有效计数/每一存储单元的位数,其中每一存储单元的位数是基于一区块类型。若此区块具有小于一阈值的权重值,控制器可选择此区块为牺牲者区块的候选者。
在一些例子中,因子包括擦除延迟时间,这可被用来缩小频繁擦除带来的损害。如表2中的擦除信息表2所示,擦除延迟时间越短,此区块的权重值越大,且此区块被选为牺牲者区块的机率越低。在一些例子中,若一区块的擦除延迟时间的权重小于一阈值,控制器可选取此区块为牺牲者区块的候选者。
在一些例子中,因子可包括区块类型、有效计数及擦除延迟时间。一区块的权重值可被表示为如下所示的一公式:
权重值=擦除延迟时间的权重*n+有效计数/每一存储单元的位数,
其中n为一整数。为避免选到一个具有短(或小)擦除延迟时间的区块,n可为大于一的整数(例如2)。控制器可将所计算出的此区块的权重值与一阈值进行比较。当权重值小于阈值,控制器可选择此区块为牺牲者区块的候选者。
在牺牲者区块的候选者之间,若有一牺牲者区块的候选者具有相同于逻辑与实体对应表(L2P)中的候选者的一最大数量的其他牺牲者区块(例如在与候选者相同的存储器分割中),控制器选择此候选者为一牺牲者区块(1006)。
依据图8-10所述的一或多个策略,数据区块群组(例如图3的数据区块群组306)中的一或多个区块可被选取或指派为牺牲者区块。牺牲者区块可借由一回收操作被回收。
图11绘示回收操作1100的一例。二个牺牲者区块分别在芯片#0及芯片#1中,各牺牲者区块包括二页有效数据(在图11中,非共享且标记为“1”),其余的数据为无效。来自此二牺牲者区块的此四页有效数据被一起迁移至超级区块,牺牲者区块中的有效数据变为无效数据,于是此二牺牲者区块被无效数据所填满,而可以被释放(例如擦除)以成为未使用区块。
回收操作可基于一或多个优先策略被执行。在一些例子中,一个紧急类型的牺牲者区块可被指定为高优先度。牺牲者区块可从一紧急区块选取。在一些例子中,如图8的步骤802所说明的,若一平面中未使用区块的数量少于一紧急回收阈值,将需要迅速地释放此平面中的牺牲者区块为未使用区块。因此,这些牺牲者区块可被指定为高优先度。
在一些例子中,如图8的步骤810所说明的,若一平面中的未使用区块的数量少于一贪婪回收阈值,一“废弃物收集”会依据一贪婪策略触发。贪婪回收阈值高于紧急为收阈值,且借由贪婪策略所选取的牺牲者区块可具有一低于借由紧急策略所选取的牺牲者区块的优先度。
在一些例子中,具有相同逻辑群组(例如在相同的L2P表)的牺牲者区块会有相同的优先度,且牺牲区块中的数据可被聚集在一起以迁移,这将能减少逻辑与实体对应表(L2P)额外写入次数,降低元数据超出(metadata overhead)。
图12A-12C绘示由控制器执行的回收操作的步骤的一例。图12A绘示回收操作中的数据迁移的步骤1200的一例。如图12A所示,芯片D#0的平面P#0有三个牺牲者区块,芯片D#0的平面P#1有二个牺牲者区块,芯片D#1的平面P#0有一个牺牲者区块,以及芯片D#1的平面P#1有一个牺牲者区块。控制器可根据一或多个如前文说明的优先度策略安排数据的放置位置。在图12A中,芯片D#0的平面P#0有二页有效数据、芯片D#0的平面P#1有一页有效数据以及芯片D#1的平面P#0有一页有效数据被选取以迁移至目前数据区块中的一超级页中,其中此超级页包括四个单一区块中的四个页。所选页在图12A中被标记为“1”。
图12B绘示回收操作中的区块释放步骤1230的一例。若一区块被填满无效数据(例如芯片D#0的平面P#1的区块1232),此区块会被释放(或擦除)并放置到芯片D#0的平面P#1的未使用区块群组。
图12C绘示回收操作中选取牺牲者区块的步骤1250的一例。在一牺牲者区块被释放(如图12B所示)后,控制器可继续选取其他牺牲者区块并持续迁移(数据)直到完成一回收触发条件。例如,芯片D#1的平面P#1的区块1252被控制器选取为牺牲者区块,且可进一步被控制器选取以回收。如前所述,回收触发条件可为在平面中的未使用区块的数量不少于一紧急回收阈值或不少于一贪婪回收阈值或没有紧急区块需要被处理。
图13绘示依据需求分配超级页的程序1300的一例。需求可包括从一主机装置(例如图1的主机装置120)写入更新数据到一存储器(例如图1的存储器116)。程序1300可由一控制器(例如图1的控制器112)执行。需求也可包括迁移有效数据至存储器和/或写入像是用以管理闪存转换层(Flash Translation Layer,FTL)的元数据。
控制器判断是否有任何空白的超级页适合储存与需求的相关的数据(1302)。如前文所述,一超级区块可在存储器中被指定。此超级区块包括多个超级页。此超级区块可包括一或多个物理区块,所述物理区块可具有相同或不同的区块类型。
若控制判断存在一或多个空白超级页适合用以储存此数据,程序1300结束且控制器可将数据编程到空白的超级页。
若控制器判断没有空白的超级页适合用以储存此数据,控制器在存储器的不同的平面中依据如前所述的一或多个策略选取至少一区块(1304)。接着,控制器根据各单一区块的特征擦除各单一区块,各单一区块的特征是根据需求来决定(1306)。例如,若此需求需要储存安全数据,一区块可被擦除为一SLC区块。若需求需要储存串流数据,一区块可被擦除为一MLC区块。接着,控制器将来自平面的已被擦除的单一区块组合为一超级区块,其中来自这些平面的单一区块中的单一页会被组合为一或多个超级页(1308)。这些超级页可被用以储存相关于此需求的数据。
图14绘示用于存储器中的超级区块组成方法的程序1400的一例。存储器可为图1的存储器116。存储器可包括一或多个存储器装置且可具有至少二平面的物理区块。程序1400可由一控制器(例如图1的控制器112)执行。控制器可用以管理存储器中的超级区块的区块配置。
控制器保存平面中各物理区块的区块信息(1402)。物理区块的区块信息可包括一或多个参数,所述参数(因子)包括擦除计数、有效计数、页读取计数、擦除延迟时间、指示此物理区块是否在一目前数据区块的一第一旗标以及指示此物理区块是否为一未使用区块的一第二旗标。各平面可具有一区块信息表,此区块信息表储存平面中的物理区块的区块信息。平面的区块信息表可相互独立。
控制器组合来自这些平面的至少一区块为一超级区块(1404)。控制器基于这些平面的物理区块的区块信息于各平面中选取不多于一个物理区块以获得超级区块。
在一些例子中,对于各平面,控制器被用以基于此平面的物理区块的区块信息选择一未使用物理区块,此未使用区块为此平面的物理区块中具有一最小擦除计数者。接着,控制器可用以基于从这些平面中所选的未使用物理区块的擦除计数决定一阈值。响应于所选的未使用物理区块具有大于所决定的阈值的一判断,控制器可决定为超级区块不选取所选的未使用物理区块。响应于所选的未使用物理区块具有不大于所决定的阈值的一判断,控制器可决定为超级区块选取所选的未使用物理区块。
在一些例子中,控制器用以计算各平面的这些物理区块各自的有效计数的一个别的总和,比较这些平面的这些有效计数的个别的总和,以及基于比较得出的一结果,决定是否为超级区块从这些平面中选择一物理区块。例如,控制器可基于这些平面的有效计数的总和计算一阈值。若一平面的有效计数的总和达到此阈值,控制器可决定不从此平面选择一物理区块。若一平面的有效计数的总和不多于此阈值,控制器可决定从此平面选择一物理区块。
在一些例子中,控制器可用以从这些平面中选择一平面,其中控制器在各平面中选取一未使用区块,此未使用区块具有小于其他区块的擦除计数,且不具有此平面中的一最小擦除延迟时间。若所选的区块的其中之一具有远大于其他所选的区块的擦除计数和/或具有远小于其他所选的区块的擦除延迟时间,控制器可决定不为超级区块选取此未使用物理区块。
超级区块可被用以储存更新数据、迁移数据或元数据。当控制器判断超级区块无法储存更多数据时,控制器释放控制区块为个别的数据区块(1406)。
控制器例如根据一或多个策略从这些平面中选取一或多个牺牲者区块(1408)。在一些例子中,响应于平面中的未使用区块的数量小于一第一回收阈值(例如一紧急回收阈值)的一判断,控制器执行一贪婪策略,其中贪婪策略为在其中一个平面中选取具有一最小有效计数的物理区块为牺牲者区块。
在一些例子中,响应于平面中的未使用区块的数量不少于一第一回收阈值且存在一紧急区块的一判断,控制器执行一紧急策略,其中紧急策略为选取此紧急区块为一牺牲者区块。控制器可用以借由以下至少其中之一决定一物理区块为一紧急区块:此物理区块曾发生过编程失败、此物理区块中的错误计数达到一第一阈值(例如针对耐久度问题的一磨损阈值)或此物理区块中的错误计数达到一第二阈值(例如针对读取干扰和/或保存问题的一刷新阈值)。
在一些例子中,响应于此平面中的未使用区块的数量不小于一第二回收阈值的一判断,控制器选取一物理区块为一牺牲者区块,此物理区块具有达到一阈值的一权重值。物理区块的权重值可基于一或多个参数(包括区块类型、有效计数及擦除延迟时间)被计算出来。
在一些例子中,控制器用以从这些平面中选择一平面。所选的平面可为这些平面中具有一最大数量的牺牲者区块者。所选的平面也可具有多个物理区块,且各这些物理区块具有小于预先决定的阈值的一权重值。对于各这些物理区块,控制器可计算此平面中牺牲区块在相同于此区块的一逻辑与实体对应表(L2P)的数量。控制器可选取在同样的L2P表中具有最大数量的牺牲者区块的物理区块为一牺牲者区块。
控制器回收牺牲者区块为未使用区块(1410)。控制器可基于一或多个优先度策略执行一回收操作。控制器可用以基于回收优先度策略安排来自一或多个平面的一或多个牺牲者区块中要被迁移的有效数据,接着同时迁移所述有效数据至一目前数据区块(例如其他具有一或多个空闲超级页的超级区块)。接着,控制器可擦除不具有有效数据的牺牲者区块以获得未使用物理区块。
在一些实施例中,控制器被用以决定要被写入存储器的数据的一或多个特征。数据可包括来自存储器外部的一装置的至少一数据、来自存储器要被迁移的有效数据或相关于存储器的元数据。特征可包括以下至少其中之一:一安全等级、一内部系统等级或一读取及写入频率等级。
在一些例子中,控制器基于所决定的要被写入的数据的特征从各平面选取物理区块以获得超级区块。
在一些例子中,控制器被用以响应于没有空白超级页可用以储存此数据的一判断,从各平面选取物理区块,基于所决定的要写入的数据的特征擦除所选的物理区块,以及组合来自这些平面的这些物理区块的单一页以获得用以储存此数据的一超级页。
在一些例子中,控制器被用以:基于所决定的此数据的特征分类此数据,基于所决定的此数据的特征配置此数据至超级区块中的个别的物理区块,以及编程此超级区块的一或多个超级页以储存此数据。
所揭露的及其他例子可由一或多个计算器程序产品实现,例如编码于一计算器可读媒体的一或多个模块的计算器程序指令,可由数据处理装置执行或用以控制数据处理装置的操作。计算器可读媒体可为一计算器可读储存装置、一机器可读储存基板或上述一或多个的组合。“数据处理装置”包括所有用以处理数据的装置(apparatus、device)及机器(mechine),例如包括可编程处理器、一计算器或多处理器或计算器。装置除了硬件之外可包括创造计算器程序所要求的一执行环境的程序代码(例如构成处理器固件的程序代码)、一协议堆叠、一数据库管理系统、一操作系统或上述的一或多个的组合。
系统包括所有用以处理数据的装置(apparatus、device)及机器(mechine),例如包括可编程处理器、一计算器或多处理器或计算器。装置除了硬件之外可包括创造计算器程序所要求的一执行环境的程序代码(例如构成处理器固件的程序代码)、一协议堆叠、一数据库管理系统、一操作系统或上述的一或多个的组合。
计算器程序(也被理解为程序、软件、软件应用程序、脚本或程序代码)可以任何形式的程序语言(包括编(compile)或译(interpret)语言)写成,且其可被以任何方式布署(例如包括单独程序或一模块、元件、子例行程序或其他适合用于一计算器环境的单位)。计算器程序不一定要对应于一文件或在一文件系统中。程序可被储存于含有其他程序或数据的一文件的一部份(例如储存于标记语言档案的一或多个脚本)或储存于多个协作文件(例如储存一或多个模块、子程序或部分程序代码的多个文件)。计算器程序可以布署在一台计算器上,或者位于一个站点或跨多个站点分布并通过网际网络连接的多台计算器上执行。
本发明中描述的程序和逻辑流程可由一或多个可编程执行一或多个计算器程序的一或多个可编程处理器来执行,以执行在此描述的功能。处理和逻辑流程也可以由专用的逻辑电路(例如现场可编程门阵列(field programmable gate array,FPGA)或特殊应用集成电路(application specific integrated circuit,ASIC)来实现。装置同样地也可以上述方式实现。
适合用以执行计算器程序的处理器例如包括通常或专用微处理器及任何类型的数字计算器的任何一或多个处理器。一般而言,处理器可接收指令及来自只读存储器和/或随机存取存储器的一或多个数据。计算器的基本元件可包括用以执行指令的处理器及用以储存指令及数据的一或多个存储器装置。一般而言,计算器也可包括用于储存数据的一或多个大容量储存装置(例如磁盘、磁光盘或光盘)和/或操作性地耦接至一或多个大容量储存数据以传送或接收数据。然而,计算器不必定要具有这些装置。适合用以储存计算器程序指令及数据的计算器可读媒体可包括所有形式的非挥发性存储器、媒体及存储器装置,例如包括半导体存储器装置(例如EPROM、EEPROM及闪存装置);磁盘。处理器及存储器可由特殊目的逻辑电路辅助或并入特殊目的逻辑电路中。
虽然本文件描述了许多特定例子,但这些例子不应被用来限制本发明所要主张的范围或可以被主张的范围,而应被认为是对特定实施例的特定特征的描述。相反地,在单个实施例的上下文中描述的各种特征也可在多个实施例中单独或以任何合适的子组合来实现。此外,尽管上文将特征描述为在某些组合下起作用,即使最初主张如此,但是在一些情况下,来自所要求保护的组合的一或多个特征可从该组合中删除,并且所要求保护的组合可针对子组合或子组合的变形。相似地,尽管在附图中以特定的顺序描述操作,但这不应被理解为必须要以所示出的特定顺序或顺序执行这样的操作,或者要执行所有示出的操作,以实现所要的结果。
本文仅公开了一些示例和实施方式。本领域技术人员可基于所公开的内容对所描述的示例和实现以及其他实施做出变化、修改和增强。

Claims (20)

1.一种存储器控制器,用于一存储器的超级区块的区块配置管理,该存储器控制器包括:
控制电路,耦接至该存储器,该存储器具有至少两个平面的物理区块,该控制电路被用以:
保存该些平面中的各该物理区块的区块信息;以及
基于该些平面中的该些物理区块的该些区块信息组合来自该些平面的一或多个所述物理区块为一超级区块,其中包括:
在选取的一平面中选择未使用物理区块,其中在选取的该一平面中各该选取的未使用物理区块的一擦除延迟时间大于选取的该一平面中的该些物理区块的该些擦除延迟时间的最小者,擦除延迟时间记录此单一区块上次被擦除的时间点到目前时间点之间的时间,其中,超级区块中的各物理区块来自不同平面。
2.如权利要求1所述的存储器控制器,其中该物理区块的该区块信息包括以下至少其中之一:擦除计数、有效计数、页读取计数、擦除延迟时间、用以指示该物理区块是否在一目前数据区块的一第一旗标或用以指示该物理区块是否为一未使用区块的一第二旗标。
3.如权利要求1所述的存储器控制器,其中对于各该平面,该控制电路是用以基于该平面的该些物理区块的该些区块信息选取一未使用物理区块,该未使用物理区块为于该平面的该些物理区块中具有一最小擦除计数者。
4.如权利要求3所述的存储器控制器,其中该控制电路被用以:
基于从该些平面中所选的该些未使用物理区块的擦除计数决定一阈值;
响应于一所选的未使用物理区块具有大于所决定的该阈值的一擦除计数的一判断,决定不为该超级区块选取所选的该未使用物理区块;以及
响应于一所选的未使用物理区块具有不大于所决定的该阈值的一擦除计数的一判断,决定为该超级区块选取所选的该未使用物理区块。
5.如权利要求1所述的存储器控制器,其中该控制电路被用以:
计算各该平面中的该些物理区块的有效计数的一个别的总和;
比较该些平面的该些个别的总和;以及
基于该比较的一结果,判断是否要为该超级区块从该些平面的其中之一选取一物理区块。
6.如权利要求1所述的存储器控制器,其中该控制电路被用以:
计算各该平面中的该些物理区块的擦除计数的一个别的最大值;
选取一平面,所选平面的擦除计数的个别的最大值小于擦除计数的个别的最大值中的最大者;以及
在所选的该平面中选择未使用物理区块,其中各该所选的未使用物理区块的一擦除延迟时间大于该所选的平面中的该些物理区块的该些擦除延迟时间的最小者;以及
选取一物理区块,该物理区块为该些所选的未使用物理区块中具有一最小擦除计数者。
7.如权利要求1所述的存储器控制器,其中该控制电路被用以:
响应于该超级区块无法再储存更多数据的一判断,释放该超级区块以获得个别的数据区块。
8.如权利要求1所述的存储器控制器,其中该控制电路被用以:
响应于一平面中的未使用区块的数量小于一第一回收阈值的一判断,选取一物理区块为一牺牲者区块,该物理区块在该平面中具有一最小有效计数。
9.如权利要求1所述的存储器控制器,其中该控制电路被用以:
响应于一平面中的未使用区块的数量不小于一第一回收阈值且该平面中存在一紧急区块的一判断,选取该紧急区块为一牺牲者区块。
10.如权利要求9所述的存储器控制器,其中该控制电路被用以依据以下至少其中之一决定一物理区块为一紧急区块:
该物理区块曾发生过一编程失败、
该物理区块中的错误位的数量达到一第一阈值、或者
该物理区块中的错误位的数量小于该第一阈值且达到一第二阈值,该第二阈值小于该第一阈值。
11.如权利要求1所述的存储器控制器,其中该控制电路被用以:
响应于一平面中的未使用区块的数量不小于一第二回收阈值的一判断,借由比较一权重值与一阈值选取该平面中的一物理区块为一牺牲者区块,
其中该物理区块的该权重值是基于一或多个参数计算得出,该一或多个参数包括区块类型、有效计数、擦除排序以及擦除延迟时间。
12.如权利要求11所述的存储器控制器,其中该控制电路被用以:
计算各该平面的该些牺牲者区块的一个别的数量;
选取一平面,该平面为该些平面中具有该些牺牲者区块的该些个别的数量的最大者,该所选的平面包括一或多个其他物理区块,该一或多个其他物理区块具有小于预先决定的阈值的该权重值,其中该有效计数越小,该权重值越小,且该擦除延迟时间越长,该权重值越小;以及
选取该物理区块,借由确定该物理区块是在一逻辑与实体对应表中相同于在该平面中的一特定数量的牺牲者区块,且该特定数量高于该平面中的各一或多其他物理区块的数量。
13.如权利要求1所述的存储器控制器,其中该控制电路被用以:
基于一或多个回收优先度策略,安排迁移来自一或多个平面的一或多个牺牲者区块中的有效数据;以及
同时地迁移所述有效数据至一目前数据区块。
14.如权利要求1所述的存储器控制器,其中该控制电路被用以:
擦除不具有有效数据的一牺牲者区块以获得一未使用物理区块。
15.如权利要求1所述的存储器控制器,其中该控制电路被用以决定要被写入该存储器的至少一数据的一或多个特征;
其中该数据包括以下至少其中之一:来自该存储器外部的一装置的数据、来自该存储器要被迁移的有效数据或相关于该存储器的元数据,以及
其中所述特征包括以下至少其中之一:一安全等级、一内部系统等级或一读取及写入频率等级。
16.如权利要求15所述的存储器控制器,其中该控制电路被用以:
基于要写入的所述数据的所决定的所述特征组合来自该些平面的该些物理区块为该超级区块。
17.如权利要求15所述的存储器控制器,其中该控制电路被用以:
响应于没有超级页以储存所述数据的一判断,组合来自各该平面的该些物理区块为该超级区块;
基于要被写入的所述数据的被决定的所述特征组合来自该些物理区块的多个单一页以获得用以储存所述数据的一超级页。
18.如权利要求17所述的存储器控制器,其中该控制电路被用以:
基于所述数据的所决定的所述特征分类所述数据;
基于所述数据的所决定的所述特征及该超级区块中的各该物理区块的该区块信息配置所述数据至该超级区块中的个别的该些物理区块;以及
编程该超级区块的一或多个所述超级页以储存所述数据。
19.一种存储器系统包括:
一存储器,包括至少两个平面的物理区块;以及
一存储器控制器,用以管理该存储器的该些物理区块,借由:
保存该些平面中的各该物理区块的区块信息;以及
基于该些平面中的该些物理区块的该些区块信息组合来自该些平面的一或多个所述物理区块为一超级区块,其中包括:
在选取的一平面中选择未使用物理区块,其中在选取的该一平面中各该选取的未使用物理区块的一擦除延迟时间大于选取的该一平面中的该些物理区块的该些擦除延迟时间的最小者,擦除延迟时间记录此单一区块上次被擦除的时间点到目前时间点之间的时间,其中,超级区块中的各物理区块来自不同平面。
20.一种控制方法,用以借由一存储器控制器进行一存储器的超级区块的区块配置管理,该控制方法包括:
由该控制器的一控制电路保存该存储器的至少两个平面中的各物理区块的区块信息;
由该控制电路决定要被写入该存储器的数据的一或多个特征;以及
由该控制电路基于要被写入的所述数据的所决定的所述特征组合来自该些平面的一或多个所述物理区块为一超级区块,其中包括:
在选取的一平面中选择未使用物理区块,其中在选取的该一平面中各该选取的未使用物理区块的一擦除延迟时间大于选取的该一平面中的该些物理区块的该些擦除延迟时间的最小者,擦除延迟时间记录此单一区块上次被擦除的时间点到目前时间点之间的时间,其中,超级区块中的各物理区块来自不同平面。
CN201810197962.9A 2017-12-08 2018-03-09 存储器控制器、存储器系统及控制方法 Active CN109901788B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/836,476 US10445230B2 (en) 2017-12-08 2017-12-08 Managing block arrangement of super blocks
US15/836476 2017-12-08

Publications (2)

Publication Number Publication Date
CN109901788A CN109901788A (zh) 2019-06-18
CN109901788B true CN109901788B (zh) 2023-08-11

Family

ID=66590744

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810197962.9A Active CN109901788B (zh) 2017-12-08 2018-03-09 存储器控制器、存储器系统及控制方法

Country Status (3)

Country Link
US (2) US10445230B2 (zh)
CN (1) CN109901788B (zh)
TW (1) TWI652679B (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10949113B2 (en) * 2018-01-10 2021-03-16 SK Hynix Inc. Retention aware block mapping in flash-based solid state drives
US10922221B2 (en) * 2018-03-28 2021-02-16 Micron Technology, Inc. Memory management
KR102549548B1 (ko) * 2018-05-08 2023-06-30 에스케이하이닉스 주식회사 메모리 시스템, 그것의 동작 방법 및 전자 장치
CN110489051A (zh) * 2018-05-14 2019-11-22 慧荣科技股份有限公司 数据储存装置及系统信息的编程方法
US10783024B2 (en) * 2018-10-12 2020-09-22 International Business Machines Corporation Reducing block calibration overhead using read error triage
KR20200043814A (ko) * 2018-10-18 2020-04-28 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20200068259A (ko) * 2018-12-05 2020-06-15 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
TWI718635B (zh) * 2019-03-04 2021-02-11 慧榮科技股份有限公司 非對稱型平面管理方法以及資料儲存裝置及其控制器
CN111651371B (zh) 2019-03-04 2023-06-16 慧荣科技股份有限公司 非对称型平面管理方法以及数据存储装置及其控制器
TWI718492B (zh) * 2019-03-12 2021-02-11 群聯電子股份有限公司 資料儲存方法、記憶體儲存裝置及記憶體控制電路單元
TWI776028B (zh) * 2019-03-14 2022-09-01 點序科技股份有限公司 快閃記憶體管理方法及快閃記憶體
KR20210089853A (ko) * 2020-01-09 2021-07-19 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
KR20210101973A (ko) * 2020-02-11 2021-08-19 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20210115954A (ko) * 2020-03-17 2021-09-27 에스케이하이닉스 주식회사 컨트롤러 및 메모리 시스템
TWI748410B (zh) * 2020-04-15 2021-12-01 慧榮科技股份有限公司 用來針對非揮發性記憶體進行區塊管理的方法以及設備
US20220075523A1 (en) * 2020-09-08 2022-03-10 Qualcomm Incorporated Flash memory local purge
US11675509B2 (en) 2020-10-29 2023-06-13 Micron Technology, Inc. Multiple open block families supporting multiple cursors of a memory device
CN112506811B (zh) * 2020-12-17 2023-06-09 湖南翰博薇微电子科技有限公司 基于固态硬盘内数据冷热划分的数据块动态分配方法、装置
US20220261182A1 (en) * 2021-02-17 2022-08-18 SK Hynix Inc. Superblock linkage systems and method for asymmetric die packages
KR102569823B1 (ko) * 2021-02-24 2023-08-24 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR20220131058A (ko) * 2021-03-19 2022-09-27 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
KR102344380B1 (ko) 2021-06-02 2021-12-28 삼성전자주식회사 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 포함하는 저장 장치 및 그것의 동작 방법
CN113590505A (zh) * 2021-06-30 2021-11-02 深圳大普微电子科技有限公司 地址映射方法、固态硬盘控制器及固态硬盘
CN115827289A (zh) * 2021-09-17 2023-03-21 伊姆西Ip控股有限责任公司 故障处理方法、电子设备和程序产品

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1914689A (zh) * 2003-12-30 2007-02-14 桑迪士克股份有限公司 具有区块管理系统的非易失性存储器和方法
CN1930635A (zh) * 2003-12-30 2007-03-14 桑迪士克股份有限公司 对多个区块进行适应性确定群组以成为多个多区块单元
CN101233479A (zh) * 2005-08-03 2008-07-30 桑迪士克股份有限公司 直接存储数据文件的存储器区块的管理
CN101615427A (zh) * 2008-06-24 2009-12-30 群联电子股份有限公司 非易失性存储器的存储器管理方法及使用此方法的控制器
CN102341793A (zh) * 2009-03-04 2012-02-01 美光科技公司 存储器块选择
CN105009094A (zh) * 2013-03-05 2015-10-28 西部数据技术公司 在固态驱动器中利用空闲空间计数来重建两阶加电映射的方法、设备和系统
CN105938419A (zh) * 2015-03-04 2016-09-14 慧荣科技股份有限公司 数据储存装置及其数据维护方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100512181B1 (ko) 2003-07-11 2005-09-05 삼성전자주식회사 멀티 레벨 셀을 갖는 플래시 메모리 장치와 그것의 독출방법 및 프로그램 방법
US7433993B2 (en) * 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
US7383375B2 (en) * 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7350044B2 (en) * 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US7747896B1 (en) * 2006-06-30 2010-06-29 Guillermo Rozas Dual ported replicated data cache
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
US8954654B2 (en) * 2008-06-18 2015-02-10 Super Talent Technology, Corp. Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance
US8095765B2 (en) 2009-03-04 2012-01-10 Micron Technology, Inc. Memory block management
US8832507B2 (en) 2010-08-23 2014-09-09 Apple Inc. Systems and methods for generating dynamic super blocks
KR20120084906A (ko) 2011-01-21 2012-07-31 에스케이하이닉스 주식회사 비휘발성 메모리 시스템 및 그 관리 방법
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9632712B2 (en) * 2014-07-02 2017-04-25 Sandisk Technologies Llc System and method of updating metablocks associated with multiple memory dies
US20160147444A1 (en) * 2014-11-23 2016-05-26 Apple Inc. Parallel data storage in groups of memory blocks having similar performance characteristics
US10141049B2 (en) * 2014-12-19 2018-11-27 Sandisk Technologies Llc Nonvolatile memory system storing system data in marginal word lines
US10180805B2 (en) 2015-03-25 2019-01-15 SK Hynix Inc. Memory system and operating method thereof
US10126970B2 (en) * 2015-12-11 2018-11-13 Sandisk Technologies Llc Paired metablocks in non-volatile storage device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1914689A (zh) * 2003-12-30 2007-02-14 桑迪士克股份有限公司 具有区块管理系统的非易失性存储器和方法
CN1930635A (zh) * 2003-12-30 2007-03-14 桑迪士克股份有限公司 对多个区块进行适应性确定群组以成为多个多区块单元
CN101233479A (zh) * 2005-08-03 2008-07-30 桑迪士克股份有限公司 直接存储数据文件的存储器区块的管理
CN101615427A (zh) * 2008-06-24 2009-12-30 群联电子股份有限公司 非易失性存储器的存储器管理方法及使用此方法的控制器
CN102341793A (zh) * 2009-03-04 2012-02-01 美光科技公司 存储器块选择
CN105009094A (zh) * 2013-03-05 2015-10-28 西部数据技术公司 在固态驱动器中利用空闲空间计数来重建两阶加电映射的方法、设备和系统
CN105938419A (zh) * 2015-03-04 2016-09-14 慧荣科技股份有限公司 数据储存装置及其数据维护方法

Also Published As

Publication number Publication date
US20200012596A1 (en) 2020-01-09
US20190179741A1 (en) 2019-06-13
US10915442B2 (en) 2021-02-09
CN109901788A (zh) 2019-06-18
US10445230B2 (en) 2019-10-15
TWI652679B (zh) 2019-03-01
TW201926351A (zh) 2019-07-01

Similar Documents

Publication Publication Date Title
CN109901788B (zh) 存储器控制器、存储器系统及控制方法
US10387243B2 (en) Managing data arrangement in a super block
US9547589B2 (en) Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
US8959280B2 (en) Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US20180373627A1 (en) Memory system having persistent garbage collection
US9548108B2 (en) Virtual memory device (VMD) application/driver for enhanced flash endurance
US9405621B2 (en) Green eMMC device (GeD) controller with DRAM data persistence, data-type splitting, meta-page grouping, and diversion of temp files for enhanced flash endurance
US9298534B2 (en) Memory system and constructing method of logical block
US8954654B2 (en) Virtual memory device (VMD) application/driver with dual-level interception for data-type splitting, meta-page grouping, and diversion of temp files to ramdisks for enhanced flash endurance
US8438361B2 (en) Logical block storage in a storage device
US11237742B2 (en) Apparatus and method for controlling data stored in memory system
CN110928807B (zh) 用于检查存储器系统中的有效数据的设备和方法
US20190294345A1 (en) Data-Retention Controller Using Mapping Tables in a Green Solid-State-Drive (GNSD) for Enhanced Flash Endurance
US20190155521A1 (en) Data categorization based on invalidation velocities
US8984251B2 (en) Hinting of deleted data from host to storage device
CN113924546A (zh) 非易失性存储器中的磨损感知块模式转换
US11016889B1 (en) Storage device with enhanced time to ready performance
CN111104045A (zh) 一种存储控制方法、装置、设备和计算机存储介质

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