一种闪存擦写方法及闪存存储器的制作方法

文档序号:6576345阅读:207来源:国知局
专利名称:一种闪存擦写方法及闪存存储器的制作方法
技术领域
本发明涉及一种闪存技术,尤其涉及一种闪存擦写方法及闪存存储器。
背景技术
Flash Memory技术,即闪存技术,广泛应用于现代生活中。现在人们常用的电器和 一些电子设备,例如电视机、电脑、数码照相机、手机、优盘、移动硬盘等都运用到了闪存技 术。闪存技术运用的载体是闪存存储器。闪存存储器一般用于存储程序代码和不需要 频繁擦除更新的数据。一般来说,闪存存储器的容量较大,但是使用寿命短(可擦写10万 次)、擦写速度慢(擦写速度约为64K/S)。为了优化闪存存储器,人们对闪存存储器进行了 仿真E2P的技术处理。而E2P存储器使用寿命长(可擦写100万次),擦写速度快(擦写速 度为几十毫秒级别),但其容量较小。因此,人们采用对闪存存储器进行仿真E2P的技术处 理,以取得结合二者优点的效果。现有技术一般是在闪存存储器中确立某个区为Flash仿真E2P区,从该Flash仿 真E2P区中再建立一个信息存储空间,并在虚拟内存中建立一个和信息存储空间一样大小 的内存映像区。在进行擦写操作时,须将Flash仿真E2P区的数据全部擦除,才能再次重新 写入。频繁的擦写降低闪存存储器的使用寿命,对整个Flash仿真E2P区的擦除降低了擦 除效率,且由于擦写区域过大造成擦写时间过长,降低了闪存器工作稳定性和安全性。

