一种Flash存储器中历史数据的读取方法及装置与流程

文档序号:16781355发布日期:2019-02-01 19:09阅读:247来源:国知局
一种Flash存储器中历史数据的读取方法及装置与流程

本发明属于计算机技术领域,尤其涉及一种flash存储器中历史数据的读取方法及装置。



背景技术:

闪存(flashmemory,简称flash)属于内存器件的一种,是非易失性内存,在没有电流供应的条件下也能够长久的保持数据,该特性使得flash存储器成为各类便携式型数字设备的一种存储介质。

flash存储器在写入数据时,必须先进行擦除操作,由于flash存储器的充放电特性,使得flash存储器的读写次数有物理上的限制。为了减小flash存储器读写数据时所受到的损耗,市面上大部分的flash存储器预留有缓冲空间,该缓冲空间并不是固定的某个区块。然而,这使得存储在flash存储器上的历史数据在flash存储器上的位置可能发生变化,影响flash存储器上历史数据的读取效率和准确率。



技术实现要素:

本发明实施例提供一种flash存储器中历史数据的读取方法,旨在解决flash存储器中历史数据读取效率和准确率不高的问题。

本发明实施例是这样实现的:

当检测到flash存储器重新上电时,顺序读取所述flash存储器扇区上的每个数据结构,所述数据结构至少携带相应的数据索引;

判断读取的当前数据索引是否为无效数据,所述当前数据索引为当前读取的所述数据结构的数据索引;

当所述当前数据索引为无效数据时,从所述flash存储器的扇区上读取所述当前数据索引的前一数据索引所对应的数据结构。

更进一步地,所述数据结构还携带有相应的设置参数。

更进一步地,从所述flash存储器的扇区上读取所述当前数据索引的前一数据索引所对应的数据结构的步骤,包括:

判断所述当前数据索引是否为所述flash存储器扇区上第256个数据索引;

当所述当前数据索引为所述第256个数据索引时,读取所述flash存储器扇区上第254个数据索引对应的数据结构。

更进一步地,顺序读取所述flash存储器扇区上的每个数据结构的步骤,包括:

从所述flash存储器扇区上的第一个数据索引开始,逐个读取所述flash存储器扇区上的每个数据结构。

本发明实施例还提供一种flash存储器中历史数据的读取装置,其特征在于:

数据顺序读取单元,用于当检测到flash存储器重新上电时,顺序读取所述flash存储器扇区上的每个数据结构,所述数据结构至少携带相应的数据索引;

无效索引判断单元,用于判断读取的当前数据索引是否为无效数据,所述当前数据索引为当前读取的所述数据结构的数据索引;以及

前一数据读取单元,用于当所述当前数据索引为无效数据时,从所述flash存储器的扇区上读取所述当前数据索引的前一数据索引所对应的数据结构。

更进一步地,所述数据结构还携带有相应的设置参数。

更进一步地,所述前一数据读取单元包括:

索引位置判断单元,用于判断所述当前数据索引是否为所述flash存储器扇区上第256个数据索引;以及

数据结构读取单元,用于当所述当前数据索引为所述第256个数据索引时,读取所述flash存储器扇区上第254个数据索引对应的数据结构。

更进一步地,所述数据顺序读取单元包括:

数据顺序读取子单元,用于从所述flash存储器扇区上的第一个数据索引开始,逐个读取所述flash存储器扇区上的每个数据结构。

本发明中由于flash存储器扇区上的数据结构至少携带数据索引,通过数据索引在flash存储器扇区上进行数据结构的读取,并通过判断当前数据索引是否为无效数据来准确获得flash存储器的扇区上上次保存的数据结构,所以有效地提高了flash存储器上历史数据的读取效率和准确率。

附图说明

图1是实施例一提供的一种flash存储器中历史数据的读取方法的实现流程图;

图2是实施例一提供的一种flash存储器中历史数据的读取方法中数据结构的结构示例图;

图3是实施例二提供的一种flash存储器中历史数据的读取方法的实现流程图;

图4是实施例三提供的一种flash存储器中历史数据的读取装置的结构示意图;

图5是实施例四提供的一种flash存储器中历史数据的读取装置的结构示意图;以及

图6是实施例四提供的一种flash存储器中历史数据的读取装置的优选结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例提供的flash存储器中历史数据的读取方法,通过在flash存储器扇区上的数据结构上设置数据索引,根据该数据索引在flash存储器扇区上进行数据结构的读取,并通过判断当前数据索引是否为无效数据来准确获得flash存储器的扇区上上次保存的数据结构,从而有效的提高了flash存储器上历史数据的读取效率和准确率。

实施例一

在步骤s101中,当检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构,数据结构至少携带相应的数据索引。

