CN108089994B - 存储装置以及数据保存方法 - Google Patents

存储装置以及数据保存方法 Download PDF

Info

Publication number
CN108089994B
CN108089994B CN201810007643.7A CN201810007643A CN108089994B CN 108089994 B CN108089994 B CN 108089994B CN 201810007643 A CN201810007643 A CN 201810007643A CN 108089994 B CN108089994 B CN 108089994B
Authority
CN
China
Prior art keywords
block
erase count
minimum
blocks
sequence number
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
Application number
CN201810007643.7A
Other languages
English (en)
Other versions
CN108089994A (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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Priority to CN201810007643.7A priority Critical patent/CN108089994B/zh
Publication of CN108089994A publication Critical patent/CN108089994A/zh
Priority to US16/007,025 priority patent/US11249894B2/en
Priority to TW107145217A priority patent/TWI680460B/zh
Application granted granted Critical
Publication of CN108089994B publication Critical patent/CN108089994B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • 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)

Abstract

本发明提供一种存储装置以及数据保存方法。该存储装置包括:快闪式存储器阵列以及控制器。快闪式存储器阵列包括多个区块,多个区块中的最小抹除数量的区块的抹除次数为最小抹除次数。最小抹除次数为多个区块的抹除次数的最小值。当最小抹除数量的区块中的一个的数据被抹除时,控制器将最小抹除数量减1。

Description

