文件存储系统及其文件存储控制方法

文档序号:9929587阅读:676来源:国知局
文件存储系统及其文件存储控制方法
【技术领域】
[0001]本发明涉及文件存储技术领域,特别涉及一种文件存储系统及其文件存储控制方法。
【背景技术】
[0002]现在计算机、智能手机、平板电脑中,用户数据、文件被存在硬盘,或者NAND闪存芯片中以及由NAND闪存组成的固态硬盘(SSD,Solid State Drives)里。NAND和固态硬盘取代传统的机械硬盘又是一个产业发展的大趋势。
[0003]NAND是一种整块读写的存储设备(block device ),最小可读取的单元叫页(page),最小可擦除的单元叫存储块或区块(block),一个block往往由很多page组成,block擦除后里面的page可以进行单独的写入(program)操作。
[0004]可以参阅图1,在软件层面,手机和计算机中文件存储的架构一般如下:
[0005]应用软件向操作系统发出打开、关闭、读、写文件指令;
[0006]操作系统中的文件系统部分把读、写文件的指令转化为读、写存储块的指令;
[0007]NAND驱动与管理软件接受读写存储块区的指令,进行缓存、写均衡等优化,向芯片发出读page、写block等指令;具体地,在手机中,NAND读写软件通常作为跟操作系统紧密相关的软件模块,在主控芯片上运行;在计算机中,NAND读写软件通常在固态硬盘控制器(SSDControl Ier)上运行。
[0008]文件系统是操作系统软件中的一个重要部分,负责解决文件的存储问题。它会把文件划分成一个个的块,一般每一个块和NAND闪存中的一个page对应。每当一个新文件创建,文件系统会分配给它一个块,当一个块写满后,再分配一个新的块。由于系统中很多文件都在增长,一个文件中的不同的块常常地址不连续,这就叫文件的碎片化。并且,一个文件删除后,释放出的空闲块会被新的文件占用。所以,随着产品的使用,文件的碎片化会越来越严重。
[0009]NAND闪存技术的发展推动了 SSD产业。通常,SSD的结构如图2所示,SSD与主机之间使用高速串行接口如SATA、PICe等技术,SSD内部由用于存储数据的一组NAND芯片(即图2所示的NAND库),用于支持计算和缓存数据的内存(DDR DRAM),以及一个主控芯片(SSDControl Ier)组成。有时候还需要断电保护系统。
[0010]多媒体卡(eMMC,EmbeddedMulti Media Card)和安全数字存储卡(SD,SecureDigital Memory Card)等各种存储卡的架构与SSD类似,差别在于与主机接口的协议不同,且通常不用DRAM,而用少量集成在主控芯片(controller)内部的SRAM。
[0011 ] NAND闪存的一个问题是其具有有限的寿命。NAND闪存里面的每一个page经过一定次数的擦写以后,就会永久失效不能继续使用。目前的产业发展趋势是NAND的容量和数据密度增长非常快,但却是以降低寿命为代价,可擦写次数从最初的10万次降低到目前的3000次左右。
[0012]因为NAND闪存的以上特性,SSD内部的NAND管理软件比较复杂。为了不使某些经常发生写操作的块提前损坏,需要进行写均衡处理。文件系统软件所识别的逻辑地址和物理地址是不同的,需要一个表把二者对应起来。由于NAND擦除太慢,一般修改一内容时不在原来的块区更新,而是把新的内容写到一个新的块区,将旧块区标记为无效,等CPU空闲下来再擦除它。这样,逻辑地址与物理地址之间的对照表(逻辑-物理地址对照表)是不断动态更新的。这个表正比于SSD的总容量,存在DDR DRAM里,另外在NAND里面也有相应的标记。随着市场上SSD容量的迅速增加,这个表成为DRAM最大的消耗者。
[0013]由于NAND的读写速度比DRAM慢得多,还可以利用一部分DRAM空间作读、写的缓存(Cache),提高整个SSD的性能。然而,引入写缓存产生了新的问题:一旦发生断电,DRAM缓存中尚未写入NAND的内容会丢失,造成系统丢失数据甚至整个文件系统的损坏。所以必须同时使用昂贵的、体积大的断电保护系统(一般由电池或者大量的电容器组成)。而逻辑-物理地址对照表,在发生断电后,是可以利用NAND中的数据重新构造的,尽管很费时间。
[0014]NAND闪存一般在出厂时就有一些损坏的块,所以所有的NAND都伴随着一个坏块表,一般会被存储在NAND的指定区域或者在坏块上做标记。所以,一般NAND厂家提供的产品容量都大于标定值,留有一些备份块。
[0015]NAND在使用过程中坏块可能还会不断出现。最常见的情况下是在写入或擦除时,芯片的状态显示可能会表示写入、擦除失败。此时NAND管理软件应该找到一个替代块,重新写入数据。较少的情况下,读出时也会因为纠错和校验而失败,此时数据通常能够通过多次重复读来恢复,但NAND管理软件可能会寻找替代块把数据转存过去。
[0016]如果使用传统的机械硬盘存储文件,文件的碎片化是一个大问题,因为机械硬盘的磁头在寻找新的地址块时需要很长的时间,文件碎片化将导致系统的性能显著降低。如果使用NAND存储文件,虽然寻找新地址的时间基本不是问题,文件碎片化对系统性能的影响也比较小,但文件碎片化对NAND的使用寿命还是有很大影响的。
[0017]另外,现在的NAND管理方式,要求SSD和存储卡等块存储设备维持一张逻辑页/物理页的对照表,这个对照表会消耗相当大的内存空间。

