一种NANDFLASH数据存储方法与流程

文档序号:12747957阅读:397来源:国知局
一种NAND FLASH数据存储方法与流程

本发明属于航空电子技术领域,具体涉及一种NAND FLASH数据存储方法。



背景技术:

NAND FLASH Memory是一种电可擦除读写非易失性存储器。它具有高密度,低成本,非易失性,功耗低,读写和擦除速度快等优点,广泛应用于飞行参数记录系统中防护记录器和快取记录器数据存储中。在航空机载设备领域,通常采用顺序存储的方式,同时由于有自动循环记录的要求,即在达到存储容量后能够自动覆盖较早的记录,但是过去的存储方法,再将较早的数据记录删除后,虽然旧的数据记录并没有完全覆盖,但却无法查看到剩余未被覆盖的数据,导致在飞行事故处理和日常维护时的不便,与此同时,在进行数据履历下载时必须对每一个数据块从头到尾查询一遍,查询时间很长,极大的增加了维护所需的成本。



技术实现要素:

本发明克服了现有技术的不足,提出了一种NAND FLASH数据存储方法,解决了航空电子领域NAND FLASH数据存储器在飞行事故处理和日常维护时较为不便,查询时间很长,维护成本高的问题。

考虑到现有技术的上述问题,根据本发明公开的一个方面,本发明采用以下技术方案:

一种NAND FLASH数据存储方法,首先根据NAND FLASH的最小擦除单位为块,块由页组成的特征,采用顺序存储的方式进行数据存储,当存储容量达到数据容量的最后一块时,自动擦除第一块存储的数据,同时在进行数据存储时,每个数据由若干个数据块组成,每个数据块均包括数据索引区和有效数据区,数据索引信息包括偏移地址、数据类型、数据块类型、履历信息和数据记录状态,其特征在于,方法包括以下步骤:

1)获取最新的记录位置的步骤:

1.1)按顺序读取每一个块的数据索引信息;

1.2)当数据块的数据索引区指示当前块为空块时,停止搜索;记录当前地址,即为最新的记录位置;

2)存储的步骤:

2.1)每个数据块的第0页固定写入数据索引信息,第1页开始为有效数据区;

2.2)首先在当前块的第0页写入数据索引信息,说明当前数据索引信息中的数据块类型为文件起始块,同时擦除下一数据块,如果当前块为当前存储空间的最后一个块,则下一数据块为当前存储空间的第0块;

2.3)当数据超过一个块时,在下一个数据块的第0页继续写入数据索引信息,并标明当前数据索引信息中的数据块类型为有效数据块;

2.4)当在写入过程中发现写入不正确时,自动将数据搬移到下一块,同时将数据索引信息中的数据块类型标识标为坏块;

3)数据循环存储的步骤:当数据写入存储空间的最后一个数据块时,自动擦除存储空间的第0个数据块,同时标注该数据块的数据索引信息;

4)按履历信息搜索并下载的步骤:

4.1)根据步骤2)所存储的数据索引信息,得到当前存储数据的数据类型、数据块类型、履历信息,进入步骤4.2);

4.2)如果数据索引信息中的数据块类型是文件起始块,则进入步骤4.3),否则继续搜索下一个数据块是否为文件起始块;

4.3)判断当前块存储的数据索引信息中的履历信息是否与要搜索并下载的履历信息一致,如果一致则从当前块的第1页开始下载当前存储的数据,当下载到下一个数据块时,进入步骤4.4);如果不一致,继续在数据索引信息中的数据块类型为数据起始块的数据块中查找与下载的履历信息一致的数据块位置,直到找到位置,找到后从当前块的第1页开始下载当前存储的数据,当下载到下一个数据块时,进入步骤4.4);如果当前存储空间的所有文件起始块中的数据索引信息中的履历信息均与下载的不一致,则进行步骤4.5);

4.4)判断下一个数据块据索引信息的数据块类型是否为有效数据块,如果为有效数据块,则重复4.3);

4.5)从第0块开始判断当前块存储的数据索引信息中的履历信息是否与要搜索并下载的履历信息一致,并且数据索引信息中的数据块类型为有效数据块,直到找到一个有效数据块并且履历信息与需下载的履历信息一致的数据块,找到该数据块块后,则从当前块的第1页开始下载当前存储的数据,当下载到下一个数据块时,进入步骤4.4);

5)NAND FLASH掉电时存储的步骤:掉电时,在当前数据块的数据索引信息中的数据记录状态位置写入掉电状态信息,便于数据恢复;