在本发明实施例中,flash存储器上的读写操作需要在flash存储器上电之后方可进行,因此在接收到用户读取flash存储器上的历史数据的请求后,检测flash存储器是否重新上电。在检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构,其中,每个数据结构上至少携带相应的数据索引,以便于依据数据索引提高历史数据读取的准确率。

优选地,在顺序读取flash存储器扇区上的每个数据结构时,从flash存储器扇区上的第一个数据索引开始,逐个读取flash存储器扇区上的每个数据结构,从而避免在读取过程中遗漏flash存储器扇区上的数据结构,提高数据结构的读取效果。

优选地,flash存储器扇区上的每个数据结构还携带有相应的设置参数,以提高flash存储器扇区上每个数据结构的信息完整性。

进一步优选地,设置参数包括屏幕亮度、饱和度、字体和语言,从而提高flash存储器上数据的显示效果。

作为示例地,如图2所示,flash存储器扇区上的每个数据结构由一个索引和多个参数组成,两个索引之间的地址间隔是一个数据结构的大小。

在步骤s102中,判断读取的当前数据索引是否为无效数据,当前数据索引为当前读取的数据结构的数据索引。

在本发明实施例中,当前数据索引为当前从flash存储器扇区上读取的数据结构所对应的数据索引。在从flash存储器扇区上读取的数据结构,同时判断该数据结构的数据索引是否为无效数据。其中,在flash存储器扇区上,无效数据即0xff。

在步骤s103中,当当前数据索引为无效数据时,从flash存储器的扇区上读取当前数据索引的前一数据索引所对应的数据结构。

在本发明实施例中,当当前数据索引为无效数据时,可确定当前数据索引之后的数据索引也都是无效数据,而当前数据索引的前一数据索引所对应的数据结构即上次保存的历史数据,因此从flash存储器的扇区上读取当前数据索引的前一数据索引所对应的数据结构。当当前数据索引不为无效数据时,跳转至继续顺序读取flash存储器扇区上的每个数据结构。

在本发明实施例中,在检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构,判断读取的当前数据索引是否为无效数据,当当前数据索引为无效数据时,从flash存储器的扇区上读取当前数据索引的前一数据索引所对应的数据结构,当前数据索引为当前读取的数据结构的数据索引,从而有效地提高了flash存储器上历史数据的读取效率和准确率。

实施例二

在步骤s301中,当检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构,数据结构至少携带相应的数据索引;

在本发明实施例中,flash存储器上的读写操作需要在flash存储器上电之后方可进行,因此在接收到用户读取flash存储器上的历史数据的请求后,检测flash存储器是否重新上电。在检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构。

在步骤s302中,判断读取的当前数据索引是否为无效数据,当前数据索引为当前读取的数据结构的数据索引。

在本发明实施例中,当前数据索引为当前从flash存储器扇区上读取的数据结构所对应的数据索引。在从flash存储器扇区上读取的数据结构,同时判断该数据结构的数据索引是否为无效数据。

在步骤s303中,当当前数据索引为无效数据时,判断当前数据索引是否为flash存储器扇区上第256个数据索引。

在步骤s304中,当当前数据索引为第256个数据索引时,读取flash存储器扇区上第254个数据索引对应的数据结构。

在本发明实施例中,由于flash存储器扇区上第255个数据索引无论是否为无效数据,其值都恰好为0xff,因此为避免第255个数据索引的数据结构无法进行读取的情况,在flash存储器上进行数据读取时都跳过第255个数据结构大小的地址。在当前数据索引为无效数据时,判断当前数据索引是否为第256个数据索引,当当前数据索引为第256个数据索引时,即第256个数据索引为无效数据时,可确定第254个数据索引所对应的数据结构为上次保存的历史数据,因此读取flash存储器扇区上第254个数据索引对应的数据结构。

优选地,在顺序读取flash存储器扇区上的每个数据结构时,跳过第255个数据索引对应的数据结构,从而有效地提高flash存储器中历史数据读取的准确度。

在本发明实施例中,在检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构,当读取的当前数据索引为无效数据且当前数据索引为第256个数据索引时,从flash存储器的扇区上读取第254个数据索引对应的数据结构,从而有效地提高了flash存储器上历史数据的读取效率和准确率。

实施例三

数据顺序读取单元41,用于当检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构,数据结构至少携带相应的数据索引。

在本发明实施例中,flash存储器上的读写操作需要在flash存储器上电之后方可进行,因此在接收到用户读取flash存储器上的历史数据的请求后,检测flash存储器是否重新上电。在检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构,其中,每个数据结构上至少携带相应的数据索引,以便于依据数据索引提高历史数据读取的准确率。