存储装置以及数据保存方法
技术领域
本发明涉及一种快闪式存储器及其数据保存方法,特别涉及一种应用于快闪式存储器的静态耗损均衡(static wear-leveling)方法,进而提高快闪式存储器的使用寿命。
背景技术
随着工艺尺寸下降及多电压电平存储技术的发展,快闪式存储器的物理区块的抹除次数(Erase Count,EC)的理论值上限不断下降,而且由于使用者数据有冷热属性(即,频繁存取的数据称之为热数据,不常存取的数据称之为冷数据),所以导致每个物理区块的抹除次数有所差别。由于存放热数据的区块会因频繁抹除与写入使得抹除次数很快达到上限而坏掉,而存放冷数据的区块容量得不到充分利用,为了充分利用有限的快闪式存储器寿命,因而提出了静态耗损均衡(Static wear-leveling)算法。
由于静态耗损均衡算法是软件内部的控制操作,会对主机的性能产生影响,所以不好的选择策略会导致内部的数据搬移没有意义。例如,将一部分特别热的数据搬移到一个抹除次数很大的物理区块上,如此将无法达成防止该区块的抹除次数继续增长的目的;或者,累计使用过程中产生的抹除次数比较小的物理区块总是很难被抹除与写入,导致该区块的抹除次数显著地小于平均抹除次数,也使得该区块的利用率降低。
因此,我们有必要针对静态损耗均衡算法进行优化,以利在合适的时机选择最合适的物理区块来数据进行搬移,进而降低成本并有效的控制物理区块的抹除次数。
发明内容
有鉴于此,本发明提出一种存储装置,包括:一快闪式存储器阵列以及一控制器。上述快闪式存储器阵列包括多个区块,上述多个区块中的一最小抹除数量的区块的抹除次数为一最小抹除次数,其中上述最小抹除次数为上述多个区块的抹除次数的最小值。当上述最小抹除数量的上述区块中的一个的数据被抹除时,上述控制器将上述最小抹除数量减1。
本发明更提出一种数据保存方法,适用于一快闪式存储器阵列,其中上述快闪式存储器阵列包括多个区块上述多个区块中一最小抹除数量的区块为一最小抹除次数,其中上述最小抹除次数为上述多个区块的抹除次数的最小值,包括:抹除上述最小抹除数量的上述区块中的一个的数据;以及当上述最小抹除数量的区块中的一个的数据被抹除时,将上述最小抹除数量减1。
本实施例的技术方案能够避免控制器频繁扫描快闪式存储器阵列的操作,进而减少主机扫描快闪式存储器阵列的硬件开销。此外,由于最小抹除次数以及最小抹除数量存储至快闪式存储器阵列,当突然失去电源时最小抹除次数以及最小抹除数量依然得以保存。
附图说明
图1是显示根据本发明的一实施例所述的存储装置的方块图;
图2A和2B是显示根据本发明的一实施例所述数据保存方法的流程图;
图3是显示根据本发明的一实施例所述的快闪式存储器阵列的抹除次数的分布图;
图4是显示根据本发明的一实施例所述的快闪式存储器阵列的抹除次数的分布图;
图5是显示根据本发明的另一实施例所述的快闪式存储器阵列的抹除次数的分布图;以及
图6是显示根据本发明的一实施例所述的均衡磨损程序的数据搬移的示意图。
【符号说明】
100 存储装置
110 快闪式存储器阵列
120 控制器
200 数据保存方法
310 第一区块
320 第二区块
410 第三区块
420 第四区块
510 第五区块
520 第六区块
611 第一源区块
612 第二源区块
613 第三源区块
620 目标区块
ECave 平均抹除次数
ECmin 最小抹除次数
CEmax 最大抹除次数
SNmin 最小写入序号
SN1 第一写入序号
SN2 第二写入序号
SN3 第三写入序号
SND 目标写入序号
TH 目标临限值
THC 冷数据临限值
ECmin+1 第二最小抹除次数
S210~S280 步骤流程
具体实施方式
以下说明为本发明的实施例。其目的是要举例说明本发明一般性的原则,不应视为本发明的限制,本发明的范围当以权利要求书所界定者为准。
值得注意的是,以下所公开的内容可提供多个用以实践本发明的不同特点的实施例或范例。以下所述的特殊的元件范例与安排仅用以简单扼要地阐述本发明的精神,并非用以限定本发明的范围。此外,以下说明书可能在多个范例中重复使用相同的元件符号或文字。然而,重复使用的目的仅为了提供简化并清楚的说明,并非用以限定多个以下所讨论的实施例和/或配置之间的关系。此外,以下说明书所述的一个特征连接至、耦接至和/或形成于另一特征之上等的描述,实际可包含多个不同的实施例,包括该等特征直接接触,或者包含其它额外的特征形成于该等特征之间等等,使得该等特征并非直接接触。
图1是显示根据本发明的一实施例所述的存储装置的方块图。如图1所示,存储装置100包括快闪式存储器阵列110以及控制器120,其中快闪式存储器阵列110包括多个区块。根据本发明的一实施例,快闪式存储器阵列110为非及快闪式存储器(NAND flash)。根据本发明的另一实施例,快闪式存储器阵列110为或非快闪式存储器(NOR flash)。控制器120控制快闪式存储器阵列110,用以进行各种操作。
图2A和2B是显示根据本发明的一实施例所述的数据保存方法的流程图。根据本发明的一实施例,控制器120用以对快闪式存储器阵列110执行数据保存方法200,以下将结合图1以及图2A和2B,以利详细说明。
首先,控制器120对快闪式存储器阵列110的一抹除区块进行抹除操作(步骤S210)。根据本发明的一实施例,当控制器120完成抹除存储于抹除区块的数据时,控制器120将快闪式存储器阵列110的总抹除次数加1,并且利用总抹除次数以及快闪式存储器阵列110的区块的数量,计算快闪式存储器阵列110的平均抹除次数ECave。
当控制器120完成抹除操作时,控制器120维护快闪式存储器阵列110的最小抹除次数ECmin以及最小抹除数量EC_NUM(步骤S220),其中快闪式存储器阵列110的区块中抹除次数为最小抹除次数ECmin的区块的数量定义为最小抹除数量EC_NUM。
根据本发明的一实施例,每当前述抹除区块为一个具有最小抹除次数ECmin的区块时,控制器120将最小抹除数量EC_NUM减1。当最小抹除数量EC_NUM为0时,控制器120将最小抹除次数ECmin加1,并重新扫描快闪式存储器阵列110的每一区块的抹除次数,并根据快闪式存储器阵列110的所有区块的抹除次数,重新决定上述最小抹除数量EC_NUM。在一实施例中,前述扫描操作确定抹除次数为新的ECmin的区块的数量,以作为新的最小抹除数量EC_NUM;在另一实施例中,前述扫描操作比较所有区块的抹除次数以确定此时新的最小抹除次数ECmin,并确定抹除次数为该新的ECmin的区块数量作为最小抹除数量EC_NUM。
在一实施例中,存储装置100出厂时,其最小抹除次数ECmin被设定为0,最小抹除数量EC_NUM的初始值被设定为快闪式存储器阵列110中的区块总数。一旦有区块被抹除时,控制器120将最小抹除数量EC_NUM减1,直至所有的区块都至少被抹除一遍时,最小抹除数量EC_NUM减至0,此时将最小抹除次数ECmin加1(而为1),再扫描快闪式存储器阵列110的每一区块的抹除次数,确定抹除次数为新的ECmin(此时为1)的区块数量作为最小抹除数量EC_NUM。每当一个具有该最小抹除次数ECmin(此时为1)的区块再次被抹除时,控制器120将最小抹除数量EC_NUM减1。当前次扫描所得的最小抹除数量EC_NUM再次减为0时,控制器120将最小抹除次数ECmin加1(而为2),并重新扫描快闪式存储器阵列110的每一区块的抹除次数,确定抹除次数为新的ECmin(此时为2)的区块数量作为上述最小抹除数量EC_NUM。后面的流程依次类推,直至ECmin达到快闪式存储器阵列110的允许的最大可被抹除次数。
此外,在前述更新操作后,控制器120还将最小抹除次数ECmin以及最小抹除数量EC_NUM存储至快闪式存储器阵列110。存储至快闪式存储器阵列110的最小抹除次数ECmin以及最小抹除数量EC_NUM在掉电时不丢失,每当需要使用最小抹除次数ECmin时,从快闪式存储器阵列110特定的地址直接读取即可。
换句话说,假设快闪式存储器阵列110的区块的最大可被抹除次数为既定值,亦即,快闪式存储器阵列110的区块的抹除次数达到既定值时则不可再被写入数据,因此控制器120执行前述扫描操作以决定上述最小抹除数量EC_NUM的操作次数为该既定值。该既定值并不大,例如当快闪式存储器阵列110采用区块寿命较短的TLC(Trinary-Level Cell)技术时,其区块的最大可被抹除次数例如是300,则在该快闪式存储器阵列110的整个使用寿命期间,仅需执行300次前述扫描操作。因此,较之每当有使用最小抹除次数ECmin的需求就需要重新执行全盘扫描,并且执行全盘比较操作才能得出ECmin的技术方案,本实施例的技术方案能够避免控制器120频繁扫描快闪式存储器阵列110的操作,进而减少主机扫描快闪式存储器阵列110的硬件开销。此外,由于最小抹除次数ECmin以及最小抹除数量EC_NUM存储至快闪式存储器阵列110,当突然失去电源时最小抹除次数ECmin以及最小抹除数量EC_NUM依然得以保存。
接着,控制器120判断前述抹除区块的抹除次数与最小抹除次数EC_min的差是否超过目标临限值TH(步骤S230)。当抹除区块的抹除次数与最小抹除次数EC_min的差超过目标临限值TH时,则选择该抹除区块作为一均衡磨损程序的数据搬移的目标区块(步骤S240)。另一方面,当控制器120在步骤S230判断抹除区块的抹除次数与最小抹除次数EC_min的差不超过目标临限值TH时,控制器120结束数据保存方法200,即不对该抹除区块进行前述均衡磨损程序的数据搬移。
图3是显示根据本发明的一实施例所述的快闪式存储器阵列的抹除次数的分布图。如图3的实施例所示,快闪式存储器阵列110中,具有最小抹除次数ECmin的区块为1个,具有最大抹除次数ECmax的区块亦为1个,其中填满斜线的方块代表写满数据的区块,白色方块代表闲置的区块。值得注意的是,图3仅为举例,本发明并不局限于此,例如具有最小抹除次数ECmin的区块与具有最大抹除次数ECmax的区块均可为多个。
根据本发明的一实施例,当数据保存方法200的步骤230的抹除区块为第一区块310时,由于第一区块310的抹除次数为最大抹除次数ECmax,因此第一区块310的抹除次数与最小抹除次数ECmin的差超过目标临限值TH,因此控制器120选择第一区块310作为均衡磨损程序的数据搬移的目标区块。根据本发明的另一实施例,当数据保存方法200的步骤230的抹除区块为第二区块320时,由于第二区块320的抹除次数与最小抹除次数ECmin的差并未超过目标临限值TH,因此控制器120结束数据保存方法200,即不对该抹除区块(第二区块320)进行均衡磨损程序的数据搬移。
回到步骤S240,当控制器120选择抹除区块作为均衡磨损程序的数据搬移的目标区块时,控制器120更判断快闪式存储器阵列110的平均抹除次数ECave与最小抹除次数ECmin的差是否超过冷数据临限值THC(步骤S250)。当判断平均抹除次数ECave与最小抹除次数ECmin的差超过冷数据临限值THC时,控制器120选择具有最小抹除次数ECmin的一区块作为源区块(步骤S261)。
图4是显示根据本发明的一实施例所述的快闪式存储器阵列的抹除次数的分布图。如图4所示,由于快闪式存储器阵列110的平均抹除次数ECave与最小抹除次数ECmin的差超过冷数据临限值THC,因此控制器120选择一具有最小抹除次数ECmin的第三区块410作为源区块。值得注意的是,具有最小抹除次数ECmin的区块与具有最大抹除次数ECmax的区块均可为多个,并不局限于图4所示的数量。
当平均抹除次数ECave与最小抹除次数ECmin的差超过冷数据临限值THC时,代表最小抹除次数ECmin的增长速度过慢,控制器120选择具有最小抹除次数ECmin的区块作为源区块,使得具有最小抹除次数ECmin的区块被磨损的机会增加,进而均衡快闪式存储器阵列110的每一区块的抹除次数。
根据本发明的一实施例,控制器120更维护快闪式存储器阵列110的每一区块的写入序号WSN(Writing Serial Number)。写入序号是WSN记录一区块所写入数据的时间属性(即新或旧),其当一个区块被写满时赋值,表征各个区块被写满的先后顺序,其中最小写入序号WSNmin代表快闪式存储器阵列110中最早被写满的区块,最大写入序号WSNmax代表快闪式存储器阵列110中最晚被写满的区块。值得注意的是,在一实施例中,每一区块的写入序号WSN是当一个区块被写满时赋值,当该区块被抹除时清除,当该区块下一次被写满时再次赋值。
回到图2的步骤S261,当选择了具有最小抹除次数ECmin的区块作为源区块之后,控制器120更判断最大写入序号WSNmax与源区块的写入序号WSNsrc的差是否超过第一临限值(步骤S271),其中源区块为步骤S261所选择的具有最小抹除次数ECmin的区块。当最大写入序号WSNmax与源区块的写入序号WSNsrc的差超过第一临限值时,代表源区块的数据在当前时间点很久之前就被写满后就没有被再次写入,确为冷数据,因此控制器120执行均衡磨损程序的数据搬移(步骤S280)。
回到步骤S271,当最大写入序号与源区块的写入序号的差不超过第一临限值时,代表源区块的数据可能为刚写入而无法判定源区块的数据为冷数据。在此情形下,若是执行均衡磨损程序的数据搬移,将源区块的数据搬运至目标区块,恐不能减少目标区块的抹除机会,造成均衡磨损程序无效,因此控制器120此时结束数据保存方法200或返回步骤S261重新选择其它具有最小抹除次数ECmin的区块作为源区块。
现在参考图4,根据本发明的一实施例,当控制器120执行均衡磨损程序的数据搬移时,仅将源区块的有效数据搬移至目标区块,因此选择第三区块410可能不足以填满目标区块。根据本发明的一实施例,当第三区块410的有效数据不足以填满目标区块时,控制器120将再选择具有最小抹除次数ECmin的另一区块,例如第四区块420作为源区块。如果具有最小抹除次数ECmin的所有区块,例如第三区块410及第四区块420的有效数据加起来仍不足以填满目标区块,则控制器120进一步选择第二最小抹除次数ECmin+1的区块中的一个作为源区块,其中具有第二最小抹除次数ECmin+1的区块有四个,控制器120随机选择其中的第四区块430。值得注意的是,源区块通常是写满的区块,但本发明并不局限于此。
回到数据保存方法200的步骤S250,当判断平均抹除次数ECave与最小抹除次数ECmin的差不超过冷数据临限值THC时,控制器120选择具有最小写入序号WSNmin的区块作为源区块(步骤S262)。
图5是显示根据本发明的另一实施例所述的快闪式存储器阵列的抹除次数的分布图。如图5所示,由于快闪式存储器阵列110的平均抹除次数ECave与最小抹除次数ECmin的差不超过冷数据临限值THC,因此控制器120选择具有最小写入序号WSNmin的第五区块510和/或第六区块520作为源区块。值得注意的是,具有最小写入序号WSNmin的区块、最小抹除次数ECmin的区块与最大抹除次数ECmax的区块均可为多个,并不局限于图5所示的数量。
当平均抹除次数ECave与最小抹除次数ECmin的差不超过冷数据临限值THC时,代表最大抹除次数ECmax的增长速度过快,控制器120选择具有最小写入序号WSNmin的区块作为源区块,利用冷数据冻结目标区块以阻止其抹除次数再上升,进而均衡快闪式存储器阵列110的每一区块的抹除次数。值得注意的是,具有最小写入序号WSNmin的区块所含的数据应该是较冷的数据,其作为源区块执行均衡磨损程序的数据搬移,将冷数据搬移至被抹除的目标区块,才能降低目标区块后续再被抹除的几率,如此才能实现磨损均衡的目的,因此为了保证最小写入序号WSNmin的区块所含的数据确为较冷的数据,在一实施例中,控制器120于步骤S262所选择的最小写入序号WSNmin并非整个快闪式存储器阵列110最小,而是选择抹除次数在平均抹除次数ECave以下的写入序号WSN最小的区块。
回到图2B的步骤S262,当选择了具有最小写入序号WSNmin的区块作为源区块之后,控制器120更判断最大写入序号WSNmax与最小写入序号WSNmin的差是否超过第二临限值(步骤S272),在一实施例中,前述第二临限值例如可设定为将快闪式存储器阵列110的区块总数的倍数(例如3~4倍),当最大写入序号WSNmax与最小写入序号WSNmin的差超过第二临限值时,代表最小写入序号WSNmin的区块一次被写满之后全盘区块平均再被写入3~4遍时都未再次写该区块,则最小写入序号WSNmin的区块上的数据足够冷,以防止全盘皆热的情形下,即便是最小写入序号WSNmin的区块,其数据仍是热数据。当然第二临限值还可以设定为其它经验值,本发明并不局限于此。当最大写入序号与最小写入序号SNmin的差超过第二临限值时,代表源区块的数据确实为冷数据,因此控制器120执行均衡磨损程序的数据搬移(步骤S280)。在一实施例中,第二临限值大于前述的第一临限值,步骤S261选择具有最小抹除次数ECmin的区块作为源区块参与均衡磨损的目的是为了提高具有最小抹除次数ECmin的区块被抹除的机会,其上数据无须非常冷,因此步骤S261的第一临限值可设定为小于第二临限值。
回到步骤S272,当最大写入序号与最小写入序号WSNmin的差不超过第二临限值时,则无法确认源区块的数据是否为冷数据。在此情形下,若是执行均衡磨损程序的数据搬移,将源区块的数据搬运至目标区块,恐不能减少目标区块的抹除机会,造成均衡磨损程序无效,因此控制器120此时结束数据保存方法200或返回步骤S262重新选择其它具有最小写入序号WSNmin的区块作为源区块。
当控制器120执行均衡磨损程序的数据搬移(步骤S280)时,控制器120选取至少一区块作为源区块,并将源区块存储的有效数据搬移至目标区块。并且,当将源区块存储的有效数据搬移至目标区块后,控制器120在将源区块的数据抹除,以供使用。根据本发明的一实施例,控制器120选择一区块作为源区块,当选择的区块的有效数据不足以填满目标区块时,控制器120可再根据选择条件,选择另一区块。根据本发明的另一实施例,控制器120可选择至少二区块作为源区块,当选取的二区块的有效数据不足以填满目标区块时,控制器120可再根据选择条件,选择另至少二区块。
现在参考图5,根据本发明的一实施例,当控制器120执行均衡磨损程序时,仅将源区块的有效数据搬移至目标区块,因此选择第五区块510以及第六区块520中的一个可能不足以填满目标区块。根据本发明的一实施例,当第五区块510以及第六区块520中的一个的有效数据不足以填满目标区块时,控制器120将再选择其它具有最小写入序号WSNmin的区块作为源区块。根据本发明的一实施例,若具有最小写入序号WSNmin的区块的有效数据已经被搬移至目标区块,控制器120可进一步选择具有第二最小写入序号WSNmin+1的区块。
根据本发明的另一实施例,当判断平均抹除次数ECave与最小抹除次数ECmin的差不超过冷数据临限值THC时,控制器120选择抹除次数在ECave以下且具有最小写入序号WSNmin的至少一区块作为源区块。以图5的实施例为例,控制器120可选择具有最小写入序号SNmin的第五区块510以及第六区块520中的一个,或同时选择具有最小写入序号SNmin的第五区块510以及第六区块520。
值得注意的是,当步骤S271及步骤S272判断为否时,控制器120会对应取消执行数据搬移操作,在需选择多个源区块的实施例中,该取消操作可仅用于第一源区块,后续根据步骤S261及步骤S262选择的源区块无须执行步骤S271及步骤S272的判断步骤。
此外,在当控制器120执行步骤S280的均衡磨损程序的数据搬移之后,目标区块被搬移过来的数据写满,一般会将该目标区块的写入序号赋值为当前的最大写入序号WSNmax,但是由于搬移过来的数据并非来自于主机端而是来自于源区块,其数据往往是较旧数据,最大写入序号WSNmax并不能表征其上数据的新旧,因此根据本发明一实施例,当步骤S280的均衡磨损程序的数据搬移执行完毕之后,控制器120将目标区块的写入序号更新为源区块的写入序号。
图6是显示根据本发明的一实施例所述的均衡磨损程序的数据搬移的示意图。如图6所示,控制器120将第一源区块611、第二源区块612以及第三源区块613的有效数据搬移至目标区块620,其中第一源区块611具有第一写入序号WSN1,第二源区块622具有第二写入序号WSN2,第三源区块613具有第三写入序号WSN3,目标区块620具有目标写入序号WSND。
根据本发明的一实施例,当控制器120仅将第一源区块611、第二源区块612以及第三源区块613的有效区块搬移至目标区块620并填满目标区块620的空间之后,控制器120判断第一写入序号WSN1、第二写入序号WSN2以及第三写入序号WSN3的大小,并选择第一写入序号WSN1、第二写入序号WSN2以及第三写入序号WSN3的最大者赋值给目标写入序号SND。
根据本发明的另一实施例,当控制器120仅将第一源区块611、第二源区块612以及第三源区块613的有效区块搬移至目标区块620并填满目标区块620之后,控制器120判断第一源区块611、第二源区块612以及第三源区块613的有效数据占目标区块620的空间的比例,并选择有效数据最多的区块的写入序号赋值给目标写入序号SND。
举例来说,第一源区块611、第二源区块612以及第三源区块613的有效数据占目标区块620的比例分别为:45%、30%以及25%。也就是,第一源区块611的有效数据填满了目标区块620的45%的空间,第二源区块612的有效数据填满了目标区块620的30%的空间,第三源区块613的有效数据填满了目标区块620的25%的空间。控制器120判断第一源区块611的有效数据占目标区块620的空间的比例最高,因此控制器120选择第一源区块611对应的第一写入序号SN1赋值给目标写入序号SND。
本发明的数据保存方法根据不同的情况,选择抹除次数最小或写入序号最小的区块作为均衡磨损程序的数据搬移的源区块。若是选择抹除次数最小的区块作为源区块的话,能够提高抹除数据次数最小的区块被使用的机会,使得快闪式存储器阵列的整体抹除次数能够均衡,不会出现抹除次数过小的区块。若是选择写入序号最小的区块,代表将最早被写入的数据(亦即,冷数据)搬移至频繁被抹除与写入的区块,使得该目标区块的抹除次数得以冻结,避免快闪式存储器阵列的最大抹除次数增加的过快,进而均衡整体的抹除次数。本发明的数据保存方法根据所有的区块的当前抹除状态合理地照顾到分离的冷数据和冷块(即抹除次数较小的块),使得源区块的选择更有针对性。
本发明的数据保存方法更具有取消机制,用以确保不会针对热数据(即,需要频繁写入的数据)进行搬移,而产生无效的写入并造成抹除次数的增加以及系统资源的损耗。因此,本发明的数据保存方法能够更有效的均衡快闪式存储器阵列的抹除次数,进而提升快闪是抹除存储器的使用寿命。
以上所述为实施例的概述特征。本领域技术人员应可以轻而易举地利用本发明为基础设计或调整以实行相同的目的和/或达成此处介绍的实施例的相同优点。本领域技术人员也应了解相同的配置不应背离本创作的精神与范围,在不背离本创作的精神与范围下他们可做出各种改变、取代和交替。说明性的方法仅表示示范性的步骤,但这些步骤并不一定要以所表示的顺序执行。可另外加入、取代、改变顺序和/或消除步骤以视情况而作调整,并与所公开的实施例精神和范围一致。

