一种移动终端的数据存储方法

文档序号:6559189阅读:131来源:国知局
专利名称:一种移动终端的数据存储方法
技术领域
本发明涉及数据存储技术,特别是涉及一种在移动终端中使用FLASH存 储器实现NvRam(Non Volatile RAM,非易失性存储器)非易失的数据存储方法。
背景技术
目前,移动通讯终端(手机)的使用已经非常普及,并且对终端(手机)的存 储要求也越来越高,在终端(手机)中的非易失性存储设备中不仅存放着终端运 行的软件,还必须存放手机相关配置数据、用户资源等重要信息。在移动终端 的研制过程中,为了节约成本、简化设计,大多使用FLASH存储器来存放相 关数据。 一种方法是采用文件系统,这个方法的优点是使用简单,但是文件系 统的稳定性难以保证。因此,需要提出一种在FLASH上实现NvRam的数据 存储方法。
在现有的相关专利,如专利(专利号为US2006026211,国际主分类为 G06F12/00)《Systems, methods, computer readable medium and apparatus for memory management using NvRam》中,这个专利提供在计算机系统中提供数 据存储的完整性和效率的方法。它在系统中采用两种存储介质FLASH和 NvRam,利用NvRam作为Cache(高速缓冲存储器)的功能,缓存最近的数据, 避免FLASH频繁被擦写的问题,提高了效率和FLASH的使用寿命。这种方 法虽然也是存储的方法,但实现方式与本发明完全不一样,本发明是用一种存 储介质FLASH实现NvRam和FLASH的功能。