优选地,flash存储器扇区上的每个数据结构还携带有相应的设置参数,以提高flash存储器扇区上每个数据结构的信息完整性。

进一步优选地,设置参数包括屏幕亮度、饱和度、字体和语言,从而提高flash存储器上数据的显示效果。

无效索引判断单元42,用于判断读取的当前数据索引是否为无效数据,当前数据索引为当前读取的数据结构的数据索引。

在本发明实施例中,当前数据索引为当前从flash存储器扇区上读取的数据结构所对应的数据索引。在从flash存储器扇区上读取的数据结构,同时判断该数据结构的数据索引是否为无效数据。其中,在flash存储器扇区上,无效数据即0xff。

前一数据读取单元43,用于当当前数据索引为无效数据时,从flash存储器的扇区上读取当前数据索引的前一数据索引所对应的数据结构。

在本发明实施例中,当当前数据索引为无效数据时,可确定当前数据索引之后的数据索引也都是无效数据,而当前数据索引的前一数据索引所对应的数据结构即上次保存的历史数据,因此从flash存储器的扇区上读取当前数据索引的前一数据索引所对应的数据结构。当当前数据索引不为无效数据时,继续顺序读取flash存储器扇区上的每个数据结构。

在本发明实施例中,在检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构,判断读取的当前数据索引是否为无效数据,当当前数据索引为无效数据时,从flash存储器的扇区上读取当前数据索引的前一数据索引所对应的数据结构,当前数据索引为当前读取的数据结构的数据索引,从而有效地提高了flash存储器上历史数据的读取效率和准确率。

实施例四

数据顺序读取单元51,用于当检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构,数据结构至少携带相应的数据索引。

在本发明实施例中,flash存储器上的读写操作需要在flash存储器上电之后方可进行,因此在接收到用户读取flash存储器上的历史数据的请求后,检测flash存储器是否重新上电。在检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构。

无效索引判断单元52,用于判断读取的当前数据索引是否为无效数据,当前数据索引为当前读取的数据结构的数据索引。

在本发明实施例中,当前数据索引为当前从flash存储器扇区上读取的数据结构所对应的数据索引。在从flash存储器扇区上读取的数据结构,同时判断该数据结构的数据索引是否为无效数据。

索引位置判断单元53,用于当当前数据索引为无效数据时,判断当前数据索引是否为flash存储器扇区上第256个数据索引。

数据结构读取单元54,用于当当前数据索引为第256个数据索引时,读取flash存储器扇区上第254个数据索引对应的数据结构。

在本发明实施例中,由于flash存储器扇区上第255个数据索引无论是否为无效数据,其值都恰好为0xff,因此为避免第255个数据索引的数据结构无法进行读取的情况,在flash存储器上进行数据读取时都跳过第255个数据结构大小的地址。在当前数据索引为无效数据时,判断当前数据索引是否为第256个数据索引,当当前数据索引为第256个数据索引时,即第256个数据索引为无效数据时,可确定第254个数据索引所对应的数据结构为上次保存的历史数据,因此读取flash存储器扇区上第254个数据索引对应的数据结构。

优选地,如图6所示,数据顺序读取单元51包括:

数据顺序读取子单元611,用于从flash存储器扇区上的第一个数据索引开始,逐个读取flash存储器扇区上的每个数据结构。

在本发明实施例中,在顺序读取flash存储器扇区上的每个数据结构时,从flash存储器扇区上的第一个数据索引开始,逐个读取flash存储器扇区上的每个数据结构,从而避免在读取过程中遗漏flash存储器扇区上的数据结构,提高数据结构的读取效果。

进一步优选地,在顺序读取flash存储器扇区上的每个数据结构时,跳过第255个数据索引对应的数据结构,从而有效地提高flash存储器中历史数据读取的准确度。

在本发明实施例中,在检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构,当读取的当前数据索引为无效数据且当前数据索引为第256个数据索引时,从flash存储器的扇区上读取第254个数据索引对应的数据结构,从而有效地提高了flash存储器上历史数据的读取效率和准确率。

综上所述,本发明实施例提供的flash存储器中历史数据的读取方法及装置,在检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构,判断读取的当前数据索引是否为无效数据,当当前数据索引为无效数据时,从flash存储器的扇区上读取当前数据索引的前一数据索引所对应的数据结构,当前数据索引为当前读取的数据结构的数据索引,从而有效地提高了flash存储器上历史数据的读取效率和准确率。同时,在检测到flash存储器重新上电时,顺序读取flash存储器扇区上的每个数据结构,当读取的当前数据索引为无效数据且当前数据索引为第256个数据索引时,从flash存储器的扇区上读取第254个数据索引对应的数据结构,进一步提高了flash存储器上历史数据的读取效率和准确率。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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