用于管理闪存多个区块的方法和相关记忆装置及其控制器.pdf

上传人:b*** 文档编号:1276346 上传时间:2018-04-12 格式:PDF 页数:13 大小:435.15KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910179754.7

申请日:

2009.09.24

公开号:

CN102033812A

公开日:

2011.04.27

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 12/06申请日:20090924|||公开

IPC分类号:

G06F12/06

主分类号:

G06F12/06

申请人:

慧荣科技股份有限公司

发明人:

陈波; 胡水华; 李维卿; 李向荣

地址:

中国台湾新竹县竹北市台元街三十六号八楼之一

优先权:

专利代理机构:

深圳市顺天达专利商标代理有限公司 44217

代理人:

易钊

PDF下载: PDF下载
内容摘要

本发明提供一种用于管理闪存的多个区块的方法和相关记忆装置及其控制器,所述方法包括:针对一逻辑区块地址记录/更新链接信息,其中所述链接信息包括链接至所述逻辑区块地址的多个实体区块地址,且每一实体区块地址代表所述多个区块中的一区块;以及当所述多个实体区块地址中的一实体区块地址所代表的区块已无有效页时,选择性地抹除所述区块并从所述链接信息中移除所述实体区块地址。本发明还提供相关的记忆装置及其控制器,而该控制器包括:一只读存储器,用于储存一程序代码;以及一微处理器,用于执行该程序代码以控制对所述闪存的存取以及管理所述多个区块。

权利要求书

1: 一种用于管理闪存的多个区块的方法, 其特征在于, 该方法包括 : 针对一逻辑区块地址记录 / 更新链接信息, 其中所述链接信息包括链接至所述逻辑区 块地址的多个实体区块地址, 且每一实体区块地址代表所述多个区块中的一区块 ; 以及 当所述多个实体区块地址中的一实体区块地址所代表的区块已无有效页时, 选择性地 抹除所述区块并从所述链接信息中移除所述实体区块地址。
2: 根据权利要求 1 所述的用于管理闪存的多个区块的方法, 其特征在于, 其中所述链 接信息还包括目前实体页位置信息, 用于指出针对所述逻辑区块地址最新写入的实体页的 位置。
3: 根据权利要求 1 所述的用于管理闪存的多个区块的方法, 其特征在于, 其中所述链 接信息还包括页链接信息 ; 以及所述方法还包括 : 依据所述页链接信息来判定所述实体区块地址所代表的区块是否已无有效页。
4: 根据权利要求 3 所述的用于管理闪存的多个区块的方法, 其特征在于, 其中所述页 链接信息包括一逻辑实体页链接表 ; 以及针对所述逻辑区块地址记录 / 更新所述链接信息 的步骤还包括 : 在所述逻辑实体页链接表中, 针对属于所述逻辑区块地址的一逻辑页地址记录 / 更新 相对应的一实体区块地址或其代表信息, 并记录 / 更新相对应的一实体页地址。
5: 根据权利要求 4 所述的用于管理闪存的多个区块的方法, 其特征在于, 其中针对所 述逻辑页地址记录 / 更新相对应的所述实体区块地址或其代表信息, 并记录 / 更新相对应 的所述实体页地址的步骤还包括 : 以一实体区块地址表中顺位较后面的一实体区块的一相关链接信息更新所述实体区 块地址表中顺位较前面的一实体区块的一相关链接信息。
6: 根据权利要求 4 所述的用于管理闪存的多个区块的方法, 其特征在于, 其中所述页 链接信息还包括指向所述逻辑实体页链接表的一指针。
7: 根据权利要求 1 所述的用于管理闪存的多个区块的方法, 其特征在于, 其中所述链 接信息还包括所述多个实体区块地址的数量。
8: 根据权利要求 1 所述的用于管理闪存的多个区块的方法, 其特征在于, 其中选择性 地抹除所述区块并从所述链接信息中移除代表所述区块的实体区块地址的步骤还包括 : 当所述实体区块地址所代表的区块已无有效页时, 立即抹除所述区块并从所述链接信 息中移除所述实体区块地址。
9: 根据权利要求 1 所述的用于管理闪存的多个区块的方法, 其特征在于, 其中选择性 地抹除所述区块并从所述链接信息中移除代表所述区块的实体区块地址的步骤还包括 : 当所述实体区块地址所代表的区块已无有效页时, 基于一特定事件的发生来触发抹除 所述区块并移除所述实体区块地址的运作。
10: 根据权利要求 1 所述的用于管理闪存的多个区块的方法, 其特征在于, 其中选择性 地抹除所述区块并从所述链接信息中移除代表所述区块的实体区块地址的步骤还包括 : 当所述实体区块地址所代表的区块当中已无有效页的区块的数量已达一预定值时, 一 并抹除这些已无有效页的区块并从所述链接信息中移除其实体区块地址。
11: 根据权利要求 1 所述的用于管理闪存的多个区块的方法, 其特征在于, 其中选择性 地抹除所述区块并从所述链接信息中移除代表所述区块的实体区块地址的步骤还包括 : 2 当所述些实体区块地址所代表的区块的数量已达一预定值时, 将所述实体区块地址所 代表的区块中的至少一部分区块的有效页合并到至少一新的空白区块, 且抹除所述至少一 部分区块并从所述链接信息中移除其实体区块地址。
12: 根据权利要求 1 所述的用于管理闪存的多个区块的方法, 其特征在于, 还包括 : 当一特定区块的实体页是以相对应逻辑区块的逻辑页的相同的顺序被连续地写入时, 将所述相对应逻辑区块的链接信息中的一指针设为空值, 以避免指向任何逻辑实体页链接 表。
13: 一种记忆装置, 其特征在于, 包括 : 一闪存, 所述闪存包括多个区块 ; 以及 一控制器, 用于存取所述闪存以及管理所述多个区块, 其中所述控制器针对一逻辑区 块地址记录 / 更新链接信息, 而所述链接信息包括链接至所述逻辑区块地址的多个实体区 块地址, 且每一实体区块地址代表所述多个区块中的一区块 ; 其中当所述多个实体区块地址中的一实体区块地址所代表的区块已无有效页时, 所述 控制器选择性地抹除所述区块并从所述链接信息中移除所述实体区块地址。
14: 一种记忆装置的控制器, 其特征在于, 所述控制器用于存取一闪存, 所述闪存包括 多个区块, 所述控制器包括 : 一只读存储器, 用于储存一程序代码 ; 以及 一微处理器, 用于执行所述程序代码以控制对所述闪存的存取以及管理所述多个区 块; 其中通过所述微处理器执行所述程序代码的所述控制器针对一逻辑区块地址记录 / 更新链接信息, 而所述链接信息包括链接至所述逻辑区块地址的多个实体区块地址, 且每 一实体区块地址代表所述多个区块中的一区块 ; 以及当所述多个实体区块地址中的一实体 区块地址所代表的区块已无有效页时, 通过所述微处理器执行所述程序代码的所述控制器 选择性地抹除所述区块并从所述链接信息中移除所述实体区块地址。
15: 根据权利要求 14 所述的记忆装置的控制器, 其特征在于, 其中所述链接信息还包 括目前实体页位置信息, 用于指出针对所述逻辑区块地址最新写入的实体页的位置。
16: 根据权利要求 14 所述的记忆装置的控制器, 其特征在于, 其中所述链接信息还包 括页链接信息 ; 以及通过所述微处理器执行所述程序代码的所述控制器依据所述页链接信 息来判定所述实体区块地址所代表的区块是否已无有效页。
17: 根据权利要求 16 所述的记忆装置的控制器, 其特征在于, 其中所述页链接信息包 括一逻辑实体页链接表 ; 以及在所述逻辑实体页链接表中, 通过所述微处理器执行所述程 序代码的所述控制器针对属于所述逻辑区块地址的一逻辑页地址记录 / 更新相对应的一 实体区块地址或其代表信息, 并记录 / 更新相对应的一实体页地址。
18: 根据权利要求 17 所述的记忆装置的控制器, 其特征在于, 其中通过所述微处理器 执行所述程序代码的所述控制器以一实体区块地址表中顺位较后面的一实体区块的一相 关链接信息更新所述实体区块地址表中顺位较前面的一实体区块的一相关链接信息。 其中所述页链接信息还
19: 根据权利要求 17 所述的记忆装置的控制器, 其特征在于, 包括指向所述逻辑实体页链接表的一指针。
20: 根据权利要求 14 所述的记忆装置的控制器, 其特征在于, 其中所述链接信息还包 3 括所述多个实体区块地址的数量。
21: 根据权利要求 14 所述的记忆装置的控制器, 其特征在于, 其中当所述实体区块地 址所代表的区块已无有效页时, 通过所述微处理器执行所述程序代码的所述控制器立即抹 除所述区块并从所述链接信息中移除所述实体区块地址。
22: 根据权利要求 14 所述的记忆装置的控制器, 其特征在于, 其中当所述实体区块地 址所代表的区块已无有效页时, 通过所述微处理器执行所述程序代码的所述控制器基于一 特定事件的发生来触发抹除所述区块并移除所述实体区块地址的运作。
23: 根据权利要求 14 所述的记忆装置的控制器, 其特征在于, 其中当所述实体区块地 址所代表的区块当中已无有效页的区块的数量已达一预定值时, 通过所述微处理器执行所 述程序代码的所述控制器一并抹除这些已无有效页的区块并从所述链接信息中移除其实 体区块地址。
24: 根据权利要求 14 所述的记忆装置的控制器, 其特征在于, 其中当所述些实体区块 地址所代表的区块的数量已达一预定值时, 通过所述微处理器执行所述程序代码的所述控 制器将所述些实体区块地址所代表的区块中的至少一部分区块的有效页合并到至少一新 的空白区块, 且抹除所述至少一部分区块并从所述链接信息中移除其实体区块地址。
25: 根据权利要求 14 所述的记忆装置的控制器, 其特征在于, 其中当一特定区块的实 体页是以相对应逻辑区块的逻辑页的相同的顺序被连续地写入时, 通过所述微处理器执行 所述程序代码的所述控制器将所述相对应逻辑区块的链接信息中的一指针设为空值, 以避 免指向任何逻辑实体页链接表。

