CN103425595B - 数据储存装置和闪存的区块管理方法 - Google Patents

数据储存装置和闪存的区块管理方法 Download PDF

Info

Publication number
CN103425595B
CN103425595B CN201310093479.3A CN201310093479A CN103425595B CN 103425595 B CN103425595 B CN 103425595B CN 201310093479 A CN201310093479 A CN 201310093479A CN 103425595 B CN103425595 B CN 103425595B
Authority
CN
China
Prior art keywords
data
block
spare
spare blocks
paging
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
CN201310093479.3A
Other languages
English (en)
Other versions
CN103425595A (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.)
HUIRONG SCIENCE AND TECHNOLOGY Co Ltd
Original Assignee
HUIRONG SCIENCE AND TECHNOLOGY 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 HUIRONG SCIENCE AND TECHNOLOGY Co Ltd filed Critical HUIRONG SCIENCE AND TECHNOLOGY Co Ltd
Publication of CN103425595A publication Critical patent/CN103425595A/zh
Application granted granted Critical
Publication of CN103425595B publication Critical patent/CN103425595B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/7205Cleaning, compaction, garbage collection, erase control
    • 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

一种数据储存装置耦接至一主机,数据储存装置包括一闪存以及一控制器。闪存包括一备用区块池以及一数据区块池,其中备用区块池包括多个备用区块以及数据区块池包括多个数据区块,其中一备用区块数量为该等备用区块的总数量。控制器用以接收来自主机的一目标数据,将目标数据写至一目前数据区块中,决定一目前编程的分页是否为目前数据区块的第一分页,当目前编程的分页为第一分页时,决定备用区块数量是否小于一备用区块数量临界值,并当备用区块数量小于备用区块数量临界值时,设定一数据合并程序所使用的一数据搬移信息。

Description

