一种利用mram存储文件目录的文件存储系统的制作方法
【技术领域】
[0001]本发明涉及文件存储系统,尤其涉及一种利用MRAM文件目录的文件存储系统。
【背景技术】
[0002]现在计算机、智能手机、平板电脑中,用户数据、文件被存在硬盘,或者NAND闪存芯片中以及由NAND闪存组成的固态硬盘里。NAND和固态硬盘取代传统的机械硬盘又是一个产业发展的大趋势。
[0003]硬盘和固态硬盘内的NAND闪存都是整块读写的块设备(block device),最小可读取的单元叫页(page),最小可擦除的单元叫块(block),一个块往往由很多页组成,块擦除后里面的页可以进行单独的写入操作。
[0004]NAND闪存的一个问题是NAND具有有限的寿命。里面的每一个页经过一定次数的擦写以后,就会永久失效不能继续使用。目前的产业发展趋势是NAND的容量和数据密度增长非常快,但却是以降低寿命为代价。可擦写次数从最初的10万次降低到目前的3000次左右。
[0005]如图1所示,手机与计算机的文件操作方式如下:
[0006](I)应用软件向操作系统发出打开、关闭、读、写文件指令;
[0007](2)操作系统中的文件系统部分把读、写文件的指令转化为读、写存储块的指令;
[0008](3)NAND驱动与管理软件接受读写存储块区的指令,进行缓存、写均衡等优化,向芯片发出读page,写block等指令。
[0009]在手机中,NAND驱动与管理软件通常作为与操作系统紧密相关的软件模块,在主机芯片上运行;在计算机中,NAND驱动与管理软件通常在固态硬盘的主控芯片上运行。
[0010]文件系统是操作系统软件中的一个重要部分,负责解决文件的存储问题。它会把文件划分成一个个的块,一般每一个块和NAND闪存中的一个页对应。
[0011]文件系统的一个基本任务是,让用户和应用程序能够通过一个文件名/路径名,找到文件数据在存储器中的地址。然而在很多文件系统中,这个步骤是比较复杂的。为了方便用户查找文件,文件系统是按多级目录组织起来的。计算机必须从根目录开始搜索下一级目录所在的地址。而在很多文件系统中,比如始于Windows操作系统中的FAT和始于Liux操作系统的ext2、ext3,目录是作为文件的一种,和普通文件以相同的方式存储的。如果文件是存储在NAND或者基于NAND的固态硬盘中,每一次查找目录都要读一次NAND,对于ext2,ext3甚至可能要读两次NAND。在缓存没有命中的情况下,每一次读NAND都是很耗时的,因为NAND必须整页地读出,可能还需要查错纠错。如果文件在一个深层的目录中,那么找到它的数据之前必须打开很多NAND页。
[0012]这样的存储目录的方式还有一个问题:一个目录中的总字节数常常很少,把它作为一个文件存储,就至少要占用一整页的空间。在一些新的NAND芯片中,一页有可能多达16K。这样的存储效率是很低的。
[0013]某些比较新的文件系统,比如YAFFS,开始把所有文件的目录都做成紧致的数据结构,集中在一起,关机时存放在某些NAND页里,开机时上传到RAM中。这样,极大地提高了查找文件的速度。但却带来了另外一个问题:如果系统发生意外断电,比如用户手机落在地上,电池摔脱了,RAM中的数据丢失,导致NAND中的目录与实际情况不符。还好YAFFS在每个NAND页中都添加了一下附件信息。此时不得不启动非常耗时的对所有NAND页的扫描,能够恢复大部分目录组织,但是还是会产生一些没有名字的文件。
[0014]另外一个问题,就是文件系统中的目录通常是非常频繁地被修改的。用户会增加文件,删除文件,重命名,把文件从一个目录移到另一个目录中。而一些跟目录相关的数据也经常被修改。比如有些文件系统记录一个文件上一次被读的时间。所以当一个文件只是被读一下,这文件相关联的目录项就要被改写,不但如此,搜索这个文件所经过的目录因为都被打开过,相应的记录也要被改写。由于NAND芯片只能承受有限次的擦写,延长其使用寿命,应该从目录着手。
[0015]本领域技术人员致力于提供一种文件存储系统,既能够高性能、安全地管理文件目录,又能够延长系统的使用寿命。
【发明内容】
[0016]有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种文件存储系统,既能够高性能、安全地管理文件目录,又能够延长系统的使用寿命。
[0017]本发明的重要背景是MRAM技术的发展。MRAM是一种新的内存和存储技术,可以像RAM 一样快速随机读写,还可以像NAND闪存一样在断电后永久保留数据。不像NAND,MRAM可以无限多次地擦写。但预计未来相当长一段时间内,MRAM的容量比NAND低,成本比NAND尚O
[0018]本发明中,充分利用MRAM是一种随机读写非易失的存储器,并且它还可以无限次地擦写。采用MRAM和NAND组合成文件存储系统,而文件目录是非常适合存储在MRAM中的。
[0019]本发明提供一种利用MRAM存储文件目录的文件存储系统,包括MRAM与块存储设备,MRAM包括文件系统目录区,用于存储文件目录,块存储设备用于存储文件数据。
[0020]文件系统目录区由一条条的记录组成,每一个目录和文件对应着一条记录,这个记录里储存该目录或文件的相关信息。通过一个目录的记录可以找到目录下的文件和子目录的记录。
[0021]由于MRAM是随机读写的存储器,在MRAM中查询文件比在NAND中搜索目录快,因而能够高性能地管理文件目录。
[0022]由于MRAM是非易失的存储器,不会因为突然断电而丢失文件系统中的核心数据,因而能够安全地管理文件目录。
[0023]文件系统目录区需要经常被改写,存储在可以无限次写入的MRAM中,降低了 NAND的写入次数,延长系统的使用寿命。
[0024]进一步地,MRAM通过DDR DRAM接口与手机的主控芯片或计算机的CPU连接。
[0025]进一步地,块存储设备为NAND芯片、机械硬盘、固态硬盘、eMMC, SD存储卡或microSD存储卡。
[0026]对于手机,块存储设备为NAND芯片、eMMC、SD存储卡或microSD存储卡;对于计算机,块存储设备为机械硬盘或固态硬盘。
[0027]进一步地,MRAM集成于固态硬盘、eMMC, SD存储卡或microSD存储卡中,计算机的CPU能够直接读写MRAM中的文件系统目录区。
[0028]进一步地,MRAM通过DDR DRAM接口与固态硬盘、eMMC、SD存储卡或microSD存储卡的主控芯片连接。
[0029]进一步地,MRAM集成于固态硬盘、eMMC, SD存储卡或microSD存储卡的主控芯片中。
[0030]进一步地,文件系统目录区为连续区域或不连续区域。
[0031]文件系统目录区可以为连续区域,也可以是不连续区域,利用对象指针逐级找到子对象,最终找到任何一个目录或文件。
[0032]进一步地,文件系统目录区中所有记录长度相同,这种方案便于储存空间管理。
[0033]进一步地,文件系统目录区中的记录具有不同长度,删除和增加目录或文件可以通过malloc和free机制进行,能够有效提高存储空间的利用率。
[0034]进一步地,目录记录中逻辑分区的根目录记录存放在约定位置。
[0035]与现有技术相比,本发明提供的利用MRAM存储文件目录的文件存储系统具有以下有益效果:
[0036](I)由于MRAM是随机读写的存储器,在MRAM中查询文件比在NAND中搜索目录快,因而能够高性能地管理文件目录。
[0037](2)由于MRAM是非易失的存储器,不会因为突然断电而丢失文件系统中的核心数据,因而能够安全地管理文件目录。
[0038](3)文件系统目录区需要经常被改写,存储在可以无限次写入的MRAM中,降低了NAND的写入次数,延长系统的使用寿命。
[0039](4)文件系统目录区中采用不同长度的记录,能够有效提高存储空间的利用率。
[0040]以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
【附图说明】
[0041]图1是现有技术中文件操作流程图;
[0042]图2是本发明的一个实