在闪存中用于重构映射信息的设备和方法

文档序号:6612266阅读:162来源:国知局
专利名称:在闪存中用于重构映射信息的设备和方法
在闪存中用于重构映射信息的设备和方法本申请要求于2006年9月20日在韩国知识产权局提交的第 10-2006-0091361号韩国专利申请的优先权,该公开包含于此,以资参考。技术领域根据本发明的设备和方法涉及在闪存中重构映射信息,更具体地说,涉 及闪存中的快速重构,所述快速重构可在初始化闪存时通过减少重构位于闪 存中的物理和逻辑扇区所需的访问来缩短映射重构花费的时间。
背景技术
目前,诸如数码相机、移动电话、个人数字助理(PDA)的数字装置被 广泛使用。作为便携式数字装置的存储装置的闪存也由于其低功耗、集成性、高功 能性、物理安全性以及便携性而越来越普及。特别是随着闪容量扩大,闪存 逐渐被用作盘驱动器的替代。闪存执行先擦后写操作。当对扇区执行写操作时,先擦后写操作擦除扇区所属的块,并随后执行 写操作。因此,与可对扇区执行覆盖操作的硬盘相比,闪存中的操作在输入/输出 操作中花费更多的时间。在执行大约IO万次擦操作后,闪存的块不能再执行擦操作。 因此,擦搡作缩短闪存的寿命。由于这个特点,当对闪存的指定扇区执行写操作时,闪存在分配的块中 搜索空闲区域,或者分配需要很少擦操作的块,以执行写操作。实现这个特 点的软件被称为闪存转换层(FTL), FTL执行将文件系统的逻辑扇区地址映 射到闪存的物理扇区地址的功能。FTL算法最小化擦操作,并且防止擦操作集中在一个块上。 在FTL算法中使用的映射被分为扇区映射、块映射和混合映射。扇区映
射通过创建具有扇区单元的映射表来对物理扇区和逻辑扇区进行映射。块映 射对物理块和逻辑块进行映射。混合映射使用前述两种映射方法,混合映射 可利用所述两种映射方法的优点。映射表主要被存储在将被实时参考的系统的主存储器中,但在功率损耗 的情况下也可被存储在闪存中。图1A到图1C描述了闪存装置中存在的页、块和单元之间的关系。单元是在FTL中使用的逻辑概念。 一个物理单元110具有多个连续物理 块120,并且被分为元数据存储区域111和数据存储区域112。如图1B所示,元数据存储区域111具有被映射到物理单元110的逻辑单 元号llla、显示物理单元110的寿命的深度lllb和物理单元110的擦次数 lllc。例如,深度lllb的数字越大,则该物理单元被记录得越晚。如图1C所示,数据存储区域112具有数据112a和被映射到相应物理扇 区的逻辑扇区号112b。图2描述了位于现有技术的物理单元中逻辑扇区和物理扇区的映射关系。在闪存的物理单元201中,存储关于被映射到物理扇区的逻辑扇区的数 据201a和信息201b的物理扇区被显示。存储在系统的主存储器中的映射表202显示关于被映射到逻辑扇区的物 理扇区的逻辑扇区号202a和物理偏移(offset)号202b。为了方便,示出关于物理扇区的信息的逻辑扇区号202a被显示,但由于 它们可被显示为表的索引,所以没有被存储在实际的映射表中。当初始化闪存时,因为现有技术要求读取属于闪存的每个物理单元的物 理扇区,以在每个物理单元中构建逻辑扇区和物理扇区的映射,所以需要很 长的引导时间,从而导致系统的性能下降。发明内容本发明提供一种用于在闪存中重构映射信息的设备和方法,所述设备和 方法可在初始化闪存时通过减少重构位于闪存中的物理和逻辑扇区所需的访 问来缩短映射重构花费的时间。通过对以下描述、附图和权利要求的阅读,对于本领域技术人员本发明 将变得清楚。
根据本发明的一方面,提供了 一种用于在闪存中重构映射信息的设备, 包括扇区管理模块,确保物理单元中的记录映射信息的映射扇区,和确定用户数据是否被一直记录到位于预定位置的扇区;和映射信息记录模块,根 据确定的结果将映射信息记录在映射扇区,其中,映射信息包括记录用户数 据的物理扇区和与所述物理扇区相应的逻辑扇区的关系。根据本发明的另 一方面,提供了 一种用于在闪存中重构映射信息的设备, 包括映射信息获得模块,获得包括物理扇区和与所述物理扇区相应的逻辑 扇区的关系的映射信息;和映射信息重构模块,搜索获得的映射信息的最后 记录的映射信息,并重构物理扇区和逻辑扇区的映射表。根据本发明的另 一方面,提供了 一种用于在闪存中重构映射信息的方法, 包括确保物理单元中的记录映射信息的映射扇区,和确定用户数据是否被 一直记录到位于预定位置的扇区;和根据确定的结果将映射信息记录在映射 扇区中,其中,映射信息包括存储用户数据的物理扇区和与所述物理扇区相 应的逻辑扇区。根据本发明的另 一方面,提供了 一种用于在闪存中重构映射信息的方法, 包括获得包括物理扇区和与所述物理扇区相应的逻辑扇区的关系的映射信 息;和搜索获得映射信息的最后记录的映射信息,并重构物理扇区和逻辑扇 区的映射表。


