基于非易失性存储器的存储方法、数据存储结构及装置与流程

未命名 09-15 阅读:80 评论:0


1.本技术涉及计算机技术领域,特别涉及一种基于非易失性存储器的存储方法、数据存储结构及装置。


背景技术:

2.在现有技术中往往采用文件系统的方式进行数据存储,文件系统是操作系统中负责管理持久数据的子系统,简而言之,就是负责将用户的文件存到磁盘硬件中。文件系统的基本数据单位是文件,其目的主要是对磁盘上的文件进行组织管理,组织的方式不同,就会对应形成不同的文件系统。但是采用文件系统的方式进行存储对于内存较小,空间较为紧张的系统而言,会过多的占用系统资源,在数据量较大的情况下导致存储的速度慢。


技术实现要素:

3.有鉴于此,本技术实施例提供了基于非易失性存储器的存储方法、数据存储结构及装置。旨在实现解决占用系统资源过多,在数据量较大的情况下导致存储的速度慢的技术问题。
4.第一方面,本技术实施例提供了一种基于非易失性存储器的存储方法,所述方法包括:
5.获取基于扇区地址计算的物理页内扇区编号;
6.基于所述扇区编号确定对应的扇区时间在所述物理页内备用区域的存储位置,所述存储位置是以扇区作为存储单位划分的;
7.基于所述存储位置进行数据存储,判断是否发生对时操作,若是,则将所述对时操作对应的对时时间转换为当前的所述扇区时间,在当前的所述扇区时间对应的存储位置继续进行所述数据存储。
8.可选的,所述判断是否发生对时操作之前,还包括:
9.判断当前时间是否大于最新数据写入的扇区时间;
10.若是,则将数据写入缓存数组;
11.若否,则在原有的日志数据增加一个对时时间,并写入缓存数组。
12.可选的,所述判断是否发生对时操作,包括:
13.在回调函数中判断当前时间是否大于最新写入数据的扇区时间;
14.若是,则将所述当前时间写入所述扇区的时间数组;
15.若否,则确定发生所述对时操作,并计算实际写入数据的扇区时间,将所述实际写入数据的扇区时间写入所述扇区的时间数组。
16.可选的,所述计算实际写入数据的扇区时间,包括:
17.基于所述当前时间及最新的对时时间,确定时间间隔;
18.基于所述时间间隔及所述最新写入数据的扇区时间,计算所述实际写入数据的扇区时间。
19.可选的,所述基于所述扇区编号确定对应的扇区时间在所述物理页内备用区域的存储位置,包括:
20.基于扇区地址计算所述物理页内的扇区编号;
21.基于所述扇区编号作为索引,确定对应的所述扇区时间在所述物理页内备用区域的存储位置。
22.可选的,所述方法还包括:
23.当一个扇区存储完毕,将地址指向下一个扇区位置进行存储;
24.对所述存储的过程进行检测,判断是否发生覆盖存储,若是,则对所述发生覆盖存储的部分进行擦除处理。
25.第二方面,本技术实施例提供了一种基于非易失性存储器的数据存储结构,所述数据存储结构包括:
26.所述数据头包括头部标志、数据长度、时间戳及写入数据类型的信息,用于区分数据;
27.所述数据体,用于存放所述数据;
28.所述校验位,用于在所述数据解析过程中确认所述数据的有效性。
29.第三方面,本技术实施例提供了一种基于非易失性存储器的存储装置,所述装置包括:
30.获取模块,用于获取基于扇区地址计算的物理页内扇区编号;
31.位置确定模块,用于基于所述扇区编号确定对应的扇区时间在所述物理页内备用区域的存储位置,所述存储位置是以扇区作为存储单位划分的;
32.存储模块,用于基于所述存储位置进行数据存储,判断是否发生对时操作,若是,则将所述对时操作对应的对时时间转换为当前的所述扇区时间,在当前的所述扇区时间对应的存储位置继续进行所述数据存储。
33.可选的,所述存储模块还用于:
34.判断当前时间是否大于最新数据写入的扇区时间;
35.若是,则将数据写入缓存数组;
36.若否,则在原有的日志数据增加一个对时时间,并写入缓存数组。
37.可选的,所述存储模块,具体用于:
38.在回调函数中判断当前时间是否大于最新写入数据的扇区时间;
39.若是,则将所述当前时间写入所述扇区的时间数组;
40.若否,则确定发生所述对时操作,并计算实际写入数据的扇区时间,将所述实际写入数据的扇区时间写入所述扇区的时间数组。
41.第四方面,本技术实施例提供了一种计算机存储介质,所述计算机存储介质中存储有代码,当所述代码被运行时,运行所述代码的设备实现前述第一方面任一项所述方法。
42.本技术提供了一种基于非易失性存储器的存储方法、数据存储结构及装置,在执行所述方法时,首先获取基于扇区地址计算的物理页内扇区编,然后基于所述扇区编号确定对应的扇区时间在所述物理页内备用区域的存储位置,所述存储位置是以扇区作为存储单位划分的。最后基于所述存储位置进行数据存储,判断是否发生对时操作,若是,则将所述对时操作对应的对时时间转换为当前的所述扇区时间,在当前的所述扇区时间对应的存
储位置继续进行所述数据存储。如此,通过计算扇区编号,并基于扇区编号确定存储位置,能够便于用户后续进行数据查找的便捷性,同时通过扇区编号能够与存储的数据建立起一定的联系,便于定位及记录该数据。采用扇区的方式进行数据存储能够便于管理,以此方式代替现有技术中的文件系统存储方式,能够使得存储操作具有执行速度快、实行性高、低成本等优点。同时,在本方法中还提出了一种对时操作,基于所述存储位置进行数据存储,判断是否发生对时操作,若是,则将所述对时操作对应的对时时间转换为当前的所述扇区时间,在当前的所述扇区时间对应的存储位置继续进行所述数据存储。通过对时的操作能够实时记录对时的时间,保证记录时间的递增性,也能提高系统的鲁棒性。
附图说明
43.为更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本技术实施例提供的一种基于非易失性存储器的存储方法的流程图;
45.图2为本技术实施例提供的一种数据存储结构的结构示意图;
46.图3为本技术实施例提供的一种基于非易失性存储器的存储装置的结构示意图;
47.图4为本技术实施例提供的一种应用场景下的基于非易失性存储器的存储方法的流程图。
具体实施方式
48.在对于相关技术的研究中发现,通常采用文件系统进行数据存储。文件系统是指一个对磁盘空间进行管理,实现数据存取的系统。其存在的意义,就是能更有效的组织、管理和使用磁盘上的数据。实质上,它简化了用户对磁盘空间的使用方法。所以简而言之:文件系统就是为了用户更方便的使用硬盘。有了文件系统,我们可以直接将abc写入1.txt。然后扔给一个目录,这个目录下的文件就存到了硬盘中。下次我们读就再次从这个目录下取这个文件即可。所有的需要记录的信息,寻址等操作,都由文件系统来帮我们完成。
49.但是常见的文件系统虽然功能强大,对于要求稳定性而精简代码量的嵌入式系统而言,仅仅为了实现数据记录的管理而对系统添加文件系统会造成不必要的资源浪费,影响系统的性能。尤其是对于内存较小,空间较为紧张的系统而言,采用文件系统的方式进行存储,会过多的占用系统资源,在数据量较大的情况下导致存储的速度慢。
50.基于此,本技术提出了一种基于非易失性存储器的存储方法、数据存储结构及装置。该方法以扇区作为最小的存储单位,以扇区地址计算的页内扇区编号作为索引,从而确定对应的扇区时间在页内备用区域的存储位置;在单片机发生对时操作后按原有时间线继续存储,并按对时时间的时间间隔进行修正,同时增加一列日志数据实时记录对时时间,保证记录时间的递增型,修正日志导出采用二分法在此情况下的缺陷。能够对数据进行可靠的管理,该方案具有执行速度快、可靠性高、实行性高、低成本等优点,能满足大数据量的高速存储要求。
51.图1为本技术实施例提供的一种基于非易失性存储器的存储方法的流程图,参见
图1所示,本技术实施例提供的一种基于非易失性存储器的存储方法包括:
52.s11:获取基于扇区地址计算的物理页内扇区编号。
53.非易失性存储器技术是在关闭计算机或者突然性、意外性关闭计算机的时候数据不会丢失的技术。非易失性存储器技术得到了快速发展,非易失性存储器主要分为块寻址和字节寻址两类。
54.非易失性存储器一般指非易失性内存,非易失性存储器(non-volatile memory,缩写为nvm)是指当电流关掉后,所存储的数据不会消失的电脑存储器。非易失性存储器中,依存储器内的数据是否能在使用电脑时随时改写为标准,可分为两大类产品,即rom和flash memory。在本技术实施例中以nandflash为例进行具体的阐述,在实际应用中本技术实施例中提到的方法可以应用于其他种类的非易失性存储器,在此不做限定。
55.nandflash是一种新型的存储器件,由于其具有存储密度大、写入擦除速度快、成本低廉等突出优点,目前已经成为市场上嵌入式系统的主流存储器件。
56.nandflash由块(block)构成,块由页(page)构成。擦写以块为单位,读写以页为单位。每个页包含数据区和空闲(spare)区,spare区用于纠错码(ecc)等软件开销。nandflash复用指令、地址和数据总线,串行地存取数据和发指令,节省芯片引脚数,不用改变硬件设计就可支持更大容量的芯片。
57.对nand的操作主要有读、写、擦除三种:页写入、块擦除将块全部字节编程为0xff来回收空间.工作时序都是:先发操作指令,再发要操作单元的地址,待芯片就绪后进行各自的处理,如读操作是读数据并做ecc校验。
58.一个nandflash由很多块(block)组成,每个块又由一定数量的页面(page)组成。在数据存储逻辑上,每个页面可以分为多个扇区(sector),其中每个扇区包括数据区域和备用区域。上述提到的页面也即物理页。
59.上述s11中提到“获取基于扇区地址计算的物理页内扇区编号”,具体而言,当nandflash写入数据到数据区域时,需要按该数据区域的逻辑地址进行寻址。当nandflash写入数据到一个扇区的数据区域时,该扇区的备用区域对应的扩展空间所在的页数读入内部存储器中。当nandflash在读取数据的时候,必须先读取数据区域的数据、备用区域的冗余码和备用区与对应扩展空间的冗余码,再通过解码器解码才能得到。上述提到的扇区编号,可以理解为是存储数据时对应生成的标识,可以实现与上述提到的冗余码相同的功能。
60.具体的计算方式可以通过哈希算法进行计算出唯一的哈希值作为扇区编号,也可以采用其他的计算方法进行计算,具体的计算方式可以由本领域技术人员根据实际情况以及应用场景进行自由设定,在此不进行限定。
61.s12:基于所述扇区编号确定对应的扇区时间在所述物理页内备用区域的存储位置,所述存储位置是以扇区作为存储单位划分的。
62.具体而言,首先需要基于扇区地址计算所述物理页内的扇区编号,然后以所述扇区编号作为索引,确定对应的所述扇区时间在所述物理页内备用区域的存储位置。
63.上述提到“所述存储位置是以所述扇区作为存储单位划分的”,其目的是在于:在相关技术中采用的是以字节作为存储单位进行划分存储,存储的速度较慢,效率低。使用扇区作为存储单位进行存储,一次可以存储多个字节的数据,如此,能够提高存储速度,进而提高数据存储的效率。在本技术实施例中,可以以扇区作为最小的存储单元进行存储,也可
以只采用扇区作为存储单元进行存储,还可以采用比扇区更大的存储单元进行数据存储,具体可以由本领域技术人员根据实际情况及应用场景进行设定,在此不作限定。
64.s13:基于所述存储位置进行数据存储,判断是否发生对时操作,若是,则将所述对时操作对应的对时时间转换为当前的所述扇区时间,在当前的所述扇区时间对应的存储位置继续进行所述数据存储。
65.判断是否发生对时操作的方法具体为:在回调函数中判断当前时间是否大于最新写入数据的扇区时间;
66.若是,则将所述当前时间写入所述扇区的时间数组;
67.若否,则确定发生所述对时操作,并计算实际写入数据的扇区时间,将所述实际写入数据的扇区时间写入所述扇区的时间数组。
68.上述提到的计算实际写入数据的扇区时间的方法具体为:
69.基于所述当前时间及最新的对时时间,确定时间间隔;
70.基于所述时间间隔及所述最新写入数据的扇区时间,计算所述实际写入数据的扇区时间。
71.上述提到的当前时间及最新的对时时间,基于这两者可以计算出时间间隔,通过时间间隔以及最新写入数据的扇区时间能够通过计算,计算出实际写入数据的扇区时间。具体的计算过程可以由专门用于计算的计算软件、一段计算机程序、人工、计算设备等方法完成,具体的计算方式可以由本领域技术人员根据实际情况及应用场景进行设定,在此不做限定。
72.本实施例提供了一种基于非易失性存储器的存储方法,该方法主要包括:首先获取基于扇区地址计算的物理页内扇区编,然后基于所述扇区编号确定对应的扇区时间在所述物理页内备用区域的存储位置,所述存储位置是以扇区作为存储单位划分的。最后基于所述存储位置进行数据存储,判断是否发生对时操作,若是,则将所述对时操作对应的对时时间转换为当前的所述扇区时间,在当前的所述扇区时间对应的存储位置继续进行所述数据存储。如此,通过计算扇区编号,并基于扇区编号确定存储位置,能够便于用户后续进行数据查找的便捷性,同时通过扇区编号能够与存储的数据建立起一定的联系,便于定位及记录该数据。采用扇区的方式进行数据存储能够便于管理,以此方式代替现有技术中的文件系统存储方式,能够使得存储操作具有执行速度快、实行性高、低成本等优点。
73.同时,在本方法中还提出了一种对时操作,基于所述存储位置进行数据存储,判断是否发生对时操作,若是,则将所述对时操作对应的对时时间转换为当前的所述扇区时间,在当前的所述扇区时间对应的存储位置继续进行所述数据存储。通过对时的操作能够实时记录对时的时间,保证记录时间的递增性,也能提高系统的鲁棒性。
74.图2为本技术实施例提供的一种数据存储结构的结构示意图,如图2所示,一种基于非易失性存储器的数据存储结构由三个部分组成,具体包括:数据头、数据体和校验。
75.其中,数据头中的head是一个头部标志,在后续解析过程中以此作为区分不同条数据的依据,length是数据体中包含数据的长度,timestamp表示当前写入的时间戳,type表示当前写入的数据记录类型;数据体中存放系统所需记录的数据;校验主要存放crc校验位,在解析的时候,以便确认数据的有效性。
76.上述提出了一种数据存储结构,主要包括数据头、数据体及校验位,附图中对于不
同部分所占据的字节数进行了示意性的表示,可以理解的是,在本实施例提出的数据存储结构中,不同的标志位及内容所可以占用的字节数可以依照实际的应用场景,由本领域的技术人员进行自由设置,在此不作限定。
77.通过上述提出的一种数据存储结构,能够实现数据的存储,利用数据头存储数据的各种属性,数据体存放该存储数据的具体内容,校验位用于解析数据时,确认该数据是否有效,如此能够顺利完成数据的存储工作。
78.图3为本技术实施例提供的一种基于非易失性存储器的存储装置的结构示意图,如图3所示,该装置包括:
79.获取模块100,用于获取基于扇区地址计算的物理页内扇区编号;
80.位置确定模块200,用于基于所述扇区编号确定对应的扇区时间在所述物理页内备用区域的存储位置,所述存储位置是以扇区作为存储单位划分的;
81.存储模块300,用于基于所述存储位置进行数据存储,判断是否发生对时操作,若是,则将所述对时操作对应的对时时间转换为当前的所述扇区时间,在当前的所述扇区时间对应的存储位置继续进行所述数据存储。
82.在可以实现的方式中,所述存储模块300还用于:
83.判断当前时间是否大于最新数据写入的扇区时间;
84.若是,则将数据写入缓存数组;
85.若否,则在原有的日志数据增加一个对时时间,并写入缓存数组。
86.通过上述对于时间的判断,能够确定当前的存储时间是否出现了错误,以便后续可以对于错误的时间进行对时操作,从而能够保证存储过程的准确性。
87.在可以实现的方式中,所述存储模块300,具体用于:
88.在回调函数中判断当前时间是否大于最新写入数据的扇区时间;
89.若是,则将所述当前时间写入所述扇区的时间数组;
90.若否,则确定发生所述对时操作,并计算实际写入数据的扇区时间,将所述实际写入数据的扇区时间写入所述扇区的时间数组。
91.回调函数就是一个通过函数指针调用的函数。如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,就称其为回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。在本实施例中的回调函数可以由本领域技术人员根据实际情况进行设置,在此不作限定。
92.在可以实现的方式中,所述存储模块300,具体用于:
93.基于所述当前时间及最新的对时时间,确定时间间隔;
94.基于所述时间间隔及所述最新写入数据的扇区时间,计算所述实际写入数据的扇区时间。
95.上述实现方式中,主要介绍了如何当数据的存储时间出现问题时,如何完成对时操作,举例而言,可以采取数学方式实现这一过程,假设t1为当前时间,t2为最新的对时时间,t3为最新写入数据的扇区时间,此时可以根据当前时间(t1)及最新的对时时间(t2)计算二者的差值从而得到时间间隔(δt),然后再利用上述时间间隔(δt)以及最新写入数据的扇区时间(t3)计算出实际写入数据的扇区时间。
96.在可以的实现方式中,所述位置确定模块200,具体用于:
97.基于扇区地址计算所述物理页内的扇区编号;
98.基于所述扇区编号作为索引,确定对应的所述扇区时间在所述物理页内备用区域的存储位置。
99.上述提到的存储位置确定的方法仅是本技术实施例中提出的一种可实现的方式,在实际应用中也可以采取其他方式进行存储位置的确定,举例而言,可以为物理页内的各个扇区设置标志位,利用该标志位确定当前是否已经有数据在该扇区的数据区域进行存储,以及可以为该扇区的数据区域的不同字节设置二进制的标志位,该二进制的标志位用于指示数据区域的不同存储字节,同时为不同的存储字节设置判断是否有数据进行存储的标志位,如此,通过上述标志位的设置也能够实现数据存储位置的确定。
100.在可以的实现方式中,所述系统还包括检测模块400,所述检测模块400具体用于:
101.当一个扇区存储完毕,将地址指向下一个扇区位置进行存储;
102.对所述存储的过程进行检测,判断是否发生覆盖存储,若是,则对所述发生覆盖存储的部分进行擦除处理。
103.通过上述对于存储过程的检测,能够确定出是否出现在同一存储位置出现数据的存储覆盖,每次存储完一个扇区会把地址指向下一个扇区位置进行存储,在存储的过程中可能会出现覆盖存储,当发生存储覆盖时将会进行擦除。举例而言,当在跨块的情况下会进行擦除,如果此时达到最大存储地址,则会指向首块进行擦除。
104.本实施例提供了一种基于非易失性存储器的存储装置,该装置具体包括:获取模块、位置确定模块及存储模块,其中,获取模块用于获取基于扇区地址计算的物理页内扇区编号;位置确定模块用于基于扇区编号确定对应的扇区时间在所述物理页内备用区域的存储位置,所述存储位置是以扇区作为存储单位划分的;存储模块用于基于存储位置进行数据存储,判断是否发生对时操作,若是,则将对时操作对应的对时时间转换为当前的扇区时间,在当前的扇区时间对应的存储位置继续进行数据存储。通过采取非易失性存储器的方式利用扇区进行存储,具有执行速度快、可靠性高、实行性高、低成本等优点,能够解决现有技术中采用文件系统进行存储从而产生的资源浪费以及在大数据量下无法完成高速存储的问题。
105.图4为本技术实施例提供的一种应用场景下的基于非易失性存储器的存储方法的流程图,如图4所示,具体的方法流程包括:
106.为了保证获取的起始时间相对准确,上电10s内不进行数据存储,等待rtc全部初始完成稳定后再进行数据记录;上电会从flash或铁电中获取最新写入扇区的时间(last_sector_time),如果当前时间大于最新写入扇区的时间,则直接将数据写入缓存数组,否则在原有日志数据中增加一条对时时间记录,判断此时出现单片机对时场景,并写入缓存数组;在回调函数中再次判断是否出现对时,如果发生对时,将对时时间修改成原有时间线下的时间作为当前扇区时间,并按对时时间的时间间隔进行实时修正,同时以扇区为单位进行数据存储,并以扇区地址计算的页内扇区编号作为索引,从而确定对应的扇区时间在页内备用区域的存储位置;每次存储完一个扇区会把地址指向下一个扇区位置进行存储,由于会发生覆盖存储,在跨块的情况下会进行擦除,如果此时达到最大存储地址,则会指向首块进行擦除。
107.图中的t_now表示当前时间;t_last表示最新的对时时间;last_sector_time表示最新写入的扇区时间。
108.在本实施例提出的一种具体应用场景下的基于非易失性存储器的存储方法,在该流程图中包括了存储过程、对时过程、判断过程等。在一开始上电后10s内不进行数据存储,目的是防止出现系统还未完成初始化,直接进行存储可能会导致存储数据出现丢失或是损坏。而后进行数据存储,在存储过程中进行对时操作,以确保数据存储的准确性,后续会对数据的位置存储情况进行检测,判断是否出现覆盖存储的情况,当出现覆盖存储的情况时进行擦除处理。通过上述流程,能够实现高效准确地进行数据存储。
109.附图中的流程图和框图,图示了按照本技术各种实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
110.本技术实施例还提供了对应的设备以及计算机可读存储介质,用于实现本技术实施例提供的方案。
111.其中,所述设备包括存储器和处理器,所述存储器用于存储指令或代码,所述处理器用于执行所述指令或代码,以使所述设备执行本技术任一实施例所述的一种基于非易失性存储器的存储方法。
112.在实际应用中,所述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
113.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
114.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
115.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机
程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
116.还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
117.以上所述,仅为本技术的一种具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围为准。

