CN113823346A - 存储器子***中的区域感知式存储器管理 - Google Patents

存储器子***中的区域感知式存储器管理 Download PDF

Info

Publication number
CN113823346A
CN113823346A CN202110676084.0A CN202110676084A CN113823346A CN 113823346 A CN113823346 A CN 113823346A CN 202110676084 A CN202110676084 A CN 202110676084A CN 113823346 A CN113823346 A CN 113823346A
Authority
CN
China
Prior art keywords
region
physical memory
memory
blocks
block
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.)
Pending
Application number
CN202110676084.0A
Other languages
English (en)
Inventor
A·巴德瓦杰
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN113823346A publication Critical patent/CN113823346A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/10Address translation
    • 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
    • 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/08Address circuits; Decoders; Word-line control circuits
    • 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
    • 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
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及存储器子***中的区域感知式存储器管理。公开了一种***,其包含:存储器装置,所述存储器装置具有多个物理存储器块且与包括多个区域的逻辑地址空间相关联,其中每一区域包括多个逻辑块地址LBA;及处理装置,其以操作方式与所述存储器装置耦合以执行以下操作:接收存储与所述多个区域中的第一区域相关联的LBA所引用的数据的请求;获得所述第一区域的版本识别符;获得所述存储器装置的多个可用物理存储器块的擦除值;鉴于所述第一区域的所述版本识别符和所述擦除值,选择所述多个可用物理存储器块中的第一物理存储器块;将所述第一区域内的下一可用LBA映射到所述第一物理存储器块;以及在所述第一物理存储器块中存储所述数据。

Description