Claims (20)

1.一种存储装置,包括:
快闪式存储器阵列,包括多个区块,其中上述快闪式存储器阵列中的所有上述区块中的最小抹除数量的区块的抹除次数为最小抹除次数,其中上述最小抹除次数为上述快闪式存储器阵列中的所有上述区块的抹除次数的最小值,上述最小抹除数量为上述快闪式存储器阵列中的所有区块中抹除次数为上述最小抹除次数的区块的数量;以及
控制器,维护上述最小抹除次数及上述最小抹除数量,其中当上述最小抹除数量的区块中的一个的数据被抹除时,上述控制器将上述最小抹除数量减1并将更新后的上述最小抹除数量存储至该快闪式存储器阵列中,其中当上述最小抹除数量为0时,上述控制器将上述最小抹除次数加1并将更新后的上述最小抹除次数存储至该快闪式存储器阵列中。
2.如权利要求1所述的存储装置,其中上述控制器重新扫描上述快闪式存储器阵列的每一上述多个区块的抹除次数,并根据上述多个区块的抹除次数,重新决定上述最小抹除数量。
3.如权利要求1所述的存储装置,其中初始时,上述最小抹除次数设定为0,上述最小抹除数量设定为上述多个区块的总数。
4.如权利要求1所述的存储装置,其中当上述控制器更新上述最小抹除次数和/或上述最小抹除数量时,上述控制器将上述最小抹除次数以及上述最小抹除数量存储至上述快闪式存储器阵列。
5.如权利要求1所述的存储装置,当上述控制器判断上述多个区块的平均抹除次数与上述最小抹除次数的差超过冷数据临限值时,选择具有上述最小抹除次数的第一区块作为源区块,其中当执行均衡磨损程序的数据搬移时,上述控制器将上述源区块的数据搬移至目标区块。
6.如权利要求5所述的存储装置,其中当上述控制器抹除上述多个区块中的第二区块的数据后,如果上述控制器判断到上述第二区块的目前抹除次数与上述最小抹除次数的差超过目标临限值时,上述控制器选择上述第二区块为上述目标区块。
7.如权利要求5所述的存储装置,其中上述第一区块具有第一写入序号,上述多个区块中的第三区块具有最大写入序号,上述第一写入序号以及上述最大写入序号分别代表上述第一区块以及上述第三区块被写满的顺序,上述第三区块为上述多个区块中最晚被写满的区块,其中上述控制器还判断上述最大写入序号与上述第一写入序号的差是否超过第一临限值,其中当上述最大写入序号与上述第一写入序号的差不超过上述第一临限值时,上述控制器不执行上述均衡磨损程序的数据搬移。
8.如权利要求5所述的存储装置,其中当上述平均抹除次数与上述最小抹除次数的差不超过上述冷数据临限值时,上述控制器选择第四区块作为上述源区块,其中上述第四区块具有最小写入序号。
9.如权利要求8所述的存储装置,其中上述第四区块为上述多个区块中抹除次数小于上述平均抹除次数的区块之中最早被写满的区块。
10.如权利要求8所述的存储装置,其中上述多个区块的第三区块具有最大写入序号,上述第三区块为上述多个区块中最晚被写满的区块,上述控制器还判断上述最大写入序号与上述最小写入序号的差是否超过第二临限值,其中当上述最大写入序号与上述最小写入序号的差不超过上述第二临限值时,上述控制器不执行上述均衡磨损程序的数据搬移。
11.一种数据保存方法,适用于快闪式存储器阵列,其中上述快闪式存储器阵列包括多个区块,上述快闪式存储器阵列中的所有上述区块中的最小抹除数量的区块的抹除次数为最小抹除次数,其中上述最小抹除次数为上述快闪式存储器阵列中的所有上述区块的抹除次数的最小值,上述最小抹除数量为上述快闪式存储器阵列中的所有区块中抹除次数为上述最小抹除次数的区块的数量,包括
维护上述最小抹除次数及上述最小抹除数量,其中:
抹除上述最小抹除数量的上述区块中的一个的数据;
当上述最小抹除数量的区块中的一个的数据被抹除时,将上述最小抹除数量减1,并将更新后的上述最小抹除数量存储至该快闪式存储器阵列中;以及
当上述最小抹除数量为0时,将上述最小抹除次数加1,并将更新后的上述最小抹除次数存储至该快闪式存储器阵列中。
12.如权利要求11所述的数据保存方法,还包括:
重新扫描上述快闪式存储器阵列的每一上述多个区块的抹除次数;以及
根据上述多个区块的抹除次数,重新决定上述最小抹除数量。
13.如权利要求11所述的数据保存方法,其中初始时,上述最小抹除次数设定为0,上述最小抹除数量设定为上述多个区块的总数。
14.如权利要求11所述的数据保存方法,其中当更新上述最小抹除次数和/或上述最小抹除数量时,将上述最小抹除次数以及上述最小抹除数量存储至上述快闪式存储器阵列。
15.如权利要求11所述的数据保存方法,其中上述快闪式存储器阵列还具有平均抹除次数,上述数据保存方法还包括:
判断上述多个区块的平均抹除次数与上述最小抹除次数的差是否超过冷数据临限值;以及
当上述平均抹除次数与上述最小抹除次数超过上述冷数据临限值时,选择具有上述最小抹除次数的第一区块作为源区块,其中当执行均衡磨损程序的数据搬移时,将上述源区块的数据搬移至目标区块。
16.如权利要求15所述的数据保存方法,还包括:
抹除上述快闪式存储器阵列的上述多个区块的第二区块的数据;
当上述第二区块的数据被抹除后,判断上述第二区块的目前抹除次数与上述最小抹除次数的差是否超过目标临限值;以及
当上述目前抹除次数与上述最小抹除次数的差超过上述目标临限值时,选择上述第二区块作为上述目标区块。
17.如权利要求15所述的数据保存方法,其中上述第一区块具有第一写入序号,上述多个区块中的第三区块具有最大写入序号,上述第一写入序号以及上述最大写入序号分别代表上述第一区块以及上述第三区块被写满的顺序,上述第三区块为上述多个区块中最晚被写满的区块,其中在上述选择上述第一区块作为上述源区块的步骤后,上述数据保存方法还包括:
判断上述最大写入序号与上述第一写入序号的差是否超过第一临限值;及
当上述最大写入序号与上述第一写入序号的差不超过上述第一临限值时,不执行上述均衡磨损程序的数据搬移。
18.如权利要求15所述的数据保存方法,其中在上述判断上述多个区块的上述平均抹除次数与上述最小抹除次数的差是否超过上述冷数据临限值的步骤后,上述数据保存方法还包括:
当上述平均抹除次数以及上述最小抹除次数的差不超过上述冷数据临限值时,选择上述快闪式存储器阵列的第四区块作为上述源区块,其中上述第四区块具有最小写入序号。
19.如权利要求18所述的数据保存方法,其中上述第四区块为上述多个区块中抹除次数小于上述平均抹除次数的区块之中最早被写满的区块。
20.如权利要求18所述的数据保存方法,其中上述多个区块的第三区块具有最大写入序号,上述第三区块为上述多个区块中最晚被写满的区块,其中在上述选择上述快闪式存储器阵列的上述第四区块作为上述源区块的步骤后,上述数据保存方法还包括:
判断上述最大写入序号与上述最小写入序号的差是否超过第二临限值,其中上述第二临限值大于第一临限值;及
当上述最大写入序号与上述最小写入序号的差不超过上述第二临限值时,不执行上述均衡磨损程序的数据搬移。
CN201810007643.7A 2018-01-04 2018-01-04 存储装置以及数据保存方法 Active CN108089994B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201810007643.7A CN108089994B (zh) 2018-01-04 2018-01-04 存储装置以及数据保存方法
US16/007,025 US11249894B2 (en) 2018-01-04 2018-06-13 Storage devices and data retention methods thereof
TW107145217A TWI680460B (zh) 2018-01-04 2018-12-14 儲存裝置以及資料保存方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810007643.7A CN108089994B (zh) 2018-01-04 2018-01-04 存储装置以及数据保存方法

