CN107977319A - 存储***及其操作方法 - Google Patents
存储***及其操作方法 Download PDFInfo
- Publication number
- CN107977319A CN107977319A CN201710595571.8A CN201710595571A CN107977319A CN 107977319 A CN107977319 A CN 107977319A CN 201710595571 A CN201710595571 A CN 201710595571A CN 107977319 A CN107977319 A CN 107977319A
- Authority
- CN
- China
- Prior art keywords
- memory block
- cold
- detected
- distribution
- hot
- 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
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
-
- 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
- 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/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
- 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/0638—Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module
-
- 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/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
- 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/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- 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)
- Memory System (AREA)
Abstract
一种存储***,包括:存储器件,包括多个存储块;写入操作查验单元,被配置为对各个存储块被执行的写入操作的次数进行计数;写入计数分布管理模块,被配置为基于计数的写入操作的次数来管理存储块的分布;以及耗损均衡模块,被配置为基于计数的写入操作的次数和分布来从多个存储块检测热存储块和冷存储块,其中,耗损均衡模块管理热存储块的历史以及根据管理的历史来将热存储块与冷存储块进行交换。
Description
相关申请的交叉引用
本申请要求2016年10月24日提交的第10-2016-0138385号韩国专利申请的优先权,其通过引用整体合并于此。
技术领域
示例性实施例涉及一种存储***,更具体地,涉及对非易失性存储器件执行耗损均衡的存储***及其操作方法。
背景技术
存储器件主要被分为易失性存储器件和非易失性存储器件。
易失性存储器件具有快速的写入速度和读取速度,但是当电源关断时,储存的数据丢失。易失性存储器件的示例包括动态随机存取存储器(DRAM)、静态RAM(SRAM)等。非易失性存储器件具有相对较慢的写入速度和读取速度,但是储存的数据即使电源关断也被保留。因此,为了不管电源的状态如何都保留储存的数据,通常使用非易失性存储器件。非易失性存储器件的示例包括只读存储器(ROM)、掩模型ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、快闪存储器、相变随机存取存储器(PCRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。
通常,非易失性存储器件(例如,RRAM和PCRAM)具有有限的写入耐久性。写入耐久性通常被定义为在存储块变得不可靠之前可以应用于非易失性存储器件的存储块的编程/写入循环的数量。可以通过估计多久和如何均匀使用存储单元区域来计算写入耐久性。
当写入操作集中在特定存储单元区域时,存储器件的寿命可能会突然减少。为了防止这种情况,通常执行耗损均衡操作,其将写入操作更均匀地分布在存储器件的整个单元区域上。因此,耗损均衡可以延长储存介质的写入耐久性。当数据被记录在储存介质上时,这个技术允许写入操作的更均匀分布。通过防止储存介质的特定区域被集中使用,均匀地使用储存介质的整个区域。通常,由存储器控制器执行耗损均衡操作。例如,当从主机输入对储存介质的写入请求时,存储器控制器可以参照每个存储单元的重写次数来执行并改变逻辑地址与物理地址之间的合适映射,由此控制写入操作以主要对较少使用的空存储单元执行。
发明内容
各种实施例涉及一种存储***及其操作方法,该存储***根据对存储块执行的写入操作的次数来对多个存储块执行耗损均衡,并且管理对存储块执行的耗损均衡的历史。
根据本发明的实施例,存储***包括:存储器件,包括多个存储块;写入操作查验单元,被配置为对各个存储块被执行的写入操作的次数进行计数;写入计数分布管理模块,被配置为基于计数的写入操作的次数来管理存储块的分布;以及耗损均衡模块,被配置为基于计数的写入操作的次数和分布来从多个存储块检测热存储块和冷存储块,其中,耗损均衡模块管理热存储块的历史以及根据管理的历史来将热存储块与冷存储块进行交换。
根据本发明的实施例,存储***的操作方法包括:基于对各个存储块执行的写入操作的次数来管理多个存储块的分布;基于分布来检测存储块之中的热存储块;查验检测到的热存储块的历史;当检测到的热存储块的历史处于第一状态时,将检测到的热存储块与冷存储块列表的冷存储块进行交换;以及将交换的热存储块的历史改变为第二状态。
根据本发明的实施例,存储***的操作方法包括:在多个存储块之中,查验存储块的写入操作的次数;基于查验的写入操作的次数,当存储块包括在存储块的分布的第一上限范围内时,将存储块检测为热存储块;查验检测到的热存储块的历史;当检测到的热存储块的历史处于第一状态时,将检测到的热存储块与冷存储块列表的冷存储块进行交换;以及将交换的热存储块的历史改变为第二状态。
附图说明
通过参考附图进行的以下详细描述,本发明的上述和其他特征及优点对于本发明所属领域技术人员来讲将变得更加明显,其中:
图1是图示根据本发明的实施例的存储***的框图。
图2是图示图1所示的存储***的写入计数分布管理模块的示例性操作的示图。
图3是图示图1所示的存储***的耗损均衡模块的操作的示图。
图4和图5是图示根据本发明的实施例的存储***的耗损均衡操作的流程图。
具体实施方式
下面将参考附图更详细地描述各种实施例。然而,本发明可以以不同的形式来实施,而不应被解释为限于本文所阐述的实施例。相反,提供这些实施例使得本公开将是彻底的和完整的,并且这些实施例将向本领域技术人员充分地传达本发明的范围。贯穿本公开,在本发明的各个附图和实施例中,相同的附图标记表示相同的部件。
应注意,附图是简化示图,因此不一定按比例绘制。在某些情况下,为了更清楚地示出所示实施例的某些特征,附图的各个部分可能被夸大。
还应注意到,在下面的描述中,为了便于理解本发明而阐述了具体细节,然而,可以在没有这些具体细节中的一些的情况下实践本发明。另外,应注意的是,众所周知的结构和/或过程可能仅被简要描述或者根本没被描述,以避免本公开被不必要的众所周知的细节所混淆。
还应注意的是,在某些情况下,对相关领域的技术人员明显的是,结合一个实施例所描述的元件(也称为特征)可以被单独使用或与其他实施例的其他元件组合使用,除非另有具体说明。
图1是图示根据本发明的实施例的存储***100的框图。
参考图1,存储***100可以包括存储器控制器200和存储器件300。存储器控制器200可以根据从主机(未示出)接收的请求来产生命令CMD和地址ADD,并且可以将数据DATA储存在存储器件300或从存储器件300读取数据DATA。
存储器件300包括多个存储块310至330。根据实施例,存储器件300可以是或包括PCRAM。然而,本发明不限于此,而且在其他实施例中,存储器件300可以是或包括诸如MRAM、RRAM和FRAM的可变电阻式存储器件。可变电阻式存储器件可以通过存储单元的电阻来划分储存的数据。此外,在将数据写入存储器件之前,可变电阻式存储器件可以在不执行擦除操作的情况下支持重写入操作。即,通过写入操作,可以将储存在存储单元中的数据“0”改变为数据“1”,或者可以将数据“1”改变为数据“0”。因此,包括在存储器件300中的多个存储块310至330可以基于对多个存储块310至330中的每个执行的写入操作的次数,即,基于每个存储块的写入计数,来测量耗损水平。
存储器控制器200可以包括写入操作查验单元210。写入操作查验单元210可以根据从主机接收的请求来对多个存储块310至330中的每个被执行的写入操作的次数进行计数。写入操作查验单元210可以包括用于执行计数的计数部分(未示出)。写入操作查验单元210可以根据来自主机的请求来查验被执行写入操作的数据的标识(ID),即,数据的逻辑地址,对与查验的逻辑地址相对应的反复访问的物理地址进行计数,以及测量数据储存区域(即,多个存储块310至330)的耗损水平。
存储器控制器200还可以包括写入计数分布管理模块220和耗损均衡模块230。写入计数分布管理模块220可以基于由写入操作查验单元210测量的写入计数,即,基于对每个存储块执行的写入操作的累积次数,来管理多个存储块310至330中的每个的写入计数分布。写入计数分布管理模块220可以将多个存储块310至330的写入操作的次数划分为多个部分,对具有落在各个部分的每个中的写入计数的多个存储块310至330之中的存储块的数量进行计数,以及将多个存储块310至330的计数的数量作为写入计数分布储存在分布表中。随着对存储块310至330连续执行写入操作,多个存储块310至330的写入计数分布可以改变,并且该改变将在储存在写入计数分布管理模块220中的分布表中被更新。将参考图2更详细地描述写入计数分布管理模块220的这种操作。
基于由写入操作查验单元210测量的多个存储块310至330的写入计数(即,写入操作的次数)和写入计数分布管理模块220的分布表,耗损均衡模块230可以检测多个存储块310至330之中的热存储块和冷存储块。即,耗损均衡模块230可以检测已被执行了相对大量的写入操作的一个或更多个热存储块以及已被执行了相对少量的写入操作的一个或更多个冷存储块。耗损均衡模块230可以将热存储块与存储器件300的冷存储块进行交换,从而允许存储块被更均匀地使用。可以通过在热存储块和冷存储块之间交换数据来交换热存储块和冷存储块。
根据实施例的耗损均衡模块230可以将多个存储块310至330分类为写入计数分布管理模块220的分布表A的不同部分。即,耗损均衡模块230可以根据每个存储块的写入计数来将存储块310至330分类为分布表A的详细部分,例如,热区域、温区域和冷区域。因此,耗损均衡模块230可以容易地检测要交换的存储块,可以管理交换的存储块,并且可以基本上防止不必要的操作。将参考图3更详细地描述根据实施例的耗损均衡模块230的操作。
图2是用于说明图1的写入计数分布管理模块220的操作的示图。
参考图2,示出了储存在写入计数分布管理模块220中的分布表A和分布曲线图B。分布曲线图B基于分布表A的信息示出了存储块的写入计数分布。具体地,分布曲线图B的x轴表示存储块的数量,而分布曲线图B的y轴表示写入计数,即,写入操作的次数。
写入计数分布管理模块220可以将写入操作的次数划分为多个部分。参考图2的分布表A,写入操作的次数可以以千为单位(即,“1000”)被划分为多个部分;然而,实施例不限于此。在操作中,写入操作查验单元210可以对多个存储块中的每个的写入计数(即,写入操作的次数)进行计数,写入计数分布管理模块220可以基于写入计数来确定包括在分布表A的每一个部分中的存储块的数量。例如,在给定时间,如图2的示例的分布表A所示,50个存储块可以具有小于2000的写入计数,而仅一个存储块可以具有等于或大于7000的写入操作计数。
随着对存储块连续执行写入操作,存储块的写入计数可以增加。因此,存储块的写入计数分布可以改变。例如,当对写入计数为5000的存储块执行新的写入操作时,该存储块的写入计数将增加1并且变为5001,这意味着它将超过5000。结果,写入计数分布管理模块220将在分布表A的4000至5000部分中的存储块的数量减少一个,即,从950减至949,而将在分布表A的5000至6000部分中的存储块的数量增加一个,即,从50增至51。随着对多个存储块连续执行写入操作,写入操作的次数将总体上增加,使得存储块的写入计数分布将向右侧移位,如在分布曲线图B中所示。
写入计数分布管理模块220可以基于多个存储块的写入计数分布来确定用于划分多个存储块的多个区域。即,基于在表示储存在分布表A中的写入操作的次数的各个部分中所包括的存储块的数量,可以设定包括所有存储块之中的预定范围的存储块的区域。写入计数分布管理模块220可以将存储块的总数与包括在各个部分中的存储块的数量进行比较,并且设定相应的区域。当包括在各个部分中的存储块的数量改变时,设定区域也可以改变。
写入计数分布管理模块220可以设定热区域,以便耗损均衡模块230将写入计数(即,写入操作的次数)包括在预定的上限范围内的存储块检测为热存储块。例如,耗损均衡模块230可以将写入操作的次数在前3%(即,在大约上部300个存储块((1+80+50+950+8000+950+50)*0.03~302)之中)的存储块检测为热存储块。为此,在图2的分布表A中,可以将写入操作的次数等于或大于5000的部分设定为热区域。写入计数分布管理模块220可以设定冷区域,以便耗损均衡模块230将写入操作的次数包括在预定的下限范围内的存储块检测为冷存储块。当冷区域也以与热区域的比率基本上相同的比率来设定时,可以将写入操作的次数小于2000的部分设定为冷区域。
写入计数分布管理模块220可以进一步将热区域细分为如图2所示的红热区域和退火区域。例如,写入计数分布管理模块220可以设定在热区域中写入操作的次数在上限范围内的红热区域,并且将在热区域中红热区域下面的区域设定为退火区域。此外,写入计数分布管理模块220可以进一步将热区域和冷区域之间的中间区域细分成如图2所示的温区域和温-冷区域。写入计数分布管理模块220可以将冷区域附近的区域设定为温-冷区域,并且将热区域附近的区域设定为温区域。将参照图3至图5更详细地描述用于交换与热区域和冷区域相对应的存储块的操作或根据各个区域的耗损均衡操作。
图3是用于说明图1的耗损均衡模块230的操作的示图。
当从主机请求写入操作时,写入操作查验单元210可以更新已对其请求写入操作的存储块的写入操作的次数,并且向耗损均衡模块230通知写入操作的更新次数。基于通知的写入操作的次数,当对应的存储块包括在预设的前部百分比内时,耗损均衡模块230可以通过使用分布度管理模块220的分布度来将对应的存储块检测为热存储块。在图3中,参考标记“ID”表示数据的标识(ID),即,数据的逻辑地址,参考标记“WCNT”表示写入计数(即,写入操作的次数),参考标记“FLAG”表示标志信息,以及参考标记“PA”表示物理地址。
参考图3,可以理解,执行ID为“1234”的数据的写入操作,并且写入计数WCNT(即,对应的存储块的写入操作的次数)增加到“5001”。例如,参考图2的分布表A,耗损均衡模块230可以查验对应的存储块是否包括在热区域中,并且可以将对应的存储块检测为热存储块。
在这种情况下,耗损均衡模块230可以单独地管理冷存储块的列表(以下,称为“冷存储块列表”)。耗损均衡模块230可以从多个存储块中检测冷存储块,并且将冷存储块添加到冷存储块列表中,或者当冷存储块列表的冷存储块的数量等于或小于参考值时或当存储器件300在空闲状态下操作时可以检测冷存储块。耗损均衡模块230可以依次或随机确定多个存储块中的一个,并且从写入操作查验单元210查验对应的存储块的字计数WCNT。基于所查验的字计数WCNT,耗损均衡模块230通过使用写入计数分布管理模块220的分布表来检测对应的存储块是否为冷存储块。
参考图3,可以理解的是,将与ID为“50”的数据相对应的存储块查验为来自冷存储块列表的冷存储块。因此,耗损均衡模块230可以将ID为“1234”的数据与ID为“50”的数据交换。结果,ID为“1234”的数据可以被从与“1024”的物理地址(PA)相对应的存储块移动到与“4096”的物理地址(PA)相对应的存储块,而ID为“50”的数据可以被从与“4096”的物理地址(PA)相对应的存储块移动到与“1024”的物理地址(PA)相对应的存储块。
ID为“1234”的数据可以是已被执行许多写入操作的热数据,但是可以被移动到尚未被执行许多写入操作的“4096”的冷存储块(PA),因此可以均一地管理存储块。然而,尽管ID为“50”的数据是冷数据,但是该数据被移动到字计数WCNT被设定为“5001”的“1024”的热存储块(PA)。因此,当对ID为“50”的数据执行任何写入操作时,可以将数据检测为热存储块,并且可以再次执行交换。
为了基本上防止交换频繁发生,耗损均衡模块230可以产生标志信息FLAG以管理热存储块的交换历史。即,耗损均衡模块230可以基于表示热存储块先前是否已经被交换的标志信息FLAG来管理热存储块的交换历史,然后控制热存储块和冷存储块之间的交换。如图3所示,在热存储块和冷存储块之间进行交换之后,耗损均衡模块230可以将刚被交换的热存储块的标志信息FLAG改变为“1”,从而表示热存储块是否已经被交换。此外,即使在检测到热存储块时,耗损均衡模块230也可以查验标志信息FLAG,并且根据标志信息FLAG的状态来决定是否在热存储块与冷存储块之间进行交换。耗损均衡模块230可以通过使用这样的附加信息(即,交换历史)来管理被检测为图2的热区域中的退火区域的存储块。此外,当写入操作的次数超过预定次数时,耗损均衡模块230可以管理被检测为红热区域的存储块,而不管交换历史如何。
图4和图5是用于说明根据本发明的实施例的存储***的耗损均衡操作的流程图。图。图4示出了用于根据存储***的耗损均衡操作来检测热存储块的操作,而图5示出了用于根据存储***的耗损均衡操作来检测冷存储块的操作。
参考图4,在步骤S410,当通过来自主机的请求对多个存储块中的一个执行写入操作时,写入操作查验单元210(参见图1)可以对相应的存储块的写入操作的次数进行计数,并且将计数的写入操作的次数通知写入计数分布管理模块220(参见图1)和耗损均衡模块230(参见图1)。写入计数分布管理模块220可以基于通知的写入操作的次数来管理分布表中的存储块的写入计数分布。在步骤S420,耗损均衡模块230可以查验通知的写入操作的次数,并且在步骤S430,耗损均衡模块230可以基于储存在分布表中的存储块的写入计数分布,将通知的写入操作的次数与其他存储块的写入操作的次数进行比较。
当通知的写入计数与处于前1%的存储块的写入计数相对应时(S430的“是”),在步骤S440,耗损均衡模块230可以将相应的存储块检测为热存储块。即,基于写入操作的次数,当经历写入操作的存储块包括在第一上限范围(即,写入计数分布的前k%)内时,可以将存储块检测为热存储块。
在步骤S450,耗损均衡模块230可以查验检测到的热存储块的交换历史。多个存储块可以具有处于第一状态或第二状态的交换历史。第一状态中的交换历史可以表示对应的存储块还未被交换,而第二状态中的交换历史可以表示对应的存储块已经被交换。耗损均衡模块230可以查验与检测到的热存储块相对应的标志信息FLAG,并且查验检测到的热存储块是否已经被交换。
当检测到的热存储块的交换历史处于第一状态(S450的第一状态)时,在步骤S460,耗损均衡模块230可以将检测到的热存储块与冷存储块列表的冷存储块进行交换。在检测到的热存储块和冷存储块之间交换之后,在步骤S470,耗损均衡模块230可以将交换的热存储块的交换历史改变到第二状态。
当检测到的热存储块的交换历史处于第二状态(S450的第二状态)时,在步骤S480,耗损均衡模块230可以将检测到的热存储块的写入操作的次数与其他存储块的写入操作的次数再次进行比较。基于储存在分布表中的多个存储块的写入计数分布,当检测到的热存储块的写入操作的次数与在第二上限范围(即,前k-a%)内的存储块的写入操作的次数相对应时(S480的“是”),在步骤S490,耗损均衡模块230可以将检测到的热存储块与冷存储块列表的冷存储块进行交换。
即,基于写入操作的次数,当检测到的热存储块包括在分布的第二上限范围内时,可以将检测到的热存储块与冷存储块进行交换。在这种情况下,第二上限范围可以比第一上限范围高。参考图2,分布的第二上限范围可以表示红热区域。因此,检测到的热存储块包括在红热区域中,并且可以与冷存储块交换,而不管交换历史如何。
图5图示其中耗损均衡模块230检测要与热存储块交换的冷存储块并且管理冷存储块列表的操作。
参考图5,当存储器件300在空闲状态下操作时,耗损均衡模块230可以从多个存储块中检测冷存储块并且将冷存储块添加到冷存储块列表中。可选地,在步骤S510,耗损均衡模块230可以查验冷存储块列表,并且在步骤S520,当冷存储块的数量等于或小于参考值时,损均衡模块230可以从多个存储块检测中冷存储块。
当冷存储块的数量等于或小于参考值时(步骤S520的“是”),在步骤S530,耗损均衡模块230可以依次或随机从多个存储块中选择一个。耗损均衡模块230可以从写入操作查验单元210查验选中的存储块的写入操作的次数。
基于储存在分布表中的多个存储块的写入计数分布,耗损均衡模块230根据查验的写入操作的次数来检测选中的存储块是否为冷存储块。为此,在步骤S550,基于多个存储块的写入计数分布,耗损均衡模块230可以将查验的写入操作的次数与其他存储块的写入操作的次数进行比较。
当查验的选中的存储块的写入操作的次数与写入计数分布处于第一下限范围(即,后k%)内的存储块的写入操作的次数相对应时(S550的“是”),耗损均衡模块230可以将选中的存储块检测为冷存储块。即,基于写入操作的次数,当选中的存储块包括在分布的第一下限范围内时,可以将选中的存储块检测为冷存储块。因此,在步骤S560,可以将选中的存储块添加到冷存储块列表的第一列表中。
当选中的存储块未包括在写入计数分布的第一下限范围内时(S550的否),在步骤S570,耗损均衡模块230可以将选中的存储块的写入操作的次数与其他存储块的写入操作的次数再次进行比较。基于储存在分布表中的多个存储块的写入计数分布,当选中的存储块的写入操作的次数与写入计数分布在第二下限范围(即,后k+a%)内的存储块的写入操作的次数相对应时(S570的“是”),耗损均衡模块230可以将选中的存储块检测为预冷(即,温-冷)存储块。即,基于写入操作的次数,当选中的存储块包括在写入计数分布的第二下限范围内时,可以将选中的存储块检测为温-冷存储块。在这种情况下,第二下限范围可以比第一下限范围高。因此,在步骤S560,可以将选中的存储块添加到冷存储块列表的第二列表中。
当选中的存储块未包括在写入计数分布的第二下限范围内时(S570的否),在步骤S530,耗损均衡模块230可以选择与多个存储块挨着的存储块,或者可以随机选择其他存储块,并且可以重复步骤S540、S550、S560和S570的操作用于检测冷存储块。此外,当查验与检测的热存储块交换的冷存储块时,耗损均衡模块230可以从冷存储块列表的第一列表到第二列表来查验冷存储块。即,耗损均衡模块230可以首先查验第一列表中的冷存储块,并且当在第一列表没有检测到冷存储块时,可以查验第二列表中的预冷(即,温-冷)存储块。
在检测图4和图5所示的热存储块和冷存储块的操作之前,尽管在附图中未示出,但是可以执行用于管理多个存储块的写入计数分布的操作。即,在写入操作查验单元210对多个存储块被执行的写入操作的次数进行计数之后,写入计数分布管理模块220(参见图1)可以基于计数的次数来管理分布表中的多个存储块的写入计数分布。写入计数分布管理模块220可以将多个存储块的写入操作的次数划分成多个范围,对包括在各个部分中的存储块的数量进行计数,并且将计数的数量储存在分布表中。随着连续执行写入操作,可以改变包括在各个范围内的存储块的数量,并且也可以改变由写入计数分布管理模块220储存在分布表中的值。因此,如图2所示,与分布表相对应的多个存储块的写入计数分布可以根据写入操作向右侧移位。
在本技术中,在多个存储块之中,已经被执行相对大量的写入操作的热存储块与已经被执行相对少量的写入操作的冷存储块交换,使得交换的热存储块的历史可以被单独管理。基于这种交换历史,即使被交换一次的存储块被检测为热存储块,也能够基本上防止存储块被再次交换并且减少耗损水平的任意增加。
此外,根据基于写入操作的次数的存储块的分布,能够细分检测到热存储块或冷存储块的区域。因此,在热存储块的情况下,增加了条件加强区域,使得可以检测要进行耗损均衡的热(即,红-热)存储块,而不管交换历史如何。在冷存储块的情况下,增加了条件宽松区域,使得尽管冷存储块未被很好地检测,也可以在列表中检测并保存预冷(即,温-冷)存储块。
尽管为了说明的目的已经描述了各种实施例,但是对于本领域技术人员明显的将是,在不脱离如所附权利要求所限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (20)
1.一种存储***,包括:
存储器件,包括多个存储块;
写入操作查验单元,被配置为对各个存储块被执行的写入操作的次数进行计数;
写入计数分布管理模块,被配置为基于计数的写入操作的次数来管理存储块的分布;以及
耗损均衡模块,被配置为基于计数的写入操作的次数和所述分布来从所述多个存储块检测热存储块和冷存储块,
其中,耗损均衡模块管理热存储块的历史以及根据管理的历史来将热存储块与冷存储块进行交换。
2.如权利要求1所述的存储***,其中,写入计数分布管理模块将计数的写入操作的次数划分为多个部分,基于计数的次数对包括在各部分中的存储块的数量进行计数,以及将计数的存储块的数量储存在分布表中。
3.如权利要求1所述的存储***,其中,耗损均衡模块使用表示热存储块是否被交换的标志信息来管理热存储块的历史。
4.一种存储***的操作方法,包括:
基于对各个存储块执行的写入操作的次数来管理多个存储块的分布;
基于所述分布来检测存储块之中的热存储块;
查验检测到的热存储块的历史;
当检测到的热存储块的历史处于第一状态时,将检测到的热存储块与冷存储块列表的冷存储块进行交换;以及
将交换的热存储块的历史改变为第二状态。
5.如权利要求4所述的存储***的操作方法,其中,检测热存储块包括:
查验对所述多个存储块之中的存储块执行的写入操作的次数;以及
基于查验的次数,当存储块包括在所述分布的第一上限范围内时,将存储块检测为热存储块。
6.如权利要求5所述的存储***的操作方法,其中,将存储块检测为热存储块包括:
基于表示与所述多个存储块之中的写入操作的次数的划分部分相对应的存储块的数量的分布表,将查验的数量与对在所述分布的第一上限范围内包括的一个或更多个存储块执行的写入操作的次数进行比较。
7.如权利要求5所述的存储***的操作方法,还包括:
当检测到的热存储块的历史处于第二状态时,查验检测到的热存储块是否包括在所述分布的比第一上限范围高的第二上限范围内;以及
当检测到的热存储块包括在所述分布的第二上限范围内时,将检测到的热存储块与冷存储块进行交换。
8.如权利要求4所述的存储***的操作方法,还包括:
当冷存储块列表的冷存储块的数量等于或小于参考值时,从所述多个存储块中检测冷存储块,以及将检测到的冷存储块添加到冷存储块列表。
9.如权利要求8所述的存储***的操作方法,其中,检测冷存储块以及将检测到的冷存储块添加到冷存储块列表包括:
查验所述多个存储块之中的第一存储块的写入操作的次数;以及
基于查验的次数,当第一存储块包括在所述分布的第一下限范围内时,将第一存储块添加到冷存储块列表的第一列表。
10.如权利要求9所述的存储***的操作方法,其中,检测冷存储块以及将检测到的冷存储块添加到冷存储块列表还包括:
基于查验的次数,当第一存储块在所述分布的第一下限范围之外时,查验第一存储块是否包括在所述分布的比第一下限范围高的第二下限范围内;以及
当第一存储块包括在所述分布的第二下限范围内时,将第一存储块添加到冷存储块列表的第二列表。
11.如权利要求10所述的存储***的操作方法,其中,当第一存储块在所述分布的第二下限范围之外时,对所述多个存储块之中的第二存储块重复所述检测冷存储块以及将检测到的冷存储块添加到冷存储块列表的步骤。
12.如权利要求10所述的存储***的操作方法,其中,将检测到的热存储块与冷存储块列表的冷存储块进行交换包括:
按照来自冷存储块列表的第一列表和第二列表的顺序来查验要被交换的冷存储块。
13.如权利要求4所述的存储***的操作方法,其中,基于各个存储块的写入操作的次数来管理分布包括:
对各个存储块被执行的写入操作的次数进行计数;以及
将计数的写入操作的次数划分为多个部分,基于计数的写入操作的次数对包括在各个部分中的存储块的数量进行计数,以及将计数的存储块的数量储存在分布表中。
14.如权利要求4所述的存储***的操作方法,其中,第一状态表示检测到的热存储块未被交换,而第二状态表示检测到的热存储块被交换。
15.一种存储***的操作方法,包括:
在多个存储块之中,查验存储块的写入操作的次数;
基于查验的写入操作的次数,当存储块包括在存储块的分布的第一上限范围内时,将存储块检测为热存储块;
查验检测到的热存储块的历史;
当检测到的热存储块的历史处于第一状态时,将检测到的热存储块与冷存储块列表的冷存储块进行交换;以及
将交换的热存储块的历史改变为第二状态。
16.如权利要求15所述的存储***的操作方法,还包括:
当检测到的热存储块的历史处于第二状态时,查验检测到的热存储块是否包括在所述分布的比第一上限范围高的第二上限范围内;以及
当检测到的热存储块包括在所述分布的第二上限范围内时,将检测到的热存储块与冷存储块进行交换。
17.如权利要求15所述的存储***的操作方法,还包括:
当冷存储块列表的冷存储块的数量等于或小于参考值时,从所述多个存储块中检测冷存储块,以及将检测到的冷存储块添加到冷存储块列表。
18.如权利要求17所述的存储***的操作方法,其中,检测冷存储块以及将检测到的冷存储块添加到冷存储块列表包括:
查验所述多个存储块之中的第一存储块的写入操作的次数;以及
基于查验的写入操作的次数,当第一存储块包括在所述分布的第一下限范围内时,将第一存储块添加到冷存储块列表的第一列表。
19.如权利要求18所述的存储***的操作方法,其中,检测冷存储块以及将检测到的冷存储块添加到冷存储块列表还包括:
基于查验的写入操作的次数,当第一存储块在所述分布的第一下限范围之外时,查验第一存储块是否包括在所述分布的比第一下限范围高的第二下限范围内;以及
当第一存储块包括在所述分布的第二下限范围内时,将第一存储块添加到冷存储块列表的第二列表。
20.如权利要求19所述的存储***的操作方法,其中,当第一存储块在所述分布的第二下限范围之外时,对所述多个存储块之中的第二存储块重复所述检测冷存储块以及将检测到的冷存储块添加到冷存储块列表的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160138385A KR20180045091A (ko) | 2016-10-24 | 2016-10-24 | 메모리 시스템 및 이를 이용한 웨어-레벨링 방법 |
KR10-2016-0138385 | 2016-10-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107977319A true CN107977319A (zh) | 2018-05-01 |
CN107977319B CN107977319B (zh) | 2021-06-25 |
Family
ID=61970274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710595571.8A Active CN107977319B (zh) | 2016-10-24 | 2017-07-20 | 存储***及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10656832B2 (zh) |
KR (1) | KR20180045091A (zh) |
CN (1) | CN107977319B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020000817A1 (zh) * | 2018-06-28 | 2020-01-02 | 郑州云海信息技术有限公司 | 一种归置组所属硬盘分配方法、***、装置及存储介质 |
WO2020019255A1 (zh) * | 2018-07-26 | 2020-01-30 | 华为技术有限公司 | 一种数据块处理的方法及控制器 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102634813B1 (ko) * | 2016-10-10 | 2024-02-13 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102507646B1 (ko) * | 2018-02-01 | 2023-03-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
CN110413537B (zh) * | 2019-07-25 | 2021-08-24 | 杭州电子科技大学 | 一种面向混合固态硬盘的闪存转换层及转换方法 |
US11320987B2 (en) * | 2019-08-29 | 2022-05-03 | Micron Technology, Inc. | Scanning techniques for a media-management operation of a memory sub-system |
KR20210092860A (ko) | 2020-01-16 | 2021-07-27 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 스토리지 장치 |
CN114860624B (zh) * | 2022-05-23 | 2023-04-28 | 深圳市芯存科技有限公司 | 一种基于Nandflash芯片的数据擦写方法及*** |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294490A1 (en) * | 2006-06-20 | 2007-12-20 | International Business Machines Corporation | System and Method of Updating a Memory to Maintain Even Wear |
CN101887350A (zh) * | 2009-05-14 | 2010-11-17 | E·孔法洛涅里 | 用于存储总线接口的pcm存储器 |
US7865761B1 (en) * | 2007-06-28 | 2011-01-04 | Emc Corporation | Accessing multiple non-volatile semiconductor memory modules in an uneven manner |
US20110246701A1 (en) * | 2009-03-24 | 2011-10-06 | Hitachi, Ltd. | Storage apparatus and its data control method |
US20110264843A1 (en) * | 2010-04-22 | 2011-10-27 | Seagate Technology Llc | Data segregation in a storage device |
CN102508785A (zh) * | 2011-11-02 | 2012-06-20 | 清华大学 | 一种磨损均衡方法及装置 |
CN102799534A (zh) * | 2012-07-18 | 2012-11-28 | 上海宝存信息科技有限公司 | 基于固态存储介质的存储***及方法、冷热数据识别方法 |
CN104156317A (zh) * | 2014-08-08 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种非易失性闪存的擦写管理方法及*** |
CN104317527A (zh) * | 2014-09-29 | 2015-01-28 | 清华大学深圳研究生院 | 一种基于块状态表的磨损均衡方法及装置 |
CN105955672A (zh) * | 2016-05-19 | 2016-09-21 | 河南中天亿科电子科技有限公司 | 用于灵活控制损耗均衡的固态存储***及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6985992B1 (en) | 2002-10-28 | 2006-01-10 | Sandisk Corporation | Wear-leveling in non-volatile storage systems |
US9032137B2 (en) | 2012-11-21 | 2015-05-12 | Intel Corporation | Flexible wear management for non-volatile memory |
-
2016
- 2016-10-24 KR KR1020160138385A patent/KR20180045091A/ko not_active Application Discontinuation
-
2017
- 2017-06-08 US US15/617,109 patent/US10656832B2/en active Active
- 2017-07-20 CN CN201710595571.8A patent/CN107977319B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070294490A1 (en) * | 2006-06-20 | 2007-12-20 | International Business Machines Corporation | System and Method of Updating a Memory to Maintain Even Wear |
US7865761B1 (en) * | 2007-06-28 | 2011-01-04 | Emc Corporation | Accessing multiple non-volatile semiconductor memory modules in an uneven manner |
US20110246701A1 (en) * | 2009-03-24 | 2011-10-06 | Hitachi, Ltd. | Storage apparatus and its data control method |
CN101887350A (zh) * | 2009-05-14 | 2010-11-17 | E·孔法洛涅里 | 用于存储总线接口的pcm存储器 |
US20110264843A1 (en) * | 2010-04-22 | 2011-10-27 | Seagate Technology Llc | Data segregation in a storage device |
CN102508785A (zh) * | 2011-11-02 | 2012-06-20 | 清华大学 | 一种磨损均衡方法及装置 |
CN102799534A (zh) * | 2012-07-18 | 2012-11-28 | 上海宝存信息科技有限公司 | 基于固态存储介质的存储***及方法、冷热数据识别方法 |
CN104156317A (zh) * | 2014-08-08 | 2014-11-19 | 浪潮(北京)电子信息产业有限公司 | 一种非易失性闪存的擦写管理方法及*** |
CN104317527A (zh) * | 2014-09-29 | 2015-01-28 | 清华大学深圳研究生院 | 一种基于块状态表的磨损均衡方法及装置 |
CN105955672A (zh) * | 2016-05-19 | 2016-09-21 | 河南中天亿科电子科技有限公司 | 用于灵活控制损耗均衡的固态存储***及方法 |
Non-Patent Citations (1)
Title |
---|
阳佶宏: "一种结合热数据识别的FTL算法", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020000817A1 (zh) * | 2018-06-28 | 2020-01-02 | 郑州云海信息技术有限公司 | 一种归置组所属硬盘分配方法、***、装置及存储介质 |
US11314426B2 (en) | 2018-06-28 | 2022-04-26 | Zhengzhou Yunhai Information Technology Co., Ltd. | Method, system, and apparatus for allocating hard disks to placement group, and storage medium |
WO2020019255A1 (zh) * | 2018-07-26 | 2020-01-30 | 华为技术有限公司 | 一种数据块处理的方法及控制器 |
US11360714B2 (en) | 2018-07-26 | 2022-06-14 | Huawei Technologies Co., Ltd. | Method and controller for processing, based on global write stamp, cold and disturbed data block |
Also Published As
Publication number | Publication date |
---|---|
US20180113620A1 (en) | 2018-04-26 |
KR20180045091A (ko) | 2018-05-04 |
CN107977319B (zh) | 2021-06-25 |
US10656832B2 (en) | 2020-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107977319A (zh) | 存储***及其操作方法 | |
CN108182034A (zh) | 存储***及其操作方法 | |
CN107977320A (zh) | 存储***及其损耗均衡方法 | |
KR101437397B1 (ko) | 비휘발성 메모리 장치의 데이터 관리 방법 및 맵핑 테이블업데이트 방법 | |
CN102047341B (zh) | 用于混合非易失性固态存储***的疲劳管理***和方法 | |
CN103810110B (zh) | 存储器控制装置、存储器***和信息处理*** | |
US20130339574A1 (en) | Variability aware wear leveling | |
CN104572490B (zh) | 半导体器件及其操作方法 | |
CN104798055B (zh) | 存储器控制器、数据存储装置和存储器控制方法 | |
US9218285B2 (en) | Variable mapping of memory accesses to regions within a memory | |
CN106469029A (zh) | 数据分层存储处理方法、装置和存储设备 | |
CN105843553A (zh) | 包括能够进行重写操作的存储装置的存储***的操作方法 | |
JP6158265B2 (ja) | キャッシュメモリシステム | |
CN110109611A (zh) | 存储***及其操作方法 | |
CN106575205A (zh) | 可选择的存储访问时间 | |
CN107102816A (zh) | 存储***及其操作方法 | |
KR20190019429A (ko) | 메모리 시스템 및 그의 동작방법 | |
CN107463509A (zh) | 缓存管理方法、缓存控制器以及计算机*** | |
CN112817880A (zh) | 一种固态硬盘及其磨损平衡方法和终端设备 | |
CN109524046A (zh) | 一种低内存消耗的闪存磨损均衡算法 | |
CN107544915A (zh) | 存储***及其地址映射方法和访问方法 | |
CN107958690A (zh) | 数据存储装置及其操作方法 | |
TW201833781A (zh) | 管理裝置、資訊處理裝置及管理方法 | |
KR102634813B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
CN108536610A (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 |