闪存数据的存储、访问方法及装置的制作方法

文档序号:6356666阅读:169来源:国知局
专利名称:闪存数据的存储、访问方法及装置的制作方法
技术领域
本发明涉及数据处理领域,尤其涉及一种闪存数据的存储、访问方法及装置。
背景技术
在嵌入式系统中,Flash (闪存)是存储代码和数据的重要资源,Flash资源的有效 利用,关系到使用该系统产品的稳定性和成本。目前,通常使用以下两种方式对数据进行存 储和管理固定Flash分区+顺序的数据存储方式,将Flash的存储空间划分为几个区,分 区结构例如如图1所示,对各分区中的数据进行顺序存储,每个分区的数据存储均从Flash 的低地址往高地址存储,访问时则根据存储文件自身的结构进行访问;或者,使用文件系统 的数据管理方式,将Flash的存储空间划分为几个区,分区结构例如如图2所示,通过引导 部分软件启动文件系统,对数据进行管理。发明人发现现有技术中至少存在如下问题使用固定Flash分区+顺序的数据存 储方式对Flash数据进行存储管理时,当APP CODE分区的大小发生变化时,USER DATA分区 中的相对参考信息丢失,即USERDATA分区中的数据没有了起始地址,无法对USER DATA分 区中的数据进行有效检索,因此,存储在USER DATA分区的数据将全部丢失。而使用文件系 统的数据管理方式对Flash数据进行存储管理时,系统引导部分软件实现比较复杂,导致 引导部分软件消耗的存储空间(RAM/ROM空间)较大,且系统启动速度较慢。