数据储存装置和闪存的区块管理方法
技术领域
本发明系有关于一种闪存,特别系有关于一种闪存的区块管理方法。
背景技术
闪存是一种可被电性抹除及重新可编程的非挥发性的电脑储存芯片。闪存适用于一般数据的储存和传输,主要使用在存储卡、USB闪存、固态硬盘(solid-state drives)以及相似的产品。举例而言,应用闪存的装置包括个人电脑、个人数字助理(PDAs)、数字声音播放装置(digital audio players)、数字相机、移动电话、影音游戏机(video games)等。除了具有非挥发性之外,快闪记忆还提供如同动态随机存取存储器(dynamic RAM)般的快速读取时间,虽然速度上仍不如静态随机存取存储器(static RAM)或是唯读存储器(ROM)。由于非挥发性、固态储存装置的大量需求,使得目前闪存的售价已经远低于可位元组编程(byte-programmable)的电子抹除式可复写唯读存储器(EEPROM)并且已经成为主流的存储器类型。
因此,需要一种合适的闪存管理方法,用来改善闪存的效能。
发明内容
本发明的目的在于提供一种闪存的区块管理方法,用来改善闪存的效能。
一种数据储存装置耦接至一主机,数据储存装置包括一闪存以及一控制器。闪存包括一备用区块池以及一数据区块池,其中备用区块池包括多个备用区块以及数据区块池包括多个数据区块,其中一备用区块数量为该等备用区块的总数量。控制器用以接收来自主机的一目标数据,将目标数据写至一目前数据区块中,决定一目前编程的分页是否为目前数据区块的第一分页,当目前编程的分页为第一分页时,决定备用区块数量是否小于一备用区块数量临界值,以及当备用区块数量小于备用区块数量临界值时,设定一数据合并程序所使用的一数据搬移信息。
本发明亦提供一种闪存的区块管理方法,其中一数据储存装置耦接至一主机,数据储存装置包括一闪存以及一控制器。闪存包括一备用区块池以及一数据区块池,备用区块池包括多个备用区块,数据区块池包括多个数据区块,以及一备用区块数量用以表示备用区块的总数量。闪存的区块管理方法包括接收来自主机的一目标数据;将目标数据写入一目前数据区块;决定一目前编程的分页是否为目前数据区块的第一分页;当目前编程的分页为第一分页时,决定备用区块数量是否小于一备用区块数量临界值;以及当备用区块数量小于备用区块数量临界值时,设定一数据合并程序所使用的一数据搬移信息。
附图说明
图1为根据本发明数据储存装置的示意图。
图2为根据本发明闪存的区块管理方法的流程图。
图3为根据本发明目前数据区块的示意图。
图4为根据本发明从数据区块池中得到备用区块的方法流程图。
图5为根据本发明用以计算监禁临界值及热门临界值的示意图。
图6为根据本发明数据合并程序的示意图。
图7为根据本发明耗损平衡程序的示意图。
图8为根据本发明数据储存装置的另一示意图。
图9为根据本发明多个存储器区域的区块管理方法的流程图。
主要符号说明
100、800 数据储存装置
102、802 控制器
104 闪存
120 监禁池
110、812、822、832 备用区块池
130、814、824、834 数据区块池
111~11n 备用区块
121~12k 监禁区块
131~13m 数据区块
300 目前数据区块
301~30x 分页
311~314、D5 数据
WL_TH1 第一差值
WL_TH2 第二差值
502、503、504 区块
601、602、603、604、701、701’ 来源数据区块;
610、711、711’ 终点备用区块
D1、D2、D3、D4 有效数据
810、820、830 闪存区域
具体实施方式
以下说明是执行本发明的最佳模式。习知技艺者应能知悉在不脱离本发明的精神和架构的前提下,当可作些许更动、替换和置换。本发明的范畴当视所附申请专利范围而定。
图1系为本发明的数据储存装置100的方块图。在一实施例中,数据储存装置100包括控制器102以及闪存104。闪存104包括用以储存数据的多个区块。在一实施例中,闪存104包括备用区块池(spare block pool)110以及数据区块池(data blockpool)130。备用区块池110包括用以储存无效数据的多个备用区块111~11n。数据区块池130包括用以储存数据的多个数据区块131~13m。在一实施例中,数据储存装置100耦接至一主机。控制器102根据主机所送出的指令管理闪存104内的区块。闪存104系根据一实体地址指定一区块,而主机系根据逻一辑地址指定一区块。因此,控制器102必须将主机所送出的一逻辑地址转换成一实体地址。在一实施例中,控制器102将区块的逻辑地址及实体地址间的对应关系纪录在一地址链结表内。
每一个数据区块131~13m包括多个分页。当数据储存在数据区块的一分页时,该分页被称为一数据分页。当该分页具有一对应的逻辑地址时,该分页称为有效分页。在一实施例中,控制器102个别地计算数据区块131~13m中每一数据区块的有效分页的总数用以获得一有效分页数量,并且将数据区块131~13m的有效分页数量记录到一有效数量表中。另外,区块被抹除的次数被称为该区块的抹除次数。在一实施例中,控制器102亦将闪存104中所有区块的抹除次数纪录在一抹除次数表中。
图2系为根据本发明用于管理闪存104的区块的方法200的流程图。当主机送出将被写入数据储存装置100的目标数据时,控制器接收该目标数据(步骤202),接着将目标数据写入目前数据区块(步骤204)。参考图3,图3系为闪存104中的一目前数据区块300的示意图。目前数据区块300包括多个分页。目前数据区块300可被用来储存对应到不同逻辑地址的数据分页。举例而言,储存在分页301的数据311系对应到逻辑地址L1,储存在分页302的数据312系对应到逻辑地址L2以及储存在分页303的数据313系对应到逻辑地址L3。
在该目标数据被写入目前数据区块后,控制器102接着决定目前数据区块是否已写满数据(步骤206)。在一实施例中,当控制器102目前编程的分页(programming page)为目前数据区块的最后分页时,则控制器102决定目前数据区块为写满的,接着控制器102根据目前数据区块的信息更新多个数据表(步骤208)。在一实施例中,所更新的该等数据表包括一地址链结表以及一有效分页数量表。因为储存在目前数据区块的分页中的数据分别地对应到不同的逻辑地址,因此控制器102必须写下目前数据区块的分页的实体地址与储存在此数据的逻辑地址两者间的映射关系(mappingrelationship)至地址链结表。另外,当主机删除或更新一分页时,该分页将被标记为无效分页。控制器102必须计算在一区块中有效分页的总数用以决定在该区块中的有效分页数量,并且将有效分页数量写至有效分页数量表。在更多的数据被删除及/或被再次更新之后,在数据区块池130中的某些数据区块所储存的分页将不具有有效分页,且它们的有效分页数量将被设定为零。之后,这些有效分页数量为零的数据区块将被设为备用区块,并且由数据区块池130中移至备用区块池110(步骤210)。步骤210将在图4中被更仔细地解说。控制器102继续从备用区块池110中取得一备用区块并指派该备用区块为目前数据区块,用以接收由主机所送出的新数据(步骤212)。
图5系为根据本发明用以计算监禁临界值(jail threshold value)及热门临界值(hot threshold value)的示意图。在闪存104中所有的区块皆具有一抹除次数。当控制器102将一区块设为备用区块并且将该区块放至备用区块池时,则该区块的抹除次数会增加一次。闪存104的区块的最小抹除次数会随着时间而增加,且在某些情况下,具有最小抹除次数的区块会有所改变。因此,根据闪存104中所有区块的抹除次数的改变,控制器102会频繁地决定该最小抹除次数。如图5所示,当最小抹除次数被决定之后,控制器102会将第一差值WL_TH1加上该最小抹除次数用以取得一热门临界值,以及将第二误差WL_TH2加上该最小抹除次数以取得一监禁临界值。在某一实施例中,该第一差值WL_TH1小于该第二差值WL_TH2。在此,该第二差值WL_TH2大于该第一差值WL_TH1,因此该监禁临界值会大于该热门临界值。当一区块的抹除次数大于热门临界值,则控制器102会将该区块决定为一热门区块。当一区块的抹除次数大于该监禁临界值,则控制器102会将该区块决定为一监禁区块,并将该监禁区块放至图1所示的监禁池(jail pool)120。举例而言,图5所示的区块502、503以及504具有抹除次数大于监禁临界值,因此被置放于监禁池120中。虽然监禁区块121~12k也是备用区块,当控制器102要从备用区块池110中撷取用于储存数据的新备用区块时,控制器102并不会撷取监禁区块。因此,除非将来该监禁区块被释出,否则该监禁区块的抹除次数不会被增加。
图4系为从数据区块池130中得到备用区块的方法400的流程图。方法400包括用以执行图2所示的方法200中步骤210的详细步骤。首先,控制器102决定由闪存104的区块的抹除次数的一最小抹除次数,并且根据该最小抹除次数来计算一监禁临界值。在更新监禁临界值之后,在监禁池120中的某些监禁区块121~12k的抹除次数将小于更新后的监禁临界值。因此,控制器102将监禁池120中监禁区块121~12k的抹除次数与监禁临界值比较,当监禁区块121~12k的抹除次数小于监禁临界值时,则从监禁池120将该监禁区块释出至备用区块池110(步骤402)。
在数据区块池130中的某些数据区块131~13m不具有有效数据并且有效分页数为零。因此,在步骤404中,控制器102搜寻数据区块池130中任何具有有效分页数为零的目标区块,然后进入步骤406,将该等目标区块放至备用区块池110中并且对该等目标区块的抹除次数加一。在步骤408中,控制器102将会决定是否有任何的目标区块的抹除次数大于监禁临界值。若步骤408中决定结果为是,则进入步骤412。在步骤412中,控制器102将抹除次数大于监禁临界值的目标区块放至监禁池120。若步骤408中决定结果为否,则进入步骤410。在步骤410中,控制器102将会决定是否有任何目标区块的抹除次数大于热门临界值。若步骤410中决定结果为是,则进入步骤414。在步骤414中,控制器102决定该目标区块为热门区块,并且将决定为热门区块的目标区块的数量加至热门区块的数量。
参考图2。在步骤204中,当该目标数据被写入目前数据区块之后进入步骤206。在步骤206中,控制器102将会决定目前数据区块是否已写满数据。若步骤206中决定结果为否,则进入步骤214。在步骤214中,控制器102决定目前编程的分页是否为目前数据区块的第一分页。若决定结果为是,则进入步骤216。举例而言,控制器目前编程的分页为图3所示的分页301,且分页301为目前数据区块300的第一分页,则控制器102决定一备用区块数量是否小于一备用区块数量临界值(步骤216)。备用区块数量为在备用区块池110中备用区块的总数。在一实施例中,备用区块数量临界值为15。假设一备用区块由备用区块池中得到,并且被抹除成为一新的目前数据区块,则在备用区块池中的备用区块总数将少一。在步骤216中,当备用区块数量小于备用区块数量临界值时,则进入步骤218。在步骤218中,控制器102设定用于一数据合并程序所需的一数据搬移信息,以便启始数据合并程序,用以增加备用区块的数量。
在一实施例中,用以启始数据合并程序的数据搬移信息包括具有将被合并数据的多个来源数据区块的实体地址以及将被写入合并数据的终点备用区块(destinationspare block)的实体地址。控制器102从数据区块池130中选择具有最小有效分页数量的数个数据区块作为来源数据区块,并且取得一备用区块作为终点备用区块。图6系为根据本发明的一数据合并程序的示意图。当数据合并程序开始时,从数据区块池130中选取具有最小有效分页数量的四个来源数据区块601、602、603以及604,并且从备用池中选取终点备用区块610。然后控制器102抹除终点备用区块610并且将来源数据区块601、602、603以及604的有效数据D1、D2、D3以及D4合并在RAM(未图示)中用以获得一合并数据(D1+D2+D3+D4)。控制器102将合并数据(D1+D2+D3+D4)写入终点备用区块610。最后,控制器102将来源数据区块601、602、603以及604放至备用区块池110,并且将被写入合并数据(D1+D2+D3+D4)的终点备用区块610放至数据区块池130。因此,在执行数据合并程序之后,位于备用区块池中的备用区块总数将会增加三。
参考图2。当目前编程的分页为目前数据区块的第一分页(步骤214),并且备用区块数量大于备用区块数量临界值(步骤216)时,则控制器102将决定热门区块数量是否大于零(步骤220)。热门区块数量为在备用区块池中110具有抹除次数大于热门临界值的热门区块总数量。因为该等热门区块具有高的抹除次数,若备用区块池110中包括大量的热门区块,因此控制器102必须从备用区块池110中撷取热门区块,并且对数据池中具有最小抹除次数的一数据区块执行一耗损平衡程序(wear-level process)。因此,当备用区块数量大于备用区块数量临界值并且热门区块数量大于零(步骤220)时,则控制器102设定用以耗损平衡程序的数据搬移信息,以便启动耗损平衡程序,使得热门区块数量减少(步骤222)。
在一实施例中,用以启动耗损平衡程序的数据搬移信息包括将被复制数据的至少一来源数据区块的实体地址以及用于写入数据的至少一终点备用区块的实体地址。当在备用区块池110中具有多个热门区块时,控制器102决定该等热门区块为该等终点备用区块。因为具有低抹除次数的数据区块所储存的数据具有低的更新机率,因此控制器102从数据区块池130中选择具有低抹除次数的数个数据区块作为来源数据区块。图7为根据本发明的耗损平衡程序的示意图。当耗损平衡程序开始时,由数据区块池130中选择具有最小抹除次数的来源数据区块701以及由备用区块池110中选择终点备用区块711。接着,控制器102抹除终点备用区块711,并且将所复制的数据D5写入终点备用区块711’。然后,具有低抹除次数的来源数据区块701’被置放至备用区块池110,并且来自备用区块池110具有高抹除次数的终点备用区块711’会被置放至数据区块池130。因此,在执行完耗损平衡程序之后,备用区块池110中热门区块的总数将减少一个。
参考图2。当该目标数据所写入的目前编程的分页不是目前数据区块的第一分页(步骤214)时,则控制器102决定数据搬移信息是否被设定(步骤224)。若用于数据合并程序或是耗损平衡程序的数据搬移信息已被设定,则控制器102在有限的时间区间中根据数据搬移信息执行部分的数据合并程序或是耗损平衡程序(步骤226)。该有限的时间区间是由主机和数据储存装置104间数据传输所需时间的标准决定。举例而言,当主机送出一写入指令以及送出目标数据到控制器102之后,该主机必须在有限的时间区间100毫秒~300毫秒间收到关于执行完毕的回应信息,并且控制器102只能在有限的时间区间执行数据合并程序或是耗损平衡程序。
控制器102会由于有限的时间区间而将数据合并程序或是耗损平衡程序中数据搬移的操作,切成多个数据搬移程序。当一新的目标数据被写入目前编程的分页后(步骤204),若目前编程的分页并不是目前数据区块的第一分页(步骤214),则在有限的时间区间中用于数据合并程序或是耗损平衡程序的数据搬移的多个部份操作程序的一者将会被执行。举例而言,如图6所示,当用于数据合并程序的数据搬移信息被设定(步骤224),控制器102在有限的时间区间中,从来源数据区块601、602、603以及604中选取多个具有有效数据的目标分页,并且从目标分页中将有效数据复制至终点备用区块610。举例而言,如图7所示,当用于耗损平衡程序的数据搬移信息被设定(步骤224),控制器102在有限的时间区间中,从来源数据区块701中选取多个目标分页,并且从目标分页将数据复制至终点备用区块711。在数个新的写入指令被执行之后,用于数据合并程序或是耗损平衡程序的数据搬移操作也被完成。
图8系为本发明中可切换存储器区域的数据储存装置800的方块图。数据储存装置800包括控制器802以及多个闪存区域810、820以及830。在一实施例中,闪存区域810、820以及830分别为不同的闪存晶片。举例来说,闪存区域810为具有单阶储存单元(single-bitper cell;SLC)的闪存,闪存区域820为具有二阶储存单元(2bit per cell;MLC)的闪存以及闪存区域830为具有三阶储存单元(3bit per cell;TLC)的闪存。在另一实施例中,闪存区域810、820以及830为单一闪存内的数个存储器分割区间。每一闪存区域810、820以及830包括一备用区块池以及一数据区块池。控制器802独立地管理位于每一闪存区域810、820以及830中的区块。举例而言,控制器802在单一闪存区域的备用区块池以及数据区块池之间执行数据合并程序或是耗损平衡程序。当执行区块管理时,控制器802并不会将一闪存区域的区块的数据与其他闪存区域的数据做交换。
图9系为根据本发明中用于管理存储器区域810、820以及830的方法900的流程图。首先,控制器802接收来自主机的目标数据(步骤902)。然后,控制器802自多个闪存区域810、820以及830中,决定出用以写入目标数据的一目标存储器区域(步骤904)。然后,控制器802根据该目标存储器区域,设定一实体地址范围参数(步骤906)。在一实施例中,实体地址范围参数包括一开始地址参数以及一结束地址参数,并且控制器802设定该开始地址参数为目标存储器区域的开始地址,并且设定该结束地址参数为目标存储器区域的结束地址。然后,控制器802根据目标存储器区域,设定一备用区块池参数(步骤908)。在一实施例中,控制器802将目标存储器区域的备用区块池中的备用区块的实体地址纪录至备用区块池参数中。然后,控制器802将目标数据写入目标存储器区域的目前数据区块中(步骤910)。
控制器802根据图2所示的方法200中的步骤206~226,对目标存储器区域的数个区块执行数据合并程序或是耗损平衡程序。换句话说,控制器802对目标存储器区域的数据区块池内的数个数据区块执行数据合并程序(步骤912),或于目标存储器区域的备用区块池中的多个备用区块与目标存储器区域的数据区块池中的多个数据区块之间执行耗损平衡程序(步骤914)。在步骤912中的数据合并程序或是步骤914中的耗损平衡程序中数据搬移信息的设定与步骤218或222中的所示者相同,并且执行于步骤912中的数据合并程序或是步骤914中的耗损平衡程序也与步骤226相同。因此,控制器802可以独立地管理目标存储器区域内的区块,而不需要同时管理其他闪存区域内的区块。