通过结合附图对本发明优选实施例的详细描述,本发明的以上和其他方 面将变得更加清楚,其中图1A到图1C描述了位于闪存装置中的页、块和单元的关系;图2描述了位于现有技术的物理单元中的逻辑扇区和物理扇区的映射关系;图3是根据本发明示例性实施例的用于在闪存中重构映射信息的装置的 构造的示图;图4A描述了根据本发明示例性实施例的位于物理单元中的逻辑扇区和 物理扇区的映射关系;
图5是示出根据本发明另一示例性实施例的用于在闪存中重构映射信息的装置的构造的示图;图6描述了根据本发明示例性实施例的位于物理单元中的逻辑扇区和物 理扇区的映射关系;图7是根据本发明示例性实施例的包括映射信息扇区的数据扇区的写处 理的流程图;图8是根据本发明示例性实施例的当闪存被初始化时重构映射信息的流 程图。
具体实施方式
将参照附图详细描述本发明的示例性实施例。通过参照以下对示例性实施例和附图的详细描述,本发明和实现本发明 的方法的优点和特点可被更容易地理解。然而,本发明可以以很多不同形式 被实施,而不限于在此所述的实施例。相反,提供这些示例性实施例,从而 使本公开更加彻底和完整,并将本发明的构思被全部转达给本领域技术人员, 并且本发明仅由权利要求限定。贯穿说明书,相同的标号表示相同的组件。参照根据本发明示例性实施例的用户接口 、方法和计算机程序产品的流 程图来描述本发明。应该理解,流程图的每一个方框和流程图中的方框的组合可由计算机程 序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、或者其他可 编程数据处理设备的处理器以产生设备,从而经计算机或者其他可编程数据 处理设备的处理器执行的指令创建用于实现在一个流程图方框或多个流程图 方框中描述的功能的装置。这些计算机程序指令也可被存储在可指导计算机或者其他可编程数据处理设备以特定方式工作的计算机可用或计算机可读存储器中,以便存储在计 算机可用或计算机可读存储器中的指令产生包括执行在一个流程图方框或多 个流程图方框中指定的功能的指令装置的产品。计算机程序指令也可被载入计算机或其他可编程数据处理设备以使得一 系列操作步骤在计算机或其他可编程设备上被执行以产生计算机执行的过 程,从而在计算机或其他可编程设备上执行的指令提供用于实现在一个流程图方框或多个流程图方框中描述的功能的步骤。流程图的每个方框可表示模块、代码段或代码的一部分,其包括一个或 多个用于实现特定逻辑功能的可执行指令。还应该注意,在一些可选择的实施方式中,在方框中提到的功能可以不 按顺序出现。例如,才艮据所涉及的功能,连续显示的两个方框实际上可能基本上同时 发生,或者所述方框有时可能以相反的顺序被执行。图3是根据本发明示例性实施例的用于在闪存中重构映射信息的装置的 构造的示图。用于在闪存中重构映射信息的设备300包括扇区管理模块301,扇区管 理模块301用于确保物理单元中记录用户数据的扇区和物理单元中记录映射 信息的扇区,壁挂确定是否一直将用户数据记录到位于预定位置的扇区。所 述设备还包括用于记录并存储映射信息的映射信息记录模块302和控制每个 模块的控制模块303,所述映射信息指示记录用户数据的物理扇区和相应于 所述物理扇区的逻辑扇区之间的关系。这里使用的术语"单元"的意思是,但不限于,软件和硬件组件,诸如 执行特定任务的现场可编程门阵列(FPGA)或专用集成电路(ASIC)。模块可以方便地被配置以驻留在可寻址的存储介质上,并且可被配置以 在一个或多个处理器上执行。因此,举例来说,模块可以包括诸如软件组件、面向对象的软件组件、 类组件和任务组件的组件、进程、函数、属性、过程、子程序、程序代码段、 驱动程序、固件、微码、电路、数据、数据库、数据结构、表、数组和变量。在组件和模块中提供的功能可被组合为更少的组件和模块,或者可进一 步被分离成另外的组件和模块。扇区管理模块301获得关于物理单元中的用户数据存储扇区和映射信息 存储扇区的信息,并确定用户数据是否一直被记录到位于预定位置的扇区。如果用户数据被一直记录到位于预定位置的扇区,则扇区管理模块301 调用映射信息记录模块302,以为其记录映射信息。这里,"位于预定位置的扇区"表示物理单元中的用户数据存储扇区中的 一个。由映射信息记录模块302 (稍后描述)记录映射信息的映射信息存储 扇区是第N扇区,则"位于预定位置的扇区"是第N-1扇区。
将在对映射信息记录模块302的描述中详细描述"位于预定位置的扇区"。扇区管理模块301确定在物理单元中是否存在空闲扇区。如果不存在空闲扇区,则扇区管理模块301确保新块,并随后确保新块 中记录用户泰:据的用户凝:据存储扇区和记录映射信息的映射信息存储扇区。图4A描述了根据本发明示例性实施例的位于物理单元中的逻辑扇区和 物理扇区的映射关系。根据扇区管理模块301的确定结果,映射信息记录模块302在物理单元 的映射信息存储扇区中记录逻辑扇区和物理扇区的关系。由映射信息记录模块302记录映射信息的映射信息存储扇区被称为"映 射扇区"。映射扇区401位于物理单元中的另一预定位置,并且映射扇区的数 量是预定的。即,记录映射信息的扇区是映射扇区401。这里,"映射信息"包括映射到物理扇区号的逻辑扇区号。例如,用户数据存储扇区被称为"数据扇区"402。包括映射扇区401的映射扇区可4皮i殳置在物理单元中的各个特定扇区位 置,以减少扇区重构时间。当映射扇区401是物理单元中的第K扇区时,记录在映射扇区401中的 映射信息包括关于物理单元中的与具有物理偏移号1到K-l的数据扇区402 相应的逻辑扇区的映射信息。映射信息记录模块302累加地在映射扇区401 中记录关于扇区1到扇区K-l的映射信息。一个物理块中的映射扇区的数量可以是从1到N (N是块中存在的扇区 数量的一半)。系。; 、、物理单元13、 7、 12和15被映射到逻辑单元0。物理单元的深度数字越 大,则该物理单元中存储的数据被记录地越晚。相似地,物理单元2被映射到逻辑单元1,物理单元3和5被映射到逻 辑单元2,物理单元9、 8和4被映射到逻辑单元3。物理单元IO、 14、 6、 0、 11、 13和1没有^l皮映射到逻辑单元。图5是示出根据本发明另一示例性实施例的用于在闪存中重构映射信息 的装置的构造的示图。所述用于在闪存中重构映射信息的设备包括映射信息获得模块501, 在重构映射表时获得映射信息,所述映射信息示出物理扇区和与该物理扇区 相应的逻辑扇区的关系;映射信息重构模块502,通过搜索获得的映射信息 的最后映射信息来重构映射表;和控制模块503,控制每个模块。映射信息获得模块501在重构映射表时获得映射信息,所述映射信息示 出物理扇区和与该物理扇区相应的逻辑扇区的关系。例如,因为图3所示的映射信息记录模块302在映射信息被记录到第K 扇区时累加地记录关于扇区1到扇区K-l的映射信息,所以映射信息获得模 块501搜索物理单元中其映射信息被最后记录的映射扇区,以找到最后的映 射信息。映射信息重构模块502通过最后的映射信息重构映射信息,并将重构的 映射信息应用到映射表。图6描述了根据本发明示例性实施例的位于物理单元中的逻辑扇区和物 理扇区的映射关系。假设物理单元中的物理扇区的数量是K,并且映射信息被写入第(K/4) 扇区、第(K/2)扇区和第(3K/4)扇区,即,3个扇区。此外,假设数据已经一直写到第(M+4)扇区,且K/2二M+1。映射信息获得模块501搜索物理单元中存在的最后记录的映射扇区,以 重构在物理单元中逻辑扇区与相应的物理扇区的映射。减少访问NAND操作的方法被选为搜索方法。二进制搜索被用作示例。映射信息获得模块501确定在所述单元中的第(K/2)扇区中是否存在映 射信息,如果在第(K/2)扇区中存在映射信息,则确定是否在第(3K/4)扇 区中存在映射信息。如果在第(3K/4)扇区中存在映射信息,则第(3K/4)扇区是最后记录 映射扇区。如果第(3K/4)扇区中不存在映射信息,则第(K/2)扇区是最后 记录的映射扇区。当第(K/2)扇区中不存在映射信息时,映射信息获得模块501确定第 (K/4)扇区中是否存在映射信息。如果在第(K/4)扇区中存在映射信息,则第(K/4)扇区是最后记录的 映射扇区。如果第(K/4)扇区中不存在映射信息,则映射信息获得模块501
识别出映射扇区还没有^皮记录在所述单元中。如果经二进制搜索识别出第(K/2 )扇区是最近记录的映射扇区,则映射信息获得模块501获得关于第(K/2)扇区之前的扇区的信息,并且映射信息 重构模块502基于映射信息获得模块501获得的关于第(K/2 )扇区之前的扇 区的信息来重构物理扇区和逻辑扇区的映射表。关于第0扇区到第M( K/2-l )扇区的逻辑扇区映射信息被记录在第(K/2 ) 扇区中。映射信息重构模块502通过直接读取在相应扇区的备用区域中记录的逻 辑扇区号(LSN)来获得关于与第(M+2)扇区到第(M+4)扇区相应的物 理扇区的映射信息。当用户数据被记录在物理单元中时,本发明的示例性实施例公开了在预 定位置记录关于逻辑扇区和物理扇区的映射信息,和使用记录的映射信息在 闪存中重构物理扇区和逻辑扇区的映射。这里,在物理单元中存储映射信息的扇区的数量和位置可根据系统的用 户的选择或者开发者的选择被控制。在图6和图7中描述了通过使用在物理单元的预定位置存在的映射信息 最小化在重构再操作(re-operate)闪存所需的映射信息上花费的时间的方法。图7是根据本发明示例性实施例的写数据扇区和映射扇区的处理的流程图。当FTL接收写数据扇区的请求时,扇区管理模块301搜索请求写入的数 据扇区的逻辑扇区的逻辑单元(S701 )。在操作S701之后,扇区管理模块301确定在映射到所述逻辑单元的物理 单元中是否存在空闲扇区(S702)。如果在S702中确定物理单元中不存在空闲扇区,则扇区管理模块301为 所述逻辑单元分配新的物理单元,并确保在分配的物理单元中的块中的记录 用户数据的扇区和记录映射信息的扇区(S703 )。如果在S702中确定物理单元中存在空闲扇区,则扇区管理;漠块301确定 用户数据是否被一直记录到位于特定位置的扇区。即,扇区管理模块301确 定物理单元的第N偏移扇区是否位于记录映射信息的位置(S704)。这里,"位于预定位置的扇区,,表示物理单元中的用户数据存储扇区中的 一个。由将被描述的映射信息记录模块302记录映射信息的映射信息存储扇
区是第N扇区,而"位于预定位置的扇区,,是第N-1扇区。如果物理扇区的偏移号N不是记录映射信息的位置,则映射信息记录模 块302将请求写入的逻辑扇区与相应的LSN—起记录在物理单元的第N偏移 扇区中(S705)。如果物理单元的第N偏移扇区是记录映射信息的位置,则映射信息记录 模块302将关于第0扇区到第(N-l )偏移扇区的逻辑扇区映射信息记录在物 理单元的第N偏移扇区中(S706)。在操作S706之后,映射信息模块302将请求写入的逻辑扇区与相应的 LSN—起记录在物理单元的第(N+l)偏移扇区中(S707),并且更新关于闪 存的扇区映射信息(S708 )。图8是根据本发明示例性实施例的当闪存被初始化时重构映射信息的流 程图。映射的重构被分为读取并重构关于逻辑单元和物理单元的映射信息的第 一级映射,和在每个物理单元中重构逻辑扇区和物理扇区的映射的第二级映 射。第二级映射,即,参照物理单元内的映射信息,在读取最少量的物理数 据的方向上,执行每个物理单元中的逻辑扇区和物理扇区的映射的重构。通过扫描装置内的所有物理单元的元数据,重构逻辑单元和物理单元的 映射信息(S801)。在操作S801之后,映射信息重构模块502对映射到逻辑单元的所有物理 单元执行S802到S810,以在每个物理单元中重构物理扇区和逻辑扇区的映射。映射信息获得模块501将物理单元号初始化为零(0 ) ( S802 ),并确定物 理单元号是否被映射到逻辑单元(S803 )。如果物理单元号没有被映射到逻辑单元,则映射信息获得模块501检查 物理单元号是否是装置的最后一个物理单元号(S804)。如果物理单元号是装 置的最后一个物理单元号,则操作被终止。在操作S805,如果物理单元号不是装置的最后一个物理单元号,则映射 信息重构模块502将物理单元号加一(1 ),并对下一物理单元重复操作S803。如果物理单元号^L映射到逻辑单元,则映射信息获得^t块501搜索最后 被记录在物理单元中的映射扇区(即,第K扇区)(S806 )。
映射信息重构^f莫块502更新存储器的映射表(S807 ),并确定在映射信息 被最后记录在映射扇区中之后其他数据是否被记录(S808 )。例如,因为记录映射信息的位置是固定的,所以可通过执行NAND访问 一 (1 )到N次(N是相应物理单元中预定映射扇区的数量)来搜索最后被记 录在物理单元中的映射扇区。如果在最后记录的映射信息之后没有数据被记录,则重复操作S804。如果在映射信息已被最后记录之后记录了其他数据,则映射信息重构模 块502使用最后记录的存储在映射扇区(第K扇区)中的数据来重构被一直 记录到第(K-l )扇区的数据扇区的映射信息(S809 )。在操作S809之后,如果在第K扇区之后有其他数据被记录,则映射信 息重构模块502更新在操作S809中重构的映射信息中的其他扇区的映射信息 (S810)。然后,映射信息重构模块502重复操作S804。以上处理是示例性实施例,可以选择性地选4奪搜索存储在物理单元中的 映射信息扇区的数量和位置以及最后的映射信息扇区的方法,并且本发明不 限于此。如上所述,根据本发明的在闪存中重构映射信息的设备和方法产生下述 的一种或者多种效果。当闪存被初始化时,可以通过减少对于重构位于物理单元中的物理和逻 辑扇区所需的访问来使系统的性能降低得最小。尽管为了说明的目的已经公开了本发明的示例性实施例,但是本领域技 术人员应该理解,在不脱离权利要求公开的本发明的范围和精神的情况下,可以进4亍各^H'务改、添加和*#才奐。
权利要求
1、一种用于在闪存中重构映射信息的设备,所述设备包括扇区管理模块,确保物理单元中的记录映射信息的映射扇区,和确定用户数据是否被一直记录到位于预定位置的扇区;和映射信息记录模块,根据确定的结果将映射信息记录在映射扇区,其中,映射信息包括存储用户数据的物理扇区和与所述物理扇区相应的逻辑扇区的关系。
2、 如权利要求1所述的设备,其中,如果映射扇区是第N扇区,则位 于预定位置的扇区是第N-l扇区。
3、 如权利要求2所述的设备,其中,映射扇区的数量和位置是预定的。
4、 如权利要求l所述的设备,其中,如果物理单元中不存在空闲扇区, 则扇区管理才莫块确保另 一物理单元中的新块,并确保所述新块中的映射扇区。
5、 如权利要求l所述的设备,其中,映射信息记录模块累加地记录关于 位于映射扇区之前的扇区的映射信息。
6、 一种用于在闪存中重构映射信息的设备,所述设备包括 映射信息获得模块,获得包括物理扇区和与所述物理扇区相应的逻辑扇区的关系的映射信息;和映射信息重构模块,搜索获得的映射信息中的最后记录的映射信息,并 重构映射表。
7、 如权利要求6所述的设备,其中,映射信息获得模块从映射扇区中获 得最后记录的映射信息,所述映射扇区被最后记录在包括物理扇区的物理单 元内。
8、 如权利要求7所述的设备,其中,物理单元包括多个映射扇区,每个映射扇区包括各自的映射信息,和其中,为了从最后的映射扇区获得最后记录的映射信息,映射信息获得 模块对多个映射扇区执行二进制搜索操作。
9、 如权利要求8所述的设备,其中,二进制搜索操作包括如果多个映射扇区中的位于中间的映射扇区包括相应的映射信息,则检 查在所述位于中间的映射扇区之后的映射扇区;和 如果所述位于中间的映射扇区不包括相应的映射信息,则检查在所述位 于中间的映射扇区之前的映射扇区。
10、 如权利要求7所述的设备,其中,映射信息重构模块参照映射扇区 来重构映射信息,并将重构的映射信息应用到映射表。
11、 如权利要求6所述的设备,其中,映射信息包括以一对一的方式映 射到物理扇区号的逻辑扇区号。
12、 一种用于在闪存中重构映射信息的方法,所述方法包括 确保物理单元中的记录映射信息的映射扇区,和确定用户数据是否被一直记录到位于预定位置的扇区;和根据确定的结果将映射信息记录在映射扇区中,其中,映射信息包括存 储用户数据的物理扇区和与所述物理扇区相应的逻辑扇区的关系。
13、 如权利要求12所述的方法,其中,如果映射扇区是第N扇区,则 位于预定位置的扇区是第N-l扇区。
14、 如权利要求13所述的方法,其中,映射扇区的数量和位置是预定的。
15、 如权利要求12所述的方法,其中,当物理单元中不存在空闲扇区时, 扇区的管理步骤确保另 一物理单元中的新块,并确保所述新块中的映射扇区。
16、 如权利要求12所述的方法,其中,映射信息的记录步骤累加地记录 关于位于映射扇区之前的扇区的映射信息。
17、 一种用于在闪存中重构映射信息的方法,所述方法包括 获得包括物理扇区和与所述物理扇区相应的逻辑扇区的关系的映射信息;和搜索获得映射信息的最后记录的映射信息,并重构映射表。
18、 如权利要求17所述的方法,其中,从映射扇区中获得最后记录的映 射信息,所述映射扇区被最后记录在包括物理扇区的物理单元内。
19、 如权利要求18所述的方法,其中,物理单元包括多个映射扇区,每个映射扇区包括各自的映射信息,和其中,为了获得最后记录的映射信息,对多个映射扇区执行二进制搜索 操作。
20、 如权利要求19所述的方法,其中,二进制搜索操作包括如果多个映射扇区中的位于中间的映射扇区包括相应的映射信息,则检 查在所述位于中间的映射扇区之后的映射扇区;和如果所述位于中间的映射扇区不包括相应的映射信息,则才企查在所述位 于中间的映射扇区之前的映射扇区。
21、 如权利要求18所述的方法,其中,映射表的重构步骤包括参照映射 扇区重构映射信息,并将重构的映射信息应用到映射表。
22、 如权利要求17所述的方法,其中,映射信息包括以一对一的方式映 射到物理扇区号的逻辑扇区号。
全文摘要
提供了一种用于在闪存中重构映射信息的设备和方法。所述设备包括扇区管理模块,确保物理单元中的记录映射信息的映射扇区,和确定用户数据是否被一直记录到位于预定位置的扇区;和映射信息记录模块,根据确定的结果将映射信息记录在映射扇区中。这里,映射信息包括存储用户数据的物理扇区和与所述物理扇区相应的逻辑扇区的关系。
文档编号G06F12/08GK101149705SQ200710153429
公开日2008年3月26日 申请日期2007年9月19日 优先权日2006年9月20日
发明者尹松虎, 方卿镒, 李光伦, 金辰圭 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1