说明书


用于管理闪存多个区块的方法和相关记忆装置及其控制器

    【技术领域】
     本发明涉及闪存 (Flash Memory) 的存取 (Access), 更具体地说, 涉及一种用于管 理一闪存的多个区块的方法以及相关的记忆装置及其控制器。背景技术
     近年来由于闪存的技术不断地发展, 各种便携式记忆装置 ( 例如 : 符合 SD/MMC、 CF、 MS、 XD 标准的记忆卡 ) 被广泛地实施于诸多应用中。因此, 这些便携式记忆装置中的闪 存的存取控制也就成为相当热门的话题。
     以常用的 NAND 型闪存而言, 其主要可区分为单层单元闪存 (Single Level Cell, SLC) 与多层单元闪存 (Multiple Level Cell, MLC) 两大类。 单层单元闪存中的每个被当作 记忆单元的晶体管只有两种电荷值, 分别用于表示逻辑值 0 与逻辑值 1。另外, 多层单元闪 存中的每个被当作记忆单元的晶体管的储存能力则被充分利用, 采用较高的电压来驱动, 以通过不同级别的电压在一个晶体管中记录两组位信息 ( 例如 : 00、 01、 11、 10) ; 理论上, 多 阶细胞闪存的记录密度可以达到单阶细胞闪存的记录密度的两倍以上, 这对于曾经在发展 过程中遇到瓶颈的 NAND 型闪存的相关产业而言, 是非常好的消息。
     与单层单元闪存相比, 由于多层单元闪存的价格较便宜, 并且在有限的空间里可 提供较大的容量, 故多层单元闪存很快地成为市场上的便携式记忆装置竞相采用的主流。 然而, 多层单元闪存的不稳定性所导致的问题也一一浮现。例如 : 依据相关技术, 一旦闪存 因使用多时而质量变差, 使用者的数据就可能随时会遗失。尤其是, 与单层单元闪存相比, 多层单元闪存中的每一区块的抹除次数 (Erase Count) 的上限相对地低, 这会使得上述的 不稳定性的问题更加突出。
     需要注意的是, 闪存的每一区块的抹除次数的上限往往随着新的制造技术的采用 而降低。然而, 制造技术的进展往往是闪存制造厂商降低成本的重要手段 ; 在此状况下, 上 述的不稳定性的问题将会更加严重。因此, 需要一种新颖的方法来加强控管闪存的数据存 取, 以确保使用者数据的完整性。 发明内容
     因此, 本发明的目的之一在于提供一种用于管理一闪存的多个区块的方法以及相 关的记忆装置及其控制器, 以解决上述问题。
     本发明的另一目的在于提供一种用于管理一闪存的多个区块的方法以及相关的 记忆装置及其控制器, 以增进运作效能并减少所述闪存中的区块的合并运作的次数, 甚至 可以不必进行合并运作。
     本发明的又一目的在于提供一种用于管理一闪存的多个区块的方法以及相关的 记忆装置及其控制器, 以减缓闪存中的区块的抹除次数的增加速率。 因此, 通过利用本发明 所实现的便携式记忆装置会拥有较长的使用寿命。
     本发明的较佳实施例中提供一种用于管理一闪存的多个区块的方法, 所述方法包括: 针对一逻辑区块地址记录 / 更新链接信息, 其中所述链接信息包括链接至所述逻辑区 块地址的多个实体区块地址, 且每一实体区块地址代表所述多个区块中的一区块 ; 以及当 所述多个实体区块地址中的一实体区块地址所代表的区块已无有效页时, 选择性地抹除所 述区块并从所述链接信息中移除所述实体区块地址。
     本发明于提供上述方法的同时, 也对应地提供一种记忆装置, 其包括有 : 一闪存, 所述闪存包括多个区块 ; 以及一控制器, 用于存取所述闪存以及管理所述多个区块, 其中所 述控制器针对一逻辑区块地址记录 / 更新链接信息, 而所述链接信息包括链接至所述逻辑 区块地址的多个实体区块地址, 且每一实体区块地址代表所述多个区块中的一区块 ; 其中 当所述多个实体区块地址中的一实体区块地址所代表的区块已无有效页时, 所述控制器选 择性地抹除所述区块并从所述链接信息中移除所述实体区块地址。
     本发明在提供上述方法的同时, 还对应地提供一种记忆装置的控制器, 所述控制 器系用于存取一闪存, 所述闪存包括多个区块, 所述控制器包括有 : 一只读存储器, 用于储 存一程序代码 ; 以及一微处理器, 用于执行所述程序代码以控制对所述闪存的存取以及管 理所述多个区块 ; 其中通过所述微处理器执行所述程序代码的所述控制器针对一逻辑区块 地址记录 / 更新链接信息, 而所述链接信息包括链接至所述逻辑区块地址的多个实体区块 地址, 且每一实体区块地址代表所述多个区块中的一区块 ; 以及当所述多个实体区块地址 中的一实体区块地址所代表的区块已无有效页时, 通过所述微处理器执行所述程序代码的 所述控制器选择性地抹除所述区块并从所述链接信息中移除所述实体区块地址。 附图说明
     下面将结合附图及实施例对本发明作进一步说明, 附图中 : 图 1 为依据本发明一第一实施例的一种记忆装置的示意图。 图 2 为依据本发明一实施例的一种用于管理一闪存的多个区块的方法的流程图。 图 3 为图 2 所示的方法在一实施例中所涉及的链接信息的示意图。 【主要组件符号说明】 100 记忆装置 110 存储器控制器 112 微处理器 112C 程序代码 112M 只读存储器 114 控制逻辑 116 缓冲存储器 118 接口逻辑 120 闪存 300-i 链接信息 318-i 实体区块地址表 320-i 逻辑实体页链接表 910 用于管理一闪存的多个区块的方法 912, 914 步骤 Current_PPage 当前空白页位置 LB(0), LB(1),…, LB(i),…, LB(n) 逻辑区块地址 LPage(0), LPage(1),…, LPage(m-1) 逻辑页地址 Page_Link_Table 指向逻辑实体页链接表的指针 PBA_Count 实体区块地址的数量 PBA(0), PBA(1),…, PBA(N) 实体区块地址 PBAT(0), PBAT(1),…, PBAT(N) 实体区块地址表索引具体实施方式
     为了使本发明的目的、 技术方案及优点更加清楚明白, 以下结合附图及实施例, 对 本发明进行进一步详细说明。 应当理解, 此处所描述的具体实施例仅仅用以解释本发明, 并 不用于限定本发明。
     参考图 1, 图 1 为依据本发明一第一实施例的一种记忆装置 100 的示意图, 其中本 实施例的记忆装置 100 可为便携式记忆装置 ( 例如 : 符合 SD/MMC、 CF、 MS、 XD 标准的记忆 卡 )。记忆装置 100 包括 : 一闪存 (Flash Memory)120 ; 以及一控制器, 用于存取 (Access) 闪存 120, 其中该控制器例如一存储器控制器 110。依据本实施例, 存储器控制器 110 包括 一微处理器 112、 一只读存储器 (Read Only Memory, ROM)112M、 一控制逻辑 114、 一缓冲存 储器 116、 与一接口逻辑 118。只读存储器用于储存一程序代码 112C, 而微处理器 112 则用 于执行程序代码 112C 以控制对闪存 120 的存取。请注意到, 程序代码 112C 也需储存在缓 冲存储器 116 或任何形式的存储器内。
     一般情况下, 闪存 120 包括多个区块 (Block), 而该控制器 ( 例如 : 通过微处理器 112 执行程序代码 112C 的存储器控制器 110) 对闪存 120 进行抹除数据的运作以区块为单 位来进行抹除。 另外, 一区块可记录特定数量的页 (Page), 其中该控制器对闪存 120 进行写 入数据的运作以页为单位来进行写入。 实际操作中, 通过微处理器 112 执行程序代码 112C 的存储器控制器 110 可利用其 本身内部的组件来进行诸多控制运作, 例如 : 利用控制逻辑 114 来控制闪存 120 的存取运 作 ( 尤其是对至少一区块或至少一页的存取运作 )、 利用缓冲存储器 116 进行所需的缓冲处 理、 以及利用接口逻辑 118 来与一主装置 (Host Device) 交互。
     依据本实施例, 除了能存取闪存 120, 该控制器还能妥善地管理该多个区块。更明 确而言, 在写入 / 更新数据时, 该控制器可针对一逻辑区块地址记录 / 更新链接信息, 其中 该链接信息包括链接至该逻辑区块地址的多个实体区块地址, 且每一实体区块地址代表该 多个区块中的一区块。另外, 当该多个实体区块地址中的一实体区块地址所代表的区块已 无有效页 (Valid Page) 时, 选择性地抹除该区块并从该链接信息中移除该实体区块地址。
     在此, 一有效页代表具有有效数据的数据页, 尤其是代表实际链接至某一逻辑页 地址的一第一实体页。由于该控制器对闪存 120 进行抹除数据的运作以区块为单位来进行 抹除, 故当该控制器针对该逻辑页地址更新数据时, 会将更新的数据写入一第二实体页, 并 将该逻辑页地址与该第一实体页之间的链接关系取代为该逻辑页地址与该第二实体页之 间的链接关系。如此, 该控制器取消该逻辑页地址与该第一实体页之间的链接关系。于是, 该第一实体页就不再是有效页, 乃是被视为无效页 (Invalid Page)。
     图 2 为依据本发明一实施例的一种用于管理一闪存的多个区块的方法 910 的流程 图。该方法可应用于图 1 所示的记忆装置 100, 尤其是上述的控制器 ( 例如 : 通过微处理器 112 执行程序代码 112C 的存储器控制器 110)。另外, 该方法可通过利用图 1 所示的记忆装 置 100 来实施, 尤其是通过利用上述的控制器来实施。该方法说明如下 :
     在步骤 912 中, 上述的控制器 ( 例如 : 通过微处理器 112 执行程序代码 112C 的存 储器控制器 110) 针对一逻辑区块地址记录 / 更新链接信息, 其中该链接信息包括链接至该 逻辑区块地址的多个实体区块地址, 且每一实体区块地址代表该多个区块中的一区块。尤 其是, 该链接信息还包括目前实体页位置信息, 用于指出针对该逻辑区块地址最新写入的
     实体页的位置。另外, 该链接信息还包括其它信息可供参考。于是, 当该控制器日后要针对 该逻辑区块地址进行存取时, 即可依据该链接信息来存取属于该逻辑区块地址的数据。
     在步骤 914 中, 当该多个实体区块地址中的一实体区块地址所代表的区块已无有 效页时, 该控制器选择性地抹除该区块并从该链接信息中移除该实体区块地址。 例如 : 当该 实体区块地址所代表的区块已无有效页时, 该控制器立即抹除该区块并从该链接信息中移 除该实体区块地址。这只是为了说明的目的而已, 并非对本发明的限制。依据本实施例的 一变化例, 当该实体区块地址所代表的区块已无有效页时, 该控制器基于一特定事件的发 生来触发抹除该区块并移除该实体区块地址的运作。这样, 该控制器等到该特定事件的发 生才抹除该区块并从该链接信息中移除该实体区块地址。依据本实施例的另一变化例, 当 该些实体区块地址所代表的区块当中已无有效页的区块的数量已达一预定值时, 该控制器 一并抹除这些已无有效页的区块并从该链接信息中移除其实体区块地址。 依据本实施例的 另一变化例, 当该些实体区块地址所代表的区块的数量已达一预定值时, 该控制器将该些 实体区块地址所代表的区块中的至少一部分区块的有效页合并 (Merge) 到至少一新的空 白区块, 且抹除该至少一部分区块并从该链接信息中移除其实体区块地址。尤其是在本变 化例中, 该至少一部分区块为该些实体区块地址所代表的区块当中具有最少 ( 或较少 ) 有 效页的一个或多个区块。 依据本实施例, 该链接信息还包括页链接信息。该控制器会依据该页链接信息来 判定该实体区块地址所代表的区块是否已无有效页。尤其是, 该页链接信息包括一逻辑实 体页链接表 ; 这样, 在该逻辑实体页链接表中, 该控制器就可以针对属于该逻辑区块地址的 一逻辑页地址记录 / 更新相对应的一实体区块地址或其代表信息, 并记录 / 更新相对应的 一实体页地址。关于该链接信息的实施细节, 请参考图 3 来进一步说明。
     图 3 为图 2 所示的方法在一实施例中所涉及的链接信息 300-i 的示意图。在步骤 912 中, 上述的控制器 ( 例如 : 通过微处理器 112 执行程序代码 112C 的存储器控制器 110) 可针对任一逻辑区块地址 LB(i) 记录 / 更新链接信息, 其中 i = 0、 1、 ...、 或 n。如图 3 所 示, 链接信息 300-i 包括 : 目前实体页位置信息例如当前空白页位置 Current_PPage、 指向 逻辑实体页链接表 320-i 的一指针 Page_Link_Table、 链接至逻辑区块地址 LB(i) 的多个 实体区块地址 ( 例如 : 图 3 所示的实体区块地址 PBA(0)、 PBA(1)、 ...、 与 PBA(N)) 的数量 PBA_Count、 以及具有该多个实体区块地址的一实体区块地址表 318-i。当前空白页位置 Currrent_PPage 用来标示最新一页资料应写入哪一个实体页。在本实施例中, 实体区块地 址 PBA(0)、 PBA(1)、 ...、 与 PBA(N) 分别代表实体区块 0、 1、 ...、 与 N。该控制器依序使用了 实体区块 0、 1、 ...、 与 N 储存属于逻辑区块地址 LB(i) 的数据, 并且依序在实体区块地址表 318-i 记录了实体区块地址 PBA(0)、 PBA(1)、 ...、 与 PBA(N)。这只是为了说明的目的而已, 并非对本发明的限制。在实际操作中, 实体区块地址表 318-i 中可储存任何被该控制器针 对逻辑区块地址 LB(i) 写入数据的实体区块的实体区块地址。尤其是, 该控制器可随时在 实体区块地址表 318-i 中新增或移除任何实体区块地址, 并可根据需要重新调整实体区块 地址表 318-i 中的实体区块地址的位置。
     一般而言, 实体区块地址表 318-i 中的实体区块地址可为该多个区块中的任何部 分的区块的实体区块地址, 且该些实体区块地址的顺序不需要和该多个区块中的任何部分 的区块的顺序相同, 并且实体区块地址表 318-i 中的任两相邻字段内的两实体区块地址不
     必是连续的。 例如 : 在多次针对逻辑区块地址 LB(i) 进行数据存取之后, 该控制器依序在实 体区块地址表 318-i 记录了实体区块地址 PBA(1024)、 PBA(20)、 PBA(8)、 PBA(74)、 ... 等, 分别代表实体区块 1024、 20、 8、 74、 ... 等, 就是当时仍用于储存属于逻辑区块地址 LB(i) 的 数据的实体区块。
     在本实施例中, 该控制器首先使用实体区块地址 PBA(0) 所代表的实体区块 0 来写 入 / 更新属于逻辑区块地址 LB(i) 的数据, 并将实体区块地址 PBA(0) 记录在实体区块地址 表 318-i, 其中实体区块地址表 318-i 中最初只有实体区块地址 PBA(0), 且数量 PBA_Count 的初始值等于 1。 在这个过程中, 该控制器在逻辑实体页链接表 320-i 中记录 / 更新多组实 体区块地址表索引与实体页地址, 以便日后可以找到属于逻辑区块地址 LB(i) 的数据, 其 中逻辑实体页链接表 320-i 的每一列 ( 或项目 ) 包括一组实体区块地址表索引与实体页地 址, 且由上至下的各列 ( 或项目 ) 分别对应于属于逻辑区块地址 LB(i) 的各个逻辑页地址 LPage(0)、 LPage(1)、 ...、 与 LPage(m-1)。
     请注意, 本实施例的实体区块地址表索引选自图 3 右上角所示的实体区块地址表 索引 PBAT(0)、 PBAT(1)、 ...、 与 PBAT(N), 而该控制器可依据实体区块地址表索引 PBAT(0)、 PBAT(1)、 ...、 与 PBAT(N) 于实体区块地址表 318-i 当中分别查找出实体区块地址 PBA(0)、 PBA(1)、 ...、 与 PBA(N)。这样, 逻辑实体页链接表 320-i 中所储存的每一实体区块地址表 索引为一相对应的实体区块地址的代表信息 ( 索引信息 ), 其中该代表信息的典型数据量 小于该相对应的实体区块地址的数据量, 故在逻辑实体页链接表 320-i 中储存该代表信息 ( 而不直接储存该相对应的实体区块地址 ) 有助于节省储存空间并提升整体运作效能。另 外, 本实施例的实体区块地址表索引 PBAT(0)、 PBAT(1)、 ...、 与 PBAT(N) 分别为 0、 1、 ...、 与 N, 也即实体区块地址表 318-i 各字段的顺位, 故实际应用中实体区块地址表 318-i 不 必储存有实体区块地址表索引 PBAT(0)、 PBAT(1)、 ...、 与 PBAT(N)。这只是为了说明的目 的而已, 并非对本发明的限制。依据本实施例的一变化例, 实体区块地址表索引 PBAT(0)、 PBAT(1)、 ...、 与 PBAT(N) 可为别的数值。依据本实施例的另一变化例, 该控制器在逻辑实 体页链接表 320-i 中直接储存该相对应的实体区块地址 ( 而不储存该代表信息 ) ; 也就是 说, 该控制器在逻辑实体页链接表 320-i 中记录 / 更新多组实体区块地址与实体页地址, 以 便日后可以找到属于逻辑区块地址 LB(i) 的数据, 其中逻辑实体页链接表 320-i 的每一列 ( 或项目 ) 包括一组实体区块地址与实体页地址。
     依 据 本 实 施 例, 在 建 立 实 体 区 块 地 址 表 318-i 的 过 程 之 初, 当实体区块地址 PBA(0) 所代表的实体区块已完全写入 (Fully Programmed) 时, 该控制器接着使用实体区 块地址 PBA(1) 所代表的实体区块来写入 / 更新属于逻辑区块地址 LB(i) 的数据, 并将实体 区块地址 PBA(1) 记录于实体区块地址表 318-i, 其中此时实体区块地址表 318-i 中只有实 体区块地址 PBA(0) 及 PBA(1), 且数量 PBA_Count 的值被更改为 2。 此情况下, 一旦该控制器 必须针对逻辑区块地址 LB(i) 的某一逻辑页地址更新数据, 例如针对逻辑页地址 LPage(m0) 更新数据, 则该控制器更新逻辑实体页链接表 320-i 中对应于逻辑页地址 LPage(m0) 的 一组实体区块地址表索引与实体页地址, 其中该实体区块地址表索引由 PBAT(0) 更新为 PBAT(1), 且该实体页地址由实体区块 0 的一旧数据页的地址更新为实体区块 1 的一新数据 页的地址。也即, 该控制器以实体区块地址表 318-i 中顺位较后面的一实体区块 ( 即实体 区块地址表索引较大的实体区块 ) 的相关链接信息更新实体区块地址表 318-i 中顺位较前面的一实体区块 ( 即实体区块地址表索引较小的实体区块 ) 的相关链接信息。这只是为了 说明的目的而已, 并非对本发明的限制。 依据本实施例的一变化例, 当一特定区块的实体页 是以相对应逻辑区块的逻辑页的相同的顺序被连续地写入时, 该控制器可将该相对应逻辑 区块的链接信息中的指针 Page_Link_Table 设为空 (Null) 值, 以避免指向任何逻辑实体页 链接表。
     类似地, 在本实施例中, 当实体区块地址 PBA(j-1) 所代表的实体区块已完全写入 时, 该控制器使用实体区块地址 PBA(j) 所代表的实体区块来写入 / 更新属于逻辑区块地址 LB(i) 的数据, 并将实体区块地址 PBA(j) 记录于实体区块地址表 318-i, 其中此时实体区块 地址表 318-i 中储存有实体区块地址 PBA(0)、 PBA(1)、 ...、 与 PBA(j), 且数量 PBA_Count 的 值被更改为 (j+1)。 此情况下, 一旦该控制器必须针对逻辑区块地址 LB(i) 的某一逻辑页地 址更新数据, 例如针对逻辑页地址 LPage(m1) 更新数据, 则该控制器更新逻辑实体页链接表 320-i 中对应于逻辑页地址 LPage(m1) 的一组实体区块地址表索引与实体页地址, 其中该实 体区块地址表索引更新为 PBAT(j), 且该实体页地址更新为实体区块 j 的一新数据页的地 址。
     如此, 上述的运作扩增了实体区块地址表 318-i, 其中参数 j 由 1 变化至 N。于是, 当 j = N 时, 实体区块地址表 318-i 中储存有实体区块地址 PBA(0)、 PBA(1)、 ...、 与 PBA(N), 且数量 PBA_Count 的值被更改为 (N+1)。 随着数量 PBA_Count 的值不断地增加, 实体区块地址表 318-i 中所储存的各个实 体区块地址会逐一满足步骤 914 所述的执行条件。于是, 当该些实体区块地址中的任一实 体区块地址所代表的区块已无有效页时, 该控制器即可选择性地抹除该区块并从该链接信 息中移除该实体区块地址。这样, 本发明的方法以及相关的记忆装置及其控制器可大幅地 减少合并运作 (Merging Operation) 以及无效数据页的垃圾集中 (Garbage Collection) 运作的负担。
     依据本实施例, 当链接信息 300-i 指出有 K 个实体区块地址链接至逻辑区块地址 LB(i) 时, 关于无效数据页的垃圾集中运作的负担大约减为 (1/K) 倍, 即其效能约为现有技 术的 K 倍。尤其是, 当 K 大于一个区块的页数 ( 例如 m) 时, 关于无效数据页的垃圾集中运 作的负担就可以完全去除, 且不需要进行合并运作。 因此, 本发明的方法以及相关的记忆装 置及其控制器可减缓闪存 120 中的区块的抹除次数 (Erase Count) 的增加速率。
     与现有技术相比, 本发明的方法以及相关的记忆装置及其控制器可增进运作效能 并减少闪存中的区块的合并运作的次数, 甚至可以不必进行合并运作。 另外, 本发明的方法 以及相关的记忆装置及其控制器可以减缓闪存中的区块的抹除次数的增加速率。因此, 通 过利用本发明所实现的便携式记忆装置会拥有较长的使用寿命。
     以上所述仅为本发明的较佳实施例, 凡依本发明申请专利范围所做的均等变化与 修饰, 皆应属本发明的涵盖范围。
    