Claims (14)

1.一种数据储存装置,耦接至一主机,该数据储存装置包括:
一闪存,包括一备用区块池以及一数据区块池,其中该备用区块池包括多个备用区块,以及该数据区块池包括多个数据区块,其中一备用区块数量为所述多个备用区块的总数量;以及
一控制器,接收来自该主机的一目标数据,将该目标数据写至一目前数据区块中,决定一目前编程的分页是否为该目前数据区块的一第一分页,当该目前编程的分页为该第一分页时,决定该备用区块数量是否小于一备用区块数量临界值,以及当该备用区块数量小于该备用区块数量临界值时,设定一数据合并程序所使用的一数据搬移信息,其中当该目前编程的分页不是该第一分页时,该控制器决定该数据搬移信息是否被设定,并且当该数据搬移信息已被设定时,该控制器在一有限的时间区间中根据该数据搬移信息执行一数据合并程序,其中该有限的时间区间是由该主机和该数据储存装置之间的数据传输标准所决定。
2.如权利要求1所述的数据储存装置,其中用于该数据合并程序的该数据搬移信息包括被合并数据的多个来源数据区块的实体地址以及将被写入合并数据的一终点备用区块的实体地址。
3.如权利要求2所述的数据储存装置,其中当该控制器已设定该数据合并程序所使用的该数据搬移信息,则该控制器从该数据区块池中选择具有最小有效分页数量的所述多个数据区块作为所述多个来源数据区块,以及从该备用区块池中取得该终点备用区块,并且抹除该终点备用区块。
4.如权利要求3所述的数据储存装置,其中该数据合并程序所使用的该数据搬移信息包括所述多个来源数据区块以及该终点备用区块的实体地址,并且当该控制器执行该数据合并程序时,该控制器合并所述多个来源数据区块的数据用以得到一合并数据,并且将该合并数据写入该终点备用区块。
5.如权利要求4所述的数据储存装置,其中当该控制器在一有限的时间区间中执行该数据合并程序时,该控制器从所述多个来源数据区块中选取具有有效数据的多个目标分页,并且在该有限的时间区间中从所述多个目标分页将该有效数据复制至该终点备用区块。
6.如权利要求4所述的数据储存装置,其中在该数据合并程序完成之后,该控制器进一步将所述多个来源数据区块放至该备用区块池,将该终点备用区块放至该数据区块池,并且将所述多个来源数据区块的总数量加至该备用区块数量。
7.如权利要求1所述的数据储存装置,其中该备用区块数量临界值为15。
8.一种闪存的区块管理方法,其中一数据储存装置耦接至一主机,该数据储存装置包括一闪存以及一控制器,该闪存包括一备用区块池以及一数据区块池,该备用区块池包括多个备用区块,该数据区块池包括多个数据区块,以及一备用区块数量用以表示所述多个备用区块的总数量,该闪存的区块管理方法包括:
接收来自该主机的一目标数据;
将该目标数据写入一目前数据区块;
决定一目前编程的分页是否为该目前数据区块的一第一分页;
当该目前编程的分页为该第一分页时,决定该备用区块数量是否小于一备用区块数量临界值;
当该备用区块数量小于该备用区块数量临界值时,设定一数据合并程序所使用的一数据搬移信息;以及
当该目前编程的分页不是该第一分页时,决定该数据搬移信息是否被设定;以及
当该数据搬移信息已被设定时,在一有限的时间区间中根据该数据搬移信息执行一数据合并程序;
其中该有限的时间区间是由该主机和该数据储存装置之间的数据传输标准所决定。
9.如权利要求8所述的闪存的区块管理方法,其中该数据合并程序所使用的该数据搬移信息包括欲合并数据的多个来源数据区块的多个实体地址以及将被写入所合并数据的一终点备用区块的多个实体地址。
10.如权利要求9所述的闪存的区块管理方法,其中设定该数据合并程序所使用的该数据搬移信息的步骤包括:
从该数据区块池中选择具有最小有效分页数量的所述多个数据区块作为所述多个来源数据区块;
从该备用区块池中取得该终点备用区块;以及
抹除该终点备用区块。
11.如权利要求8所述的闪存的区块管理方法,其中该数据合并程序所使用的该数据搬移信息包括多个来源数据区块以及一终点备用区块的实体地址,以及执行该数据合并程序的步骤包括:
合并储存在所述多个来源数据区块的数据用以得到一合并数据;
将该合并数据写入该终点备用区块;以及
将所述多个来源数据区块放至该备用区块池。
12.如权利要求11所述的闪存的区块管理方法,其中在该有限的时间区间中执行该数据合并程序的部分步骤包括:
从所述多个来源数据区块中选择具有有效数据的多个目标分页;
在该有限的时间区间中,从所述多个目标分页中将有效数据复制至该终点备用区块。
13.如权利要求11所述的闪存的区块管理方法,更包括:
当该数据合并程序完成之后,将所述多个来源数据区块放至该备用区块池,将该终点备用区块放至该数据区块池,以及将所述多个来源数据区块的总数量加至该备用区块数量。
14.如权利要求8所述的闪存的区块管理方法,其中该备用区块数量临界值为15。
CN201310093479.3A 2012-05-18 2013-03-22 数据储存装置和闪存的区块管理方法 Active CN103425595B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/474,801 US9116792B2 (en) 2012-05-18 2012-05-18 Data storage device and method for flash block management
US13/474,801 2012-05-18

