一种数据存储的方法及装置的制作方法

文档序号:6332809阅读:252来源:国知局
专利名称:一种数据存储的方法及装置的制作方法
技术领域
本发明涉及计算机及嵌入式领域,特别是涉及数据存储的方法及装置。
背景技术
NAND型闪存(Nandflash)是闪存的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nandflash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、随身听记忆卡、体积小巧的U盘等。Nandflash以块为单位进行擦除操作。 闪存的写入操作必须在空白区域进行,如果目标区域已经有数据,必须先擦除后写入,因此擦除操作是闪存的基本操作。由于Nand-flash中存放的资料较多,结构相对复杂,出错的几率也相应增加,这样就会使程序和文件资源很容易遭到破坏。现有技术中Nandflash在出厂时会对其进行检测,根据块中错误比特(bit)的数量,将块分为好块和坏块。好块是指可以用于存储数据的块,坏块是指不能用于存储数据的块。用于区分好坏块的错误比特数量门限值,如果设得较小,则好块的数量会比较少,也就是可用的存储空间将非常小,相当一部分存储空间无法使用,影响存储空间的利用率。如果设得比较大,则在数据读写过程中会获得错误的数据,严重时将影响系统的运行。由于Nandflash在长时间的使用过程中,块中错误比特的数量会增加,为了防止对数据的影响,错误比特数量门限值都设得明显较低,影响存储空间的利用率。

发明内容
本发明实施例提供一种数据存储的方法及装置,用于提高存储空间的利用率。一种数据存储的方法,包括以下步骤接收存储数据的请求,并从该请求中获得需存储的数据;根据所述请求包括的需存储的数据的逻辑存储地址,及根据逻辑存储地址与等级的对应关系,确定需存储的数据的数据等级;数据等级是依据数据的容错能力设定的;将需存储的数据存储到与数据等级对应的存储块。一种用于数据存储的装置,包括接口模块,用于接收存储数据的请求,并从该请求中获得需存储的数据;处理模块,用于根据所述请求包括的需存储的数据的逻辑存储地址,及根据逻辑存储地址与等级的对应关系,确定需存储的数据的数据等级,并将需存储的数据存储到与数据等级对应的存储块;数据等级是依据数据的容错能力设定的;存储模块中的存储块用于存储数据。一种用于数据存储的装置,包括文件管理器,用于接收存储数据的请求,并从该请求中获得需存储的数据,以及根据所述请求包括的需存储的数据的逻辑存储地址,及根据逻辑存储地址与等级的对应关系,确定需存储的数据的数据等级;数据等级是依据数据的容错能力设定的;驱动器,用于将需存储的数据存储到与数据等级对应的存储块。本发明实施例将数据和存储块均分为多个等级,按照需存储的数据的逻辑地址查找相应的数据等级,再依据数据等级将数据存储到对应的存储块。根据数据的容错能力,不同数据等级的数据存储到不同的好块中。由于对数据和存储块进行了分级,并做相应的存储,则可根据数据的最大容错能力设置好块与坏块之间的门限值,而不是如现有技术中根据数据的容错均衡能力设置好块与坏块之间的门限值,则本实施例可以将好块与坏块之间的门限值设得高一些,可高于现有技术中常用的门限值,以提高存储块的利用率。并且,根据数据的容错能力,将不同的数据等级的数据存储到相应的存储块中,减少错误数据带来的影响。