【发明内容】

[0018]本发明要解决的问题是因现有技术存储文件所产生的文件碎片化而导致的系统性能降低或存储器寿命缩短,以及维护逻辑页/物理页的对照表所导致的巨大内存消耗。
[0019]为解决上述问题,本发明技术方案提供一种文件存储系统,包括:
[0020]第一存储器、第二存储器以及控制单元;
[0021]所述第一存储器为采用整块读写的非易失性(NV,NotVolatile)存储器,所述第二存储器为支持随机存储的非易失性存储器,所述第二存储器比所述第一存储器具有更长的使用寿命以及同等或更快的读写速度;
[0022]所述第二存储器包括第一存储区域,所述第一存储区域用于存储记录有文件相关信息的文件目录,所述文件相关信息包括文件存储所使用的存储块和页;
[0023]所述控制单元用于在执行文件创建并发生数据写入操作时,将所述第一存储器中的一个空闲存储块分配给该文件,并在数据写入完成后更新存储于所述第一存储区域的文件目录。
[0024]可选的,所述第二存储器还包括第二存储区域,所述第二存储区域用于文件读/写操作时的缓存。
[0025]可选的,所述文件目录中的每一个条目记录一个文件的文件相关信息,各个条目记录最先的m个存储块以及每个存储块中最先的η个页相应的信息,其他页的信息存储在这η个页中。
[0026]可选的,所述文件目录还包括指向指针,用于在文件存储所使用存储块的数量大于m时,指向记录有该文件后续所使用存储块和页的位置,该位置存储有该文件后续所使用的m个存储块以及每个存储块中最先的η个页相应的信息。
[0027]可选的,所述第二存储器还包括第三存储区域,所述第三存储区域用于存储由所有空闲存储块的相应信息所建立的空闲块信息链表,新释放的存储块的相应信息位于所述空闲块信息链表的尾部,待分配的存储块的相应信息位于所述空闲块信息链表的头部。
[0028]可选的,所述控制单元按顺序分配已被分配的存储块内的空闲页;所述第二存储器还包括第四存储区域,所述第四存储区域用于存储每一个已被分配的存储块中第一个空闲页以及所有无效页相应信息。
[0029]可选的,所述第二存储器为磁性随机存储器(MRAM,Magnetic Random AccessMemory),所述第一存储器为NAND闪存或固态硬盘。
[0030]可选的,所述第二存储器通过标准内存接口与所述控制单元相连。
[0031]可选的,所述第一存储器为固态硬盘,所述第二存储器内置于所述第一存储器之中。
[0032]为解决上述问题,本发明技术方案还提供一种上述文件存储系统的文件存储控制方法,包括:在执行文件创建并发生数据写入操作时,将所述第一存储器中的一个空闲存储块分配给该文件,并在数据写入完成后更新所述第一存储区域内的文件目录。
[0033]可选的,所述文件存储系统的文件存储控制方法还包括:利用已分配的存储块中的空闲页,对存储在所述已分配的存储块中的文件进行修改或数据添加。
[0034]可选的,所述文件存储系统的文件存储控制方法还包括:对存储在所述已分配的存储块中的文件进行修改或数据添加时,若该存储块中的空闲页已经用完,且修改或数据添加后的文件大小将会小于或等于一个存储块的容量,则分配一个新的空闲存储块,将该文件的所有数据转移至该新分配的空闲存储块,并释放原先存储该文件的存储块。
[0035]可选的,所述文件存储系统的文件存储控制方法还包括:当所述已分配的存储块的所有页已全部被使用,且需要添加新的数据时,则分配一个新的空闲存储块,将需要添加的新数据存储至该新分配的空闲存储块。
[0036]可选的,所述文件存储系统的文件存储控制方法还包括:当所述第一存储器中空闲存储块的数量小于预设阈值时,把上次写入时间早于第一预设时间,单独占据整个存储块且文件大小小于一个存储块容量的一个以上文件,转移到拥有足够连续空闲页的存储块中,并释放原先存储这些文件的存储块。
[0037]可选的,所述文件存储系统的文件存储控制方法还包括:将上次写入时间早于第二预设时间且存在非连续空闲页的存储块中所存储
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1