Publications (2)

Publication Number Publication Date
CN103425595A CN103425595A (zh) 2013-12-04
CN103425595B true CN103425595B (zh) 2017-03-01

Family

ID=49582277

Family Applications (6)

Application Number Title Priority Date Filing Date
CN201310095017.5A Active CN103425597B (zh) 2012-05-18 2013-03-22 数据储存装置和快闪存储器的区块管理方法
CN201310095689.6A Active CN103425598B (zh) 2012-05-18 2013-03-22 数据储存装置和快闪存储器的区块管理方法
CN201310096094.2A Active CN103425588B (zh) 2012-05-18 2013-03-22 数据储存装置和快闪存储器的区块管理方法
CN2013100963692A Pending CN103425599A (zh) 2012-05-18 2013-03-22 数据储存装置和快闪存储器的区块管理方法
CN201310093479.3A Active CN103425595B (zh) 2012-05-18 2013-03-22 数据储存装置和闪存的区块管理方法
CN2013100934859A Pending CN103425596A (zh) 2012-05-18 2013-03-22 数据储存装置和快闪存储器的区块管理方法

Family Applications Before (4)

Application Number Title Priority Date Filing Date
CN201310095017.5A Active CN103425597B (zh) 2012-05-18 2013-03-22 数据储存装置和快闪存储器的区块管理方法
CN201310095689.6A Active CN103425598B (zh) 2012-05-18 2013-03-22 数据储存装置和快闪存储器的区块管理方法
CN201310096094.2A Active CN103425588B (zh) 2012-05-18 2013-03-22 数据储存装置和快闪存储器的区块管理方法
CN2013100963692A Pending CN103425599A (zh) 2012-05-18 2013-03-22 数据储存装置和快闪存储器的区块管理方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2013100934859A Pending CN103425596A (zh) 2012-05-18 2013-03-22 数据储存装置和快闪存储器的区块管理方法