发明内容
本发明所要解决的技术问题在于提供一种移动终端的数据存储方法,用于 提高数据存储效率和存储稳定性。
为了实现上述目的,本发明提供了一种移动终端的数据存储方法,其特征
在于,包括
步骤--,从所述移动终端的FLASH划分出N个BLOCK用作虚拟非易失 性存储器,进行虚拟BLOCK到物理BLOCK的映射,并对虚拟非易失性存储 器进行存储空间配置和初始化,N为大于等于2的自然数;
步骤二,由所述虚拟非易失性存储器根据接收的操作指令的类型执行相应 的操作;
当所述操作指令的类型为读条目时,则根据条目分配的初始位置找到读条 目的位置,进行读条目操作;
当所述操作指令的类型为写条目时,则根据条目分配的初始位置找到写条 目的位置,进行写条目操作;
当所述操作指令的类型为BLOCK整理时,则检测虚拟BLOCK的预留条 目并当该虚拟BLOCK的预留条目少于一设定的阀值时,对该虚拟BLOCK进 行BLOCK整理操作。所述的移动终端的数据存储方法,其中,所述所述BLOCK又分为数据 BLOCK、备份BLOCK,所述数据BLOCK用于存储数据,所述备份BLOCK
用于进行磁盘整理时备份数据。
所述的移动终端的数据存储方法,其中,所述数据BLOCK为N-1,所述 备份BLOCK为一个。
所述的移动终端的数据存储方法,其中,所述每个物理BLOCK中的信息 包括与该物理BLOCK对应的虚拟BLOCK的编号、是否可使用的表示以及 与该物理BLOCK对应的虚拟BLOCK的可用条目和预留的条目数量。
所述的移动终端的数据存储方法,其中,所述每个虚拟BLOCK中设有一 用于标记对应虚拟BLOCK的信息和状态的BLOCK Info参数。
所述的移动终端的数据存储方法,其中,所述每个条目中设有一用于存储 对应条目的信息的信息头。
所述的移动终端的数据存储方法,其中,所述读条目操作的步骤具体为
根据该条目分配的初始位置确定该条目所在的虚拟BLOCK,由该条目所 在的初始位置获得该条目所在的虚拟BLOCK的状态信息以及该条目的状态 和标志信息,再根据所述信息寻找到最终读条目的位置,进行读操作。
所述的移动终端的数据存储方法,其中,所述写条目操作的歩骤具体为
根据该条目分配的初始位置确定该条目所在的虚拟BLOCK,由该条目所 在的初始位置获得该条目所在的虚拟BLOCK的状态信息以及该条目的状态 和标志信息,再根据所述信息链接到最终写条目的位置,进行写操作。
所述的移动终端的数据存储方法,其中,所述步骤二中,还包括一由所述 虚拟非易失性存储器判断是否有操作指令到来的步骤。
所述的移动终端的数据存储方法,其中,所述步骤二中,还包括一由所述 虚拟非易失性存储器对操作指令的类型进行判断的步骤。
采用本发明方法提高了数据存储效率和存储安全性,具体在于
1) 采用条目预留的机制,提高访问特别是改写一条记录时的效率;
2) 对数据采用半静态的管理,增强数据管理的透明度和稳定性。 以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1为本发明虚拟NvRam的总体流程示意图2为本发明读一条条目的流程示意图3为本发明写一条条目的流程示意图4为本发明整理FLASH的BLOCK空间的流程示意图。
具体实施例方式
如图1所示,为对虚拟NvRam操作的总体流程示意图。该虚拟NvRam 的总体流程,包括虚拟NvRam的管理、读写条目/记录和BLOCK整理操作。 具体包括如下步骤
步骤IOI,首先系统上电之后要对虚拟NvRam进行初始化和配置,即对 存储空间的划分和管理以及相关信息的配置。具体地,根据产品的需要将 FLASH划分出N个BLOCK作为NvRam使用,进行虚拟/逻辑BLOCK到物 理BLOCK的映射,N值大于等于2。对虚拟NvRam进行存储空间配置和初 始化,虚拟-个NvRam的设备。本发明将存储空间分三级管理。
第一级管理,是虚拟NvRam对物理的FLASH的BLOCK的映射。BLOCK 是FLASH的最小操作单位,也就是擦除时必须整块擦除。所以分配给虚拟
NvRam的空间采用整个BLOCK空间,即采用N个BLOCK给虚拟NvRam使 用,其中N-1个BLOCK作为存储数据所用,该N-l个BLOCK又称为数据 BLOCK, —个BLOCK作为磁盘整理时备份所用,该BLOCK又称为备份 BLOCK或BAK BLOCK,这样逻辑上的N-l个数据BLOCK和一个BAK BLOCK与N个物理的BLOCK有一个动态的映射关系。对BLOCK的物理信 息、存储信息以及当前的状态进行管理。在每个物理BLOCK中包括对应的逻 辑BLOCK的编号LBN、是否可使用的标识IUF(Is Used Flag)、该BLOCK的 可用条目和预留的条目数量。另外对于每个条目(例如第几条短消息,第几条 电话本)的初始位置都映射到逻辑BLOCK的固定位置。
其中,IUF用于表示当前BLOCK是否可用,如果正在进行磁盘整理时, 则BLOCK就无法使用;逻辑BLOCK的固定位置指初始化时已经分配好了该 BLOCK的固定位置。
第二级管理,是BLOCK管理,在每个BLOCK都有一个BLOCK Info来 标记该BLOCK的信息和状态。BLOCK Info中包含下面状态和信息BLOCK IS—USED(该BLOCK是否可用,当磁盘清理结束后会置此位),BLOCK CLEANING(表示BLOCK正在清理中),ITEM—SIZE(条H的最大尺寸), ITEM—NUM(在此BLOCK中最多可存放的条目数),RESEVED ITEM—NUM(预 留共享的条目数),the RECORD IS—USED(初始的每条记录的使用情况),the reserved BLOCK IS—USED(预留的每条记录的使用情况)。
第三级管理,是对条目信息的管理,每个条目都有一个信息头用于存储该 条目的相关信息,包含ISJJSED(此条记录的空间是否被使用),PRE—ITEM(记 录前面的转移的记录),CHANGE—ITEM(该记录的位置已经被写过,转移到下 面的位置),SELF—COMPLETE(数据写入完成,即表示该条目写入是完整的)。
步骤102,当对虚拟NvRam初始化配置完成之后,等待接收相应的操作 指令,判断是否有操作指令,如果没有新的操作指令,则继续进行,执行步骤 102;如果有新的操作指令到来,则执行步骤103;
步骤103,进一步判断操作指令的类型,根据操作指令的类型执行相应的 操作。当操作指令的类型为读条目时,进行读一条条目的操作;当操作指令的 类型为写条目时,进行写一条条目的操作;当操作指令的类型为BLOCK整理 时,进行BLOCK整理的操作;执行完成之后转入步骤102,继续等待新的操
作指令到来。更具体地
当执行目标条目的读操作时,根据每个条目分配的初始位置来确定其在某
个逻辑BLOCK的某个条目,根据条目所在初始位置查看所在BLOCK的状态, 以及相关条目的状态和标志,寻找到最终所读的位置(最终条目的存储位置), 进行读操作。
当执行目标条目的写操作时,根据每个条目分配的初始位置来确定其在某 个逻辑BLOCK的某个条目,根据条目所在初始位置査看所在BLOCK的状态, 以及相关条目的状态和标志,判断是初写还是改写,根据条目的各种标志链接 到最终写条目的位置,进行写操作。
当系统检测到某个BLOCK的预留条目少于一定的阀值时,也就是当又有 新的数据条目需要改写时,又没有太多空间可用的时候,将对该BLOCK进行 整理。在BLOCK整理的过程中,需要做相关的备份,保证被整理数据的安全 性。
图1中,条目表示存储的一条记录,例如一条短消息、 一条电话本记录; 故条目也称为记录;
目标条目/记录表示要对其操作(读、写等)的条目/记录;
条目/记录序号表示每个条目/记录的索弓1;
条目/记录的初始位置表示每个条目/记录最初的映射位置;
逻辑BLOCK表示一个以BLOCK大小(例如128K)的存储单元,它实际的 存储物理地址是随着物理地址变化而变化的,但其存储的内容是固定的。
如图2所示,为本发明读一条条目的流程示意图。该流程具体包括如下步

