CN101236789B - 检测静态数据区、磨损均衡和合并数据单元的方法和装置 - Google Patents

检测静态数据区、磨损均衡和合并数据单元的方法和装置 Download PDF

Info

Publication number
CN101236789B
CN101236789B CN2007101800610A CN200710180061A CN101236789B CN 101236789 B CN101236789 B CN 101236789B CN 2007101800610 A CN2007101800610 A CN 2007101800610A CN 200710180061 A CN200710180061 A CN 200710180061A CN 101236789 B CN101236789 B CN 101236789B
Authority
CN
China
Prior art keywords
aging
data
value
unit
read
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.)
Expired - Fee Related
Application number
CN2007101800610A
Other languages
English (en)
Other versions
CN101236789A (zh
Inventor
郑圣勋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN101236789A publication Critical patent/CN101236789A/zh
Application granted granted Critical
Publication of CN101236789B publication Critical patent/CN101236789B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

提供了一种用于非易失性数据存储设备的磨损均衡的方法和装置,从而通过在非易失性数据存储设备的每个数据单元中存储指明写入时间的老化值、并基于老化值检测静态数据区来使磨损均衡效果最大化。该方法包括:在被分配为在其中写入数据的每个单元中存储指明写入时间的老化值;读取存储在单元中的老化值;以及基于所读取的老化值确定静态数据区。因此,可以在不增加计算开销的情况下正确地检测静态数据区能,并且可以通过向和从静态数据区移动数据来增加整个存储装置的磨损均衡效果,从而延长了存储设备的寿命。

Description

检测静态数据区、磨损均衡和合并数据单元的方法和装置
相关申请的交叉引用 
本申请声明要求2006年12月18日向韩国知识产权局提交的韩国专利申请No.10-2006-0129655的优先权,在此作为参考合并其全文。 
技术领域
本发明涉及一种磨损均衡(wear-leveling)方法,并且更加特别地,涉及一种用于非易失性数据存储设备的装置和方法,由此通过在非易失性数据存储设备的每个数据单元中存储指明写入时间的老化值、以及使用老化值检测静态数据区,来使磨损均衡效果最大化。 
背景技术
近来,由于闪存的特性,诸如低耗电量、小尺寸、低发热量和高稳定性,以及由于单个闪存的快速增长的存储量,使得闪存作为在包括移动设备的各种多媒体设备中使用的一种非易失性数据存储设备而广泛地用作优选的存储设备。 
然而,一般地,闪存具有低的编程(写入)速度,并且,为了更新记录数据的块,必须在针对该块执行写入操作之前对该块进行擦除。 
构成擦除操作的基本单元的每个块可以承受多次擦除计数,称为承受条件。例如,对于单级单元(SLC:Single Level Cell)型为100000次擦除计数而对于多级单元(MLC)型为10000次擦除计数。承受条件也被应用到可以执行写入和擦除操作的其它非易失性数据存储设备,因此,下面的描述一般可应用到所有的非易失性数据存储设备中。 
如果在存储器的特定块中发生频繁的更新,则由于老化过程导致生成坏的块,从而导致整个存储器的寿命的快速减少。为了防止老化过程,用于管理闪存的文件系统,例如闪存翻译层(FTL)系统,要求磨损均衡方案,并且存储器的寿命很大程度上取决于所采用的磨损均衡方法。 
图1是示出了根据已有技术当使用仅对运行时间进行计数的方法时、闪 存的每个块的擦除计数数量的图。 
用于管理擦除计数数量的磨损均衡方法一般使用存储每个块的擦除计数数量的方法,该方法可以被分为两种方法。第一种方法是其中将包含关于擦除计数数量的信息的管理表存储在闪存上,以及第二种方法是其中将包含关于擦除计数数量的信息的管理表存储在用于驱动闪存的系统的存储器(随机存取存储器(RAM))上。上述第二种方法是仅对运行时间进行计数的方法。 
根据第一种方法(存储在闪存上),具有闪存的物理块地址的擦除计数数量被存储在包括在闪存中的块映射(map)表中,并且只有映射表高速缓存被存储在系统存储器中。因此,因为每个块的擦除计数的数量被存储在闪存中,所以可以执行正确的闪存磨损均衡,然而,由于关于擦除计数数量的附加信息,块映射表的计算开销变为两倍大。 
根据第二种方法(仅对运行时间进行计数的方法),只有物理块地址被存储在包括在闪存中的块映射表上,并且以擦除计数阵列形式在系统存储器中存储和管理关于擦除计数数量的信息。因为当系统的电力关断时,关于擦除计数数量的信息被复位,所以很难执行理想的闪存磨损均衡,然而,不需要计算开销来更新包括在闪存中的块映射表。 
参照图1,当使用其中没有计算开销的第二种方法(仅对运行时间进行计数的方法)时,即使由于利用擦除计数数量管理的磨损均衡方法、基本上通过FTL执行的地址重新映射和垃圾收集功能,一般也显示擦除计数数量。参考块编号0到749,可以看出每个块的擦除计数之间的差不是很大。 
然而,参考块编号为749到953(参见附图标记110),每块的擦除计数数量很小,并因此,块编号为749到953的块与其它周围块之间的擦除计数数量的差很大。区110是静态数据区,其中数据被保护很长时间而不被更新或擦除。当用第二种方法时,由于复位了关于擦除计数数量的信息,很难准确地检测静态数据区110。 
在使用第二种方法(仅对运行时间进行计数的方法)的磨损均衡方法中,因为当系统电力关断时与磨损有关的信息(关于擦除计数数量的信息)被复位,所以如果静态数据区110在存储设备中广泛地分布,则磨损均衡效果将相当大地减小。 
图2是用于描述根据已有技术、关于闪存中的静态区的磨损均衡方法的 流程图。 
参照图2,在根据已有技术的关于静态区的磨损均衡方法中,在操作210中对写入或擦除操作的数量进行计数,并当计数值是所选数目,例如1000,的倍数时,在操作220中执行任意处理,并且在操作230开始磨损均衡方法。通过在操作240中设置特定的选择顺序或在操作250中激活任意处理,在操作260中选择一单元,在操作270中将所选择的单元的数据移动到另一个自由单元,并且擦除所选择的单元。 
然而,根据磨损均衡方法,因为关于整个闪存使用任意功能发生块的移动或调换(swapping),所以没有处于静态数据区中的块的调换频繁发生。也就是说,因为在空闲单元之间的调换或频繁更新的块的调换发生、并且此外发生伴随调换的不必要的擦除操作,所以整个闪存的寿命减小。 
发明内容
本发明提供了一种磨损均衡方法和装置,由此通过在非易失性数据存储设备的每个数据单元中存储用于指明写入时间的老化值、并准确地检测静态数据区而使磨损均衡效果最大化。 
根据本发明的一方面,提供一种在非易失性数据存储设备中检测静态数据区的方法,该方法包括:在被分配为在其中写入数据的每个单元中存储指明写入时间的老化值;读取存储在单元中的老化值;以及基于所读取的老化值确定该单元是否为静态数据区。 
所述老化值可指明当写入数据时的相对顺序。 
存储老化值的步骤可包括:当在擦除每个单元之后写入数据时存储老化值,并且可以在每个单元的备用区中存储该老化值。 
该老化值可以是通过存在于非易失性数据存储设备中的至少一个老化计数器来记录的,所述老化计数器具有老化计数器值,并且每当分配其中没有记录数据的空闲单元时,该老化计数器改变其老化计数器值,以及所述老化计数器值可以通过依次增加来改变。 
老化计数器值可被记录在关于所分配的空闲单元的映射表的备用区中,并当该映射表被更新时被存储。 
所存储的老化值可以与当记录与该老化值一起存储的数据时的老化计数器值相同。 
非易失性存储设备可以是闪存,每个单元可以是数据块,存储老化值的备用区可以是该数据块的第一页的备用区,并且每一个数据块可存在一个老化值。 
可以在驱动非易失性数据存储设备的系统的停歇时间期间,执行对被存储在单元中的老化值的读取,并且所述读取在单元中存储的老化值可以是相对于向其分配数据的所有单元来依次执行的。 
基于所读取的老化值来确定单元是否为静态数据区的步骤还可以包括比较所读取的老化值和老化计数器值,并且比较所读取的老化值和老化计数器值的步骤可包括:比较所读取的老化值和老化计数器值,并且如果在所读取的老化值和老化计数器值之间的差大于预定的阈值,则确定具有所读取的老化值的单元为静态数据区。 
根据本发明另一方面,提供一种用于非易失性数据存储设备中的磨损均衡方法,该方法包括:在被分配为在其中写入数据的每个单元中存储指明写入时间的老化值;读取存储在单元中的老化值;基于所读取的老化值确定该单元是否为静态数据区;以及将处于被确定为静态数据区的单元中的数据移动到另一单元。 
所述老化值可指明当写入数据时的相对顺序,存储老化值的步骤可包括:当记录数据时存储老化值,并且可以在每个单元的备用区中存储该老化值。 
该老化值可以是通过存在于非易失性数据存储设备中的至少一个老化计数器来记录,并且所述老化计数器可具有老化计数器值,并且每当分配其中没有记录数据的空闲单元时,该老化计数器改变其老化计数器值。 
可以在驱动非易失性数据存储设备的系统的停歇时间期间,执行对所存储的老化值的读取,并且可以相对于向其分配数据的所有单元来依次执行所述读取。 
基于所读取的老化值来确定单元是否为静态数据区的步骤还可以包括比较所读取的老化值和老化计数器值,其中,作为比较结果,如果在所读取的老化值和老化计数器值之间的差大于预定的阈值,则将具有所读取的老化值的单元检测为静态数据区。 
将被确定为静态数据区的单元中的数据移动到另一单元的步骤可包括将被确定为静态数据区的单元中的数据移动到没有记录数据的空闲单元,并 且该方法还包括更新所移动的数据已被移动到的单元的老化值。 
将被确定为静态数据区的单元中数据移动到另一单元的步骤可包括将被确定为静态数据区的单元中的数据与记录其他数据的另一单元调换,记录其他数据的另一单元可具有比确定为静态数据区的单元的老化值更大的老化值,并且该方法还可包括更新已记录调换的数据的单元的老化值。 
在驱动非易失性数据存储设备的系统的停歇时间期间,可执行将从被确定为静态数据区的单元中的数据移动到另一单元。 
根据本发明另一方面,提供一种用于在非易失性数据存储设备中合并数据单元的方法,该方法包括:在被分配为在其中写入数据的每个单元中存储指明写入时间的老化值;读取所存储的老化值;基于所读取的老化值来检测要被合并的多个单元;以及合并所述多个单元。 
所述老化值可指明当记录数据时的相对顺序,存储老化值的步骤可包括:当记录数据时存储老化值,并且可以在每个单元的备用区中存储该老化值。 
该老化值可以是通过存在于非易失性数据存储设备中的至少一个老化计数器来记录,其中所述老化计数器可具有老化计数器值,并且每当分配其中没有记录数据的空闲单元时,该老化计数器改变其老化计数器值。 
可以在驱动非易失性数据存储设备的系统的停歇时间期间,执行对所存储的老化值的读取,并且可以相对于向其分配数据的所有单元来依次执行所述读取。 
基于所读取的老化值来确定要合并的多个单元的步骤还可以包括比较所读取的老化值的每一个和老化计数器值,其中,作为比较结果,如果在所读取的老化值的每一个和老化计数器值之间的差大于预定的阈值,则将具有所读取的老化值的单元检测为要合并的单元。 
对所存储的老化值进行读取的步骤还包括计算与系统所识别的逻辑基本单元相关的多个数据单元的老化值的平均值。 
基于所读取的老化值对要合并的多个单元进行检测的步骤可包括将具有最低平均老化值的多个数据单元检测为要合并的单元。 
基于所读取的老化值对要合并的多个单元进行检测的步骤还可包括计算伴随合并的计算开销和效益,其中,所述计算开销对应于根据合并要移动的数据量和所计算的平均老化值,并且所述效益对应于由于合并而要被收集 在空闲单元中的废数据量。 
基于所读取的老化值对要合并的多个单元进行检测的步骤还可包括:计算反比于所计算出的计算开销并且正比于所计算出的效益的优先级值,其中,具有最高优先级值的多个数据单元被检测作为要合并的单元。 
根据本发明的另一方面,提供一种用于在非易失性数据存储设备中检测静态数据区的装置,该装置包括:老化记录器,在被分配为具有写入在其中的数据的每个单元中存储指明写入时间的老化值;老化读取器,读取存储在单元中的老化值;以及静态数据确定器,基于所读取的老化值来确定静态数据区。 
根据本发明的另一方面,提供一种用于非易失性数据存储设备中的磨损均衡装置,该装置包括:老化记录器,在被分配为具有写入在其中的数据的每个单元中存储指明写入时间的老化值;老化读取器,读取所存储的老化值;静态数据检测器,基于所读取的老化值来检测静态数据区;以及数据单元转换器,用于将处于所检测的静态数据区中的数据移动到另一单元。 
根据本发明的另一方面,提供一种用于在非易失性数据存储设备中合并数据单元的装置,该装置包括:老化记录器,在被分配为具有写入在其中的数据的每个单元中存储指明写入时间的老化值;老化读取器,读取所存储的老化值;合并目标搜索单元,其基于所读取的老化值来检测要合并的多个单元;以及合并单元,合并所检测的多个单元。 
根据本发明的另一方面,提供一种计算机可读记录介质,其存储用于运行静态数据区检测方法、磨损均衡方法、或者数据单元合并方法的计算机可读程序。 
附图说明
通过参考附图详细描述本发明的具体实施例,本发明实施例的上面和其它特征以及优点将变得更加明显,在附图中: 
图1是示出了根据已有技术借助于仅对运行时间进行计数的方法的、闪存的每个块的擦除计数数量的图; 
图2是用于描述根据已有技术关于闪存中的静态区的磨损均衡方法的流程图; 
图3是根据本发明的实施例、检测非易失性数据存储设备中的静态数据 区的方法的流程图; 
图4是根据本发明的实施例、借助于如图3中所图示的读取的老化值来确定静态数据区的处理的流程图; 
图5图示了根据本发明的实施例的每个数据单元的老化值和老化计数器值; 
图6是根据本发明另一个实施例、在非易失性数据存储设备中的磨损均衡方法的流程图; 
图7是根据本发明的实施例、图6所示的将静态数据移动到另一单元的处理的流程图; 
图8是根据本发明另一实施例、如图6所示的将静态数据移动到另一单元的处理的流程图; 
图9是根据本发明另一个实施例、在非易失性数据存储设备中合并数据单元的方法的流程图; 
图10图示了根据本发明另一实施例的数据单元合并处理; 
图11图示了根据本发明另一实施例、如图9所示的读取所存储的老化值并基于所读取的老化值检测将被合并的单元的处理的流程图; 
图12是根据本发明另一实施例、如图9所示的读取存储的老化值并基于所读取的老化值检测将被合并的单元的处理的流程图; 
图13是根据本发明另一实施例、在非易失性数据存储设备中用于检测静态数据区的装置的框图; 
图14是根据本发明另一实施例、在非易失性数据存储设备中的磨损均衡装置的框图; 
图15是根据本发明另一实施例、在非易失性数据存储设备用于合并数据单元的装置的框图。 
具体实施方式
下文中,本发明的优选实施例将参照附图被详细说明。尽管下文中所描述的是闪存,但该描述可以应用到所有的非易失性数据存储设备。 
图3是根据本发明实施例、检测非易失性数据存储设备中的静态数据区的方法的流程图。 
参照图3,在操作310中将老化值存储在每个数据单元。所述数据单元 可以是闪存的数据块。 
老化值是指明写入时间的参数,并且每次对于所有数据块记录数据时,存储每个数据块的一个老化值。也就是说,当在数据块的第一页中记录数据时,可以在该第一页备用(spare)区中记录老化值。数据块的每一页具有16或64字节的备用区,用于在其中记录纠错码(ECC)信息等等。因为要存储的老化值具有整数大小,因此该老化值可以使用一部分备用区。指明写入时间的老化值指明了数据块之间的相对写入顺序而不是绝对时间。通过在非易失性数据存储设备(例如闪存)中存在的至少一个老化计数器来记录每一个老化值,其中指明数据何时被存储的老化计数器值被记录为老化值。每当分配其中没有数据被记录的空闲(free)单元,例如空闲块时,老化计数器改变其值。例如,如果老化计数器值依次地增加1,则在数据块具有老化值20和数据块具有老化值21的情况下,对前者记录要相对比后者早。如上所述,老化值指明数据块的相对写入顺序。重要地,因为当数据块被擦除后将数据记录在数据块时存储老化值,所以如果老化值相对较小,则具有该老化值的数据块先被擦除。另外,因为当分配空闲区时总是更新映射表,所以当映射表被更新时可以将老化计数器值记录在映射表的相关页的备用区中。因此,没有附加的计算开销来操作老化值和老化计数器,并且不管电力是开启还是关断,非易失性数据存储设备总可以保持被称为“老化”的写入时间信息。 
在操作320中读取存储在数据块中的老化值。读取所存储的老化值的操作在系统停歇(idle)时间执行,并且对于被分配了数据的所有数据块来依次执行。 
在操作330中基于所读取的老化值来确定静态数据区,将参照图4进行详细描述。 
图4是根据本发明的实施例、图3所示的操作330的流程图。 
参照图4,为了确定静态数据区,在操作410中将所读取的老化值与当前老化计数器值进行比较。因为老化值是在相关数据块中记录数据的时间的代表值,所以将该老化值与当前老化计数器值进行比较。这是因为每当分配空闲块时,老化计数器值增加,通过比较老化计数器值与所选择的数据块的老化值,可以确定相对的写入时间。 
因此,如果在操作420中从当前老化计数器值减去所读取的老化值所获 得的结果大于预定的阈值,这意味着在相对长时间前在具有该所读取的老化值的数据块中记录了数据并且该数据没有被更新。所述预定阈值可以由系统设计者根据存储设备的目的来确定,或可以确定为导出最佳性能的值。 
因此,如果从当前老化计数器值减去所读取的老化值获得的结果大于预定的阈值,则在操作430中可以将具有所述老化值的数据块确定为静态数据区。 
图5图示了根据本发明的实施例、在闪存中使用老化值的示例。 
参照图5,现在将描述图5中所示的老化值和老化计数器值之间的相互关系。示出了作为非易失性数据存储设备的闪存510、以及与空白单元对应的第0到第2物理数据块511、512和513。将第0数据块作为数据块的代表示例,第一页包括数据区511a和备用区511b。如上所述,第0数据块的老化值520被存储在备用区511b中,并且在该情况下为12。在其它数据块的情况下,第1数据块512的老化值520是5,以及第2数据块513的老化值520为21。因为当前老化计数器值530是30,通过比较当前老化计数器值530和具有最小老化值的第1数据块512,可以知道因为分配了第1数据块512所以25个(=30-5)空闲块被另外地分配。因为第1数据块512没有被擦除,所以可以将第1数据块512确定为相对静态数据区。 
图6是根据本发明另一实施例、在非易失性数据存储设备中的磨损均衡方法的流程图,以及图7和8是如图6所示的操作640的流程图。 
参照图6、7和8,在被分配为在其中记录数据的每个单元(数据块)中存储用于指明写入时间的老化值(称为610)、读取所存储的老化值(称为620)、并通过所读取的老化值检测静态数据区(称为630)的操作610、620和630与图3所示的操作310、320和330相同。 
用两种方法中的一种而在操作640中将所检测数据区中的数据移动到另一数据块。 
根据第一种方法,在操作710中将静态数据移动到空闲块。因为被检测为静态数据区的数据块是很长时间没有被更新或擦除的数据块,所以通过将静态数据移动到空闲块、并指定具有静态数据的数据块作为新的空闲块,被指定为新的空闲块的数据块可以在下一次更新中被用作要新分配的空闲块,并因此,对于被指定为新的空闲块的数据块将更加频繁发生擦除和写入操作。如上所述,在操作720中,因为新的老化值(当前老化值)被更新、并 被存储在静态数据要移动到的第一页数据块的备用区中,该数据块最初为空闲块,所以在静态数据要移动到的数据块中存储的数据将不再被移动直到数据被检测为静态数据(当然,如果数据块连续地保持为静态数据区,则该数据块中的静态数据将再被移动到空闲块)。 
根据第二种方法,静态数据区的数据和没有被确定为静态数据区的另一数据块的数据被调换。为了调换,在操作810中检测具有比记录静态数据的数据块的老化值相对大的老化值的数据块。在操作820中,所检测数据块的数据与记录静态数据的数据块中的数据调换。在操作830中,更新已经记录所调换的数据的数据块的老化值。因为已知具有相对大老化值的数据块被后更新,所以被确定并检测为具有静态数据的数据块的数据块中的数据与具有相对大的老化值的数据块中的数据调换。因为这意味着再次更新具有相对大老化值的数据块中的数据的可能性大,所以可以通过调换实现磨损均衡。这是因为频繁更新导致垃圾收集操作更加频繁,导致空闲块的更多指定,从而允许对空闲块重复擦除和写入操作。 
在系统的停歇时间期间,可以执行检测静态数据区并移动或调换所检测的静态数据的操作,并且可以根据系统设计者的指定而选择性地应用第一种和第二种方法。 
图9是根据本发明另一实施例、在非易失性数据存储设备中合并数据单元的方法的流程图。 
在闪存存储设备中,通过使用频繁更新操作而将单个逻辑数据块分布并存储在多个物理数据块中。这种情况下,合并操作通常被用作通过收集由于更新(无效页)出现的未用区而生成空闲块的方法。也就是说,合并操作提供了一种将在多个数据块中分布并存储的数据收集到单个数据块、将多个数据块改变为空闲块、并重新使用该空闲块的方法。 
参照图9,该方法包括在被分配为在其中写入数据的每个单元中存储指明写入时间的老化值(操作910),读取存储的老化值(操作920),利用所读取的老化值检测多个要合并的单元(操作930),以及合并多个单元(操作940)。 
也就是说,当检测要合并的数据块时,选择存储静态数据的数据块。因此,利用合并操作将在静态数据区中的数据块收集为空闲块,使在下一个更新操作中在所收集的空闲块中执行擦除和写入操作,从而实现磨损均衡。 
图10图示了根据本发明另一实施例的数据单元合并处理。 
参照图10,图示了逻辑基本单元(4个数据块1010、1020、1030、和1040)。假设每个数据块具有4页。第一数据块1010具有4页无效页,第二数据块1020和第三数据块1030只有1页有效页,和第4数据块1040具有2页有效页和2页无效页。因为逻辑基本单元被写入并不具有任何干净(clean)页,所以在下一更新中,首先执行对4个数据块1010、1020、1030、和1040的合并操作。因此,通过将4页有效页收集(复制回)在一个空闲块1050中,生成了有效块1060和4个空闲块1070、1080、1090和1100。 
图11和12是图9所图示的操作920和930的流程图。 
如图10所图示的合并操作可通过应用两种方法之一、使用静态数据区来执行。 
第一种方法是计算多个数据块中每组老化值的平均值的方法,每组构成一个逻辑基本单元,并选择具有最低平均老化值的数据块合并。也就是说,因为当平均老化值比其它的其上数据被确定为静态数据的逻辑基本单元的老化值相对低时,根据当前实施例、通过选择要合并的静态数据生成空闲块实现了磨损均衡的目的。因此,在操作1110中计算关于系统所识别的逻辑基本单元的数据单元的老化值的平均值,并且在操作1120中检测具有最低平均值的数据单元作为要合并的单元。 
第二种方法是考虑计算开销和效益以能够以高速度写入成批数据的方法。示意性地,第二种方法包括计算关于逻辑基本单元的数据单元的老化值的平均值(操作1210),考虑优先级(操作1220),并基于该优先级检测要合并的数据块(操作1230)。 
合并操作的一个目的在于收集多个空闲块。因此,合并操作通过合并静态数据区中的数据块而实现了磨损均衡,并同时利用较低的计算开销而获得了更多的效益。计算开销对应于由于合并操作要移动的数据(有效数据)量,并且效益对应于在更新执行之前、作为合并操作的结果而被收集到空闲块的数据,即废的或无效的数据。如上所述,如果数据单元具有较低的平均老化值,则数据单元更适合合并,并因此当计算所述计算开销时可以考虑平均老化值。通过选择常数C1、C2和C3以便与计算开销成反比并与效益成正比,可以通过公式1计算优先级。 
优先级=要收集的无效数据×C1/(要移动的数据×C2× 老化值的平均值×C3)  (1) 
因此,如果数据块具有更高的优先级,则该数据块所具有的效益与计算开销的比率就更高,并因此具有更高优先级的数据块被选择为要合并的数据块。常数C1和C3可以由系统设计者根据系统的目的来选择,或可确定为通过试验示出最高性能的值。 
图13是根据本发明另一实施例、在非易失性数据存储设备中用于检测静态数据区的装置1300的框图。 
参照图13,装置1300包括:老化记录器1310,在被分配为具有写入在其中的数据的每个单元中存储用于指明写入时间的老化值;老化读取器1320,读取存储在单元中的老化值;以及静态数据确定器1330,通过所读取的老化值来确定静态数据区。 
图14是根据本发明另一实施例、在非易失性数据存储设备中的磨损均衡装置1400的框图。 
参照图14,磨损均衡装置1400包括:老化记录器1410,在被分配为具有写入在其中的数据的每个单元中存储用于指明写入时间的老化值;老化读取器1420,读取所存储的老化值;静态数据检测器1430,通过所读取的老化值来检测静态数据区;以及数据单元转换器1440,将所检测的静态数据区中的数据移动到另一单元。 
图15是根据本发明另一实施例、在非易失性数据存储设备中用于合并数据单元的装置1500的框图。 
参照图15,装置1500包括:老化记录器1510,在被分配为具有在其中写入的数据的每个单元上存储指明写入时间的老化值;老化读取器1520,读取所存储的老化值;合并目标搜索单元1530,通过所读取的老化值来检测多个要合并的单元;以及合并单元1540,合并多个所检测的单元。 
根据本发明实施例的检测静态数据区的方法、磨损均衡方法、以及合并数据单元方法也可以实施为计算机可读记录介质上的计算机可读代码。计算机可读记录介质是可以存储其后可由计算机系统读取的数据的任何数据存储设备。计算机可读取记录介质的示例包括只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光数据存储设备、以及载波(例如通过因特网的数据传输)。计算机可读记录介质还可以分布在与计算机系统耦接的网络上,使得计算机可读代码被以分布方式存储并执行。 
如上所述,根据依据本发明实施例在非易失性数据存储设备中的磨损均衡方法,由于使用存储在每个数据单元的老化值检测静态数据区,所以通过检测静态数据区数据可以比现有方法更合适地进行调换。另外,根据合并数据单元的方法,通过增加静态数据区作为在选择要合并的单元时可变的因素,可以增加选择静态数据作为要合并的数据的可能性。因此,可以在不增加计算开销的情况下正确地检测静态数据区,并且通过从和向静态数据区移动数据可以增加整个存储设备的磨损均衡效果增加,从而延长了存储设备的寿命。 
虽然参照本发明的优选实施例而具体示出并描述了本发明,但本领域技术人员将理解,在不脱离所附权利要求所限定的本发明的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。优选实施例应只被认为描述意义而不以限定为目的。因此,本发明的范围不是由本发明的详细描述而是由所附权利要求来限定,并且在所述范围内的所有差异被理解为包括在本发明中。 

Claims (23)

1.一种在非易失性数据存储设备中检测静态数据区的方法,该方法包括:
在被分配为在其中写入数据的每个单元中存储指明写入时间的老化值;
读取存储在单元中的老化值;以及
基于所读取的老化值确定该单元是否为静态数据区,
其中老化值指明当写入数据时的相对顺序,并且当数据块被擦除后将数据记录在数据块时存储老化值。
2.如权利要求1所述的方法,其中存储老化值的步骤包括在每个单元的备用区存储该老化值。
3.如权利要求2所述的方法,其中该老化值是通过存在于非易失性数据存储设备中的至少一个老化计数器来记录的。
4.如权利要求3所述的方法,其中所述老化计数器具有老化计数器值,并且每当分配其中没有记录数据的空闲单元时,该老化计数器改变其老化计数器值。
5.如权利要求4所述的方法,其中老化计数器值被记录在关于所分配的空闲单元的映射表的备用区中,并当该映射表被更新时存储所述老化计数器值。
6.如权利要求5所述的方法,其中所存储的老化值与当记录与该老化值一起存储的数据时的老化计数器值相同。
7.如权利要求1所述的方法,其中在驱动非易失性数据存储设备的系统的停歇时间期间执行对被存储在单元中的老化值的读取。
8.如权利要求7所述的方法,其中对被存储在单元中的老化值的读取是相对于向其分配数据的所有单元来依次执行的。
9.如权利要求8所述的方法,其中基于所读取的老化值确定该单元是否为静态数据区的步骤包括:比较所读取的老化值和老化计数器值,并且如果在所读取的老化值和老化计数器值之间的差大于预定的阈值,则确定具有所读取的老化值的单元为静态数据区。
10.如权利要求1所述的方法,还包括:通过将确定为静态数据区的单元中的数据移动到另一单元来进行磨损均衡。
11.如权利要求10所述的方法,其中老化值是通过存在于非易失性数据存储设备的至少一个老化计数器来记录的,以及
该老化计数器具有该老化计数器值,并且每次分配其中没有数据记录的空闲单元时,该老化计数器改变其老化计数器值。
12.如权利要求11所述的方法,其中基于所读取的老化值来确定单元是否是静态数据区的步骤还包括比较所读取的老化值和老化计数器值,
其中,作为比较的结果,如果在所读取的老化值和老化计数器值之间的差大于预定的阈值,则具有所读取的老化值的单元被检测为静态数据区。
13.如权利要求10所述的方法,其中将被确定为静态数据区的单元中的数据移动到另一单元的步骤包括将被确定为静态数据区的单元中的数据与记录其它数据的另一单元的数据调换。
14.一种用于在非易失性数据存储设备中合并数据单元的方法,该方法包括:
在被分配为具有写入在其中的数据的每个单元中存储指明写入时间的老化值;
读取所存储的老化值;
基于所读取的老化值来检测要被合并的多个单元;以及
合并所述多个单元,
其中老化值指明当写入数据时的相对顺序,并且当数据块被擦除后将数据记录在数据块时存储老化值,并且
其中,要合并的多个单元为静态数据区中的单元。
15.如权利要求14所述的方法,其中该老化值是通过存在于非易失性存储设备中的至少一个老化计数器来记录的,
其中老化计数器具有老化计数器值,并且每当分配没有记录数据的空闲单元时,该老化计数器改变其老化计数器值。
16.如权利要求15所述的方法,其中,在用于驱动非易失性数据存储设备的系统的停歇时间期间,执行对所存储的老化值的读取,并且该读取是相对于将数据分配到的所有单元来依次执行的。
17.如权利要求16所述的方法,其中基于所读取的老化值对要合并的多个单元进行检测的步骤还包括将所读取的老化值的每一个与老化计数器值进行比较,
其中,作为比较的结果,如果在所读取的老化值的每一个与和老化计数器值之间的差大于预定的阈值,则具有所读取的老化值的单元被检测为要合并的单元。
18.如权利要求16所述的方法,其中对所存储的老化值进行读取的步骤还包括计算与系统所识别的逻辑基本单元相关的多个数据单元的老化值的平均值。
19.如权利要求18所述的方法,其中基于所读取的老化值对要合并的多个单元进行检测的步骤还包括计算伴随合并的计算开销和效益,
其中所述计算开销对应于根据合并而要移动的数据量和所计算的平均老化值,并且所述效益对应于由于合并而要被收集在空闲单元中的废数据量。
20.如权利要求19所述的方法,其中基于所读取的老化值对要合并的多个单元进行检测的步骤还包括:计算反比于所计算出的计算开销并且正比于所计算出的效益的优先级值,
其中,具有最高优先级值的多个数据单元被检测作为要合并的单元。
21.一种在非易失性数据存储设备中检测静态数据区的装置,该装置包括:
老化记录器,在被分配为具有写入在其中的数据的每个单元中存储指明写入时间的老化值;
老化读取器,读取存储在单元中的老化值;以及
静态数据确定器,基于所读取的老化值来确定静态数据区,
其中老化值指明当写入数据时的相对顺序,并且当数据块被擦除后将数据记录在数据块时存储老化值。
22.如权利要求21所述的装置,还包括:
磨损均衡数据单元转换器,将处于所确定的静态数据区中的数据移动到另一单元。
23.一种用于在非易失性数据存储设备中合并数据单元的装置,该装置包括:
老化记录器,在被分配为具有写入在其中的数据的每个单元中存储指明写入时间的老化值;
老化读取器,读取所存储的老化值;
合并目标搜索单元,其基于所读取的老化值来检测要合并的多个单元;以及
合并单元,合并所检测的多个单元,
其中老化值指明当写入数据时的相对顺序,并且当数据块被擦除后将数据记录在数据块时存储老化值,并且
其中,要合并的多个单元为静态数据区中的单元。
CN2007101800610A 2006-12-18 2007-12-17 检测静态数据区、磨损均衡和合并数据单元的方法和装置 Expired - Fee Related CN101236789B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR129655/06 2006-12-18
KR1020060129655A KR100881669B1 (ko) 2006-12-18 2006-12-18 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치

Publications (2)

Publication Number Publication Date
CN101236789A CN101236789A (zh) 2008-08-06
CN101236789B true CN101236789B (zh) 2012-05-09

Family

ID=39259497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007101800610A Expired - Fee Related CN101236789B (zh) 2006-12-18 2007-12-17 检测静态数据区、磨损均衡和合并数据单元的方法和装置

Country Status (5)

Country Link
US (1) US8028121B2 (zh)
EP (1) EP1936632A1 (zh)
JP (1) JP4812739B2 (zh)
KR (1) KR100881669B1 (zh)
CN (1) CN101236789B (zh)

Families Citing this family (135)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7680977B2 (en) * 2004-02-26 2010-03-16 Super Talent Electronics, Inc. Page and block management algorithm for NAND flash
JP5032172B2 (ja) * 2007-03-28 2012-09-26 株式会社東芝 統合メモリ管理装置及び方法並びにデータ処理システム
US8135900B2 (en) 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
US8621138B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Flash storage controller execute loop
US8185706B2 (en) * 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
TWI373771B (en) * 2008-06-06 2012-10-01 Phison Electronics Corp Memory management method for non-volatile memory and controller using the same
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
US8527690B2 (en) * 2008-06-26 2013-09-03 Microsoft Corporation Optimization of non-volatile solid-state memory by moving data based on data generation and memory wear
FR2935501B1 (fr) * 2008-09-02 2010-12-10 Oberthur Technologies Procede et dispositif de gestion d'acces a une memoire non volatile reinscriptible.
CN101354681B (zh) * 2008-09-23 2010-12-01 美商威睿电通公司 存储器系统、非易失性存储器的磨损均衡方法及装置
CN101685675B (zh) * 2008-09-26 2014-01-15 美光科技公司 存储器单元操作
US8195899B2 (en) * 2008-09-26 2012-06-05 Micron Technology, Inc. Memory cell operation
US20100125696A1 (en) * 2008-11-17 2010-05-20 Prasanth Kumar Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor
WO2010076829A1 (en) * 2008-12-30 2010-07-08 Massimo Iaculo Wear leveling for erasable memories
JP2010165251A (ja) 2009-01-16 2010-07-29 Toshiba Corp 情報処理装置及びプロセッサ並びに情報処理方法
KR20100091544A (ko) * 2009-02-10 2010-08-19 삼성전자주식회사 메모리 시스템 및 그 마모도 관리 방법
US8195878B2 (en) * 2009-02-19 2012-06-05 Pmc-Sierra, Inc. Hard disk drive with attached solid state drive cache
CN102640227B (zh) * 2009-09-23 2016-06-01 纳姆迪兰斯有限公司 一种快闪存储器件及控制方法
US8543863B2 (en) * 2009-11-18 2013-09-24 Microsoft Corporation Efficiency of hardware memory access using dynamically replicated memory
KR101662273B1 (ko) 2009-11-27 2016-10-05 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 마모도 관리 방법
US8495281B2 (en) * 2009-12-04 2013-07-23 International Business Machines Corporation Intra-block memory wear leveling
TWI416525B (zh) * 2009-12-15 2013-11-21 Asolid Technology Co Ltd 非揮發性記憶體裝置及其損耗平均方法
JP2011198433A (ja) * 2010-03-23 2011-10-06 Toshiba Corp メモリシステム
US9104546B2 (en) * 2010-05-24 2015-08-11 Silicon Motion Inc. Method for performing block management using dynamic threshold, and associated memory device and controller thereof
US8949506B2 (en) 2010-07-30 2015-02-03 Apple Inc. Initiating wear leveling for a non-volatile memory
JP2012048770A (ja) * 2010-08-24 2012-03-08 Toshiba Corp 不揮発性半導体記憶装置、及び、メモリシステム
CN102385902A (zh) * 2010-09-01 2012-03-21 建兴电子科技股份有限公司 固态储存装置及其数据控制方法
IT1404161B1 (it) * 2010-12-30 2013-11-15 Incard Sa Metodo e sistema per migliorare il controllo del limite dei cicli di scrittura di una carta a circuito integrato
US8521948B2 (en) * 2011-01-03 2013-08-27 Apple Inc. Handling dynamic and static data for a system having non-volatile memory
CN102637145B (zh) * 2011-02-11 2015-06-17 慧荣科技股份有限公司 用来进行区块管理的方法、记忆装置及其控制器
US8909982B2 (en) * 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
CN102955743A (zh) * 2011-08-25 2013-03-06 建兴电子科技股份有限公司 固态储存装置及其损耗平均控制方法
KR101867282B1 (ko) * 2011-11-07 2018-06-18 삼성전자주식회사 비휘발성 메모리 장치의 가비지 컬렉션 방법
US9058289B2 (en) 2011-11-07 2015-06-16 Sandisk Enterprise Ip Llc Soft information generation for memory systems
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
CN103577342B (zh) 2012-07-25 2018-04-17 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
CN102866956B (zh) * 2012-09-14 2015-02-18 上海宝存信息科技有限公司 基于固态存储介质的数据实时跟踪存储系统及方法
KR20140050941A (ko) * 2012-10-22 2014-04-30 삼성전자주식회사 비휘발성 메모리 장치의 데이터 관리 방법
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9547586B2 (en) * 2013-01-03 2017-01-17 Macronix International Co., Ltd. Metadata containers with indirect pointers
US11249652B1 (en) * 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9734173B2 (en) * 2013-03-12 2017-08-15 Sap Se Assignment of data temperatures in a fragmented data set
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US10417123B1 (en) * 2013-05-16 2019-09-17 Western Digital Technologies, Inc. Systems and methods for improving garbage collection and wear leveling performance in data storage systems
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9323637B2 (en) 2013-10-07 2016-04-26 Sandisk Enterprise Ip Llc Power sequencing and data hardening architecture
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9229640B2 (en) 2013-11-15 2016-01-05 Microsoft Technology Licensing, Llc Inexpensive solid-state storage by throttling write speed in accordance with empirically derived write policy table
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9280429B2 (en) 2013-11-27 2016-03-08 Sandisk Enterprise Ip Llc Power fail latching based on monitoring multiple power supply voltages in a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9122636B2 (en) 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
CN104731515B (zh) * 2013-12-18 2018-02-23 华为技术有限公司 控制存储设备机群磨损均衡的方法及设备
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
CN104298615B (zh) * 2014-10-09 2017-04-19 重庆大学 一种存储器交换分区损耗的均衡方法
KR102282962B1 (ko) 2014-12-22 2021-07-30 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
KR102250423B1 (ko) 2015-01-13 2021-05-12 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
TWI585770B (zh) 2015-08-11 2017-06-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN106469019B (zh) * 2015-08-18 2020-01-07 群联电子股份有限公司 存储器管理方法、存储器控制电路单元及存储器储存装置
US20170153842A1 (en) * 2015-12-01 2017-06-01 HGST Netherlands B.V. Data allocation in hard drives
KR102593552B1 (ko) * 2016-09-07 2023-10-25 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그의 동작 방법
KR102630116B1 (ko) * 2016-10-18 2024-01-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI626541B (zh) * 2017-08-31 2018-06-11 慧榮科技股份有限公司 將資料寫入至快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN111104045B (zh) * 2018-10-25 2024-10-01 深圳市中兴微电子技术有限公司 一种存储控制方法、装置、设备和计算机存储介质
KR20200084201A (ko) * 2019-01-02 2020-07-10 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작방법
US11467980B2 (en) 2020-01-10 2022-10-11 Micron Technology, Inc. Performing a media management operation based on a sequence identifier for a block
US10892006B1 (en) * 2020-02-10 2021-01-12 Micron Technology, Inc. Write leveling for a memory device
US20220171713A1 (en) * 2020-11-30 2022-06-02 Micron Technology, Inc. Temperature-aware data management in memory sub-systems
US11494299B2 (en) 2021-02-18 2022-11-08 Silicon Motion, Inc. Garbage collection operation management with early garbage collection starting point
CN112908394B (zh) * 2021-02-23 2022-07-12 中国科学院微电子研究所 一种自动校验数据的sram安全存储系统及其方法
US11494102B2 (en) 2021-03-09 2022-11-08 Micron Technology, Inc. Media management operations based on a ratio of valid data
US20220300184A1 (en) * 2021-03-19 2022-09-22 Silicon Motion, Inc. Method of performing wear-leveling operation in flash memory and related controller and storage system
WO2024172428A1 (ko) * 2023-02-13 2024-08-22 삼성전자주식회사 데이터 캐싱을 위한 전자 장치 및 방법

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020184432A1 (en) * 2001-06-01 2002-12-05 Amir Ban Wear leveling of static areas in flash memory
US6542407B1 (en) * 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
US20040083335A1 (en) * 2002-10-28 2004-04-29 Gonzalez Carlos J. Automated wear leveling in non-volatile storage systems
CN1536489A (zh) * 2003-04-11 2004-10-13 英华达(上海)电子有限公司 非挥发性存储器的损耗平衡方法
US20050144358A1 (en) * 2003-12-30 2005-06-30 Conley Kevin M. Management of non-volatile memory systems having large erase blocks
CN1783034A (zh) * 2004-12-02 2006-06-07 富士通株式会社 存储系统及其控制方法和其程序
US20060155917A1 (en) * 2005-01-13 2006-07-13 Stmicroelectronics S.R.L. Optimizing write/erase operations in memory devices
US20060161728A1 (en) * 2005-01-20 2006-07-20 Bennett Alan D Scheduling of housekeeping operations in flash memory systems

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033438T2 (de) * 1989-04-13 2000-07-06 Sandisk Corp., Santa Clara Austausch von fehlerhaften Speicherzellen einer EEprommatritze
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
JP2914360B2 (ja) * 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
US7690031B2 (en) * 2000-01-06 2010-03-30 Super Talent Electronics, Inc. Managing bad blocks in flash memory for electronic data flash card
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
US7096313B1 (en) * 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
US7139863B1 (en) * 2003-09-26 2006-11-21 Storage Technology Corporation Method and system for improving usable life of memory devices using vector processing
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
JP2006252535A (ja) * 2005-02-09 2006-09-21 Hitachi Ulsi Systems Co Ltd 記憶装置
KR20060106993A (ko) * 2005-04-06 2006-10-13 주식회사 에스원 플래시 메모리 데이터 저장 방법
JP5130646B2 (ja) * 2005-06-06 2013-01-30 ソニー株式会社 記憶装置
KR100624973B1 (ko) 2005-06-29 2006-09-15 박상원 플래시 메모리의 효율적인 소거 횟수 평준화방법(k-평준화)
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US20070208904A1 (en) * 2006-03-03 2007-09-06 Wu-Han Hsieh Wear leveling method and apparatus for nonvolatile memory
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7653778B2 (en) * 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020184432A1 (en) * 2001-06-01 2002-12-05 Amir Ban Wear leveling of static areas in flash memory
US6542407B1 (en) * 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
US20040083335A1 (en) * 2002-10-28 2004-04-29 Gonzalez Carlos J. Automated wear leveling in non-volatile storage systems
CN1536489A (zh) * 2003-04-11 2004-10-13 英华达(上海)电子有限公司 非挥发性存储器的损耗平衡方法
US20050144358A1 (en) * 2003-12-30 2005-06-30 Conley Kevin M. Management of non-volatile memory systems having large erase blocks
CN1783034A (zh) * 2004-12-02 2006-06-07 富士通株式会社 存储系统及其控制方法和其程序
US20060155917A1 (en) * 2005-01-13 2006-07-13 Stmicroelectronics S.R.L. Optimizing write/erase operations in memory devices
US20060161728A1 (en) * 2005-01-20 2006-07-20 Bennett Alan D Scheduling of housekeeping operations in flash memory systems

Also Published As

Publication number Publication date
US8028121B2 (en) 2011-09-27
US20080147998A1 (en) 2008-06-19
KR20080056580A (ko) 2008-06-23
EP1936632A1 (en) 2008-06-25
CN101236789A (zh) 2008-08-06
JP2008152909A (ja) 2008-07-03
KR100881669B1 (ko) 2009-02-06
JP4812739B2 (ja) 2011-11-09

Similar Documents

Publication Publication Date Title
CN101236789B (zh) 检测静态数据区、磨损均衡和合并数据单元的方法和装置
CN101169751B (zh) 具有闪存设备的系统及其数据恢复方法
CN105934748B (zh) 用于储存系统中的损耗均衡的偏置
CN1078364C (zh) 存储器管理方法
CN102508788B (zh) Ssd及ssd垃圾回收方法和装置
US8219776B2 (en) Logical-to-physical address translation for solid state disks
CN101681314B (zh) 存储器系统
CN101241471A (zh) 快闪存储器系统及其垃圾收集方法
Kwon et al. FTL algorithms for NAND-type flash memories
CN101241472B (zh) 映射管理方法及系统
CN102576332A (zh) 电力中断管理
US8296503B2 (en) Data updating and recovering methods for a non-volatile memory array
CN110442529B (zh) 可配置的存储器系统及配置和使用该存储器系统的方法
CN104246764A (zh) 利用非均匀散列函数在非均匀访问存储器中放置记录的方法和装置
CN102419735A (zh) 存储器系统
CN101681299A (zh) 存储器系统
CN102292712A (zh) 逻辑地址偏移
CN103270500A (zh) 事务日志恢复
CN103970669A (zh) 用于加速在固态设备中的回收操作的物理到逻辑地址映射
CN112347001B (zh) 闪存垃圾回收的校验方法、装置及电子设备
Liu et al. GSSA: A resource allocation scheme customized for 3D NAND SSDs
CN102541753B (zh) 一种嵌入式存储器的读写优化方法
CN103744615A (zh) 一种动态补偿接收器及动态补偿接收方法
CN110502451A (zh) 固态硬盘垃圾回收方法、装置、固态硬盘和存储介质
CN102736981B (zh) 提高nor flash擦写寿命的方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120509

Termination date: 20181217