闪存管理设备和方法

文档序号:6571189阅读:220来源:国知局
专利名称:闪存管理设备和方法
技术领域
本发明涉及一种闪存管理设备和方法,更具体地讲,涉及这样一种闪存管理设备和方法,该设备和方法将存储器的块划分为数据块和i节点(i-node)块,并分别在i节点块中指定存储在数据块中的数据的存储路径,以便通过搜索i节点块来容易地访问各条数据。
背景技术
闪存是一种持续供电的非易失性存储器,可以以块为单位对其进行擦除和重新编程。闪存是电可擦除可编程只读存储器(EEPROM)的变形。EEPROM可以以字节级别进行擦除和重写,而闪存可以以块为单位进行重写。因此,闪存比EEPROM更快。
以存储单元的扇区在单个动作或一闪中被擦除的方式来组织微芯片,闪存的名字来源于此。擦除由Fowler-Nordheim隧道效应引起,其中,电子穿过薄的电介质材料,以从与每个存储单元相关的浮置栅极移除电荷。
闪存不是包括简单的存储装置、刷新电路和纠错电路的无源装置,如动态随机存取存储器(DRAM)。相反,闪存是从程序员接收命令并执行接收的命令的有源装置。利用命令用户接口(CUI)来发出命令,并且通过写状态机(WSM)来管理系统的整个状态。所述命令的例子包括读取、写入及其他控制命令。
诸如闪存的非易失性存储器具有随机存取存储器(RAM)和只读存储器(ROM)二者的优点,RAM可自由写入和擦除数据,而ROM可在没有供电的情况下保持存储的数据。因此,非易失性存储器广泛用作诸如数字相机、个人数字助理(PDA)和MP3的手持式电子装置的存储介质。
与传统的RAM或磁带类似,非易失性存储器允许对存储在预定位置的数据的随机访问。然而,与传统的存储装置不同,非易失性存储器以擦除块(以下,称为“块”)为单位来重写或擦除数据。
即,当要修正数据时,包括该数据的块被擦除,然后数据被重写。这就像通过按下删除键来删除文字,然后重写该文字一样,而非在该文字中一个接一个地修正字符或字母。
图1示出传统的非易失性存储器100的结构。参照图1,传统的非易失性存储器100包括多个块110,每个块110包括多个页200。
图2示出图1中所示的页200之一的结构。页200是读取和写入操作的基本单位。每一页200可被划分为数据区210和备用区220。数据区210存储数据,备用区220记录被记录在相应物理页中的逻辑页的偏移。
每一页200的数据区210记录512字节的数据。文件ID和组块(chunk)号被分配给每一页200并被记录在备用区220中。此外,随着页200的位置的增加,2位的序列号被分配给页200。因此,即使由于电源故障、故障或其他差错,相同的组块号被分配给两个页时,这两个页也可彼此区分。
如上所述,备用区220存在于每一页200中,并且存储在备用区220中的信息用于检索存储在存储器100中的数据。即,当用户或设备想要检索存储在存储器100中的数据时,扫描所有页200的备用区220,以提取数据的位置。
随着对闪存的需求的增加,闪存的集成密度也增加到几十吉字节。为了对具有上述结构的存储器进行初始化,只有在存储器的所有备用区都被扫描之后才能访问页,这可能花费几十秒以上的时间。
因此,需要一种能够在不扫描整个存储器的情况下容易地访问目标页的发明。

发明内容
本发明的目的在于将存储器的块划分为数据块和i节点(i-node)块,并分别在i节点块中指定存储在数据块中的数据的存储路径,以便通过搜索i节点块来容易地访问各条数据。
本发明的另一目的在于根据文件大小使不同的i节点对应于每一文件。
然而,本发明的目的不限于这里所阐述的目的。通过参考下面所给出的本发明的详细描述,对于本发明所属技术领域的普通技术人员而言,本发明的上述和其他目的将变得更加明显。
根据本发明的一方面,提供一种闪存管理设备,包括映射搜索模块,搜索形成存储器的块中的位于存储器的预设位置的映射块,并提取一个或多个i节点块的存储路径;路径搜索模块,基于提取结果搜索所述i节点块中指定的数据的存储路径;数据管理模块,通过数据的存储路径访问数据,并执行对数据的处理。
根据本发明的一方面,提供一种闪存管理方法,包括搜索形成存储器的块中的位于存储器的预设位置的映射块,并提取一个或多个i节点块的存储路径;基于提取结果搜索所述i节点块中指定的数据的存储路径;通过数据的存储路径访问数据,并执行对数据的处理。