Publications (2)

Publication Number Publication Date
CN108089994A CN108089994A (zh) 2018-05-29
CN108089994B true CN108089994B (zh) 2021-06-01

Family

ID=62181549

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810007643.7A Active CN108089994B (zh) 2018-01-04 2018-01-04 存储装置以及数据保存方法

Country Status (3)

Country Link
US (1) US11249894B2 (zh)
CN (1) CN108089994B (zh)
TW (1) TWI680460B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109725835B (zh) * 2017-10-27 2022-04-29 伊姆西Ip控股有限责任公司 用于管理盘阵列的方法、设备和计算机程序产品
JP2021099642A (ja) * 2019-12-20 2021-07-01 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
JP2023044509A (ja) 2021-09-17 2023-03-30 キオクシア株式会社 メモリシステムおよびメモリシステムの制御方法
US20230386588A1 (en) * 2022-05-25 2023-11-30 Micron Technology, Inc. Media management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110167200A1 (en) * 2007-05-16 2011-07-07 Oracle International Corporation Flash-aware storage optimized for mobile and embedded dbms on nand flash memory
US20110225357A1 (en) * 2007-04-19 2011-09-15 International Business Machines Corporation System for Determining Allocation of Tape Drive Resources for a Secure Data Erase Process

Family Cites Families (23)