发明内容
本发明的实施例提供一种闪存数据的存储、访问方法及装置,能够提高数据的存 储安全,并保证Flash资源的高效利用。为达到上述目的,本发明的实施例采用如下技术方案一种闪存数据的存储方法,包括在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含最低地址的分区 或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所述正序分区外的 其他分区;按照从低地址向高地址的顺序向所述正序分区写入数据,按照从高地址向低地址 的顺序向所述逆序分区写入数据。一种闪存数据的存储装置,包括分区确定单元,用于在闪存的分区中确定正序分区和逆序分区,所述正序分区为 包含最低地址的分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为 除所述正序分区外的其他分区;数据写入单元,用于按照从低地址向高地址的顺序向所述正序分区写入数据,按 照从高地址向低地址的顺序向所述逆序分区写入数据。一种闪存数据的访问方法,包括在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含最低地址的分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所述正序分区外的 其他分区;按照从低地址向高地址的顺序从所述正序分区读取数据,按照从高地址向低地址 的顺序从所述逆序分区读取数据。一种闪存数据的访问装置,其特征在于,包括分区确定单元,用于在闪存的分区中确定正序分区和逆序分区,所述正序分区为 包含最低地址的分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为 除所述正序分区外的其他分区;数据读取单元,用于按照从低地址向高地址的顺序从所述正序分区读取数据,按 照从高地址向低地址的顺序从所述逆序分区读取数据。本发明实施例提供的闪存数据的存储、访问方法及装置,通过在闪存的分区中确 定正序分区和逆序分区,按照从低地址向高地址的顺序在所述正序分区写入或读取数据, 按照从高地址向低地址的顺序在所述逆序分区写入或读取数据。因此,即使正序分区中的 某个分区的大小发生变化时,属于逆序分区的分区中的相对参考信息依然存在,即属于逆 序分区的分区中的数据有起始地址,可以对逆序分区中的数据进行有效检索,因此,避免了 存储在逆序分区的数据全部丢失,当逆序分区的某个分区的大小发生变化时正序分区的数 据亦然,从而,提高了数据的存储安全性。并且,不需使用文件系统对Flash数据进行存储 管理,保证Flash资源的高效利用。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用 的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。图1为现有技术固定Flash分区+顺序的数据存储方式的分区结构图;图2为现有技术使用文件系统的数据管理方式的分区结构图;图3为本发明实施例提供的一种闪存数据的存储方法的流程示意图;图4为本发明实施例提供的一种分区结构图;图5为本发明实施例提供的向图4中的USER DATA分区写入数据的流程示意图;图6为本发明实施例提供的一种闪存数据的访问方法的流程示意图;图7为本发明实施例提供的从图4中的USER DATA分区读取数据的流程示意图;图8为本发明实施例提供的一种闪存数据的存储装置的构成示意图;图9为本发明实施例提供的一种闪存数据的访问装置的构成示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
为了能够提高数据的存储安全,并保证Flash资源的高效利用,本发明实施例提 供了 一种闪存数据的存储方法,如图3所示,包括101、在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含最低地址的 分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所述正序分区 外的其他分区;举例而言,从两端向内的方向将闪存的多个分区中划分成两部分,其中,将低端分 区或以低端分区起始依次连续排列的分区称为正序分区,将Flash中除正序分区以外的 分区,即以高端分区起始依次连续排列的分区称为逆序分区。在本发明实施例中,将包含 Flash的最低地址的分区称作低端分区,将包含Flash的最高地址的分区称作高端分区。可选的,可以仅将高端分区作为逆序分区,按照从高地址向低地址的顺序向所述 高端分区写入数据,按照从低地址向高地址的顺序向所述低端分区或其他分区写入数据。 或者,可以仅将低端分区作为正序分区,按照从低地址向高地址的顺序向所述低端分区写 入数据,按照从高地址向低地址的顺序向所述高端分区或其他分区写入数据。例如,在图4所示的分区结构中,将USER DATA分区作为逆序分区,将以BOOT CODE 分区起始依次连续排列的分区,即BOOT CODE分区、FS分区和APP CODE分区作为正序分区。102、按照从低地址向高地址的顺序向所述正序分区写入数据,按照从高地址向低 地址的顺序向所述逆序分区写入数据。举例而言,在按照从低地址向高地址的顺序向所述正序分区写入数据时,可以在 所述正序分区中确定当前的数据写入块,将所述数据写入块作为第一低地址写入块,然后, 向所述第一低地址写入块写入数据。并且,在数据写满所述第一低地址写入块时,将所述第 一低地址写入块的索引加一,得到第二低地址写入块,然后,向所述第二低地址写入块写入 数据。或者,在按照从高地址向低地址的顺序向所述逆序分区写入数据时,可以在所述 逆序分区中确定当前的数据写入块,将所述数据写入块作为第一高地址写入块,然后,向所 述第一高地址写入块写入数据。并且,在数据写满所述第一高地址写入块时,将所述第一 高地址写入块的索引减一,得到第二高地址写入块,然后,向所述第二高地址写入块写入数 据。并且,在向正序分区的块的多个页写入数据时,可以按照从页低地址向页高地址 的顺序向正序分区的块写入数据。如果正序分区的块支持从页高地址向页低地址的顺序写 入数据,也可以按照从页高地址向页低地址的顺序向正序分区的块写入数据。或者,在向逆序分区的块的多个页写入数据时,可以按照从页低地址向页高地址 的顺序向正序分区的块写入数据。如果逆序分区的块支持从页高地址向页低地址的顺序写 入数据,也可以按照从页高地址向页低地址的顺序向逆序分区的块写入数据。例如,在图4所示的分区结构中,向USER DATA分区写入数据的具体步骤可以如图 5所示,包括1021、初始化Flash的起始操作位置为Flash的高地址,位于USER DATA分区,即 写入数据的操作分区为逆序分区;1022、对当前的Flash块进行写操作,向当前的数据写入块写入数据;虽然按照从块高地址向块低地址依次对逆序分区的块进行写操作,但由于有些型号的Flash不支持页的逆序操作,其只支持从页低地址向页高地址执行写操作,此时,仍然 需要采用从页低地址向页高地址的顺序进行块内部的写操作。1023、判断当前的数据写入块是否被写满,在当前的数据写入块写满时进入步骤 1024,否则,跳至步骤1022,继续向当前的数据写入块写入数据;1024、将当前的数据写入块的索引减一,得到新的数据写入块;1025、判断需要写入的数据是否全部被写入到Flash中,若已被全部写入,则结束 整个写操作,否则,跳至步骤1022,继续向新的数据写入块写入数据。另外,可以将正序分区和逆序分区各自的空闲空间合成一个大的空闲空间共同使 用,从而使该空闲空间的分配使用更加灵活。具体可以为按照从低地址向高地址的顺序向 所述正序分区与所述逆序分区之间的空闲空间写入属于所述正序分区的数据,或者,按照 从高地址向低地址的顺序向所述正序分区与所述逆序分区之间的空闲空间写入属于所述 逆序分区的数据。例如,在图4所示的分区结构中,USERDATA分区和APP CODE分区共用两 者之间存在的SPARE空闲空间,USERDATA分区的数据可以按照从高地址向低地址的顺序写 入SPARE空闲空间,APP CODE分区数据可以按照从低地址向高地址的顺序写入SPARE空闲 空间。本实施例闪存数据的存储方法,通过在闪存的分区中确定正序分区和逆序分区, 按照从低地址向高地址的顺序向所述正序分区写入数据,按照从高地址向低地址的顺序向 所述逆序分区写入数据。因此,即使正序分区中的某个分区的大小发生变化时,属于逆序分 区的分区中的相对参考信息依然存在,即属于逆序分区的分区中的数据有起始地址,可以 对逆序分区中的数据进行有效检索,因此,避免了存储在逆序分区的数据全部丢失,当逆序 分区的某个分区的大小发生变化时正序分区的数据亦然,从而,提高了数据的存储安全性。 并且,不需使用文件系统对Flash数据进行存储管理,保证Flash资源的高效利用。与上述存储方法相对应地,本发明实施例还提供了一种闪存数据的访问方法,如 图6所示,包括201、在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含最低地址的 分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所述正序分区 外的其他分区;举例而言,在Flash存储数据时,已将Flash的分区划分成正序分区和逆序分区。 在读取Flash中的数据时,需要根据分区划分的相关信息判断出哪些分区是正序分区,即 按照从低地址向高地址的顺序存储数据的分区,哪些分区是逆序分区,即按照从高地址向 低地址的顺序存储数据的分区。例如,读取图4所示的分区结构的Flash的数据时,确定USERDATA分区为逆序分 区,而BOOT CODE分区、FS分区和APP CODE分区为正序分区。202、按照从低地址向高地址的顺序从所述正序分区读取数据,按照从高地址向低 地址的顺序从所述逆序分区读取数据。举例而言,在读取的数据按照从低地址向高地址的顺序写入正序分区时,在所述 正序分区中确定当前的数据读取块,将所述数据读取块作为第一低地址读取块,然后,从所 述第一低地址读取块中读取数据。并且,在读取完所述第一低地址读取块的数据时,将所述 第一低地址读取块的索引加一,得到第二低地址读取块,然后,从所述第二低地址读取块中读取数据。或者,在读取的数据按照从高地址向低地址的顺序写入逆序分区时,在所述逆序 分区中确定当前的数据读取块,将所述数据读取块作为第一高地址读取块,然后,从所述第 一高地址读取块中读取数据。并且,在读取完所述第一高地址读取块的数据时,将所述第一 高地址读取块的索引减一,得到第二高地址读取块,然后,从所述第二高地址读取块中读取 数据。并且,在所述第一低地址读取块或第二低地址读取块中的数据是按照从页低地址 向页高地址的顺序写入时,按照从页低地址向页高地址的顺序从所述第一低地址读取块或 第二低地址读取块中读取数据;或者,在所述第一低地址读取块或第二低地址读取块中的 数据是按照从页高地址向页低地址的顺序写入时,按照从页高地址向页低地址的顺序从所 述第一低地址读取块或第二低地址读取块中读取数据。或者,在所述第一高地址读取块或第二高地址读取块中的数据是按照从页低地址 向页高地址的顺序写入时,按照从页低地址向页高地址的顺序从所述第一高地址读取块或 第二高地址读取块中读取数据;或者,在所述第一高地址读取块或第二高地址读取块中的 数据是按照从页高地址向页低地址的顺序写入时,按照从页高地址向页低地址的顺序从所 述第一高地址读取块或第二高地址读取块中读取数据。例如,从图4所示的分区结构的Flash的USER DATA分区读取数据的具体步骤可 以如图7所示,包括2021、初始化Flash的起始操作位置为Flash的高地址,位于USER DATA分区,即 读取数据的操作分区为逆序分区;2022、对当前的Flash块进行读操作,从当前的数据读取块读取数据;虽然按照从块高地址向块低地址依次对逆序分区的块进行写操作,但由于有些型 号的Flash不支持页的逆序操作,其只支持从页低地址向页高地址执行写操作,因此,仍然 需要采用从页低地址向页高地址的顺序进行块内部的写操作。此时,按照从块高地址向块 低地址依次对逆序分区的块进行读操作,按照从页低地址向页高地址的顺序对块内部进行 读操作。2023、判断当前的数据读取块中的数据是否已被全部读完,在当前的数据读取块 读完时进入步骤20M,否则,跳至步骤2022,继续从当前的数据读取块读取数据;2024、将当前的数据读取块的索引减一,得到新的数据读取块;2025、判断需要读取的数据是否全部从Flash中读出,若已被全部被读出,则结束 整个读操作,否则,跳至步骤2022,继续从新的数据读取块读取数据。另外,正序分区和逆序分区之间的空闲空间可以被共同使用,使该空闲空间的分 配使用更加灵活。此时,可以按照从低地址向高地址的顺序从所述正序分区与所述逆序分 区之间的空闲空间读取属于所述正序分区的数据,或者,按照从高地址向低地址的顺序从 所述正序分区与所述逆序分区之间的空闲空间读取属于所述逆序分区的数据。本发明实施例提供的闪存数据的访问方法,通过在闪存的分区中确定正序分区和 逆序分区,按照从低地址向高地址的顺序在所述正序分区读取数据,按照从高地址向低地 址的顺序在所述逆序分区读取数据。因此,即使正序分区中的某个分区的大小发生变化时, 属于逆序分区的分区中的相对参考信息依然存在,即属于逆序分区的分区中的数据有起始地址,可以对逆序分区中的数据进行有效检索,因此,避免了存储在逆序分区的数据全部丢 失,当逆序分区的某个分区的大小发生变化时正序分区的数据亦然,从而,提高了数据的存 储安全性。并且,不需使用文件系统对Flash数据进行存储管理,保证Flash资源的高效利用。与上述存储方法相对应地,本发明实施例还提供了一种闪存数据的存储装置,如 图8所示,包括分区确定单元301,用于在闪存的分区中确定正序分区和逆序分区,所述正序分区 为包含最低地址的分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区 为除所述正序分区外的其他分区;数据写入单元302,用于按照从低地址向高地址的顺序向所述正序分区写入数据, 按照从高地址向低地址的顺序向所述逆序分区写入数据。进一步地,所述数据写入单元302,具体用于在所述正序分区中确定当前的数据 写入块,将所述数据写入块作为第一低地址写入块,向所述第一低地址写入块写入数据;或 者,在数据写满所述第一低地址写入块时,将所述第一低地址写入块的索引加一,得到第二 低地址写入块,向所述第二低地址写入块写入数据;或者,在所述逆序分区中确定当前的数 据写入块,将所述数据写入块作为第一高地址写入块,向所述第一高地址写入块写入数据; 或者,并在数据写满所述第一高地址写入块时,将所述第一高地址写入块的索引减一,得到 第二高地址写入块,向所述第二高地址写入块写入数据。进一步地,所述数据写入单元302,还用于按照从低地址向高地址的顺序向所述正 序分区与所述逆序分区之间的空闲空间写入属于所述正序分区的数据,或者,按照从高地 址向低地址的顺序向所述正序分区与所述逆序分区之间的空闲空间写入属于所述逆序分 区的数据。本实施例闪存数据的存储装置的工作方法可以参看图3所描述的方法,在此不再 赘述。本实施例闪存数据的存储装置,通过在闪存的分区中确定正序分区和逆序分区, 按照从低地址向高地址的顺序向所述正序分区写入数据,按照从高地址向低地址的顺序向 所述逆序分区写入数据。因此,即使正序分区中的某个分区的大小发生变化时,属于逆序分 区的分区中的相对参考信息依然存在,即属于逆序分区的分区中的数据有起始地址,可以 对逆序分区中的数据进行有效检索,因此,避免了存储在逆序分区的数据全部丢失,当逆序 分区的某个分区的大小发生变化时正序分区的数据亦然,从而,提高了数据的存储安全性。 并且,不需使用文件系统对Flash数据进行存储管理,保证Flash资源的高效利用。与上述存储装置相对应地,本发明实施例还提供了一种闪存数据的访问装置,如 图9所示,包括分区确定单元401,用于在闪存的分区中确定正序分区和逆序分区,所述正序分区 为包含最低地址的分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区 为除所述正序分区外的其他分区;数据读取单元402,用于按照从低地址向高地址的顺序从所述正序分区读取数据, 按照从高地址向低地址的顺序从所述逆序分区读取数据。进一步地,所述数据读取单元402包括
块确定模块,用于在所述正序分区中确定当前的数据读取块,将所述数据读取块 作为第一低地址读取块,从所述第一低地址读取块中读取数据;或者,在读取完所述第一低 地址读取块的数据时,将所述第一低地址读取块的索引加一,得到第二低地址读取块,从所 述第二低地址读取块中读取数据;或者,在所述逆序分区中确定当前的数据读取块,将所述 数据读取块作为第一高地址读取块,从所述第一高地址读取块中读取数据;或者,在读取完 所述第一高地址读取块的数据时,将所述第一高地址读取块的索引减一,得到第二高地址 读取块,从所述第二高地址读取块中读取数据。进一步地,所述块读取模块,具体用于在所述第一低地址读取块或第二低地址读 取块中的数据是按照从页低地址向页高地址的顺序写入时,按照从页低地址向页高地址的 顺序从所述第一低地址读取块或第二低地址读取块中读取数据;或者,在所述第一低地址 读取块或第二低地址读取块中的数据是按照从页高地址向页低地址的顺序写入时,按照从 页高地址向页低地址的顺序从所述第一低地址读取块或第二低地址读取块中读取数据;或 者,在所述第一高地址读取块或第二高地址读取块中的数据是按照从页低地址向页高地址 的顺序写入时,按照从页低地址向页高地址的顺序从所述第一高地址读取块或第二高地址 读取块中读取数据;或者,在所述第一高地址读取块或第二高地址读取块中的数据是按照 从页高地址向页低地址的顺序写入时,按照从页高地址向页低地址的顺序从所述第一高地 址读取块或第二高地址读取块中读取数据。进一步地,所述数据读取单元402,还用于按照从低地址向高地址的顺序从所述正 序分区与所述逆序分区之间的空闲空间读取属于所述正序分区的数据,或者,按照从高地 址向低地址的顺序从所述正序分区与所述逆序分区之间的空闲空间读取属于所述逆序分 区的数据。本实施例闪存数据的访问装置的工作方法可以参看图6所描述的方法,在此不再 赘述。本发明实施例提供的闪存数据的访问装置,通过在闪存的分区中确定正序分区和 逆序分区,按照从低地址向高地址的顺序在所述正序分区读取数据,按照从高地址向低地 址的顺序在所述逆序分区读取数据。因此,即使正序分区中的某个分区的大小发生变化时, 属于逆序分区的分区中的相对参考信息依然存在,即属于逆序分区的分区中的数据有起始 地址,可以对逆序分区中的数据进行有效检索,因此,避免了存储在逆序分区的数据全部丢 失,当逆序分区的某个分区的大小发生变化时正序分区的数据亦然,从而,提高了数据的存 储安全性。并且,不需使用文件系统对Flash数据进行存储管理,保证Flash资源的高效利 用。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以 通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质 中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁 碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random Access Memory, RAM)等。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
1.一种闪存数据的存储方法,其特征在于,包括在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含最低地址的分区或以 包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所述正序分区外的其他 分区;按照从低地址向高地址的顺序向所述正序分区写入数据,按照从高地址向低地址的顺 序向所述逆序分区写入数据。
2.根据权利要求1所述的方法,其特征在于,所述按照从低地址向高地址的顺序向所 述正序分区写入数据包括在所述正序分区中确定当前的数据写入块,将所述数据写入块作为第一低地址写入块;向所述第一低地址写入块写入数据;在数据写满所述第一低地址写入块时,将所述第一低地址写入块的索引加一,得到第 二低地址写入块;向所述第二低地址写入块写入数据;所述按照从高地址向低地址的顺序向所述逆序分区写入数据包括在所述逆序分区中确定当前的数据写入块,将所述数据写入块作为第一高地址写入块;向所述第一高地址写入块写入数据;在数据写满所述第一高地址写入块时,将所述第一高地址写入块的索引减一,得到第 二高地址写入块;向所述第二高地址写入块写入数据。
3.根据权利要求1所述的方法,其特征在于,还包括按照从低地址向高地址的顺序向所述正序分区与所述逆序分区之间的空闲空间写入 属于所述正序分区的数据,或者,按照从高地址向低地址的顺序向所述正序分区与所述逆 序分区之间的空闲空间写入属于所述逆序分区的数据。
4.一种闪存数据的访问方法,其特征在于,包括在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含最低地址的分区或以 包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所述正序分区外的其他 分区;按照从低地址向高地址的顺序从所述正序分区读取数据,按照从高地址向低地址的顺 序从所述逆序分区读取数据。
5.根据权利要求4所述的方法,其特征在于,所述按照从低地址向高地址的顺序从所 述正序分区读取数据包括在所述正序分区中确定当前的数据读取块,将所述数据读取块作为第一低地址读取块;从所述第一低地址读取块中读取数据;在读取完所述第一低地址读取块的数据时,将所述第一低地址读取块的索引加一,得 到第二低地址读取块;从所述第二低地址读取块中读取数据;所述按照从高地址向低地址的顺序从所述逆序分区读取数据包括在所述逆序分区中确定当前的数据读取块,将所述数据读取块作为第一高地址读取块;从所述第一高地址读取块中读取数据;在读取完所述第一高地址读取块的数据时,将所述第一高地址读取块的索引减一,得 到第二高地址读取块;从所述第二高地址读取块中读取数据。
6.根据权利要求5所述的方法,其特征在于,所述从所述第一低地址读取块中读取数 据包括在所述第一低地址读取块中的数据是按照从页低地址向页高地址的顺序写入时,按照 从页低地址向页高地址的顺序从所述第一低地址读取块中读取数据;或者,在所述第一低地址读取块中的数据是按照从页高地址向页低地址的顺序写入时,按照 从页高地址向页低地址的顺序从所述第一低地址读取块中读取数据;所述从所述第一高地址读取块中读取数据包括在所述第一高地址读取块中的数据是按照从页低地址向页高地址的顺序写入时,按照 从页低地址向页高地址的顺序从所述第一高地址读取块中读取数据;或者,在所述第一高地址读取块中的数据是按照从页高地址向页低地址的顺序写入时,按照 从页高地址向页低地址的顺序从所述第一高地址读取块中读取数据。
7.根据权利要求4所述的方法,其特征在于,还包括按照从低地址向高地址的顺序从所述正序分区与所述逆序分区之间的空闲空间读取 属于所述正序分区的数据,或者,按照从高地址向低地址的顺序从所述正序分区与所述逆 序分区之间的空闲空间读取属于所述逆序分区的数据。
8.—种闪存数据的存储装置,其特征在于,包括分区确定单元,用于在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含 最低地址的分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所 述正序分区外的其他分区;数据写入单元,用于按照从低地址向高地址的顺序向所述正序分区写入数据,按照从 高地址向低地址的顺序向所述逆序分区写入数据。
9.根据权利要求8所述的装置,其特征在于,所述数据写入单元,具体用于在所述正序 分区中确定当前的数据写入块,将所述数据写入块作为第一低地址写入块,向所述第一低 地址写入块写入数据;或者,在数据写满所述第一低地址写入块时,将所述第一低地址写入 块的索引加一,得到第二低地址写入块,向所述第二低地址写入块写入数据;或者,在所述 逆序分区中确定当前的数据写入块,将所述数据写入块作为第一高地址写入块,向所述第 一高地址写入块写入数据;或者,在数据写满所述第一高地址写入块时,将所述第一高地址 写入块的索引减一,得到第二高地址写入块,向所述第二高地址写入块写入数据。
10.根据权利要求9所述的装置,其特征在于,所述数据写入单元,还用于按照从低地 址向高地址的顺序向所述正序分区与所述逆序分区之间的空闲空间写入属于所述正序分 区的数据,或者,按照从高地址向低地址的顺序向所述正序分区与所述逆序分区之间的空 闲空间写入属于所述逆序分区的数据。
11.一种闪存数据的访问装置,其特征在于,包括分区确定单元,用于在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含 最低地址的分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所 述正序分区外的其他分区;数据读取单元,用于按照从低地址向高地址的顺序从所述正序分区读取数据,按照从 高地址向低地址的顺序从所述逆序分区读取数据。
12.根据权利要求11所述的装置,其特征在于,所述数据读取单元,具体用于在所述正 序分区中确定当前的数据读取块,将所述数据读取块作为第一低地址读取块,从所述第一 低地址读取块中读取数据;或者,在读取完所述第一低地址读取块的数据时,将所述第一低 地址读取块的索引加一,得到第二低地址读取块,从所述第二低地址读取块中读取数据;或 者,在所述逆序分区中确定当前的数据读取块,将所述数据读取块作为第一高地址读取块, 从所述第一高地址读取块中读取数据;或者,在读取完所述第一高地址读取块的数据时,将 所述第一高地址读取块的索引减一,得到第二高地址读取块,从所述第二高地址读取块中 读取数据。
13.根据权利要求12所述的装置,其特征在于,所述块读取模块,具体用于在所述第一 低地址读取块或第二低地址读取块中的数据是按照从页低地址向页高地址的顺序写入时, 按照从页低地址向页高地址的顺序从所述第一低地址读取块或第二低地址读取块中读取 数据;或者,在所述第一低地址读取块或第二低地址读取块中的数据是按照从页高地址向 页低地址的顺序写入时,按照从页高地址向页低地址的顺序从所述第一低地址读取块或第 二低地址读取块中读取数据;或者,在所述第一高地址读取块或第二高地址读取块中的数 据是按照从页低地址向页高地址的顺序写入时,按照从页低地址向页高地址的顺序从所述 第一高地址读取块或第二高地址读取块中读取数据;或者,在所述第一高地址读取块或第 二高地址读取块中的数据是按照从页高地址向页低地址的顺序写入时,按照从页高地址向 页低地址的顺序从所述第一高地址读取块或第二高地址读取块中读取数据。
14.根据权利要求11所述的装置,其特征在于,所述数据读取单元,还用于按照从低地 址向高地址的顺序从所述正序分区与所述逆序分区之间的空闲空间读取属于所述正序分 区的数据,或者,按照从高地址向低地址的顺序从所述正序分区与所述逆序分区之间的空 闲空间读取属于所述逆序分区的数据。
全文摘要
本发明实施例公开了一种闪存数据的存储、访问方法及装置。为了能够提高数据的存储安全,并保证Flash资源的高效利用,本发明提供的技术方案如下在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含最低地址的分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所述正序分区外的其他分区;按照从低地址向高地址的顺序向所述正序分区写入数据,按照从高地址向低地址的顺序向所述逆序分区写入数据。本发明适用于闪存的操作和使用。
文档编号G06F12/06GK102135943SQ201110070958
公开日2011年7月27日 申请日期2011年3月23日 优先权日2011年3月23日
发明者易涛, 陶志东 申请人:华为终端有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1