Country Status (3)

Country Link
US (6) US9116792B2 (zh)
CN (6) CN103425597B (zh)
TW (6) TW201349101A (zh)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010125574A1 (en) * 2009-04-27 2010-11-04 Kamlesh Gandhi Description
KR102067029B1 (ko) * 2012-12-13 2020-01-16 삼성전자주식회사 반도체 메모리 장치 및 메모리 시스템
US9632926B1 (en) * 2013-05-16 2017-04-25 Western Digital Technologies, Inc. Memory unit assignment and selection for internal memory operations in data storage systems
KR102164630B1 (ko) * 2013-06-28 2020-10-12 삼성전자주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러의 동작 방법
US9235486B1 (en) * 2013-09-30 2016-01-12 Symantec Corporation Techniques for spare storage pool management
US9329992B2 (en) * 2013-12-04 2016-05-03 Silicon Motion, Inc. Data storage device and flash memory control method
CN103631538B (zh) * 2013-12-05 2017-04-05 华为技术有限公司 冷热数据识别门限值计算方法、装置和系统
CN103761193B (zh) * 2013-12-17 2016-09-14 记忆科技(深圳)有限公司 抑制逻辑页碎片产生的方法及系统
CN103823640B (zh) * 2014-03-03 2017-12-01 山西科泰航天防务技术股份有限公司 一种Flash存储器的高效率存储方法
TWI516922B (zh) * 2014-03-12 2016-01-11 慧榮科技股份有限公司 資料儲存裝置及快閃記憶體零散資料收集方法
CN105468538B (zh) * 2014-09-12 2018-11-06 华为技术有限公司 一种内存迁移方法及设备
CN105489246B (zh) * 2014-09-16 2018-10-19 华邦电子股份有限公司 Nor闪存及其修补方法
US9740425B2 (en) * 2014-12-16 2017-08-22 Sandisk Technologies Llc Tag-based wear leveling for a data storage device
KR102513491B1 (ko) * 2015-07-15 2023-03-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
TWI585770B (zh) * 2015-08-11 2017-06-01 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
KR102333746B1 (ko) * 2015-09-02 2021-12-01 삼성전자주식회사 재사용 주기에 따라 마모도를 관리하는 저장 장치의 동작 방법
EP3365792B1 (en) * 2015-10-19 2019-12-04 Telefonaktiebolaget LM Ericsson (publ) Method and memory merging function for merging memory pages
TWI561985B (en) * 2015-10-22 2016-12-11 Silicon Motion Inc Data storage device and data maintenance method thereof
US9983963B2 (en) * 2015-11-09 2018-05-29 Alibaba Group Holding Limited System and method for exploiting hard disk drive capacity reserve and extending operating life thereof
US10387329B2 (en) * 2016-02-10 2019-08-20 Google Llc Profiling cache replacement
US20170277629A1 (en) * 2016-03-25 2017-09-28 Alibaba Group Holding Limited Extending the useful lifespan of nonvolatile memory
TWI614605B (zh) * 2016-03-31 2018-02-11 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
TWI652572B (zh) 2016-03-31 2019-03-01 慧榮科技股份有限公司 資料儲存裝置
TWI590051B (zh) 2016-06-21 2017-07-01 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
TWI615710B (zh) * 2016-12-14 2018-02-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
KR102671760B1 (ko) * 2016-12-27 2024-06-05 에스케이하이닉스 주식회사 컨트롤러 및 컨트롤러의 동작 방법
US10380028B2 (en) 2016-12-30 2019-08-13 Western Digital Technologies, Inc. Recovery of validity data for a data storage system
CN108509349B (zh) * 2017-02-27 2022-10-14 得一微电子股份有限公司 一种nand flash的数据源区块回收方法及固态硬盘
CN108877863B (zh) * 2017-05-16 2020-08-04 华邦电子股份有限公司 快闪存储器存储装置及其操作方法
KR20180125694A (ko) * 2017-05-16 2018-11-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN108089994B (zh) * 2018-01-04 2021-06-01 威盛电子股份有限公司 存储装置以及数据保存方法
CN108563397B (zh) 2018-01-04 2021-08-24 威盛电子股份有限公司 存储装置以及数据保存方法
CN110058794B (zh) * 2018-01-19 2022-11-01 上海宝存信息科技有限公司 用于动态执行垃圾回收数据储存装置与操作方法
US10936199B2 (en) * 2018-07-17 2021-03-02 Silicon Motion, Inc. Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table
CN110888593B (zh) * 2018-09-07 2024-01-26 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US10795576B2 (en) * 2018-11-01 2020-10-06 Micron Technology, Inc. Data relocation in memory
CN109669889B (zh) * 2018-12-24 2021-03-02 青岛方寸微电子科技有限公司 一种轻量型Nor Flash闪存控制方法和装置
TWI702497B (zh) * 2018-12-26 2020-08-21 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
CN111949199B (zh) * 2019-05-16 2024-04-26 兆易创新科技集团股份有限公司 一种存储设备的数据写入方法、装置及存储设备
CN110347612A (zh) * 2019-06-04 2019-10-18 华南理工大学 一种适用于固态盘的动态调整垃圾回收方法
TWI719654B (zh) 2019-06-21 2021-02-21 慧榮科技股份有限公司 閃存實體資源集合管理裝置及方法以及電腦程式產品
CN113032288B (zh) * 2019-12-25 2023-02-28 杭州海康存储科技有限公司 冷热数据阈值的确定方法、装置及设备
TWI748410B (zh) * 2020-04-15 2021-12-01 慧榮科技股份有限公司 用來針對非揮發性記憶體進行區塊管理的方法以及設備
CN112433674B (zh) * 2020-11-16 2021-07-06 连邦网络科技服务南通有限公司 一种计算机用数据迁移系统及方法
US11645198B2 (en) * 2020-12-08 2023-05-09 International Business Machines Corporation Buffer pool maintenance improvement
US11960753B2 (en) * 2021-08-25 2024-04-16 Western Digital Technologies, Inc. Solution for super device imbalance in ZNS SSD
US11966618B2 (en) 2021-08-25 2024-04-23 Western Digital Technologies, Inc. Purposeful super device imbalance for ZNS SSD efficiency
US20230335204A1 (en) * 2022-04-15 2023-10-19 Micron Technology, Inc. Techniques to retire unreliable blocks
US12009038B2 (en) * 2022-04-20 2024-06-11 Micron Technology, Inc. Memory device wear leveling
US20240045602A1 (en) * 2022-08-03 2024-02-08 Capital One Services, Llc Systems and methods for adaptive data partitioning within cluster systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101582052A (zh) * 2008-05-15 2009-11-18 慧国(上海)软件科技有限公司 存储器模组及于存储器模组中实现平均磨损的方法
TW201027420A (en) * 2009-01-15 2010-07-16 Phison Electronics Corp Data accessing method for flash memory, and storage system and controller system thereof

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8027194B2 (en) * 1988-06-13 2011-09-27 Samsung Electronics Co., Ltd. Memory system and method of accessing a semiconductor memory device
US5956473A (en) * 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
US20050204187A1 (en) * 2004-03-11 2005-09-15 Lee Charles C. System and method for managing blocks in flash memory
US20080195798A1 (en) * 2000-01-06 2008-08-14 Super Talent Electronics, Inc. Non-Volatile Memory Based Computer Systems and Methods Thereof
JP4812192B2 (ja) * 2001-07-27 2011-11-09 パナソニック株式会社 フラッシュメモリ装置、及び、それに記憶されたデータのマージ方法
US6895464B2 (en) * 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US7254668B1 (en) * 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
US6973531B1 (en) * 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most frequently erased blocks in non-volatile memory systems
US7035967B2 (en) * 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US6985992B1 (en) 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US20050120265A1 (en) 2003-12-02 2005-06-02 Pline Steven L. Data storage system with error correction code and replaceable defective memory
US20080082736A1 (en) * 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7853749B2 (en) * 2005-09-01 2010-12-14 Cypress Semiconductor Corporation Flash drive fast wear leveling
US7594087B2 (en) * 2006-01-19 2009-09-22 Sigmatel, Inc. System and method for writing data to and erasing data from non-volatile memory
US7653778B2 (en) * 2006-05-08 2010-01-26 Siliconsystems, Inc. Systems and methods for measuring the useful life of solid-state storage devices
JP4700562B2 (ja) 2006-05-18 2011-06-15 株式会社バッファロー データ記憶装置およびデータ記憶方法
US7953954B2 (en) * 2007-01-26 2011-05-31 Micron Technology, Inc. Flash storage partial page caching
CN101281492B (zh) * 2007-04-04 2011-02-02 扬智科技股份有限公司 恢复闪存的对照表的方法
US7689762B2 (en) 2007-05-03 2010-03-30 Atmel Corporation Storage device wear leveling
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
TWI366828B (en) * 2007-09-27 2012-06-21 Phison Electronics Corp Wear leveling method and controller using the same
CN101409108B (zh) * 2007-10-09 2011-04-13 群联电子股份有限公司 平均磨损方法及使用此方法的控制器
US8122179B2 (en) * 2007-12-14 2012-02-21 Silicon Motion, Inc. Memory apparatus and method of evenly using the blocks of a flash memory
KR101454817B1 (ko) * 2008-01-11 2014-10-30 삼성전자주식회사 반도체 메모리 장치 및 그것의 마모도 관리 방법
JP4675985B2 (ja) * 2008-03-01 2011-04-27 株式会社東芝 メモリシステム
CN101566969B (zh) * 2008-04-21 2011-05-18 群联电子股份有限公司 提升非易失性存储器存储装置的管理效能的方法及控制器
US8959280B2 (en) * 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
TWI389125B (zh) * 2008-07-18 2013-03-11 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
US8140739B2 (en) * 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
US8285970B2 (en) * 2008-11-06 2012-10-09 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
US20100235605A1 (en) * 2009-02-13 2010-09-16 Nir Perry Enhancement of storage life expectancy by bad block management
TWI409819B (zh) * 2009-03-03 2013-09-21 Silicon Motion Inc 平均地使用一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
KR101586047B1 (ko) * 2009-03-25 2016-01-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US8412909B2 (en) * 2009-04-08 2013-04-02 Samsung Electronics Co., Ltd. Defining and changing spare space and user space in a storage apparatus
KR101571693B1 (ko) * 2009-04-15 2015-11-26 삼성전자주식회사 동작 수행 중 다른 요청을 우선 처리할 수 있는 비휘발성 메모리 컨트롤러, 이를 포함하는 시스템 및 그 관리 방법
TWI414940B (zh) * 2009-12-30 2013-11-11 Phison Electronics Corp 區塊管理與資料寫入方法、快閃記憶體儲存系統與控制器
TWI399643B (zh) 2009-12-31 2013-06-21 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與資料寫入方法
US8402203B2 (en) * 2009-12-31 2013-03-19 Seagate Technology Llc Systems and methods for storing data in a multi-level cell solid state storage device
JP2011198433A (ja) * 2010-03-23 2011-10-06 Toshiba Corp メモリシステム
KR20120002760A (ko) * 2010-07-01 2012-01-09 삼성전자주식회사 낸드 플래쉬 메모리의 동작 신뢰성을 향상시키는 데이터 기록 방법 및 데이터 기록 장치
CN102298555B (zh) * 2011-08-22 2016-04-27 宜兴市华星特种陶瓷科技有限公司 基于nand技术的模块化闪存管理系统
TWI454911B (zh) * 2011-10-12 2014-10-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101582052A (zh) * 2008-05-15 2009-11-18 慧国(上海)软件科技有限公司 存储器模组及于存储器模组中实现平均磨损的方法
TW201027420A (en) * 2009-01-15 2010-07-16 Phison Electronics Corp Data accessing method for flash memory, and storage system and controller system thereof