* Cited by examiner, † Cited by third party
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
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
TWI375887B (en) * 2008-10-31 2012-11-01 A Data Technology Co Ltd Flash memory device with wear-leveling mechanism and controlling method thereof
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8051241B2 (en) * 2009-05-07 2011-11-01 Seagate Technology Llc Wear leveling technique for storage devices
KR101097438B1 (ko) * 2009-10-29 2011-12-23 주식회사 하이닉스반도체 웨어 레벨링을 유동적으로 제어하는 반도체 스토리지 시스템 및 그 제어 방법
US8621141B2 (en) * 2010-04-01 2013-12-31 Intel Corporations Method and system for wear leveling in a solid state drive
JP2012203443A (ja) * 2011-03-23 2012-10-22 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
US8892811B2 (en) * 2012-03-01 2014-11-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Reducing write amplification in a flash memory
US8724388B2 (en) * 2012-04-02 2014-05-13 Spansion Llc Adaptively programming or erasing flash memory blocks
US9116792B2 (en) * 2012-05-18 2015-08-25 Silicon Motion, Inc. Data storage device and method for flash block management
CN103577342B (zh) * 2012-07-25 2018-04-17 慧荣科技股份有限公司 管理闪存中所储存的数据的方法及相关记忆装置与控制器
JP2014098978A (ja) * 2012-11-13 2014-05-29 Sony Corp メモリ制御装置、メモリシステム、情報処理システムおよびメモリ制御方法
CN104298465B (zh) 2013-07-17 2017-06-20 光宝电子(广州)有限公司 固态储存装置中的区块分组方法
KR20150044753A (ko) * 2013-10-17 2015-04-27 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
TWI516922B (zh) * 2014-03-12 2016-01-11 慧榮科技股份有限公司 資料儲存裝置及快閃記憶體零散資料收集方法
KR102291507B1 (ko) * 2014-05-20 2021-08-20 삼성전자주식회사 메모리 컨트롤러의 동작 방법
US20160321172A1 (en) * 2015-05-01 2016-11-03 Kabushiki Kaisha Toshiba Memory device that performs garbage collection
US9812215B2 (en) * 2016-03-25 2017-11-07 Toshiba Memory Corporation Memory device that executes an erase operation for a nonvolatile memory
US10481798B2 (en) * 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10228862B2 (en) * 2017-03-15 2019-03-12 Western Digital Technologies, Inc. Capacity-aware wear leveling in solid-state storage devices
KR20180123265A (ko) * 2017-05-08 2018-11-16 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110225357A1 (en) * 2007-04-19 2011-09-15 International Business Machines Corporation System for Determining Allocation of Tape Drive Resources for a Secure Data Erase Process
US20110167200A1 (en) * 2007-05-16 2011-07-07 Oracle International Corporation Flash-aware storage optimized for mobile and embedded dbms on nand flash memory