发明内容
本发明实施提供了一种闪存擦写方法以及闪存存储器,可以通过一次擦除,进行 多次快速的写入。本发明实施例提供了一种闪存擦写方法,包括建立基础信息区,存储初始数据;建立内存映像区,在虚拟内存中存储修要修改的数据;建立日志区,对内存映像区修改数据的操作进行记录,将记录以日志形式保存,并 拷贝修改的数据内容。相应的,本发明实施例还提供了一种闪存存储器,包括基础信息模块,用于存储初始数据;内存映像模块,用于在虚拟内存中存储需要修改的数据;日志模块,用于对内存映像模块修改数据的操作进行记录,同时拷贝所述修改的 数据内容。实施本发明,具有如下有益效果通过建立对擦除数据进行记录的日志区,可以通过一次擦除,进行多次的写入,降 低设备的损耗,延长设备的使用寿命,保证了设备工作时的稳定性和安全性,提高了设备工 作的效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。图1本发明提供的闪存擦写方法第一实施例的流程示意图;图2本发明提供的闪存擦写方法第二实施例的流程示意图;图3是本发明实施例提供的闪存擦写方法中基础信息区和日志区建立的流程示 意图;图4是本发明实施例提供的闪存存储器初始化时基础信息区建立的流程示意图;图5发明实施例提供的闪存存储器的结构组成示意图。
具体实施例方式本发明实施提供了一种Flash (闪存)擦写方法和Flash存储器,通过对Flash存 储器的一次擦除,可以做到多次快速的写入。参见图1,是本发明提供的Flash擦写方法的第一实施例。如图所示101,建立基础信息区,存储初始数据。Flash存储器在确定Flash仿真E2P区所需 的大小之后,会根据Flash仿真E2P区所需大小来建立一个基础信息区。基础信息区是存 储整个Flash仿真E2P区初始数据的区域。102,建立内存映像区,在虚拟内存中存储需要修改的数据。为避免直接在基础信 息区进行擦写而修改数据,在没有进行擦除、写入等修改操作之前,Flash存储器在虚拟内 存中建立的内存映像区存储和基础信息区相同的初始数据。当需要进行修改数据的操作 时,就在内存映像区直接对初始数据进行修改,进行擦除写入等操作。103,建立日志区,记录内存映像区修改数据的操作,拷贝修改的数据内容。具体 的,日志区记录下每次内存映像区修改的数据的偏移位置和长度,同时拷贝修改数据的内 容。由于日志区已经对之前所有的操作有记录,通过记录可以获知内存映像区已被修改的 数据区域,下一次修改数据的过程中,无需对整个内存映像区进行擦除以后再写入,在内存 映像区找到相应的数据区域的数据进行擦除再写入即可。实施本发明提供的第一实施例,通过建立对擦除数据进行记录的日志区,可以通 过一次擦除,进行多次的写入,降低设备的损耗,延长设备的使用寿命,保证了设备工作时 数据的稳定性和安全性,提高了设备工作的效率。参见图2,是本发明提供的Flash擦写方法的第二实施例。如图所示201,修改内存映像区的数据。内存映像区是在虚拟内存中为数据的修改而建立的 数据区,当设备工作时,直接在内存映像区进行数据的修改,即进行数据的擦除、写入等操 作。例如为电视机配备的机顶盒,用户当前观看的节目序号、各节目的音量和声道等信息在 机顶盒的Flash存储器的内存映像区具有备份。当用户调节节目的音量时,将电视节目1 的音量调大,对应的,Flash存储器修改内存映像区关于节目音量的数据,使得机顶盒将电 视节目1的音量调大。
202,记录内存映像区修改数据的操作。Flash存储器的日志区记录内存映像区修 改数据的操作,例如,擦除数据、写入数据,具体的记录被修改数据的偏移位置和长度。例 如,承接上例,用户调节电视节目的音量,将电视节目1的音量调节的更大一点。对应的,是 机顶盒的Flash存储器在原本电视节目1的音量数据a中写入增加的数据,变为音量数据 b。此时,Flash存储器的日志区记录下数据a偏移的位置和数据a的长度,并拷贝下数据a 的内容。203,将具体记录的操作内容组织成一个新的记录信息。具体的Flash存储器的日 志区将记录的数据的偏移位置和数据的长度等内容组织成一个新的记录信息。承接上例, Flash存储器的日志区将电视节目1的音量数据a的偏移位置和数据a的长度等信息组织 成一条新的记录。204,获取日志区的当前可写入位置和剩余空间大小的信息。Flash存储器根据之 前已经写入到日志区的记录和日志区存储空间的大小,来获知日志区的当前可写入位置和 剩余空间大小的信息。承接上例,用户在收看电视节目时,每一次更换电视节目、调节音量 等操作的记录,都会写入日志区,这些记录在日志区都有各自存储的位置,这些操作所修改 的数据内容也对应的存储在日志区。假设日志区可以写入的位置有3000个,日志区存储空 间为64K,之前的所有写入的记录占用了 1000个位置,之前所有拷贝的修改的数据内容为 30K,那么可以获知,日志区可以写入的位置还有2000个,剩余空间大小为34K。205,判断日志区是否有足够空间存储本次记录信息。在获取日志区的当前可写入 位置和剩余空间大小的信息后,本次记录信息是否能够写入,Flash存储器可以做出判断。206a,若日志区没有足够的空间存储记录信息,建立新的基础信息区和日志区。具 体的,例如,日志区可以写入的位置为3000个,日志区的存储空间为64K,之前所有写入的 记录为3000,之前所有拷贝的修改的数据内容为63. 9K,那么日志区没有可以写入的位置。 此时,Flash存储器会将已满的日志区擦除清空,重建一个新的日志区和基础信息区,以写 入本次记录。在这里,重建一个新的基础信息区,是将原来基础信息区擦除完毕,然后把当 前内存映像区的数据写入基础信息区,将当前内存映像区写入基础信息区的数据作为初始 数据。206b,若日志区有足够的空间存储记录信息,写入本次操作的记录信息。假设日志 区可以写入的位置有3000个,日志区存储空间为64K,之前的所有写入的记录占用了 1000 个位置,之前所以拷贝的修改的数据内容为30K,那么可以获知,日志区可以写入的位置还 有2000个,剩余存储空间大小为34K。本次记录信息只需占用1个位置,本次操作记录所拷 贝的修改的数据大小为10个字节,那么可以得知,日志区还有足够的存储空间写入本次操 作的记录。Flash存储器在日志区直接写入本次操作的记录信息。207,修改日志区当前可写入位置和剩余存储空间大小。在本次对内存映像区修改 数据的记录写入日志区后,日志区可写入位置和剩余存储空间已发生变化,需要修改日志 区可写入位置和剩余存储空间的信息,以明确目前日志区的可写入位置和剩余存储空间。 承接上例,例如原日志区可写入位置为2000,剩余存储空间大小为34K,本次操作记录拷贝 的修改数据内容大小为10个字节,那么修改后的日志区可写入位置为1999,剩余存储空间 大小为39. 98K。为进一步的提高日志区和基础信息区在重建过程中的数据安全性,可以在最初建立第一个Flash仿真E2P区的时候,建立一个额外的Flash仿真E2P区,建立双倍份的Flash 仿真E2P区。在上述步骤完成基础之上,还可将内存映像区修改数据的记录写入第二Flash 仿真E2P区的日志区,进一步的提高数据的安全性。实施本发明提供的第二实施例,通过建立对擦除数据进行记录的日志区,可以通 过一次擦除,进行多次的写入,降低设备的损耗,延长设备的使用寿命,保证了设备工作时 数据的稳定性和安全性,提高了设备工作的效率。参见图3,是本发明实施例提供的Flash擦写方法中基础信息区和日志区建立的 流程示意图。具体的301,擦除Flash仿真E2P区的整个区。Flash仿真E2P区是硬件区,包括基础信息 区和日志区,擦除整个Flash仿真E2P区,也就是擦除基础信息区和日志区。302,确定Flash仿真E2P仿真区最前标志位。Flash仿真E2P区是在Flash存储 器中划分的区域,确定Flash仿真E2P区最前标志位是为了确定Flash仿真E2P区范围的 起始位置。303,将内存映像区的数据写入基础信息区。Flash仿真E2P区中,对数据擦写的 操作都发生在内存映像区,将内存映像区的数据写入基础信息区,这样基础信息区就有了 还没有修改的初始数据。结合基础信息区的初始数据和日志区对内存映像区修改数据的记 录,可以明确整个Flash仿真E2P的数据变化状况。304,写入当前的日志记录。将当前的日志记录写入日志区。305,确定Flash仿真E2P区最后标志位。确定Flash仿真E2P区的最后标志位是 为了确定Flash仿真E2P区范围的终止位置。306,初始化日志区,确定日志区可写入位置和剩余存储空间的大小。若建立了备份的Flash仿真E2P区,可以在上述步骤完成后的基础上,重复相同步 骤,建立第二个基础信息区和第二个日志区。实施本发明实施例提供的建立基础信息区和日志区的方法,通过建立对擦除数据 进行记录的日志区,可以通过一次擦除,进行多次的写入,降低设备的损耗,延长设备的使 用寿命,保证了设备工作时数据的稳定性和安全性,提高了设备工作的效率。参见图4,是本发明实施例提供的Flash存储器初始化时基础信息区建立的流程 示意图。具体的401,申请建立内存映像区。402,确立基础信息区的最前标识和最后标识。若建立了第二 Flash仿真E2P区 (备份Flash仿真E2P区),即建立了第二基础信息区(即备份基础信息区)和第二日志区, 则两个基础信息区的最前标识和最后标识要确立。403,判断基础信息区的最前标识和最后标识是否都有效。若有效,则转至步骤 407 ;若无效,则转至步骤404。404,确定备份基础信息区的最前标识和最后标识。405,判断备份基础信息区的最前标识和最后标识是否都有效。若有效,则转至步 骤406 ;若无效,则转至步骤409a。406,若判断备份基础信息区的最前标识和最后标识都有效,则将备份Flash仿真 E2P区的内容恢复至和第二 Flash仿真E2P区一样。
407,若基础信息区的最前标识和最后标识都有效,将第一 Flash仿真E2P区的基 础信息区的数据写入内存映像区。408,获得基础信息区的日志版本号。409a,若判断备份基础信息区的最前标识和最后标识不是都有效,默认Flash存 储器从未启用,开始初始化内存映像区。409b,上接步骤408,将日志版本号大于基础信息区的日志版本号的日志信息,更 新至内存映像区。410,调用基础信息区和日志区建立流程。上述步骤仅在Flash存储器开机的时候 操作一次,在上述步骤完成以后,进行步骤410的操作。实施本发明实施例提供的建立基础信息区的方法,可在Flash存储器初始化的时 候建立两个Flash仿真E2P区,提高数据操作的安全性和稳定性,延长Flash存储器的使用
寿命ο参见图5,是本发明实施例提供的Flash存储器的结构组成示意图。具体的包括基础信息模块1,用于存储Flash存储器中的需要修改的数据。需要修改的数据 是指会在Flash存储器中被擦除、或写入的数据。例如电视机的机顶盒所存储的电视节目 的序号、音量、声道等数据。当用户更换电视节目的时候,或者调节音量和声道的时候,对应 的,就是Flash存储器修改有关电视节目的序号、音量和声道的数据。内存映像模块2,用于在虚拟内存存储和基础信息模块相同的数据。基础信息模 块1是硬件区域的模块,直接在硬件区域进行数据的擦除、写入,容易缩短Flash存储器的 寿命,并且容易导致数据不安全状况的出现。内存映像模块2存储和基础信息模块1相同 的数据,就是为在虚拟内存中对这些数据进行修改。承接上例,例如用户收看电视节目,命 令机顶盒将电视节目1的音量调大,对应的,机顶盒的Flash存储器会在内存映像模块2处 将电视节目1的音量数据增加,也就是写入新的数据以增大原有的音量数据。日志模块3,用于对内存映像模块2修改数据的操作进行记录,同时拷贝所述修改 的数据内容。日志模块3具体的包括记录单元31和存储单元32。记录单元31,用于记录 虚拟映像模块2修改数据的操作,具体的,记录内存虚拟映像模块2所修改的数据的偏移位 置和长度。例如,承接上例,用户收看电视节目的时候,将电视节目1的音量调大,那么机顶 盒的Flash存储器在内存映像模块2将电视节目1的音量数据a增大为音量数据b。记录 单元31记录下电视节目1的序号数据a的偏移位置和长度。存储单元32,用于存储虚拟映 像模块2修改的数据的内容。承接上例,电视节目1的音量数据a增大为音量数据b,存储 单元32会对电视节目1的音量数据a的内容进行存储。实施本发明实施例提供的Flash存储器,可以通过一次擦除,进行多次的写入,降 低设备的损耗,延长设备的使用寿命,保证了设备工作时数据的稳定性和安全性,提高了设 备工作的效率。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助 软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解, 本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来, 该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使 得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。 以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权 利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
权利要求
一种闪存擦写方法,其特征在于,包括建立基础信息区,存储初始数据;建立内存映像区,在虚拟内存中存储需要修改的数据;建立日志区,对内存映像区修改数据的操作进行记录,将记录以日志形式保存,并拷贝修改的数据内容。
2.如权利要求1所述的闪存擦写方法,其特征在于,所述对内存映像区修改数据的操 作进行记录,具体包括记录所述操作中所修改的数据的偏移位置; 记录所述操作中所修改的数据的长度。
3.如权利要求1所述的闪存擦写方法,其特征在于,所述日志区在对内存映像区修改 数据的操作进行记录之前,还包括检查日志区是否具有足够的存储空间进行记录。
4.如权利要求3所述的闪存擦写方法,其特征在于,当所述日志区用于记录的存储空 间饱和时,将内存映像区的数据写入基础信息区,擦除日志区的所有记录以备下一次的写 入。
5.如权利要求1所述的闪存擦写方法,其特征在于,在所述建立基础信息区之前,还包括进行设备初始化以使内存映像区存储的数据和设备初始化之前一致。
6. 一种闪存存储器,其特征在于,包括 基础信息模块,用于存储初始数据;内存映像模块,用于在虚拟内存中存储需要修改的数据;日志模块,用于对内存映像模块修改数据的操作进行记录,同时拷贝所述修改的数据 内容。
7.如权利要求6的闪存存储器,其特征在于,所述日志模块还用于 记录内存映像模块修改数据的操作中所修改的数据的偏移位置; 记录内存映像模块修改数据的操作中所修改的数据的长度。
8.如权利要求6所述的闪存存储器,其特征在于,所述日志模块具体包括 记录单元,用于对内存映像区修改数据的操作进行记录;存储单元,用于存储拷贝的内存映像区修改的数据内容。
全文摘要
本发明实施例公开了一种闪存擦写方法和闪存存储器,所述闪存擦写方法包括建立基础信息区,存储初始数据;建立内存映像区,在虚拟内存中存储需要修改的数据;建立日志区,对内存映像区修改数据的操作进行记录,将记录以日志形式保存,并拷贝修改的数据内容。实施本发明实施例提供的闪存擦写方法,通过建立对擦除数据进行记录的日志区,可以通过一次擦除,进行多次的写入,降低设备的损耗,延长设备的使用寿命,保证了设备工作时的稳定性和安全性,提高了设备工作的效率。
文档编号G06F12/02GK101908021SQ200910107660
公开日2010年12月8日 申请日期2009年6月3日 优先权日2009年6月3日
发明者彭文剑 申请人:康佳集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1