CN112230845A - 存储器子系统中基于子组写计数的损耗均衡 - Google Patents
存储器子系统中基于子组写计数的损耗均衡 Download PDFInfo
- Publication number
- CN112230845A CN112230845A CN202010681763.2A CN202010681763A CN112230845A CN 112230845 A CN112230845 A CN 112230845A CN 202010681763 A CN202010681763 A CN 202010681763A CN 112230845 A CN112230845 A CN 112230845A
- Authority
- CN
- China
- Prior art keywords
- lwc
- dwc
- level
- memory
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 265
- 238000012545 processing Methods 0.000 claims abstract description 89
- 238000000034 method Methods 0.000 claims description 75
- 230000004044 response Effects 0.000 claims description 11
- 238000007726 management method Methods 0.000 description 97
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- 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
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
-
- 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/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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
-
- 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/7211—Wear leveling
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及存储器子系统中基于子组写计数的损耗均衡。在实施例中,一种系统包含多个存储器部件,每个存储器部件包含多个管理组。每个管理组包含多个子组。所述系统还包含处理装置,所述处理装置与多个存储器部件可操作地耦合以执行耗损均衡操作,所述耗损均衡操作包含为多个存储器部件中的存储器部件的管理组中的每个的子组中的每个维持子组级增量写计数DWC。损耗均衡操作还包含结合对存储器部件的第一管理组的第一子组的写操作来确定第一子组的子组级DWC等于管理组移动阈值,并且响应地触发从第一管理组到存储器部件的第二管理组的管理组移动操作。
Description
相关申请的交叉引用
本申请要求于2019年7月15日提交的名为“存储器子系统中基于子组写计数的损耗均衡(Wear Leveling Based on Sub-Group Write Counts in a Memory Sub-System)”的美国临时专利申请序列第62/874,294号的权益,所述临时专利申请的全部内容通过引用于此并入本文。
技术领域
本公开的实施例总体上涉及存储器子系统,并且更具体地涉及存储器子系统中基于子组写计数的损耗均衡。
背景技术
存储器子系统可以是存储装置、存储器模块、或存储装置与存储器模块的混合体。存储器子系统可以包含存储数据的一或多个存储器部件。存储器部件可以是例如非易失性存储器部件和易失性存储器部件。通常,主机系统可以利用存储器子系统在存储器部件存储数据并从存储器部件中检索数据。
发明内容
在一个方面,本申请提供了一种系统,所述系统包括:多个存储器部件,每个存储器部件包括多个管理组,每个管理组包含多个子组;以及处理装置,与所述多个存储器部件可操作地耦合以执行损耗均衡操作,所述损耗均衡操作包括:为所述多个存储器部件中的存储器部件的所述管理组中的每个的所述子组中的每个维持子组级增量写计数器(DWC);以及结合对所述存储器部件的第一管理组的第一子组的第一写操作来确定所述第一子组的第一子组级DWC等于管理组移动阈值,并且响应地执行一或多个管理组翻转操作的集合,其中所述管理组翻转操作集合包括触发从所述第一管理组到所述存储器部件的第二管理组的管理组移动操作。
在另一个方面,本申请进一步提供了一种方法,所述方法包括:为存储器部件的多个管理组中的每个的多个子组中的每个维持子组级增量写计数器(DWC);以及结合对所述存储器部件的第一管理组的第一子组的第一写操作来确定所述第一子组的第一子组级DWC等于管理组移动阈值,并且响应地执行一或多个管理组翻转操作的集合,其中所述管理组翻转操作集合包括触发从所述第一管理组到所述存储器部件的第二管理组的管理组移动操作。
在再一个方面,本申请进一步提供了一种含有指令的非暂时性机器可读存储介质,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:为存储器部件的多个管理组中的每个的多个子组中的每个维持子组级增量写计数器(DWC);以及结合对所述存储器部件的第一管理组的第一子组的第一写操作来确定所述第一子组的第一子组级DWC等于管理组移动阈值,并且响应地执行一或多个管理组翻转操作的集合,其中所述管理组翻转操作集合包括触发从所述第一管理组到所述存储器部件的第二管理组的管理组移动操作。
附图说明
通过以下给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,不应将附图用于将本公开限于具体实施例,而仅是为了解释和理解。
图1示出了根据本公开的一些实施例的示例计算环境,所述示例计算环境包含存储器子系统,所述存储器子系统包含存储器子系统控制器。
图2是根据本公开的一些实施例的图1的存储器子系统的示例存储器装置的框图。
图3是根据本公开的一些实施例的将图2的存储器装置的读/写存储部分划定为多个管理组的示例的框图,每个管理组具有多个子组。
图4是根据本公开的一些实施例的可以由存储器子系统控制器使用来执行操作的示例管理表的框图。
图5是根据本公开的一些实施例的图4的管理表的第一示例区段的框图。
图6是根据本公开的一些实施例的图4的管理表的第二示例区段的框图。
图7是根据本公开的一些实施例的用于存储器子系统中基于子组写计数的损耗均衡的示例方法的流程图,所述方法可以由图1的存储器子系统控制器执行。
图8是描绘根据本公开的一些实施例的由图1的存储器子系统控制器执行的一些示例操作的流程图。
图9是描绘根据本公开的一些实施例的由图1的存储器子系统控制器执行的一些示例操作的流程图。
图10是描绘根据本公开的一些实施例的存储器子系统控制器和图1的示例存储器装置的各种功能部件之间的通信的消息流图。
图11是本公开的实施例可以在其中操作的示例计算机系统的框图。
具体实施方式
本公开的各方面是针对存储器子系统中基于子组写计数的损耗均衡。存储器子系统可以是存储装置、存储器模块、或存储装置与存储器模块的混合体。以下结合图1描述存储装置和存储器模块的示例。通常,主机系统可以利用包含一或多个存储器部件(在本文中也称为“存储器装置”)的存储器子系统。主机系统可以提供要存储在存储器子系统的数据,并且可以请求从存储器子系统中检索数据。主机系统可以向存储器子系统发送访问请求,诸如将数据存储在存储器子系统并从存储器子系统中读取数据。要读取和写入的数据在下文被称为“用户数据”。主机请求可以包含用户数据的逻辑地址(例如,逻辑块地址(LBA)),所述逻辑地址是主机系统与用户数据相关联的位置。逻辑地址(例如,LBA)可以是用户数据的元数据的一部分。
存储器部件可以包含非易失性和易失性存储器装置。非易失性存储器装置是一或多个裸片的封装。封装中的裸片可以被分配给一或多个通道以与存储器子系统控制器进行通信。非易失性存储器装置包含单元(即,存储信息的电子电路),所述单元被分组为页面以存储数据位。
存储器子系统可以对非易失性存储器装置执行内部管理操作(诸如介质管理操作(例如,缺陷扫描、损耗均衡、刷新)),以管理存储器装置。将用户数据存储在存储器装置可能增加存储器装置的损耗。在阈值量的写操作之后,损耗可能使存储器装置变得不可靠,使得无法再可靠地存储用户数据并从存储器装置中检索用户数据。在这一点上,当存储器装置中的任何一个出现故障时,存储器子系统可能导致故障。
一些存储器部件(诸如非易失性存储器部件)的耐用性有限。这种有限的耐用性的一个方面是,存储用户数据的底层硬件元件只能将用户数据在其中写入有限的次数,然后它们发生损耗并且不再可靠地起作用。
用于管理具有具有有限的使用周期(例如,预期故障之前的有限次数的写和/或读周期)的物理部件的存储器子系统中的耐用性的一种技术是损耗均衡。损耗均衡是通过跨存储器装置分布写操作在来帮助减少存储器装置过早损耗的过程。损耗均衡包含操作集合以确定每当对用户数据进行编程时都要使用哪些物理介质(例如,存储器单元集合)来帮助确保某些物理存储器单元集合不会比其它物理存储器单元集合更频繁地写入和擦除。损耗均衡操作可以尝试跨数据存储器装置或存储器装置的各部分均匀地分布损耗操作(例如,写入、读取、擦除等)操作以及因此对应的物理损耗,因此限制存储器子系统的某些部分在其它部分之前出现故障的概率。
已经开发出的用于缓解这种问题的一种方法涉及划定存储器装置的存储器单元。非易失性存储器装置可以包含例如三维交叉点(“3D交叉点”)存储器装置,所述三维交叉点存储器装置是可以基于体电阻变化结合可堆叠的交叉网格数据访问阵列执行位存储的非易失性存储器的交叉点阵列。
此类非易失性存储器装置可以跨裸片和通道对页面进行分组以形成管理单元(MU)。MU可以包含用户数据和对应的元数据。存储器子系统控制器可以作为管理单元而向存储器装置发送以及从所述存储器装置接收用户数据和对应的元数据。超级管理单元(SMU)是一组被一起管理的一或多个MU。例如,存储器子系统控制器可以对SMU执行介质管理操作(例如,损耗均衡操作、刷新操作等)。
物理超级管理单元(PSMU)是一组一或多个管理单元(MU)。逻辑超级管理单元(LSMU)是一或多个逻辑地址(例如,逻辑块地址(LBA))的逻辑组。LSMU可以在不同的时间点被映射到不同的PSMU。
此外,存储器子系统控制器可以为存储器子系统中的每个SMU维持写计数。写计数可以存储在静态RAM(SRAM)数据表中,所述数据表在本文被称为SMU管理表(或简称为管理表)。存储器子系统控制器为存储器子系统的每个SMU维持写计数。
每个SMU的每个写计数可以包含多个(例如,两个)写计数:增量写计数(DWC)和寿命写计数(LWC)。每当存储器子系统控制器将写操作引导到给定SMU内的一或多个MU,存储器子系统控制器就将该SMU的DWC递增。当DWC达到在本文被称为SMU移动阈值的阈值时,存储器子系统控制器为该SMU重置DWC,将该SMU的LWC递增,并进行SMU移动操作,在所述SMU移动操作中,存储器子系统控制器在存储器子系统中的其它位置选择可用的SMU(在此被称为第二SMU),然后将当前存储在该SMU中的用户数据移动到第二SMU。结合SMU移动操作,存储器子系统控制器还重新分配先前已经被分配给原始SMU的逻辑地址(例如,LBA),然后将其分配给第二SMU。
存储器子系统控制器可以通过将第二SMU的DWC递增来跟踪对其的后续写操作,这将在重置状态(例如,等于零)中启动周期以符合SMU的DWC是自最近的(i)存储器部件的初始化(或重新初始化)和(ii)针对该SMU的最新SMU移动操作以来对该SMU的写操作的计数的事实。当第二SMU的DWC达到SMU移动阈值时,存储器子系统控制器重置DWC并将第二SMU的LWC递增,然后进行从第二SMU到又一个SMU的SMU移动操作。这种方法属于在由存储器子系统控制器管理存储器子系统中被称为损耗均衡操作的内容的类别。一旦给定SMU的LWC达到LWC阈值,存储器子系统控制器就可以采取一或多项响应措施,诸如中止使用该特定SMU、中止使用整个存储器部件、禁用整个存储器子系统、警告主机系统,和/或一或多个其它响应操作。
每个SMU移动操作消耗存储器子系统控制器和对应存储器部件两者上的处理能力和时间。因此,在所有其它条件相同的情况下,消耗越少越好。然而,在当前的实施方案中,对给定SMU的任何部分的任何写操作都当作对整个SMU的写操作,因为写操作导致该SMU的DWC递增,从而加速下一个SMU移动操作,并且由此增大在任何给定时间段内平均发生的SMU移动操作的数量。从以上对DWC和LWC的解释中可以理解,这会缩短SMU、存储器部件的寿命,在一些情况下甚至会缩短整个存储器子系统的寿命。尽管事实是在很大程度上跨给定SMU的不同部分均匀地分散的写操作不会真正导致同一物理存储部件上有重复损耗,尽管它们在当前的存储器子系统实施方案中被处理为就好像它们导致重复损耗一样。此外,不同类型的存储器部件实施不同的SMU大小,并且这种问题在使用较大SMU大小的存储器部件中更加严重。
本公开的各方面通过存储器子系统中基于子组写计数的损耗均衡来解决上述和其它不足。根据至少一个实施例,存储器子系统控制器包含介质管理部件,所述介质管理部件将DWC维持在比SMU级更精细的粒度上。在至少一个实施方案中,介质管理部件将存储器部件中的每个SMU处理为被划定为多个在本文被称为子组的内容,所述子组中的每个是SMU的已定义的物理存储元件子集。对于每个SMU,介质管理部件为SMU中的子组中的每个维持子组级DWC。介质管理部件仍然将LWC维持在SMU级,但是在至少一个实施方案中以如下方式进行维持:如下文所述,至少部分抵消了子组级DWC在SMU管理表中所占用的附加存储空间(与当前实施方案相比是附加的)。
在本公开的至少一个实施方案中,针对给定SMU的给定子组内的位置的写操作触发介质管理部件以将相关联的子组级DWC递增。此外,每当SMU的子组级DWC中的任何一个达到SMU移动阈值时,这种事件就会触发介质管理部件以为该SMU重置子组级DWC中的每个,将该SMU的LWC递增,并进行从该SMU到不同SMU的SMU移动操作。在一些实施方案中,除了为每个SMU中的每个子组维持子组级DWC之外,介质管理部件还为每个SMU维持SMU级DWC。每个SMU级DWC都可以被视为独立值,但是也可以被视为表示组合DWC的最高有效位(MSB),相关联的子组级DWC为所述组合DWC提供最低有效位(LSB)。
关于LWC,在本公开的至少一个实施方案中,介质管理部件为每个存储器部件维持在本文被称为LWC基数的值。介质管理部件将这些存储器部件级值维持在寄存器中,所述寄存器在本文被称为LWC基数寄存器,所述LWC基数寄存器位于SMU管理表之外的存储区域中并且在本文被称为LWC基数寄存器文件。介质管理部件还在SMU管理表中为每个存储器部件中的每个SMU维持在本文被称为LWC偏移量的值。在任何给定时间,在本公开的至少一个实施方案中,存储器部件的SMU的LWC由该存储器部件的LWC基数与该SMU的LWC偏移量的拼接来表示。LWC基数是LWC的MSB部分,而LWC偏移量是最低有效位(LSB)部分。以下描述介质管理部件结合这些值执行的一些示例操作。
本公开的实施方案的益处是,与SMU移动操作结合当前实施方案相比,它们被触发的频率更低。这样做的原因是,与在存储器子系统的当前方案中相比,在本公开的实施方案中需要更多数量的写操作来达到SMU移动阈值。这样,对介质管理部件(更一般地,以及存储器子系统控制器)和各个存储器部件两者的处理能力和时间的需求更少。
在非常罕见的情况下,可能发生如下情况:在结合当前实施方案导致触发SMU移动操作的相同数量的写操作之后,结合本公开的实施方案触发SMU移动操作,尽管这仅发生在其中在对给定SMU的SMU移动操作后,对该SMU的每一单个写操作都是针对该SMU的子组中的单一子组直到触发下一个SMU移动操作为止的情况下。在所有其它情况下,与SMU移动操作结合当前实施方案相比,它们结合本公开的实施方案被触发的频率更低。这种比较当然假设结合本公开的实施方案的子组的SMU移动阈值与当前实施方案中SMU的SMU移动阈值相同。
本公开的实施方案的其它益处对于本领域技术人员将是显而易见的。
图1示出了根据本公开的一些实施例的示例计算环境100,所述示例计算环境包含存储器子系统110。存储器子系统110可以包含诸如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)之类的介质,或此类介质的组合。
存储器子系统110可以是存储装置、存储器模块、或存储装置与存储器模块的混合体。存储装置的示例包含固态驱动器(SSD)、闪存驱动器、通用串行总线(USB)闪存驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用闪存存储(UFS)驱动器和硬盘驱动器(HDD)。存储器模块的示例包含双列直插存储器模块(DIMM)、小型DIMM(SO-DIMM)和非易失性双列直插存储器模块(NVDIMM)。
计算环境100可以包含耦合到存储器系统的主机系统120。存储器系统可以包含一或多个存储器子系统110。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1示出了耦合到一个存储器子系统110的主机系统120的示例。主机系统120例如使用存储器子系统110将用户数据写入存储器子系统110,并从存储器子系统110中读取用户数据。如本文所使用的,“耦合到”通常是指部件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如,没有中间部件),无论是有线还是无线的,包含诸如电、光、磁等之类的连接。
主机系统120可以是计算装置,诸如台式计算机、膝上型计算机、网络服务器、移动装置、嵌入式计算机(例如,包含在交通工具、工业设备或联网商业装置中的嵌入式计算机)或包含存储器和处理装置的此类计算装置。主机系统120可以经由物理主机接口耦合到存储器子系统110。物理主机接口的示例包含但不限于串行高级技术附件(SATA)接口、外围部件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)等。物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据(例如,用户数据)。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可以进一步利用NVM快速(NVMe)接口来访问存储器部件(例如,存储器装置130)。物理主机接口可以提供用于在存储器子系统110与主机系统120之间传递控制、地址、用户数据和其它信号的接口。
存储器装置可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),诸如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的示例包含3D交叉点型闪存存储器,所述闪存存储器是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可以基于体电阻变化结合可堆叠的交叉网格数据访问阵列来执行位存储。另外,与许多基于闪存的存储器相比,交叉点非易失性存储器可以执行就地写操作,其中可以对非易失性存储器单元进行编程,而无需事先擦除非易失性存储器单元。
尽管描述了诸如3D交叉点型存储器之类的非易失性存储器部件,但是存储器装置130可以基于任何其它类型的非易失性存储器,诸如与非门(NAND)、只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属半导体的存储器、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、或非门(NOR)闪存存储器以及电可擦可编程只读存储器存储器(EEPROM)。
在一些实施例中,存储器装置130中的每个可以包含一或多个存储器单元阵列,诸如单级单元(SLC)、多级单元(MLC)、三级单元(TLC)、四级单元(QLC)或此类单元的组合。在一些实施例中,特定的存储器部件可以包含存储器单元的SLC部分和MLC部分、TLC部分或QLC部分。存储器单元中的每个可以存储由主机系统120使用的一或多位数据。
此外,存储器装置130的存储器单元可以被分组为可以指代用于存储数据的存储器部件的一个单元的存储器页面或存储器块。存储器页面可以跨裸片和通道进行分组以形成管理单元(MU)。MU可以包含用户数据和对应的元数据。存储器子系统控制器可以作为管理单元而向存储器装置发送以及从所述存储器装置接收用户数据和对应的元数据。超级管理单元(SMU)是一组被一起管理的一或多个MU。例如,存储器子系统控制器可以对SMU执行介质管理操作(例如,损耗均衡操作、刷新操作等)。
存储器子系统控制器115可以与存储器装置130进行通信以在存储器装置130执行诸如读取数据、写入数据或擦除数据之类的操作以及其它此类操作。存储器子系统控制器115可以包含诸如一或多个集成电路和/或分立部件之类的硬件、缓冲存储器或它们的组合。存储器子系统控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一种合适的处理器。
存储器子系统控制器115包含被配置为执行存储在本地存储器119中的指令的处理器(处理装置)117。在所示的示例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器被配置为存储用于执行各种过程、操作、逻辑流以及控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的例程的指令。
在一些实施例中,本地存储器119可以包含存储存储器指针、所提取的数据等的存储器寄存器。本地存储器119还可以包含用于存储微码的只读存储器(ROM)。尽管图1中的示例存储器子系统110被示为包含存储器子系统控制器115,但是在本公开的另一个实施例中,存储器子系统110可以不包含存储器子系统控制器115,而是可以依赖于外部控制(例如,由外部主机或由与存储器子系统110分离的处理器或控制器提供的外部控制)。
通常,存储器子系统控制器115可以从主机系统120接收命令或操作,并且可以将命令或操作转换为指令或适当的命令以实现对存储器装置130的期望访问。存储器子系统控制器115可以负责其它操作,诸如损耗均衡操作、垃圾回收操作、错误检测和纠错码(ECC)操作、加密操作、缓存操作以及逻辑地址(例如,逻辑块地址(LBA))与与存储器装置130相关联的物理地址之间的地址转译。存储器子系统控制器115可以进一步包含主机接口电路系统,以经由物理主机接口与主机系统120进行通信。主机接口电路系统可以将从主机系统120接收到的命令转换为访问存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换为主机系统120的信息。
存储器子系统控制器115包含介质管理部件121,以执行介质管理操作以管理存储器装置130。在至少一个实施方案中,诸如损耗均衡操作之类的操作由介质管理部件121执行。如图1中所描绘,在至少一个实施例中,介质管理部件121包含基于子组的损耗均衡器113,所述基于子组的损耗均衡器可以采取用于执行本文所述的至少基于子组的损耗均衡器功能的电路系统、专用逻辑、可编程逻辑、固件、软件等形式或者包含它们。在一些实施例中,存储器子系统控制器115包含基于子组的损耗均衡器113的至少一部分-处理器117可以被配置为执行存储在本地存储器119中的指令以执行本文所述的基于子组的损耗均衡器操作。在一些实施例中,基于子组的损耗均衡器113是主机系统120、应用程序或操作系统的一部分。
存储器子系统110还可以包含未示出的附加电路系统或部件。在一些实施例中,存储器子系统110可以包含可以从存储器子系统控制器115接收地址并对地址进行解码以访问存储器装置130的高速缓存或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器)。
在一些实施例中,存储器装置130包含本地介质控制器135,所述本地介质控制器结合存储器子系统控制器115进行操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可以在外部管理介质装置130(例如,对介质装置130执行介质管理操作)。在一些实施例中,存储器装置130可以是本地管理的存储器装置,所述存储器装置是与本地介质控制器135组合的原始存储器装置,所述本地介质控制器对同一存储器装置封装内的存储器装置130执行存储管理操作。
在所描绘的实施例中,本地存储器119包含SMU管理表160和LWC基数寄存器文件170,这两者在本文中都被描述为由基于子组的损耗均衡器113使用来执行根据本公开的实施方案的操作。在至少一个实施例中,基于子组的损耗均衡器113被配置为将关于子组级DWC、SMU级DWC和LWC偏移量的记录维持在SMU管理表160中,并且被进一步配置为将LWC基数维持在LWC基数寄存器文件170中的寄存器中。此外,根据本公开的一些实施方案,基于子组的损耗均衡器113被配置为指示存储器装置130进行其数据从SMU级DWC已经达到SMU移动阈值的SMU到另一个可用的SMU的SMU移动操作。贯穿本公开,描述了在不同实施例中由基于子组的损耗均衡器113以不同组合执行的各种功能。
此外,要注意的是,在图1中描绘的布置是示例性的而非限制性的,在所述布置中,SMU管理表160和LWC基数寄存器文件170被含有在本地存储器119内。在一些实施方案中,SMU管理表160和LWC基数寄存器文件170中的一者或两者可以被含有在介质管理部件121内或存储器子系统控制器115内的其它数据存储装置中。替代地,SMU管理表160和LWC基数寄存器文件170中的一者或两者可以位于存储器装置130或存储器装置140内。此外,一者或两者可以存储在主机系统120上。
图2是存储器装置130的示例结构200的框图。存储器装置130中的每个可以具有与结合图2通过示例方式描绘和描述的存储器装置130的结构类似的内部结构。存储器装置140也可以具有类似的内部结构。此外,存储器子系统110可以包含任何合适数量的存储器装置130和存储器装置140。
如所提及的,在至少一个实施例中,存储器装置130包含本地介质控制器135。如图2中进一步所描绘的,在至少一个实施例中,存储器装置130还包含读/写存储装置202和只读存储装置204。由于可以在不同的实施方案中使用不同的结构,因此通过示例而非限制方式呈现用于存储器装置130的这种结构。在至少一个实施例中,读/写存储装置202包含非易失性数据存储元件,本地介质控制器135可以向所述非易失性数据存储元件写入数据,并且本地介质控制器135可以从所述非易失性数据存储元件中读取数据。如图2中大体上示为经子组划定的SMU 203,读/写存储装置202可以包含多个SMU,每个SMU被划定为多个子组。在一个示例中,存储器装置130是NAND型闪存存储器部件。在另一个示例中,存储器装置130是3D交叉点存储器装置。在至少一个实施例中,只读存储装置204包含非易失性数据存储元件,本地介质控制器135可以从所述非易失性数据存储元件中读取数据。只读存储装置204可以含有在制造存储器装置130时被编程的数据。
图3描绘了读/写存储装置202的经子组划定的SMU 203的示例架构300。特别地,经子组划定的SMU 203被描绘为包含四个SMU:SMU 310、SMU 320、SMU 330和SMU 340。SMU 310至340中的每个被示为具有四个子组:SMU 310具有子组311至314,SMU 320具有子组321至324,SMU 330具有子组331至334,并且SMU 340具有子组341至344。通过示例而非限制方式将经子组划定的SMU 203描绘为包含四个SMU 310至340并且将那些SMU 310至340中的每个描绘为具有四个子组311至314、321至324、331至334、341至344。在任何给定的情况中,经子组划定的SMU 203可以包含任何数量的SMU,并且每个SMU可以包含任何数量的子组。此外,在一些情况下,不同的SMU可以具有不同数量的子组。此外,对于给定的实施方案,SMU和子组可以具有本领域技术人员认为合适的任何大小。
如上所述,基于子组的损耗均衡器113可以使用SMU管理表160来维持关于SMU 310至340的SMU级DWC和子组311至314、321至324、331至334、341至344的子组级DWC的记录,以及维持关于各种SMU 310至340的LWC偏移量的记录。如图4所示,在SMU管理表160的示例架构400中,SMU管理表160可以包含多个不同的区段,诸如DWC区段402和LWC区段404。本文讨论了可以组织DWC区段402和LWC区段404的示例方式。
在图5(描绘了DWC区段402的示例架构500)中示出了可以组织DWC区段402的一种示例方式。如标题栏中所指示,DWC区段402可以被组织为具有六列的表:第一列,所述第一列识别给定行所属的SMU 310至340;第二列,所述第二列含有特定的SMU 310至340的SMU级DWC 510至540;以及第三至第六列,所述第三至第六列含有特定的SMU中的各个子组311至314、321至324、331至334、341至344的子组级DWC 511至514、521至524、531至534、541至544。此外,要注意的是,第一列的显示主要是为了帮助读者-即,为了减少SMU管理表160所占用的存储空间,DWC区段402不必包含第一列:基于子组的损耗均衡器113可以被编程为知道哪一行与哪个SMU 310至340相对应。
DWC区段402的第一行属于SMU 310,并且包含SMU级DWC 510、子组级DWC 511、子组级DWC 512、子组级DWC 513和子组级DWC 514。第二行属于SMU 320,并且含有SMU级DWC 520和子组级DWC 521至524。第三行属于SMU 330,并且含有SMU级DWC 530和子组级DWC 531至534。最后,第四行属于SMU 340,并且含有SMU级DWC 540和子组级DWC 541至544。子组级DWC511与SMU 310的子组311相对应,子组级DWC 512与子组312相对应,等等。
可以为SMU级DWC 510至540中的每个和子组级DWC 511至514、521至524、531至534、541至544中的每个预留任何数量的位。考虑假设示例是有帮助的,在所述假设示例中,在当前实施方案中,当从MSB到LSB从左到右排序时,SMU级DWC包含17位,被称为位[16:0]。在此类示例中,每个SMU级DWC在任何给定时间都可以具有0至131,071(十进制)范围内的任何值(包含0和131,071),并且对SMU的每131,072次写操作将导致该SMU的LWC递增并执行SMU移动操作以将数据和逻辑地址分配从该SMU移动到另一个SMU。
在本公开的至少一个实施方案中,通过为每个SMU级DWC 510至540分配13位来与13个MSB相对应并且进一步通过为每个子组级DWC 511至514、521至524、531至534、541至544分配4位来与4个LSB相对应,对于子组级DWC中的每个实现这个相同的DWC范围(0至131,071)。在此类实施例中,子组级DWC 511至514、521至524、531至534、541至544中的每个可以采取0至15(十进制)范围内的值(包含0和15)。在这个示例中,关于DWC相关存储并且与假设的先前实施方案相比,对于存储器子系统110的SMU中的每个,在SMU管理表160中将占用额外的12位。
此外,LWC区段404可以多种不同方式来组织,在图6中描绘的LWC区段404的示例架构600中示出了所述多种不同方式的一个示例。如标题行中所指示,LWC区段404可以被组织为具有两列的表:第一列,所述第一列识别给定行所属的SMU 310至340;以及第二列,所述第二列列出特定的SMU 310至340的LWC偏移量610至640。与图5的情况相同,第一列在图6中的显示主要是为了帮助读者-为了减少SMU管理表160所占用的存储空间,LWC区段404不必包含该第一列,并且基于子组的损耗均衡器113可以被编程为知道哪一行(并且因此哪个LWC偏移量610至640)与哪个SMU 310至340相关联。
可以在LWC区段404中为LWC偏移量610至640中的每个预留任何合适数量的位。在实施例中,为LWC偏移量610至640中的每个预留3位,并且LWC偏移量610至640中的每个可以因此采取0至7(十进制)范围内的值(包含0和7)。如本文所讨论的,关于LWC相关数据,本公开的一些实施方案涉及在SMU管理表160中为每个SMU仅保留一定数量的LWC的LSB(以LWC偏移量610至640的形式),并且将单个值存储在SMU管理表160之外的LWC基数寄存器文件170中,所述单个值表示给定存储器装置130的SMU中的全部的LWC的MSB。因此,与先前的实施方案相比,本公开的一些实施方案在SMU管理表160中涉及更多DWC相关存储,但是更少LWC相关存储。
以下分别结合图7、图8和图9描述示例方法700、示例方法800和示例方法900。关于这些附图及其随附的描述,应当理解,尽管以特定顺序示出,但是除非另外规定,否则可以修改所描绘和描述的操作的次序。因此,所示的实施方案应仅被理解为示例,并且应当进一步理解,所示的操作可以不同的次序执行,并且一些操作可以并行地执行。另外,在各种实施例中可以省略一或多个操作。因此,不是所有的操作都结合每个实施方案来执行。其它方法是可能的。此外,方法700、方法800和/或方法900可以通过处理逻辑来执行,所述处理逻辑可以包含硬件(例如,电路系统、专用逻辑、可编程逻辑、微码等)、软件(诸如在处理装置上执行的指令)、固件或它们的组合。
图7描绘了根据本公开的一些实施例的用于基于子组级DWC的损耗均衡的示例方法700的流程图。方法700可以由处理逻辑来执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或它们的组合。在一些实施例中,方法700由图1的基于子组的损耗均衡器113来执行。尽管以特定的顺序或次序示出,但是除非另外规定,否则可以修改过程的次序。因此,所示的实施例应当仅被理解为示例,并且所示的过程可以不同的次序执行,并且一些过程可以并行地执行。另外,在各种实施例中可以省略一或多个操作。因此,并非在每个实施例中都需要所有操作。其它方法流是可能的。
在操作702处,处理装置为存储器装置130的管理组(例如,SMU 310至340)的子组311至314、321至324、331至334、341至344中的每个维持子组级DWC 511至514、521至524、531至534、541至544。在操作704处,处理装置结合对存储器装置130的管理组(例如,SMU320)的子组323的写操作来确定子组级DWC 523等于管理组移动阈值,所述管理组移动阈值在本文也被称为SMU移动阈值。响应于做出这种确定,在操作706处,处理装置执行在本文被称为管理组翻转(或SMU翻转)操作的内容的一或多个的集合。一或多个SMU翻转操作的集合包含触发从SMU 320到存储器装置130的第二管理组(例如,SMU 340)的管理组移动操作(例如,SMU移动操作)。在这个示例中,SMU 340未被使用并且可用作所提及的SMU移动操作的目标SMU。
要注意的是,在前面的段落中使用短语“结合写操作”,并且在本公开的各个地方使用类似变型(例如,“结合第一写操作”、“结合第二写操作”、“结合第三写操作”等)。在这些情况下,处理装置被描述为“结合”给定的写操作来执行一或多个操作。这种语言旨在广泛地涵盖处理装置在所提及的写操作之前、期间和/或之后执行相关联的操作,并且主要用于帮助读者避免混淆不同的示例。
此外,“一或多个SMU翻转操作的集合”是指在确定要执行从存储器部件(例如,存储器装置130)的一个SMU(例如,SMU 320)到另一个SMU(例如,SMU 340)的SMU移动操作时,处理装置在本公开的各种不同实施方案中执行的一或多个操作的集合。这样,操作706列出触发从SMU 320到SMU 340的SMU移动操作作为在一或多个SMU翻转操作的集合中的首先描述的示例SMU翻转操作。使用当前示例进行说明,一或多个SMU翻转操作的集合还可以包含为SMU 320的子组321至324重置子组级DWC 521至524中的全部。另一个示例是在包含SMU级DWC的实施例中为SMU 320重置SMU级DWC 520。另一个示例是将在LWC区段404中与SMU 320相关联的LWC偏移量620递增。
在本公开的实施方案中,当给定的SMU的子组的子组级DWC中的任何一个达到SMU移动阈值时,触发从该给定SMU到目标SMU的SMU移动操作。因此,在本示例中,可能的情况是,当子组级DWC 523达到SMU移动阈值时,子组级DWC 521、子组级DWC 522和子组级DWC524等于大于或等于0且小于SMU移动阈值的各种(可能相等的、可能不同的)值。
此外,对子组级DWC达到SMU移动阈值的描述与维持独立子组级DWC但是也不会维持SMU级DWC的实施方案一致。如以下结合至少图8所描述的,对子组级DWC达到SMU移动阈值的描述也与维持子组级DWC和SMU级DWC两者的实施方案一致。
图8描绘了根据本公开的一些实施例的用于基于子组级DWC的损耗均衡的示例方法800的流程图。方法800可以由处理逻辑来执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或它们的组合。在一些实施例中,方法800由图1的基于子组的损耗均衡器113来执行。尽管以特定的顺序或次序示出,但是除非另外规定,否则可以修改过程的次序。因此,所示的实施例应当仅被理解为示例,并且所示的过程可以不同的次序执行,并且一些过程可以并行地执行。另外,在各种实施例中可以省略一或多个操作。因此,并非在每个实施例中都需要所有操作。其它操作流是可能的。
结合图8在以下描绘和描述的方法800在后一种类型的实施方案的背景中,并且将“子组级DWC达到SMU移动阈值”分为两个部分:(i)子组级DWC达到子组级DWC的最大允许值,以及(ii)相关联的SMU级DWC达到SMU级DWC的最大允许值。
在本公开的至少一个实施方案中,在确定要对SMU 320的子组323进行写操作(在本文被称为“第一”写操作)时,由处理装置执行方法800。要注意的是,将这种写操作称为“第一”写操作并且将下文描述的其它写操作称为“第二”、“第三”写操作等与执行这些写操作的时间顺序无关。这些只是标签以帮助读者区分涉及不同写操作的不同示例。
在本示例中,处理装置对SMU 320的子组323执行第一写操作(参见操作802)。接下来,处理装置(在操作804处)评估子组323是否等于最大允许子组级DWC值(在本文被称为子组级DWC max)。在这个示例中,由于向子组级DWC 511至514、521至524、531至534、541至544中的每个分派了4位,因此子组级DWC max为15。要注意的是,此时在示例方法800中,子组级DWC 521尚未递增。
如果处理装置在操作804处确定子组级DWC 521不等于子组级DWC max,则控制进行到操作806,此时处理装置将子组级DWC 521递增。控制然后进行到操作808,此时方法800返回(到其调用功能、过程等)。
然而,如果处理装置在操作804处确定子组级DWC 521等于子组级DWC max,则在操作810处,处理装置为SMU 320重置子组级DWC 521至524中的每个。控制然后进行到操作812,此时处理装置评估SMU级DWC 520是否等于最大允许SMU级DWC值(在本文被称为SMU级DWC max)。在这个示例中,由于向SMU级DWC 510至540中的每个分派了13位,因此SMU级DWCmax为8,191。当将SMU级DWC和子组级DWC分别视为组合DWC的MSB和LSB时,可以看出在这个示例中SMU移动阈值为131,071。
继续示例,如果处理装置在操作812处确定SMU级DWC 520不等于(并且因此小于)SMU级DWC max,则处理装置将SMU级DWC 520递增(参见操作814),然后方法800在操作808处返回。然而,如果处理装置在操作812处确定SMU级DWC 520等于SMU级DWC max,则处理装置执行SMU翻转操作集合:处理装置重置SMU级DWC 520(参见操作816),将LWC偏移量620递增(参见操作818),以及触发从SMU 320到SMU 340(作为示例可用的SMU)的SMU移动操作(参见操作820)。然后,方法800在操作808处返回。
在此结合在图9中描绘的示例方法900来描述一些示例操作-所述操作在本公开的一些实施方案中被执行作为在操作818处将LWC偏移量620递增的一部分。
图9描绘了根据本公开的一些实施例的用于基于子组级DWC的损耗均衡的示例方法900的流程图。方法900可以由处理逻辑来执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或它们的组合。在一些实施例中,方法800由图1的基于子组的损耗均衡器113来执行。尽管以特定的顺序或次序示出,但是除非另外规定,否则可以修改操作的次序。因此,所示的实施例应当仅被理解为示例,并且所示的操作可以不同的次序执行,并且一些操作可以并行地执行。另外,在各种实施例中可以省略一或多个操作。因此,并非在每个实施例中都需要所有操作。其它操作流是可能的。
然而,在一些实施例中,方法800的执行不涉及方法900的完整执行,而是涉及执行方法900的一或多个但不是全部操作。本公开的一些实施例涉及执行方法800和方法900中的一种方法而不执行另一种方法。与方法800的情况一样,在本文通过示例而非限制方式将方法900描述为由存储器子系统控制器115相对于存储器装置130执行的方法。在一些情况下,特别是基于子组的损耗均衡器113执行方法900。
如上所述,在本公开的实施方案中,处理装置为存储器装置130的SMU 310至340中的每个维持LWC。在至少一些实施方案中,这涉及维持单个共享LWC基数(所述单个共享LWC基数表示存储器装置130的SMU 310至340中的全部的LWC的MSB)以及单独的SMU特定LWC偏移量610至640(所述LWC偏移量表示存储器装置130的各种SMU 310至340的LWC的LSB)。这种类型的实施方案为对图9的方法900的这种描述提供了背景。
方法900包含处理装置在至少一个实施方案中执行作为执行图8的方法800的操作818的一部分的操作,这涉及处理装置将LWC偏移量620递增,并且更广泛地涉及处理装置将处理装置为SMU 320维持的LWC递增。在本公开的至少一个实施方案中,该LWC的MSB作为共享LWC基数存储在SMU管理表160之外的LWC基数寄存器文件170中的寄存器中,而该LWC的LSB作为LWC偏移量610至640中的LWC偏移量620存储在SMU管理表160的LWC区段404中。
此外,在这个示例中,为LWC偏移量610至640中的每个预留3位,并且LWC偏移量610至640中的每个可以采取0至7(十进制)范围内的值(包含0和7)。相应地,LWC偏移量的最大允许值(在本文被称为LWC偏移量max)为7。处理装置在操作902处开始执行子方法900,此时处理装置评估LWC偏移量620是否小于量(LWC偏移量max-1)。如果是,则处理装置仅将LWC偏移量620递增(参见操作904),然后方法900返回到方法800(参见操作906)。
然而,如果处理装置在操作902处确定LWC偏移量620不小于量(LWC偏移量max-1),则处理装置在操作908处继续评估LWC偏移量620是否实际上是等于相同的量。要注意的是,所提及的量(LWC偏移量max-1)是在本文被称为LWC偏移量检查阈值的参数的示例表达式,所述LWC偏移量检查阈值是处理装置在一些实施方案中使用来验证一般情况下以将SMU310至340中的全部彼此保持在一定使用寿命范围内的方式在SMU 310至340之间进行写操作的阈值。此外,在一些实施方案中不使用LWC偏移量检查阈值,而在其它实施方案中,所述LWC偏移量检查阈值等于除(LWC偏移量max-1)之外的值,因为该值在本文通过示例而非限制方式使用。
返回到方法900的操作,如果处理装置在操作908处确定LWC偏移量620等于量(LWC偏移量max-1),则控制进行到操作910,此时处理装置检查与在上述段落中列出的关于SMU310至340的使用寿命是否在彼此的公差内的考虑因素有关的错误条件。特别地,作为示例,在操作910处,处理装置评估除LWC偏移量620之外的LWC偏移量-在这种情况下,LWC偏移量610、LWC偏移量630和LWC偏移量640-中的任何一个是否具有小于(i)在本文被称为LWC偏移量范围大小的值与(ii)在本文被称为LWC基数增量大小的值之间的差值的当前值。
如所述,在这个示例中,LWC偏移量610至640中的任何一个可以在任何给定时间具有0至7(十进制)范围内的任何值(包含0和7);相应地,因为在该范围内有8个不同的值,所以这个示例中的LWC偏移量范围大小为8。此外,在这个示例中,LWC基数增量大小为4。在这种情况下,LWC基数增量大小被计算为LWC偏移量范围大小的一半,尽管这不是必需的。LWC基数增量大小可以采取小于LWC偏移量范围大小的其它值。
如果处理装置在操作910处确定LWC偏移量610、LWC偏移量630和LWC偏移量640中的至少一个小于可以被表达为(LWC偏移量范围大小-LWC基数增量大小)的差值,则这表示错误条件为真,并且处理装置响应地触发LWC偏移量不平衡事件(例如,警报或错误消息)以存储在例如处理装置的固件中(参见操作912)。在其它实施方案中,处理装置还可以或者替代地采取一或多个其它响应动作,可能直到并且包含禁用存储器装置130的进一步使用。
在所描绘的实施例中,在执行操作912之后,处理装置将LWC偏移量620递增(参见操作904),然后方法900返回到方法800(参见操作906)。从图9中可以看出,如果处理装置在操作910处确定LWC偏移量610、LWC偏移量630和LWC偏移量640均不小于LWC偏移量范围大小与LWC基数增量大小之间的差值,则存在与处理装置执行的相同的两个操作。
现在返回到操作908,如果处理装置确定LWC偏移量620不等于LWC偏移量检查阈值,所述LWC偏移量检查阈值在这个示例中等于量(LWC偏移量max-1),则控制进行到操作914。要注意的是,总体而言,在操作902和操作904两者处为否定的确定相当于确定LWC偏移量620不小于-并且实际上等于-LWC偏移量max。在不涉及使用LWC检查阈值来检查上述错误条件的实施方案中,然后,操作902和904可以被组合为单个操作,所述单个操作评估LWC偏移量620是否小于LWC偏移量max。
在操作914处,响应于确定LWC偏移量620等于LWC偏移量max,处理装置将存储器装置130中的SMU 310至340的LWC偏移量610至640中的全部减小上述LWC基数增量大小。处理装置还将存储在LWC基数寄存器文件170中的寄存器中的共享LWC基数增大LWC基数增量大小(参见操作916)。然后,通过这两个操作914和916的组合,没有LWC信息丢失,并且任何给定的SMU 310至340的当前LWC可以在任何时间通过使用共享LWC基数作为该当前LWC的MSB并使用当前LWC偏移量610至640作为该当前LWC的LSB来确定。要注意的是,这是由于处理装置的上述策略而起作用以将各种SMU 310至340保持在彼此的使用寿命阈值量以内,即,通过检查(不存在)上述错误条件而验证的条件。在执行操作914和916之后,方法900返回到方法800(参见操作906)。最后,要注意的是,尽管未描绘,但是在一些实施方案中,方法900还可以涉及处理装置评估SMU 320(或SMU 310至340中的任何一个SMU)的LWC是否已经达到寿命LWC max。
图10是描绘示出了在本公开的一些实施方案中可以在存储器子系统控制器115和存储器装置130的各种功能部件之间发生的一些示例通信的消息流1000的消息流图。存储器子系统控制器115的在消息流1000中描绘的功能部件是基于子组的损耗均衡器113、作为SMU管理表160一部分的DWC区段402和LWC区段404、以及LWC基数寄存器文件170。此外,要注意的是,时间不旨在按比例描绘在消息流1000中。
如消息流1000所示,基于子组的损耗均衡器113可以向存储器装置130传输读命令以及从所述存储器装置接收对应的读数据,如在1002处所指示。此外,基于子组的损耗均衡器113可以传输要写入存储器装置130的写命令和对应数据,如在1004处所指示。在1004处这些写命令和写数据的传输可以与存储器子系统控制器115引导到存储器装置130的上述写操作相对应。在这种描绘中,特别是基于子组的损耗均衡器113将这些写命令引导到存储器装置130。每个写命令可以针对存储器装置130的特定SMU 310至340的特定子组311至314、321至324、331至334、341至344。
此外,如在1006处所指示,在各种实施方案中,基于子组的损耗均衡器113可以向DWC区段402发送DWC读请求以请求SMU级DWC 510至540中的一或多个和/或存储在DWC区段402中的子组级DWC 511至514、521至524、531至534、541至544中的一或多个的值。基于子组的损耗均衡器113可以从DWC区段402接收所请求的DWC值,并且可以进一步向DWC区段402发送关于SMU级DWC 510至540和/或子组级DWC 511至514、521至524、531至534、541至544中的一或多个的DWC更新(例如,递增值、递增指令、重置值、重置指令)。
如在1008处所指示,基于子组的损耗均衡器113还可以向LWC区段404发送LWC偏移量读请求以请求存储在LWC区段404中的LWC偏移量610至640中的一或多个的值。基于子组的损耗均衡器113可以从LWC区段404接收所请求的LWC偏移量值,并且可以进一步向LWC区段404发送关于LWC偏移量610至640中的一或多个的LWC偏移量更新(例如,递增值、递增指令)。如在1010处所指示,基于子组的损耗均衡器113可以参与结合共享的LWC基数向LWC基数寄存器文件170发送读请求、从所述LWC基数寄存器文件接收值以及向所述LWC基数寄存器文件发送更新的类似操作。
在任何给定时间,基于子组的损耗均衡器113可以使用从DWC区段402接收的值来计算任何给定SMU 310至340的当前SMU级DWC和/或任何给定子组311至314、321至324、331至334、341至344的当前子组级DWC或者可能是如本文所述的当前组合DWC。替代地或另外,在任何给定时间,基于子组的损耗均衡器113可以使用从LWC区段404和LWC基数寄存器文件170接收的值来计算任何给定SMU 310至340的当前LWC。
又如在消息流1000中所描绘的,基于子组的损耗均衡器113还可以不时地将SMU移动命令传输到存储器装置130,如在1012处所指示,从而指示存储器装置130执行从一个SMU(例如,SMU 320)到另一个SMU(例如,SMU 340)的SMU移动操作,这可能作为响应于确定子组(例如,子组323)的子组级DWC(例如,子组级DWC 523)已经达到SMU移动阈值而执行的SMU翻转操作。最后,可能还作为SMU翻转操作,并且如在1014处所指示,基于子组的损耗均衡器113可以指示存储器装置130擦除某些数据,可能是在已经执行了到SMU 340的SMU移动操作之后SMU 320中的数据,以使SMU 320可用于针对作为目标SMU的SMU 320的未来SMU移动操作。
图11示出了计算机系统1100的示例机器,在其中可以执行用于使机器执行本文所讨论的方法中的任何一或多种的指令集。在一些实施例中,计算机系统1100可以与主机系统(例如,图1的主机系统120)相对应,所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或者可以用于执行控制器的操作(例如,执行操作系统以执行与图1的基于子组的损耗均衡器113相对应的操作)。在替代实施例中,机器可以连接(例如,联网)到局域网(LAN)、内联网、外联网和/或因特网中的其它机器。机器可以在客户端-服务器网络环境中以服务器或客户端机器的身份操作,可以作为对等(或分布式)网络环境中的对等机器,或者可以作为云计算基础架构或环境中的服务器或客户端机器。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、环球网设备、服务器、网络路由器、交换机或网桥或能够(顺序地或以其它方式)执行指定该机器要执行的动作的指令集的任何机器。进一步,尽管示出了单个机器,但是术语“机器”也应被理解为包含单独地或共同地执行一(或多个)指令集以执行本文讨论的方法中的任何一或多种的机器的任何集合。
示例计算机系统1100包含经由总线1130彼此进行通信的处理装置1102、主存储器1104(例如,ROM、闪存存储器、诸如SDRAM或RDRAM之类的DRAM等)、静态存储器1106(例如,闪存存储器、SRAM等)和数据存储系统1118。
处理装置1102表示一或多个通用处理装置,诸如微处理器、中央处理单元(CPU)等。更特别地,处理装置1102可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器、或实施指令集组合的处理器。处理装置1102也可以是一或多个专用处理装置,诸如ASIC、FPGA、数字信号处理器(DSP)、网络处理器等。在至少一个实施例中,处理装置1102被配置为执行指令1126以执行本文所讨论的操作。计算机系统1100可以进一步包含网络接口装置1108以通过网络1120进行通信。
数据存储系统1118可以包含机器可读存储介质1124(也被称为计算机可读介质),在所述机器可读存储介质上存储了具体体现本文描述的方法或功能中的任何一或多者的一或多个指令集1126或软件。指令1126还可以在由计算机系统1100执行所述指令期间完全或至少部分地驻留在主存储器1104内和/或处理装置1102内,主存储器1104和处理装置1102也构成机器可读存储介质。机器可读存储介质1124、数据存储系统1118和/或主存储器1104可以与图1的存储器子系统110相对应。
在实施例中,指令1126包含用于实施与基于子组的损耗均衡器(例如,图1的基于子组的损耗均衡器113)相对应的功能性的指令。尽管在示例实施例中将机器可读存储介质1124示为单个介质,但是术语“机器可读存储介质”应被认为包含存储一或多个指令集的单个介质或多个介质。术语“机器可读存储介质”也应被认为包含能够存储或编码指令集以供机器执行并且使机器执行本公开的方法中的任何一或多种的任何介质。相应地,术语“机器可读存储介质”应被视为包含但不限于固态存储器、光介质和磁介质。
已经根据对计算机存储器内的数据位的操作的算法和符号表示来呈现前述详细描述的一些部分。这些算法描述和表示是由数据处理领域的技术人员使用来最有效地将其工作实质传达给本领域其它技术人员的方式。算法在此并且通常被认为是导致期望结果的自洽操作序列。操作是需要物理地操纵物理量的那些操作。通常,尽管不是必须的,但是这些量采取能够被存储、组合、比较和/或以其它方式操纵的电或磁信号的形式。已经证明,有时原则上出于通用的原因将这些信号称为位、数据、值、元素、符号、字符、项、数量等是方便的。
然而,应当牢记,所有这些或类似术语将与适当的物理量相关联并且仅仅是应用于这些量的方便标签。本公开可以指代计算机系统或类似的电子计算装置的动作和过程,所述计算机系统或类似的电子计算装置将被表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操纵和变换为被类似地表示为计算机系统的寄存器和存储器或其它此类信息存储系统内的物理量的其它数据。
本公开还涉及一种用于执行在本文描述的操作的设备。这种设备可以被具体构造用于预期目的,或者它可以包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可以存储在计算机可读存储介质中,所述计算机可读存储介质诸如但不限于包含软盘、光盘、CD-ROM、磁光盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡的任何类型的磁盘和/或适合于存储电子指令的任何类型的介质,各自耦合到计算机系统总线。
本文呈现的算法和显示与任何特定计算机或其它设备没有固有的关联。各种通用系统可以与根据本文的教导的程序一起使用,或者可以证明构造更专用的设备来执行方法是方便的。如本公开中所阐述的,将出现用于各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应当明白,可以使用各种编程语言来实施如本文所述的本公开的教导。
本公开可以被提供作为计算机程序产品或软件,所述计算机程序产品或软件可以包含其上存储有指令的机器可读介质,所述指令可以用于对计算机系统(或其它电子装置或多个装置)进行编程以执行根据本公开的过程。机器可读介质包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施方案中,机器可读(例如,计算机可读)介质包含机器可读(例如,计算机可读)存储介质,诸如ROM、RAM、磁盘存储介质、光存储介质、闪存存储器装置等。
在前述说明书中,已经描述了本公开的一些示例实施方案。显而易见的是,在不脱离如所附权利要求中阐述的本公开的更宽范围和精神的情况下,可以对其进行各种修改。相应地,应以说明性意义而不是限制性意义来理解说明书和附图。以下是本公开的实施方案的示例的非穷举性列表。
示例1是一种系统,所述系统包含:多个存储器部件,每个存储器部件包含多个管理组,每个管理组包含多个子组;以及处理装置,与所述多个存储器部件可操作地耦合以执行损耗均衡操作,所述损耗均衡操作包含:为所述多个存储器部件中的存储器部件的所述管理组中的每个的所述子组中的每个维持子组级DWC;以及结合对所述存储器部件的第一管理组的第一子组的第一写操作来确定所述第一子组的第一子组级DWC等于管理组移动阈值,并且响应地执行一或多个管理组翻转操作的集合,其中所述管理组翻转操作集合包含触发从所述第一管理组到所述存储器部件的第二管理组的管理组移动操作。
示例2是示例1的主题,其中所述管理组翻转操作集合进一步包括为所述第一管理组的所述子组中的每个重置所述子组级DWC。
示例3是示例1或示例2的主题,其中所述损耗均衡操作进一步包含:为所述存储器部件的所述管理组中的每个维持管理组级DWC,并且其中确定所述第一子组级DWC等于所述管理组移动阈值包含确定:(i)所述第一子组级DWC等于子组级DWC最大值;以及(ii)所述第一管理组的第一管理组级DWC等于管理组级DWC最大值。
示例4是示例3的主题,其中所述管理组级DWC和所述子组级DWC被维持在存储在所述处理装置上的管理表中。
示例5是示例3或示例4的主题,其中所述管理组翻转操作集合进一步包含:重置所述第一管理组级DWC;以及为所述第一管理组的所述子组中的每个重置所述子组级DWC。
示例6是示例3至5中任一项的主题,其中所述损耗均衡操作集合进一步包含:结合对所述第一子组的第二写操作来确定所述第一子组级DWC小于所述子组级DWC最大值,并且响应地将所述第一子组级DWC递增。
示例7是示例3至6中任一项的主题,其中所述损耗均衡操作进一步包含:结合对所述第一子组的第三写操作来确定:(i)所述第一子组级DWC等于所述子组级DWC最大值;以及(ii)所述第一管理组级DWC小于所述管理组级DWC最大值,并且响应地(i)为所述第一管理组的所述子组中的每个重置所述子组级DWC;以及(ii)将所述第一管理组级DWC递增。
示例8是示例1至7中任一项的主题,其中所述损耗均衡操作进一步包含为所述存储器部件的所述管理组中的每个维持LWC。
示例9是示例8的主题,其中每个LWC具有MSB部分和LSB部分;单个共享LWC基数表示所述存储器部件的所述管理组中的全部的所述LWC的所述MSB部分;单独的管理组特定LWC偏移量表示所述存储器部件的所述管理组的所述LWC的所述LSB部分;并且所述管理组翻转操作集合进一步包含将所述第一管理组的第一LWC递增。
示例10是示例9的主题,其中所述LWC偏移量存储在所述处理装置上的管理表中;并且所述共享LWC基数存储在所述处理装置上的所述管理表之外。
示例11是示例9或示例10的主题,其中将所述第一LWC递增包含:确定所述第一管理组的第一LWC偏移量是否小于或等于LWC偏移量最大值;如果所述第一LWC偏移量小于所述LWC偏移量最大值,则将所述第一LWC偏移量递增;并且如果所述第一LWC偏移量等于所述LWC偏移量最大值,则(i)将所述存储器部件的所述管理组中的每个的所述LWC偏移量减小LWC基数增量大小;以及(ii)将所述存储器部件的所述共享LWC基数增大所述LWC基数增量大小。
示例12是示例11的主题,其中将所述第一LWC递增进一步包含:如果所述第一LWC偏移量小于所述LWC偏移量最大值,则确定所述第一LWC偏移量是否等于LWC偏移量检查阈值,并且如果是,则确定第一存储器部件的所述LWC偏移量中除所述第一LWC偏移量之外的至少一个是否小于LWC偏移量范围与所述LWC基数增量大小之间的差值,并且如果是,则对所述处理装置的固件触发LWC偏移量不平衡事件。
示例13是一种方法,所述方法包含:为存储器部件的多个管理组中的每个的多个子组中的每个维持子组级DWC;以及结合对所述存储器部件的第一管理组的第一子组的第一写操作来确定所述第一子组的第一子组级DWC等于管理组移动阈值,并且响应地执行一或多个管理组翻转操作的集合,其中所述管理组翻转操作集合包含触发从所述第一管理组到所述存储器部件的第二管理组的管理组移动操作。
示例14是示例13的主题,进一步包含为所述存储器部件的所述管理组中的每个维持管理组级DWC,其中确定所述第一子组级DWC等于所述管理组移动阈值包含确定:(i)所述第一子组级DWC等于子组级DWC最大值;以及(ii)所述第一管理组的第一管理组级DWC等于管理组级DWC最大值。
示例15是示例13或示例14的主题,进一步包含结合对所述第一子组的第二写操作来确定所述第一子组级DWC小于所述子组级DWC最大值,并且响应地将所述第一子组级DWC递增。
示例16是示例14或示例15的主题,进一步包含结合对所述第一子组的第三写操作来确定:(i)所述第一子组级DWC等于所述子组级DWC最大值;以及(ii)所述第一管理组级DWC小于所述管理组级DWC最大值,并且响应地(i)为所述第一管理组的所述子组中的每个重置所述子组级DWC;以及(ii)将所述第一管理组级DWC递增。
示例17是示例13至16中任一项的主题,进一步包含为所述存储器部件的所述管理组中的每个维持LWC。
示例18是示例17的主题,其中每个LWC具有MSB部分和LSB部分;单个共享LWC基数表示所述存储器部件的所述管理组中的全部的所述LWC的所述MSB部分;单独的管理组特定LWC偏移量表示所述存储器部件的所述管理组的所述LWC的所述LSB部分;并且所述管理组翻转操作集合进一步包含将所述第一管理组的第一LWC递增。
示例19是示例18的主题,其中将所述第一LWC递增包含:确定所述第一管理组的第一LWC偏移量是否小于或等于LWC偏移量最大值;如果所述第一LWC偏移量小于所述LWC偏移量最大值,则将所述第一LWC偏移量递增;并且如果所述第一LWC偏移量等于所述LWC偏移量最大值,则(i)将所述存储器部件的所述管理组中的每个的所述LWC偏移量减小LWC基数增量大小;以及(ii)将所述存储器部件的所述共享LWC基数增大所述LWC基数增量大小。
示例20是一种含有指令的非暂时性机器可读存储介质,所述指令在由处理装置执行时使所述处理装置执行包含以下各项的操作:为存储器部件的多个管理组中的每个的多个子组中的每个维持子组级DWC;以及结合对所述存储器部件的第一管理组的第一子组的第一写操作来确定所述第一子组的第一子组级DWC等于管理组移动阈值,并且响应地执行一或多个管理组翻转操作的集合,其中所述管理组翻转操作集合包含触发从所述第一管理组到所述存储器部件的第二管理组的管理组移动操作。
Claims (20)
1.一种系统,包括:
多个存储器部件,每个存储器部件包括多个管理组,每个管理组包含多个子组;以及
处理装置,与所述多个存储器部件可操作地耦合以执行损耗均衡操作,所述损耗均衡操作包括:
为所述多个存储器部件中的存储器部件的所述管理组中的每个的所述子组中的每个维持子组级增量写计数器DWC;以及
结合对所述存储器部件的第一管理组的第一子组的第一写操作来确定所述第一子组的第一子组级DWC等于管理组移动阈值,并且响应地执行一或多个管理组翻转操作的集合,
其中所述管理组翻转操作集合包括触发从所述第一管理组到所述存储器部件的第二管理组的管理组移动操作。
2.根据权利要求1所述的系统,其中所述管理组翻转操作集合进一步包括为所述第一管理组的所述子组中的每个重置所述子组级DWC。
3.根据权利要求1所述的系统,所述损耗均衡操作进一步包括:
为所述存储器部件的所述管理组中的每个维持管理组级DWC,
其中确定所述第一子组级DWC等于所述管理组移动阈值包括确定:
所述第一子组级DWC等于子组级DWC最大值;以及
所述第一管理组的第一管理组级DWC等于管理组级DWC最大值。
4.根据权利要求3所述的系统,其中所述管理组级DWC和所述子组级DWC被维持在存储在所述处理装置上的管理表中。
5.根据权利要求3所述的系统,其中所述管理组翻转操作集合进一步包括:
重置所述第一管理组级DWC;以及
为所述第一管理组的所述子组中的每个重置所述子组级DWC。
6.根据权利要求3所述的系统,所述损耗均衡操作进一步包括:
结合对所述第一子组的第二写操作来确定所述第一子组级DWC小于所述子组级DWC最大值,并且响应地将所述第一子组级DWC递增。
7.根据权利要求3所述的系统,所述损耗均衡操作进一步包括:
结合对所述第一子组的第三写操作来确定:
所述第一子组级DWC等于所述子组级DWC最大值;以及
所述第一管理组级DWC小于所述管理组级DWC最大值,
并且响应地:
为所述第一管理组的所述子组中的每个重置所述子组级DWC;以及
将所述第一管理组级DWC递增。
8.根据权利要求1所述的系统,所述损耗均衡操作进一步包括为所述存储器部件的所述管理组中的每个维持寿命写计数器LWC。
9.根据权利要求8所述的系统,其中:
每个LWC具有最高有效位MSB部分和最低有效位LSB部分;
单个共享LWC基数表示所述存储器部件的所述管理组中的全部的所述LWC的所述MSB部分;
单独的管理组特定LWC偏移量表示所述存储器部件的所述管理组的所述LWC的所述LSB部分;并且
所述管理组翻转操作集合进一步包括将所述第一管理组的第一LWC递增。
10.根据权利要求9所述的系统,其中:
所述LWC偏移量存储在所述处理装置上的管理表中;并且
所述共享LWC基数存储在所述处理装置上的所述管理表之外。
11.根据权利要求9所述的系统,其中将所述第一LWC递增包括:
确定所述第一管理组的第一LWC偏移量是否小于或等于LWC偏移量最大值;
如果所述第一LWC偏移量小于所述LWC偏移量最大值,则:
将所述第一LWC偏移量递增;并且
如果所述第一LWC偏移量等于所述LWC偏移量最大值,则:
将所述存储器部件的所述管理组中的每个的所述LWC偏移量减小LWC基数增量大小;以及
将所述存储器部件的所述共享LWC基数增大所述LWC基数增量大小。
12.根据权利要求11所述的系统,其中将所述第一LWC递增进一步包括:
如果所述第一LWC偏移量小于所述LWC偏移量最大值,则:
确定所述第一LWC偏移量是否等于LWC偏移量检查阈值,并且如果是,则:
确定第一存储器部件的所述LWC偏移量中除所述第一LWC偏移量之外的至少一个是否小于LWC偏移量范围与所述LWC基数增量大小之间的差值,
并且如果是,则对所述处理装置的固件触发LWC偏移量不平衡事件。
13.一种方法,包括:
为存储器部件的多个管理组中的每个的多个子组中的每个维持子组级增量写计数器DWC;以及
结合对所述存储器部件的第一管理组的第一子组的第一写操作来确定所述第一子组的第一子组级DWC等于管理组移动阈值,并且响应地执行一或多个管理组翻转操作的集合,
其中所述管理组翻转操作集合包括触发从所述第一管理组到所述存储器部件的第二管理组的管理组移动操作。
14.根据权利要求13所述的方法,进一步包括:
为所述存储器部件的所述管理组中的每个维持管理组级DWC,
其中确定所述第一子组级DWC等于所述管理组移动阈值包括确定:
所述第一子组级DWC等于子组级DWC最大值;以及
所述第一管理组的第一管理组级DWC等于管理组级DWC最大值。
15.根据权利要求14所述的方法,进一步包括:
结合对所述第一子组的第二写操作来确定所述第一子组级DWC小于所述子组级DWC最大值,并且响应地将所述第一子组级DWC递增。
16.根据权利要求14所述的方法,进一步包括:
结合对所述第一子组的第三写操作来确定:
所述第一子组级DWC等于所述子组级DWC最大值;以及
所述第一管理组级DWC小于所述管理组级DWC最大值,
并且响应地:
为所述第一管理组的所述子组中的每个重置所述子组级DWC;以及
将所述第一管理组级DWC递增。
17.根据权利要求13所述的方法,进一步包括为所述存储器部件的所述管理组中的每个维持寿命写计数器LWC。
18.根据权利要求17所述的方法,其中:
每个LWC具有最高有效位MSB部分和最低有效位LSB部分;
单个共享LWC基数表示所述存储器部件的所述管理组中的全部的所述LWC的所述MSB部分;
单独的管理组特定LWC偏移量表示所述存储器部件的所述管理组的所述LWC的所述LSB部分;并且
所述管理组翻转操作集合进一步包括将所述第一管理组的第一LWC递增。
19.根据权利要求18所述的方法,其中将所述第一LWC递增包括:
确定所述第一管理组的第一LWC偏移量是否小于或等于LWC偏移量最大值;如果所述第一LWC偏移量小于所述LWC偏移量最大值,则:
将所述第一LWC偏移量递增;并且
如果所述第一LWC偏移量等于所述LWC偏移量最大值,则:
将所述存储器部件的所述管理组中的每个的所述LWC偏移量减小LWC基数增量大小;以及
将所述存储器部件的所述共享LWC基数增大所述LWC基数增量大小。
20.一种含有指令的非暂时性机器可读存储介质,所述指令在由处理装置执行时使所述处理装置执行包括以下各项的操作:
为存储器部件的多个管理组中的每个的多个子组中的每个维持子组级增量写计数器DWC;以及
结合对所述存储器部件的第一管理组的第一子组的第一写操作来确定所述第一子组的第一子组级DWC等于管理组移动阈值,并且响应地执行一或多个管理组翻转操作的集合,
其中所述管理组翻转操作集合包括触发从所述第一管理组到所述存储器部件的第二管理组的管理组移动操作。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962874294P | 2019-07-15 | 2019-07-15 | |
US62/874,294 | 2019-07-15 | ||
US16/797,650 | 2020-02-21 | ||
US16/797,650 US11360885B2 (en) | 2019-07-15 | 2020-02-21 | Wear leveling based on sub-group write counts in a memory sub-system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112230845A true CN112230845A (zh) | 2021-01-15 |
CN112230845B CN112230845B (zh) | 2024-06-14 |
Family
ID=74115366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010681763.2A Active CN112230845B (zh) | 2019-07-15 | 2020-07-15 | 存储器子系统中基于子组写计数的损耗均衡 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11789861B2 (zh) |
CN (1) | CN112230845B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1871592A (zh) * | 2003-10-20 | 2006-11-29 | 爱特梅尔股份有限公司 | 用于增强存储器单元耐久性的方法和系统 |
US20070294490A1 (en) * | 2006-06-20 | 2007-12-20 | International Business Machines Corporation | System and Method of Updating a Memory to Maintain Even Wear |
US20120278543A1 (en) * | 2007-02-22 | 2012-11-01 | Super Talent Electronics, Inc. | Flash-Memory Device with RAID-type Controller |
US20140181596A1 (en) * | 2012-12-21 | 2014-06-26 | Stefan Rusu | Wear-out equalization techniques for multiple functional units |
CN106462500A (zh) * | 2014-05-28 | 2017-02-22 | 美光科技有限公司 | 用于执行损耗均衡操作的设备及方法 |
US20180187622A1 (en) * | 2017-01-04 | 2018-07-05 | Honeywell International Inc. | System and method for evaluating chip zap data |
CN108959112A (zh) * | 2017-05-08 | 2018-12-07 | 爱思开海力士有限公司 | 存储系统及使用其的损耗均衡方法 |
US10248333B1 (en) * | 2017-02-07 | 2019-04-02 | Crossbar, Inc. | Write distribution techniques for two-terminal memory wear leveling |
CN109710177A (zh) * | 2017-10-26 | 2019-05-03 | 爱思开海力士有限公司 | 用于嵌入式系统的事件管理 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8035650B2 (en) | 2006-07-25 | 2011-10-11 | Qualcomm Incorporated | Tiled cache for multiple software programs |
DE112010003345B4 (de) | 2009-08-21 | 2017-07-27 | International Business Machines Corporation | Datenspeichersystem und Verfahren für das Betreiben eines Datenspeichersystems |
US10860219B2 (en) * | 2018-10-05 | 2020-12-08 | Micron Technology, Inc. | Performing hybrid wear leveling operations based on a sub-total write counter |
US11360885B2 (en) | 2019-07-15 | 2022-06-14 | Micron Technology, Inc. | Wear leveling based on sub-group write counts in a memory sub-system |
-
2020
- 2020-07-15 CN CN202010681763.2A patent/CN112230845B/zh active Active
-
2022
- 2022-05-12 US US17/742,896 patent/US11789861B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1871592A (zh) * | 2003-10-20 | 2006-11-29 | 爱特梅尔股份有限公司 | 用于增强存储器单元耐久性的方法和系统 |
US20070294490A1 (en) * | 2006-06-20 | 2007-12-20 | International Business Machines Corporation | System and Method of Updating a Memory to Maintain Even Wear |
US20120278543A1 (en) * | 2007-02-22 | 2012-11-01 | Super Talent Electronics, Inc. | Flash-Memory Device with RAID-type Controller |
US20140181596A1 (en) * | 2012-12-21 | 2014-06-26 | Stefan Rusu | Wear-out equalization techniques for multiple functional units |
CN106462500A (zh) * | 2014-05-28 | 2017-02-22 | 美光科技有限公司 | 用于执行损耗均衡操作的设备及方法 |
US20180187622A1 (en) * | 2017-01-04 | 2018-07-05 | Honeywell International Inc. | System and method for evaluating chip zap data |
US10248333B1 (en) * | 2017-02-07 | 2019-04-02 | Crossbar, Inc. | Write distribution techniques for two-terminal memory wear leveling |
CN108959112A (zh) * | 2017-05-08 | 2018-12-07 | 爱思开海力士有限公司 | 存储系统及使用其的损耗均衡方法 |
CN109710177A (zh) * | 2017-10-26 | 2019-05-03 | 爱思开海力士有限公司 | 用于嵌入式系统的事件管理 |
Also Published As
Publication number | Publication date |
---|---|
US20220269598A1 (en) | 2022-08-25 |
CN112230845B (zh) | 2024-06-14 |
US11789861B2 (en) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113015965B (zh) | 基于小计写入计数器执行混合损耗均衡操作 | |
CN112689829B (zh) | 用于就地数据替代媒体的混合式耗损均衡 | |
CN110603532A (zh) | 存储器管理 | |
US11640354B2 (en) | Logical-to-physical mapping of data groups with data locality | |
CN115699185A (zh) | 在存储装置上每单元实施可变数目的位 | |
CN114097033A (zh) | 存储器子系统的被取消映射分配单元的管理 | |
CN112740189B (zh) | 非易失性存储器的多级损耗均衡 | |
CN112166405B (zh) | 在存储器系统中分配可变媒体类型的存储器装置 | |
US11360885B2 (en) | Wear leveling based on sub-group write counts in a memory sub-system | |
US11163488B2 (en) | Extended cross-temperature handling in a memory sub-system | |
CN112230843B (zh) | 限制热-冷交换磨损均衡 | |
CN113946283A (zh) | 存储器装置的分区命名空间中的部分区存储器单元处置 | |
CN112349334A (zh) | 跨越块池的耗损均衡 | |
CN112328508B (zh) | 多层存储器中的层交错 | |
CN115705159A (zh) | 存储器子系统中双字的智能交换和有效编码 | |
CN112230845B (zh) | 存储器子系统中基于子组写计数的损耗均衡 | |
US12093554B2 (en) | Memory system and operating method of memory system | |
CN113094293B (zh) | 存储器系统及相关方法和计算机可读存储介质 | |
US20210406169A1 (en) | Self-adaptive wear leveling method and algorithm | |
CN115641899A (zh) | 用于监测混合模式块的存储器子系统 | |
CN115457999A (zh) | 存储器装置中的扫描片段 | |
CN112231252A (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 |