6)循环存储后数据块中剩余数据的恢复步骤:通过读取每个数据块的数据索引信息,虽然部分数据因为循环存储被覆盖,但是由于每个数据块均有履历信息,按步骤4.1)、4.3)和4.5)恢复一部分未被覆盖的剩余的数据。

本发明能有效解决航空机载设备领域数据存储管理的问题,可以在数据循环记录时恢复未被完全覆盖的数据中的剩余部分;本发明在写入数据索引信息时,增加了数据文件写入状态,用于标识是正常上电写入还是掉电状态写入,便于恢复掉电时写入的数据,并能有效判断掉电时刻;本发明由于在数据存储是写入了大量数据索引信息,方法数据查找和比对,极大的提高了大量履历的下载速度。

附图说明

图1是本发明NAND FLASH内部存储结构示意图。

图2是本发明数据文件存放方式结构示意图。

图3是本发明数据文件索引信息的内容。

图4是本发明具体实施方式的数据存储区结构图。

图5是本发明具体实施方式每个数据块数据文件存放方式结构示意图。

图6是本发明具体实施方式数据索引信息内容示例一(数据文件起始块)。

图7是本发明具体实施方式数据索引信息内容示例二(有效数据块正常上电状态)。

图8是本发明具体实施方式数据索引信息内容示例三(有效数据块掉电状态记录)。

图9是本发明具体实施方式数据索引信息内容示例四(空块)。

图10是本发明具体实施方式数据索引信息内容示例五(环块)。

具体实施方式

下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。

如图1所示,首先根据NAND FLASH的最小擦除单位为块,块由页组成的特征,采用顺序存储的方式进行数据存储,当存储容量达到数据容量的最后一块时,自动擦除第一块存储的数据,同时在进行数据存储时,每个数据由若干个数据块组成,如图2所示。每个数据块均包括数据索引区和有效数据区,数据索引包括偏移地址、数据类型、数据块类型、履历信息和数据记录状态,如图3所示。

其中,

偏移地址:代表有效数据在一个数据块中的起始位置;

数据类型:代表当前数据块存储数据种类,例如:飞行数据,音频数据等;

数据块类型:代表当前数据块是什么类型,例如:有效数据块,文件起始块、坏块、空块等;

履历信息:代表当前数据的履历信息,由年+月+日+时+分+秒组成;

数据记录状态:代表当前数据块是正常上电时记录的数据还是掉电时记录的数据。

本发明的一种NAND FLASH数据存储方法,包括以下步骤:

1)获取最新的记录位置的步骤:

1.1)按顺序读取每一个块的数据索引信息;

1.2)当数据块的数据索引区指示当前块为空块时,停止搜索;记录当前地址,即为最新的记录位置;

2)存储的步骤:

2.1)每个数据块的第0页固定写入数据索引信息,第1页开始为有效数据区;

2.2)首先在当前块的第0页写入数据索引信息,说明当前数据索引信息中的数据块类型为文件起始块,同时擦除下一数据块,如果当前块为当前存储空间的最后一个块,则下一数据块为当前存储空间的第0块;

2.3)当数据超过一个块时,在下一个数据块的第0页继续写入数据索引信息,并标明当前数据索引信息中的数据块类型为有效数据块;

2.4)当在写入过程中发现写入不正确时,自动将数据搬移到下一块,同时将数据索引信息中的数据块类型标识标为坏块;

3)数据循环存储的步骤:当数据写入存储空间的最后一个数据块时,自动擦除存储空间的第0个数据块,同时标注该数据块的数据索引信息;

4)按履历信息搜索并下载的步骤:

4.1)根据步骤2)所存储的数据索引信息,得到当前存储数据的数据类型、数据块类型、履历信息,进入步骤4.2);

4.2)如果数据索引信息中的数据块类型是文件起始块,则进入步骤4.3),否则继续搜索下一个数据块是否为文件起始块;

4.3)判断当前块存储的数据索引信息中的履历信息是否与要搜索并下载的履历信息一致,如果一致则从当前块的第1页开始下载当前存储的数据,当下载到下一个数据块时,进入步骤4.4);如果不一致,继续在数据索引信息中的数据块类型为数据起始块的数据块中查找与下载的履历信息一致的数据块位置, 直到找到位置,找到后从当前块的第1页开始下载当前存储的数据,当下载到下一个数据块时,进入步骤4.4);如果当前存储空间的所有文件起始块中的数据索引信息中的履历信息均与下载的不一致,则进行步骤4.5);

