CN113015965B - 基于小计写入计数器执行混合损耗均衡操作 - Google Patents
基于小计写入计数器执行混合损耗均衡操作 Download PDFInfo
- Publication number
- CN113015965B CN113015965B CN201980074491.5A CN201980074491A CN113015965B CN 113015965 B CN113015965 B CN 113015965B CN 201980074491 A CN201980074491 A CN 201980074491A CN 113015965 B CN113015965 B CN 113015965B
- Authority
- CN
- China
- Prior art keywords
- group
- data
- write counter
- data block
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000015654 memory Effects 0.000 claims description 191
- 238000013523 data management Methods 0.000 claims description 80
- 238000000034 method Methods 0.000 claims description 77
- 238000012545 processing Methods 0.000 claims description 65
- 238000013507 mapping Methods 0.000 claims description 26
- 230000006870 function Effects 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 22
- 238000007726 management method Methods 0.000 description 21
- 230000003321 amplification Effects 0.000 description 12
- 238000003199 nucleic acid amplification method Methods 0.000 description 12
- 230000003287 optical effect Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
将数据从映射的第二多个数据块群组中的第二数据块群组复制到未映射的第一组数据块群组中的第一数据块群组,以将所述第一数据块群组包含在所述映射的第二组数据块群组中。复位与所述第一数据块群组相关联的小计写入计数器。所述小计写入计数器的值指示自所述第一数据块群组包含在所述第二组数据块群组中以来对所述第一数据块群组执行的写入操作的数量。基于所述小计写入计数器对所述第一数据块群组执行损耗均衡操作。
Description
技术领域
本公开的实施例总体上涉及存储器子系统,并且更具体地涉及基于小计写入计数器执行混合损耗均衡操作。
背景技术
存储器子系统可以是如固态驱动器(SSD)或硬盘驱动器(HDD)等存储系统。存储器子系统可以是存储器模块,如双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)或非易失性双列直插式存储器模块(NVDIMM)。存储器子系统可以包含存储数据的一或多个存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。通常,主机系统可以利用存储器子系统来将数据存储在存储器组件处并从存储器组件中检索数据。
附图说明
根据下文给出的详细描述和本公开的各个实施例的附图,将更充分地理解本公开。
图1展示了根据本公开的一些实施例的包含存储器子系统的示例计算环境。
图2是根据本公开的一些实施例的用于基于小计写入计数器执行SMU间损耗均衡操作的示例方法的流程图。
图3是根据本公开的一些实施例的用于通过将数据从一个数据块群组复制到另一个数据块群组并且复位与所述另一个数据块群组相关联的小计写入计数器来执行SMU间损耗均衡操作的示例方法的流程图。
图4A展示了根据本公开的一些实施例的使用一组映射的数据块群组和一组未映射的数据块群组的SMU间损耗均衡。
图4B展示了根据本公开的一些实施例的要使用间接映射执行的SMU间损耗均衡。
图5是根据本公开的一些实施例的用于通过确定与数据块群组相关联的基址指针的新地址来执行SMU内损耗均衡操作的示例方法的流程图。
图6展示了根据本公开的一些实施例的使用与数据块群组相关联的基址指针的SMU内损耗均衡。
图7是根据本公开的一些实施例的示例计算机系统的框图。
具体实施方式
本公开的各方面涉及基于小计写入计数器执行混合损耗均衡操作。存储器子系统在下文中也被称为“存储器装置”。存储器子系统的实例是通过外围互连(例如,输入/输出总线、存储区域网络)耦接到中央处理单元(CPU)的存储装置。存储装置的实例包含固态驱动器(SSD)、闪存驱动器、通用串行总线(USB)闪存驱动器和硬盘驱动器(HDD)。存储器子系统的另一个实例是通过存储器总线耦接到CPU的存储器模块。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)、非易失性双列直插式存储器模块(NVDIMM)等。在一些实施例中,存储器子系统可以是混合存储器/存储子系统。通常,主机系统可以利用包含一或多个存储器组件的存储器子系统。主机系统可以提供要存储在存储器子系统处的数据,并且可以请求从存储器子系统中检索的数据。
存储器子系统使用的存储器组件可以具有在存储器子系统的操作时提出挑战的特定特性。例如,如非易失性存储器组件等一些存储器组件具有有限的耐久性。在物理损耗导致存储器组件发生故障之前,只能有限次数地写入、读取和/或擦除存储器组件的单独区段、数据单元或块。为了抵消存储器组件的这种有限的耐久性,已经开发了用于管理存储器组件上的损耗的技术。
管理常规存储器子系统中耐久性的一种技术是损耗均衡。损耗均衡操作可以尝试跨存储器组件均匀地分布读取、写入和擦除操作并且因此分布对应的物理损耗。一个存储器组件可以分为一定数量的单独的数据单元,如存储器组件的页或块,所述数据单元各自经历物理损耗。这些数据单元可以表示可以在单个操作中写入或擦除的存储器组件的单独的区段。总写入计数(例如,在数据单元的寿命期间对数据单元执行将数据写入数据单元的写入操作的次数)、总读取计数(例如,在数据单元的寿命期间对数据单元执行从数据单元读取数据的读取操作的次数)或总擦除计数(例如,在数据单元的寿命期间对数据单元执行从数据单元擦除数据的擦除操作的次数)可以是对存储器组件的数据单元上的损耗的指示。因此,常规损耗均衡技术经常使用分类过程来发现具有高的总读取计数或总写入计数的数据单元和具有低的总读取计数或总写入计数的数据单元。可以将来自具有高的总读取或总写入计数的数据单元的数据与具有低的总读取或总写入计数的数据单元的数据进行交换,以尝试跨存储器组件的数据单元均匀地分布损耗。
不同类型的存储器组件可以包含不同数量的数据单元。例如,非易失性存储器单元的交叉点阵列可以具有比基于闪速的存储器组件显著更小的数据单元大小,并且因此对于具有类似容量的存储器组件可以具有显著更大数量的数据单元。非易失性存储器单元的交叉点阵列可以结合可堆叠交叉网格数据存取阵列基于体电阻的变化来执行位存储。另外,与许多基于闪速的存储器相比,交叉点非易失性存储器可以执行写入原地(in-place)操作,其中可以对非易失性存储器单元进行编程而无需先前擦除非易失性存储器单元。因此,此类存储器组件可以执行“原地”数据替换。由于此类存储器组件中的数据单元的数量很大,因此大量计算资源(例如,处理资源和存储器资源)用于检索、存储和分类与存储器组件相关联的各种数据单元。另外,检索、存储和分类所述大量数据单元花费成比例地大量的时间,这对存储器子系统的等待时间有显著贡献。
由于某些类型的存储器的大量数据单元,因此可以将数据单元分组为数据单元组中。将数据单元分组在一起的一个目的可以是节省元数据空间并且减少维护和管理大量数据单元的系统开销。数据单元组在本文中可以称为超级管理单元(SMU)、数据管理单元组、超级块或数据块群组。数据单元在本文中可以称为数据管理单元或数据块。在某些类型的存储器中,超额配置提供了比逻辑容量更多的物理块。因此,可以存在一些映射到数据的数据块群组和一些未映射到数据的数据块群组。映射的数据块群组可以包含当前映射到数据(例如,存储数据)的数据块,并且未映射的数据块群组可以包含当前未映射到数据(例如,非存储数据)的数据块。可以将映射的数据块群组组织成一组或池映射的数据块群组,并且可以将未映射的数据块群组组织成一组或池未映射的数据块群组。
可以使用各种条件来确定何时通过将数据从所述映射的数据块群组中的数据块群组复制到所述未映射的数据块群组中的数据块群组来将所述映射的数据块群组中的所述数据块群组与所述未映射的数据块群组中的所述数据块群组进行交换。在常规存储器子系统中,所述条件依赖于数据块群组的总计写入计数器(例如,在数据块群组的寿命期间所述数据块群组的历史写入计数)。使用所述数据块群组的总计写入计数器在所述组映射的数据块群组与所述组未映射的数据块群组之间移动数据块群组可以导致写入放大。写入放大可以是指增加执行写入操作的频率。例如,当第一数据块群组变“冷”时,第一条件(例如,最低写入计数条件或“冷”交换条件)可以指定将所述组映射的数据块群组中的第一数据块群组与所述组未映射的数据块群组中的第二数据块群组交换。变“冷”可以是指第一数据块群组相对于所述组映射的数据块群组中的其它数据块群组具有最小总计写入计数器,并且其最小总计写入计数器低于所述第二数据块群组的总计写入计数器,所述第二组数据块的总计写入计数器相对于所述组未映射的数据块群组中的其它数据块群组是最小的。
然而,将数据复制到包含在第二数据块群组中的大量数据块以将第二数据块群组包含在所述组映射的数据块群组中可以使大量写入与所述大量数据块相称。因此,将数据块群组的写入计数添加到所述组映射的数据块群组可以增加到满足第二条件(例如,最高写入计数条件或“热”交换条件)的值。在没有用于检测第二数据块群组最近是否写入(例如,是“热”)的机制的情况下,可以选择第二数据块群组以将其数据复制到所述组未映射的数据块群组中的另一个数据组,并且损耗均衡没有实现。另外,写入放大可以变得无界定。
进一步地,损耗均衡的另一个目标可以是尝试收敛数据块群组的总计写入计数器之间的差,其中数据块群组的每个总计写入计数器是包含在所述数据块群组中的相应数据块的总计写入计数器的总和,和/或尝试收敛在数据块群组中的每个数据块群组内的单独的数据块的总计写入计数器之间的差。如上所述,在仅依赖于总计写入计数器来满足条件的常规存储器子系统中,写入放大可能会导致数据块群组的某些总计写入计数器背离其它数据块群组的总计写入计数器的其余部分。因此,具有较高总计写入计数器的某些数据块群组可以比其它数据块群组更快速地降级。同样,随着执行的写入增多,无界定的写入放大可能会导致存储器子系统的性能下降,并且在执行写入时,随着带宽下降,连接到存储器子系统的主机系统会经历等待时间。由于没有实现损耗均衡,因此存储器组件的整体寿命可能会缩短。
本公开的各方面通过实施基于小计写入计数器执行混合损耗均衡操作来解决上述缺陷和其它缺陷。在一个实施方案中,混合损耗均衡利用具有不同大小的数据单元水平的层级。例如,第一水平可以表示单独的数据单元,如存储器组件的数据块或页,而第二水平可以表示多个数据单元或数据块群组。
可以使用不同的损耗均衡技术在层级的每个水平上执行损耗均衡。例如,混合损耗均衡可以包含通过基于条件(例如,当在第二水平下的损耗均衡发生时)或其它频率在数据块群组内的数据块之间移动基址指针的第一水平下的损耗均衡(SMU内损耗均衡)以及在与映射的数据块群组相关联的至少小计写入计数器或新写入计数器超出阈值之后,使用由映射数据结构(例如,查询表)实施的间接完全相关联映射的第二水平下的损耗均衡(SMU间损耗均衡)。小计写入计数器包含值,所述值指示自所述数据块群组变为映射到数据(如,将数据从另一个数据块群组复制到映射的数据块群组)并且从所述组未映射的数据块群组交换为所述组映射的数据块群组以来对映射的数据块群组执行的写入操作的数量。
SMU内损耗均衡可以包含将基址指针的关联从数据块群组中的一个数据块更改到数据块群组中的另一个数据块,以确保所述组中的数据块的总计写入计数器之间的差收敛到一定值或范围。基址指针可以表示与数据块群组相关联的一组索引中的第一索引。因此,每个SMU的元数据可以至少包含所述SMU的基址指针。可以使用包含确定性函数、映射函数、随机化函数、查询表或位图的一组地址确定技术中的至少一个,在SMU内确定基址指针的新地址。可以为数据块群组存储基址指针的新地址和一组地址确定技术中的地址确定技术的索引。对数据块群组中的数据块的逻辑地址的任何访问尝试可以至少使用基址指针的新地址和/或地址确定技术的索引来确定所请求的数据块的物理地址。在一些实施例中,当执行SMU间损耗均衡操作时,可以触发SMU内损耗均衡操作。
SMU间损耗均衡可以包含将映射(例如,存储数据)的SMU的数据块中的所有数据块交换为空闲(例如,未映射的并且未存储数据)的SMU的数据块。前者SMU变为空闲的SMU,而后者SMU变为映射的SMU。以这种方式,将所述组映射的SMU中的SMU包含在所述组未映射的SMU中,并且将所述组未映射的SMU中的SMU包含在所述组映射的SMU中。在一些实施例中,SMU的一个数据块一次可以与另一个SMU中的另一个数据块交换,而在其它实施例中,SMU的多个数据块可以与另一个SMU中的多个数据块同时交换。
在一些实施例中,除了基址指针外,其它元数据还可以与SMU中的每一个相关联,以使总计写入计数器之间的差能够收敛并且界定写入放大。例如,小计写入计数器或新写入计数器和总计写入计数器可以与每个SMU相关联。小计写入计数器可以包含值,所述值指示自将数据从另一个SMU复制到相应的SMU并且相应的SMU包含在所述组映射的SMU中以来对相应的SMU执行的写入操作的数量。也就是说,小计写入计数器可以包含值,所述值指示自相应的SMU从所述组未映射的SMU交换为所述组映射的SMU以来对相应的SMU执行的写入操作的数量。总计写入计数器可以包含值,所述值指示在SMU的寿命期间(例如,在将SMU移动到所述组映射的SMU之前以及自将SMU移动到所述组映射的SMU以来)SMU的总历史写入计数。在将数据从映射的SMU复制到未映射的SMU的任何时候,未映射的SMU都会变为映射的SMU,并且复位新的映射的SMU的小计写入计数器。而且,未复位新的映射的SMU的总计写入计数器。到所述组映射的SMU中的新的映射的SMU的另外的写入可以使小计写入计数器递增,并且使总计写入计数器递增。为了确保新的映射的SMU的数据在变为映射的SMU之后不会太快地复制到所述组未映射的SMU中的另一个SMU,当小计写入计数器超出作为第一阈值损耗条件的阈值时,可以对新的映射的SMU执行SMU间损耗均衡操作。以这种方式,可以检测SMU的“热度”,并且可以通过防止最近映射到数据的SMU在期望之前未映射到数据来界定写入放大。阈值可以是任何合适的数字并且可以是可调的。
在一些实施例中,可以基于小计写入计数器和总计写入计数器来执行损耗均衡操作。例如,除了满足第一阈值损耗条件外,另外的损耗级别条件还可以包含将SMU的总计写入计数器与另一个SMU进行比较,所述另一个SMU相对于在所述组映射的SMU和所述组未映射的SMU中的其它SMU具有最小总计写入计数器。可以作出关于总计写入计数器的值之间的差是否超出阈值的确定。如果小计写入计数器超出阈值并且总计写入计数器比另一个SMU的最小总计写入计数器大阈值,那么可以执行SMU间损耗均衡操作以将数据从所述组映射的SMU中的SMU复制到所述组未映射的SMU中的另一个SMU。
本公开的优点包含但不限于通过使用小计写入计数器来界定写入放大并且减少用于执行写入操作的等待时间来提高存储器子系统的性能。还可以通过界定通过混合损耗均衡操作执行的写入操作的量来改善主机系统与存储器子系统之间的带宽。由于执行更少的写入操作,因此可以降低执行损耗均衡的成本。而且,数据块群组的总计写入计数器之间的差和/或单独的数据块之间的差可以收敛到期望的值或范围,由此实现损耗均衡。实现损耗均衡可以导致扩展存储器组件的有用操作。
图1展示了根据本公开的一些实施例的包含存储器子系统110的示例计算环境100。存储器子系统110可以包含媒体,如存储器组件112A到112N。存储器组件112A到112N可以是易失性存储器组件、非易失性存储器组件或此类的组合。在一些实施例中,存储器子系统是存储系统。存储系统的实例是SSD。在一些实施例中,存储器子系统110是混合存储器/存储子系统。通常,计算环境100可以包含使用存储器子系统110的主机系统120。例如,主机系统120可以将数据写入存储器子系统110并且从存储器子系统110读取数据。
主机系统120可以是计算装置,如台式计算机、膝上型计算机、网络服务器、移动装置或包含存储器和处理装置的此类计算装置。主机系统120可以包含或耦接到存储器子系统110,使得主机系统120可以从存储器子系统110读取数据或将数据写入到所述存储器子系统。主机系统120可以通过物理主机接口耦接到存储器子系统110。如本文所使用的,“耦接到”通常是指组件之间的连接,所述连接可以是间接的通信连接或直接的通信连接(例如,无中间组件),无论是有线的或无线的,包含如电、光、磁性等连接。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接的SCSI(SAS)等。物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦接时,主机系统120可以进一步利用NVM快速(NVMe)接口以对存储器组件112A到112N进行访问。物理主机接口可以提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。
存储器组件112A到112N可以包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(NAND)型闪速存储器。存储器组件112A到112N中的每个存储器组件可以包含如单级单元(SLC)或多级单元(MLC)(例如,三级单元(TLC)或四级单元(QLC))等存储器单元的一或多个阵列。在一些实施例中,特定存储器组件可以包含存储器单元的SLC部分和MLC部分两者。存储器单元中的每个存储器单元可以存储主机系统120使用的数据的一或多个位(例如,数据块)。尽管描述了如与非型闪速存储器等非易失性存储器组件,但是存储器组件112A到112N可以基于如易失性存储器等任何其它类型的存储器。在一些实施例中,存储器组件112A到112N可以是但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、或非(NOR)闪速存储器、电可擦可编程只读存储器(EEPROM)以及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列与可堆叠交叉网格数据存取阵列结合可以基于体电阻的改变执行位存储。另外,与许多基于闪速的存储器相比,交叉点非易失性存储器可以执行写入原地(in-place)操作,其中可以对非易失性存储器单元进行编程而无需先前擦除非易失性存储器单元。此外,存储器组件112A到112N的存储器单元可以被分组为存储器页或数据块,所述存储器页或数据块可以是指用于存储数据的存储器组件的单元。
存储器系统控制器115(以下被称为“控制器”)可以与存储器组件112A到112N通信以执行如在存储器组件112A到112N处的读取数据、写入数据或擦除数据等操作以及其它此类操作。控制器115可以包含硬件,如一或多个集成电路和/或离散组件、缓冲存储器或其组合。控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。控制器115可以包含被配置成执行存储在本地存储器119中的指令的处理器(处理装置)117。在所展示的实例中,控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器被配置成存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流程和例程(包含处理存储器子系统110与主机系统120之间的通信)的指令。在一些实施例中,本地存储器119可以包含存储存储器指针、所获取数据等的存储器寄存器。本地存储器119还可以包含用于存储微代码的只读存储器(ROM)。虽然图1中的示例存储器子系统110已经被展示为包含控制器115,但是在本公开的另一个实施例中,存储器子系统110可以不包含控制器115,而是可以依赖于(例如,由外部主机或与存储器子系统分离的处理器或控制器提供的)外部控制。
通常,控制器115可以从主机系统120接收命令或操作并且可以将命令或操作转换为指令或适当的命令以实现对存储器组件112A到112N的期望访问。控制器115可以负责其它操作,如损耗均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作以及与存储器组件112A到112N相关联的逻辑块地址与物理块地址之间的地址转换。控制器115可以进一步包含主机接口电路系统以通过物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收的命令转换为命令指令以访问存储器组件112A到112N并将与存储器组件112A到112N相关联的响应转换为主机系统120的信息。
存储器子系统110还可以包含未展示的另外的电路系统或组件。在一些实施例中,存储器子系统110可以包含高速缓存或缓冲器(例如,DRAM)和可以从控制器115接收地址并对地址进行解码以对存储器组件112A到112N进行访问的地址电路系统(例如,行解码器和列解码器)。
存储器子系统110包含损耗均衡管理组件113,所述损耗均衡管理组件可以用于基于实现总计写入计数器差收敛和界定的写入放大的小计写入计数器来执行混合损耗均衡操作。在一些实施例中,控制器115包含损耗均衡管理组件113的至少一部分。例如,控制器115可以包含被配置成执行存储在本地存储器119中的用于执行本文描述的操作的指令的处理器117(处理装置)。在一些实施例中,损耗均衡管理组件113是主机系统120、应用或操作系统的一部分。
当跨存储器组件112A到112N执行混合损耗均衡操作时,损耗均衡管理组件113可以实现总计写入计数器差收敛和界定的写入放大。所执行的损耗均衡操作可以包含SMU内损耗均衡和SMU间损耗均衡。SMU内损耗均衡操作可以包含确定在某个频率下的与SMU相关联的基址指针的新地址。在一些实施例中,当执行SMU间损耗均衡操作时,可以执行SMU内损耗均衡操作。SMU间损耗均衡操作可以包含至少确定小计写入计数器何时超出阈值,所述小计写入计数器包含值,所述值指示自相关联的SMU包含在一组映射的SMU中一来对相关联的SMU执行的写入操作的数量。下文描述了关于损耗均衡管理组件113的操作的另外的细节。
图2是根据本公开的一些实施例的用于基于小计写入计数器执行SMU间损耗均衡操作的示例方法200的流程图。方法200可以由处理逻辑执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的损耗均衡管理组件113执行。尽管以特定序列或顺序示出,但除非另有指定,否则可以修改过程的顺序。因此,所展示的实施例应被理解为只是实例,并且所展示的过程可以以不同的顺序执行,并且一些过程可以并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流程是可能的。
在操作210处,处理装置将数据从映射的第二组数据块群组(例如,一组映射的SMU)中的第二数据块群组复制到未映射的第一组数据块群组(例如,一组未映射的SMU)中的第一数据块群组,以将所述第一数据块群组包含在所述映射的第二组数据块群组中。为了将所述第一数据块群组包含在所述第二组数据块群组中,处理装置可以将数据从映射的所述第二组数据块群组中的所述第二数据块群组复制到所述第一数据块群组,由此将所述第一数据块群组映射到数据。进一步地,作为任选的操作,处理装置可以从所述第二数据块群组中擦除数据。
在操作215处,处理装置更新映射数据结构(在图4B中描绘)中的相关联条目以反映所述第一数据块群组包含在所述第二组数据块群组中。在将数据复制到所述第一数据块群组之前,将所述第二组数据块群组的逻辑索引映射到正在存储数据的所述第二数据块群组。在将数据复制到所述第一数据块群组以将所述第二数据块群组包含在所述第二组数据块群组中时,损耗均衡管理组件113在映射数据结构中的一或多个条目中更新逻辑索引和逻辑块地址的从所述第二数据块群组的物理地址到所述第一数据块群组的物理地址的映射。在一些实施例中,可以更新映射的数据结构以用于从物理地址逆映射到逻辑地址。
在操作220处,当将数据复制到所述第一数据块群组并且所述第一数据块群组包含在所述第二组数据块群组中时,处理装置复位与所述第一数据块群组相关联的小计写入计数器。来自所述第一组和所述第二组的每个数据块群组可以与相应的小计写入计数器相关联。小计写入计数器可以包含在数据块群组的相应元数据中。小计写入计数器包含值,所述值指示自所述第一数据块群组包含在所述第二组数据块群组中以来对所述数据块群组的写入数量。小计写入计数器可以用于确保在数据块群组中的数据包含在所述第二组数据块群组中之后,所述数据块群组中的数据不会太快地复制到另一个数据块群组。也就是说,小计写入计数器可以用于检测数据块群组是否是“热”,并且可以通过阻止移动存储在所述数据块群组处的数据直到满足阈值条件来界定写入放大。进一步地,小计写入计数器可以通过控制在SMU间损耗均衡操作时交换数据块群组的频率来使所述数据块群组的总计写入计数器之间的差收敛到期望的值或范围。
主机系统120可以请求对所述第一数据块群组的一或多个写入。处理装置可以执行一或多个写入以将数据写入到所述第一数据块群组。处理装置可以基于所述一或多个写入一或多次递增小计写入计数器的值。写入还可以使与所述第一数据块群组相关联的总计写入计数器的值递增。总计写入计数器可以包含在所述数据块群组的元数据中。对于所述第一数据块群组,可以将总计写入计数器与小计写入计数器区分开,因为总计写入计数器可以包含指示在所述第一数据块群组的寿命期间对所述第一数据块群组的写入的历史总数的值。例如,总计写入计数器指示在所述第一数据块群组最近包含在所述第二组数据块群组中之前以及所述第一数据块群组最近包含在所述第二组数据块群组中之后的写入的数量。因此,当将数据从所述第二数据块群组复制到所述第一数据块群组时,总计写入计数器不会复位,并且所述第一数据块群组从包含在所述第一组数据块群组(例如,一组未映射的数据块群组)中交换为包含在所述第二组数据块群组(例如,一组映射的数据块群组)中。另外,当将第一数据块群组移动到所述第二组数据块群组时,总计写入计数器将递增所述第一数据块群组的大小,因为在移动期间,所述第一数据块群组中的每个数据块写入一次。所述第一组数据块群组和所述第二组数据块群组中的每个数据块群组可以与相应的总计写入计数器相关联。
在操作230处,处理装置基于小计写入计数器对所述第一数据块群组执行损耗均衡操作(例如,SMU间损耗均衡操作)。基于小计写入计数器对所述第一数据块群组执行损耗均衡操作可以包含确定所述第一数据块群组满足阈值损耗条件。阈值损耗条件可以包含小计写入计数器的值超出阈值。阈值可以是任何合适的量并且可以是可调的。例如,阈值可以初始设定位很小的值,并且可以随时间推移而增加,以将写入均匀地分布到所述第一数据块群组。可以逐渐增加阈值,因为随着存储器组件的单元经历的损耗增加,存储器组件可以容忍总计写入计数器之间的更大的差。在一个实例中,阈值可以设定为或基于所述数据块群组的大小。
在一些实施例中,处理装置可以基于与所述第一数据块群组相关联的小计写入计数器和总计写入计数器对所述第一数据块群组执行SMU间损耗均衡操作。当总计写入计数器的值超出另一个数据块群组的另一个总计写入计数器的值大于第一阈值并且小计写入计数器的值超出第二阈值时,处理装置可以确定是否满足阈值条件。总计写入计数器的值是相对于与所述第一组数据块群组和所述第二组数据块群组中的其它数据块群组相关联的总计写入计数器的值的最大值,并且所述另一个总计写入计数器的值是相对于与所述第一组数据块群组和所述第二组数据块群组中的所述其它数据块群组相关联的总计写入计数器的值的最小值(表示为总写入计数最大-总写入计数最小>阈值SMU)。
应当理解,与使用小计写入计数器和总计写入计数器两者来确定是否满足阈值条件相比,仅使用小计写入计数器来确定是否满足阈值条件可能会导致更频繁地执行SMU间损耗均衡操作。如下文进一步描述的,当触发SMU间损耗均衡时,可以触发SMU内损耗均衡操作。导致更频繁地执行SMU内损耗均衡操作可能会导致在SMU内的数据块间更均匀地分布写入,并且因此,当执行SMU内损耗均衡操作的频率与执行SMU间损耗均衡操作有关时,小计写入计数器可以用作用于确定阈值条件的标准。
在一些实施例中,除了至少基于SMU的小计写入计数器(例如,“热交换”条件)来在一组映射的SMU与一组未映射的SMU之间交换SMU之外,处理装置还可以交换变“冷”的SMU(例如,“冷交换”条件)。当SMU与相对于所述组映射的SMU中的其它SMU的最小总计写入计数器相关联并且所述SMU的最小总计写入计数器的值小于与所述组未映射的SMU中的另一个SMU相关联的最小总计写入计数器时,SMU可以是冷的。无论在“热交换”条件下使用哪种策略来交换SMU,执行上述在“冷交换”条件下的交换以使总计写入计数器之间的差能够收敛到一定范围或值。
图3是根据本公开的一些实施例的用于通过将数据从一个数据块群组复制到另一个数据块群组并且复位与所述另一个数据块群组相关联的第二小计写入计数器来执行SMU间损耗均衡操作的示例方法300的流程图。方法300可以由处理逻辑执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的损耗均衡管理组件113执行。尽管以特定序列或顺序示出,但除非另有指定,否则可以修改过程的顺序。因此,所展示的实施例应被理解为只是实例,并且所展示的过程可以以不同的顺序执行,并且一些过程可以并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流程是可能的。
在操作310处,处理装置基于第一写入计数器对数据块群组执行损耗均衡操作。可以如图2中的方法200的操作230执行操作310。操作310可以包含执行另外的操作320、330和340。
在操作320处,处理装置将第一数据块群组的数据复制到第一组数据块群组(例如,一组未映射的SMU)中的另一个数据块群组。因此,所述另一个数据块群组用数据进行映射并且包含在第二组数据块群组(例如,一组映射的SMU)中。
在操作325处,处理逻辑更新映射数据结构(在图4B中描绘)中的相关联条目以反映所述另一个数据块群组包含在第二组数据块群组中。例如,在将数据复制到所述另一个数据块群组时,损耗均衡管理组件113在映射数据结构中的条目中更新逻辑索引和逻辑块地址的从第一数据块群组的物理地址到所述另一个数据块群组的物理地址的映射。在一些实施例中,可以更新映射的数据结构以用于从物理地址逆映射到逻辑地址。
在操作330处,处理装置复位与所述另一个数据块群组相关联的第二小计写入计数器。第二小计写入计数器可以用于确保在将存储在所述另一个数据块群组处数据复制到所述另一个数据块群组之后,数据不会太快地复制到又另一个数据块群组。因此,可以针对所述另一个数据块群组界定写入放大,这可以增加带宽并减少存储器子系统110与主机系统120通信的等待时间。进一步地,将第二小计写入计数器与同其它数据组的组相关联的小计写入计数器结合使用,可以使与数据组的组相关联的总计写入计数器之间的差收敛并且由此扩展存储器组件112A到122N的寿命。
在操作340处,处理装置将数据从第一数据块群组中擦除,以使所述数据块群组包含在第一组数据块群组(例如,一组未映射的SMU)中。操作340是任选的,因为如交叉点阵列等原地存储器组件不需要擦除数据。换句话说,在将数据从第一数据块群组复制到所述另一个数据块群组之后,第一数据块群组不再映射到数据。第一数据块群组的小计写入计数器和第一数据块群组的总计写入计数器可以维持处于相同的值。当随后将不同的数据复制到第一数据块群组并且第一数据块群组再次包含在第二组数据块群组(例如,一组映射的SMU)中时,可以复位小计写入计数器而不复位总计写入计数器。
图4A展示了根据本公开的一些实施例的使用一组映射的数据块400和一组未映射的数据块420的SMU间损耗均衡。数据管理单元(DMU)是数据单元的一个实例。例如,数据管理单元可以是非易失性存储器的交叉点阵列的页(例如,可以写入或读取的最小数据单元)或基于闪存的存储器的数据块(例如,可以擦除的最小数据单元)。超级管理单元(SMU)可以包含数据管理单元组(例如,1000个DMU)。存储器组件112的所述数据管理单元组可以是存储器组件112的全部或大部分页或数据块。当SMU包含映射到数据的DMU时(用数据编程或可用于用数据编程),SMU可以被称为映射的SMU。当SMU包含未映射到数据的DMU(未用数据编程或无法由主机系统访问)或为空时,SMU可以被称为未映射的SMU。
图4A展示了映射的SMU 410和未映射的SMU 422的实例。映射的SMU 410包含许多映射的DMU 412、414、416和418。未映射的SMU 422也包含许多未映射的DMU424、426、428和430。映射的SMU 410可以包含在所述组映射的SMU 400中,并且未映射的SMU 422可以包含在所述组未映射的SMU 420中。分别在所述组映射的SMU和所述组未映射的SMU中仅描绘有限数量的映射的SMU和未映射的SMU,但是实际上,映射的SMU和未映射的SMU的任何数量可以包含在所述组映射的SMU和所述组未映射的SMU中。进一步地,映射的SMU和未映射的SMU中的每一个都可以包含任何数量的数据管理单元。
在一个实施例中,混合损耗均衡管理组件113可以通过将映射的SMU 410与未映射的SMU 422交换来执行SMU间损耗均衡。例如,当满足阈值条件时,如与映射的SMU410相关联的小计写入计数器超出阈值,可以将映射的SMU 410的数据复制到所述组未映射的SMU 420并且可以将未映射的SMU 422包含在所述组映射的SMU 400中。当SMU在所述组映射的SMU400与所述组未映射的SMU 420之间交换时,SMU间损耗均衡操作可以使用映射数据结构实施的间接完全相关联映射来存储SMU的逻辑地址到物理地址的映射。
在一些实施方案中,损耗均衡操作可以将具有高损耗度量的数据单元的数据重写到具有较低损耗度量的另一个数据单元,或者反之亦然(例如,将具有低损耗度量的数据单元的数据重写到具有较高损耗度量的另一个数据单元)。在实施方案中,损耗度量可以指示数据单元上的物理损耗的水平。损耗度量的一些实例可以包含写入计数、读取计数或写入计数和读取计数的组合。尽管本文的讨论主要集中在写入计数上,但应该注意,可以使用类似的技术来实施另外的计数类型。
在一些实施方案中,损耗度量可以包含写入计数和读取计数的组合。例如,损耗度量可以包含特定数据单元的写入计数和读取计数两者,其中使用一或多个等式将写入计数和读取计数组合在一起。由读取操作引起的数据单元上的物理损耗可以小于由写入操作引起的物理损耗。为了结合数据单元的读取计数和写入计数,可以通过加权写入计数或读取计数将数据单元的读取计数或写入计数标准化(例如,将由不同标度测量的计数调整为共有标度)。例如,可以将数据单元的读取计数乘以分数(例如,0.8)以确定读取计数在损耗方面所表示的写入计数的等同数量。数据单元的经过加权的读取计数和写入计数可以组合(例如,相加),并且用作指示特定数据单元上的物理损耗的损耗度量。
在一些实施方案中,存储器组件112可以包含非易失性存储器装置,如包含非易失性存储器单元的交叉点阵列的非易失性存储器装置。如上所述,非易失性存储器的交叉点阵列结合可堆叠交叉网格数据存取阵列可以基于体电阻的改变来执行位存储。另外,与许多执行不在原地写入操作(例如,在可以将其它数据编程到位置之前,将位于所述位置处的要写入的数据擦除)的基于闪存的存储器相比,交叉点非易失性存储器可以执行原地写入操作,其中可以对非易失性存储单元进行编程而无需先前擦除非易失性存储单元。可以注意到,由于交叉点非易失性存储器执行原地写入操作的能力,因此交叉点非易失性存储器的损耗度量无法包含擦除计数。擦除计数可以用于确定其它类型的存储器组件的损耗度量。擦除计数可以是指示在数据单元的寿命期间对数据单元执行的存储操作(如擦除数据单元的数据的擦除操作)的次数的值。本公开的各方面可以应用于其它类型的非易失性存储器组件或其它类型的存储器组件。
图4B展示了根据本公开的一些实施例的要使用间接映射执行的SMU间损耗均衡。通过间接映射,另外的信息用于确定存储器组件112上的目标物理位置。在一个实施例中,损耗均衡管理组件113将数据从超级管理单元复制到存储器组件112上的可用物理位置。可用的物理位置可以以任意数量的方式确定,所述物理位置如具有最低写入计数的位置、最近最少访问的位置等。可以将可用位置的列表维护在存储在本地存储器119中的空闲池(例如,一组未映射的SMU 422)中。在复制数据时,损耗均衡管理组件113在映射数据结构(例如,查询表340)中的条目中记录与数据相关联的逻辑索引和逻辑块地址的从超级管理单元到可用物理索引的映射。在一个实施例中,查询表340包含在损耗均衡管理组件113中和/或维护在控制器115的本地存储器119中。因此,当将逻辑块地址和/或逻辑索引应用于查询表340时,输出对应的物理地址。在一些实施例中,可以更新查询表340以用于从物理地址逆映射到逻辑地址。此逆映射可以包含在元数据中。在其它实施例中,可以将映射维护在如阵列、链表等其它类型的数据结构中。
图5是根据本公开的一些实施例的用于通过确定与数据块群组相关联的基址指针的新地址来执行SMU内损耗均衡操作的示例方法500的流程图。方法500可以由处理逻辑执行,所述处理逻辑可以包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的损耗均衡管理组件113执行。尽管以特定序列或顺序示出,但除非另有指定,否则可以修改过程的顺序。因此,所展示的实施例应被理解为只是实例,并且所展示的过程可以以不同的顺序执行,并且一些过程可以并行地执行。另外,在各个实施例中可以省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流程是可能的。
在操作510处,处理装置将数据从映射的第二组数据管理单元组中的第二数据管理单元组(例如,一组映射的SMU)复制到未映射的第一组数据管理单元组中的第一数据管理单元组(例如,一组未映射的SMU),以将所述第一数据管理单元组包含在所述映射的第二组数据管理单元组中。响应于基于与所述第二数据管理单元组相关联的小计写入计数器来确定所述第二组数据管理单元组中的所述第二数据管理单元组满足阈值条件,处理装置可以将数据复制到所述第一数据管理单元组。例如,可以确定与所述第二数据管理单元组相关联的小计写入计数器超出阈值。小计写入计数器的值指示自所述第二数据管理单元组包含在所述第二组数据管理单元组中以来对所述第二数据管理单元组的写入的数量。在包含在所述第二组数据管理单元组中时,可以复位与所述第一数据管理单元组相关联的小计写入计数器(例如,设定为值“0”)。
在操作520处,处理装置通过确定所述第一数据管理单元组内的基址指针的新地址来对所述第一数据管理单元组执行损耗均衡操作(例如,SMU内损耗均衡操作)。基址指针指示所述第一数据管理单元组开始的位置(也就是说,第一数据管理单元的位置)。因此,基址指针表示一组索引中的第一索引,每个索引与所述第一数据管理单元组的相应数据管理单元相关联。除了小计写入计数器和总计写入计数器之外,基址指针还可以包含在所述第一数据管理单元组的元数据中。可以使用包含确定性函数、映射函数、随机化函数、查询表或位图的一组地址确定技术中的至少一个来确定基址指针的新地址。地址确定技术中的每一个都可以产生映射到所请求地址的值。可以为数据块群组存储基址指针的新地址和一组地址确定技术中的地址确定技术的索引。对所述第一数据块群组中的数据块的逻辑地址的任何访问尝试可以至少使用基址指针的新地址和/或地址确定技术的索引来确定所请求的数据块的物理地址。
一个示例地址确定技术可以包含用于确定指针的新地址的函数,并且可以表示如下:
物理地址=(逻辑地址+基地址)%SMU大小
在物理地址是存储器组件中的数据管理单元的物理地址的情况下,逻辑地址是对于用户,数据管理单元似乎要驻留的地址并且可以与物理地址不同,基地址是基址指针所驻留的数据管理单元的地址,并且SMU大小是包含在SMU中的数据管理单元的数量。此函数可以与所述组地址确定技术中的索引相关联,并且可以用于在基址指针与新地址相关联之后确定数据管理单元的物理地址。另一个示例地址确定技术可以包含可以表示如下的另一个函数:
物理地址=(α*基地址+β)%SMU大小
其中α、基地址和β是随机值,并且可以在存储器组件的运行期间生成。可以将α、基地址和β存储在元数据表中并进行同步,使得在请求翻译时可以检索并使用α、基地址和β。SMU大小是SMU中的数据管理单元的数量。此函数可以与所述组地址确定技术中的索引相关联,并且可以用于在基址指针与新地址相关联之后确定数据管理单元的物理地址。另一种地址确定技术可以包含将基地址随机化的随机化函数,并且可以表示如下
物理地址=f(基地址)
f是函数,并且可以是上述函数物理地址=(逻辑地址+基地址)%SMU大小或物理地址=(α*基地址+β)%SMU大小的一般表示。f也可以表示为位映射。此函数可以与所述组地址确定技术中的索引相关联,并且可以用于在基址指针与新地址相关联之后确定数据管理单元的物理地址。另一种地址确定技术可以包含随机化或非随机化查询表,所述随机化或非随机化查询表可以用于确定新的基地址并且可以在接收到包含数据管理单元的逻辑地址的请求时参考以确定逻辑地址的物理地址。在另一个实例中,地址确定技术可以包含位图,所述位图可以用于确定新的基地址并且可以在接收到包含数据管理单元的逻辑地址的请求时参考。
在操作530处,处理装置基于所述第一数据管理单元组内的基址指针的地址而将数据存储在所述第一数据管理单元组处。处理装置可以基于一组地址确定技术中的地址确定技术的索引来识别用于确定基址指针的新地址的地址确定技术。处理装置可以将地址确定技术与基址指针的新地址一起使用,以确定数据管理单元的将数据存储在所述第一数据管理单元组中的物理地址。
例如,处理装置可以接收用于访问与包含在所述第一数据管理单元组中的数据管理单元相关联的逻辑地址的请求。处理装置可以标识将逻辑地址添加到基址指针的新地址中以获得结果地址的地址确定技术。处理装置可以在将结果地址除以所述第一数据管理单元组的大小之后确定余数,并且返回余数作为数据管理单元的物理地址。物理地址可以用于将数据存储在数据管理单元处。
应当理解,在一个实施例中,可以在执行SMU间损耗均衡操作时执行SMU内损耗均衡,并且因此,存在比两个单独的操作使用更少开销处理资源的一个原子操作(SMU移动)。SMU内损耗均衡操作可以导致数据管理单元组内的数据管理单元的总计写入计数之间的差收敛到期望的值或范围。
图6展示了根据本公开的一些实施例的使用与数据块群组(SMU 610)相关联的基址指针600的SMU内损耗均衡。在一个实施例中,可以使用地址确定技术来确定基址指针600的新地址。例如,地址确定技术可以包含可以用于确定基址指针的新地址以及基于基址指针确定在损耗均衡操作中可以将数据移动到的适当的物理位置的函数(例如,实际地址=(逻辑地址+基地址)%SMU大小)。根据实施例,地址确定技术可以包含确定性函数、随机化函数、映射函数、线性函数、查询表、位图或一些其它适当函数中的至少一个。函数可以导致将逻辑索引直接映射到超级管理单元610中的新物理位置。在一个实施例中,损耗均衡管理组件113为包含数据管理单元612、614、616和618的超级管理单元610维护基址指针600地址。基址指针600地址指示超级管理单元610开始的位置(也就是说,第一数据管理单元616的位置)。以某个频率将基址指针移动到不同的数据管理单元(例如,当基于小计写入计数器超出阈值来执行SMU间损耗均衡操作时)可以使得能够通过收敛数据管理单元的总计写入计数器来实现数据管理单元的损耗均衡。
图7展示了计算机系统700的示例机器,在所述计算机系统内,可以执行用于使机器执行本文所讨论的方法中的任何一或多种方法的指令集。在一些实施例中,计算机系统700可以对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦接到或利用存储器子系统(例如,图1的存储器子系统110)或可以用于执行控制器的操作(例如,以执行操作系统,从而执行对应于图1的损耗均衡管理组件113的操作)。在替代性实施例中,机器可以连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可以在客户端-服务器网络环境中以服务器或客户端机器的身份进行操作,在对等(或分布式)网络环境中作为对等机器进行操作,或在云计算基础设施或环境中作为服务器或客户端机器进行操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web电器、服务器、网络路由器、交换机或桥接器、或能够(顺序地或以其它方式)执行指定所述机器要采取的动作的指令集的任何机器。进一步地,尽管展示了单个机器,但是术语“机器”还应被视为包含单独地或联合地执行一个指令集(或多个指令集)以执行本文所讨论的方法中的任何一或多种方法的机器的任何集合。
示例计算机系统700包含通过总线730相互通信的处理装置702、主存储器704(例如,只读存储器(ROM)、闪速存储器、动态随机存取存储器(DRAM)如同步DRAM(SDRAM)或兰巴斯(Rambus)DRAM(RDRAM)等)、静态存储器706(例如,闪速存储器、静态随机存取存储器(SRAM)等)和数据存储系统718。
处理装置702表示一或多个通用处理装置,如微处理器、中央处理单元等。更具体地,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器或实施指令集的组合的处理器。处理装置702还可以是一或多个专用处理装置,如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置702被配置成执行用于执行本文所讨论的操作和步骤的指令726。计算机系统700可以进一步包含用于通过网络720进行通信的网络接口装置708。
数据存储系统718可以包含其上存储有使本文所描述的方法或功能中的任何一或多种方法或功能的一或多个指令集726或软件具体化的机器可读存储媒体724(也被称为计算机可读媒体)。指令726还可以在由计算机系统700执行所述指令期间完全或至少部分地驻留在主存储器704和/或处理装置702内,主存储器704和处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718和/或主存储器704可以对应于图1的存储器子系统110。
在一个实施例中,指令726包含用于实施对应于损耗均衡管理组件(例如,图1的损耗均衡管理组件113)的功能的指令。虽然机器可读存储媒体724在示例实施例中示出为单个媒体,但是术语“机器可读存储媒体”应被视为包含存储所述一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码用于由机器执行且使机器执行本公开的方法中的任何一或多种方法的指令集的任何媒体。因此,术语“机器可读存储媒体”应被视为包含但不限于固态存储器、光学媒体和磁性媒体。
已经在对计算机存储器内的数据位的操作的算法和符号表示方面呈现了前面详细描述的说明的一些部分。这些算法描述和表示是由数据处理领域的技术人员用来向本领域的其它技术人员最有效地传递其工作实质的方式。算法在此处并且通常被认为是产生期望结果的操作的自相一致序列。所述操作是需要对物理量进行物理操纵的操作。通常但不一定,这些量采取能够被存储、组合、比较和以其它方式操纵的电信号或磁信号的形式。已经证明,主要出于通用的原因,有时将这些信号称为位、值、元素、符号、字符、术语、数字等是便利的。
然而,应当记住,这些术语和类似术语中的所有这些术语和类似术语应与适当的物理量相关联,并且仅仅是应用于这些量的方便标记。本公开可以是指计算机系统或类似电子计算装置的动作和过程,所述计算机系统或类似电子计算装置对在计算机系统的寄存器和存储器内表示为物理(电子)量的数据进行操纵,并将其转换为在计算机系统的存储器或寄存器或其它此类信息存储系统内以类似方式表示为物理量的其它数据。
本公开还涉及一种用于执行本文的操作的设备。此设备可以被专门构造用于所需目的,或者所述设备可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可以存储在计算机可读存储媒体中,所述计算机可读存储媒体如但不限于各自耦接到计算机系统总线的任何类型的盘(包含软盘、光盘、CD-ROM和磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或者适于存储电子指令的任何类型的媒体。
本文所呈现的算法和显示并非固有地与任何特定的计算机或其它设备相关。各种通用系统可以与根据本文的教导的程序一起使用,或者可以证明,构造用于执行所述方法的更具专用性的设备是方便的。用于各种这些系统的结构将如下文的描述中阐述那样显现。另外,本公开不参考任何特定编程语言进行描述。应理解,可以使用各种编程语言来实施如本文描述的本公开的教导。
本公开可以以计算机程序产品或软件的形式提供,所述计算机程序产品或软件可以包含具有存储于其上的指令的机器可读媒体,所述指令可以用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、闪存组件等。
在前述说明书中,已经参考其具体示例实施例对本公开的实施例进行描述。将显而易见的是,在不脱离如以下权利要求中阐述的本公开的实施例的更广泛的精神和范围的情况下,可以对所述实施例进行各种修改。因此,说明书和附图应被视为说明性意义的,而不是限制性意义的。
Claims (18)
1.一种方法,其包括:
将数据从映射的第二多个数据块群组中的第二数据块群组复制到未映射的第一多个数据块群组中的第一数据块群组,以将所述第一数据块群组包含在所述映射的第二多个数据块群组中;
复位与所述第一数据块群组相关联的小计写入计数器,其中所述小计写入计数器的值指示自所述第一数据块群组包含在所述第二多个数据块群组中以来对所述第一数据块群组执行的写入操作的数量;以及
由处理装置基于所述小计写入计数器对所述第一数据块群组执行损耗均衡操作,其中基于所述小计写入计数器对所述第一数据块群组执行所述损耗均衡操作进一步包括当所述小计写入计数器的值超出阈值写入值时,确定所述第一数据块群组满足阈值损耗条件。
2.根据权利要求1所述的方法,其进一步包括:
执行一或多个写入以将数据写入到所述第一数据块群组;
基于所述一或多个写入一或多次递增所述小计写入计数器的所述值;以及
当所述小计写入计数器的所述值超出阈值时,对所述第一数据块群组执行所述损耗均衡操作。
3.根据权利要求1所述的方法,其进一步包括基于与所述第一数据块群组相关联的所述小计写入计数器和总计写入计数器来对所述第一数据块群组执行所述损耗均衡操作,其中所述总计写入计数器的值指示对所述第一数据块群组执行的写入操作的总数,其中写入操作的所述总数基于在所述第一数据块群组包含在所述第二多个数据块群组中之前对所述第一数据块群组执行的写入操作的数量和自所述第一数据块群组包含在所述第二多个数据块群组中以来对所述第一数据块群组执行的写入操作的另一个数量。
4.根据权利要求3所述的方法,其进一步包括:
确定所述总计写入计数器的所述值超出另一个数据块群组的另一个总计写入计数器的值第一阈值,其中所述总计写入计数器的所述值是相对于与其它数据块群组相关联的总计写入计数器的值的最大值,并且所述另一个总计写入计数器的所述值是相对于与所述其它数据块群组相关联的所述总计写入计数器的所述值的最小值;
确定所述小计写入计数器的所述值超出第二阈值;以及
响应于确定所述总计写入计数器的所述值超出所述另一个数据块群组的所述另一个总计写入计数器的所述值所述第一阈值并且所述小计写入计数器的所述值超出所述第二阈值而执行所述损耗均衡操作。
5.根据权利要求1所述的方法,其中基于所述小计写入计数器对所述第一数据块群组执行所述损耗均衡操作进一步包括:
将所述第一数据块群组的数据复制到所述第一多个数据块群组中的另一个数据块群组,以将所述另一个数据块群组包含在所述第二多个数据块群组中;
复位与所述另一个数据块群组相关联的第二小计写入计数器,其中所述第二小计写入计数器的值指示自所述另一个数据块群组包含在所述第二多个数据块群组中以来对所述另一个数据块群组执行的写入操作的数量。
6.根据权利要求1所述的方法,其中基于所述小计写入计数器对所述第一数据块群组执行所述损耗均衡操作进一步包括确定所述第一数据块群组内的基址指针的新地址,其中所述基址指针表示与所述第一数据块群组相关联的多个索引中的第一索引。
7.根据权利要求6所述的方法,其进一步包括基于所述第一数据块群组内的所述基址指针的所述新地址而将数据存储在所述第一数据块群组处。
8.一种系统,其包括:
存储器组件;以及
处理装置,所述处理装置与所述存储器组件操作性地耦接以用于:
将数据从映射的第二多个数据块群组中的第二数据块群组复制到未映射的第一多个数据块群组中的第一数据块群组,以将所述第一数据块群组包含在所述映射的第二多个数据块群组中;
复位与所述第一数据块群组相关联的小计写入计数器,其中所述小计写入计数器的值指示自所述第一数据块群组包含在所述第二多个数据块群组中以来对所述第一数据块群组执行的写入操作的数量;以及
基于所述小计写入计数器对所述第一数据块群组执行损耗均衡操作,
其中,为了基于所述小计写入计数器对所述第一数据块群组执行所述损耗均衡操作,当所述小计写入计数器的值超出阈值写入值时,所述处理装置进一步用于确定所述第一数据块群组满足阈值损耗条件。
9.根据权利要求8所述的系统,其中所述处理装置进一步用于:
执行一或多个写入以将数据写入到所述第一数据块群组;以及
基于所述一或多个写入一或多次递增所述小计写入计数器的所述值。
10.根据权利要求8所述的系统,其中所述处理装置进一步用于基于与所述第一数据块群组相关联的所述小计写入计数器和总计写入计数器来对所述第一数据块群组执行所述损耗均衡操作,其中所述总计写入计数器的值指示对所述第一数据块群组执行的写入操作的总数,其中写入操作的所述总数基于在所述第一数据块群组包含在所述第二多个数据块群组中之前对所述第一数据块群组执行的写入操作的数量和自所述第一数据块群组包含在所述第二多个数据块群组中以来对所述第一数据块群组执行的写入操作的另一个数量。
11.根据权利要求10所述的系统,其中所述处理装置进一步用于:
确定所述总计写入计数器的所述值超出另一个数据块群组的另一个总计写入计数器的值第一阈值,其中所述总计写入计数器的所述值是相对于与其它数据块群组相关联的总计写入计数器的值的最大值,并且所述另一个总计写入计数器的所述值是相对于与所述其它数据块群组相关联的所述总计写入计数器的所述值的最小值;
确定所述小计写入计数器的所述值超出第二阈值;以及
响应于确定所述总计写入计数器的所述值超出所述另一个数据块群组的所述另一个总计写入计数器的所述值所述第一阈值并且所述小计写入计数器的所述值超出所述第二阈值而执行所述损耗均衡操作。
12.根据权利要求8所述的系统,其中,为了基于所述小计写入计数器对所述第一数据块群组执行所述损耗均衡操作,所述处理装置进一步用于:
将所述第一数据块群组的数据复制到所述第一多个数据块群组中的另一个数据块群组,以将所述另一个数据块群组包含在所述第二多个数据块群组中;
复位与所述另一个数据块群组相关联的第二写入计数器,其中所述第二写入计数器的值指示自所述另一个数据块群组包含在所述第二多个数据块群组中以来对所述另一个数据块群组执行的写入操作的数量。
13.根据权利要求8所述的系统,其中,为了基于所述小计写入计数器对所述第一数据块群组执行所述损耗均衡操作,所述处理装置进一步用于确定所述第一数据块群组内的基址指针的新地址,其中所述基址指针表示与所述第一数据块群组相关联的多个索引中的第一索引。
14.根据权利要求13所述的系统,其中所述处理装置进一步用于基于所述第一数据块群组内的所述基址指针的所述地址而将数据存储在所述第一数据块群组处。
15.一种非暂时性计算机可读存储媒体,其包括指令,所述指令当由处理装置执行时使所述处理装置:
将数据从映射的第二多个数据管理单元群组中的第二数据管理单元群组复制到未映射的第一多个数据管理单元群组中的第一数据管理单元群组,以将所述第一数据管理单元群组包含在所述映射的第二多个数据管理单元群组中;
响应于将所述第一数据管理单元群组包含在所述第二多个数据管理单元群组中,通过确定所述第一数据管理单元群组内的基址指针的新地址来对所述第一数据管理单元群组执行损耗均衡操作,其中所述基址指针表示与所述第一数据管理单元群组相关联的多个索引中的第一索引;并且
基于所述第一数据管理单元群组内的所述基址指针的所述地址而将后续数据存储在所述第一数据管理单元群组处。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述处理装置进一步用于:
接收用于访问与包含在所述第一数据管理单元群组中的数据管理单元相关联的逻辑地址的请求;
将所述逻辑地址添加到所述基址指针的所述新地址中以获得结果地址;
在将所述结果地址除以基于所述第一数据管理单元群组的大小的值之后确定余数;并且
返回所述余数作为所述数据管理单元的物理地址。
17.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述处理装置进一步用于使用确定性函数、映射函数、随机化函数或查询表中的至少一个来确定所述基址指针的所述新地址。
18.根据权利要求15所述的非暂时性计算机可读存储媒体,其中当所述第二多个数据管理单元群组中的所述第二数据管理单元群组的写入计数器的值超出阈值时,所述第一数据管理单元群组包含在所述第二多个数据管理单元群组中,其中所述写入计数器的所述值指示自所述第二数据管理单元群组包含在所述第二多个数据管理单元群组中以来对所述第二数据管理单元群组执行的写入操作的数量。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/153,016 US10860219B2 (en) | 2018-10-05 | 2018-10-05 | Performing hybrid wear leveling operations based on a sub-total write counter |
US16/153,016 | 2018-10-05 | ||
PCT/US2019/054797 WO2020072960A1 (en) | 2018-10-05 | 2019-10-04 | Performing hybrid wear leveling operations based on a sub-total write counter |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113015965A CN113015965A (zh) | 2021-06-22 |
CN113015965B true CN113015965B (zh) | 2024-06-18 |
Family
ID=70051673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980074491.5A Active CN113015965B (zh) | 2018-10-05 | 2019-10-04 | 基于小计写入计数器执行混合损耗均衡操作 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10860219B2 (zh) |
EP (1) | EP3861449A4 (zh) |
KR (1) | KR20210057193A (zh) |
CN (1) | CN113015965B (zh) |
WO (1) | WO2020072960A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10922221B2 (en) * | 2018-03-28 | 2021-02-16 | Micron Technology, Inc. | Memory management |
US11481119B2 (en) * | 2019-07-15 | 2022-10-25 | Micron Technology, Inc. | Limiting hot-cold swap wear leveling |
CN112230845B (zh) * | 2019-07-15 | 2024-06-14 | 美光科技公司 | 存储器子系统中基于子组写计数的损耗均衡 |
CN112233715B (zh) | 2019-07-15 | 2024-06-18 | 美光科技公司 | 用于存储器系统的维护操作 |
US11392292B2 (en) * | 2019-07-15 | 2022-07-19 | Micron Technology, Inc. | Maintenance operations for memory devices |
TWI688958B (zh) * | 2019-08-23 | 2020-03-21 | 群聯電子股份有限公司 | 冷區域判斷方法、記憶體控制電路單元與記憶體儲存裝置 |
US11080205B2 (en) * | 2019-08-29 | 2021-08-03 | Micron Technology, Inc. | Classifying access frequency of a memory sub-system component |
CN112748853B (zh) * | 2019-10-30 | 2024-04-16 | 伊姆西Ip控股有限责任公司 | 用于管理盘的方法、设备和计算机可读介质 |
US11921627B2 (en) * | 2021-04-27 | 2024-03-05 | Micron Technology, Inc. | Usage level identification for memory device addresses |
US11709602B2 (en) * | 2021-08-17 | 2023-07-25 | Micron Technology, Inc. | Adaptively performing media management operations on a memory device |
US11836351B2 (en) * | 2022-03-31 | 2023-12-05 | Lenovo Global Technology (United States) Inc. | Causing a storage device to switch storage tiers based on a wear level |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6427200B1 (en) * | 2000-09-27 | 2002-07-30 | Institute For Information Industry | Multiple changeable addressing mapping circuit |
EP1713085A1 (en) * | 2002-10-28 | 2006-10-18 | SanDisk Corporation | Automated wear leveling in non-volatile storage systems |
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US7546430B1 (en) * | 2005-08-15 | 2009-06-09 | Wehnus, Llc | Method of address space layout randomization for windows operating systems |
ES2325568B1 (es) | 2008-03-07 | 2010-06-16 | Fabrica Nacional De Moneda Y Timbre- Real Casa De La Moneda | Papel de seguridad, metodo de fabricacion y documento de seguridad obtenido con dicho papel. |
US8706998B2 (en) | 2009-02-26 | 2014-04-22 | Hyperstone Gmbh | Method for managing flash memories having mixed memory types |
US20100318719A1 (en) * | 2009-06-12 | 2010-12-16 | Micron Technology, Inc. | Methods, memory controllers and devices for wear leveling a memory |
US9170933B2 (en) * | 2010-06-28 | 2015-10-27 | International Business Machines Corporation | Wear-level of cells/pages/sub-pages/blocks of a memory |
KR101083683B1 (ko) | 2011-03-25 | 2011-11-16 | 주식회사 하이닉스반도체 | 플래쉬 메모리 장치 및 및 이를 위한 리드동작 제어 방법 |
US8806171B2 (en) * | 2011-05-24 | 2014-08-12 | Georgia Tech Research Corporation | Systems and methods providing wear leveling using dynamic randomization for non-volatile memory |
US20120311228A1 (en) | 2011-06-03 | 2012-12-06 | Advanced Micro Devices, Inc. | Method and apparatus for performing memory wear-leveling using passive variable resistive memory write counters |
WO2013048470A1 (en) * | 2011-09-30 | 2013-04-04 | Intel Corporation | Statistical wear leveling for non-volatile system memory |
WO2013095641A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Sub-block based wear leveling |
US9811288B1 (en) * | 2011-12-30 | 2017-11-07 | EMC IP Holding Company LLC | Managing data placement based on flash drive wear level |
US9032137B2 (en) * | 2012-11-21 | 2015-05-12 | Intel Corporation | Flexible wear management for non-volatile memory |
US10747563B2 (en) * | 2014-03-17 | 2020-08-18 | Vmware, Inc. | Optimizing memory sharing in a virtualized computer system with address space layout randomization (ASLR) enabled in guest operating systems wherein said ASLR is enable during initialization of a virtual machine, in a group, when no other virtual machines are active in said group |
US10365835B2 (en) * | 2014-05-28 | 2019-07-30 | Micron Technology, Inc. | Apparatuses and methods for performing write count threshold wear leveling operations |
US9817669B2 (en) * | 2014-07-14 | 2017-11-14 | Mill Computing, Inc. | Computer processor employing explicit operations that support execution of software pipelined loops and a compiler that utilizes such operations for scheduling software pipelined loops |
US20170098218A1 (en) * | 2015-10-05 | 2017-04-06 | Mastercard International Incorporated | Method and system for distribution of social benefits |
GB2545409B (en) * | 2015-12-10 | 2020-01-08 | Advanced Risc Mach Ltd | Wear levelling in non-volatile memories |
US9842059B2 (en) * | 2016-04-14 | 2017-12-12 | Western Digital Technologies, Inc. | Wear leveling in storage devices |
US10656844B2 (en) * | 2017-10-11 | 2020-05-19 | Western Digital Technologies, Inc. | Non-volatile memory with regional and inter-region wear leveling |
-
2018
- 2018-10-05 US US16/153,016 patent/US10860219B2/en active Active
-
2019
- 2019-10-04 KR KR1020217013276A patent/KR20210057193A/ko not_active Application Discontinuation
- 2019-10-04 EP EP19868907.7A patent/EP3861449A4/en not_active Withdrawn
- 2019-10-04 CN CN201980074491.5A patent/CN113015965B/zh active Active
- 2019-10-04 WO PCT/US2019/054797 patent/WO2020072960A1/en active Application Filing
-
2020
- 2020-12-07 US US17/114,380 patent/US11360672B2/en active Active
-
2022
- 2022-06-13 US US17/839,293 patent/US11681442B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
Also Published As
Publication number | Publication date |
---|---|
US11681442B2 (en) | 2023-06-20 |
US20220308767A1 (en) | 2022-09-29 |
US11360672B2 (en) | 2022-06-14 |
US20200110544A1 (en) | 2020-04-09 |
WO2020072960A1 (en) | 2020-04-09 |
KR20210057193A (ko) | 2021-05-20 |
US10860219B2 (en) | 2020-12-08 |
CN113015965A (zh) | 2021-06-22 |
EP3861449A4 (en) | 2022-06-22 |
EP3861449A1 (en) | 2021-08-11 |
US20210089218A1 (en) | 2021-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113015965B (zh) | 基于小计写入计数器执行混合损耗均衡操作 | |
US20230097187A1 (en) | Hybrid wear leveling for in-place data replacement media | |
US11874769B2 (en) | Maintaining data consistency in a memory sub-system that uses hybrid wear leveling operations | |
US20230176965A1 (en) | Media management based on data access metrics | |
US11704024B2 (en) | Multi-level wear leveling for non-volatile memory | |
US20230019910A1 (en) | Limiting hot-cold swap wear leveling | |
CN114613405A (zh) | 频繁读取干扰攻击者的标识和高速缓存 | |
US11481119B2 (en) | Limiting hot-cold swap wear leveling | |
US11360885B2 (en) | Wear leveling based on sub-group write counts in a memory sub-system | |
CN115910184A (zh) | 基于数据质量改变概率数据完整性扫描的扫描频率 | |
US11789861B2 (en) | Wear leveling based on sub-group write counts in a memory sub-system | |
US20240201850A1 (en) | Fragmentation management for memory systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |