利用mram作为编辑缓存区的存储系统及编辑缓存方法

文档序号:9865131阅读:580来源:国知局
利用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]编辑一个大文件引起的计算、存储量可以很大。假设一个NAND的page 16KB,每个block有512个page共8192KB。一个IMB文件将存储在63个Page中。如果用户开始编辑,在文件接近开头的部分增加一个标点符号,当他选择保存文件时,后面所有的文字和数据都要错位,所有63个page都需要被重写。
[0012]更糟糕的是,文件的63个page在存储空间一般不是连续存储的。可能会存储在20个不同的block中(这还不是最极端的情况)。插入一个标点符号的结果,导致20个block最终会被擦除,一个16MB的数据被重新写过。而用户担心丢失宝贵的工作成果,会不断地为小的修改选择Ctrl-S进行保存。这样的动作,造成了大量的NAND擦写,缩短了计算机内固态硬盘的寿命。也带来系统的额外的负担。
[0013]本领域技术人员致力于提供一种存储系统,能够在用户保存文件时减少NAND擦写,延长系统的使用寿命,减小系统的存储负荷。

【发明内容】

[0014]有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种存储系统,能够在用户保存文件时减少NAND擦写,延长系统的使用寿命,也减小系统的存储负荷。
[0015]本发明的重要背景是MRAM技术的发展。MRAM是一种新的内存和存储技术,可以像RAM 一样快速随机读写,还可以像NAND闪存一样在断电后永久保留数据。不像NAND,MRAM可以无限多次地擦写。但预计未来相当长一段时间内,MRAM的容量比NAND低,成本比NAND尚O
[0016]本发明中,利用MRAM是一种随机读写非易失的存储器,并且它还可以无限次地擦写。使用MRAM的一部分空间作为文件编辑的缓存,降低NAND的擦写次数,延长其使用寿命,也减小系统的存储负荷。
[0017]本发明提供一种利用MRAM作为编辑缓存区的存储系统,包括MRAM与块存储设备,MRAM包括编辑缓存区,用于缓存文件编辑内容,块存储设备用于存储文件数据。
[0018]使用MRAM的一部分空间作为文件编辑的缓存,在用户保存文件时,只更新MRAM中的编辑缓存区,并不擦写NAND闪存,因而能够延长系统的使用寿命,也减小系统的存储负荷。
[0019]本发明还提供一种使用本发明的的利用MRAM作为编辑缓存区的存储系统的编辑缓存方法,包括以下步骤:
[0020](I)应用程序为其所编辑的文件,向操作系统申请编辑缓存区中的一块空间作为文件的编辑缓存;
[0021](2)当应用程序的用户选择保存文件时,应用程序按顺序把编辑记录保存在文件的编辑缓存内;
[0022](3)当文件的编辑缓存中的数据量大于或等于第一设定值,清理文件的编辑缓存区;如果编辑缓存区的空闲区小于等于第二设定值,按照设定规则选择文件的编辑缓存,清理文件的编辑缓存。
[0023]本发明提供的利用MRAM作为编辑缓存区的存储系统,在收到保存文件指令,并不擦写NAND闪存,而是将文件编辑内容以插入记录和/或删除记录缓存到MRAM中的编辑缓存区,因而能够延长系统的使用寿命,也减小系统的存储负荷。
[0024]这里设定规则可以根据实际情况选定,例如选择最后一条插入或删除指令的时间最早,或者插入或删除指令数量最多等。
[0025]进一步地,步骤(2)中编辑记录包括插入记录和删除记录,插入记录包括插入位置、插入内容以及插入内容的长度,删除记录包括删除起始位置以及删除内容的长度。
[0026]进一步地,步骤(3)中清理文件的编辑缓存包括以下步骤:
[0027](31)应用程序打开文件;
[0028](32)按顺序执行文件的编辑缓存中的记录;
[0029](33)将文件保存在块存储设备中;
[0030](34)释放文件的编辑缓存。
[0031]本发明还提供一种使用本发明的利用MRAM作为编辑缓存区的存储系统的编辑缓存方法,文件系统增加编辑接口,包括以下步骤:
[0032](I)当应用程序的用户选择保存文件时,应用程序调用文件系统的编辑接口,把编辑记录保存在文件的编辑缓存内;如果文件没有编辑缓存,文件系统向操作系统申请编辑缓存区中的一块空间作为文件的编辑缓存;
[0033](2)当文件的编辑缓存中的数据量大于或等于第一设定值,文件系统清理文件的编辑缓存。
[0034]进一步地,步骤(I)中编辑接口包括插入编辑接口和删除编辑接口,插入编辑接口包括插入位置、插入内容以及插入内容的长度,删除编辑接口包括删除起始位置以及删除内容的长度。
[0035]进一步地,步骤(2)中清理文件的编辑缓存包括以下步骤:
[0036](21)文件系统打开文件;
[0037](22)按顺序执行文件的编辑缓存中的编辑记录;
[0038](23)将文件保存在块存储设备中;
[0039](24)释放文件的编辑缓存。
[0040]进一步地,文件系统收到读文件指令,打开文件,按顺序执行文件的编辑缓存中的编辑记录,然后执行读文件指令。
[0041]—个应用程序使用编辑接口编辑了文件,另一个应用打开这这个文件,按常规的接口进行读操作,此时文件系统把已经储存在编辑缓存中的修改内容反应出来,保证读到的文件是已更新的文件。
[0042]进一步地,文件系统收到写文件指令,打开文件,按顺序执行文件的编辑缓存中的编辑记录,将文件保存在块存储设备中,释放文件的编辑缓存。
[0043]—个应用程序使用编辑接口编辑了文件,另一个应用打开这这个文件,按常规的接口进行写操作,此时文件系统把已经储存在编辑缓存中的修改内容反应出来,保证写操作是在已更新的文件上进行。
[0044]与现有技术相比,本发明提供的利用MRAM作为编辑缓存区的存储系统及编辑缓存方法具有以下有益效果:
[0045]利用MRAM作为编辑缓存区,在用户保存文件时,只更新MRAM中的编辑缓存区,并不擦写NAND闪存,因而能够延长系统的使用寿命,也减小系统的存储负荷,同时清理编辑缓存时,文件系统可以利用保持整个文件的机会,减小该文件的碎片化。把它尽量保存在一系列连续的页,而不是分散到不同的块中。
[0046]以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
【附图说明】
[0047]图1是现有技术中文件操作流程图;
[0048]图2是本发明的一个实施例的利用MRAM作为编辑缓存区的存储系统的示意图;
[0049]图3是本发明的另一个实施例的利用MRAM作为编辑缓存区的存储系统的示意图;
[0050]图4是本发明的又一个实施例的利用MRAM作为编辑缓存区的存储系统的示意图。
【具体实施方式】
[0051]如图
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1