Also Published As

Publication number Publication date
TWI680460B (zh) 2019-12-21
US11249894B2 (en) 2022-02-15
CN108089994A (zh) 2018-05-29
US20190205245A1 (en) 2019-07-04
TW201931375A (zh) 2019-08-01

Similar Documents

Publication Publication Date Title
CN108089994B (zh) 存储装置以及数据保存方法
CN108563397B (zh) 存储装置以及数据保存方法
JP5031849B2 (ja) フラッシュメモリのブロック管理方法
CN101339539B (zh) 具有非易失性存储器和缓冲存储器的存储系统及读取方法
US9223691B2 (en) Data storage device and method for flash block management
US8356152B2 (en) Initiative wear leveling for non-volatile memory
KR101839664B1 (ko) 데이터 기억 시스템 및 그 제어 방법
CN109542354B (zh) 一种基于擦除上限的磨损均衡方法、装置及设备
US20170220462A1 (en) Data storage method and system thereof
KR20190079672A (ko) 정보 처리 장치, 메모리 액세스 방법 및 컴퓨터 프로그램
CN112599177A (zh) 一种阈值电压的管理方法、读取闪存数据的方法
US11487658B2 (en) Memory system including plural regions storing data and operating method thereof
CN105138472A (zh) 闪存磨损优化方法及设备
CN113467713A (zh) 数据分离方法及固态硬盘
US8996786B2 (en) Nonvolatile memory system and block management method
CN110908595B (zh) 存储装置及信息处理系统
CN108572924B (zh) 一种3d mlc闪存设备的请求处理方法
US20130268726A1 (en) Dual Mode Write Non-Volatile Memory System
JP2015197832A (ja) 情報処理装置及びフラッシュメモリの制御方法
CN109308273B (zh) 闪存控制器、闪存控制器功能的调节方法及设备
KR20090053164A (ko) 상태 정보를 관리하는 플래시 메모리 제어 장치 및 방법
JP2020086748A (ja) メモリコントローラ、及びメモリシステム
JP2015043183A (ja) メモリ管理装置
US11803320B2 (en) Memory system and control method
JP2011159138A (ja) 記憶装置及び記憶装置の制御方法

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