CN101529395A - 文件系统 - Google Patents
文件系统 Download PDFInfo
- Publication number
- CN101529395A CN101529395A CNA2007800389925A CN200780038992A CN101529395A CN 101529395 A CN101529395 A CN 101529395A CN A2007800389925 A CNA2007800389925 A CN A2007800389925A CN 200780038992 A CN200780038992 A CN 200780038992A CN 101529395 A CN101529395 A CN 101529395A
- Authority
- CN
- China
- Prior art keywords
- file
- piece
- block
- write
- data
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
不将文件配置信息存储在闪存的特定区域中。将由文件ID和块连接信息组成的块信息和文件数据一起添加至每个块,并且,在执行闪存的安装处理时,基于块信息重新配置文件配置信息。
Description
技术领域
本申请涉及文件系统技术,更具体地,涉及NAND型闪存的文件系统技术。
背景技术
最近,信息设备的发展导致对闪存作为信息设备的信息记录介质的关注。其原因在于:闪存实现了小型化,以及闪存不需要驱动单元因而增加了可靠性等。尤其是,易于实现大容量的NAND型闪存正作为信息记录介质迅速普及起来。NAND型闪存是一种闪存,并且具有能够高速擦写的特性。
通常,向闪存写入数据需要在写入之前进行擦除。NAND型闪存包括多个块,每一个块包括多页。擦除逐块进行,而写入逐页进行。此外,通常将页划分成存储数据的部分和存储冗余数据(如纠错码的部分来使用。
图22是磁存储器的文件系统的概念性示意图。在磁存储器中,物理读写逐扇区进行。而且,逻辑读写逐簇(附带一提的是,簇包括一组多个扇区)进行。
将簇划分为系统区和数据区,并且将文件划分地保持在分配给数据区的多个簇中。在系统区中保持与分配给文件的簇有关的信息或关于文件自身的信息(如,文件配置信息)。因此,如果更新文件,此区域也被重写。在系统区中还保持指示哪一个簇已被分配,哪一个簇没有被分配的信息。因此,如果更新文件,此区域也被重写。
然而,由于其电特性,闪存在可以擦除数据的次数和可以写入数据的次数上受到限制。因此,事实上,在写入次数上基本上不存在限制的磁存储器的文件系统方法并不适用于闪存。具体原因如下:就对写入次数不存在限制的方法而言,将例如由FAT(文件分配表)所代表的这样的文件配置信息存储在存储器中的给定位置,并且如果由于文件的写入等,配置信息发生改变,该位置的内容也被相应更新。简而言之,文件的写入导致文件配置信息的更新,以及文件实际写入的位置的更新。
图23是闪存的文件系统的概念性示意图。在闪存中,物理擦除逐块进行,而写入逐页进行。逻辑读写逐块进行(附带一提的是,每每个块包括多页),且块全部被用作数据区。文件被划分地保持在多个块中。与此同时,使用附加于块的头部的头部信息来保持文件。在闪存中不保持与分配给文件的块有关的信息或关于文件自身的信息(如,文件配置信息)。换言之,在初始化文件系统时,可以通过分析块的头部信息,来重新配置文件,并且该信息本身被存储在另一存储器(如电子设备的RAM(随机存取存储器))中以供使用。而且,在闪存中也没有保持指示哪一个块已被分配和哪一个块没有被分配(或可重分配)的块利用信息。相反,在文件系统初始化时,可以通过分析块的头部信息,来该检测信息,并且该信息本身被存储在RAM中。
具体原因如下:如果将与磁存储器的文件系统方法相同的文件系统方法用于闪存,给定块就会单独经历频繁的更新,从而,由于很快超过对写入次数的限制,该块变为不可用,作为结果,整个闪存变为不可用。
为了避免这种问题,实际使用了针对闪存的存储器映射标准(在以下给出的专利文献1中提出,被称为FTL(闪存转换层,FlashTranslation Layer))。这是一个虚拟存储器映射系统,并且是将用于向闪存写入数据的物理地址指定为闪存的块的虚拟地址的方法。换言之,将把数据写入到给定虚拟地址转换为将数据写入到闪存中的给定物理地址。同时,对于每一次将数据写入到虚拟地址,虚拟地址到物理地址的映射方式发生改变,因此,针对每一次写入,将数据写入到同一个虚拟地址被转换为将数据写入到不同的物理地址。这使得可以将写入分散到整个区域,从而使得能够减少对给定块的重写总数(附带一提的是,将向块写入数据分散的方法被称为损耗平衡(wear leveling))。使用这种存储器映射系统,现有磁存储器的文件系统方法不经过修改也可用于闪存。
另一方面,一些文件系统具有此处介绍的损耗平衡。在Linux OS(操作系统)中,美国的Red Hat,Inc.开发了被称为jffs2(闪存日志文件系统第2版,Journaling Flash File System version 2)的文件系统。该文件系统意在防止数据写入集中在给定块,从而在整个区域上分散对写入闪存的次数限制,从而增加了整个闪存的寿命。
非专利文件1:http://sources.redhat.com/jffs2/
专利文献1:美国专利No.5,404,485
发明内容
本发明所要解决的问题
然而,上述jffs2的初始化处理需要时间,因为该处理需要扫描写入文件的区域,并分析写入的数据,以检查文件的一致性和检查空闲空间。特别地,如果存在很多文件而在写入文件期间设备掉电,将出现掉电的影响是值得关注的问题。
例如,如同消费电子设备(如液晶电视机或录像机)那样,在上电操作后,需要尽快将对该操作的反应反馈给用户,而jffs2不适于有这样的需求的情况。
而且,在写入文件期间,在设备掉电发生时,只能够恢复写入过程中的不完全文件。因为数据丢失,对于应用程序,这样的文件常常是不可用的。而且,在设备掉电的情况下,在文件的覆盖-更新期间,即使可以恢复文件,也无法确定文件被更新到什么程度。因此,对于应用程序,这样的文件也是不可用的。确定所恢复文件的有效性的唯一方法是使用应用程序检查文件的内容,而这增加了不必要的处理,而且,如果确定该文件不正确,该文件还必须被删除。这不适于突然发生设备掉电的情况,如家用电器的情况。
此外,FTL是存储器映射系统,并且为了应用程序可以将数据视为文件,必须在比FTL更高的层上创建文件系统。这种方法是通用的;然而,在处理速度方面和在存储器使用率方面,将文件系统的功能添加到不要求复杂文件系统的应用是低效的。特别地,通常将不需要的功能从需要在有限资源上运行的应用(如嵌入式设备)中除去。
而且,jffs2已被开发为遵循Linux文件系统的框架,因此难以将jffs2用在Linux操作系统以外的操作系统上。即使将jffs2用在Linux操作系统上,对于不需要复杂文件系统的应用而言,jffs2也是低效的,并且,同样不适于上述的嵌入式设备。
本发明的一个目的是:提供一种能够执行高速初始化处理的文件系统。本发明另一的目的是:提供一种即使在文件写入期间设备掉电的情况下,也能够防止文件不一致或文件丢失的文件系统。本发明再一个目的是:提供一种在处理负荷轻,并且支持损耗平衡的简单文件系统。
解决问题的方案
根据本发明的一方面,提供了一种闪存上的文件系统,在所述闪存中,存储器区被划分为多个块,对写入存储区中的数据进行擦除是逐块进行的,块被划分为多页,将数据写入存储区是逐页进行的,所述文件系统的特征在于,包括:块信息附加装置,用于将块信息附加至每一个块,所述块信息至少包含为文件分配的文件系统中的唯一文件ID和指示文件中块链接顺序的块编号;以及文件配置信息重建装置,用于基于块信息对指示文件配置的文件配置信息进行重建。可以基于块信息正确地重新配置文件。
文件系统可以包括:幻数附加装置,用于在向块写入数据时,将幻数附加到每一个块的起始页和起始页之外的页;页验证装置,用于从每一个块的起始页起依次写入数据,并在每一次将数据写入页时对数据进行验证;以及块检查装置,用于基于幻数是否被附加至每一个块的起始页和起始页以外的页,来检查每一个块的有效性。
在该文件系统中,在要写入数据的数据区之前和之后,为块提供至少第一幻数区和第二幻数区,每一个幻数区被用于在其中写入幻数。可以在第一幻数区之前提供要写入块信息的区域。
根据本发明的另一方面,提供了一种使用上述文件系统的文件配置信息重建方法,其特征在于包括以下步骤:取出块,并读出关于有效块的块信息;以及基于块信息中的文件ID是否相同,按照块编号的顺序链接具有相同文件ID的块。此外,提供了一种使用上述文件系统确定块有效性的方法,其特征在于,包括以下步骤:读取第一和第二幻数;以及基于所读取的内容,根据幻数是否有效,确定块数据的有效性。
根据本发明的一方面,提供了一种闪存上的文件系统,在所述闪存中,存储器区被划分为多个块,对写入存储区中的数据进行擦除是逐块进行的,块被划分为多页,将数据写入存储区是逐页进行的,所述文件系统特征在于,包括:完成标记写入装置,用于在文件写入完成时,向文件中的块内写入指示写入完成的写入完成标记;以及完成标记读取装置,用于读取写入完成标记。可以读出写入完成标记以便于检测由于文件写入期间发生掉电造成的不完全文件。优选地,将写入完成标记写入文件的起始块中。可以将写入完成标记写入块的最后一页中。
文件系统还可包括:块信息附加装置,用于将块信息附加至每一个块,所述块信息至少包含分配给文件的文件系统中的唯一文件ID和指示文件中块链接顺序的块编号;以及文件配置信息重建装置,用于基于块信息对指示文件配置的文件配置信息进行重建。
根据本发明的另一方面,提供了一种闪存上的文件系统,在所述闪存中,存储区被划分为多个块,对写入存储区中的数据进行擦除是逐块进行的,块被划分为多页,将数据写入存储区是逐页进行的,该文件系统的特征在于,包括:文件更新装置,用于在文件写入完成时,使具有相同名称的旧文件无效。
根据本发明的另一方面,提供了一种使用上述文件系统的文件写入方法,其特征在于,包括:在整个文件的写入完成时,将写入完成标记写入文件的块中的步骤。
此外,提供了一种文件更新方法,其特征在于,包括以下步骤:生成与将要更新的目标文件名称相同的文件;更新具有与目标文件名称相同名称的文件;以及在更新完成时使目标文件无效。
根据本发明的一方面,提供了一种闪存上的文件系统,在所述闪存上,存储区被划分为多个块,对写入存储区中的数据进行擦除是逐块进行的,块被划分为多页,将数据写入存储区是逐页进行的,该文件系统特征在于,包括:文件ID分配装置,用于在写入文件时,为文件分配未分配给任何文件的文件ID;以及文件更新装置,用于在完成该文件的写入时,使具有相同名称的旧文件无效;以及文件写入顺序确定装置,用于基于文件ID确定文件写入顺序,并且所述文件系统的特征在于,通过新写入指示删除的删除文件,执行文件的删除。
优选地,在擦除块链表中,基于文件写入顺序,将构成已被无效掉的旧文件的块彼此链接起来,以及,在写入文件时,基于文件写入顺序,从最早写入的块开始,将链接在擦除块链表中的块取出并加以重用。优选地,删除文件和将要删除的文件具有相同的文件名。优选地,至少在重用构成将要删除的文件的所有块之前,保留删除文件。
删除文件以数据的形式包括:与构成将要删除的文件的块有关的信息;以及与构成具有相同名称的文件的、被链接至擦除块链表的块有关的信息。
在写入删除文件之后,可以执行处理,所述处理用于擦除构成具有相同名称的文件的、被链接至擦除块链表的块。此外,在重新配置擦除块链表时,可以将构成删除文件的块添加到擦除块链表,并且可以紧接在该块之前添加删除文件的数据中记录的块。优选地,在重新配置擦除块链表时,将构成删除文件的块添加到擦除块链表,并且基于该信息,在合适的位置,将删除文件的数据中记录的块插入擦除块链表中。
优选地,将比先前分配的最高文件ID号大一的值分配为未分配给任何文件的文件ID。
根据本发明的另一方面,提供了一种使用上述文件系统的文件删除方法,该文件删除方法的特征在于,包括以下步骤:在写入文件时,向文件分配未分配给任何文件的文件ID;在完成该文件的写入时,使具有相同名称的旧文件无效;以及基于文件ID确定文件写入顺序,并且该文件删除方法的特征在于:通过新写入指示删除的删除文件,执行对该文件的删除。
优选地,基于文件写入顺序,在擦除块链表中,将构成已被无效掉的旧文件的块彼此链接起来,并且,在写入文件时,基于文件写入顺序,从最早写入的块开始,取出并重用链接在擦除块链表中的块。
还提供了一种存储器上的文件系统,在所述存储器中,存储区由块组成,对写入存储区的数据进行擦除是逐块进行的,每一个块由多页组成,并且向存储区写入数据是逐页进行的,所述文件系统的特征在于,包括:完成标记写入装置,用于在文件写入完成时,向文件的块中写入指示写入完成的写入完成标记;以及完成标记读取装置,用于读取写入完成标记。
还提供了一种存储器上的文件系统,在所述存储器中,存储区由块组成,对写入存储区的数据进行擦除是逐块进行的,每一个块由多页组成,并且向存储区写入数据是逐页进行的,该文件系统的特征在于,包括:文件ID分配装置,用于在写入文件时,为文件分配未分配给任何文件的文件ID;以及文件更新装置,用于在完成该文件的写入时,使具有相同名称的旧文件无效,并且所述文件系统的特征在于:通过新写入指示删除的删除文件,执行文件的删除。
发明的效果
本发明提供了一种能够进行高速初始化处理的文件系统。此外,本发明提供了一种即使在文件写入期间设备掉电的情况下,也能够防止文件不一致或文件丢失的文件系统。此外,本发明提供了一种处理负荷轻并且支持损耗平衡的简单文件系统。
附图说明
图1是示出了一电子设备的配置示例的功能框图,所述电子设备是作为根据本发明第一实施例的文件系统所适用的设备的示例示出的。
图2是示出了NAND型闪存的区域配置示例的示意图。
图3(A)和3(B)是示出了头部信息的变型的示意图。
图4是示出了用于根据本发明第一实施例的文件系统中的块的配置示例的示意图。
图5是示出了作为示例示出的块1至6的块配置的示例的示意图。
图6(A)和6(B)分别是示出了文件配置信息的配置示例的示意图和可以根据文件配置信息重新生成的文件的配置示例的示意图。
图7(A)和7(B)是示出了用于文件配置信息重建的处理过程的流程图。
图8(A)和8(B)分别是示出了用于执行上述方法的块配置的示例的示意图,以及示出了块1至4四种类型的配置示例的示意图。
图9(A)和(B)分别是示出了这样的块配置的示例的示意图,以及示出6个块A至F的配置示例的示意图。
图10(A)和10(B)分别是示出了由块A、B和C组成的文件1的配置示例的示意图,以及示出了由块D、E和F组成的文件2的配置示例的示意图。
图11是示出了文件写入之前的文件配置信息的示例的示意图。
图12是示出了文件写入期间的配置信息(1)的示意图。
图13是示出了写入期间的配置信息(2)的示意图。
图14是示出了文件写入刚一完成之后的配置信息的示例的示意图。
图15是示出了文件1被无效而文件2继续使用,从而执行从文件1到文件2的更新的情况的示意图。
图16(A)到16(C)是示出了文件写入处理期间的配置信息的示例的示意图。
图17(A)到17(C)是示出了用于根据本发明第一实施例的文件系统的、适合于损耗平衡的、文件写入期间的块链接的示例的示意图。
图18(A)和18(B)是示出了考虑到文件更新的文件配置信息重建的处理过程的流程图。
图19(A)到19(C)是示出了用于文件删除处理的文件配置的示例的示意图。
图20是示出考虑到文件删除的文件配置信息重建的处理过程的流程图。
图21是示出图20之后的处理过程的流程图。
图22是磁存储器的文件系统的概念性示意图。
图23是用于闪存的文件系统的概念性示意图。
图24是示出了文件写入处理过程的流程图。
图25是示出了文件删除处理过程的流程图。
图26是示出了涉及块擦除的文件删除处理过程的流程图。
符号说明
A……电子设备,1……控制单元(CPU(中央处理单元)),3……闪存,5……RAM(存储器),7……输入装置,11……显示装置,15……数据输入/输出装置
具体实施方式
下面将参考附图,给出关于根据的本发明实施例的闪存的文件系统的描述。图1是示出了一电子设备的配置示例的功能框图,所述电子设备是作为根据本发明第一实施例的文件系统所适用的设备的示例示出的。如图1所示,根据本发明第一实施例的电子设备A包括:执行全部控制的控制单元(CPU)1;存储程序的非易失性闪存3;用于控制设备的数据文件等;易失性存储器5(如RAM);通过其输入和输出数据的数据输入/输出装置15;用户通过其输入数据的输入装置7;以及显示装置11,基于通过对输入数据进行处理得到的结果输出,显示信息。
上述电子设备的文件系统被设计为:在安装处理(即,文件系统的初始化处理)期间,重新在存储器5上配置文件配置信息,而不在闪存中给定区域内存储指示文件在闪存中占用了哪些区域的文件配置信息。下面将给出关于应用于NAND型闪存的这种文件系统的示例的详细描述。图2是示出了NAND型闪存的区域配置示例的示意图。如图2所述,文件X由一个或多个块Y组成,每一个块Y由页Z组成。如上所述,NAND型闪存由多个块组成,而每一个块由多页组成。图3(A)和3(B)是示出了块信息的变型的示意图。例如,如果文件X由块A、B和C(Y)组成,那么附加至数据23的块信息项25、27、31和33可以是:如图3(A)所示,块A、B和C保持相同的信息,或者可以是:如图3(B)所示,块A、B和C保持不同的信息项。在图3(B)所示的示例中,在组成文件的块中,只在起始块(如,出现在图3(B)的箭头起点的块A′,箭头指示访问顺序)中保持由文件名和文件大小形成的块信息21。
数据写入要求在写之前进行擦除。擦除逐块进行,而写入逐页进行。而且,通常将页划分为在其中写入正常数据的数据区以及在其中写入冗余数据的OOB(带外)区。OOB区包括:存储纠错码的区域、指示块是否是坏块的区域等,所述纠错码用于纠正写入数据区的数据中的错误。
这样做是由于以下事实:因为NAND型闪存的特性,在写入时,可能写入错误数据,并且在这种情况下,接着,在读取数据时,将错误数据读出,因此,提供一个区域存储用于存储纠正错误的纠错码。在单独使用纠错码不能纠正错误的情况下,包含其中有错误发生页的块被视为坏块。在坏块中,其起始页的OOB区具有对于坏块的描述。坏块包括:在制造过程中生成的固有坏块、以及由于重复擦写导致的逐渐恶化引起的后天形成的坏块。
下面将给出在本说明书中使用的术语的定义。
1)术语“空闲块”
空闲块指的是被擦除的块。这种情况下,空闲块是可以在其中写入数据的块。
2)术语“正确块”
正确块指的是保持着由本发明的文件系统写入的数据的块。正确块可以是构成文件的块。
3)术语“无效块”
无效块指的是既非空闲块也非正确块的块。无效块是需要擦除的块。当在数据写入期间该块发生掉电时,或当文件系统确定需要擦除,并明确地将该块判定为无效块时,出现这种块。
4)术语“坏块”
坏块指的是物理上不可用的块。坏块包括:从交货时起就存在的初始坏块;以及当重复写入时出现的后天形成的坏块。在这些坏块的任何一坏块中,使用坏块信息标记给定部分的OBB区,使坏块可以同正常块区分开。附带一提的是,上述三种块不是坏块而是正常块。
5)术语“空闲块链表”
空闲块链表指的是存储空闲块的链表,此链表驻存在RAM上。
6)术语“检查块链表”
检查块链表指的是存储正常块的链表,此链表驻存在RAM上。
7)术语“擦除块链表”
擦除块链表指的是存储无效块和正确块中的可擦除块的链表,此链表驻存在RAM上。
8)术语“坏块链表”
坏块链表指的是存储坏块的链表,此链表驻存在RAM上。
9)术语“正确文件/正确文件候选”
正确文件/正确文件候选指的是:由必要且足够的正确块组成的,并被判定为符合文件系统的数据结构的文件。还存在具有相同名称的文件。正确文件候选指的是:虽然具有一组完美的块,但是可能数据部分不足的文件。正确文件形成正确文件候选的子集。
10)术语“不完全文件”
不完全文件指的是:被判定为不符合文件系统的数据结构的异常文件。构成块不足的文件、其中未写入必要数据的文件等都属于不完全文件。
11)术语“有效文件”
有效文件是一种形式的正确文件,并且如果正确文件中存在具有相同名称的文件,有效文件指的是最后一个正常写入的文件。如果不存在具有相同名称的文件,有效文件指的是该文件本身。然而,有效文件不是“删除指示文件”。
12)术语“无效文件”
无效文件指的是正确文件中有效文件以外的文件。如果存在具有相同名称的更靠后的文件,或者无效文件是“删除指示文件”,则存在无效文件。
13)术语“文件ID”
文件ID指的是:在写入文件时被分配给文件的文件系统中唯一的ID。文件ID不重新分配。例如,将即将分配的下一文件ID设置为等于先前分配的最高文件ID的编号加一,或以其它方式进行设置。
14)术语“块ID”
块ID指的是用于块识别的序列号。
15)术语“块编号”
块编号指的是用于文件中的块的序列号。
下面将参考附图给出关于安装处理的描述。
根据本发明第一实施例的文件系统的特征在于:不在给定块中记录文件配置信息,而是通过块信息附加装置将块信息附加到每一个块,并且在每一个块中记录块信息,从而在安装时,由文件配置信息重建装置根据块信息构建文件配置信息。换言之,在安装处理期间,读入所有有效块上的块信息,并采集具有相同文件ID的块。然后,根据能够纠正文件重配置的块生成文件配置信息。
附带一提的是,块信息附加装置是:用于在生成写入块的数据时,将关于块的信息附加至该块的装置,并且通常控制单元使用程序执行所述功能;然而,专用硬件也可以附加该信息。在图3(A)和3(B)所示的块配置的示例中,块被显示为包含已经被附加至其上的块信息。
文件配置信息重建装置是:用于在安装时基于上述块信息重新配置文件配置信息的装置,并且通常控制单元使用程序执行所述功能;然而,专用硬件也可以重新配置文件配置信息。图7(A)和7(B)中所示的流程图示出了从获取块到完成重新配置的程序。该处理与文件重配置装置所执行的处理相对应。
文件ID分配装置分配文件ID。文件ID分配装置是:用于在写入文件时,分配用于识别文件的系统中的唯一文件ID的装置。附带一提的是,由块信息附加装置将文件ID作为块信息的一项写入块。
在安装的第一阶段,扫描区域中所有的块,以确定每一个块是空闲块、正确块、无效块还是坏块,并将这些块链接至其对应的链表。
更具体地,判断指示坏块的信息是否被记录在每一个块的起始页的OOB区中,并且,如果没有记录该信息,就根据每一个块中是否写入了预定幻数(magic number)进行判断。虽然幻数可以被写入数据区或OOB区,但是必须读入OOB区以确定每一个块是否是坏块,因此将幻数写入OOB区使得能够同时判断,从而加速处理。因此,根据幻数是否被写入每一个块的起始页以及最后使用的页的OOB区来进行判断。块检查装置是:用于执行这样的判断以确定每一个块的有效性的装置,通常,控制单元使用程序执行该功能;然而,专用硬件也可以检查有效性。为了能够进行这样的判断,在将数据写入每一个块时,由幻数附加装置将块中使用的幻数和页编号写入OOB区。对于幻数附加装置,通常控制单元使用程序来实现该功能;然而,专用硬件也可以执行该附加。此外,在被擦除的块中,通常将所有的位设置为1(附带一提的是,如果是16位,那么幻数是0xffff)。此时,表1给出了判断准则。
表1
此处,可以以下面的方式,对在安装时确定每一个块的有效性实现加速。下面将参考图8(A)和8(B)给出描述。可以通过在每一个块的两个或更多的位置中提供用于写入上述幻数的幻数区,来实现上述加速方法。换言之,为了确定每一个块的有效性,只需要确定数据正确写入与否。读入整个块并检查数据匹配十分耗时,因此,假如从块的起始位置起顺序写入数据,那么仅仅通过检查是否在临近起始和临近结束的位置写入正确数据,就可以作出确定。因此,分别在临近每一个块的起始和临近每一个块的结束位置提供一个幻数写入区域。单独读取幻数使得可以高速确定每一个块的有效性。此外,这有助于确定在将数据写入块的过程中是否发生掉电。
图8(A)是示出了用于执行上述方法的块配置的示例的示意图。如图8(A)所示,按照页的顺序,块Y由“数据1”区73a、“幻数1”区71a、“数据2”区73b、“幻数2”区71b、“数据3”区73c组成。可以将幻数包含在数据区或OOB区中,因此,在图8(A)中,没有示出数据区和OOB区的区别。然而,希望将幻数包含在OOB区中,因此,假定将幻数写入OOB区。此外,假定“幻数1”区71a存在于块的起始页中,并且“幻数2”区71b存在于块的起始页以外的其它页中。基于上述表1中给出的判断准则,判断每一个块的起始页的OOB区中是否记录了指示坏块的信息,并且如果没有记录该信息,就判断每一个块的起始页和最后使用的页的OOB区中是否写入了幻数,从而检查每一个块的有效性。
图8(B)是示出块1至4四种类型的配置示例的示意图。在块1至4每一个块的两个或更多个位置中提供要在其中写入上述幻数的幻数区,如图8(A)所示。此处,将给出描述,假设有效幻数是0x1234。在块1中,将指示有效性的幻数写入“幻数1”区71a和“幻数2”区71b。因此,可以将块1判断为有效块。在块2中,将指示有效性的幻数写入“幻数1”区71a,而将0xffff写入“幻数2”区71b。在块2中,在将数据写入块的过程中可能已经发生掉电。因此,可以将块2判断为无效块。在块3中,将0xffff写入“幻数1”区71a和“幻数2”区71b,因此可以将块3判断为空闲块。在块4中,将指示有效性的幻数写入“幻数2”区71b,而将0x0000写入“幻数1”区71a。文件系统可能已经明确地使块4无效了。因此,可以将块4判断为无效块。
附带一提的是,对两个位置(也就是起始页和最后使用的页)做出判断的原因在于:由于将数据写入块是逐页进行的,因此只检查一个位置的幻数无法检测到在将数据写入块的过程中发生的掉电。对于只在块的起始页中写入数据的块而言,起始页和最后使用的页是相同的,因此也将幻数写入起始页以外的页,并代替最后使用的页的幻数,使用这个幻数,从而做出判断。
此外,如上所述基于两页中的幻数作出判断可以确保至少起始页中的数据是正确数据。原因如下:当将数据连续写入块中的多页内时,从起始页开始顺序写入数据,并且在每一次将数据写入页时验证写入数据是否正确,因而,除非将数据正确地写入起始页,否则数据不会被写入随后的页。换言之,即使在写入数据2或数据3的过程中发生掉电的情况下,如果幻数区71a和71b可以被判断为是可靠的,也可以确保幻数区71a之前的数据1是可靠的。可以将重要信息存储在数据1的区域中,使得至少该信息可以被用作正常数据。附带一提的是,由页验证装置执行页验证。页验证装置是:用于在将数据写入页时,验证写入数据是否正确写入的装置,并且通常控制单元使用程序执行该功能;然而,专用硬件也可以执行该验证。
在安装的第二阶段,分析检查块链表中的正确块,并重新配置正确文件候选或不完全文件。基本上,正确块是正确文件候选或不完全文件的组成元素。
特定地,对于文件重配置,将附加了块信息的数据(如表2所给出的数据)写入每一个块的起始页。如上所述,可以确保正确块的起始页中的数据是正确的,因此可以省去对块信息是否正确的检查。
表2
项目名称 | 值 |
文件ID | 由文件系统唯一分配的ID |
块编号 | 文件中块的序列号 |
文件名 | 用户可以定义的文件名 |
文件大小 | 文件的大小 |
附带一提的是,对于块信息,文件名和文件大小不是必须的,并且可以从块信息中排除。在这种情况下,这些项目可以被附加至数据的起始位置。(参见图3(A)和3(B)所示的块信息的变型。)
下面将参考附图给出关于生成文件配置信息的更具体的示例的描述。图4是示出了用于根据本发明第一实施例的文件系统中的块的配置示例的示意图。如图4所示,块Y包括:由粗线围绕的块信息区;以及块信息区以外的数据区53。块信息41包含:文件名43、文件大小45、由文件系统分配的唯一文件ID 47、以及指示文件中块的链接顺序的块编号51。附带一提的是,在这些项目中,块信息41的必要项目41a是文件ID和块编号,41a使用户能够获得与块的所属位置有关的配置信息。
图5是示出了作为示例示出的块1至6的块配置示例的示意图。在块1中,文件ID 47是“456”,块编号51是2/2。编号“2/2”指示块1是两个块中的第二个块。在块2中,文件ID 47是“123”,块编号51是1/3。在块3中,文件ID 47是“789”,块编号51是2/4。在块4中,文件ID 47是“123”,块编号51是3/3。在块5中,文件ID 47是“123”,块编号51是2/3。在块6中,文件ID 47是“456”,块编号51是1/2。
图6(A)和6(B)分别是示出了文件配置信息的配置示例的示意图和可以根据文件配置信息重新生成的文件的配置示例的示意图。如图6(A)所示,文件配置信息61包含:文件ID 45和块链表57。如图6(B)所示,可以看到文件ID等于“123”的文件1的块链表由按照箭头AR1、AR2和AR3所指示的顺序链接的块2、5和4组成。另一方面,可以看到,文件ID等于“456”的文件2的块链表由按照箭头AR11和AR12所指示的顺序链接的块6和1组成。
现将参考图7(A)和7(B)给出关于文件配置信息重建过程的描述。在步骤S 1中,文件重配置开始。在步骤S2中,获取块,在步骤S3中,使用块检查装置确定所获取的块是否是有效块。如果块不是有效块(“否”),过程前进至步骤S8。如果块是有效块(“是”),过程前进至步骤S4,在步骤S4中读入块信息。在步骤S5中,判断写入所读取的块信息的文件ID是否是新文件ID。如果该文件ID是新文件ID(“是”),就在步骤S6中注册该文件ID,并且过程前进至步骤S7。如果该文件ID不是新文件ID(“否”),过程同样前进至步骤S7,在步骤S7中将此块添加至对应的文件ID。然后,在步骤S8中,确定是否完成对所有块的处理。如果没有完成对所有块的处理(“否”),过程返回步骤S2。如果完成了对所有块的处理(“是”),文件配置信息的生成处理结束。将这些信息项注册在RAM的文件配置信息存储区中。此时注册的文件是不完全文件或正确文件候选。
下面将给出关于基于文件配置信息,从文件中提取正确文件候选的处理的描述。在步骤S9中,读出在RAM的文件配置信息存储区中注册的信息,并取出文件ID。确定是否所有的块都存在于具有此文件ID的文件中(在步骤S10中)。如果所有块都存在,过程前进至步骤S11,在步骤S11中使对应文件ID的文件配置信息生效。然后,或者此外,当并非所有的块都存在时(“否”),过程前进至步骤S12,确定是否完成了对所有文件ID的处理。如果未完成对所有文件ID的处理(“否”),过程返回至步骤S9,重复同样的处理。如果完成了对所有文件ID的处理(“是”),在步骤S13中文件重配置完成。附带一提的是,从步骤S1到S8的处理和从步骤S9到S13的处理可同时执行。上述处理有助于文件配置信息的生成和重新配置。文件配置信息没有存储在闪存中,进而使得可以避免在单独基于块信息重新配置文件时,将数据写入相同的区域或是从相同的区域读取数据。
附带一提的是,不为正确文件候选的文件是不完全文件。在安装的第三阶段,从重新配置的正确文件候选中选出有效文件。有效文件是可以是正确文件的正确文件候选。如果没有具有相同名称的其它正确文件,选择该文件本身。如果存在具有相同名称的文件,选择最后写入的文件。此外,有效文件的条件是该文件不是“删除指示文件”。附带一提的是,稍后将给出关于存在具有相同名称的文件、判断具有相同名称的最后写入的文件、以及“删除指示文件”的描述。
当向块写入数据需要进行验证时,验证期间发生掉电会导致不可能验证数据是否真正地被正确地写入块中的问题。当文件包括多个块时,在最后一块发生掉电将导致不能确定向最后一块写入数据的有效性的情况,因而文件的内容很可能变为异常。因此,根据本发明第一实施例的文件系统的特征是:将写入完成标记写入文件的任何给定块中,从而使文件写入结束。向文件中的任何给定块提供要将指示写完整个文件的标记写入其中的区域,因而只检查该标记便可以轻易确定文件写入是否已正常执行。因此,这有助于检测由文件写入过程中发生的掉电所导致的不完全文件。图9(A)是示出了这样的块配置示例的示意图。如图9(A)所示,块Y包含:数据区81和写入完成标记区83。图9(B)是示出了6个块A到F的配置示例的示意图。块A到C是包含在文件1中的块,块D到F是包含在文件2中的块,此处,在文件1和文件2每个文件中的起始块的最后一页提供要将指示写完文件的写入完成标记写入其中的写入完成标记区83a。优选地,写入完成标记区包含在起始块中,然后也可以在任何位置提供该标记区。如图10(A)所示,在由块A、B和C组成的文件1中,向作为最后一块的块C执行正常写入,在块A的最后一页处的写入完成标记区83a中给出“标记开启”的描述,因此可以看到文件写入已被正常执行。另一方面,如图10(B)所示,在由块D、E和F组成的文件2中,没有在块D的最后一页中提供的写入完成标记区83a中写入该标记,因此可以确定文件写入不完全。换言之,文件系统的特征在于:在构成文件的块中,在文件的起始块中提供要将指示写完整个文件的所有块的数据(即,写入完成标记)写入其中的区域83,以确定正确文件候选是否是正确文件。
安装的一个示例是:起始块的最后一页不用于写入文件数据,而用于写入写入完成标记。从而,可以检查在所给定文件的起始块中是否写入了写入完成标记,以确定是否正确写入了将该块作为起始块的文件所有的块。将其中具有写入完成标记的正确文件候选判断为正确文件。附带一提的是,在完成文件写入后,完成标记写入装置将写入写入完成标记。此外,在安装时,完成标记读取装置读取写入完成标记,并将其用于确定文件写入是否完成。虽然控制单元通常使用程序执行写入和读取并执行判断,但是专用硬件也可以执行这些操作。
从检查块链表中删除构成有效文件的块。从检查块链表中删除构成有效文件的块以外的块,并将其链接到擦除块链表。换言之,这些块是构成无效文件和不完全文件的块。这些块是可重分配的。附带一提的是,按照数据被写入块中的顺序将块链接至擦除块链表。
在完成安装后,上述一系列处理导致空闲块被链接至空闲块链表,将被擦除的块或可擦除块被链接至擦除块链表。
下面参考图24,给出关于文件写入处理的描述。首先,在步骤S101中,写入处理开始。然后,在步骤S102中,使用文件ID分配装置获得文件ID。在步骤S103中,确定空闲块链表是否为空。如果空闲块链表为空(“是”),过程前进至步骤S104,在步骤S10中,从擦除块链表而不是空闲块链表中取出块。在步骤S106中,将块擦除,并且在步骤S107中,生成块信息。如果在步骤S103中,空闲块链表不为空(“否”),过程前进至步骤S105,在步骤S105中,从空闲块链表中取出块。过程前进至步骤S107,在步骤S107中生成块信息。
然后,在步骤S108中,将块信息和数据写入块,并且在步骤S109中,确定是否保持写入数据。然后,在步骤S110中,用完成标记写入装置将写入完成标记写入起始块。在步骤111中,更新文件ID(即,将指示使用了该文件ID的信息给予文件ID分配装置),在步骤S112中,将新文件添加至文件配置信息。在步骤S113中,确定旧文件是否存在。如果存在旧文件(“是”),过程前进至步骤S114中,在步骤S114中,将构成旧文件的块添加到擦除块链表。在步骤S115中,将旧文件从文件配置信息中删除,并且结束写入(在步骤S116中)。如果不存在旧文件,结束处理(在步骤S116中)。此处,步骤S110到S115指示稍后将进行描述的文件更新装置的过程。换言之,该流程为:如果存在具有与完全写入的文件的名称相同的旧文件,则使旧文件无效,并使新文件生效。如果不存在旧文件,处理仅是使新文件生效。虽然控制单元通常使用程序执行从步骤S110到S115的处理,但是专用硬件也可以执行该处理。
如上所述,从空闲块链表中取出将用于文件写入的块。如果空闲块链表不包含块,就从擦除块链表中取出块,擦除该块,将该块放入空闲块链表中,并且随后从空闲块链表中取出该块。使用这样的过程,只有在空闲块链表中的块被用完后才重复使用擦除块链表中的块,因此块的重用不发生初始化整个区域和将数据写入整个区域的块之间。此外,按照写入顺序链接被链接至擦除块链表的块,并且同样地,当链接时,按照写入顺序对块进行链接。因此,不会出现擦除块链表中给定块被重用很次的情况。
在上述步骤S110中,当将写入完成标记写入文件的起始块时,正常执行文件写入。换言之,在步骤S110之前发生掉电的情况下,所写入的块是构成不完全文件的块或无效块,并且在下一次安装处理中,将该块链接到擦除块链表。此时,甚至为不完全文件分配文件ID,因此将此文件链接到擦除块链表的末端。将无效块链接到擦除块链表的头部。这等效于不存在写入。
在步骤S110后发生掉电时,如有必要,步骤S114和步骤S115的处理一定会在下一次安装处理中执行,因此无需特别地考虑这种情况。
现将给出关于文件更新处理的描述。
为了更新文件,一般的文件系统采用直接重写其中记录着文件的部分的方法,或创建具有不同名称的文件然后改变文件名的方法。然而,在重写过程中发生掉电的情况下或在改变文件名的过程中发生掉电的情况下,这些方法具有数据不一致或文件丢失的风险。另一方面,闪存必须擦除整个块以执行重写,因而只重写一部分效率较低,此外存在对重写总数的限制。因此,上述方法不适于闪存。
因此,根据本发明的第一实施例的文件系统特征在于:允许文件系统中存在具有相同名称的文件,将最后写入的文件作为有效文件处理,并且还在完成新文件的写入后,使旧文件无效。这使得可以消除由文件更新期间发生掉电引起的上述风险。由文件更新装置执行这些处理。
下面参考附图,给出更详细的描述。图11是示出了文件写入之前的文件配置信息的示例的示意图。如图11所示,在文件1中,文件写入之前的配置信息包含文件名“AA”,并且如箭头AR1和随后的箭头AR2所示,具有文件名AA的文件1由块A和块B组成。如图12所示,文件写入期间的配置信息(1)为:对于文件写入,为了更新文件1的目的,除文件1之外,如图12所示还创建具有和文件1相同的文件名的文件2。因为文件写入还没有完成,包含在文件2中的块C在其标记区83b中没有设置标记(即标记关闭)。如图13所示,文件写入期间的配置信息(2)为:对于文件2,如图13所示,链接块C和块D。在这种情况下,文件写入还没有完成,因此在标记区83b中没有设置标记。
图14是示出了文件写入刚一完成之后的配置信息的示例的示意图。如图14所示,在文件2中链接块D,然后,如箭头AR31所指示,在标记写入区83a中设置标记(即,标记开启)。此后,标记开启,因而即使在掉电的情况下,文件2也能得以幸存。因此,如文件配置信息更新的示例所示,即使使文件1无效,也能连续地使用文件2,从而可以实现从文件1到文件2的更新。在该条件下,执行向RAM写入文件配置信息。
如上所述,允许存在具有相同名称的文件,并使用具有相同名称的文件执行更新。从而,即使在更新期间发生掉电的情况下,也可以安全地执行文件的更新,而没有更新前文件和更新后文件都被丢失的风险。
下面将给出关于文件删除处理的描述。根据本发明第一实施例的文件系统的特征在于:通过写入“文件删除指示文件”完成文件的删除。针对文件删除,可以将关于文件的配置信息从文件配置信息中删除;然而,文件配置信息驻留在RAM上,因此,如果在该情况下发生掉电,在下一次安装处理时被删除的文件将被恢复。因此,要求不仅擦除关于文件的配置信息,而且擦除构成文件的块。然而,在删除由多个块组成的文件的情况下,或在设备需要很多时间进行擦除的情况下,这样的处理很花时间。因此,不擦除构成文件的块,而是写入文件删除指示文件,并且文件删除指示文件和由文件删除指示文件删除的文件对用户是透明的。因而,即使在掉电的情况下,下一次安装处理时也不会恢复被删除的文件。此处,例如,当将名称相同、大小为零的文件作为文件删除指示文件写入时,可以仅仅通过最多写入一块数据来实现高速删除。
图16(A)是示出了写入删除指示文件前的配置信息的示例的示意图(即,写入“文件删除文件”之前的配置信息)。如图16(A)所示,可以看到,在写入删除指示文件前,具有文件名45“AA”的文件1由按箭头AR1、AR2和AR3的箭头所指示的顺序链接的块A、B和C组成。此处,针对由多个块组成的文件1,如图16(B)所示生成只包含块D的文件2。文件2是文件删除文件且大小为零(即,“文件删除文件”刚一写入完成之后的配置信息)。在文件2的标记写入区83a中设置指示写入完成的标记。然后,可以使用大小为零的文件2覆盖文件1,使得以对用户透明的形式删除文件1。在这种情况下,当存在具有相同名称“AA”的文件时,最后写入的文件2是有效的。具体地,如图16(C)所示,使文件1和文件2无效便于实质上删除文件1。换言之,加速文件删除成为可能。
如上所述,通过写入“删除指示文件”可以实现文件删除。例如,在上述描述中,将文件大小为零且具有相同名称的文件留下用作删除指示文件;然而,应该理解的是,并不特别局限于该文件。应当注意的是,优选地,“删除指示文件”对用户透明。写入过程实质上与普通文件写入的过程相同;然而,在文件写入之后,增加将构成“删除指示文件”的块链接到擦除块链表的处理。
图25示出了文件删除处理的流程图。首先,在步骤S121中,删除处理开始。然后,在步骤S122中获取文件ID。在步骤S123中,确定空闲块链表是否为空。如果空闲块链表是空的(“是”),过程前进至步骤S124,在步骤S124中,从擦除块链表而不是空闲块链表中取出块。在步骤S126中,将块擦除,以及在步骤S127中,生成块信息。此时,将文件大小设置为零。如果在步骤S123中,空闲块链表非空(“否”),过程前进至步骤S125,在步骤S125中,从空闲块链表中取出块。过程前进至步骤S127,在步骤S127中生成块信息。此时,将文件大小设置为零。然后,在步骤S128中,将块信息和数据写入块,在步骤S129中,确定是否保持写入数据。然后,在步骤S130中,将写入完成标记写入起始块。在步骤S131中,更新文件ID。在步骤S132中,将构成文件的块添加到擦除块链表。在步骤S133中,将构成旧文件的块添加到擦除块链表。在步骤S134中,将旧文件从文件配置信息中删除,并结束写入(在步骤S135中)。
附带一提的是,在上述步骤S130中,当将写入完成标记写入文件的起始块时,文件写入正常完成。换言之,在步骤S130之前发生掉电的情况下,所写入的块是构成不完全文件的块,或无效块,并且在下一次安装处理中,将块链接到擦除块链表。此时,即使为不完全文件分配了文件ID,也因此将该文件链接到擦除块链表的末端。将无效块链接到擦除块链表的头部。这等效于不存在删除。
假如最后写入的文件被用作有效文件,那么即使在步骤S130之后发生掉电,如有必要,步骤S132到S134的处理也一定会在下一次安装处理中执行。因此,无需特别考虑这种情况。
现将给出关于文件ID分配方法和块重用方法的描述。
先前给出了关于在安装时,基于分配给块的文件ID,重新配置文件的方法的描述,借助该方法可以提取有效文件。此外,给出了关于如果存在具有相同名称的文件,则将最后写入的文件用作有效文件的方法的描述,借助该方法即使在文件写入或删除期间发生掉电的情况下,也不会遇到有缺陷的情况。此外,给出了关于对于构成有效文件的块,按照文件被写入块的顺序重用块的方法的描述。
这些方法彼此独立;然而,当可以基于唯一文件ID确定文件写入顺序时,可以一次满足所有的方法。特别地,不重新分配文件ID,并且在每一次写入文件时分配新的文件ID,并且此外,优选地,文件ID单调递增或单调递减。
因此,根据本发明的第一实施例的文件系统的特征在于:将文件ID分配装置分配的文件ID设置为先前分配的最高文件ID的编号加一;以及提供文件写入顺序确定装置,用于基于文件ID的大小(magnitude)确定文件写入顺序。
对于实际上留下构成无效文件的块,并且如果块对于新的写入是必须的,可以重用这样的块的方法,希望防止多次重用给定块的情况,所述无效文件是文件写入期间发生掉电所生成的或由于文件更新或删除而非必要的无效文件。将文件ID分配给文件(或块)使得可以重用非必要的旧块。安装也遵循于此。因此,这具有使得能够在重用块时分配正确块的优势。换言之,损耗平衡成为可能。
图17(A)到17(C)是示出了用于根据本发明第一实施例的文件系统的、适合于损耗平衡的(即,文件写入前的配置信息)、文件写入期间的块链接的示例的示意图。图17(A)是示出了文件写入前的配置信息的示例的示意图。如图17(A)所示,擦除块链表是其中块A(AR1)、块B(AR2)、块C(AR3)和块D(AR4)以所列出的顺序彼此相邻链接的链表。另一方面,文件1是具有文件名“BB”的文件,并且由按所列出的顺序彼此链接的块E(AR5)和块F(AR6)构成。此处,沿从块A到块G的方向,文件ID变大。
图17(B)是示出了文件写入刚一完成之后,文件配置信息示例(即文件写入刚一完成之后的配置信息)的示意图。图17(A)所示的链接到擦除块链表的块是按照文件ID的大小增大的顺序进行重用的(附带一提的是,文件ID沿从块A到块G的方向变大)。文件1具有与图17(A)所示的相同配置,文件2具有与文件1相同的名称“BB”,将块A和块B从擦除块链表中取出,并以块编号增大的顺序使用它们。
然后,如图17(C)所示,更新文件配置信息。特定地,对于文件1,擦除文件信息(或使文件信息无效),并且将直到此时包含在文件1中的块插入擦除块链表(即,更新文件配置信息)。基于文件写入顺序确定装置所确定的文件ID的大下的顺序,将块E和F插入到擦除块链表中的块D和G之间。然后,文件2由块A和B构成。
附带一提的是,如果进一步更新文件2,块A和B的文件ID变得比块G大,因此,将块A和B链接到擦除块链表块G之后。
参考图24,再一次将给出关于写入处理的描述。首先,在步骤S101中,写入处理开始。然后,在步骤S102中,获取唯一文件ID。此处,将新获取的文件ID设置为文件系统先前分配的最高文件ID编号加一。在步骤S103中,确定空闲块链表是否空。如果空闲块链表为空(“是”),过程前进至步骤S104,在步骤S104中,从擦除块链表而不是空闲块链表中取出块。在步骤S106中,将块擦除,以及在步骤S107中,生成块信息。如果在步骤S103中,空闲块链表非空(“否”),过程前进至步骤S105,在步骤S105中从空闲块链表中取出块。过程前进至步骤S107,在步骤S107中生成块信息。
然后,在步骤S108中,将块信息和数据写入块,并且在步骤S109中,确定是否保持写入数据。然后,在步骤S110中,将写入完成标记写入起始块。在步骤S111中,更新文件ID,并向文件系统给出指示使用了文件ID的信息。在步骤S112中,将新文件添加到文件配置信息。在步骤S113中,确定是否有旧文件。如果有旧文件(“是”),过程前进至步骤S114中,在步骤S114中将构成旧文件的块添加到擦除块链表。在步骤S115中,将旧文件从文件配置信息中删除,并结束写入(在步骤S116中)。如果不存在旧文件,结束处理(在步骤S116中)。如上所述,针对文件写入处理,从空闲块链表获得用于文件写入的块。如果空闲块链表不包含块,则从擦除块链表取出块并擦除该块,此后将该块链接到空闲块链表,并从空闲块链表中获得该块。
这意味着,在NAND型闪存的整个区域都被初始化的情况下,将所有的块链接到空闲块链表,并且只有在所有的块都被使用完后,才重用擦除块链表中的块。此外,按照文件ID的顺序链接擦除块链表中的块。按照块编号的顺序链接具有相同文件ID的块。换言之,将被重用的块是可擦除块中最早写入的一个。
现将参考图18(A)和18(B)给出关于安装处理过程的描述。在步骤S61中,文件重建处理开始。然后,在步骤S62中,获取块,并在步骤S63中,确定所获取的块是否是有效块。如果块无效(“否”),过程前进至步骤S69。如果块有效(“是”),在步骤S64中读取块信息。在步骤S65中,确定块信息中的文件ID是否是新文件ID。如果该文件ID不是新文件ID(“否”),过程前进至步骤S68。如果该文件ID是新文件ID(“是”),在步骤S66中注册该文件ID,在步骤S67更新该文件ID,并且过程前进至步骤S68。在步骤S68中,将所获取的块添加到相对应的文件ID。
在步骤S69中,确定是否完成了对所有块的处理。如果没有完成对所有块的处理(“否”),处理返回步骤S62。如果完成了对所有块的处理(“是”),过程前进至步骤S70,在步骤S70中按照文件ID递减的顺序取出所注册的文件ID。换言之,在步骤S70中,使用文件写入顺序确定装置从最后写入的文件中顺序提取文件,并继续后续处理。在步骤S71中,确定是否所有的块都存在。如果所有的块都存在(“是”),过程前进至步骤S72,在步骤S72中确定是否存在具有相同名称的文件。然后,在步骤S73中,使对应文件ID的文件配置信息生效,并且过程前进至步骤S75。如果并非所有的块都存在(“否”),过程前进至步骤S74,在步骤S74中,按照文件ID的顺序将构成文件的块插入删除块链表。过程前进至步骤S75。在步骤S75中,确定是否完成了对所有文件ID的处理。如果没有完成对所有文件ID的处理(“否”),过程返回步骤S70。如果完成了对所有文件ID处理(“是”),在步骤S76中重配置完成。
从而,在文件写入期间发生掉电的情况下,在下一次安装处理时,将用于文件写入的块链接到擦除块链表的末端。这样做的原因是:擦除块链表中的块是按照文件ID的顺序进行链接的,并且此时,遭遇掉电的最后一次写入所使用的文件ID最大。这意味着,在文件写入时,只有在擦除块链表中的块被用完才重用该块。换言之,这使得可以防止给定块被单独重用多次的情况。
由于直到现在还没有具体提及对坏块的处理,下面将给出其简要描述。
在NAND型闪存中,坏块包括从交货时起就存在的初始坏块;以及由于在重复擦除和写入时发生磨损而出现的后天形成的坏块。很可能无法正确地从这些块中读取数据,因此需要避免使用这些块。在这样的块中,在OOB区中记录指示该块是坏块的信息。在安装处理时,这样的坏块是可以检测到的,因此,可将这些块放在坏块链表中以避免使用这些块。
在发货时,初始坏块将指示坏块的信息记录在其中;然而,必须检测后天形成的坏块,并在写入时进行记录。特定地,在数据写入到该块后,可再次读取同一个块以进行确认。此时,在虽然正常地执行读写,但在验证时在其中发现错误的块是后天形成的坏块。针对这样的块,在起始页的OOB区中记录指示坏块的信息,并且将该坏块放置在坏块链表中,并且同样此后不使用该块。一旦将指示坏块的信息记录在OOB区中,即使在发生掉电后的安装处理时,也可检测到坏块,因此不使用该坏块。
如上所述,根据本发明的第一实施例的文件系统可以实现高速文件处理。此外,该文件系统支持损耗平衡。此外,该文件系统具有:可以重新配置文件信息,从而甚至在文件写入期间发生掉电的情况下也可以防止文件损坏或毁坏的优势。
现将给出关于根据本发明的第二实施例的文件系统的描述。在第一实施例中,通过写入“删除指示文件”实现文件删除。然而,从安全的角度来看,可能存在确实将数据物理擦除的需求。
在这种情况下,存在一种用于删除文件的方法,该方法包括确实擦除文件所使用的块,而不是写入“删除指示文件”。然而,在擦除块后发生掉电的情况下,在下次上电执行文件系统的安装处理时,这些块将被视为空闲块,并因此很快得到重用。此外,在删除由重用块形成的文件后发生掉电的情况下,这些块也会很快得到重用。
换言之,写入文件、删除文件、掉电和上电的重复循环导致给定块被多次重用,给受写入次数限制的闪存带来不便。
因此,在根据本发明的第二实施例的文件系统中,通过写入“文件删除指示文件”完成文件的删除,并且删除先前文件还涉及擦除块。此处,文件系统的特征在于:将所要擦除的块的块ID也附加至上述文件。换言之,通过写入“删除指示文件”,确实擦除所要删除的文件所使用的块,以及将确实要擦除的块的块ID附加至“删除指示文件”,来完成文件的删除。此外,将被擦除的块和构成“删除指示文件”的块按照这样的顺序链接到擦除块链表。因此,甚至在重用被擦除的块之前发生掉电的情况下,在下一次安装处理时,也可以将被擦除的块链接到擦除块链表中合适的位置,而不是链接到空闲块链表。其原因为:在安装处理时,将构成“删除指示文件”的块链接到擦除块链表,因此当存在这样的块时,可以取出附加于文件的关于被擦除块的信息,并且被擦除块可以紧接在该块之前插入,从而在掉电时重新配置擦除块链表。特定地,如图19(A)所示,删除文件之前的配置信息为:如箭头AR1到AR4所指示的,块A、B、C、D和G被链接至擦除块链表。此外,具有文件名45“BB”的文件1由块E和F组成。
此处,如图19(B)所示,删除文件期间的配置信息为:当删除文件1时,将构成文件1的块E和F链接到擦除块链表,并新生成由块A组成的文件2(“删除指示文件”)。此时,块A是从擦除块链表中取出的擦除块链表的起始块。此外,块A将指示块E和块F已被擦除的信息附加于其上。此后,确实擦除块E和块F。
最后,如图19(C)所示,删除文件后的配置信息为:擦除块链表具有图19(B)所示的、将块A添加至其上的链表的形式。
在块A中存储指示块E和F已经被擦除的信息,因此即使在掉电的情况下也可以重建擦除块链表。
下面将参考图26给出关于删除处理过程的描述。首先,在步骤S141中,删除处理开始。然后,在步骤S142中获取文件ID。在步骤S143中,确定空闲块链表是否为空。如果空闲块链表为空(“是”),过程前进至步骤S144,在步骤S144中从擦除块链表,而不是空闲块链表中取出块。在步骤S146中,将块擦除,以及在步骤S147中,生成块信息。此时,将文件大小设置为零。如果在步骤S143中,空闲块链表非空(“否”),过程前进至步骤S145,在步骤S145中从空闲块链表中取出块。过程前进至步骤S147,在步骤S147中生成块信息。此时,将文件大小设置为零。然后,在步骤S148中,向块写入块信息和数据。此时,将确实要被擦除的块的块ID作为数据附加。然后在步骤S149中,确定是否保持写入数据。然后,在步骤S150中,将写入完成标记写入起始块。在步骤S151中,更新文件ID。在步骤S152中,将构成旧文件的块添加到擦除块链表。在步骤S153中,擦除擦除块链表中构成具有相同名称的文件的块。在步骤S154中,将被擦除块重新链接到擦除块链表的末端。在步骤S155中,将构成文件的块添加到擦除块链表。在步骤S156中,将旧文件从文件配置信息中删除,并且写入结束(在步骤S157中)。
执行步骤S154,以将被擦除块重新链接到擦除块链表(或将被擦除块添加到擦除块链表的末端),因而,除非发生掉电,在用完从起始块起擦除块链表所包含的所有块之前,不使用被擦除块。另一方面,在删除期间发生掉电的情况下,在安装处理时,可以执行下述过程,以将这些块从空闲块链表中删除,并将这些块重新链接到擦除块链表,从而将擦除块链表恢复到已发生掉电的状态。这使得,即使在删除文件时发生块擦除,也可以防止同一个块单独被多次重用。
现将参考图20给出关于安装处理过程的描述。首先,在步骤S81中,重新配置开始,在步骤S82中,获取块。在步骤S83中,确定块是否是空闲块。如果块是空闲块(“是”),过程前进至步骤S92,在步骤S92中将块添加到空闲块链表,并且过程前进至步骤S90。如果块不是空闲块(“否”),在步骤S84中,确定块是否是有效块。如果块是有效块(“是”),过程前进至步骤S85。如果块不是有效块(“否”),在步骤S91中,将块添加到擦除块链表,并且过程前进至步骤S90。在步骤S85中,读入块信息,在步骤S86中,确定块信息中的文件ID是否是新文件ID。如果该文件ID是新文件ID,在步骤S87中注册文件ID,并在步骤S88将块添加到对应的文件ID。然后。在步骤S90中,确定是否完成了对所有块的处理。如果没有完成对所有块的处理(“否”),过程返回步骤S82。如果完成了对所有块的处理(“是”),过程前进至图21的步骤。
图21是示出了图20之后的处理过程的流程图。如果在步骤S90中完成了对所有块的处理(“是”),过程前进至步骤S91,在步骤S91中以文件ID递减的顺序取出所注册的文件ID(即,按照从最近创建的ID到最早创建的ID的顺序)。在步骤S92中,确定是否所有的块都存在。如果并非所有的块都存在(“否”),过程前进至步骤S100,在步骤S100中,将构成文件的块添加到删除块链表,且过程前进至步骤S96。如果在步骤S92中所有的块都存在(“是”),在步骤S93中,确定是否注册了具有相同名称的文件。如果没有注册具有相同名称的文件(“否”),过程前进至步骤S94,在步骤S94中,使对应文件ID的文件配置信息生效。在步骤S95中,确定该文件是否是删除文件。如果该文件不是删除文件(“否”),过程前进至步骤S96。如果在步骤S93中注册了具有相同名称的文件(“是”),过程前进至步骤S98,在步骤S98中确定该文件是否是删除文件。如果该文件不是删除文件(“否”),过程前进至步骤S100。如果该文件是删除文件(“是”),过程前进至步骤S99,在步骤S99中,从空闲块链表取出该文件中记录的块,并将该块添加到擦除块链表,过程前进至步骤S100。在步骤S96中,确定是否完成了对所有ID的处理。如果没有完成对所有文件ID的处理(“否”),过程返回步骤S91。如果完成了对所有ID的处理(“是”),在步骤S97中结束重新配置处理。
附带一提的是,在步骤S100添加到擦除块链表的块是来自步骤S92的、构成并非所有的块都存在于其中的文件的块;来自步骤S98的、构成虽然是正确文件但存在具有相同名称的新文件的文件的块;以及来自步骤S95的、构成最后删除的文件的块。换言之,链接到擦除块链表的块是除了构成有效文件的块之外的块,在所述有效文件中存在所有的块,并且有效文件不是删除文件。
假定以上是基本形式,其扩展可以是:在以上步骤S148中,不仅将所要擦除的块的块ID,还将该块的文件ID和块编号附加至“删除指示文件”;此外,在以上步骤S152中,按照文件ID和块编号的顺序将块链接到擦除块链表;此外,在以上步骤S154中,在擦除块之后,不重新链接该块。在这种情况下,在发生掉电后执行安装时,当将被擦除块从空闲块链表中删除并将其重新链接到擦除块链表时,与块编号一起保持的文件ID和块编号可一起用于将块重新链接到擦除块链表,从而同样将擦除块链表恢复到已发生掉电的状态。此方法的优点在于:块重用顺序和在文件删除期间没有发生块擦除的情况下的顺序完全相同,因此该顺序是显而易见的,然而,此方法的缺点在于,其实现稍微复杂一些。
在其基本形式和扩展的任意一个中,不会出现同一个块被单独重用多次的情况,因此可根据用途选择上述方法中的任意一个。
如上所述,根据本发明的第二实施例的文件系统支持高速文件处理。此外,该文件系统支持损耗平衡。此外,该文件系统的优势为:可以重新配置文件信息,因此甚至在文件写入期间发生掉电的情况下也可以防止文件遭到损坏或毁坏。此外,该文件系统还具有:针对文件删除,确实擦除数据,从而确保安全的优势。
工业实用性
本发明适用于用于电子设备的闪存的文件系统。
Claims (39)
1.一种存储器上的文件系统,在所述存储器中,存储区由块组成,对写入在所述存储区中的数据进行擦除是逐块进行的,每一个块由多页组成,并且向所述存储区写入数据是逐页进行的,所述文件系统的特征在于,包括:
块信息附加装置,用于将作为文件配置信息的块信息附加至每一个块;以及
文件配置信息重建装置,用于基于所述块信息重建所述文件配置信息。
2.根据权利要求1所述的文件系统,其特征在于,包括:幻数附加装置,用于在附加所述块信息时附加幻数。
3.根据权利要求2所述的文件系统,其特征在于,包括:块检查装置,用于基于所述幻数是否被附加至每一个块的起始页和最后使用的页,来检查每一个块的有效性。
4.根据权利要求2和3中任意一项所述的文件系统,其特征在于,包括:页验证装置,用于从每一个块的起始页起顺序写入数据,并在每一次将数据写入页时对数据进行验证。
5.根据权利要求2所述的文件系统,其特征在于:在要写入数据的数据区之前和之后,至少为所述块提供第一幻数区和第二幻数区,每一个幻数区被用于在其中写入幻数。
6.根据权利要求5所述的文件系统,其特征在于:在所述第一幻数区之前提供要写入所述块信息的区域。
7.一种存储器,其中,存储区由至少一个块组成,对写入在存储区中的数据进行擦除是逐块进行的,每一个块由多页组成,并且向所述存储区写入数据是逐页进行的,所述存储器的特征在于,包括:
块信息附加装置,用于将作为文件配置信息的块信息附加至每一个块;以及
文件配置信息重建装置,用于基于所述块信息重建所述文件配置信息。
8.根据权利要求7所述的存储器,其特征在于,包括:幻数附加装置,用于在附加所述块信息时附加幻数。
9.根据权利要求8所述的存储器,其特征在于,包括:块检查装置,用于基于所述幻数是否被附加至每一个块的起始页和最后使用的页,来检查每一个块的有效性。
10.根据权利要求8和9中任意一项所述的存储器,其特征在于,包括:页验证装置,用于从每一个块的起始页起依次写入数据,并在每一次将数据写入页时对数据进行验证。
11.根据权利要求10所述的文件系统,其特征在于:在要写入数据的数据区之前和之后,至少为所述块提供第一幻数区和第二幻数区,每一个幻数区被用于在其中写入幻数。
12.根据权利要求11所述的存储器,其特征在于:在所述第一幻数区之前提供要写入所述块信息的区域。
13.一种电子设备,其特征在于,包括:根据权利要求1至6中任意一项所述的文件系统。
14.一种电子设备,其特征在于,包括:根据权利要求7至12中任意一项所述的存储器。
15.一种用在存储器中的文件配置信息重建方法,在所述存储器中,存储区由块组成,对写入在所述存储区中的数据进行擦除是逐块进行的,每一个块由多页组成,并且向所述存储区写入数据是逐页进行的,所述文件配置信息重建方法的特征在于,包括以下步骤:
将作为文件配置信息的块信息附加至每一个块;以及
基于所述块信息重建所述文件配置信息。
16.根据权利要求15所述的文件配置信息重建方法,其特征在于,包括:当附加所述块信息时附加幻数的步骤。
17.一种存储器上的文件系统,在所述存储器中,存储区由块组成,对写入在所述存储区中的数据进行擦除是逐块进行的,每一个块由多页组成,并且向所述存储区写入数据是逐页进行的,所述文件系统的特征在于,包括:
完成标记写入装置,用于在文件写入完成时,向文件中任意一块内写入指示写入完成的写入完成标记;以及
完成标记读取装置,用于读出所述写入完成标记。
18.根据权利要求17所述的文件系统,其特征在于:将所述写入完成标记写入所述文件中的起始块内。
19.根据权利要求17和18中任意一项所述的文件系统,其特征在于:将所述写入完成标记写入所述块的最后一页中。
20.根据权利要求17至19中任意一项所述的文件系统,其特征在于,还包括:
块信息附加装置,用于将作为文件配置信息的块信息附加至所述块;以及
文件配置信息重建装置,用于基于所述块信息对指示文件配置的所述文件配置信息进行重建。
21.一种存储器上的文件系统,在所述存储器中,存储区由块组成,对写入在所述存储区中的数据进行擦除是逐块进行的,每一个块由多页组成,并且向所述存储区写入数据是逐页进行的,所述文件系统的特征在于,包括:文件更新装置,用于在文件写入完成时,使具有相同名称的旧文件无效。
22.一种用于将文件写入存储器的文件写入方法,在所述存储器中,存储区由块组成,对写入在所述存储区中的数据进行擦除是逐块进行的,每一个块由多页组成,并且向所述存储区写入数据是逐页进行的,所述文件写入方法的特征在于,包括:在整个文件写入完成时,将写入完成标记写入文件的块中的步骤。
23.一种文件更新方法,用于更新存储器上的文件,在所述存储器中,存储区由块组成,对写入在所述存储区中的数据进行擦除是逐块进行的,每一个块由多页组成,并且向所述存储区写入数据是逐页进行的,所述文件更新方法的特征在于,包括以下步骤:
生成与将要更新的目标文件名称相同的文件;
更新与目标文件名称相同的文件;以及
在更新完成时使所述目标文件无效。
24.一种存储器,其中,存储区由块组成,对写入在所述存储区中的数据进行擦除是逐块进行的,每一个块由多个页组成,并且向所述存储区写入数据是逐页进行的,所述存储器的特征在于,包括:
完成标记写入装置,用于在文件写入完成时,将指示写入完成的写入完成标记写入数据被写入的块中;以及
完成标记读取装置,用于读出所述写入完成标记。
25.根据权利要求24所述的存储器,其特征在于:将所述写入完成标记写入数据被写入的多个块的起始块中。
26.根据权利要求24和25中任意一项所述的存储器,其特征在于:将所述写入完成标记写入所述块的最后一页中。
27.一种存储器上的文件系统,在所述存储器中,存储区由块组成,对写入在所述存储区中的数据进行擦除是逐块进行的,每一个块由多个页组成,并且向所述存储区写入数据是逐页进行的,所述文件系统包括:
文件ID分配装置,用于在写入文件时,为文件分配未分配给任何文件的文件ID;以及
文件更新装置,用于在完成所述文件的写入时,使具有相同名称的旧文件无效,
所述文件系统的特征在于:通过新写入指示删除的删除文件,执行所述文件的删除。
28.根据权利要求27所述的文件系统,包括:文件写入顺序确定装置,用于基于文件ID确定文件写入顺序,
所述文件系统的特征在于:基于所述文件写入顺序,在擦除块链表中,将构成已被无效掉的旧文件的块彼此链接起来,以及
在写入文件时,基于所述文件写入顺序,从最早写入的块开始,将链接在所述擦除块链表中的块取出并加以重用。
29.一种文件删除方法,用于删除存储器上的文件,在所述存储器中,存储区由块组成,对写入在所述存储区中的数据进行擦除是逐块进行的,每一个块由多页组成,并且向所述存储区写入数据是逐页进行的,所述文件删除方法的特征在于,包括以下步骤:
在写入文件时,为文件分配未分配给任何文件的文件ID;
在完成所述文件的写入时,使具有相同名称的旧文件无效;以及
通过新写入指示删除的删除文件,删除所述文件。
30.根据权利要求29所述的文件删除方法,其特征在于,包括以下步骤:
基于所述文件ID确定所述文件写入顺序,以及
基于所述文件写入顺序,在擦除块链表中将构成已被无效掉的旧文件的每个块彼此链接起来,并且在写入文件时,基于所述文件写入顺序,从最早写入的块开始,取出并重用链接在所述擦除块链表中的块。
31.一种存储器,其中,存储区由块组成,对写入在所述存储区中的数据进行擦除是逐块进行的,每一个块由多页组成,并且向所述存储区写入数据是逐页进行的,所述存储器包括:
文件ID分配装置,用于在写入文件时,为文件分配未分配给任何文件的文件ID;以及
文件更新装置,用于在完成所述文件的写入时,使具有相同名称的旧文件无效,
所述存储器的特征在于:通过新写入指示删除的删除文件,执行所述文件的删除。
32.根据权利要求31所述的存储器,包括:文件写入顺序确定装置,用于基于文件ID确定文件写入顺序,
所述存储器的特征在于:基于所述文件写入顺序,在擦除块链表中,将构成已被无效掉的旧文件的块彼此链接起来,并且,在写入文件时,基于所述文件写入顺序,从最早写入的块开始,将在所述擦除块链表中链接的块取出并加以重用。
33.根据权利要求32所述的存储器,其特征在于:所述删除文件具有与将要删除的文件相同的文件名。
34.根据权利要求33所述的存储器,其特征在于:至少在重用构成将要删除的文件的所有块之前,保留所述删除文件。
35.根据权利要求34所述的存储器,其特征在于,所述删除文件以数据的形式包括:与构成将要删除的文件的块有关的信息;以及与构成具有相同名称的文件的、被链接至所述擦除块链表的块有关的信息。
36.根据权利要求35所述的存储器,其特征在于:在写入所述删除文件之后,执行下述处理:擦除构成具有相同名称的文件的、被链接至所述擦除块链表的块。
37.根据权利要求36所述的存储器,其特征在于:在重新配置擦除块链表时,将构成所述删除文件的块添加至所述擦除块链表,并且紧接在所述块之前添加所述删除文件中的数据中记录的块。
38.根据权利要求36所述的存储器,其特征在于:在重新配置擦除块链表时,将构成所述删除文件的块增加至所述擦除块链表,并且基于所述信息,将所述删除文件中的数据中记录的块插入所述擦除块链表中的适当位置处。
39.根据权利要求31至38中任意一项所述的存储器,其特征在于:将比先前分配的最高文件ID号大1的值分配为未分配给任何文件的文件ID。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006234886A JP4157575B2 (ja) | 2006-08-31 | 2006-08-31 | ウエアレベリング可能なファイルシステム |
JP234886/2006 | 2006-08-31 | ||
JP2006234776A JP4209908B2 (ja) | 2006-08-31 | 2006-08-31 | 高信頼性ファイルシステム |
JP234738/2006 | 2006-08-31 | ||
JP234776/2006 | 2006-08-31 | ||
JP2006234738A JP2008059228A (ja) | 2006-08-31 | 2006-08-31 | ファイルシステム |
PCT/JP2007/066113 WO2008026466A1 (fr) | 2006-08-31 | 2007-08-20 | Système de fichiers |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101529395A true CN101529395A (zh) | 2009-09-09 |
CN101529395B CN101529395B (zh) | 2012-07-25 |
Family
ID=39241898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200780038992.5A Expired - Fee Related CN101529395B (zh) | 2006-08-31 | 2007-08-20 | 文件系统 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2008059228A (zh) |
CN (1) | CN101529395B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122236A (zh) * | 2011-03-21 | 2011-07-13 | 成都市华为赛门铁克科技有限公司 | 写请求的处理方法及装置 |
CN102253938A (zh) * | 2010-05-18 | 2011-11-23 | 深圳市朗科科技股份有限公司 | 一种文件写入、恢复方法和装置 |
CN103064843A (zh) * | 2011-10-20 | 2013-04-24 | 北京中搜网络技术股份有限公司 | 数据处理装置和数据处理方法 |
CN103092849A (zh) * | 2011-10-28 | 2013-05-08 | 浙江大华技术股份有限公司 | 文件系统簇管理方法 |
CN104615546A (zh) * | 2015-02-13 | 2015-05-13 | 小米科技有限责任公司 | 文件数据管理方法及装置 |
CN107615253A (zh) * | 2015-06-01 | 2018-01-19 | 深圳市大疆创新科技有限公司 | 用于存储器架构的系统和方法 |
CN107908364A (zh) * | 2017-11-13 | 2018-04-13 | 中国电子科技集团公司第三十研究所 | 一种基于norflash的嵌入式文件系统 |
CN110659250A (zh) * | 2018-06-13 | 2020-01-07 | 中国电信股份有限公司 | 文件处理方法和系统 |
CN112035294A (zh) * | 2020-08-25 | 2020-12-04 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 安全日志文件系统及其实现方法和介质 |
CN112380171A (zh) * | 2020-12-01 | 2021-02-19 | 厦门市美亚柏科信息股份有限公司 | 一种yaffs文件系统oob识别方法、终端设备及存储介质 |
CN113805806A (zh) * | 2018-12-03 | 2021-12-17 | 北京奥星贝斯科技有限公司 | 一种高效的数据单元重用方法和系统 |
CN113934371B (zh) * | 2021-10-08 | 2024-04-12 | 福建星网视易信息系统有限公司 | 一种存储器及其数据管理方法和计算机存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014044490A (ja) * | 2012-08-24 | 2014-03-13 | Toshiba Corp | ホスト装置及びメモリデバイス |
JP6123766B2 (ja) | 2014-09-18 | 2017-05-10 | カシオ計算機株式会社 | データ読み出し装置、プログラムおよびデータ読み出し方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004280752A (ja) * | 2003-03-19 | 2004-10-07 | Sony Corp | データ記憶装置、およびデータ記憶装置における管理情報更新方法、並びにコンピュータ・プログラム |
-
2006
- 2006-08-31 JP JP2006234738A patent/JP2008059228A/ja active Pending
-
2007
- 2007-08-20 CN CN200780038992.5A patent/CN101529395B/zh not_active Expired - Fee Related
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102253938A (zh) * | 2010-05-18 | 2011-11-23 | 深圳市朗科科技股份有限公司 | 一种文件写入、恢复方法和装置 |
CN102253938B (zh) * | 2010-05-18 | 2015-05-20 | 深圳市朗科科技股份有限公司 | 一种文件写入、恢复方法和装置 |
CN102122236B (zh) * | 2011-03-21 | 2013-08-28 | 华为数字技术(成都)有限公司 | 写请求的处理方法及装置 |
CN102122236A (zh) * | 2011-03-21 | 2011-07-13 | 成都市华为赛门铁克科技有限公司 | 写请求的处理方法及装置 |
CN103064843B (zh) * | 2011-10-20 | 2016-03-16 | 北京中搜网络技术股份有限公司 | 数据处理装置和数据处理方法 |
CN103064843A (zh) * | 2011-10-20 | 2013-04-24 | 北京中搜网络技术股份有限公司 | 数据处理装置和数据处理方法 |
CN103092849A (zh) * | 2011-10-28 | 2013-05-08 | 浙江大华技术股份有限公司 | 文件系统簇管理方法 |
CN104615546B (zh) * | 2015-02-13 | 2018-04-27 | 小米科技有限责任公司 | 文件数据管理方法及装置 |
CN104615546A (zh) * | 2015-02-13 | 2015-05-13 | 小米科技有限责任公司 | 文件数据管理方法及装置 |
CN107615253B (zh) * | 2015-06-01 | 2021-03-12 | 深圳市大疆创新科技有限公司 | 用于存储器架构的系统和方法 |
US10635633B2 (en) | 2015-06-01 | 2020-04-28 | SZ DJI Technology Co., Ltd. | Systems and methods for memory architecture |
CN107615253A (zh) * | 2015-06-01 | 2018-01-19 | 深圳市大疆创新科技有限公司 | 用于存储器架构的系统和方法 |
CN107908364A (zh) * | 2017-11-13 | 2018-04-13 | 中国电子科技集团公司第三十研究所 | 一种基于norflash的嵌入式文件系统 |
CN107908364B (zh) * | 2017-11-13 | 2020-10-23 | 中国电子科技集团公司第三十研究所 | 一种基于norflash的嵌入式文件系统 |
CN110659250A (zh) * | 2018-06-13 | 2020-01-07 | 中国电信股份有限公司 | 文件处理方法和系统 |
CN113805806A (zh) * | 2018-12-03 | 2021-12-17 | 北京奥星贝斯科技有限公司 | 一种高效的数据单元重用方法和系统 |
CN112035294A (zh) * | 2020-08-25 | 2020-12-04 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 安全日志文件系统及其实现方法和介质 |
CN112035294B (zh) * | 2020-08-25 | 2023-12-29 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 安全日志文件系统及其实现方法和介质 |
CN112380171A (zh) * | 2020-12-01 | 2021-02-19 | 厦门市美亚柏科信息股份有限公司 | 一种yaffs文件系统oob识别方法、终端设备及存储介质 |
CN112380171B (zh) * | 2020-12-01 | 2022-07-15 | 厦门市美亚柏科信息股份有限公司 | 一种yaffs文件系统oob识别方法、终端设备及存储介质 |
CN113934371B (zh) * | 2021-10-08 | 2024-04-12 | 福建星网视易信息系统有限公司 | 一种存储器及其数据管理方法和计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2008059228A (ja) | 2008-03-13 |
CN101529395B (zh) | 2012-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101529395B (zh) | 文件系统 | |
CN1760875B (zh) | 基于文件存取特性在各种类型的存储卷之间透明迁移文件 | |
WO2008026466A1 (fr) | Système de fichiers | |
EP1739535B1 (en) | File system storing transaction records in flash-like media | |
JP5539683B2 (ja) | 拡張可能な2次ストレージシステムと方法 | |
CN102236750B (zh) | 在云存储系统中进行权限控制的方法和装置 | |
CN100419714C (zh) | 闪存存取方法、闪存文件系统的块替换方法及其管理装置 | |
CA2818472C (en) | Optimized startup verification of file system integrity | |
US7809777B2 (en) | File system having deferred verification of data integrity | |
CN101359335B (zh) | 用于可伸缩文件系统恢复的资源管理 | |
CN1179281C (zh) | 利用逻辑闪速存储器件进行最小单元更新的方法和设备 | |
CN106354425A (zh) | 基于数据属性的数据布局的方法和系统 | |
CN1983265A (zh) | 具有倒置层次结构的文件系统 | |
CN101763309A (zh) | 非易失性存储装置、信息记录系统及信息记录方法 | |
CN103729262A (zh) | 操作系统热备份方法、装置及文件系统重构方法 | |
CN101246429B (zh) | 将闪存模块用作主存储器的电子系统和相关系统引导方法 | |
CN105302679A (zh) | 一种智能终端存储稳定性的检测方法及系统 | |
CN108334275A (zh) | 数据储存方法及其装置 | |
JP2008262574A (ja) | 高信頼性ファイルシステム | |
JP4157575B2 (ja) | ウエアレベリング可能なファイルシステム | |
JP4209908B2 (ja) | 高信頼性ファイルシステム | |
CN201804319U (zh) | 嵌入式烧录晶片系统 | |
CN101202078B (zh) | 数据保护方法 | |
CN109388524A (zh) | 虚拟磁盘格式的寻址方法和计算机可读存储介质 | |
JPWO2008010447A1 (ja) | データ管理システムおよびその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120725 Termination date: 20160820 |