CN115220951A - 用于基于存储器存取阈值的存储器管理的方法、设备及系统 - Google Patents
用于基于存储器存取阈值的存储器管理的方法、设备及系统 Download PDFInfo
- Publication number
- CN115220951A CN115220951A CN202210399691.1A CN202210399691A CN115220951A CN 115220951 A CN115220951 A CN 115220951A CN 202210399691 A CN202210399691 A CN 202210399691A CN 115220951 A CN115220951 A CN 115220951A
- Authority
- CN
- China
- Prior art keywords
- memory
- read operation
- threshold
- volatile memory
- 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
Links
Images
Classifications
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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
- G06F11/1052—Bypassing or disabling error detection or correction
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/061—Improving I/O performance
-
- 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0625—Power saving in 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/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
- 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/0653—Monitoring storage devices or 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/1028—Power efficiency
-
- 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)
- Computer Security & Cryptography (AREA)
- Read Only Memory (AREA)
Abstract
本申请的实施例涉及用于基于存储器存取阈值的存储器管理的方法、设备及系统。一种方法包含:确定对分组成多个相应群组的多个非易失性存储器单元块的相应存储器存取计数;将所述相应存储器存取计数与相应存储器存取阈值进行比较;确定对非易失性存储器单元块的相应存储器存取计数超出相应存储器存取阈值;以及对所述非易失性存储器单元块执行媒体扫描操作。
Description
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及基于存储器存取阈值的存储器管理。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据以及从存储器装置检索数据。
发明内容
描述了一种用于基于存储器存取阈值的存储器管理的方法。在一些实例中,所述方法可包括:确定对分组成多个相应群组(225-1、225-G)的多个非易失性存储器单元块(220)的相应存储器存取计数;将所述相应存储器存取计数与所述多个群组的相应存储器存取阈值进行比较;确定对非易失性存储器单元块的相应存储器存取计数超出所述非易失性存储器单元块分组成的相应群组的相应存储器存取阈值;以及对所述非易失性存储器单元块执行媒体扫描操作。
描述了一种用于基于存储器存取阈值的存储器管理的设备(110)。在一些实例中,所述设备可包括:基于存储器存取阈值的管理组件(113)。所述基于存储器存取阈值的管理组件(113)被配置成:针对存储器装置(130、140)的非易失性存储器块的多个群组(225-1、225-G)中的每个群组设定不同相应读取操作阈值;确定对所述非易失性存储器块的相应读取操作计数;确定对非易失性存储器块的相应读取操作计数超出所述非易失性存储器块分组成的群组的对应相应读取操作阈值;以及响应于所述确定所述相应读取操作计数超出所述对应相应读取操作阈值,对所述非易失性存储器块执行后台媒体扫描操作。
描述了一种用于基于存储器存取阈值的存储器管理的系统(110)。在一些实例中,所述系统可包括:非易失性存储器装置(130),其包含被布置成形成多个非易失性存储器单元块的可堆叠交叉网格化阵列的多个存储器组件;以及处理装置(117),其耦合到所述多个存储器组件。所述处理装置用以执行包括以下各项的操作:将所述多个非易失性存储器单元块的子集分组成非易失性存储器单元块的相应群组(225-1、225-G);针对所述非易失性存储器单元块的所述相应群组中的每个群组设定不同相应读取操作阈值;选择具有第一读取操作阈值的第一群组;确定对所述第一群组中的非易失性存储器单元块的相应读取操作计数超出所述第一读取操作阈值;以及对所述第一群组中的所述非易失性存储器单元块执行后台媒体扫描操作。
附图说明
根据下文给出的具体实施方式且根据本公开的各种实施例的附图,将更加充分地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
图2说明根据本公开的一些实施例的存储器单元块的群组的实例。
图3是根据本公开的一些实施例的对应于基于存储器存取阈值的存储器管理的流程图。
图4是根据本公开的一些实施例的对应于用于基于存储器存取阈值的存储器管理的方法的流程图。
图5是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的各方面涉及基于存储器存取阈值的存储器管理,确切地说,涉及包含基于存储器存取阈值的存储器管理组件的存储器子系统。存储器子系统可以是存储系统、存储装置、存储器模块或这些的组合。存储器子系统的实例是例如固态驱动器(SSD)的存储系统。下文结合图1和其它地方描述存储装置和存储器模块的实例。一般来说,主机系统可利用存储器子系统,所述存储器子系统包含一或多个组件,例如存储数据的存储器装置。主机系统可提供待存储于存储器子系统处的数据,且可请求待从存储器子系统检索的数据。
存储器装置可以是非易失性存储器装置。非易失性存储器装置的一个实例为与非(NAND)存储器装置(也被称为快闪技术)。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置为一或多个裸片的封装。每个裸片可由一或多个平面组成。平面可分组成逻辑单元(LUN)。对于一些类型的非易失性存储器装置(例如,NAND装置),每个平面由一组物理块组成。每个块由一组页组成。每个页由一组存储器单元(“单元”)组成。单元为存储信息的电子电路。下文中,块是指用于存储数据的存储器装置的单元,且可包含存储器单元群组、字线群组、字线或个别存储器单元。对于一些存储器装置,块(在下文中也被称为“存储器块”)为可擦除的最小区域。无法个别地擦除页,且只能擦除整个块。
存储器装置中的每一者可包含一或多个存储器单元阵列。取决于单元类型,可写入单元以存储二进制信息的一或多个位,且具有与正存储的位数相关的各种逻辑状态。逻辑状态可由二进制值(例如“0”和“1”)或此类值的组合表示。存在各种类型的单元,例如单层级单元(SLC)、多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC)。举例来说,SLC可存储一个信息位且具有两种逻辑状态。
一些NAND存储器装置采用浮置栅极架构,其中基于位线与字线之间的相对电压变化来控制存储器存取。NAND存储器装置的其它实例可采用可包含使用字线布局的替换栅极架构,所述字线布局可允许基于用于构造字线的材料的特性而在存储器单元内捕获对应于数据值的电荷。
可对存储器块执行媒体管理操作。媒体管理操作的非限制性实例可包含错误校正操作、耗损均衡操作、读取干扰缓解操作和/或垃圾收集操作。媒体管理操作可在“前台”(例如,在主机利用与存储器子系统相关联的接口期间)和/或在“后台”(例如,当主机未利用与存储器子系统相关联的接口时)执行。在本文中,媒体管理操作可在替代方案中被称为“存储器管理操作”。
媒体管理操作可响应于对存储器单元的阈值数目的存储器存取(读取操作和/或写入操作)而执行。举例来说,在对数据块执行阈值数目的读取操作后,存储器子系统可执行数据完整性检查(在本文中也被称为“扫描”)以检查存储于数据块中的数据中的错误。在数据完整性检查期间,针对存储于数据块处的数据确定一或多个可靠性特性。可靠性特性的一个实例为原始位错误率(RBER)。RBER对应于存储于数据块处的数据遇到的每单位时间的位错误数目。
如果数据块的可靠性特性超出阈值,从而指示与存储于数据块处的数据相关联的高错误率,那么存储于数据块处的数据可重新定位到存储器子系统的新数据块(在本文中也被称为“叠合”)。“叠合”是独立于任何直接主机交互将数据从一个存储器装置位置(例如,NAND位置)迁移到另一存储器装置位置(例如,NAND位置)。将存储于数据块处的数据叠合到另一数据块可包含将数据写入到另一数据块以刷新存储器子系统所存储的数据。举例来说,可进行叠合以抵消与数据相关联的读取干扰的影响。
然而,执行数据完整性检查可能会增加存储器系统中的操作的时延。举例来说,“集中式”方法可使用共同(即,相同)阈值来触发对存储器系统中的所有存储器块的数据完整性检查。举例来说,“集中式”方法可基于共同触发事件来使用单平面扫描操作在块层级执行数据完整性检查。存储器子系统可监测对特定数据块执行的存储器存取的数目,且在对存储器块的计数(例如,读取操作计数)超出阈值时执行单平面扫描操作。单平面扫描可限于从存储器组件的仅一个平面上的数据块读取数据。如果存储器组件的同一平面或另一平面上的另一数据块具有也符合或超出阈值的存储器存取计数,那么存储器子系统在先前的扫描操作完成之后发起单独的单平面扫描操作。以此方式执行个别扫描可能会使得存储器子系统执行过多的存储器管理操作。举例来说,“集中式”方法可在后台媒体扫描操作的总数与主机发起的读取的总数之间采用1:1比率。因此,“集中式”方法可能会至少部分地因为采用1:1比率而对存储器系统赋予高时延量(例如,与不在执行后台媒体扫描操作时的运行时间操作相比,时延增加50%)。此类时延可能是不合需要的,尤其是在关键应用中和/或在预期极高存储器子系统性能的要求非常高的应用中。此外,在此类方法中可能展现的这种降级的性能可能会在移动(例如,智能手机、物联网等)存储器部署中进一步加剧,在所述部署中,相比于传统计算架构,可用于容纳存储器子系统的空间量受到限制。此外,针对每个块采用共同阈值的“集中式”方法可使得若干块,尤其是在装置的预期寿命接近结束时,同时和/或几乎同时超出共同阈值,且因此导致性能大幅下降(例如,由于“扫描风暴”发生,包含对多个不同块的连续或几乎连续后台媒体扫描操作各自超出共同阈值,导致性能大幅下降)。
本公开的各方面通过针对NAND存储器块的每个群组设定不同相应存储器存取阈值来解决以上及其它不足。以此方式,NAND内存块的一些但非所有群组可在给定时间被触发(并经历)数据完整性检查。举例来说,相应群组中的NAND存储器块中的每个块可经历数据完整性检查,而不同群组中的其它NAND存储器块并不经历数据完整性检查。执行对NAND存储器块的一些但非所有群组的数据完整性检查可改进(例如,增加)主机发起的读取的总数与后台媒体扫描操作的比率(例如,主机发起的读取与后台媒体扫描操作的比率大于1,例如2:1、4:1等),胜于采用相同阈值且因此主机发起的读取与后台媒体扫描操作的比率为1:1的“集中式”方法。此外,在给定时间执行对一些但非所有NAND存储器群组的数据完整性检查可因此减少在给定时间扫描的NAND存储器块的总数(例如,减少页总数),且因此与先前方法相比减少时延。此外,针对NAND存储器块的群组设定不同相应存储器存取阈值和/或改变NAND存储器块的群组的总数可合乎需要地准许执行数据完整性检查,且在执行数据完整性检查的同时仍不超出容许量时延(例如,时延增加10%)。因此,相比于不设定NAND存储器块的群组的总数和/或NAND存储器块的群组的相应存储器存取阈值的方法(例如,集中式方法),可改进存储器子系统性能。本文中的实施例可应用于移动存储器部署中以进一步改进在移动计算架构中部署的存储器子系统的可靠性。
图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可包含处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓冲存储器、存储器控制器(例如,SSD控制器),以及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110以例如将数据写入到存储器子系统110以及从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、小型计算机系统接口(SCSI)、双数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)、开放NAND快闪接口(ONFI)、双数据速率(DDR)、低功率双数据速率(LPDDR),或任何其它接口。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合来存取多个存储器子系统。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)类型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的变化来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包含例如二维NAND(2DNAND)和三维NAND(3DNAND)。
存储器装置130、140中的每一者可包含一或多个存储器单元阵列。一种类型的存储器单元,例如,单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分,以及MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可被分组以形成块。
尽管描述了例如非易失性存储器单元和NAND型存储器(例如,2D NAND、3DNAND)的三维交叉点阵列的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器或存储装置,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器,以及电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或简称为控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据,以及其它此类操作。存储器子系统控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。硬件可包含具有执行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可包含被配置成执行存储于本地存储器119中的指令的处理器117(例如,处理装置)。在所说明的实例中,存储器子系统控制器115的本地存储器119包含被配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包含存储器子系统控制器115,而是可替代地依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或适当命令以实现对存储器装置130和/或存储器装置140的所需存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作,以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)与物理地址(例如,物理块地址、物理媒体位置等)之间的地址转换。存储器子系统控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令,以存取存储器装置130和/或存储器装置140以及将与存储器装置130和/或存储器装置140相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址,且对所述地址进行解码以存取存储器装置130和/或存储器装置140。
在一些实施例中,存储器装置130包含结合存储器子系统控制器115操作以在存储器装置130的一或多个存储器单元上执行操作的本地媒体控制器135。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子系统110可包含基于存储器存取阈值的存储器管理组件113。尽管图1中未示出以便不混淆图式,但基于存储器存取阈值的存储器管理组件113可包含各种电路系统以促进确定对分组成相应群组的NAND存储器单元块的相应存储器存取计数,从而确定对NAND存储器单元块的相应存储器存取计数超出相应群组的相应存储器存取阈值,且对NAND存储器单元块执行媒体扫描操作。举例来说,可对NAND存储器单元块执行后台媒体扫描操作。如本文中所使用,“后台媒体扫描操作”通常是指在执行I/O事务不妨碍主机(例如,图1中所说明的主机系统120)的情况下执行的媒体扫描操作。在一些实施例中,基于存储器存取阈值的存储器管理组件113可包含呈ASIC、FPGA、状态机和/或其它逻辑电路系统形式的专用电路系统,所述专用电路系统可允许基于存储器存取阈值的存储器管理组件113协调和/或执行操作,以至少基于确定对NAND存储器单元块的相应存储器存取计数超出NAND存储器单元块分组成的相应群组的相应存储器存取阈值而针对存储器装置130和/或存储器装置140选择性执行后台媒体扫描操作操作和/或其它媒体管理操作。
在一些实施例中,存储器子系统控制器115包含基于存储器存取阈值的存储器管理组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),所述处理器被配置成执行存储于本地存储器119中以用于执行本文中所描述的操作的指令。在一些实施例中,基于存储器存取阈值的存储器管理组件113为存储器子系统110、应用程序或操作系统的一部分。
在非限制性实例中,设备(例如,计算系统100)可包含基于存储器子系统存储器存取阈值的存储器管理组件113,为了简洁起见,其可在本文中被称为“基于存储器存取阈值的存储器管理组件”113或“基于阈值的存储器管理组件”113。基于存储器存取阈值的存储器管理组件113可驻留在存储器子系统110上。如本文中所使用,术语“驻留在……上”是指某物在物理上位于特定组件上。举例来说,基于存储器存取阈值的存储器管理组件113“驻留在存储器子系统110上”是指包括基于存储器存取阈值的存储器管理组件113的硬件电路系统在物理上位于存储器子系统110上的状况。术语“驻留在……上”可在本文中与例如“部署在……上”或“位于……上”的其它术语互换使用。
基于存储器存取阈值的存储器管理组件113可被配置成确定对分组成相应群组的存储器单元(例如,NAND存储器单元块)的相应存储器存取计数。举例来说,相应存储器存取计数可以是读取操作计数和/或写入操作计数,以及其它可能性。举例来说,在一些实施例中,基于存储器存取阈值的存储器管理组件113可确定对分组成相应群组的NAND存储器单元块的相应读取操作计数。在此类实施例中,基于存储器存取阈值的存储器管理组件113可针对已存取的物理页驻留于其中的NAND存储器单元块来确定读取存取计数。举例来说,基于阈值的存储器管理组件113可检查与NAND存储器单元块相关联的计数器,所述计数器响应于NAND存储器单元块的每次存储器存取(例如,读取操作)而递增。因此,可针对存储器单元的整个存储器块,例如针对存储器单元块(例如,整个超级块)的所有页、平面和裸片来确定相应存储器存取计数。然而,在一些实施例中,可针对存储器单元块的一部分但非所有来确定相应存储器存取计数。
如上文所描述,存储器组件可以是形成存储器装置130的至少一部分的存储器裸片或存储器封装。在一些实施例中,存储器单元块可形成一或多个“超级块”。如本文中所使用,“超级块”通常是指跨越多个存储器裸片且以交错方式写入的一组数据块。举例来说,在一些实施例中,多个交错NAND存储器块中的每一者可跨越具有多个平面和/或页与其相关联的多个存储器裸片而部署。在本公开的上下文的情况下,术语“超级块”、“块”、“存储器单元块”和/或“交错NAND存储器块”以及其变化形式可互换地使用。
在一些实施例中,基于存储器存取阈值的存储器管理组件113可进一步被配置成将相应存储器存取计数与群组的相应存储器存取阈值进行比较。在一些实施例中,基于存储器存取阈值的管理组件113可将对NAND存储器单元块的相应读取操作计数与群组的相应读取操作阈值进行比较,如本文中关于图2所详述。相应存储器存取计数与群组的相应存储器存取阈值的比较可准许确定群组中的任何群组是否超出群组的相应存储器存取阈值。举例来说,基于存储器存取阈值的存储器管理组件113可进一步被配置成确定对NAND存储器单元块的相应存储器存取计数超出NAND存储器单元块分组成的相应群组的相应读取操作阈值,如本文中详述。
在一些实施例中,每个群组可具有不同相应存储器存取阈值。举例来说,在一些实施例中,每个群组可具有不同相应读取操作阈值。如所提及,针对群组采用不同相应存储器存取阈值可准许在给定时间触发一些但非所有NAND存储器群组的媒体扫描,这可减少在给定时间周期内扫描的NAND存储器块的总数(例如,页总数),且因此与例如“集中式”方法的先前方法相比减少在给定时间周期内的时延。
基于存储器存取阈值的存储器管理组件113可进一步被配置成对NAND存储器单元块执行媒体扫描操作,例如后台媒体扫描操作。也就是说,NAND存储器单元块具有超出NAND存储器单元块位于的群组的相应存储器存取阈值的相应存储器存取计数,且可被扫描以确定NAND存储器单元块的可靠性特性。举例来说,基于存储器存取阈值的存储器管理组件113可使用多个读取信号对NAND存储器单元块处的数据执行读取操作,以确定NAND存储器单元块中的数据的RBER和/或确定NAND存储器单元块位于的群组中的每个NAND存储器单元块的RBER。
在一些实施例中,基于存储器存取阈值的存储器管理组件113可对NAND存储器单元块的群组执行后台媒体扫描操作,所述群组的至少一个NAND存储器单元块具有超出NAND存储器单元块的群组的存储器存取阈值的存储器存取计数。在此类实施例中,后台媒体扫描操作包含于对群组中的NAND存储器单元块的多个后台媒体扫描操作中。
在此类实施例中,主机发起的存储器存取的总数与多个后台媒体扫描操作的总数的比率可大于1:1。如所提及,使主机发起的存储器存取的总数与多个后台媒体扫描操作的总数的比率大于1:1可减少与NAND存储器单元块的数据完整性检查相关联的时延。举例来说,与具有可易于被终端用户(例如,移动装置的终端用户)察觉的较高时延(例如,50%)的先前方法相比,使得主机发起的存储器存取的总数与多个后台媒体扫描操作的总数的比率在2:1到10:1的范围内可允许时延增加容许程度(例如,10%)。包含2:1到10:1的所有个别值和子范围。举例来说,主机发起的存储器存取的总数与多个后台媒体扫描操作的总数的比率可在4:1到8:1的范围内,以及其它可能性。较高比率可减少时延,但可能增加执行后台媒体扫描操作的时间总量。因此,在一些实施例中,较高比率(例如,10:1、8:1等)可为合乎需要的,而在其它实施例中,较低比率(例如,4:1、2:1等)可为合乎需要的。以此方式,可针对特定存储器系统和/或存储器系统的特定部署(例如,移动部署)来定制定制的减少,且仍可有效地扫描存储器系统上的数据。
类似地,NAND存储器单元的群组的总数可在2到10的范围内。包含2到10的所有子范围和个别值。在一些实施例中,不同存储器存取阈值的总数可在2到10的范围内。包含2到10的所有子范围和个别值。举例来说,在一些实施例中,不同相应读取操作阈值的总数在4到8个不同相应读取操作阈值的范围内。在一些实施例中,NAND存储器单元的群组的总数可等于不同存储器存取阈值的总数,例如,如在本文中关于图2所描述。在此类实施例中,NAND存储器单元的每个群组可具有不同相应存储器存取阈值,与针对每个NAND存储器单元块采用相同存储器存取阈值(例如,经设计系统阈值)的其它方法相比,这可减少等待时间。
在一些实施例中,基于存储器存取阈值的存储器管理组件113可对NAND存储器单元块执行叠合操作。举例来说,基于存储器存取阈值的存储器管理组件113可对NAND存储器单元块执行媒体扫描操作,所述媒体扫描操作为叠合操作的一部分(例如,其为垃圾收集操作的一部分)。举例来说,如果数据块的可靠性特性超出阈值,从而指示与存储于数据块处的数据相关联的高错误率,那么基于存储器存取阈值的存储器管理组件113可对NAND存储器单元块执行叠合操作。
图2说明根据本公开的一些实施例的存储器单元块220的群组的实例。在一些实施例中,图2中所说明的存储器单元块220可以是超级块(例如,跨越存储器子系统的多个存储器裸片部署的交错NAND存储器单元块)。在一些实施例中,图2中所说明的存储器单元块220可包含替换栅极存储器单元,但实施例不限于此。
如图2中所说明,存储器单元块220可包含存储器单元的多个个别群组225-1、225-2、225-3到225-G。举例来说,存储器单元的群组可以相应块带布置,如图2中所说明。块带可以是页带和/或LUN带。举例来说,在一些实施例中,存储器单元的群组可布置成相应页带。如本文中所使用,“页带”通常是指对LUN带中具有相同逻辑块和逻辑页码的所有页进行逻辑分组以使得所述页可全部并行地存取。然而,在一些实施例中,存储器单元的群组可布置成相应LUN带。如本文中所使用,“LUN带”是指在写入、读取或擦除NAND存储器时处理为整体的平面的集合。
群组225-1到225-G中的每一者可包含非易失性(例如,NAND)存储器单元块。举例来说,第一群组225-1可包含NAND存储器单元块223-1、223-2、223-3、223-4、223-5到223-6,如图2中所说明。类似地,第二群组225-2可包含NAND存储器单元块223-7、223-8、223-9、223-10、223-11到223-12,第三群组225-3可包含NAND存储器单元块223-13、223-14、223-15、223-16、223-17到223-18,而第四群组225-G可包含NAND存储器单元块223-19、223-20、223-21、223-22、223-23到223-P。虽然图2说明总共4个相应群组,其各自具有总共6个NAND存储器单元块,但应理解,群组的总数和/或群组中的NAND存储器单元块的总数可例如取决于容许时延量而增加或减少,如本文中详述。
如所提及,群组225-1到225-G可具有相应存储器存取阈值,例如相应读取操作阈值。如图2中所说明,第一群组225-1可具有第一存储器存取阈值(t1)。类似地,第二群组225-2、第三群组225-3和第四群组225-G可分别具有第二存储器存取阈值(t2)、第三存储器存取阈值(t3)和第四存储器存取阈值(t4)。
在各种实施例中,群组225-1到225-G中的每个群组可具有不同相应存储器存取阈值。换句话说,群组225-1到225-G中的每一者的相应存储器存取阈值可全部具有不同值。如所提及,与采用例如经设计系统阈值的相同阈值(例如,读取操作的数量“M”)和/或同时触发对所有块的扫描的其它方法相比,针对群组中的每一者具有不同相应存储器存取阈值可减少时延。如本文中所使用,经设计系统阈值为存储器系统中的块设计为在所述块中的数据被扫描之前经历的多次存储器存取(例如,“M”数量的读取操作)。如本文中所使用,“M”是指存储器操作的可变数量,例如读取操作的数量。“M”可以是存储器存取的预定和/或可变数量。
在一些实施例中,相应存储器存取阈值(例如,t1、t2、t3和t4)相差一定值,所述值基于NAND存储器单元块223-1到223-P中的任一者中的页总数。使相应存储器存取阈值基于NAND存储器单元块中的任一者中的页总数可确保仅给定数目的块(且因此仅给定数目的页)在给定时间周期内经受后台扫描操作(例如,超出相应阈值的那些块),且由此与先前方法相比改进时延。举例来说,群组225-1到225-G中的每个群组可具有迭代地相差固定值的相应读取操作阈值,所述固定值基于NAND存储器单元块中的页总数。举例来说,如果NAND存储器单元块中的页总数为2112页(以及其它可能值),那么t1可等于“M”-(3*2112)次存储器存取,t2可等于“M”-(2*2112)次存储器存取,t3可等于“M”-2112次存储器存取,并且t4可等于“M”次存储器存取。也就是说,群组的存储器存取阈值中的每一者可不同(例如,增加或减小),相差固定值,所述固定值等于NAND存储器单元块中的页总数。
在一些实施例中,相应存储器存取阈值可基于经设计系统阈值。举例来说,相应存储器存取阈值可包含小于经设计系统阈值的至少一个存储器存取阈值。具有小于经设计系统阈值的至少一个存储器存取阈值可更早地触发对群组的扫描(例如,早于在超出经设计系统阈值之前一直等待)。更早地触发对群组的扫描可确保群组中的数据保持有效,且还仍确保同时触发一些但非所有群组。举例来说,在一些实例中,相应存储器存取阈值中的除一个以外其余所有小于经设计系统阈值。举例来说,NAND存储器单元块中的给定页总数可为2112页(以及其它可能值),并且经设计系统阈值可为“M”次读取操作(以及其它可能值)。在此类实例中,t1可等于“M”-(3*2112)次读取操作,t2可等于“M”-(2*2112)次读取操作,t3可等于“M”-2112次读取操作,并且t4可等于“M”次读取操作,以及其它可能值。因此,在一些实施例中,可应用“向下扩展”,使得相应读取操作阈值包含小于经设计系统阈值的至少一个读取操作阈值。以此方式,确保同时触发一些但非所有群组,且仍可通过在经设计系统阈值之前触发群组中的至少一些而确保数据可靠性。
然而,在一些实施例中,相应存储器存取阈值可包含大于经设计系统阈值(例如,“M”次存储器存取)的至少一个存储器存取阈值。举例来说,t1可等于“M”次存储器存取,t2可等于“M”+2112次存储器存取,t3可等于“M”+(2*2112)次存储器存取,并且t4可等于“M”+(3*2112)次存储器存取,以及其它可能值。相对于经设计系统阈值的相应阈值的此类“向上扩展”可与更早地触发群组(例如,经由“向下扩展”)相比提供增强的时延减少,且还仍确保同时触发一些但非所有群组。
因此,各种实施例可采用“向下扩展”或“向上扩展”来确定相对于经设计系统阈值的相应存储器存取阈值。然而,在一些实施例中,可至少部分地基于经设计系统阈值的倍数和/或百分比而采用“中心扩展”来改变相应阈值。虽然关于“向上扩展”、“向下扩展”和“中心扩展”进行描述,但可基于多个机制中的任一者将阈值各自给定不同相应值,所述多个机制包含但不限于“向上扩展”、“向下扩展”和“中心扩展”。
在一些实施例中,相应存储器存取阈值可基于经设计系统阈值和比例因子。如本文中所使用,比例因子是指修改经设计系统阈值的值的因子。比例因子可减小或增加经设计系统阈值。在一些实施例中,比例因子可基于存储器子系统的现实世界测试来确定。举例来说,现实世界测试可确定存储器子系统中的NAND存储器单元块可在需要扫描NAND存储器单元块上的数据以确保数据保持可靠之前经历的实际数目的存储器存取(例如,1,200,000次读取操作)。在此类情况下,经设计系统阈值(例如,给定数量的读取操作)可增加比例因子(例如,10%、5%、1%)以成为不同于经设计系统阈值的值。举例来说,经设计系统阈值根据比例因子更改为等于现实世界值,或可根据比例因子更改为在经设计系统阈值与现实世界值之间的范围内的值。在任何情况下,基于比例因子更改经设计系统阈值可通过确保与扫描存储器子系统上的数据相关联的数据可靠性和/或改进时延来改进存储器子系统的功能。
图3是根据本公开的一些实施例的对应于基于存储器存取阈值的存储器管理的流程331的图。在332处,可将非易失性存储器单元(例如,NAND存储器单元)块的子集分组成非易失性存储器单元块的相应群组。举例来说,可将存储器子系统中的每个非易失性存储器单元块分组成相应群组。如所提及,在一些实施例中,群组的总数可在2到10个群组的范围内。群组的总数可基于容许时延量。举例来说,更多群组可等于更少时延,但可能导致计算开销增加等。群组的总数(和相应阈值)可由基于存储器存取阈值的存储器管理组件(例如,图1中所说明的基于存储器存取阈值的存储器管理组件113)来确定。
在操作333处,可针对每个群组设定不同相应阈值。举例来说,如本文中所详述,可使用“向上扩展”、“向下扩展”和/或“中心扩展”以及用以设定不同相应阈值的其它可能机制来设定不同相应阈值。
在操作334处,可选择具有第一阈值的第一群组。在一些实施例中,可将具有最低存储器存取阈值的群组选择为第一群组,以及其它可能性。如本文中所使用,例如“读取操作阈值”的“存储器存取阈值”通常是指在不刷新存储器单元块的数据的情况下对存储器单元块执行的给定总数的连续存储器存取。第一群组可具有第一存储器存取阈值,例如第一读取操作阈值。
在操作335处,可确定对第一群组中的非易失性存储器块的相应存储器存取计数超出第一存储器存取阈值。在一些实施例中,可确定对第一群组中的非易失性存储器块的相应读取操作计数超出第一读取操作阈值。举例来说,可确定第一群组中的非易失性存储器块具有超出第一读取操作阈值(例如,1,093,664)的读取操作计数(例如,1,093,665次读取操作)。
在操作336处,可对第一群组中的非易失性存储器块执行后台媒体扫描操作。后台媒体扫描操作响应于确定对第一群组中的非易失性存储器块的相应存储器存取计数超出第一存储器存取阈值而执行。在一些实施例中,可响应于在335处确定超出第一群组的存储器存取阈值而对第一群组中的每个非易失性存储器块执行后台媒体扫描操作。值得注意的是,与其它方法相比,在不对其它群组中的非易失性存储器块执行后台媒体扫描操作的情况下对第一群组中的每个非易失性存储器块执行后台媒体扫描操作可减少时延。
流程331可对于所有群组继续,且之后流程331可返回到332。举例来说,在操作338处,可选择具有第二阈值的第二群组。第二阈值不同于第一阈值。在一些实施例中,第二阈值可大于第一阈值。然而,在一些实施例中,第二阈值可小于第一阈值。
在操作339处,可确定对第二群组中的非易失性存储器块的相应存储器存取计数超出第二存储器存取阈值。在操作340处,可对第二群组中的非易失性存储器块执行后台媒体扫描操作和/或后台媒体管理操作。
图4是根据本公开的一些实施例的对应于用于基于存储器存取阈值的存储器管理的方法450的流程图。方法450可由处理逻辑进行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法450由图1的基于存储器存取阈值的存储器管理组件113执行。虽然以特定顺序或次序示出,但除非另外规定,否则可修改过程的次序。因此,说明的实施例应仅作为实例理解,且说明的过程可以不同次序执行,且一些过程可并行地执行。另外,可在各种实施例中省略一或多个过程。因此,并非每一实施例中都需要所有过程。其它过程流程是可能的。
在操作451处,可确定对非易失性存储器单元块的群组的相应存储器存取计数。非易失性存储器单元块可以是例如本文中在图2中所说明的存储器单元块220的存储器单元块。在一些实施例中,方法450可包含确定对存储器子系统中的非易失性存储器单元块(例如,一或多个非易失性存储器单元块)的相应存储器存取计数。在一些实施例中,存储器子系统可类似于图1中所说明的存储器子系统110。如上文所描述,存储器组件可以是存储器裸片或存储器封装,其彼此耦合以创建存储器单元阵列,例如由存储器子系统用于存储数据的三维可堆叠交叉网格化存储器单元阵列。
在一些实施例中,方法450可包含通过从与非易失性存储器单元上的块相关联的计数器获得值而确定对非易失性存储器单元块的群组的相应存储器存取计数。举例来说,每个非易失性存储器单元块可具有可响应于对非易失性存储器单元块的存储器存取而递增的对应计数器。
在操作453处,可将相应存储器存取计数与相应存储器存取阈值进行比较。举例来说,可将对非易失性存储器单元块的相应读取操作计数与非易失性存储器单元块分组成的群组的相应读取操作阈值进行比较。在操作455处,可确定对非易失性存储器单元块的相应存储器存取计数超出非易失性存储器单元块分组成的相应群组的相应存储器存取阈值。
在操作457处,可对非易失性存储器单元块执行后台媒体扫描操作。与其它方法(例如,采用“集中式扫描”的那些方法)相比,仅对所述群组中的非易失性存储器单元块和/或仅对所述群组中的所有非易失性存储器单元块执行后台媒体扫描操作可减少与执行后台媒体扫描操作相关联的计算开销量和/或总线通信量。举例来说,在一些实施例中,方法450可包含在给定时间(例如,在当时不对非易失性存储器单元的其它群组执行扫描/叠合的情况下)仅对分组成非易失性存储器单元的给定群组的相应数目的平面、页和/或存储器裸片执行叠合操作/媒体扫描操作。
图5是本公开的实施例可在其中操作的实例计算机系统500的框图。举例来说,图5说明计算机系统500的实例机器,在所述计算机系统内可执行用于使机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统500可对应于包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)的主机系统(例如,图1的主机系统120),或可用于执行控制器的操作(例如,用于执行操作系统以执行对应于图1的基于存储器存取阈值的存储器管理组件113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,虽然说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行指令的集合(或多个集合)以执行本文中所论述的方法中的任何一或多种。
实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等动态随机存取存储器(DRAM)、静态存储器506(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储系统518,它们经由总线530彼此通信。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502还可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502被配置成执行用于执行本文中所论述的操作和步骤的指令526。计算机系统500可进一步包含网络接口装置508以经由网络520进行通信。
数据存储系统518可包含机器可读存储媒体524(也被称为计算机可读媒体),所述机器可读存储媒体上存储有一或多个指令集526或体现本文中所描述的方法或功能中的任何一或多者的软件。指令526还可在其由计算机系统500执行期间完全或至少部分地驻留在主存储器504内和/或处理装置502内,主存储器504和处理装置502还构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可对应于图1的存储器子系统110。
在一个实施例中,指令526包含用以实施对应于基于存储器存取阈值的存储器管理组件(例如,图1的基于存储器存取阈值的存储器管理组件113)的功能性的指令。尽管在实例实施例中机器可读存储媒体524示出为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集且使机器执行本公开的方法中的任何一或多种的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体和磁性媒体。
已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示为数据处理领域的技术人员用于将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在这里并且通常被认为是产生所需结果的操作的自洽序列。所述操作为需要对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已证明将这些信号称为位、值、元件、符号、字符、术语、数字等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可指将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的而专门构造,或其可包含通过存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储于计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM和磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
本文中呈现的算法和显示在本质上与任何特定的计算机或其它设备无关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造更加专用的设备以执行所述方法是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读取的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器装置等。
在前述说明书中,已参考其具体实例实施例描述了本公开的实施例。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应被视为说明性的而非限制性的。
Claims (20)
1.一种用于基于存储器存取阈值的存储器管理的方法,所述方法包括:
确定对分组成多个相应群组(225-1、225-G)的多个非易失性存储器单元块(220)的相应存储器存取计数;
将所述相应存储器存取计数与所述多个群组的相应存储器存取阈值进行比较;
确定对非易失性存储器单元块的相应存储器存取计数超出所述非易失性存储器单元块分组成的相应群组的相应存储器存取阈值;以及
对所述非易失性存储器单元块执行媒体扫描操作。
2.根据权利要求1所述的方法,其中所述多个相应群组中的每个群组具有不同相应存储器存取阈值。
3.根据权利要求2所述的方法,其中不同相应读取操作阈值各自相差一定值,所述值基于所述非易失性存储器单元块中的页总数。
4.根据权利要求3所述的方法,其中所述不同相应读取操作阈值各自递增地相差固定值,所述固定值等于所述非易失性存储器单元块中的所述页总数。
5.根据权利要求1所述的方法,其中所述不同相应读取操作阈值的总数在2到10个不同相应读取操作阈值的范围内。
6.根据权利要求5所述的方法,其中所述媒体扫描操作为后台媒体扫描操作,其中所述后台媒体扫描操作包含于多个后台媒体扫描操作中,并且其中主机发起的存储器存取的总数与所述多个后台媒体扫描操作的总数的比率在2:1到10:1的范围内。
7.根据权利要求1所述的方法,其中所述不同相应读取操作阈值的总数在4到8个不同相应读取操作阈值的范围内。
8.根据权利要求1所述的方法,其中执行所述后台媒体扫描操作进一步包括使用多个读取信号对所述非易失性存储器单元块处的数据执行读取操作以确定所述数据的可靠性特性。
9.根据权利要求8所述的方法,其中所述可靠性特性为所述数据的原始位错误率RBER。
10.一种用于基于存储器存取阈值的存储器管理的设备(110),所述设备包括:
基于存储器存取阈值的管理组件(113),其被配置成:
针对存储器装置(130、140)的非易失性存储器块的多个群组(225-1、225-G)中的每个群组设定不同相应读取操作阈值;
确定对所述非易失性存储器块的相应读取操作计数;
确定对非易失性存储器块的相应读取操作计数超出所述非易失性存储器块分组成的群组的对应相应读取操作阈值;以及
响应于所述确定所述相应读取操作计数超出所述对应相应读取操作阈值,对所述非易失性存储器块执行后台媒体扫描操作。
11.根据权利要求10所述的设备,其中所述读取操作阈值管理组件进一步被配置成响应于所述确定所述相应读取操作计数超出所述对应相应读取操作阈值而对所述非易失性存储器块分组成的所述群组中的每个非易失性存储器块执行后台媒体扫描操作。
12.根据权利要求10到11中任一权利要求所述的设备,其中所述存储器装置的非易失性存储器块的所述群组以相应块带布置。
13.一种用于基于存储器存取阈值的存储器管理的系统(110),所述系统包括:
非易失性存储器装置(130),其包含被布置成形成多个非易失性存储器单元块的可堆叠交叉网格化阵列的多个存储器组件;以及
处理装置(117),其耦合到所述多个存储器组件,所述处理装置用以执行包括以下各项的操作:
将所述多个非易失性存储器单元块的子集分组成非易失性存储器单元块的相应群组(225-1、225-G);
针对所述非易失性存储器单元块的所述相应群组中的每个群组设定不同相应读取操作阈值;
选择具有第一读取操作阈值的第一群组;
确定对所述第一群组中的非易失性存储器单元块的相应读取操作计数超出所述第一读取操作阈值;以及
对所述第一群组中的所述非易失性存储器单元块执行后台媒体扫描操作。
14.根据权利要求13所述的系统,其中所述处理装置将在不对其它群组中的非易失性存储器单元块执行后台扫描的情况下对所述第一群组中的每个非易失性存储器单元块执行所述后台媒体扫描操作。
15.根据权利要求13到14中任一权利要求所述的系统,其中响应于对所述第一群组中的每个非易失性存储器单元块执行所述后台媒体扫描操作,所述处理装置进一步用以:
选择具有第二读取操作阈值的第二群组;
确定对所述第二群组中的所述非易失性存储器单元块的相应读取操作计数;
确定对所述第二群组中的非易失性存储器单元块的相应读取操作计数超出所述第二读取操作阈值;以及
对所述第二群组中的每个非易失性单元块执行后台媒体扫描操作。
16.根据权利要求15所述的系统,其中所述第二读取操作阈值大于所述第一读取操作阈值。
17.根据权利要求13所述的系统,其中所述不同相应读取操作阈值基于经设计系统阈值,并且其中所述不同相应读取操作阈值中的至少一者不同于所述经设计系统阈值。
18.根据权利要求17所述的系统,其中所述不同相应读取操作阈值包含小于所述经设计系统阈值的至少一个读取操作阈值。
19.根据权利要求17所述的系统,其中所述不同相应读取操作阈值包含大于所述经设计系统阈值的至少一个读取操作阈值。
20.根据权利要求17所述的系统,其中所述不同相应读取操作阈值基于所述经设计系统读取阈值和比例因子。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/234,227 US11500578B2 (en) | 2021-04-19 | 2021-04-19 | Memory access threshold based memory management |
US17/234,227 | 2021-04-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115220951A true CN115220951A (zh) | 2022-10-21 |
Family
ID=83602386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210399691.1A Pending CN115220951A (zh) | 2021-04-19 | 2022-04-15 | 用于基于存储器存取阈值的存储器管理的方法、设备及系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11500578B2 (zh) |
CN (1) | CN115220951A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230074898A1 (en) * | 2021-09-09 | 2023-03-09 | Toyota Motor North America, Inc. | Transport limitation for data reads |
TWI796882B (zh) * | 2021-12-20 | 2023-03-21 | 群聯電子股份有限公司 | 讀取干擾檢查方法、記憶體儲存裝置及記憶體控制電路單元 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004075188A1 (en) * | 2003-02-20 | 2004-09-02 | Koninklijke Philips Electronics N.V. | Information carrier comprising access information and dummy information |
US7409489B2 (en) * | 2005-08-03 | 2008-08-05 | Sandisk Corporation | Scheduling of reclaim operations in non-volatile memory |
US9104546B2 (en) * | 2010-05-24 | 2015-08-11 | Silicon Motion Inc. | Method for performing block management using dynamic threshold, and associated memory device and controller thereof |
US9176800B2 (en) * | 2011-08-31 | 2015-11-03 | Micron Technology, Inc. | Memory refresh methods and apparatuses |
US8804418B1 (en) * | 2012-08-31 | 2014-08-12 | Cadence Design Systems, Inc. | Low overhead read disturbance protection method for NAND flash device |
US8853818B2 (en) | 2013-02-20 | 2014-10-07 | Macronix International Co., Ltd. | 3D NAND flash memory |
US20150363120A1 (en) * | 2013-06-25 | 2015-12-17 | Micron Technology, Inc. | On demand block management |
TWI525635B (zh) * | 2013-12-17 | 2016-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
CN104934066B (zh) * | 2014-03-19 | 2018-03-27 | 安华高科技通用Ip(新加坡)公司 | Nand闪存中的读取干扰处理 |
US9570198B2 (en) * | 2014-05-16 | 2017-02-14 | SK Hynix Inc. | Read disturb detection |
US10409526B2 (en) | 2014-12-17 | 2019-09-10 | Violin Systems Llc | Adaptive garbage collection |
US9858009B2 (en) | 2015-10-26 | 2018-01-02 | Sandisk Technologies Llc | Data folding in 3D nonvolatile memory |
KR102661936B1 (ko) * | 2016-06-27 | 2024-04-30 | 삼성전자주식회사 | 저장 장치 |
US10691377B2 (en) * | 2018-09-21 | 2020-06-23 | Micron Technology, Inc. | Adjusting scan event thresholds to mitigate memory errors |
-
2021
- 2021-04-19 US US17/234,227 patent/US11500578B2/en active Active
-
2022
- 2022-04-15 CN CN202210399691.1A patent/CN115220951A/zh active Pending
- 2022-10-14 US US17/966,391 patent/US11886736B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20230040062A1 (en) | 2023-02-09 |
US11886736B2 (en) | 2024-01-30 |
US20220334754A1 (en) | 2022-10-20 |
US11500578B2 (en) | 2022-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113168875B (zh) | 读取干扰扫描合并 | |
US11682446B2 (en) | Selective wordline scans based on a data state metric | |
US11886736B2 (en) | Memory access threshold based memory management | |
US11733892B2 (en) | Partial superblock memory management | |
CN116529693A (zh) | 加电时的媒体管理 | |
CN114496008A (zh) | 字线群组读取计数器 | |
US11907536B2 (en) | Data dispersion-based memory management | |
US11972130B2 (en) | Media management operations based on a ratio of valid data | |
CN115454327A (zh) | 基于存储器单元的健康特性进行媒体管理操作 | |
CN115273925B (zh) | 存储器子系统刷新 | |
CN115048039B (zh) | 用于基于有效转换单元计数的存储器管理的方法、设备和系统 | |
CN113539342B (zh) | 主动读取干扰缓解 | |
CN115249506B (zh) | 基于经编程存储器单元的数目的近接干扰修复 | |
US20240071503A1 (en) | Padding in flash memory blocks | |
US11501840B1 (en) | Proximity disturb remediation based on a number of programmed memory cells | |
US20230395152A1 (en) | Memory cell voltage level selection | |
US20240062828A1 (en) | Memory sub-system sanitization | |
US20230015066A1 (en) | Memory sub-system for monitoring mixed mode blocks | |
CN116450030A (zh) | 媒体管理 | |
CN116931823A (zh) | 利用编程交错增强写入性能的系统及方法 | |
CN115202571A (zh) | 用于存储器管理的方法、设备及系统 | |
CN117149057A (zh) | 用于控制垃圾收集源块中的有效数据计数变化的方法和装置 | |
CN115525215A (zh) | 存储器存取模式选择 | |
CN115729453A (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 |