4.4)判断下一个数据块据索引信息的数据块类型是否为有效数据块,如果为有效数据块,则重复4.3);

4.5)从第0块开始判断当前块存储的数据索引信息中的履历信息是否与要搜索并下载的履历信息一致,并且数据索引信息中的数据块类型为有效数据块,直到找到一个有效数据块并且履历信息与需下载的履历信息一致的数据块,找到该数据块块后,则从当前块的第1页开始下载当前存储的数据,当下载到下一个数据块时,进入步骤4.4);

5)NAND FLASH掉电时存储的步骤:掉电时,在当前数据块的数据索引信息中的数据记录状态位置写入掉电状态信息,便于数据恢复;

6)循环存储后数据块中剩余数据的恢复步骤:通过读取每个数据块的数据索引信息,虽然部分数据因为循环存储被覆盖,但是由于每个数据块均有履历信息,按步骤4.1)、4.3)和4.5)恢复一部分未被覆盖的剩余的数据。

下面以图4至图10所示为例进行描述。

如图4所示,数据存储区由芯片1、芯片2、芯片3和芯片4组成,每个芯片有8192个数据块,每个数据块由64页组成,每一页大小为2048字节。

则应用本发明主要包括以下步骤:

1):获取最新的记录位置的步骤:

1.1):从第0块开始读取每一块第1页的数据块索引信息;

1.2):当数据索引为全FF时(如图9),即为最新的记录位置,记录当前位 置。

2):记录的步骤:

2.1):每个数据块的第0页固定写入数据索引信息,第1页开始为有效数据区(如图5);

2.2):首先在当前块的第0页写入数据索引信息,如图6所示,标明当前数据索引信息中的数据块类型为文件起始块,同时擦除下一数据块,如果当前块为当前存储空间的最后一个块,则下一数据块为当前存储空间的第0块;

2.3):当数据超过一个块时(如图7所示),在下一个数据块的第0页继续写入数据信息,并标明当前数据索引信息中的数据块类型为有效数据块;

2.4):当在写入过程中发现写入不正确时,自动将数据搬移到下一块,并标明当前数据索引信息中的数据块类型为有效数据块(如图10所示)。

3):数据循环记录的步骤:当数据写入存储空间的最后一个数据块时,自动擦除存储空间的第0个数据块,同时标注该数据块的数据索引信息(如图4所示);

4):按履历搜索并下载的步骤:

4.1):根据步骤2.2)所写入的履历信息,如图6所示,得到当前记录的数据类型、数据块类型、履历信息,进入步骤4.2);

4.2):如果数据索引信息中的数据块类型是文件起始块,则进入步骤4.3),否则继续搜索下一个数据块是否为文件起始块,如图6所示;

4.3):判断其记录的履历信息是否与要搜索并下载的履历信息一致(2015/04/07/10/30/25/0001),则从当前块的第1页开始下载该数据,当下载到下一个数据块时,进入步骤4.4);如果不一致,继续在数据索引信息中的数 据块类型为数据起始块的数据块中查找与下载的履历信息一致的数据块位置,直到找到位置,找到后从当前块的第1页开始下载当前存储的数据,当下载到下一个数据块时,进入步骤4.4);如果当前存储空间的所有文件起始块中的数据索引信息中的履历信息均与下载的不一致,说明该数据已经被循环存储覆盖了,则进行步骤4.5);

4.4):判断下一个数据块数据索引区的数据块类型是否为有效数据块(如图7所示),如果为有效数据块,则重复4.3);

4.5)从第0块开始判断当前块存储的数据索引信息中的履历信息是否与要搜索并下载的履历信息一致,并且数据索引信息中的数据块类型为有效数据块,直到找到一个有效数据块并且履历信息与需下载的履历信息一致的数据块,找到该数据块块后,则从当前块的第1页开始下载当前存储的数据,当下载到下一个数据块时,进入步骤4.4);

5):数据掉电时记录的步骤:掉电时,在当前数据块的数据索引信息中的数据记录状态位置写入掉电状态信息,便于数据恢复(如图8所示);

6):循环后覆盖的数据恢复步骤:通过读取每个数据块的数据索引信息,虽然部分数据因为循环存储被覆盖,但是由于每个数据块均有履历信息(2015/04/07/10/30/25/0001),按步骤4.1)、4.3)和4.5)恢复一部分剩余的数据(如图6至图10所示)。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1