Also Published As

Publication number Publication date
CN103425598A (zh) 2013-12-04
US9600408B2 (en) 2017-03-21
CN103425597B (zh) 2016-04-06
TWI514260B (zh) 2015-12-21
TW201349099A (zh) 2013-12-01
CN103425588A (zh) 2013-12-04
CN103425596A (zh) 2013-12-04
CN103425588B (zh) 2017-03-01
TW201349101A (zh) 2013-12-01
CN103425599A (zh) 2013-12-04
US20130311704A1 (en) 2013-11-21
CN103425597A (zh) 2013-12-04
US20130311701A1 (en) 2013-11-21
US9104549B2 (en) 2015-08-11
TW201349095A (zh) 2013-12-01
CN103425595A (zh) 2013-12-04
TW201349098A (zh) 2013-12-01
US9116792B2 (en) 2015-08-25
US20130311705A1 (en) 2013-11-21
TWI489373B (zh) 2015-06-21
US20130311698A1 (en) 2013-11-21
CN103425598B (zh) 2017-04-19
TWI590150B (zh) 2017-07-01
US20130311703A1 (en) 2013-11-21
US9223691B2 (en) 2015-12-29
US20130311702A1 (en) 2013-11-21
TWI460654B (zh) 2014-11-11
TW201349097A (zh) 2013-12-01
TW201349096A (zh) 2013-12-01