图1为本发明实施例中数据存储的主要方法流程图;图2为本发明实施例中数据存储的详细方法流程图;图3为本发明实施例中文件管理器和驱动器实现数据存储的方法流程图;图4为本发明实施例中装置400的结构图;图5为本发明实施例中装置500的主要结构图;图6为本发明实施例中装置500的详细结构图。
具体实施例方式本发明实施例将数据和存储块均分为多个等级,按照需存储的数据的逻辑地址查找相应的数据等级,再依据数据等级将数据存储到对应的存储块。数据的数据等级至少包括两个,存储块要至少三个等级,存储块的一个存储等级对应坏块,至少两个存储等级对应好块。根据数据的容错能力,不同数据等级的数据存储到不同的好块中,这样可根据数据的最大容错能力设置好块与坏块之间的门限值,而不是根据数据的容错均衡能力设置好块与坏块之间的门限值,则本实施例可以将好块与坏块之间的门限值设得高一些,可高于现有技术中常用的门限值,以提高存储块的利用率。并且,根据数据的容错能力,将不同的数据等级的数据存储到相应的存储块中,减少错误数据带来的影响。参见图1,本实施例中数据存储的主要方法流程如下步骤101 接收存储数据的请求,并从该请求中获得需存储的数据。步骤102 根据所述请求包括的需存储的数据的逻辑存储地址,及根据逻辑存储地址与等级的对应关系,确定需存储的数据的数据等级。数据等级是依据数据的容错能力设定的。本实施例中数据包括系统数据(如操作系统和其它软件程序等)、文本数据(如短信和电话簿等)和多媒体数据(如图片、音乐和视频等)等。系统数据的容错能力最低,多媒体数据的容错能力最高。数据等级以3级为例,系统数据的数据等级为0,文本数据的数据等级为1,音视频数据的数据等级为2。步骤103 将需存储的数据存储到与等级对应的存储块。参见图2,本实施例中数据存储的详细方法流程如下步骤201 获得存储数据的请求。
步骤202 从该请求中获得需存储的数据。步骤203 根据所述请求包括的需存储的数据的逻辑存储地址,及根据逻辑存储地址与等级的对应关系,确定需存储数据的数据等级。在嵌入式系统中,不同类型的数据通常对应不同的文件夹,也就是对应不同的逻辑地址。对于用户自建的文件夹,虽然其中存的数据的实际类型可能不同,但从逻辑上可以认为是同一类型的数据。可为用户自建的文件夹默认配置一个数据等级,或者为用户提供接口,由用户选择一个数据等级。步骤204 确定与数据等级对应的存储等级。存储等级是依据存储块的错误比特数设定的;数据等级与存储等级一一对应,且容错能力最高的数据等级对应错误比特数范围次大的存储等级。步骤205 将需存储的数据存储到对应的存储等级所对应的存储块。较佳的,存储等级的设定还要依据存储块所采用的纠错算法的纠错能力。错误比特数范围次大与错误比特数范围最大之间的错误比特数界值不超过存储块所采用的纠错算法的纠正错误比特数的最大值。例如,纠错算法的纠正错误比特数的最大值为16比特, 考虑到nandflash在长期使用过程中存储块的错误比特数会增多,为了减少这种情况对数据的影响,可将错误比特数范围次大与错误比特数范围最大之间的错误比特数界值设为12 比特。错误比特数范围与存储等级的对应关系的一个实例如表1所示表 1
错误比特数范围t存储等级0 ^ t < 303<t<818 彡 t < 12212彡t3由于现有技术中只分好块和坏块,纠错算法的纠正错误比特数的最大值以16比特为例,其好块和坏块之间的门限值通常设为8比特。采用本实施例提供的方案,可设到 10-14比特,明显高于现有技术的8比特,提高了存储块的利用率。并且现有技术中将数据存储到好块中,且不做任何区分,存在将软件数据这种容错能力比较低的数据存储到错误数在6、7比特这样的存储块中,导致软件运行出错或无法运行。而本实施例将系统程序和软件数据这种容错能力比较低的数据存储到0存储等级的存储块,不超过2比特的错误数, 明显减少了对软件和系统运行的影响。将视音频这种容错能力比较高的数据存储到2存储等级的存储块,即使有几比特的数据未校验正确,也不会对系统造成影响,用户也很难察觉。一个数据等级与存储等级的对应关系的实例如表2所示表 权利要求
1.一种数据存储的方法,其特征在于,包括以下步骤接收存储数据的请求,并从该请求中获得需存储的数据;根据所述请求包括的需存储的数据的逻辑存储地址,及根据逻辑存储地址与等级的对应关系,确定需存储的数据的数据等级,数据等级是依据数据的容错能力设定的;将需存储的数据存储到与数据等级对应的存储块。
2.如权利要求1所述的方法,其特征在于,将需存储的数据存储到与所述数据等级对应的存储块的步骤包括确定与数据等级对应的存储等级;将需存储的数据存储到确定出的存储等级所对应的存储块。
3.如权利要求2所述的方法,其特征在于,存储等级是依据存储块的错误比特数设定的;数据等级与存储等级逐级一一对应,且容错能力最高的数据等级对应错误比特数范围次大的存储等级。
4.如权利要求3所述的方法,其特征在于,错误比特数范围次大与错误比特数范围最大之间的错误比特数界值不超过存储块所采用的纠错算法的纠正错误比特数的最大值。
5.如权利要求1至4中任一项所述的方法,其特征在于,还包括步骤对存储的数据进行校验,获得存储块中错误比特数,根据错误比特数判断是否需要调整该存储块对应的存储等级,在判断为是时,根据错误比特数调整该存储块对应的存储等级。
6.一种用于数据存储的装置,其特征在于,包括接口模块,用于接收存储数据的请求,并从该请求中获得需存储的数据;处理模块,用于根据所述请求包括的需存储的数据的逻辑存储地址,及根据逻辑存储地址与等级的对应关系,确定需存储的数据的数据等级,并将需存储的数据存储到与数据等级对应的存储块,数据等级是依据数据的容错能力设定的;存储模块中的存储块用于存储数据。
7.如权利要求6所述的装置,其特征在于,处理模块确定与数据等级对应的存储等级, 并将需存储的数据存储到确定出的存储等级所对应的存储块。
8.如权利要求7所述的装置,其特征在于,存储等级是依据存储块的错误比特数设定的;数据等级与存储等级逐级一一对应,且容错能力最高的数据等级对应错误比特数范围次大的存储等级。
9.如权利要求8所述的装置,其特征在于,错误比特数范围次大与错误比特数范围最大之间的错误比特数界值不超过存储块所采用的纠错算法的纠正错误比特数的最大值。
10.如权利要求6所述的装置,其特征在于,还包括控制模块,用于对存储的数据进行校验,获得存储块中错误比特数;处理模块还用于根据错误比特数判断是否需要调整该存储块对应的存储等级,在判断为是时,根据错误比特数调整该存储块对应的存储等级。
11.一种用于数据存储的装置,其特征在于,包括文件管理器,用于接收存储数据的请求,并从该请求中获得需存储的数据,以及根据所述请求包括的需存储的数据的逻辑存储地址,及根据逻辑存储地址与等级的对应关系,确定需存储的数据的数据等级,数据等级是依据数据的容错能力设定的;驱动器,用于将需存储的数据存储到与等级对应的存储块。
全文摘要
本发明公开了一种数据存储的方法,用于提高存储空间的利用率。所述方法包括获得存储数据的请求,并从该请求中获得需存储的数据;根据所述请求包括的需存储的数据的逻辑存储地址,及根据逻辑存储地址与等级的对应关系,确定需存储的数据的数据等级;数据等级是依据数据的容错能力设定的;将需存储的数据存储到与等级对应的存储块。本发明还公开了用于实现所述方法的装置。
文档编号G06F12/02GK102419734SQ20101029457
公开日2012年4月18日 申请日期2010年9月27日 优先权日2010年9月27日
发明者艾国 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1