步骤201,首先通过査找条目映射表的方法找到该条记录初始存储的位 置,即该条记录所在FLASH的BLOCK和条目序号;其中,条目映射表是每 个条目(记录)初始位置的映射表;
步骤202,判断所在FLASH的BLOCK当前是否可用,如果系统在进行 磁盘整理,这时该BLOCK是不可用的;如果当前可用,则执行203;否则, 执行步骤204;
步骤203,读取该记录初始位置的相关的信息,査找记录的初始位置,并 判断记录的初始位置的1S一USED标志位是否被置过,如果没有置过,说明此
条记录没有被写,条H为空,返回,执行歩骤208;如果被置过,说明此条记 录被写了,执行步骤205;
歩骤204,线程挂起,进行等待,并进一步判断是否获得/信号量,如果 获得,则执行歩骤203;否则挂起线程,继续等待;
步骤205,判断CHANGEJTEM标志位是否被置位,如果没有置位,说 明此记录没有新的链接,执行步骤207;否则,说明此条目已被改写,到新的 位置,执行步骤206;
步骤206,根据CHANGE」TEM标志位査找链接的下一个记录C下一个的 位置),判断该记录的CHANGE一ITEM标志位是否置位,如果置位,继续査找, 一直找到CHANGE—ITEM标志位没有置位,否则,执行步骤207;
步骤207,从最新的条目位置读取相应的数据;
步骤208,结束。
如图3所示,为本发明写一条条目的流程示意图。该流程具体包括如下步