技术特征:
1.一种基于非易失性存储器的存储方法,其特征在于,所述方法包括:获取基于扇区地址计算的物理页内扇区编号;基于所述扇区编号确定对应的扇区时间在所述物理页内备用区域的存储位置,所述存储位置是以扇区作为存储单位划分的;基于所述存储位置进行数据存储,判断是否发生对时操作,若是,则将所述对时操作对应的对时时间转换为当前的所述扇区时间,在当前的所述扇区时间对应的存储位置继续进行所述数据存储。2.根据权利要求1所述方法,其特征在于,所述判断是否发生对时操作之前,还包括:判断当前时间是否大于最新数据写入的扇区时间;若是,则将数据写入缓存数组;若否,则在原有的日志数据增加一个对时时间,并写入缓存数组。3.根据权利要求1所述方法,其特征在于,所述判断是否发生对时操作,包括:在回调函数中判断当前时间是否大于最新写入数据的扇区时间;若是,则将所述当前时间写入所述扇区的时间数组;若否,则确定发生所述对时操作,并计算实际写入数据的扇区时间,将所述实际写入数据的扇区时间写入所述扇区的时间数组。4.根据权利要求3所述方法,其特征在于,所述计算实际写入数据的扇区时间,包括:基于所述当前时间及最新的对时时间,确定时间间隔;基于所述时间间隔及所述最新写入数据的扇区时间,计算所述实际写入数据的扇区时间。5.根据权利要求2所述方法,其特征在于,所述基于所述扇区编号确定对应的扇区时间在所述物理页内备用区域的存储位置,包括:基于扇区地址计算所述物理页内的扇区编号;基于所述扇区编号作为索引,确定对应的所述扇区时间在所述物理页内备用区域的存储位置。6.根据权利要求1所述方法,其特征在于,所述方法还包括:当一个扇区存储完毕,将地址指向下一个扇区位置进行存储;对所述存储的过程进行检测,判断是否发生覆盖存储,若是,则对所述发生覆盖存储的部分进行擦除处理。7.一种基于非易失性存储器的数据存储结构,其特征在于,所述存储结构包括:数据头、数据体及校验位;所述数据头包括头部标志、数据长度、时间戳和写入数据类型的信息,用于区分数据;所述数据体,用于存放所述数据;所述校验位,用于在所述数据解析过程中确认所述数据的有效性。8.一种基于非易失性存储器的存储装置,其特征在于,所述装置包括:获取模块,用于获取基于扇区地址计算的物理页内扇区编号;位置确定模块,用于基于所述扇区编号确定对应的扇区时间在所述物理页内备用区域的存储位置,所述存储位置是以扇区作为存储单位划分的;存储模块,用于基于所述存储位置进行数据存储,判断是否发生对时操作,若是,则将
所述对时操作对应的对时时间转换为当前的所述扇区时间,在当前的所述扇区时间对应的存储位置继续进行所述数据存储。9.根据权利要求8所述装置,其特征在于,所述存储模块还用于:判断当前时间是否大于最新数据写入的扇区时间;若是,则将数据写入缓存数组;若否,则在原有的日志数据增加一个对时时间,并写入缓存数组。10.根据权利要求8所述装置,其特征在于,所述存储模块,具体用于:在回调函数中判断当前时间是否大于最新写入数据的扇区时间;若是,则将所述当前时间写入所述扇区的时间数组;若否,则确定发生所述对时操作,并计算实际写入数据的扇区时间,将所述实际写入数据的扇区时间写入所述扇区的时间数组。11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有实现基于非易失性存储器的存储方法的实现程序,所述实现基于非易失性存储器的存储方法的实现程序被处理器执行时实现如权利要求1-6任意一项所述方法的步骤。

技术总结
本申请公开了一种基于非易失性存储器的存储方法、数据存储结构及装置,应用于计算机技术领域。该方法首先获取基于扇区地址计算的物理页内扇区编号;然后基于扇区编号确定对应的扇区时间在物理页内备用区域的存储位置,所述存储位置是以扇区作为存储单位划分的。最后基于存储位置进行数据存储,判断是否发生对时操作,若是,则将对时操作对应的对时时间转换为当前的扇区时间,在当前的扇区时间对应的存储位置继续进行数据存储。在本申请实施例中,实现了解决占用系统资源过多,在数据量较大的情况下导致存储的速度慢的技术问题。情况下导致存储的速度慢的技术问题。情况下导致存储的速度慢的技术问题。


技术研发人员:段鹏飞 朱凯 赵云飞 李青
受保护的技术使用者:阳光储能技术有限公司
技术研发日:2023.06.21
技术公布日:2023/9/13
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