用于管理闪存多个区块的方法和相关记忆装置及其控制器.pdf_第1页
第1页 / 共13页
用于管理闪存多个区块的方法和相关记忆装置及其控制器.pdf_第2页
第2页 / 共13页
用于管理闪存多个区块的方法和相关记忆装置及其控制器.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《用于管理闪存多个区块的方法和相关记忆装置及其控制器.pdf》由会员分享,可在线阅读,更多相关《用于管理闪存多个区块的方法和相关记忆装置及其控制器.pdf(13页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102033812A43申请公布日20110427CN102033812ACN102033812A21申请号200910179754722申请日20090924G06F12/0620060171申请人慧荣科技股份有限公司地址中国台湾新竹县竹北市台元街三十六号八楼之一72发明人陈波胡水华李维卿李向荣74专利代理机构深圳市顺天达专利商标代理有限公司44217代理人易钊54发明名称用于管理闪存多个区块的方法和相关记忆装置及其控制器57摘要本发明提供一种用于管理闪存的多个区块的方法和相关记忆装置及其控制器,所述方法包括针对一逻辑区块地址记录/更新链接信息,其中所述链接信息包括链接至所。

2、述逻辑区块地址的多个实体区块地址,且每一实体区块地址代表所述多个区块中的一区块;以及当所述多个实体区块地址中的一实体区块地址所代表的区块已无有效页时,选择性地抹除所述区块并从所述链接信息中移除所述实体区块地址。本发明还提供相关的记忆装置及其控制器,而该控制器包括一只读存储器,用于储存一程序代码;以及一微处理器,用于执行该程序代码以控制对所述闪存的存取以及管理所述多个区块。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书3页说明书6页附图3页CN102033815A1/3页21一种用于管理闪存的多个区块的方法,其特征在于,该方法包括针对一逻辑区块地址记录/更新链接信息,其。

3、中所述链接信息包括链接至所述逻辑区块地址的多个实体区块地址,且每一实体区块地址代表所述多个区块中的一区块;以及当所述多个实体区块地址中的一实体区块地址所代表的区块已无有效页时,选择性地抹除所述区块并从所述链接信息中移除所述实体区块地址。2根据权利要求1所述的用于管理闪存的多个区块的方法,其特征在于,其中所述链接信息还包括目前实体页位置信息,用于指出针对所述逻辑区块地址最新写入的实体页的位置。3根据权利要求1所述的用于管理闪存的多个区块的方法,其特征在于,其中所述链接信息还包括页链接信息;以及所述方法还包括依据所述页链接信息来判定所述实体区块地址所代表的区块是否已无有效页。4根据权利要求3所述的。

4、用于管理闪存的多个区块的方法,其特征在于,其中所述页链接信息包括一逻辑实体页链接表;以及针对所述逻辑区块地址记录/更新所述链接信息的步骤还包括在所述逻辑实体页链接表中,针对属于所述逻辑区块地址的一逻辑页地址记录/更新相对应的一实体区块地址或其代表信息,并记录/更新相对应的一实体页地址。5根据权利要求4所述的用于管理闪存的多个区块的方法,其特征在于,其中针对所述逻辑页地址记录/更新相对应的所述实体区块地址或其代表信息,并记录/更新相对应的所述实体页地址的步骤还包括以一实体区块地址表中顺位较后面的一实体区块的一相关链接信息更新所述实体区块地址表中顺位较前面的一实体区块的一相关链接信息。6根据权利要。

5、求4所述的用于管理闪存的多个区块的方法,其特征在于,其中所述页链接信息还包括指向所述逻辑实体页链接表的一指针。7根据权利要求1所述的用于管理闪存的多个区块的方法,其特征在于,其中所述链接信息还包括所述多个实体区块地址的数量。8根据权利要求1所述的用于管理闪存的多个区块的方法,其特征在于,其中选择性地抹除所述区块并从所述链接信息中移除代表所述区块的实体区块地址的步骤还包括当所述实体区块地址所代表的区块已无有效页时,立即抹除所述区块并从所述链接信息中移除所述实体区块地址。9根据权利要求1所述的用于管理闪存的多个区块的方法,其特征在于,其中选择性地抹除所述区块并从所述链接信息中移除代表所述区块的实体。

6、区块地址的步骤还包括当所述实体区块地址所代表的区块已无有效页时,基于一特定事件的发生来触发抹除所述区块并移除所述实体区块地址的运作。10根据权利要求1所述的用于管理闪存的多个区块的方法,其特征在于,其中选择性地抹除所述区块并从所述链接信息中移除代表所述区块的实体区块地址的步骤还包括当所述实体区块地址所代表的区块当中已无有效页的区块的数量已达一预定值时,一并抹除这些已无有效页的区块并从所述链接信息中移除其实体区块地址。11根据权利要求1所述的用于管理闪存的多个区块的方法,其特征在于,其中选择性地抹除所述区块并从所述链接信息中移除代表所述区块的实体区块地址的步骤还包括权利要求书CN10203381。

7、2ACN102033815A2/3页3当所述些实体区块地址所代表的区块的数量已达一预定值时,将所述实体区块地址所代表的区块中的至少一部分区块的有效页合并到至少一新的空白区块,且抹除所述至少一部分区块并从所述链接信息中移除其实体区块地址。12根据权利要求1所述的用于管理闪存的多个区块的方法,其特征在于,还包括当一特定区块的实体页是以相对应逻辑区块的逻辑页的相同的顺序被连续地写入时,将所述相对应逻辑区块的链接信息中的一指针设为空值,以避免指向任何逻辑实体页链接表。13一种记忆装置,其特征在于,包括一闪存,所述闪存包括多个区块;以及一控制器,用于存取所述闪存以及管理所述多个区块,其中所述控制器针对一。

8、逻辑区块地址记录/更新链接信息,而所述链接信息包括链接至所述逻辑区块地址的多个实体区块地址,且每一实体区块地址代表所述多个区块中的一区块;其中当所述多个实体区块地址中的一实体区块地址所代表的区块已无有效页时,所述控制器选择性地抹除所述区块并从所述链接信息中移除所述实体区块地址。14一种记忆装置的控制器,其特征在于,所述控制器用于存取一闪存,所述闪存包括多个区块,所述控制器包括一只读存储器,用于储存一程序代码;以及一微处理器,用于执行所述程序代码以控制对所述闪存的存取以及管理所述多个区块;其中通过所述微处理器执行所述程序代码的所述控制器针对一逻辑区块地址记录/更新链接信息,而所述链接信息包括链接。

9、至所述逻辑区块地址的多个实体区块地址,且每一实体区块地址代表所述多个区块中的一区块;以及当所述多个实体区块地址中的一实体区块地址所代表的区块已无有效页时,通过所述微处理器执行所述程序代码的所述控制器选择性地抹除所述区块并从所述链接信息中移除所述实体区块地址。15根据权利要求14所述的记忆装置的控制器,其特征在于,其中所述链接信息还包括目前实体页位置信息,用于指出针对所述逻辑区块地址最新写入的实体页的位置。16根据权利要求14所述的记忆装置的控制器,其特征在于,其中所述链接信息还包括页链接信息;以及通过所述微处理器执行所述程序代码的所述控制器依据所述页链接信息来判定所述实体区块地址所代表的区块是。

10、否已无有效页。17根据权利要求16所述的记忆装置的控制器,其特征在于,其中所述页链接信息包括一逻辑实体页链接表;以及在所述逻辑实体页链接表中,通过所述微处理器执行所述程序代码的所述控制器针对属于所述逻辑区块地址的一逻辑页地址记录/更新相对应的一实体区块地址或其代表信息,并记录/更新相对应的一实体页地址。18根据权利要求17所述的记忆装置的控制器,其特征在于,其中通过所述微处理器执行所述程序代码的所述控制器以一实体区块地址表中顺位较后面的一实体区块的一相关链接信息更新所述实体区块地址表中顺位较前面的一实体区块的一相关链接信息。19根据权利要求17所述的记忆装置的控制器,其特征在于,其中所述页链接。

11、信息还包括指向所述逻辑实体页链接表的一指针。20根据权利要求14所述的记忆装置的控制器,其特征在于,其中所述链接信息还包权利要求书CN102033812ACN102033815A3/3页4括所述多个实体区块地址的数量。21根据权利要求14所述的记忆装置的控制器,其特征在于,其中当所述实体区块地址所代表的区块已无有效页时,通过所述微处理器执行所述程序代码的所述控制器立即抹除所述区块并从所述链接信息中移除所述实体区块地址。22根据权利要求14所述的记忆装置的控制器,其特征在于,其中当所述实体区块地址所代表的区块已无有效页时,通过所述微处理器执行所述程序代码的所述控制器基于一特定事件的发生来触发抹除。

12、所述区块并移除所述实体区块地址的运作。23根据权利要求14所述的记忆装置的控制器,其特征在于,其中当所述实体区块地址所代表的区块当中已无有效页的区块的数量已达一预定值时,通过所述微处理器执行所述程序代码的所述控制器一并抹除这些已无有效页的区块并从所述链接信息中移除其实体区块地址。24根据权利要求14所述的记忆装置的控制器,其特征在于,其中当所述些实体区块地址所代表的区块的数量已达一预定值时,通过所述微处理器执行所述程序代码的所述控制器将所述些实体区块地址所代表的区块中的至少一部分区块的有效页合并到至少一新的空白区块,且抹除所述至少一部分区块并从所述链接信息中移除其实体区块地址。25根据权利要求。

13、14所述的记忆装置的控制器,其特征在于,其中当一特定区块的实体页是以相对应逻辑区块的逻辑页的相同的顺序被连续地写入时,通过所述微处理器执行所述程序代码的所述控制器将所述相对应逻辑区块的链接信息中的一指针设为空值,以避免指向任何逻辑实体页链接表。权利要求书CN102033812ACN102033815A1/6页5用于管理闪存多个区块的方法和相关记忆装置及其控制器技术领域0001本发明涉及闪存FLASHMEMORY的存取ACCESS,更具体地说,涉及一种用于管理一闪存的多个区块的方法以及相关的记忆装置及其控制器。背景技术0002近年来由于闪存的技术不断地发展,各种便携式记忆装置例如符合SD/MMC。

14、、CF、MS、XD标准的记忆卡被广泛地实施于诸多应用中。因此,这些便携式记忆装置中的闪存的存取控制也就成为相当热门的话题。0003以常用的NAND型闪存而言,其主要可区分为单层单元闪存SINGLELEVELCELL,SLC与多层单元闪存MULTIPLELEVELCELL,MLC两大类。单层单元闪存中的每个被当作记忆单元的晶体管只有两种电荷值,分别用于表示逻辑值0与逻辑值1。另外,多层单元闪存中的每个被当作记忆单元的晶体管的储存能力则被充分利用,采用较高的电压来驱动,以通过不同级别的电压在一个晶体管中记录两组位信息例如00、01、11、10;理论上,多阶细胞闪存的记录密度可以达到单阶细胞闪存的记。

15、录密度的两倍以上,这对于曾经在发展过程中遇到瓶颈的NAND型闪存的相关产业而言,是非常好的消息。0004与单层单元闪存相比,由于多层单元闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多层单元闪存很快地成为市场上的便携式记忆装置竞相采用的主流。然而,多层单元闪存的不稳定性所导致的问题也一一浮现。例如依据相关技术,一旦闪存因使用多时而质量变差,使用者的数据就可能随时会遗失。尤其是,与单层单元闪存相比,多层单元闪存中的每一区块的抹除次数ERASECOUNT的上限相对地低,这会使得上述的不稳定性的问题更加突出。0005需要注意的是,闪存的每一区块的抹除次数的上限往往随着新的制造技术的采用而降。

16、低。然而,制造技术的进展往往是闪存制造厂商降低成本的重要手段;在此状况下,上述的不稳定性的问题将会更加严重。因此,需要一种新颖的方法来加强控管闪存的数据存取,以确保使用者数据的完整性。发明内容0006因此,本发明的目的之一在于提供一种用于管理一闪存的多个区块的方法以及相关的记忆装置及其控制器,以解决上述问题。0007本发明的另一目的在于提供一种用于管理一闪存的多个区块的方法以及相关的记忆装置及其控制器,以增进运作效能并减少所述闪存中的区块的合并运作的次数,甚至可以不必进行合并运作。0008本发明的又一目的在于提供一种用于管理一闪存的多个区块的方法以及相关的记忆装置及其控制器,以减缓闪存中的区块。

17、的抹除次数的增加速率。因此,通过利用本发明所实现的便携式记忆装置会拥有较长的使用寿命。0009本发明的较佳实施例中提供一种用于管理一闪存的多个区块的方法,所述方法包说明书CN102033812ACN102033815A2/6页6括针对一逻辑区块地址记录/更新链接信息,其中所述链接信息包括链接至所述逻辑区块地址的多个实体区块地址,且每一实体区块地址代表所述多个区块中的一区块;以及当所述多个实体区块地址中的一实体区块地址所代表的区块已无有效页时,选择性地抹除所述区块并从所述链接信息中移除所述实体区块地址。0010本发明于提供上述方法的同时,也对应地提供一种记忆装置,其包括有一闪存,所述闪存包括多个。

18、区块;以及一控制器,用于存取所述闪存以及管理所述多个区块,其中所述控制器针对一逻辑区块地址记录/更新链接信息,而所述链接信息包括链接至所述逻辑区块地址的多个实体区块地址,且每一实体区块地址代表所述多个区块中的一区块;其中当所述多个实体区块地址中的一实体区块地址所代表的区块已无有效页时,所述控制器选择性地抹除所述区块并从所述链接信息中移除所述实体区块地址。0011本发明在提供上述方法的同时,还对应地提供一种记忆装置的控制器,所述控制器系用于存取一闪存,所述闪存包括多个区块,所述控制器包括有一只读存储器,用于储存一程序代码;以及一微处理器,用于执行所述程序代码以控制对所述闪存的存取以及管理所述多个。

19、区块;其中通过所述微处理器执行所述程序代码的所述控制器针对一逻辑区块地址记录/更新链接信息,而所述链接信息包括链接至所述逻辑区块地址的多个实体区块地址,且每一实体区块地址代表所述多个区块中的一区块;以及当所述多个实体区块地址中的一实体区块地址所代表的区块已无有效页时,通过所述微处理器执行所述程序代码的所述控制器选择性地抹除所述区块并从所述链接信息中移除所述实体区块地址。附图说明0012下面将结合附图及实施例对本发明作进一步说明,附图中0013图1为依据本发明一第一实施例的一种记忆装置的示意图。0014图2为依据本发明一实施例的一种用于管理一闪存的多个区块的方法的流程图。0015图3为图2所示的。

20、方法在一实施例中所涉及的链接信息的示意图。0016【主要组件符号说明】0017100记忆装置110存储器控制器112微处理器0018112C程序代码112M只读存储器114控制逻辑0019116缓冲存储器118接口逻辑120闪存0020300I链接信息318I实体区块地址表320I逻辑实体页链接表0021910用于管理一闪存的多个区块的方法0022912,914步骤CURRENT_PPAGE当前空白页位置0023LB0,LB1,LBI,LBN逻辑区块地址0024LPAGE0,LPAGE1,LPAGEM1逻辑页地址0025PAGE_LINK_TABLE指向逻辑实体页链接表的指针0026PBA_C。

21、OUNT实体区块地址的数量0027PBA0,PBA1,PBAN实体区块地址0028PBAT0,PBAT1,PBATN实体区块地址表索引说明书CN102033812ACN102033815A3/6页7具体实施方式0029为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。0030参考图1,图1为依据本发明一第一实施例的一种记忆装置100的示意图,其中本实施例的记忆装置100可为便携式记忆装置例如符合SD/MMC、CF、MS、XD标准的记忆卡。记忆装置100包括一闪存FLASHME。

22、MORY120;以及一控制器,用于存取ACCESS闪存120,其中该控制器例如一存储器控制器110。依据本实施例,存储器控制器110包括一微处理器112、一只读存储器READONLYMEMORY,ROM112M、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。只读存储器用于储存一程序代码112C,而微处理器112则用于执行程序代码112C以控制对闪存120的存取。请注意到,程序代码112C也需储存在缓冲存储器116或任何形式的存储器内。0031一般情况下,闪存120包括多个区块BLOCK,而该控制器例如通过微处理器112执行程序代码112C的存储器控制器110对闪存120进行抹除数据。

23、的运作以区块为单位来进行抹除。另外,一区块可记录特定数量的页PAGE,其中该控制器对闪存120进行写入数据的运作以页为单位来进行写入。0032实际操作中,通过微处理器112执行程序代码112C的存储器控制器110可利用其本身内部的组件来进行诸多控制运作,例如利用控制逻辑114来控制闪存120的存取运作尤其是对至少一区块或至少一页的存取运作、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置HOSTDEVICE交互。0033依据本实施例,除了能存取闪存120,该控制器还能妥善地管理该多个区块。更明确而言,在写入/更新数据时,该控制器可针对一逻辑区块地址记录/更新链接信息,。

24、其中该链接信息包括链接至该逻辑区块地址的多个实体区块地址,且每一实体区块地址代表该多个区块中的一区块。另外,当该多个实体区块地址中的一实体区块地址所代表的区块已无有效页VALIDPAGE时,选择性地抹除该区块并从该链接信息中移除该实体区块地址。0034在此,一有效页代表具有有效数据的数据页,尤其是代表实际链接至某一逻辑页地址的一第一实体页。由于该控制器对闪存120进行抹除数据的运作以区块为单位来进行抹除,故当该控制器针对该逻辑页地址更新数据时,会将更新的数据写入一第二实体页,并将该逻辑页地址与该第一实体页之间的链接关系取代为该逻辑页地址与该第二实体页之间的链接关系。如此,该控制器取消该逻辑页地。

25、址与该第一实体页之间的链接关系。于是,该第一实体页就不再是有效页,乃是被视为无效页INVALIDPAGE。0035图2为依据本发明一实施例的一种用于管理一闪存的多个区块的方法910的流程图。该方法可应用于图1所示的记忆装置100,尤其是上述的控制器例如通过微处理器112执行程序代码112C的存储器控制器110。另外,该方法可通过利用图1所示的记忆装置100来实施,尤其是通过利用上述的控制器来实施。该方法说明如下0036在步骤912中,上述的控制器例如通过微处理器112执行程序代码112C的存储器控制器110针对一逻辑区块地址记录/更新链接信息,其中该链接信息包括链接至该逻辑区块地址的多个实体区。

26、块地址,且每一实体区块地址代表该多个区块中的一区块。尤其是,该链接信息还包括目前实体页位置信息,用于指出针对该逻辑区块地址最新写入的说明书CN102033812ACN102033815A4/6页8实体页的位置。另外,该链接信息还包括其它信息可供参考。于是,当该控制器日后要针对该逻辑区块地址进行存取时,即可依据该链接信息来存取属于该逻辑区块地址的数据。0037在步骤914中,当该多个实体区块地址中的一实体区块地址所代表的区块已无有效页时,该控制器选择性地抹除该区块并从该链接信息中移除该实体区块地址。例如当该实体区块地址所代表的区块已无有效页时,该控制器立即抹除该区块并从该链接信息中移除该实体区块。

27、地址。这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的一变化例,当该实体区块地址所代表的区块已无有效页时,该控制器基于一特定事件的发生来触发抹除该区块并移除该实体区块地址的运作。这样,该控制器等到该特定事件的发生才抹除该区块并从该链接信息中移除该实体区块地址。依据本实施例的另一变化例,当该些实体区块地址所代表的区块当中已无有效页的区块的数量已达一预定值时,该控制器一并抹除这些已无有效页的区块并从该链接信息中移除其实体区块地址。依据本实施例的另一变化例,当该些实体区块地址所代表的区块的数量已达一预定值时,该控制器将该些实体区块地址所代表的区块中的至少一部分区块的有效页合并MERGE到。

28、至少一新的空白区块,且抹除该至少一部分区块并从该链接信息中移除其实体区块地址。尤其是在本变化例中,该至少一部分区块为该些实体区块地址所代表的区块当中具有最少或较少有效页的一个或多个区块。0038依据本实施例,该链接信息还包括页链接信息。该控制器会依据该页链接信息来判定该实体区块地址所代表的区块是否已无有效页。尤其是,该页链接信息包括一逻辑实体页链接表;这样,在该逻辑实体页链接表中,该控制器就可以针对属于该逻辑区块地址的一逻辑页地址记录/更新相对应的一实体区块地址或其代表信息,并记录/更新相对应的一实体页地址。关于该链接信息的实施细节,请参考图3来进一步说明。0039图3为图2所示的方法在一实施。

29、例中所涉及的链接信息300I的示意图。在步骤912中,上述的控制器例如通过微处理器112执行程序代码112C的存储器控制器110可针对任一逻辑区块地址LBI记录/更新链接信息,其中I0、1、或N。如图3所示,链接信息300I包括目前实体页位置信息例如当前空白页位置CURRENT_PPAGE、指向逻辑实体页链接表320I的一指针PAGE_LINK_TABLE、链接至逻辑区块地址LBI的多个实体区块地址例如图3所示的实体区块地址PBA0、PBA1、与PBAN的数量PBA_COUNT、以及具有该多个实体区块地址的一实体区块地址表318I。当前空白页位置CURRRENT_PPAGE用来标示最新一页资料。

30、应写入哪一个实体页。在本实施例中,实体区块地址PBA0、PBA1、与PBAN分别代表实体区块0、1、与N。该控制器依序使用了实体区块0、1、与N储存属于逻辑区块地址LBI的数据,并且依序在实体区块地址表318I记录了实体区块地址PBA0、PBA1、与PBAN。这只是为了说明的目的而已,并非对本发明的限制。在实际操作中,实体区块地址表318I中可储存任何被该控制器针对逻辑区块地址LBI写入数据的实体区块的实体区块地址。尤其是,该控制器可随时在实体区块地址表318I中新增或移除任何实体区块地址,并可根据需要重新调整实体区块地址表318I中的实体区块地址的位置。0040一般而言,实体区块地址表318。

31、I中的实体区块地址可为该多个区块中的任何部分的区块的实体区块地址,且该些实体区块地址的顺序不需要和该多个区块中的任何部分的区块的顺序相同,并且实体区块地址表318I中的任两相邻字段内的两实体区块地址不说明书CN102033812ACN102033815A5/6页9必是连续的。例如在多次针对逻辑区块地址LBI进行数据存取之后,该控制器依序在实体区块地址表318I记录了实体区块地址PBA1024、PBA20、PBA8、PBA74、等,分别代表实体区块1024、20、8、74、等,就是当时仍用于储存属于逻辑区块地址LBI的数据的实体区块。0041在本实施例中,该控制器首先使用实体区块地址PBA0所代。

32、表的实体区块0来写入/更新属于逻辑区块地址LBI的数据,并将实体区块地址PBA0记录在实体区块地址表318I,其中实体区块地址表318I中最初只有实体区块地址PBA0,且数量PBA_COUNT的初始值等于1。在这个过程中,该控制器在逻辑实体页链接表320I中记录/更新多组实体区块地址表索引与实体页地址,以便日后可以找到属于逻辑区块地址LBI的数据,其中逻辑实体页链接表320I的每一列或项目包括一组实体区块地址表索引与实体页地址,且由上至下的各列或项目分别对应于属于逻辑区块地址LBI的各个逻辑页地址LPAGE0、LPAGE1、与LPAGEM1。0042请注意,本实施例的实体区块地址表索引选自图3。

33、右上角所示的实体区块地址表索引PBAT0、PBAT1、与PBATN,而该控制器可依据实体区块地址表索引PBAT0、PBAT1、与PBATN于实体区块地址表318I当中分别查找出实体区块地址PBA0、PBA1、与PBAN。这样,逻辑实体页链接表320I中所储存的每一实体区块地址表索引为一相对应的实体区块地址的代表信息索引信息,其中该代表信息的典型数据量小于该相对应的实体区块地址的数据量,故在逻辑实体页链接表320I中储存该代表信息而不直接储存该相对应的实体区块地址有助于节省储存空间并提升整体运作效能。另外,本实施例的实体区块地址表索引PBAT0、PBAT1、与PBATN分别为0、1、与N,也即实。

34、体区块地址表318I各字段的顺位,故实际应用中实体区块地址表318I不必储存有实体区块地址表索引PBAT0、PBAT1、与PBATN。这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的一变化例,实体区块地址表索引PBAT0、PBAT1、与PBATN可为别的数值。依据本实施例的另一变化例,该控制器在逻辑实体页链接表320I中直接储存该相对应的实体区块地址而不储存该代表信息;也就是说,该控制器在逻辑实体页链接表320I中记录/更新多组实体区块地址与实体页地址,以便日后可以找到属于逻辑区块地址LBI的数据,其中逻辑实体页链接表320I的每一列或项目包括一组实体区块地址与实体页地址。0043。

35、依据本实施例,在建立实体区块地址表318I的过程之初,当实体区块地址PBA0所代表的实体区块已完全写入FULLYPROGRAMMED时,该控制器接着使用实体区块地址PBA1所代表的实体区块来写入/更新属于逻辑区块地址LBI的数据,并将实体区块地址PBA1记录于实体区块地址表318I,其中此时实体区块地址表318I中只有实体区块地址PBA0及PBA1,且数量PBA_COUNT的值被更改为2。此情况下,一旦该控制器必须针对逻辑区块地址LBI的某一逻辑页地址更新数据,例如针对逻辑页地址LPAGEM0更新数据,则该控制器更新逻辑实体页链接表320I中对应于逻辑页地址LPAGEM0的一组实体区块地址表索。

36、引与实体页地址,其中该实体区块地址表索引由PBAT0更新为PBAT1,且该实体页地址由实体区块0的一旧数据页的地址更新为实体区块1的一新数据页的地址。也即,该控制器以实体区块地址表318I中顺位较后面的一实体区块即实体区块地址表索引较大的实体区块的相关链接信息更新实体区块地址表318I中顺位较前说明书CN102033812ACN102033815A6/6页10面的一实体区块即实体区块地址表索引较小的实体区块的相关链接信息。这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的一变化例,当一特定区块的实体页是以相对应逻辑区块的逻辑页的相同的顺序被连续地写入时,该控制器可将该相对应逻辑区块的。

37、链接信息中的指针PAGE_LINK_TABLE设为空NULL值,以避免指向任何逻辑实体页链接表。0044类似地,在本实施例中,当实体区块地址PBAJ1所代表的实体区块已完全写入时,该控制器使用实体区块地址PBAJ所代表的实体区块来写入/更新属于逻辑区块地址LBI的数据,并将实体区块地址PBAJ记录于实体区块地址表318I,其中此时实体区块地址表318I中储存有实体区块地址PBA0、PBA1、与PBAJ,且数量PBA_COUNT的值被更改为J1。此情况下,一旦该控制器必须针对逻辑区块地址LBI的某一逻辑页地址更新数据,例如针对逻辑页地址LPAGEM1更新数据,则该控制器更新逻辑实体页链接表320。

38、I中对应于逻辑页地址LPAGEM1的一组实体区块地址表索引与实体页地址,其中该实体区块地址表索引更新为PBATJ,且该实体页地址更新为实体区块J的一新数据页的地址。0045如此,上述的运作扩增了实体区块地址表318I,其中参数J由1变化至N。于是,当JN时,实体区块地址表318I中储存有实体区块地址PBA0、PBA1、与PBAN,且数量PBA_COUNT的值被更改为N1。0046随着数量PBA_COUNT的值不断地增加,实体区块地址表318I中所储存的各个实体区块地址会逐一满足步骤914所述的执行条件。于是,当该些实体区块地址中的任一实体区块地址所代表的区块已无有效页时,该控制器即可选择性地抹。

39、除该区块并从该链接信息中移除该实体区块地址。这样,本发明的方法以及相关的记忆装置及其控制器可大幅地减少合并运作MERGINGOPERATION以及无效数据页的垃圾集中GARBAGECOLLECTION运作的负担。0047依据本实施例,当链接信息300I指出有K个实体区块地址链接至逻辑区块地址LBI时,关于无效数据页的垃圾集中运作的负担大约减为1/K倍,即其效能约为现有技术的K倍。尤其是,当K大于一个区块的页数例如M时,关于无效数据页的垃圾集中运作的负担就可以完全去除,且不需要进行合并运作。因此,本发明的方法以及相关的记忆装置及其控制器可减缓闪存120中的区块的抹除次数ERASECOUNT的增加。

40、速率。0048与现有技术相比,本发明的方法以及相关的记忆装置及其控制器可增进运作效能并减少闪存中的区块的合并运作的次数,甚至可以不必进行合并运作。另外,本发明的方法以及相关的记忆装置及其控制器可以减缓闪存中的区块的抹除次数的增加速率。因此,通过利用本发明所实现的便携式记忆装置会拥有较长的使用寿命。0049以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。说明书CN102033812ACN102033815A1/3页11图1说明书附图CN102033812ACN102033815A2/3页12图2说明书附图CN102033812ACN102033815A3/3页13图3说明书附图CN102033812A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1