存储器子***中的区域感知式存储器管理
技术领域
本公开的实施例大体上涉及存储器子***,且更确切地说,涉及存储器子***中的区域感知式存储器管理。
背景技术
存储器子***可包含一或多个存储数据的存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。大体来说,主机***可利用存储器子***,将数据存储在存储器装置处并从存储器装置检索数据。
发明内容
本申请的一方面涉及一种***,其包括:存储器装置,其包括多个物理存储器块且与包括多个区域的逻辑地址空间相关联,其中每一区域包括多个逻辑块地址(LBA);以及处理装置,其以操作方式与所述存储器装置耦合以执行包括以下的操作:接收存储与所述多个区域中的第一区域相关联的LBA所引用的数据的请求;获得所述第一区域的版本识别符;获得所述存储器装置的多个可用物理存储器块的擦除值,其中每一擦除值表示所述多个存储器块中的相应者的已完成擦除操作的数目;鉴于所述第一区域的所述版本识别符和所述擦除值,选择多个可用物理存储器块中的第一物理存储器块;将与所述第一区域相关联的下一可用LBA映射到所述第一物理存储器块;以及在所述第一物理存储器块中存储所述数据。
本申请的另一方面涉及一种***,其包括:存储器装置,其包括多个物理存储器块且与包括多个区域的逻辑地址空间相关联,其中每一区域包括多个逻辑块地址(LBA),以及处理装置,其以操作方式与所述存储器装置耦合以执行包括以下的操作:发起所述存储器装置的扫描;将所述多个区域中的第一区域识别为具有最低版本识别符的区域,其中区域的所述版本识别符反映所述区域的无效次数;从所述第一区域的第一LBA开始,执行错误校正分析以检测映射到所述第一区域的连续LBA的风险物理存储器块;以及鉴于映射到所述第一区域的LBA的所检测风险物理存储器块,确定在所述第一区域处是否要停止所述存储器装置的所述扫描。
本申请的又一方面涉及一种方法,其包括:通过以操作方式与存储器装置耦合的处理装置接收存储与多个区域中的第一区域相关联的逻辑块地址(LBA)所引用的数据的请求,其中每一区域包括所述存储器装置的逻辑地址空间的多个逻辑块地址(LBA),所述存储器装置具有多个物理存储器块;通过所述处理装置获得所述第一区域的版本识别符;通过所述处理装置获得所述存储器装置的多个可用物理存储器块的擦除值,其中每一擦除值表示所述多个可用存储器块中的相应者的已完成擦除操作的数目;鉴于所述第一区域的所述版本识别符和所述擦除值,通过所述处理装置选择所述多个可用物理存储器块中的第一物理存储器块;通过所述处理装置将与所述第一区域相关联的下一可用LBA映射到所述第一物理存储器块;以及通过所述处理装置在所述第一物理存储器块中存储所述数据。
附图说明
根据下文提供的详细描述和本公开的各种实施例的附图将更加全面地理解本公开。
图1示出根据本公开的一些实施例的包含存储器子***的实例计算***。
图2A-B示意性地示出存储器子***中的区域感知式存储器管理的高级描述。
图3示意性地示出根据本公开的一些实施例的区域感知式存储器管理中的区域-块匹配。
图4示意性地示出根据本公开的一些实施例的区域感知式存储器管理中的基于分布的区域-块匹配。
图5示出根据本公开的一些实施例的存储器装置的区域感知式存储器管理的实例方法的流程图。
图6A示出根据本公开的一些实施例的在存储器装置中执行区域感知式背景扫描的实例方法的流程图。
图6B是根据本公开的一些实施例的图6A所示方法的一个可能实施例的流程图。
图6C示意性地示出根据本公开的一些实施例执行的实例区域感知式背景扫描。
图7是本公开的实施例可在其中操作的实例计算机***的框图。
具体实施方式
本公开的各方面涉及存储器子***中使用存储器区域的版本编号的区域感知式存储器管理。存储器子***可以是存储装置、存储器模块或存储装置和存储器模块的混合物。下面结合图1描述存储装置和存储器模块的实例。大体来说,主机***可利用包含存储数据的一或多个存储器组件(例如,存储器装置)的存储器子***。主机***可提供将存储在存储器子***处的数据,并且可请求将从存储器子***检索的数据。
存储器装置可以是可存储来自主机***的数据的非易失性存储器装置。非易失性存储器装置的一个实例是与非(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。存储器装置中的每一个可包含一或多个存储器单元阵列。存储器单元(“单元”)是存储信息的电子电路。取决于单元类型,一个单元可存储一或多个二进制信息位,并且具有与所存储的位的数目相关的各种逻辑状态。逻辑状态可由二进制值(例如“0”和“1”)或此类值的组合表示。
各个存取操作可在存储器单元上执行。数据可写入到存储器单元、从存储器单元读取和从存储器单元擦除。存储器单元可分组成写入单元,例如页。对于一些类型的存储器装置,页是最小写入单元。页是跨相同字线的一组单元。页大小表示页中的特定单元数目。对于一些类型的存储器装置(例如,NAND),存储器单元可分组成擦除单元,例如物理块,它是一组页。物理块是页(单元行)和串(单元列)的2维存储器阵列。数据可逐页写入到块。数据可在块级处进行擦除。但是,块的部分无法被擦除。
块中的页可含有有效数据、无效数据或不含数据。无效数据是因为新版本的数据存储在存储器装置上而被标记为过时的数据。无效数据包含先前写入但不再与有效逻辑地址(例如,物理到逻辑(P2L)映射表中被主机***引用的逻辑地址)相关联的数据。有效数据是存储在存储器装置上的此类数据的最新版本。存储器子***可基于例如从操作***接收到的信息而将数据标记为无效。不含数据的页包含先前已经擦除且尚未被写入的页。
存储器子***控制器可执行用于媒体管理算法的操作,例如耗损均衡、刷新、垃圾收集、清理等,以便帮助管理存储器子***上的数据。块可具有一些含有有效数据的页和一些含有无效数据的页。为了避免等待块中的所有页都具有无效数据以便擦除和重复使用所述块,可以调用下文称为“垃圾收集”的算法,使得块能够被擦除和释放以作为用于后续写入操作的空闲块。垃圾收集是一组媒体管理操作,包含例如选择含有有效和无效数据的块、选择块中含有有效数据的页、将有效数据复制到新位置(例如,另一块中的空闲页)、将先前选定页中的数据标记为无效以及擦除选定块。
在下文中“垃圾收集”是指选择块、将有效数据从选定块重写到另一块并擦除存储在选定块处的所有无效数据和有效数据。来自多个选定块的有效数据可以复制到更少数目个其它块,接着可以擦除选定块。因此,已经擦除的块的数目可增加,使得有更多块可以用于存储来自主机***的后续数据。但是,有效存储器管理可能会因为以下本征存储器子***设计限制而复杂化:典型的基于晶体管的存储器单元在经过一定次数的擦除操作(从三层级单元中的几千次到单层级单元中的数万次或更多次)后会磨损,这时浮动栅极持续保持电荷的能力会显著降低。
一些存储器管理方案可部署分区命名空间(ZNS),在本文中也称为“区域”。区域是以一种使得每一区域的逻辑块地址(LBA)在写入操作中将从低端LBA开始依序使用的方式配置的存储器装置的逻辑地址空间的分区。属于特定区域的LBA范围可专用于特定主机应用,且单独的应用程序只能存取专用于那些应用的区域。因为每一区域的LBA是依序写入的,所以重写已经存储在区域中的数据需要使整个区域无效(通过例如将写入指针移动到区域的起始LBA)。使用分区命名空间允许更高效(更快)的读取、写入和擦除操作,并减少向各种应用过度提供存储器块的需要(通过减少原本将存储无效数据且在向应用分配存储器时必须要考虑在内的块的数目)。
但是,ZNS架构并不能完全消除对高效存储器管理的需要。例如,不同应用可以不同速率存储(和更新)数据。因此,一些区域只能被覆写几次,而其它区域则被覆写得更频繁。如果LBA到物理存储器块映射保持静态,则可能会导致不同应用使用的物理存储器块之间的擦除计数出现显著差异。例如,用于存储相对静态的数据库的区域可能很少被覆写,而用于存储临时计算数据或短期高速缓存的区域可能以高得多的速率被覆写。
本公开的各方面通过描述存储器子***中的区域感知式存储器管理解决了以上和其它缺陷。在一些实施例中,存储器子***的存储器控制器可跟踪区域被覆写的次数——区域的版本号(VN)——并跟踪各个物理块被擦除的次数。在一些实施例中,当应用(例如,在主机***上运行)请求与特定区域相关联地存储数据时,所述应用可指定区域的识别符,它可以是区域的起始(最低)LBA或指定区域的任何其它指针。响应于接收到识别符,存储器控制器可确定区域的VN,并且进一步获得可用物理存储器块的擦除计数(EC),这可由其相应物理块地址(PBA)识别。存储器控制器可选择基于区域的VN的块,使得具有低VN(指示区域在将来变为无效的低概率)的“冷”区域与高EC“热”物理存储器块(即,生命周期中所剩擦除操作比存储器子***的平均块少的块)相关联。反之,存储器控制器可使“冷”物理存储器块(具有低EC的块)与具有高VN(指示区域在将来常常变为无效的高概率)的“热”区域相关联。在选定适当的物理块后,存储器控制器可匹配区域的下一可用LBA与选定块的PBA,将数据写入到选定块,并存储LBA-PBA关联(例如,在存储器查找表中)以用于可由应用指向LBA的后续读取和擦除操作。
在一些实施例中,存储器控制器(或本地媒体控制器)可执行(例如,在空闲时间或周期性地)存储器子***的物理存储器块的背景扫描以确定一些块中的数据是否有损坏风险。例如,已在特定块中长时间存储的数据可由于来自经受各个读取、写入和/或擦除操作的其它(例如,物理邻近)块的物理(静电)干扰而受损害。背景扫描可执行至少一些块的错误校正码(ECC)分析,并调度那些位错误率(BER)超过特定阈值的块用于折叠,这是指通过将数据移动到其它块来刷新其中存储的数据。在区域感知式存储器管理中,背景扫描可能仅耗费检查存储器子***的所有块所需时间的一部分。更确切地说,因为低VN指示与区域(和区域的LBA)相关联地存储的数据的长存储时间(在没有擦除的情况下),所以背景扫描可从最低VN区域开始,这是由于此类区域的物理存储器块(被覆写的次数最少)更有可能存在数据丢失的风险。
此外,因为如上文所描述,使用高EC块在低VN区域中(即,与其相关联地)存储数据,所以此类高EC块可更接近它们的资源限制,进而具有更高的受损风险。因此,一旦ECC操作确定特定区域(例如,具有第N低VN的区域)的块在低风险BER范围内,那么背景扫描可以停止。另外,因为在每一区域内,数据存储在依序LBA中(即,与其相关联地存储),所以仅扫描与每一区域的较低LBA相关联的物理存储器块就足够,这是由于这些块已存储数据最长时间,并因此具有最高的受损风险。一旦ECC操作确定区域的特定数目个(例如,连续)物理块在低风险BER范围内,那么所述特定区域的背景扫描可以停止(并且在必要时可以扫描下一区域)。因此,可能需要扫描的仅是与每一区域相关联的物理块的小部分及有限数目的区域。
图1示出根据本公开的一些实施例的包含存储器子***110的实例计算***100。存储器子***110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130),或此类装置的组合。
存储器子***110可以是存储装置、存储器模块或存储装置和存储器模块的混合物。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外廓DIMM(SO-DIMM)和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算***100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。
计算***100可包含耦合到一或多个存储器子***110的主机***120。在一些实施例中,主机***120耦合到不同类型的存储器子***110。图1示出耦合到一个存储器子***110的主机***120的一个实例。如本文中所使用,“耦合到”大体上是指组件之间的连接,此连接可以是间接通信连接或直接通信连接(例如,不具有中间组件),不管是有线还是无线,包含电气、光学、磁性等连接。
主机***120可包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机***120使用存储器子***110,例如以便将数据写入到存储器子***110和从存储器子***110读取数据。
主机***120可以经由物理主机接口耦合到存储器子***110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、***组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双倍数据率(DDR)存储器总线、小型计算机***接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据速率(DDR)的DIMM套接接口)等等。物理主机接口可用于在主机***120和存储器子***110之间传输数据。主机***120可进一步利用NVM快速(NVMe)接口,在存储器子***110通过PCIe接口与主机***120耦合时存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子***110和主机***120之间传递控制、地址、数据和其它信号的接口。作为实例,图1示出存储器子***110。一般来说,主机***120可经由同一个通信连接、多个单独的通信连接和/或通信连接的组合存取多个存储器子***。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的变化而执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行原位写入操作,其中非易失性存储器单元可以在其先前已进行擦除的情况下进行编程。NAND型快闪存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如单层级单元(SLC),可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC),可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含例如SLC、MLC、TLC、QLC或它们的任何组合的一或多个阵列。在一些实施例中,特定存储器装置可包含SLC部分,以及存储器单元的MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可以分组为页,页可以指用于存储数据的存储器装置的逻辑单元。在一些类型的存储器(例如,NAND)中,可以将页分组以形成块。
尽管描述了非易失性存储器组件,例如3D交叉点非易失性存储器单元阵列和NAND型快闪存储器(例如,2D NAND、3D NAND),但是存储器装置130可以基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)。
存储器子***控制器115(或者为简单起见,称为控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子***控制器115可包含例如一或多个集成电路和/或离散组件、缓冲存储器或其组合的硬件。硬件可包含具有专用(即,硬译码)逻辑的数字电路***以执行本文中所描述的操作。存储器子***控制器115可以是微控制器、专用逻辑电路***(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的处理器。
存储器子***控制器115可包含处理器117(例如,处理装置),其经配置以执行存储在本地存储器119中的指令。在所示的实例中,存储器子***控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行控制存储器子***110的操作的各种过程、操作、逻辑流和例程的指令,包含处置存储器子***110与主机***120之间的通信。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。尽管图1中的实例存储器子***110示出为包含存储器子***控制器115,但是在本公开的另一实施例中,存储器子***110不包含存储器子***控制器115,而是可以依赖于外部控制(例如,由外部主机或者由与存储器子***分离的处理器或控制器提供)。
一般来说,存储器子***控制器115可从主机***120接收命令或操作,并且可将命令或操作转换成指令或适当的命令以实现期望的对存储器装置130的存取。存储器子***控制器115可负责其它操作,例如耗损均衡操作、垃圾数据收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作及与存储器装置130相关联的逻辑地址(例如,逻辑块地址LBA、分区命名空间)和物理地址(例如,物理块地址PBA)之间的地址转换。存储器子***控制器115可进一步包含主机接口电路***,用于经由物理主机接口与主机***120通信。主机接口电路***可将从主机***接收到的命令转换成存取存储器装置130的命令指令,并将与存储器装置130相关联的响应转换成用于主机***120的信息。
存储器子***110还可包含未示出的额外电路***或组件。在一些实施例中,存储器子***110可包含可以从存储器子***控制器115接收地址并将地址解码以存取存储器装置130的高速缓存或缓冲器(例如,DRAM)和地址电路***(例如,行解码器和列解码器)。
在一些实施例中,存储器装置130包含结合存储器子***控制器115用于对存储器装置130的一或多个存储器单元执行操作的本地媒体控制器135。外部控制器(例如,存储器子***控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,它是与本地控制器(例如,本地控制器135)组合以用于相同存储器装置封装内的媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子***110包含区域感知式存储器管理组件(ZMC)113,其可响应于接收到在特定区域中存储数据的请求而存取所述区域的版本号(VN),获得可用物理存储器块(例如,当前不存储数据或存储已经无效的数据的块)的至少一个子集的EC,并选择最佳块的PBA来存储数据。存储数据的最佳块可以是EC与区域VN负相关的块,如下文参考图3更详细地描述,从而确保跨存储器装置130和/或140的耗损均匀。ZMC 113可进一步通过按照版本号的次序扫描区域并通过从最低LBA(最早写入PBA)开始扫描与每一区域的LBA相关联的物理块来执行一或多个存储器装置130、140区域感知式背景扫描。在一些实施例中,一旦第一条件满足,ZMC 113就可停止扫描给定区域内的块。例如,ZMC 113可确定所扫描的区域内的预定数目个块(例如,连续块)具有低于“风险”阈值的BER。在一些实施例中,ZMC 113可类似地在第二条件满足时停止扫描区域。例如,ZMC 113可确定一或多个区域中的风险块的数目不超过第二预定数目的块。但是,在各种其它实施例中可使用不同的第一和第二条件,如参考图6更详细地解释。在存储器子***110的操作期间,存储器子***110的各个区域的VN可以存储在存储器装置130和/或140中的一个中,或存储在存储器控制器115(或本地媒体控制器135)可存取的单独数据结构中。存储器装置或单独数据结构可以是易失性存储器结构(例如,DRAM)。在一些实施例中,当存储器子***110通电且存储器控制器115(和/或本地媒体控制器135)初始化时,VN可以从非易失性存储器(例如,NAND存储器)提取到易失性存储器结构。当区域无效时,所述区域的VN可在易失性存储器结构中更新,并复制到非易失性存储器,以便在出现意外断电的情况下保持VN。
在一些实施例中,ZMC 113可在存储器子***的空闲时间期间,例如当每单位时间写入、擦除和/或读取请求数目降到某一设定阈值以下时,执行背景扫描。在一些实施例中,ZMC 113可响应于失败的最新读取或写入操作的数目(例如,百分比)而执行背景扫描。在一些实施例中,ZMC 113可从早先扫描的开始(或结束)时间起以固定时间间隔执行背景扫描。在一些实施例中,ZMC 113可在特定时间——每小时、每天或每隔一个时间单位——执行背景扫描,如由存储器子***110和/或主机***120或人类操作者(例如,生产工程师或***管理员)所配置。在一些实施例中,背景扫描的监测排程可以存储在本地存储器119(例如,嵌入式存储器)中。
在一些实施例中,存储器子***控制器115包含ZMC 113的至少一部分。例如,存储器子***控制器115可包含处理器117(处理装置),其配置成执行存储在本地存储器119中的指令以执行本文中所描述的操作。在一些实施例中,ZMC 113是主机***120、应用或操作***的部分。在一些实施例中,ZMC 113可具有存储于存储器装置130(和/或存储器装置140)中的配置数据、库和其它信息。
图2A-B示意性地示出存储器子***中的区域感知式存储器管理的高级描述。图2A描绘存储器管理的一个实施例200。图2B描绘存储器管理的另一实施例202。如图2A中所示,主机***120(例如,其操作***或在主机***120上执行的任何应用)可向存储器子***110传送读取、写入或擦除请求。请求可包含存储器子***110的逻辑空间内或请求发起者可存取的逻辑空间的一部分内的LBA 210。LBA 210可供存储器子***控制器115用于识别与接收到的存储器请求相关的物理存储器分区(块、页、平面等)。例如,存储器子***控制器115可存取存储器查找表212,以确定对应于LBA 210的PBA216。控制器115随后可使用由所确定的PBA 216识别的对应块执行接收到的存储器请求。例如,控制器115可读取存储在对应块中的数据(并将数据提供到主机***120的处理装置)或将数据写入到对应块中。在一些情况下,当块中的数据要进行覆写时或如果没有块当前分配给LBA 210,控制器115可首先执行动态垃圾收集(GC)例程(214)。例如,控制器115可识别适当的块(通过其PBA216),它可以是具有最小数目的擦除计数的块,或更一般来说,可以是擦除次数少于存储器装置中的平均块的块。在此类识别后,控制器115可将新数据写入到所识别的块中。控制器115还可利用新存储器转换LBA→PBA更新存储器查找表212(如由虚线连接框214和212所指示)。在存储器请求是覆写请求的情形中,控制器115还可使已存储在旧块(先前由LBA 210识别)中的数据失效,并利用新存储器转换LBA→PBA更新存储器查找表212。
在执行存储器请求之后,例如,在停机时间或经调度GC时间期间,控制器115可执行静态GC 218和/或背景扫描220。在静态GC 218期间,可识别只覆写很少次数(例如,少于存储器装置的平均块)的“冷”数据并将其移动到具有高于平均的擦除计数(EC)且因此相较于其它块更接近其资源限制末端的块。在背景扫描220期间,存储器子***控制器115可识别具有以下较高风险的块:具有过多位被损坏,使得错误校正码(ECC)最终可能无法修复存储于其上的数据。此类块可折叠(复制到新位置,其中旧位置被擦除或无效,即调度用于擦除)到其它块,例如具有较低EC的块。在完成静态GC 218和/或背景扫描220后(或在一些实施例中,在执行期间),控制器115可以用新存储器转换LBA→PBA更新存储器查找表212(如由对应虚线所指示)。在一些实施例中,动态GC 214可包含区域-块匹配232,且背景扫描220可包含区域感知式背景扫描236,如下文参考图2B更详细地描述。
如图2B中所示,根据本公开的一些实施例,主机***120可产生区域写入请求230并将此请求传送到存储器子***110。因为分区命名空间架构中的写入请求是使用分配给相应区域的依序LBA执行的,所以请求230可识别区域,但无需指定LBA。控制器115可执行区域-块匹配232,如下文参考图3更详细地描述。在区域-块匹配232期间,控制器可识别将用于存储在写入请求230中引用的数据的物理存储器块以获得存储器装置的最佳性能(例如,最大化其寿命和长期能力)。例如,预期在过去很少无效的区域有可能在将来很长一段时间内保持数据且数据不被覆写,控制器115可匹配具有低版本号(VN)的区域与具有高EC的块。反之,控制器115可匹配具有高VN的区域(预期在将来常常无效)与具有低EC的块。存储器子***控制器115随后可以用LBA→PBA转换更新存储器查找表212,其中LBA是区域的下一可用逻辑地址,且PBA(234)是在区域-块匹配232期间识别且用于执行写入请求的块的物理地址。
在停机时间或经调度GC时间期间,控制器115可执行区域感知式背景扫描236。确切地说,存储器子***控制器115可识别具有较高数据丢失风险的块(例如,具有过多位被损坏而不能经由ECC操作修复的块)。此类块可折叠到其它块,例如具有较低EC的块。区域感知式背景扫描220可从具有最低VN的区域开始。此类区域分配有在最长时间内未被擦除并因此具有最高数据丢失风险的物理存储器块。在每一区域内,具有最高数据丢失风险的是与区域起始附近的LBA相关联的块(因为在分配给区域的块当中,这些块未被覆写/擦除的时间最长)。因此,控制器115可从区域LBA的开始处起始块测试,并在特定(例如,预定)数目个块成功通过块测试标准后停止所述特定区域的背景扫描。同样地,控制器115可按照VN升序依序测试不同区域,并在预定数目个区域成功通过区域测试标准后存储器装置的背景扫描。识别为“风险”块的块可使用类似于上文所描述的区域-块匹配232的程序折叠到其它块。在区域感知式背景扫描236期间(或在完成扫描之后),控制器115可以通过在所存储LBA→PBA转换中用新块PBA代替经折叠块PBA来更新存储器查找表212(如由虚线所指示)。
图3示意性地示出根据本公开的一些实施例的区域感知式存储器管理中的区域-块匹配300。左侧示出了以其VN升序排序(从上到下)的存储器装置的一组区域310的示意性描绘。各个区域表示为“区域(VN)”,其中VN1是存储器装置的区域当中的当前最低VM,VNM是当前最高VM。可存在任意数目个具有给定VN的区域,如所描绘,其中多个区域与一些VN相关联(例如,如所描绘,存在三个具有VN33的区域和两个具有VNM的区域。如灰色(表示区域的填充)示意图所示,区域310可被连续写入,例如从较低(高级别)LBA到较高(低级别)LBA。当区域被完全填充时,与区域相关联的任何后续写入操作需要整个区域无效。同样地,一旦整个区域都变得无效,就可执行与属于区域的灰色(已写入)部分的LBA相关联地执行的写入或擦除操作。
图3右侧示出了可用于区域310的一组物理存储器块320的示意性描绘。块320以其EC升序排序(从下到上)。各个块表示为“块(EC)”,其中EC1是存储器装置的可用块当中的当前最低EC,ECN是当前最高EC。可存在任意数目个块,每一块具有特定EC,如所描绘,其中多个块与一些擦除计数相关联(例如,如所描绘,存在四个具有EC5的块和三个具有EC1的块)。
在一些实施例中,存储器子***控制器115执行区域-块匹配,最终目标是确保存储器子***的物理存储器块在其擦除计数上的分布尽可能地窄。例如,区域-块匹配可执行,使得存储器子***(或存储器子***的某一部分)的块当中最大擦除计数和最小擦除计数之间的差在目标计数间隙(其可由存储器控制器或主机***设置)内。在理想情形中,所有存储器块都将具有相同的EC,由此确保存储器装置的耗损均匀。因此,区域-块匹配300可执行,使得最高EC块经提供以执行与具有最低VN的区域相关联的写入请求。类似地,最低EC块经提供以执行与具有最高VN的区域相关联的写入请求。例如,在一个实施例中,一旦控制器115确定区域具有最低VN(例如,区域(VN1)),控制器115就可选择最高EC块(例如,块(ECN-1))并使用选定块执行被引导到最低VN的写入请求。反之,一旦控制器115确定区域具有最高VN(例如,区域(VNM)),控制器115就可选择最低EC块(例如,块(EC1)),并使用选定块执行被引导到最高VN区域的写入请求。
在一些实施例中,块可分组成群组,其中每个群组包含具有类似(但不必相等)EC的块。例如,群组可包含块,使得群组中的块当中最大擦除计数和最小擦除计数之间的差在目标范围(其可由存储器控制器或主机***设置)内。例如,如图3中所描绘,具有EC1和EC2的块可被包含到群组1中,具有EC3和EC4的块可被包含到群组2中,具有ECN-1和ECN的块可被包含到群组p中,以此类推。控制器115可使用群组加快块匹配。例如,因为每个群组内的块具有类似EC,所以控制器115可不再需要在每次接收到写入请求时都确定可用块在EC上的分布,而是可以选择相应块群组中的某一块(例如,队列中的随机块或下一块)。控制器115可周期性地(或在空闲时间,或这两者)确定块P(EC)在擦除计数上的当前分布,并将当前可用的块重新分类成群组。类似地,控制器115可将区域分组为各个具有类似(但不必相等)区域VN的类别(图3中未描绘)。为了加快区域-块匹配,控制器115可周期性地(或在空闲时间,或这两者)确定区域P(VN)在版本号上的当前分布,并将当前区域重新分类成不同类别。在一些实施例中,区域类别的数目可等于块群组的数目。一旦区域和群组确定,控制器115就可从块群组j中选择块以匹配选定块和与属于区域类别j的区域相关联的写入请求。给定群组中的块可通过各种算法选择。例如,在一个实施例中,可从群组中随机选择块。在一些实施例中,可按照群组中剩余的块的EC的顺序选择块(例如,从最低或最高EC开始)。
图4示意性地示出根据本公开的一些实施例的区域感知式存储器管理中的基于分布的区域-块匹配400。图4中(顶部)描绘了物理存储器块在其擦除计数上的示例性分布P(EC)。分布P(EC)是动态的(与时间相关),并且在存储器装置的寿命期间逐渐向右(朝向更高EC)偏移。图4中所示的描绘应被理解为在利用存储器装置期间的一些点处块在EC上的分布的时间快照。图4中(底部)描绘了区域在其版本号上的示例性分布P(VN)。分布P(VN)同样是动态的,并且在存储器装置的寿命期间(至少在发生区域重置之前,此时控制器115或主机***120重置到存储器装置所支持的各种应用的区域分配)逐渐向左(朝向更高VN)偏移。图4中所示的描绘应被理解为区域在VN上的分布的时间快照。控制器115可以周期性时间间隔(例如,准持续地)或在停机时间或在接收到写入请求时或在从上一分布监测起已经接收到预定数目个写入请求之后监测分布P(EC)和P(VN)。
分布P(EC)和P(VN)可分离成群组和类别,它们在图4中用标号指示。在一些实施例中,块群组可被填充,以确保每个块群组内具有相等或相当数目的块。同样地,区域类别可被填充,以确保每一区域类别内具有相等或相当数目的区域。例如,在一个非限制性实施例中,群组和类别基于这两个分布的相应百分点。更确切地说,块群组1可包含EC在所有可用块的末尾20%内的块,群组2可包含EC高于末尾20%但低于所有可用块的末尾40%的块,群组3可包含EC高于末尾40%但低于所有可用块的前40%的块,群组4可包含EC高于前40%但低于所有可用块的前20%的块,且群组5可包含EC在所有可用块的前20%内的块。在一些实施例中,“可用”块不包含那些已经擦除超过特定次数的块,例如属于P(EC)“尾部”的块。此类块可被弃用(如图4中用阴影示意性地描绘),且被区域-块匹配排除在外。区域类别可以相同方式填充,其中类别之间的界限(图4中用虚线描绘)设置在相同百分点处。
在一些实施例中,控制器115可根据不同方案填充块群组和区域类别。例如,群组和类别可以基于相应分布的标准差σ来填充。例如,如果有三个群组用于区域-块匹配,那么群组2可包含EC在P(EC)分布的平均值(或中值、模等)的±0.5σ(±0.6σ、±0.7σ、等等)内的块,群组1可包含EC低于其-0.5σ(-0.6σ、-0.7σ等)的块(区域),而群组3可包含EC高于其+0.5σ(+0.6σ、+0.7σ等)的块(区域)。在一些实施例中,区域类别的界限可反映块群组的界限。确切地说,在上一实例中,类别1可包含VN高于区域分布P(VN)的平均值(或中值、模等)+0.5σ(+0.6σ、+0.7σ等)的区域,而类别3可包含VN低于其-0.5σ(-0.6σ、-0.7σ等)的区域。然而,在其它实施例中,区域类别的界限可以不同于相应块群组的界限的方式设置。例如,块群组2可包含在范围±0.5σ内的块,而对应区域类别2可包含在范围±0.8σ内的区域。
在一些实施例中,填充块群组和区域类别可根据不同方案执行。例如,块群组可使用百分点来设置,而区域类别可参考标准差(或相应分布的任何其它参数)来设置,反之亦可。所属领域的技术人员应认识到,有几乎无限数目的可能性将可用块的分布P(EC)的数个间隔(范围)与现有区域的分布P(VN)的间隔(范围)相关联,从而实现在存储器装置的操作期间使所述两个分布保持尽可能窄的目标。
图5和6分别示出方法500和方法600。方法500和600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。尽管以特定次序示出,但是除非另外指定,否则操作的次序可以修改。因此,所示实施例应理解为只是实例,并且所示操作可以按照不同次序执行,其中一些操作可以并行执行。另外,在各种实施例中,可以省略一或多个操作。因此,并非在每个实施例中都需要方法500和600的所有操作。其它操作流是可能的。在一些实施例中,可使用不同操作。可注意到,本公开的各方面可用于任何类型的多位存储器单元。
图5示出根据本公开的一些实施例的存储器装置的区域感知式存储器管理的实例方法500的流程图。在一个实施例中,存储器子***的控制器115(更确切地说,控制器115的ZMC 113)可基于存储在本地存储器119的嵌入式存储器中的指令执行实例方法500。在一些实施例中,存储器子***110(或存储器装置130)的固件可执行实例方法500。在一些实施例中,外部处理装置(例如,主机***120的处理装置)可执行实例方法500。
方法500可在包含数个物理存储器块的存储器装置中实施。存储器装置可具有包含多个区域的逻辑地址空间(例如,分区命名空间),每一区域具有连续逻辑块地址(LBA)。方法500可涉及接收存储数据的请求(操作510)。请求可引用将与其相关联地存储数据的LBA。LBA可属于例如具有多个区域的存储器装置的第一区域。(本说明书中所使用的术语“第一”、“第二”等等不应理解为始终描述相应实体(例如,区域、块、类别、群组等)的实际次序。尽管在一些情况下此类次序可以明确地使用或隐含,但在其它情况下,术语“第一”、“第二”等是指任意选定的实体,它们不必以任何方式排序。)每个或一些区域可分配给正由主机***执行的各个应用。区域可配置成在属于所述区域的LBA所引用的一些信息将被覆写的情况下要求所述区域的所有LBA都必须是无效的。在操作520处,执行方法500的处理装置可获得第一区域的版本识别符(VI)。区域的VI可取决于区域的无效次数。例如,区域的VI可等于区域的无效次数,也可以是区域的无效次数N的函数,例如VI=f(N)。在一些实施例中,函数可以是区域的无效次数的递增或递减函数。例如,第一区域可以是存储器装置的区域当中(或存储器装置的区域的某一子集当中)具有最低VI的区域。在一些实施例中,在函数f(N)是次数N的递减函数的情况下,第一区域可以是存储器装置的区域(或区域子集)当中具有最高VI的区域。在一些实施例中,f(N)=N,且区域的VI等于版本号VN,如上文所描述。在一些实施例中,版本识别符可以是版本号的非数值表示(例如,字母或其它符号标记)。
在操作530处,执行方法500的处理装置可获得存储器装置的可用物理存储器块的擦除值。擦除值可取决于相应块的擦除次数(已完成擦除计数的数目)。在一些实施例中,擦除值可与擦除计数相同。在一些实施例中,擦除值可以是数值,例如擦除计数的数学函数。在一些实施例中,擦除值可以是擦除计数的非数值表示(例如,字母或其它符号标记)。例如,可用块可以是当前不存储任何信息的块、存储已经无效的信息的块、经擦除块等等。存储器装置的一些块可被保留以供存储器控制器115或主机***120(或其上运行的任一应用)等等使用,且因此可不包括在所述多个可用块内。在操作540处,方法500可继续到鉴于可用块的第一区域版本识别符和擦除值而选择第一物理存储器块。在一些实施例中,第一物理存储器块在可用物理存储器块的合格子集当中具有最高擦除值。例如,所述合格子集可包含擦除值不超过阈值擦除值的块。在一个实施例中,具有高于(或等于)阈值擦除值的擦除值的块可被弃用,且不再用于存储新信息,并且可被可用块池排除在外。
在一些实施例中,要选择第一物理存储器块,处理装置可获得区域的版本识别符的分布P(VN)(第一分布),并且可进一步获得可用物理存储器块(或合格可用块)的擦除值或计数的分布P(EC)(第二分布)。处理装置接着可基于第一分布和第二分布而选择第一物理存储器块。例如,在一个实施例中,处理装置可识别第一分布的指定数目的间隔和第二分布的所述特定数目的间隔。间隔可对应于区域类别和块群组,如上文相对于图3和4所描述。间隔可基于分组区域和块的预定方案来识别,例如对应于预定百分点的间隔、与标准差(或分布的其它参数)相关联的间隔等等。在一些实施例中,物理存储器块的选择可通过与区域版本识别符和块擦除值负相关来执行。确切地说,处理装置可确定区域版本识别符属于第一分布的第j低版本识别符间隔,并从第二分布的第j高擦除值间隔中选择第一物理存储器块。
在一个说明性非限制性实例中,一旦确定第一区域具有区域当中的最低失效操作数目(例如,最低版本识别符),处理装置就可从可用块当中具有最高擦除值的块中选择第一物理存储器块。在另一说明性非限制性实例中,一旦处理装置确定第一区域不是具有区域当中的最低失效操作数目(例如,具有不同于最低版本识别符的版本识别符)的区域,处理装置就可从可用块当中具有最低擦除值的块中选择第一物理存储器块。
在操作550处,执行方法500的处理装置可将第一区域的下一可用LBA映射到选定的第一物理存储器块,并且在操作560处可在第一物理存储器块中存储数据。
图6A示出根据本公开的一些实施例的在存储器装置中执行区域感知式背景扫描的实例方法600的流程图。在一个实施例中,存储器子***的控制器115(更确切地说,控制器115的ZMC 113)可基于存储在本地存储器119的嵌入式存储器中的指令执行实例方法600。在一些实施例中,存储器子***110(或存储器装置130)的固件可执行实例方法600。在一些实施例中,外部处理装置(例如,主机***120的处理装置)可执行实例方法600。图6B是根据本公开的一些实施例的方法600的一个可能实施例601的流程图。
方法600可涉及发起存储器装置的扫描(操作610)。在一些实施例中,扫描可以规律的时间间隔发起、在空闲时间发起或响应于存储器操作(例如,读取或写入操作或特定数目的此类操作)的失败而发起。在一些实施例中,扫描可由控制器115基于存储在本地存储器119中的指令或基于从主机***120接收到的指令而发起。在一些实施例中,扫描可由主机***120发起和执行。在操作620处,执行方法600的处理装置可将第一区域识别为具有存储器装置的区域当中的最低版本识别符。在一些实施例中,映射第一区域的LBA的物理存储器块具有相同的第一擦除值。在一些实施例中,除了识别第一区域之外,处理装置还可至少识别存储器装置中必须进行扫描的多个区域。所识别区域可按照其版本识别符排序。如由图6B中的块620-1所指示,在一些实施例中,处理装置可设置区域计数器,从具有最低版本识别符的区域(例如,第一区域)开始。
在操作630处,方法600可继续到处理装置执行错误校正码(ECC)分析以检测映射到第一区域的连续LBA的风险物理存储器块。如由图6B中的框630-1所指示,在一些实施例中,处理装置可设置块计数器,从区域的起点开始(即,从存储最早数据的块开始),并扫描连续块(步骤630-2,如图6B中所示)。例如,执行方法600的处理装置可选择(例如,随机或根据预定模式)当前块中的一些页并确定当前块的位错误率(BER)。如果在决策步骤630-3处确定当前块的BER高于特定的预定BER阈值,那么当前块可进行“折叠”。即,来自当前块的数据可移动到可用物理存储器块(其可与区域的下一可用LBA相关联),并且当前块可被标记为无效块。
在一些实施例中,可在所测试的区域(例如,第一区域)内扫描当前正存储数据的所有块。在其它实施例中,可以测试有限数目的块,并且在某一预定第一条件满足时可以停止区域扫描。例如,如果确定(步骤630-5,如图6B中所示)与最后m个LBA相关联的m个物理存储器块中有n个的BER低于BER阈值,那么可以停止当前区域的扫描。因为在区域感知式存储器管理中,连续LBA按时间顺序用于写入操作,所以未测试LBA与存储较短时间(短于受测试LBA)的数据相关联且不大可能映射到风险物理存储器块。但是,如果处理装置确定当前区域的扫描将继续,那么处理装置可使块计数器增加(操作630-6,如图6B中所示)并针对映射到区域的下一LBA的存储器块重复环路630-2-630-5。
一旦第一区域的扫描完成(所有块都已被测试)或停止(发现区域中有足够数目个块不存在风险),方法600就可继续在操作640处确定在第一区域处是否要停止存储器装置的扫描(条件是满足某一预定第二条件)或第二区域是否必须同样进行扫描。在一些实施例中,要在第一(或任何后续)区域处停止扫描,处理装置需要确定第一(或任何后续)区域具有不超过特定的预定p个风险块或不超过特定预定百分比的风险块或不存在风险的特定数目个块,或几乎无限数目个可能性中的任何其它标准。在一些实施例中,区域的未测试块(如果区域的扫描在区域的所有LBA都被测试之前停止)可假设为不存在风险。在一些实施例中,一些未测试块可假设为以与区域的最后m个测试块中相同的比例或与区域的所有测试块中相同的比例等等存在风险。在一些实施例中,超过一个区域必须满足一个前述(或其它)条件。
如果确定在第一区域处要停止存储器装置的扫描(决策框640-1的结果为“是”,如图6B中所示),那么处理装置可停止扫描。但是,如果确定在第一(或任何后续)区域处不停止存储器装置的扫描,那么方法600可继续到将第二(或任何后续)区域识别为具有所述多个区域中的第二(或任何后续)低版本识别符(操作650)。在一些实施例中,映射到第二区域的LBA的物理存储器块具有相同的第二擦除值,第二擦除值高于(或至少等于)第一擦除值。因此,在一个实施例中,处理装置可使区域计数器增加(框650-1,如图6B中所示)并针对第二(或任何后续)区域重复环路630-1-640-1。确切地说,在操作660处,处理装置可执行错误校正分析(开始于第二区域的第一LBA)以检测映射到第二区域的连续LBA的风险物理存储器块,并在操作670处鉴于映射到第二区域的LBA的所检测风险物理存储器块而确定在第二区域处是否要停止存储器装置的扫描。方法600可一直继续进行到发生以下情形为止:1)所有区域都被扫描,或2)在确定(例如,在操作640-1处)没有其它区域要测试后停止扫描。
图6C示意性地示出根据本公开的一些实施例执行的实例区域感知式背景扫描602。示意性地描绘了按照版本识别符升序排序的前六个区域,每一区域具有七个映射到其相应物理存储器块的LBA。背景扫描在由箭头指示的方向上执行。具有高于(或等于)阈值的BER的块被标记为“未通过”,而具有低于阈值的BER的块被标记为“通过”。在图6C的说明性实例中,一旦最后四个块中有三个收到“通过”标签(第一条件),就停止给定区域的扫描。未测试块通过加阴影指示。此外,在图6C的说明性实例中,如果与最后两个区域中的每一个相关联的块中超过三分之二收到“通过”标签(第二条件),其中未测试块假设为已收到“通过”标签,那么存储器装置的扫描停止。如图6C中所描绘,扫描第一和第二区域的所有块,但第三区域的扫描在测试前六个块之后停止(第三区域满足第一条件)。第四区域的扫描在测试仅三个块之后停止,此时存储器装置的扫描停止(第四区域满足第一条件)。没有其它区域进行测试,因为与第三区域相关联的块中超过三分之二(7个中有5个)及与第四区域相关联的块中超过三分之二(7个中有7个)收到“通过”标签(满足第二条件)。
图7示出计算机***700的实例机器,所述实例机器内可以执行用于使机器执行本文所论述的方法中的任何一或多个的一组指令。在一些实施例中,计算机***700可对应于主机***(例如,图1的主机***120),其包含、耦合到或利用存储器子***(例如,图1的存储器子***110),或者可用于执行控制器的操作(例如,以执行操作***,从而执行对应于图1的区域感知式存储器管理组件113的操作)。在替代实施例中,所述机器可以在LAN、内联网、外联网和/或互联网中连接(例如,联网)到其它机器。所述机器可以客户端-服务器网络环境中的服务器或客户端机器的资格操作,作为对等(或分布式)网络环境中的对等机器操作,或作为云计算基础设施或环境中的服务器或客户端机器操作。
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的一组指令的任何机器。另外,尽管示出单个机器,但术语“机器”还应被认为包含机器的任何集合,所述机器的集合单独地或共同地执行一组(或多组)指令以执行本文论述的方法中的任何一或多个。
实例计算机***700包含处理装置702、主存储器704(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储***718,它们经由总线730彼此通信。
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置702还可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702经配置以执行用于执行本文中所论述的操作和步骤的指令726。计算机***700可进一步包含经由网络720通信的网络接口装置708。
数据存储***718可包含机器可读存储媒体724(也被称为非暂时性计算机可读存储媒体),在其上存储一组或多组指令726或体现本文中所描述的方法或功能中的任何一或多个的软件。指令726在由同样构成机器可读存储媒体的计算机***700、主存储器704和处理装置702执行期间还可完全地或至少部分地驻存在主存储器704内和/或处理装置702内。机器可读存储媒体724、数据存储***718和/或主存储器704可对应于图1的存储器子***110。
在一个实施例中,指令726包含实施对应图1的ZMC 113的功能性的指令。尽管在实例实施例中机器可读存储媒体724示出为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的一组指令且使机器执行本公开的方法中的任何一或多个的任何媒体。术语“机器可读存储媒体”因此应被认为包含但不限于固态存储器、光学媒体和磁性媒体。
先前详细描述的一些部分已经关于计算机存储器内的数据位的操作的操作和符号表示呈现。这些算法描述和表示是数据处理领域中的技术人员用来将他们的工作内容传达给本领域的其他技术人员的最有效方式。此处且一般来说,算法或操作被设想为产生所需结果的操作的自一致序列。所述操作是需要物理量的物理操控的那些操作。通常但是不一定,这些量采取能够存储、组合、比较和以其它方式操控的电气或磁性信号的形式。已经证实,将这些信号称为位、值、元件、符号、字符、项、数字等等有时是方便的,主要是出于常用的原因。
然而,应牢记,所有这些和类似术语与适当物理量相关联,且仅为应用于这些量的方便的标签。本公开可以指操控和变换计算机***的寄存器和存储器内的表示为物理(电子)量的数据为计算机***存储器或寄存器或其它这类信息存储***内的类似地表示为物理量的其它数据的计算机***或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM和磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,它们分别耦合到计算机***总线。
本文中呈现的算法、操作和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用***可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将从下文描述中呈现用于各种这些***的结构。此外,并不参考任何特定编程语言来描述本公开。应了解,可以使用多种编程语言来实施如本文所描述的本公开的教示内容。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机***(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
词语“实例”或“示例性”在本文中用于意指充当实例、例子或说明。本文中描述为“实例”或“示例性”的任何方面或设计未必应解释为比其它方面或设计优选或有利。相反,词语“实例”或“示例性”的使用意在以具体方式呈现概念。如本申请案中所使用,术语“或”意指包含性的“或”而非排他性的“或”。也就是说,除非另有说明或从上下文显而易见,否则“X包含A或B”意指任何自然的包含性排列。也就是说,如果X包含A;X包含B;或X包含A及B两者,那么在任何前述情形下满足“X包含A或B”。另外,如在本申请及所附权利要求书中使用的冠词“一”总的来说可以解释为意指“一或多个”,除非另外规定或从上下文清楚可见表示单数形式。此外,在整篇中使用术语“实施例”或“一个实施例”或“实施例”或“一个实施例”等不旨在表示相同实施例或实施例,除非如此描述。本文中所描述的一或多个实施例可在特定实施例中组合。如本文所使用的术语“第一”、“第二”、“第三”、“第四”等意图作为标记来区分不同元件,且可能未必具有与其数字名称一致的序数含义。
在前述说明书中,本公开的实施例已经参考其特定实例实施例进行描述。将显而易见的是,可在不脱离所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对其进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

Claims (20)

1.一种***,其包括:
存储器装置,其包括多个物理存储器块且与包括多个区域的逻辑地址空间相关联,其中每一区域包括多个逻辑块地址LBA;以及
处理装置,其以操作方式与所述存储器装置耦合以执行包括以下的操作:
接收存储与所述多个区域中的第一区域相关联的LBA所引用的数据的请求;
获得所述第一区域的版本识别符;
获得所述存储器装置的多个可用物理存储器块的擦除值,其中每一擦除值表示所述多个存储器块中的相应者的已完成擦除操作的数目;
鉴于所述第一区域的所述版本识别符和所述擦除值,选择多个可用物理存储器块中的第一物理存储器块;
将与所述第一区域相关联的下一可用LBA映射到所述第一物理存储器块;以及
在所述第一物理存储器块中存储所述数据。
2.根据权利要求1所述的***,其中区域的所述版本识别符反映所述区域的无效次数。
3.根据权利要求1所述的***,其中覆写与所述第一区域相关联的所述LBA所引用的信息包括使所述第一区域的至少一些LBA无效。
4.根据权利要求1所述的***,其中所述第一区域具有所述多个区域当中的最低失效操作数目,并且其中所述第一物理存储器块具有可用物理存储器块的合格子集当中的最高擦除值。
5.根据权利要求4所述的***,其中可用物理存储器块的所述合格子集是所述多个可用物理存储器块中的擦除值不超过阈值擦除值的子集。
6.根据权利要求1所述的***,其中所述第一区域不同于具有所述多个区域当中的最低失效操作数目的区域,并且其中所述第一物理存储器块具有所述多个可用物理存储器块当中的最低擦除值。
7.根据权利要求1所述的***,其中选择所述第一物理存储器块包括:
获得所述多个区域的版本识别符的第一分布;
获得所述多个可用物理存储器块的擦除值的第二分布;以及
基于所述第一分布和所述第二分布,选择所述第一物理存储器块。
8.根据权利要求7所述的***,其中基于所述第一分布和所述第二分布选择所述第一物理存储器块包括:
识别所述第一分布的指定数目的间隔;
识别所述第二分布的所述指定数目的间隔;
确定所述第一区域的所述版本识别符属于所述第一分布的第j低版本识别符间隔;以及
从所述第二分布的第j高擦除值间隔中选择所述第一物理存储器块。
9.根据权利要求1所述的***,其中存储数据的所述请求通过由以通信方式耦合到所述存储器装置的主机计算***执行的应用产生,并且其中所述第一区域分配给所述应用。
10.根据权利要求1所述的***,其中所述操作进一步包括:
发起所述存储器装置的扫描;
将所述多个区域中的第二区域识别为具有最低版本识别符的区域;
从所述第一区域的第一LBA开始,执行错误校正分析以检测映射到所述第一区域的连续LBA的风险物理存储器块;以及
鉴于映射到所述第一区域的LBA的所检测风险物理存储器块,确定在所述第一区域处是否要停止所述存储器装置的所述扫描。
11.根据权利要求10所述的***,其中所述操作进一步包括:
在确定在所述第一区域处不停止所述存储器装置的所述扫描后,将第二区域识别为具有所述多个区域中的第二低版本识别符;
从所述第二区域的第一LBA开始,执行错误校正分析以检测映射到所述第二区域的连续LBA的风险物理存储器块;以及
鉴于映射到所述第一区域的LBA的所检测风险物理存储器块,确定在所述第二区域处是否要停止所述存储器装置的所述扫描。
12.一种***,其包括:
存储器装置,其包括多个物理存储器块且与包括多个区域的逻辑地址空间相关联,其中每一区域包括多个逻辑块地址LBA,以及
处理装置,其以操作方式与所述存储器装置耦合以执行包括以下的操作:
发起所述存储器装置的扫描;
将所述多个区域中的第一区域识别为具有最低版本识别符的区域,其中区域的所述版本识别符反映所述区域的无效次数;
从所述第一区域的第一LBA开始,执行错误校正分析以检测映射到所述第一区域的连续LBA的风险物理存储器块;以及
鉴于映射到所述第一区域的LBA的所检测风险物理存储器块,确定在所述第一区域处是否要停止所述存储器装置的所述扫描。
13.根据权利要求12所述的***,其中所述操作进一步包括:
在确定在所述第一区域处要停止所述存储器装置的所述扫描后,停止所述存储器装置的所述扫描。
14.根据权利要求12所述的***,其中所述操作进一步包括:
在确定在所述第一区域处不停止所述存储器装置的所述扫描后,将第二区域识别为具有所述多个区域中的第二低识别符编号;
从所述第二区域的第一LBA开始,执行错误校正分析以检测映射到所述第二区域的连续LBA的风险物理存储器块;以及
鉴于映射到所述第二区域的LBA的所检测风险物理存储器块,确定在所述第二区域处是否要停止所述存储器装置的所述扫描。
15.根据权利要求14所述的***,其中映射到所述第一区域的所述LBA的所述物理存储器块具有相同的第一擦除值。
16.根据权利要求15所述的***,其中映射到所述第二区域的所述LBA的所述物理存储器块具有相同的第二擦除值,其中所述第二擦除值高于所述第一擦除值。
17.根据权利要求15所述的***,其中所述操作进一步包括:
在确定在所述第二区域处不停止所述存储器装置的所述扫描后,将第三区域识别为具有所述多个区域中的第三低版本识别符;
从所述第三区域的第一LBA开始,执行错误校正分析以检测映射到所述第三区域的连续LBA的风险物理存储器块;以及
鉴于映射到所述第三区域的LBA的数个所检测风险物理存储器块,确定在所述第三区域处是否要停止所述存储器装置的所述扫描。
18.根据权利要求12所述的***,其中由所述处理装置执行的所述操作进一步包括:接收与所述多个区域中的所述第一区域相关联地存储数据的请求;
获得所述第一区域的版本识别符;
获得多个可用物理存储器块的擦除值;
鉴于所述第一区域的所述版本识别符和所述获得的擦除值,选择所述多个可用物理存储器块中的目标物理存储器块;
将所述目标物理存储器块映射到与所述第一区域相关联的下一可用LBA;以及
在所述目标物理存储器块中存储所述数据。
19.一种方法,其包括:
通过以操作方式与存储器装置耦合的处理装置接收存储与多个区域中的第一区域相关联的逻辑块地址LBA所引用的数据的请求,其中每一区域包括所述存储器装置的逻辑地址空间的多个逻辑块地址LBA,所述存储器装置具有多个物理存储器块;
通过所述处理装置获得所述第一区域的版本识别符;
通过所述处理装置获得所述存储器装置的多个可用物理存储器块的擦除值,其中每一擦除值表示所述多个可用存储器块中的相应者的已完成擦除操作的数目;
鉴于所述第一区域的所述版本识别符和所述擦除值,通过所述处理装置选择所述多个可用物理存储器块中的第一物理存储器块;
通过所述处理装置将与所述第一区域相关联的下一可用LBA映射到所述第一物理存储器块;以及
通过所述处理装置在所述第一物理存储器块中存储所述数据。
20.根据权利要求19所述的方法,其中所述第一区域具有所述多个区域当中的最低失效操作数目,并且其中所述第一物理存储器块具有可用物理存储器块的合格子集当中的最高擦除值。
CN202110676084.0A 2020-06-18 2021-06-18 存储器子***中的区域感知式存储器管理 Pending CN113823346A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/946,377 2020-06-18
US16/946,377 US11550727B2 (en) 2020-06-18 2020-06-18 Zone-aware memory management in memory subsystems

Publications (1)

Publication Number Publication Date
CN113823346A true CN113823346A (zh) 2021-12-21

Family

ID=78923882

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110676084.0A Pending CN113823346A (zh) 2020-06-18 2021-06-18 存储器子***中的区域感知式存储器管理

Country Status (2)

Country Link
US (2) US11550727B2 (zh)
CN (1) CN113823346A (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220005111A (ko) * 2020-07-06 2022-01-13 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US11442646B2 (en) * 2020-09-09 2022-09-13 Western Digital Technologies Inc. Identified zones for optimal parity sharing zones
TWI808384B (zh) * 2021-02-23 2023-07-11 慧榮科技股份有限公司 儲存裝置、快閃記憶體控制器及其控制方法
US20220382668A1 (en) * 2021-05-28 2022-12-01 Advantest Corporation Systems and methods for concurrent and automated testing of zoned namespace solid state drives
US11593018B2 (en) * 2021-07-21 2023-02-28 Micron Technology, Inc. Block allocation and erase techniques for sequentially-written memory devices
US11687290B1 (en) * 2022-01-13 2023-06-27 Silicon Motion, Inc. Method for improve read disturbance phenomenon of flash memory module and associated flash memory controller and electronic device
US20230396270A1 (en) * 2022-06-02 2023-12-07 Micron Technology, Inc. Dynamic decoding for memory systems

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341339A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
US20050162930A1 (en) * 2003-12-26 2005-07-28 Tdk Corporation Memory controller, flash memory system, and method for recording data on flash memory
US20100268864A1 (en) * 2009-04-20 2010-10-21 Arunprasad Ramiya Mothilal Logical-to-Physical Address Translation for a Removable Data Storage Device
US9075714B1 (en) * 2014-05-13 2015-07-07 Western Digital Technologies, Inc. Electronic system with data management mechanism and method of operation thereof
US9448919B1 (en) * 2012-11-13 2016-09-20 Western Digital Technologies, Inc. Data storage device accessing garbage collected memory segments
US20180307417A1 (en) * 2015-10-19 2018-10-25 Huawei Technologies Co., Ltd. Method and device for determination of garbage collector thread number and activity management in log-structured file systems
US10126981B1 (en) * 2015-12-14 2018-11-13 Western Digital Technologies, Inc. Tiered storage using storage class memory
CN109726139A (zh) * 2017-10-27 2019-05-07 东芝存储器株式会社 存储器***及控制方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US8341498B2 (en) * 2010-10-01 2012-12-25 Sandisk Technologies Inc. System and method of data encoding
TWI444825B (zh) * 2011-03-29 2014-07-11 Phison Electronics Corp 記憶體儲存裝置、記憶體控制器與資料寫入方法
TWI529719B (zh) * 2013-08-30 2016-04-11 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
US11726679B2 (en) * 2019-11-05 2023-08-15 Western Digital Technologies, Inc. Applying endurance groups to zoned namespaces

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341339A (en) * 1992-10-30 1994-08-23 Intel Corporation Method for wear leveling in a flash EEPROM memory
US20050162930A1 (en) * 2003-12-26 2005-07-28 Tdk Corporation Memory controller, flash memory system, and method for recording data on flash memory
US20100268864A1 (en) * 2009-04-20 2010-10-21 Arunprasad Ramiya Mothilal Logical-to-Physical Address Translation for a Removable Data Storage Device
US9448919B1 (en) * 2012-11-13 2016-09-20 Western Digital Technologies, Inc. Data storage device accessing garbage collected memory segments
US9075714B1 (en) * 2014-05-13 2015-07-07 Western Digital Technologies, Inc. Electronic system with data management mechanism and method of operation thereof
US20180307417A1 (en) * 2015-10-19 2018-10-25 Huawei Technologies Co., Ltd. Method and device for determination of garbage collector thread number and activity management in log-structured file systems
US10126981B1 (en) * 2015-12-14 2018-11-13 Western Digital Technologies, Inc. Tiered storage using storage class memory
CN109726139A (zh) * 2017-10-27 2019-05-07 东芝存储器株式会社 存储器***及控制方法

Also Published As

Publication number Publication date
US20210397562A1 (en) 2021-12-23
US20230161712A1 (en) 2023-05-25
US11960409B2 (en) 2024-04-16
US11550727B2 (en) 2023-01-10

Similar Documents

Publication Publication Date Title
US11960409B2 (en) Zone-aware memory management in memory sub-systems
US20230097187A1 (en) Hybrid wear leveling for in-place data replacement media
CN114097033A (zh) 存储器子***的被取消映射分配单元的管理
US11704024B2 (en) Multi-level wear leveling for non-volatile memory
CN111538675A (zh) 使用块盖写率进行无用单元收集候选对象选择
US11955194B2 (en) Tracking and refreshing state metrics in memory sub-systems
US11928347B2 (en) Managing voltage bin selection for blocks of a memory device
CN115148237A (zh) 存储器装置通电之后存储器装置的块的电压块组选择
CN115083456A (zh) 基于电压分布参考电压的电压分档校准
CN116364159A (zh) 选择栅极可靠性
US11646077B2 (en) Memory sub-system grading and allocation
US20240256463A1 (en) Zone-aware memory management in memory sub-systems
US11960745B2 (en) Empty page scan operations adjustment
CN112447223B (zh) 基于***特性执行刷新操作
US20240118971A1 (en) Temporary parity buffer allocation for zones in a parity group
CN115437555A (zh) 基于取数据时间和有效性的存储器管理
CN117999547A (zh) 用于存储器子***中的两遍次编程的虚拟管理单元方案
CN115457999A (zh) 存储器装置中的扫描片段
CN114647377A (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