Similar Documents

Publication Publication Date Title
CN103425595B (zh) 数据储存装置和闪存的区块管理方法
TWI520139B (zh) 資料儲存裝置以及快閃記憶體控制方法
CN104298610B (zh) 资料储存系统及其管理方法
CN101354681B (zh) 存储器系统、非易失性存储器的磨损均衡方法及装置
CN107025178A (zh) 存储器控制器、非易失性存储器系统及其操作方法
CN109783009A (zh) 存储器系统及其操作方法
CN110058796A (zh) 数据储存装置
CN107844431A (zh) 映射表更新方法、存储器控制电路单元与存储器存储装置
CN109542675A (zh) 存储器系统及其操作方法
US20100057979A1 (en) Data transmission method for flash memory and flash memory storage system and controller using the same
JP2004164633A5 (zh)
US8225050B2 (en) Memory storage device and a control method thereof
TW201308077A (zh) 在混合式單位階記憶體胞(slc)/多位階記憶體胞(mlc)記憶體中之區塊管理方案
CN101641679A (zh) 用于系统管理的多级单元选择的多程序
CN107526540A (zh) 数据储存装置及其数据维护方法
CN109582593A (zh) 一种基于计算的ftl地址映射方法及数据读、写方法
TW201234176A (en) Memory management method, memory controller and memory storage apparatus
CN103136111B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN107544922A (zh) 数据写入方法、存储器控制电路单元及存储器存储装置
CN106201329A (zh) 循环区块模式下的数据存取方法以及使用该方法的装置
CN105988950B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
US20190026045A1 (en) Storage Device and Data Control Method for Storage Error Control
CN113010091B (zh) 数据写入固态硬盘的方法、垃圾回收的方法、装置
US20130054903A1 (en) Memory device and writing method thereof
CN106201932B (zh) 数据写入方法、存储器控制电路单元与存储器存储装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant