CN102135943A - 闪存数据的存储、访问方法及装置 - Google Patents

闪存数据的存储、访问方法及装置 Download PDF

Info

Publication number
CN102135943A
CN102135943A CN 201110070958 CN201110070958A CN102135943A CN 102135943 A CN102135943 A CN 102135943A CN 201110070958 CN201110070958 CN 201110070958 CN 201110070958 A CN201110070958 A CN 201110070958A CN 102135943 A CN102135943 A CN 102135943A
Authority
CN
China
Prior art keywords
subregion
address
data
piece
write
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 201110070958
Other languages
English (en)
Other versions
CN102135943B (zh
Inventor
陶志东
易涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Device Co Ltd
Huawei Device Shenzhen Co Ltd
Original Assignee
Huawei Device Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Device Co Ltd filed Critical Huawei Device Co Ltd
Priority to CN 201110070958 priority Critical patent/CN102135943B/zh
Publication of CN102135943A publication Critical patent/CN102135943A/zh
Application granted granted Critical
Publication of CN102135943B publication Critical patent/CN102135943B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明实施例公开了一种闪存数据的存储、访问方法及装置。为了能够提高数据的存储安全,并保证Flash资源的高效利用,本发明提供的技术方案如下:在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含最低地址的分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所述正序分区外的其他分区;按照从低地址向高地址的顺序向所述正序分区写入数据,按照从高地址向低地址的顺序向所述逆序分区写入数据。本发明适用于闪存的操作和使用。

Description

闪存数据的存储、访问方法及装置
技术领域
本发明涉及数据处理领域,尤其涉及一种闪存数据的存储、访问方法及装置。
背景技术
在嵌入式系统中,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、判断当前的数据读取块中的数据是否已被全部读完,在当前的数据读取块读完时进入步骤2024,否则,跳至步骤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)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (14)

1.一种闪存数据的存储方法,其特征在于,包括:
在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含最低地址的分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所述正序分区外的其他分区;
按照从低地址向高地址的顺序向所述正序分区写入数据,按照从高地址向低地址的顺序向所述逆序分区写入数据。
2.根据权利要求1所述的方法,其特征在于,所述按照从低地址向高地址的顺序向所述正序分区写入数据包括:
在所述正序分区中确定当前的数据写入块,将所述数据写入块作为第一低地址写入块;
向所述第一低地址写入块写入数据;
在数据写满所述第一低地址写入块时,将所述第一低地址写入块的索引加一,得到第二低地址写入块;
向所述第二低地址写入块写入数据;
所述按照从高地址向低地址的顺序向所述逆序分区写入数据包括:
在所述逆序分区中确定当前的数据写入块,将所述数据写入块作为第一高地址写入块;
向所述第一高地址写入块写入数据;
在数据写满所述第一高地址写入块时,将所述第一高地址写入块的索引减一,得到第二高地址写入块;
向所述第二高地址写入块写入数据。
3.根据权利要求1所述的方法,其特征在于,还包括:
按照从低地址向高地址的顺序向所述正序分区与所述逆序分区之间的空闲空间写入属于所述正序分区的数据,或者,按照从高地址向低地址的顺序向所述正序分区与所述逆序分区之间的空闲空间写入属于所述逆序分区的数据。
4.一种闪存数据的访问方法,其特征在于,包括:
在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含最低地址的分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所述正序分区外的其他分区;
按照从低地址向高地址的顺序从所述正序分区读取数据,按照从高地址向低地址的顺序从所述逆序分区读取数据。
5.根据权利要求4所述的方法,其特征在于,所述按照从低地址向高地址的顺序从所述正序分区读取数据包括:
在所述正序分区中确定当前的数据读取块,将所述数据读取块作为第一低地址读取块;
从所述第一低地址读取块中读取数据;
在读取完所述第一低地址读取块的数据时,将所述第一低地址读取块的索引加一,得到第二低地址读取块;
从所述第二低地址读取块中读取数据;
所述按照从高地址向低地址的顺序从所述逆序分区读取数据包括:
在所述逆序分区中确定当前的数据读取块,将所述数据读取块作为第一高地址读取块;
从所述第一高地址读取块中读取数据;
在读取完所述第一高地址读取块的数据时,将所述第一高地址读取块的索引减一,得到第二高地址读取块;
从所述第二高地址读取块中读取数据。
6.根据权利要求5所述的方法,其特征在于,所述从所述第一低地址读取块中读取数据包括:
在所述第一低地址读取块中的数据是按照从页低地址向页高地址的顺序写入时,按照从页低地址向页高地址的顺序从所述第一低地址读取块中读取数据;或者,
在所述第一低地址读取块中的数据是按照从页高地址向页低地址的顺序写入时,按照从页高地址向页低地址的顺序从所述第一低地址读取块中读取数据;
所述从所述第一高地址读取块中读取数据包括:
在所述第一高地址读取块中的数据是按照从页低地址向页高地址的顺序写入时,按照从页低地址向页高地址的顺序从所述第一高地址读取块中读取数据;或者,
在所述第一高地址读取块中的数据是按照从页高地址向页低地址的顺序写入时,按照从页高地址向页低地址的顺序从所述第一高地址读取块中读取数据。
7.根据权利要求4所述的方法,其特征在于,还包括:
按照从低地址向高地址的顺序从所述正序分区与所述逆序分区之间的空闲空间读取属于所述正序分区的数据,或者,按照从高地址向低地址的顺序从所述正序分区与所述逆序分区之间的空闲空间读取属于所述逆序分区的数据。
8.一种闪存数据的存储装置,其特征在于,包括:
分区确定单元,用于在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含最低地址的分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所述正序分区外的其他分区;
数据写入单元,用于按照从低地址向高地址的顺序向所述正序分区写入数据,按照从高地址向低地址的顺序向所述逆序分区写入数据。
9.根据权利要求8所述的装置,其特征在于,所述数据写入单元,具体用于在所述正序分区中确定当前的数据写入块,将所述数据写入块作为第一低地址写入块,向所述第一低地址写入块写入数据;或者,在数据写满所述第一低地址写入块时,将所述第一低地址写入块的索引加一,得到第二低地址写入块,向所述第二低地址写入块写入数据;或者,在所述逆序分区中确定当前的数据写入块,将所述数据写入块作为第一高地址写入块,向所述第一高地址写入块写入数据;或者,在数据写满所述第一高地址写入块时,将所述第一高地址写入块的索引减一,得到第二高地址写入块,向所述第二高地址写入块写入数据。
10.根据权利要求9所述的装置,其特征在于,所述数据写入单元,还用于按照从低地址向高地址的顺序向所述正序分区与所述逆序分区之间的空闲空间写入属于所述正序分区的数据,或者,按照从高地址向低地址的顺序向所述正序分区与所述逆序分区之间的空闲空间写入属于所述逆序分区的数据。
11.一种闪存数据的访问装置,其特征在于,包括:
分区确定单元,用于在闪存的分区中确定正序分区和逆序分区,所述正序分区为包含最低地址的分区或以包含最低地址的分区起始依次连续排列的分区,所述逆序分区为除所述正序分区外的其他分区;
数据读取单元,用于按照从低地址向高地址的顺序从所述正序分区读取数据,按照从高地址向低地址的顺序从所述逆序分区读取数据。
12.根据权利要求11所述的装置,其特征在于,所述数据读取单元,具体用于在所述正序分区中确定当前的数据读取块,将所述数据读取块作为第一低地址读取块,从所述第一低地址读取块中读取数据;或者,在读取完所述第一低地址读取块的数据时,将所述第一低地址读取块的索引加一,得到第二低地址读取块,从所述第二低地址读取块中读取数据;或者,在所述逆序分区中确定当前的数据读取块,将所述数据读取块作为第一高地址读取块,从所述第一高地址读取块中读取数据;或者,在读取完所述第一高地址读取块的数据时,将所述第一高地址读取块的索引减一,得到第二高地址读取块,从所述第二高地址读取块中读取数据。
13.根据权利要求12所述的装置,其特征在于,所述块读取模块,具体用于在所述第一低地址读取块或第二低地址读取块中的数据是按照从页低地址向页高地址的顺序写入时,按照从页低地址向页高地址的顺序从所述第一低地址读取块或第二低地址读取块中读取数据;或者,在所述第一低地址读取块或第二低地址读取块中的数据是按照从页高地址向页低地址的顺序写入时,按照从页高地址向页低地址的顺序从所述第一低地址读取块或第二低地址读取块中读取数据;或者,在所述第一高地址读取块或第二高地址读取块中的数据是按照从页低地址向页高地址的顺序写入时,按照从页低地址向页高地址的顺序从所述第一高地址读取块或第二高地址读取块中读取数据;或者,在所述第一高地址读取块或第二高地址读取块中的数据是按照从页高地址向页低地址的顺序写入时,按照从页高地址向页低地址的顺序从所述第一高地址读取块或第二高地址读取块中读取数据。
14.根据权利要求11所述的装置,其特征在于,所述数据读取单元,还用于按照从低地址向高地址的顺序从所述正序分区与所述逆序分区之间的空闲空间读取属于所述正序分区的数据,或者,按照从高地址向低地址的顺序从所述正序分区与所述逆序分区之间的空闲空间读取属于所述逆序分区的数据。
CN 201110070958 2011-03-23 2011-03-23 闪存数据的存储、访问方法及装置 Active CN102135943B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110070958 CN102135943B (zh) 2011-03-23 2011-03-23 闪存数据的存储、访问方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110070958 CN102135943B (zh) 2011-03-23 2011-03-23 闪存数据的存储、访问方法及装置

Publications (2)

Publication Number Publication Date
CN102135943A true CN102135943A (zh) 2011-07-27
CN102135943B CN102135943B (zh) 2013-03-13

Family

ID=44295731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110070958 Active CN102135943B (zh) 2011-03-23 2011-03-23 闪存数据的存储、访问方法及装置

Country Status (1)

Country Link
CN (1) CN102135943B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544124A (zh) * 2012-07-16 2014-01-29 上海塞尚通信技术有限公司 Nand Flash存储器的访问方法
CN104794226A (zh) * 2015-04-30 2015-07-22 北京奇艺世纪科技有限公司 基于HBase数据库对数据的写操作方法及装置
WO2017079974A1 (zh) * 2015-11-13 2017-05-18 华为技术有限公司 一种文件写入方法及文件服务器
CN106919515A (zh) * 2015-12-24 2017-07-04 北京谊安医疗系统股份有限公司 一种日志链表数据在存储器中的读写方法
CN107608908A (zh) * 2016-07-11 2018-01-19 慧荣科技股份有限公司 用于数据储存装置的磨损平均方法
CN110941564A (zh) * 2018-09-25 2020-03-31 杭州海康威视数字技术股份有限公司 一种存储空间分配方法、装置、电子设备以及存储介质
CN111966298A (zh) * 2020-08-24 2020-11-20 深圳三地一芯电子有限责任公司 一种基于Flash存储器的倒序编程实现方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079006A (zh) * 2007-07-31 2007-11-28 华为技术有限公司 一种数据存储和读取的方法及数据存储装置
CN101382876A (zh) * 2008-10-07 2009-03-11 北京创毅视讯科技有限公司 一种数据存储方法
US20090310413A1 (en) * 2008-06-16 2009-12-17 Sandisk Il Ltd. Reverse order page writing in flash memories

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101079006A (zh) * 2007-07-31 2007-11-28 华为技术有限公司 一种数据存储和读取的方法及数据存储装置
US20090310413A1 (en) * 2008-06-16 2009-12-17 Sandisk Il Ltd. Reverse order page writing in flash memories
CN101382876A (zh) * 2008-10-07 2009-03-11 北京创毅视讯科技有限公司 一种数据存储方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544124B (zh) * 2012-07-16 2018-01-19 上海塞尚通信技术有限公司 Nand Flash存储器的访问方法
CN103544124A (zh) * 2012-07-16 2014-01-29 上海塞尚通信技术有限公司 Nand Flash存储器的访问方法
CN104794226A (zh) * 2015-04-30 2015-07-22 北京奇艺世纪科技有限公司 基于HBase数据库对数据的写操作方法及装置
WO2017079974A1 (zh) * 2015-11-13 2017-05-18 华为技术有限公司 一种文件写入方法及文件服务器
CN107250992A (zh) * 2015-11-13 2017-10-13 华为技术有限公司 一种文件写入方法及文件服务器
CN106919515B (zh) * 2015-12-24 2020-09-18 北京谊安医疗系统股份有限公司 一种日志链表数据在存储器中的读写方法
CN106919515A (zh) * 2015-12-24 2017-07-04 北京谊安医疗系统股份有限公司 一种日志链表数据在存储器中的读写方法
CN107608908A (zh) * 2016-07-11 2018-01-19 慧荣科技股份有限公司 用于数据储存装置的磨损平均方法
CN107608908B (zh) * 2016-07-11 2020-09-08 慧荣科技股份有限公司 用于数据储存装置的磨损平均方法
CN110941564A (zh) * 2018-09-25 2020-03-31 杭州海康威视数字技术股份有限公司 一种存储空间分配方法、装置、电子设备以及存储介质
CN110941564B (zh) * 2018-09-25 2022-03-04 杭州海康威视数字技术股份有限公司 一种存储空间分配方法、装置、电子设备以及存储介质
CN111966298A (zh) * 2020-08-24 2020-11-20 深圳三地一芯电子有限责任公司 一种基于Flash存储器的倒序编程实现方法及装置
CN111966298B (zh) * 2020-08-24 2021-07-27 深圳三地一芯电子有限责任公司 一种基于Flash存储器的倒序编程实现方法及装置

Also Published As

Publication number Publication date
CN102135943B (zh) 2013-03-13

Similar Documents

Publication Publication Date Title
CN102135943B (zh) 闪存数据的存储、访问方法及装置
CN107168647B (zh) Flash数据读写方法及系统
US9298389B2 (en) Operating a memory management controller
CN102135942B (zh) 一种存储设备中实现损耗均衡的方法及存储设备
US20140101370A1 (en) Apparatus and method for low power low latency high capacity storage class memory
CN103270500A (zh) 事务日志恢复
US20100050007A1 (en) Solid state disk and method of managing power supply thereof and terminal including the same
ATE509314T1 (de) Wiederbeanspruchung von datenspeicherkapazität in flash-speichersystemen
CN103942159A (zh) 一种基于混合存储设备的数据读写方法与装置
US20100146194A1 (en) Storage Device And Data Management Method
CN102999430A (zh) 处理具有非易失性存储器的系统的未完全关闭
CN107817945B (zh) 一种混合内存结构的数据读取方法和系统
CN102737715A (zh) 用于nor闪存的数据掉电保护方法
US10929033B2 (en) Allocating variable media types of memory devices in a memory system
CN101625897A (zh) 用于快闪存储器的数据写入方法、储存系统与控制器
KR100882740B1 (ko) 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치
CN103279406A (zh) 一种内存的隔离方法和装置
US11520699B2 (en) Using a common pool of blocks for user data and a system data structure
CN109491592B (zh) 存储设备及其数据写入方法、存储装置
CN101308701A (zh) 管理非易失性存储器的映射表的设备和方法
CN101510332A (zh) 一种智能卡中存储空间的管理方法和装置
CN102314321A (zh) 存储系统、运用存储系统进行数据访问的方法和装置
CN107544912B (zh) 一种日志记录方法、加载方法及其装置
CN101354660B (zh) 嵌入式软件程序的运行方法、装置及其系统
JP2007220274A (ja) 不揮発性メモリ、そのためのデータ有効性を判断する装置及び方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 518129 Building 2, B District, Bantian HUAWEI base, Longgang District, Shenzhen, Guangdong.

Patentee after: Huawei terminal (Shenzhen) Co.,Ltd.

Address before: 518129 Building 2, B District, Bantian HUAWEI base, Longgang District, Shenzhen, Guangdong.

Patentee before: HUAWEI DEVICE Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20181226

Address after: 523808 Southern Factory Building (Phase I) Project B2 Production Plant-5, New Town Avenue, Songshan Lake High-tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee after: HUAWEI DEVICE Co.,Ltd.

Address before: 518129 Building 2, B District, Bantian HUAWEI base, Longgang District, Shenzhen, Guangdong.

Patentee before: Huawei terminal (Shenzhen) Co.,Ltd.