通过参考附图对本发明优选实施例的详细描述,本发明的上述和其他特征和优点将变得更清楚,其中图1示出传统的非易失性存储器的结构;图2示出传统的页的结构;图3示出根据本发明实施例的存储器的结构;图4是根据本发明实施例的闪存管理设备的框图;图5示出根据本发明实施例的映射块的详细构造;图6示出根据本发明实施例的i节点块的i节点页的结构;图7示出根据本发明实施例的直接引用i节点;图8示出根据本发明实施例的间接引用i节点;图9是显示根据本发明实施例的对于每一页大小的文件大小的表;图10是示出根据本发明实施例的存储器管理过程的流程图;图11至图13是示出使用传统的闪存管理方法和根据本发明实施例的闪存管理方法进行的无用单元收集性能测试的结果的曲线图;图14是显示图11至图13的性能测试的结果的表;图15是显示使用传统的闪存管理方法和根据本发明实施例的闪存管理方法进行的另一性能测试的结果的表。
具体实施例方式
现在,将参照附图更全面地描述本发明,附图中示出了本发明的示例性实施例。然而,本发明可以以许多不同的形式实施,而不应被解释为限于这里所阐述的实施例。相反,提供这些实施例以便本公开将完整和全面,并将向本领域技术人员充分传达本发明的构思。附图中的相同的标号表示相同的部件,因此将省略其描述。
以下,将参照附图详细描述本发明的实施例。
图3示出根据本发明实施例的存储器300的结构。参照图3,存储器300包括映射块310、一个或多个数据块320以及一个或多个i节点(i-node)块330。
数据块320存储数据。即,每一数据块320中所包括的每一页(以下,称为数据页)的数据区存储数据。
i节点块330存储数据的存储路径。即,每一i节点块330中所包括的每一页(以下,称为i节点页)的数据区存储数据被存储于其中的数据页的地址,即索引项(index entry)。i节点块330还存储元数据。在本发明中,i节点包括元数据和索引项,i节点被分配给i节点页。索引项表示数据的存储路径,可理解为数据块320之一的数据页的地址。
元数据包括i节点号、文件所有者的用户ID、文件所有者的群ID、文件大小、块大小、最后访问时间、最后修正时间、i节点修正时间、文件名以及上层的i节点。
映射块310存储i节点块330的存储路径。即,映射块310中所包括的每一页的数据区存储每一i节点块330的存储路径。以下,i节点块330的存储路径的列表将被称为i节点映射。
映射块310可位于存储器300的预定位置,最好位于存储器300的头部。当闪存管理设备被供电从而被初始化时,其首先必须参考存储在映射块310中的i节点映射。如果映射块310的位置是固定的,则闪存管理设备不需要搜索映射块310。
为了安装文件系统,应该参考元数据。在本发明中,存储元数据的块与存储数据的块相分离。因此,闪存管理设备可参考i节点映射来提取i节点块330,并搜索存储元数据的块,即i节点块330。然后,闪存管理设备可参考存储在i节点块330中的元数据。
此外,由于各条数据的存储路径被指定在i节点块330中,所以闪存管理设备可参考i节点映射来提取i节点块330,从而更快地执行初始化。
当包括闪存管理设备的系统运行时,可在任何时间修改存储在数据块320中的各条数据的存储路径。当文件系统被卸载时,闪存管理设备将存储器300的状态存储在i节点映射中。因此,当随后文件系统被安装时,闪存管理设备可基于i节点映射识别存储器300的状态。
图4是根据本发明实施例的闪存管理设备400的框图。参照图4,闪存管理设备400包括映射更新模块410、映射搜索模块420、路径搜索模块430、i节点生成模块440、控制模块450、数据管理模块460和存储器300。
映射更新模块410更新存储在映射块310中的i节点映射。如果闪存管理设备400管理存储器300,则在执行读取、写入和擦除操作时,存储器300的存储路径可能改变。映射更新模块410通过反映这种改变来更新i节点映射。
每当存储器300的存储路径改变时,映射更新模块410可更新i节点映射。可选地,映射更新模块410可在文件系统被卸载时更新i节点映射。
映射搜索模块420搜索映射块310并提取一个或多个i节点块330的存储路径。即,映射搜索模块420参考存储在映射块310的每一页中的i节点映射来提取i节点块330的存储路径。
路径搜索模块430参考映射搜索模块420的提取结果来搜索存储在每一i节点块330中的i节点。即,路径搜索模块430基于从映射搜索模块420接收的i节点映射来访问i节点块330,扫描包括在每一i节点块330中的i节点页,并搜索存储在每一i节点页中的i节点。当搜索i节点时,可参考包括在其中的元数据和索引项。
如上所述,当文件系统被卸载时,i节点映射被更新。当包括闪存管理设备400的系统异常终止时,或者当该系统发生故障时,可能不正确地更新i节点映射。映射搜索模块420确定i节点映射是否被正确地更新,并将确定结果发送给路径搜索模块430。如果i节点映射没有被正确地更新,则路径搜索模块430不能接收i节点块330的存储路径。
如果路径搜索模块430没有从映射搜索模块420接收到i节点块330的存储路径,则路径搜索模块430自己搜索i节点块330。即,路径搜索模块430扫描存储器300的所有块,以搜索i节点块330。在这种情况下,路径搜索模块430不是扫描每一块的所有页,而是扫描位于每一块的头部的页的备用区。位于存储器300的每一块的头部的页的备用区指定相应块的类型。利用该信息,路径扫描模块430搜索i节点块330。
i节点生成模块440生成i节点,从而更新i节点块330的i节点页。存储器300中的一个或多个块可被预先设置为i节点块330,在闪存管理设备400运行的任何时间都可生成或擦除i节点块330。因此,如果i节点块330不存在,则i节点生成模块440可将存储器300的块中那些没有被使用的块设置为i节点块330,并将生成的i节点插入i节点页中。
数据管理模块460通过从路径搜索模块430接收的数据的存储路径来访问数据,并执行对数据的处理。所述处理包括读取数据、写入数据、生成数据和擦除数据中的至少一种。
控制模块450直接连接到存储器300,利用映射更新模块410、映射搜索模块420、路径搜索模块430、i节点生成模块440和数据管理模块460来控制存储器300。此外,控制模块450控制闪存管理模块400的每一模块。
图5示出根据本发明实施例的映射块310的详细构造。参照图5,映射块310的每一页包括i节点块列表510、卸载标志520、i节点块数530和列表大小540。
i节点块列表510可存储在映射块310的每一页的数据区中,并且每一页中可存储不同的信息。此外,卸载标志520、i节点块数530和列表大小540可被存储在每一页的备用区中。所有页中可存储相同的信息。
i节点块列表510存储用于存储器300的所有i节点块330的i节点映射。映射搜索模块420从i节点块列表510提取i节点映射,然后提取i节点块330的存储路径。
卸载标志520存储指示文件系统是否正常卸载的标志。例如,如果文件系统正常卸载,则卸载标志520具有值1。如果文件系统异常卸载,则卸载标志520具有值0。映射搜索模块420基于卸载标志520来确定文件系统是否正常卸载以及i节点映射是否正常更新。
i节点块数530指示映射块310的全部页中指定的i节点块的数量,列表大小540指定构造i节点映射所分配的页的大小。可在映射搜索模块420搜索i节点映射时使用i节点块数530和列表大小540。
图6示出根据本发明实施例的i节点块330的i节点页600的结构。i节点块330的i节点页600被划分为数据区610和备用区602。
数据区601存储元数据610以及一个或多个索引项621至623,备用区602存储备用数据630。
备用数据630包括记录在相应物理页中的逻辑页的偏移、文件ID、组块号和序列号。路径搜索模块430参考备用数据630以提取数据的存储路径。
位于存储器300的每一块的头部的页的备用数据可包括指示相应块的类型的标志(以下,称为类型标志)。位于i节点块330的头部的i节点页600的备用数据630可包括指示i节点块330是i节点的类型标志。因此,如果由于文件系统异常卸载,映射搜索模块420不能搜索i节点映射,则路径搜索模块430可利用类型标志来搜索i节点块330。
文件可以足够小以便被分配给数据块320的一个数据页,或者足够大以便被分配给数据块320的多个数据页。在本发明中,i节点650根据文件的大小被分为直接引用i节点和间接引用i节点。
直接引用i节点包括一个或多个索引项,所述一个或多个索引项分别指定包括在数据块中的一个或多个数据页的存储路径,从而数据页可被直接引用。另一方面,间接引用i节点包括一个或多个索引项,所述一个或多个索引项分别指定引用包括在数据块320中的数据页的一个或多个i节点页的存储路径。
即,直接引用i节点的索引项分别指定数据块320的数据页的存储路径,而间接引用i节点的索引项分别指定另一i节点块的一个或多个i节点页的存储路径。i节点块的i节点页可包括指定数据块320的数据页的存储路径的索引项或指定另一i节点块的i节点页的存储路径的索引项。
图7示出根据本发明实施例的直接引用i节点700。参照图7,包括在直接引用i节点700中的索引项710至740分别引用数据页715至745。被引用的数据页715至745可包括在一个块中或多个不同的块中。
直接引用i节点700的索引项710至740中的每一个索引项指定形成一个文件的部分数据的存储路径。路径搜索模块430可利用包括在直接引用i节点700中的索引项710至740来引用分别包括在多个数据块320中的数据页715至745。因此,可利用基于直接引用i节点700提取的多条数据来完成文件。
图8示出根据本发明实施例的间接引用i节点800。参照图8,间接引用i节点800的多个索引项中的一个索引项810引用另一i节点的i节点页820,i节点页820引用多个数据页831至835。被引用的数据页831至835可包括在一个块中或多个不同的块中。
间接引用i节点800的每一索引项指定另一i节点的存储路径。路径搜索模块430可利用包括在另外的一个或多个i节点中的多个索引项来引用包括在多个数据块中的数据页831至835。即,以树形式来构造索引项,最低层的索引项引用数据块320的数据页。因此,间接引用i节点800可比直接引用i节点700引用更多的数据块320的数据页。
图9是显示根据本发明实施例的对于每一页大小的文件大小的表。该表显示了根据页大小和i节点类型所允许的文件大小。
如上所述,i节点页可包括元数据以及一个或多个索引项。如果i节点页的大小为512字节,元数据的大小为256字节,则分配给索引项的i节点页的大小为256字节。在这种情况下,如果每一索引项的大小可为4字节,则可存在64个索引项。
类似地,如果i节点页600(见图6)的大小为2千字节,元数据的大小为256字节,则分配给索引项的i节点页600的大小为1792字节。因此,可存在448个4字节的索引项。
在直接引用i节点700(见图7)的情况下,64个数据页可被64个索引项引用。在这种情况下,由于数据页的大小为512字节,所以可找到具有32,768字节(即,小于32千字节)大小的文件。如果数据页的大小为2千字节,448个数据页可被448个索引项所引用,则可找到具有917,504字节(即,896千字节)大小的文件。
在间接引用i节点800的情况下,文件大小由被引用的i节点的层的数量来决定。因此,文件大小不受限制。图9中所指定的是随机值。
图10是示出根据本发明实施例的存储器管理过程的流程图。
为了管理存储器300,闪存管理设备400的映射搜索模块420识别存储在映射块310的备用区中的卸载标志(操作S1010),并确定文件系统是否正常卸载(操作S1020)。
如果文件系统正常卸载,则映射搜索模块420搜索i节点映射,然后搜索i节点块330和i节点(操作S1030)。当搜索i节点时,可参考元数据和索引项。
因此,路径搜索模块430参考索引项来搜索数据块320的数据页的存储路径(操作S1040),并将搜索结果发送给数据管理模块460,数据管理模块460再执行对数据的处理(操作S1050)。
如果映射搜索模块420确定文件系统异常卸载,则路径搜索模块430识别位于存储器300的每一块的头部的页的备用区中所指定的类型标志(操作S1060)。然后,路径搜索模块320确定相应的块是否是i节点块330(操作S1070)。如果相应的块是i节点块330,则路径搜索模块320搜索存储在i节点页600中的i节点。当搜索i节点时,可参考元数据和索引项,从而可找到数据页的存储路径(操作S1040)。数据管理模块460接收搜索结果并执行对数据的处理(操作S1050)。
图11至图13是示出使用传统的闪存管理方法和根据本发明实施例的闪存管理方法进行的无用单元收集(garbage collection)性能测试的结果的曲线图。
在这些测试中,使用了PostMark基准程序。PostMark创建在设置的范围内具有随机大小的一组文件。然后,对所述文件进行处理,所述处理包括作为一对处理的文件创建或删除以及文件读取或写入。每一对处理被随机选择,并且可通过参数设置。
文件的大小在512字节至60千字节范围内,文件的数量限制为100至300个。此外,在单个操作中进行1,000个处理,每一对处理具有相同的概率。
在各个测试中,文件数与处理数的比例为1∶10、1∶3和1∶2。根据每种比例来收集结果。
在图11至图13中,X轴表示逻辑块地址,Y轴表示写入更新频率的分布。这里,逻辑块地址对应于页。如图11至图13中所示,传统的文件系统,即Ext2 1110至1310以及FAT 1120至1320中的每一个在逻辑块地址的窄区域中显示高的更新频率,其中,所述窄区域是存储元数据的区域。此外,当文件与处理的比例增加时,更新频率增加,并且逻辑块地址的所述区域减小。
另一方面,传统的文件系统,即YAFFS 1130至1330以及根据本发明的文件系统1140至1340中的每一个在逻辑块地址的整个区域上具有均匀的更新频率分布。Ext2 1110至1310以及FAT 1120至1320中的每一个在逻辑块地址的窄区域中显示出高的更新频率的原因在于Ext2 1110至1310或FAT1120至1320中的每一个的几个i节点共享同一页。
图14是显示图11至图13的性能测试的结果的表1400。具体地讲,图14显示了根据文件与处理的比例的执行无用单元收集的附加写入频率。
参照图14的表1400,根据本发明的文件系统展现出比任何传统文件系统更好的性能。这是因为根据本发明的文件系统具有无用单元收集算法,通过该无用单元收集算法,根据本发明的文件系统可在参考文件系统信息的同时使用存储器。此外,由于i节点块330被分离,所以根据本发明的文件系统显示出比YAFFS好9-20%的无用单元收集性能。
图15是显示使用传统的闪存管理方法和根据本发明的闪存管理方法进行的另一性能测试的结果的表1500。在图15中,PostMark/处理比为1∶2。
参照图15,根据本发明的文件系统所需的扫描时间比传统的文件系统少。
PostMark/处理比指示每秒通过PostMark执行的处理的数量。从表1500中可看出,YAFFS和根据本发明的文件系统显示出比JFFS2略好的性能。这是因为JFFS2写入包含i节点和数据的节点,这给i节点形成和文件存储带来一些开销。此外,JFFS2利用压缩写入数据。
由于为大文件间接引用i节点,所以根据本发明的文件系统显示出相当高的页写入频率。
最后,与传统的文件系统相比,通过根据本发明的文件系统,每一无用单元收集的附加写入频率减小了9-20%。
如上所述,根据本发明的闪存管理设备和方法提供至少下面的优点。
首先,形成存储器的块被划分为数据块和i节点块。此外,存储在数据块中的数据的存储路径分别在i节点块中指定。因此,可通过搜索i节点块来快速地访问各条数据。
其次,由于根据文件大小,不同的i节点对应于每一文件,所以可减少搜索文件所需的时间。
尽管已参照本发明的示例性实施例具体地显示和描述了本发明,但是本领域普通技术人员应该理解,在不脱离由权利要求限定的本发明的范围和精神的情况下,可在其中进行各种形式和细节上的改变。这些示例性实施例应该被认为是仅出于描述性目的,而非限制性目的。
权利要求
1.一种闪存管理设备,包括映射搜索模块,搜索形成存储器的块中的位于存储器的预设位置的映射块,并提取一个或多个i节点块的存储路径;路径搜索模块,基于提取结果搜索所述i节点块中指定的数据的存储路径;数据管理模块,通过数据的存储路径访问数据,并执行对数据的处理。
2.如权利要求1所述的设备,其中,所述形成存储器的块包括下面的块中的至少一种映射块,由包括i节点块的存储路径的页组成;i节点块,每个i节点块由包括各条数据的存储路径的页组成;一个或多个数据块,每个数据块由存储数据的页组成。
3.如权利要求2所述的设备,其中,如果在映射块中没有指定i节点块的存储路径,则所述路径搜索模块提取包括在每一i节点块中的页,然后搜索包括在提取的页的数据区中的数据的存储路径。
4.如权利要求3所述的设备,其中,所述路径搜索模块参考指示块类型的标志来提取包括在每一i节点块中的页,所述标志被包括在位于存储器的每一块的头部的页的备用区中。
5.如权利要求2所述的设备,其中,包括在每一i节点块中的页是直接页,指定一条数据的存储路径;或间接页,指定包括多条数据的存储路径的页的存储路径。
6.如权利要求1所述的设备,其中,所述映射块包括位于存储器的头部的块。
7.如权利要求1所述的设备,还包括映射更新模块,更新包括在映射块中的i节点块的存储路径。
8.如权利要求7所述的设备,其中,所述映射块包括i节点块的存储路径的列表、指示i节点块的存储路径是否被更新的标志、i节点块的数量以及i节点块的大小中的至少一个。
9.如权利要求1所述的设备,其中,所述处理包括对数据的读取、写入、生成和擦除操作中的至少一种。
10.一种闪存管理方法,包括搜索形成存储器的块中的位于存储器的预设位置的映射块,并提取一个或多个i节点块的存储路径;基于提取结果搜索所述i节点块中指定的数据的存储路径;通过数据的存储路径访问数据,并执行对数据的处理。
11.如权利要求10所述的方法,其中,所述形成存储器的块包括下面的块中的至少一种映射块,由包括i节点块的存储路径的页组成;i节点块,每个i节点块由包括各条数据的存储路径的页组成;一个或多个数据块,每个数据块由存储各条数据的页组成。
12.如权利要求11所述的方法,其中,搜索各条数据的存储路径的步骤包括如果在映射块中没有指定i节点块的存储路径,则提取包括在每一i节点块中的页;搜索包括在提取的页的数据区中的数据的存储路径。
13.如权利要求12所述的方法,其中,提取页的步骤包括参考指示块类型的标志来提取包括在每一i节点块中的页,所述标志被包括在位于存储器的每一块的头部的页的备用区中。
14.如权利要求11所述的方法,其中,包括在每一i节点块中的页是直接页,指定一条数据的存储路径;或间接页,指定包括多条数据的存储路径的页的存储路径。
15.如权利要求10所述的方法,其中,所述映射块包括位于存储器的头部的块。
16.如权利要求10所述的方法,还包括更新包括在映射块中的i节点块的存储路径。
17.如权利要求16所述的方法,其中,所述映射块包括i节点块的存储路径的列表、指示i节点块的存储路径是否被更新的标志、i节点块的数量以及i节点块的大小中的至少一个。
18.如权利要求10所述的方法,其中,所述处理包括对数据的读取、写入、生成和擦除操作中的至少一种。
全文摘要
提供一种闪存管理设备和方法,更具体地讲,提供这样一种闪存管理设备和方法,该设备和方法将存储器的块划分为数据块和i节点块,并分别在i节点块中指定存储在数据块中的数据的存储路径,以便通过搜索i节点块来容易地访问各条数据。所述闪存管理设备包括映射搜索模块,搜索形成存储器的块中的位于存储器的预设位置的映射块,并提取一个或多个i节点块的存储路径;路径搜索模块,基于提取结果搜索所述i节点块中指定的数据的存储路径;数据管理模块,通过数据的存储路径访问数据,并执行对数据的处理。
文档编号G06F12/02GK101021813SQ200710005600
公开日2007年8月22日 申请日期2007年2月13日 优先权日2006年2月13日
发明者黄珠荣, 朴圭皓, 林丞虎 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1