步骤301,根据条目映射表査找出条目所在的FLASH的BLOCK和初始
记录序号;
步骤302,判断初始记录序号的记录信息IS一USED标志位是否被置位, 如果没有被置,说明不需要链接其他位置,则执行步骤305;如果IS_USED 标志位被置,则执行303;
步骤303,根据CHANGEJTEM标志位链接的记录位置,检査 CHANGEJTEM标志位是否被置,如果被置,继续查找,直到查到没有 CHANGEJTEM标志位,如果没有被置,则执行步骤304。
步骤304,从该BLOCK的预留的记录空间中査找一条可用的空间位置; 査出可用的记录。
步骤305,写IS一USED标志位;
歩骤306,将数据写到数据区内;
步骤307,如果需要,写PREJTEM标志位;
步骤308,如果需要,写CHANGE—ITEM标志位;
步骤309,写SELF—COMPLETE标志位,表示该条目已写完。
请参阅图4所示,为本发明整理FLASH的BLOCK空间的整理流程示意
图。该流程具体包括如卜步骤
步骤401、根据监测线程判断该BLOCK预留的条目(可用的预留记录)是
否小于最小阀值,如果小于最小阀值,则执行歩骤402;否则继续监测;
步骤402,准备进入磁盘整理状态,判断备用的BLOCK目前是否可用, 如果可用,则执行403,否则执行步骤404;
步骤403,将FLASH的BLOCK的数据备份到FLASH的BLOCK缓冲区 中(内存),继续步骤405;
步骤404,等待备用的BLOCK达到可用状态,转入步骤402;
步骤405,整理数据,将预留的数据回到初始位置,并对相关的信息区和 标志重新改写;
步骤406,将整理后的数据写到BAK BLOCK(或称BAK FLASH)中,并 重新映射逻辑BLOCK,标记相应的逻辑BLOCK号;
步骤407,擦除原来的FLASH(原整个BLOCK的内容),并标记逻辑 BLOCK为BAK BLOCK,即将该逻辑BLOCK映射为BAR BLOCK;
步骤408,清除缓冲区。
图4中,逻辑的BLOCK到FLASH的物理BLOCK的动态映射;每个 BLOCK的除了分配原始的条目外,还预留一定条目数用于改写时所用,其条 目的最新位置是由链表索引到的,链表的管理是关键。
本发明方法是一种简洁实用的NvRam的存储方法,通过采用条目预留的 机制,使得在访问特别是改写一条记录时效率得以提高;对数据采用半静态方 式进行管理,增强了数据管理的透明度。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情 况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但 这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1、一种移动终端的数据存储方法,其特征在于,包括步骤一,从所述移动终端的FLASH划分出N个BLOCK用作虚拟非易失性存储器,进行虚拟BLOCK到物理BLOCK的映射,并对虚拟非易失性存储器进行存储空间配置和初始化,N为大于等于2的自然数;步骤二,由所述虚拟非易失性存储器根据接收的操作指令的类型执行相应的操作;当所述操作指令的类型为读条目时,则根据条目分配的初始位置找到读条目的位置,进行读条目操作;当所述操作指令的类型为写条目时,则根据条目分配的初始位置找到写条目的位置,进行写条目操作;当所述操作指令的类型为BLOCK整理时,则检测虚拟BLOCK的预留条目并当该虚拟BLOCK的预留条目少于一设定的阀值时,对该虚拟BLOCK进行BLOCK整理操作。
2、 根据权利要求1所述的移动终端的数据存储方法,其特征在于,所述 所述BLOCK又分为数据BLOCK、备份BLOCK,所述数据BLOCK用于存 储数据,所述备份BLOCK用于进行磁盘整理时备份数据。
3、 根据权利要求2所述的移动终端的数据存储方法,其特征在于,所述 数据BLOCK为N-l,所述备份BLOCK为一个。
4、 根据权利要求1、 2或3所述的移动终端的数据存储方法,其特征在于, 所述每个物理BLOCK中的信息包括与该物理BLOCK对应的虚拟BLOCK 的编号、是否可使用的表示以及与该物理BLOCK对应的虚拟BLOCK的可用 条目和预留的条目数量。
5、 根据权利要求1、 2或3所述的移动终端的数据存储方法,其特征在于, 所述每个虚拟BLOCK中设有一用于标记对应虚拟BLOCK的信息和状态的 BLOCK Info参数。
6、 根据权利要求1、 2或3所述的移动终端的数据存储方法,其特征在于, 所述每个条目中设有』用于存储对应条目的信息的信息头。
7、 根据权利要求1、 2或3所述的移动终端的数据存储方法,其特征在于, 所述读条目操作的歩骤具体为根据该条目分配的初始位置确定该条目所在的虚拟BLOCK,由该条目所 在的初始位置获得该条H所在的虚拟BLOCK的状态信息以及该条目的状态 和标志信息,再根据所述信息寻找到最终读条目的位置,进行读操作。
8、 根据权利要求1、 2或3所述的移动终端的数据存储方法,其特征在于, 所述写条目操作的步骤具体为根据该条目分配的初始位置确定该条目所在的虚拟BLOCK,由该条目所 在的初始位置获得该条目所在的虚拟BLOCK的状态信息以及该条目的状态 和标志信息,再根据所述信息链接到最终写条目的位置,进行写操作。
9、 根据权利要求1、 2或3所述的移动终端的数据存储方法,其特征在于, 所述歩骤二中,还包括一由所述虚拟非易失性存储器判断是否有操作指令到来 的步骤。
10、 根据权利要求l、 2或3所述的移动终端的数据存储方法,其特征在 于,所述步骤二中,还包括一由所述虚拟非易失性存储器对操作指令的类型进 行判断的步骤。
全文摘要
本发明公开了一种移动终端的数据存储方法,包括步骤一,从FLASH划分出N个BLOCK用作虚拟NvRam,进行虚拟BLOCK到物理BLOCK的映射,并对虚拟NvRam进行存储空间配置和初始化,N为大于等于2的自然数;步骤二,由虚拟NvRam根据接收操作指令的类型执行相应操作;当类型为读条目时,则根据条目分配的初始位置找到读条目的位置,进行读条目操作;当类型为写条目时,则根据条目分配的初始位置找到写条目的位置,进行写条目操作;当类型为BLOCK整理时,则检测虚拟BLOCK的预留条目并当该虚拟BLOCK的预留条目少于一设定的阀值时,进行BLOCK整理操作。采用本发明提高了数据存储效率和存储稳定性。
文档编号H04M1/2745GK101115246SQ200610088909
公开日2008年1月30日 申请日期2006年7月25日 优先权日2006年7月25日
发明者川 叶, 苏绣江, 郑小红 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1