CN114063930A - 一种非易失性内存介质数据更新方法和装置 - Google Patents
一种非易失性内存介质数据更新方法和装置 Download PDFInfo
- Publication number
- CN114063930A CN114063930A CN202111414248.9A CN202111414248A CN114063930A CN 114063930 A CN114063930 A CN 114063930A CN 202111414248 A CN202111414248 A CN 202111414248A CN 114063930 A CN114063930 A CN 114063930A
- Authority
- CN
- China
- Prior art keywords
- data
- numerical value
- updating
- initial value
- processed
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种非易失性内存介质数据更新方法、装置、电子设备和存储介质,所述方法包括:对原始数据进行原子操作处理,得到与第一序列号对应的第一处理后数值;以及判断第二处理后数值是否大于第一处理后数值,若判断出第二处理后数值大于第一处理后数值时,释放存储于第一数据空间的原始数据,否则,则忽略处理。本申请实施例提供的数据更新方法,通过将更新数据写到新的第二数据空间来减少NVM的写入次数和数据量,以及通过比较原始数据和更新数据对应的序列号的大小,能够精准地识别出哪些数据空间存储有原始数据,哪些数据空间存储有更新数据;这样,能够做到精准地释放存储有原始数据的数据空间,有效地提高了数据空间的利用率。
Description
技术领域
本发明涉及网络安全技术领域,特别涉及一种非易失性内存介质数据更新方法和装置。
背景技术
NVM(Non Volatile Memory,非易失性内存)介质是最近几年兴起的一种新的存储介质技术,与普通内存掉电后数据丢失的情况不同,写入其中的数据在掉电后仍能继续保持,即再次上电后仍能读到下电前的数据。另外,NVM的访问以字节为单位,且其读写速度很快,仅稍慢于普通内存。由于NVM的这些新特性,其在存储系统中已经得到越来越广泛的运用。
但是,针对NVM的编程,有一些独特的地方需要加以注意。其中一点就是,在NVM的写入过程中,任意时刻都可能出现掉电。为了保证再上电后,软件还能继续运行,往往要求NVM的写入具有原子性。比如,一个记录地址信息的数据为:北京市海淀区上地八街8号。假定需要将其修改为:成都市高新区和乐二街2号。如果直接修改该数据,并且在修改时出现掉电,则再上电后该数据可能为:成都市高新区上地八街8号,从而导致了一个明显的错误。所以,针对NVM介质,必须要实现数据更新的原子性,即下电再上电后,NVM中要么全是老数据,要么全是新数据。
要实现数据更新的原子性,如下日志方案是常采用的数据更新方式。
假定NVM上的某个数据空间中已存在一个老数据,现在需要写入一个新数据,使用日志方案保证新数据写入原子性的方法具体步骤为:
步骤a1:在NVM非易失性内存中分配一块日志空间;
步骤a2:将新数据写入日志空间;
步骤a3:写入一个标记(原子操作),使日志生效;
步骤a4:将新数据写入数据空间;
步骤a5:清除日志有效性标记(原子操作);
步骤a6:释放日志空间。
在系统上电时,检查如果存在有效的日志空间,则将其数据覆盖到相应的数据空间。由上述过程可知,在NVM数据更新过程中的任意时刻下电,日志方案都可以保证数据的原子性。在日志生效之前下电,再上电后是老数据生效,否则是新数据生效。
如何解决上述日志方案所存在的写入次数较多、且写入数据量较多的问题,是待解决的技术问题。
发明内容
基于此,有必要针对基于现有日志方案所存在的写入次数较多、且写入数据量较多的问题,提供一种非易失性内存介质数据更新方法、装置、电子设备和存储介质。
第一方面,本申请实施例提供了一种非易失性内存介质数据更新方法,所述方法包括:
响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配预设数量的第二数据空间,所述第二数据空间用于写入与所述原始数据对应的更新数据,所述第一数据空间被配置有第一序列号,每一个所述第二数据空间均配置有对应的第二序列号,所述第一序列号的初始数值为第一初始数值,将所述第一序列号的长度和所述第二序列号的长度均配置为预设长度的字节;
将所述更新数据写入所述第二数据空间中,所述第二序列号的初始数值为第二初始数值,所述第一初始数值大于所述第二初始数值;
对所述更新数据进行原子操作处理,得到与第二序列号对应的第二处理后数值;以及对所述原始数据进行原子操作处理,得到与第一序列号对应的第一处理后数值;
判断所述第二处理后数值是否大于所述第一处理后数值,若判断出所述第二处理后数值大于所述第一处理后数值时,释放存储于所述第一数据空间的所述原始数据,否则,则忽略处理。
在一种实现方式中,所述对所述更新数据进行原子操作处理包括:
将第二序列号对应的数值从所述第二初始数值配置为所述第二处理后数值。
在一种实现方式中,所述对所述原始数据进行原子操作处理包括:
将第一序列号对应的数值从所述第一初始数值配置为所述第一处理后数值。
在一种实现方式中,所述响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配预设数量的第二数据空间包括:
响应于进行数据更新的所述数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配一个所述第二数据空间。
在一种实现方式中,所述响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配预设数量的第二数据空间包括:
响应于进行数据更新的所述数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配两个所述第二数据空间。
第二方面,本申请实施例提供了一种非易失性内存介质数据更新装置,所述装置包括:
分配模块,用于响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配预设数量的第二数据空间,所述第二数据空间用于写入与所述原始数据对应的更新数据,所述第一数据空间被配置有第一序列号,每一个所述第二数据空间均配置有对应的第二序列号,所述第一序列号的初始数值为第一初始数值,将所述第一序列号的长度和所述第二序列号的长度均配置为预设长度的字节;
写入模块,用于将所述更新数据写入所述分配模块分配的所述第二数据空间中,所述第二序列号的初始数值为第二初始数值,所述第一初始数值大于所述第二初始数值;
原子操作模块,用于对所述更新数据进行原子操作处理,得到与第二序列号对应的第二处理后数值;以及对所述原始数据进行原子操作处理,得到与第一序列号对应的第一处理后数值;
处理模块,用于判断所述原子操作模块得到的所述第二处理后数值是否大于所述原子操作模块得到的所述第一处理后数值,若判断出所述第二处理后数值大于所述第一处理后数值时,释放存储于所述第一数据空间的所述原始数据,否则,则忽略处理。
第三方面,本申请实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序以实现如上所述的方法步骤。
第四方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现如上所述的方法步骤。
本申请实施例提供的技术方案可以包括以下有益效果:
在本申请实施例中,对所述更新数据进行原子操作处理,得到与第二序列号对应的第二处理后数值;以及对所述原始数据进行原子操作处理,得到与第一序列号对应的第一处理后数值;以及判断所述第二处理后数值是否大于所述第一处理后数值,若判断出所述第二处理后数值大于所述第一处理后数值时,释放存储于所述第一数据空间的所述原始数据,否则,则忽略处理。本申请实施例提供的非易失性内存介质数据更新方法,通过将更新数据写到新的第二数据空间来减少NVM的写入次数和数据量,以及通过比较原始数据和更新数据对应的序列号的大小,能够精准地识别出哪些数据空间存储有原始数据,哪些数据空间存储有更新数据;这样,能够做到精准地释放存储有原始数据的数据空间,有效地提高了数据空间的利用率。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是本申请实施例提供的一种非易失性内存介质数据更新方法的流程示意图;
图2是本申请实施例提供的具体应用场景下的非易失性内存介质数据更新方法的一示意图;
图3是本申请实施例提供的具体应用场景下的非易失性内存介质数据更新方法的又一示意图;
图4是本申请实施例提供的一种非易失性内存介质数据更新装置的结构示意图;
图5示出了根据本申请实施例的电子设备连接结构示意图。
具体实施方式
以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
下面结合附图详细说明本公开的可选实施例。
如图1所示,是本申请实施例提供的一种非易失性内存介质数据更新方法的流程示意图;如图1所示,本申请实施例提供了一种非易失性内存介质数据更新方法,具体包括如下方法步骤:
S102:响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配预设数量的第二数据空间,第二数据空间用于写入与原始数据对应的更新数据,第一数据空间被配置有第一序列号,每一个第二数据空间均配置有对应的第二序列号,第一序列号的初始数值为第一初始数值,将第一序列号的长度和第二序列号的长度均配置为预设长度的字节。
在实际应用场景中,可以根据不同应用场景的需求,对第一序列号字节的预设长度进行调整,例如,将第一序列号字节的预设长度设置为8字节,或者,将第一序列号字节的预设长度设置为4字节。
同理,在实际应用场景中,可以根据不同应用场景的需求,对第二序列号字节的预设长度进行调整,例如,将第二序列号字节的预设长度设置为8字节,或者,将第二序列号字节的预设长度设置为4字节。
在一种可能的实现方式中,响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配预设数量的第二数据空间包括以下步骤:
响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配一个第二数据空间。
在一种可能的实现方式中,响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配预设数量的第二数据空间包括以下步骤:
响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配两个第二数据空间。
将上述分配一个第二数据空间的实现方式和分配两个第二数据空间的实现方式进行比较,后者的数据更新方法适用于NVM容量较宽裕、且对于性能要求较高的应用场景。
S104:将更新数据写入第二数据空间中,第二序列号的初始数值为第二初始数值,第一初始数值大于第二初始数值。
S106:对更新数据进行原子操作处理,得到与第二序列号对应的第二处理后数值;以及对原始数据进行原子操作处理,得到与第一序列号对应的第一处理后数值。
在本申请实施例中,针对原子操作做如下说明:
原子操作是指不会被线程调度机制打断的操作;原子操作一旦开始,就一直运行到结束,中间不会切换到另一个线程中。
在一种可能的实现方式中,对更新数据进行原子操作处理包括以下步骤:
将第二序列号对应的数值从第二初始数值配置为第二处理后数值。
在本申请实施例中,对第二初始数值和第二处理后数值并不做具体限制。例如,在某一具体应用场景中,第二初始数值为0,第二处理后数值为101。
在一种可能的实现方式中,对原始数据进行原子操作处理包括以下步骤:
将第一序列号对应的数值从第一初始数值配置为第一处理后数值。
在本申请实施例中,对第一初始数值和第一处理后数值并不做具体限制。例如,在某一具体应用场景中,第一初始数值为100,第一处理后数值为0。
S108:判断第二处理后数值是否大于第一处理后数值,若判断出第二处理后数值大于第一处理后数值时,释放存储于第一数据空间的原始数据,否则,则忽略处理。
在实际应用场景中,若判断出第二处理后数值大于第一处理后数值时,释放存储于第一数据空间的原始数据;这样,有效地提高了数据空间的利用率。
如图2所示,是本申请实施例提供的具体应用场景下的非易失性内存介质数据更新方法的一示意图。
如图2所示的数据更新方法采用的“新写+序列号”的机制,这样,能够保证NVM数据更新的原子性,具体如下所述:
步骤b0:为NVM中的数据设置一个8字节的序列号(简称seq),该序列号和数据是一一对应的;具体地,不同的数据是完全独立的,同理,不同数据的序列号也是完全独立的。如果seq为0,则表示该数据空间空闲未使用,以后每次数据更新,该seq就加1。假定数据的当前seq为100,现在需要更新该数据;
步骤b1:分配一个新数据空间,其seq为0;
步骤b2:先写入新数据,其seq仍然为0;
步骤b3:再将新数据对应的seq置为101(原子操作);
步骤b4:将老数据对应的seq置为0(原子操作);
步骤b5:释放老数据空间。
如果在更新数据时下电,则再上电时需要比较数据的seq,seq较大的那个数据就是有效的数据,较小的那个数据需要释放(将其seq置为0);这样,在数据更新过程中的任意时刻下电,都能保证原子性。
具体地,第一种情况:如果在步骤b1或步骤b2后下电,由于再上电后新数据空间的seq为0,所以,该空间被认为是空闲未使用,从而老数据生效。
第二种情况:如果在步骤b3后下电,再上电后,会比较新老数据对应的seq,从而新数据生效;
第三种情况:如果在b4或b5后下电,由于再上电后,老数据空间的seq为0,所以该空间被认为是空闲未使用,从而新数据生效。
在实际应用场景中,8字节的seq可以一直累加,不会出现翻转的情况。当然,如果能够保证不出现翻转,更小的seq也是可以的,比如4字节,只要保证其修改是原子操作即可。
如图2所示的数据更新方法,相对于现有的日志方案而言,具有如下优点:
优点1:仅有一次数据写入和两次seq写入,相当于减少了一次数据写入,这样,该数据更新方法具有更快的写入速度和更长的NVM寿命。
优点2:不需要管理一个单独的日志空间区域,只需要增加原有数据空间(且最小只需要增加一个数据空间),从而简化了软件的实现过程。
如图3所示,是本申请实施例提供的具体应用场景下的非易失性内存介质数据更新方法的又一示意图。
相对于如图2所述的数据更新方法而言,若数据空间较大,还可以采用如图3所示的数据更新方法,具体如下所述:
步骤c0:为NVM中的数据设置一个8字节的序列号(简称seq),同时为每个数据分配两个这样的空间(即两个数据空间和两个seq空间),其中,seq大的那个数据就是有效数据。假定某个数据当前的两个seq为10和9,则有效数据就是10对应的那一个。现在需要更新该数据;
步骤c1:seq为9的数据空间中是无效数据,向其中写入新数据;
步骤c2:将seq从9修改为11(原子操作)。
在本申请实施例提供的数据更新方法中,在任意时刻,seq大的那个数据就是有效数据。如图3所示的数据更新方法,相对于如图2所示的数据更新方法具有以下优点:
优点1:仅有一次数据写入和一次seq写入;
优点2:无需分配和释放数据空间。
需要说明的是,如图3所示的数据更新方法,由于需要两倍数据空间,因此,如图3所示的数据更新方法适用于NVM容量较宽裕、且对于性能要求较高的应用场景。
在本申请实施例中,对更新数据进行原子操作处理,得到与第二序列号对应的第二处理后数值;以及对原始数据进行原子操作处理,得到与第一序列号对应的第一处理后数值;以及判断第二处理后数值是否大于第一处理后数值,若判断出第二处理后数值大于第一处理后数值时,释放存储于第一数据空间的原始数据,否则,则忽略处理。本申请实施例提供的非易失性内存介质数据更新方法,通过将更新数据写到新的第二数据空间来减少NVM的写入次数和数据量,以及通过比较原始数据和更新数据对应的序列号的大小,能够精准地识别出哪些数据空间存储有原始数据,哪些数据空间存储有更新数据;这样,能够做到精准地释放存储有原始数据的数据空间,有效地提高了数据空间的利用率。
下述为本申请实施例非易失性内存介质数据更新装置实施例,可以用于执行本申请实施例非易失性内存介质数据更新方法实施例。对于本申请实施例非易失性内存介质数据更新装置实施例中未披露的细节,请参照本申请实施例非易失性内存介质数据更新方法实施例。
请参见图4,其示出了本发明一个示例性实施例提供的非易失性内存介质数据更新装置的结构示意图。该非易失性内存介质数据更新装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该非易失性内存介质数据更新装置包括分配模块402、写入模块404、原子操作模块406和处理模块408。
具体而言,分配模块402,用于响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配预设数量的第二数据空间,第二数据空间用于写入与原始数据对应的更新数据,第一数据空间被配置有第一序列号,每一个第二数据空间均配置有对应的第二序列号,第一序列号的初始数值为第一初始数值,将第一序列号的长度和第二序列号的长度均配置为预设长度的字节;
写入模块404,用于将更新数据写入分配模块402分配的第二数据空间中,第二序列号的初始数值为第二初始数值,第一初始数值大于第二初始数值;
原子操作模块406,用于对更新数据进行原子操作处理,得到与第二序列号对应的第二处理后数值;以及对原始数据进行原子操作处理,得到与第一序列号对应的第一处理后数值;
处理模块408,用于判断原子操作模块406得到的第二处理后数值是否大于原子操作模块406得到的第一处理后数值,若判断出第二处理后数值大于第一处理后数值时,释放存储于第一数据空间的原始数据,否则,则忽略处理。
可选的,原子操作模块406具体用于:
将第二序列号对应的数值从第二初始数值配置为第二处理后数值。
可选的,原子操作模块406具体用于:
将第一序列号对应的数值从第一初始数值配置为第一处理后数值。
可选的,分配模块402具体用于:
响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配一个第二数据空间。
可选的,分配模块402具体用于:
响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配两个第二数据空间。
需要说明的是,上述实施例提供的非易失性内存介质数据更新装置在执行非易失性内存介质数据更新方法时,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元完成,即将设备的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。另外,上述实施例提供的非易失性内存介质数据更新装置与非易失性内存介质数据更新方法实施例属于同一构思,其体现实现过程详见非易失性内存介质数据更新方法实施例,这里不再赘述。
在本申请实施例中,原子操作模块用于对更新数据进行原子操作处理,得到与第二序列号对应的第二处理后数值;以及对原始数据进行原子操作处理,得到与第一序列号对应的第一处理后数值;以及处理模块用于判断原子操作模块得到的第二处理后数值是否大于原子操作模块得到的第一处理后数值,若判断出第二处理后数值大于第一处理后数值时,释放存储于第一数据空间的原始数据,否则,则忽略处理。本申请实施例提供的非易失性内存介质数据更新装置,通过将更新数据写到新的第二数据空间来减少NVM的写入次数和数据量,以及通过比较原始数据和更新数据对应的序列号的大小,能够精准地识别出哪些数据空间存储有原始数据,哪些数据空间存储有更新数据;这样,能够做到精准地释放存储有原始数据的数据空间,有效地提高了数据空间的利用率。
如图5所示,本实施例提供一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器运行计算机程序以实现如上所述的方法步骤。
本申请实施例提供了一种存储有计算机可读指令的存储介质,其上存储有计算机程序,程序被处理器执行实现如上所述的方法步骤。
下面参考图5,其示出了适于用来实现本申请实施例的电子设备的结构示意图。本申请实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,电子设备可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM503中,还存储有电子设备操作所需的各种程序和数据。处理装置501、ROM502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM502被安装。在该计算机程序被处理装置501执行时,执行本申请实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (10)
1.一种非易失性内存介质数据更新方法,其特征在于,所述方法包括:
响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配预设数量的第二数据空间,所述第二数据空间用于写入与所述原始数据对应的更新数据,所述第一数据空间被配置有第一序列号,每一个所述第二数据空间均配置有对应的第二序列号,所述第一序列号的初始数值为第一初始数值,将所述第一序列号的长度和所述第二序列号的长度均配置为预设长度的字节;
将所述更新数据写入所述第二数据空间中,所述第二序列号的初始数值为第二初始数值,所述第一初始数值大于所述第二初始数值;
对所述更新数据进行原子操作处理,得到与第二序列号对应的第二处理后数值;以及对所述原始数据进行原子操作处理,得到与第一序列号对应的第一处理后数值;
判断所述第二处理后数值是否大于所述第一处理后数值,若判断出所述第二处理后数值大于所述第一处理后数值时,释放存储于所述第一数据空间的所述原始数据,否则,则忽略处理。
2.根据权利要求1所述的方法,其特征在于,所述对所述更新数据进行原子操作处理包括:
将第二序列号对应的数值从所述第二初始数值配置为所述第二处理后数值。
3.根据权利要求1所述的方法,其特征在于,所述对所述原始数据进行原子操作处理包括:
将第一序列号对应的数值从所述第一初始数值配置为所述第一处理后数值。
4.根据权利要求1所述的方法,其特征在于,所述响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配预设数量的第二数据空间包括:
响应于进行数据更新的所述数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配一个所述第二数据空间。
5.根据权利要求1所述的方法,其特征在于,所述响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配预设数量的第二数据空间包括:
响应于进行数据更新的所述数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配两个所述第二数据空间。
6.一种非易失性内存介质数据更新装置,其特征在于,所述装置包括:
分配模块,用于响应于进行数据更新的数据更新指令,为应用于非易失性内存NVM中、且存储于第一数据空间的原始数据分配预设数量的第二数据空间,所述第二数据空间用于写入与所述原始数据对应的更新数据,所述第一数据空间被配置有第一序列号,每一个所述第二数据空间均配置有对应的第二序列号,所述第一序列号的初始数值为第一初始数值,将所述第一序列号的长度和所述第二序列号的长度均配置为预设长度的字节;
写入模块,用于将所述更新数据写入所述分配模块分配的所述第二数据空间中,所述第二序列号的初始数值为第二初始数值,所述第一初始数值大于所述第二初始数值;
原子操作模块,用于对所述更新数据进行原子操作处理,得到与第二序列号对应的第二处理后数值;以及对所述原始数据进行原子操作处理,得到与第一序列号对应的第一处理后数值;
处理模块,用于判断所述原子操作模块得到的所述第二处理后数值是否大于所述原子操作模块得到的所述第一处理后数值,若判断出所述第二处理后数值大于所述第一处理后数值时,释放存储于所述第一数据空间的所述原始数据,否则,则忽略处理。
7.根据权利要求6所述的装置,其特征在于,所述原子操作模块具体用于:
将第二序列号对应的数值从所述第二初始数值配置为所述第二处理后数值。
8.根据权利要求6所述的装置,其特征在于,所述原子操作模块具体用于:
将第一序列号对应的数值从所述第一初始数值配置为所述第一处理后数值。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序以实现如权利要求1-7任一项所述的数据更新方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行实现如权利要求1-7中任一项所述的数据更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111414248.9A CN114063930B (zh) | 2021-11-25 | 2021-11-25 | 一种非易失性内存介质数据更新方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111414248.9A CN114063930B (zh) | 2021-11-25 | 2021-11-25 | 一种非易失性内存介质数据更新方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114063930A true CN114063930A (zh) | 2022-02-18 |
CN114063930B CN114063930B (zh) | 2024-03-26 |
Family
ID=80276402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111414248.9A Active CN114063930B (zh) | 2021-11-25 | 2021-11-25 | 一种非易失性内存介质数据更新方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114063930B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106873908A (zh) * | 2017-01-17 | 2017-06-20 | 北京联想核芯科技有限公司 | 数据存储方法及装置 |
US20190317686A1 (en) * | 2018-07-16 | 2019-10-17 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method, apparatus, device and storage medium for processing data location of storage device |
US20200233594A1 (en) * | 2019-01-18 | 2020-07-23 | SK Hynix Inc. | Memory system and operating method thereof |
US20200356270A1 (en) * | 2016-02-18 | 2020-11-12 | Huawei Technologies Co., Ltd. | Data updating technology |
CN112540725A (zh) * | 2020-11-26 | 2021-03-23 | 深圳腾视科技有限公司 | 非易失性数据存储方法、嵌入式系统以及存储介质 |
CN113190176A (zh) * | 2021-05-11 | 2021-07-30 | 上海华东汽车信息技术有限公司 | 一种数据存储方法、装置、电子设备及存储介质 |
-
2021
- 2021-11-25 CN CN202111414248.9A patent/CN114063930B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200356270A1 (en) * | 2016-02-18 | 2020-11-12 | Huawei Technologies Co., Ltd. | Data updating technology |
CN106873908A (zh) * | 2017-01-17 | 2017-06-20 | 北京联想核芯科技有限公司 | 数据存储方法及装置 |
US20190317686A1 (en) * | 2018-07-16 | 2019-10-17 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method, apparatus, device and storage medium for processing data location of storage device |
US20200233594A1 (en) * | 2019-01-18 | 2020-07-23 | SK Hynix Inc. | Memory system and operating method thereof |
CN112540725A (zh) * | 2020-11-26 | 2021-03-23 | 深圳腾视科技有限公司 | 非易失性数据存储方法、嵌入式系统以及存储介质 |
CN113190176A (zh) * | 2021-05-11 | 2021-07-30 | 上海华东汽车信息技术有限公司 | 一种数据存储方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114063930B (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110545313B (zh) | 消息推送控制方法、装置及电子设备 | |
CN112256231B (zh) | 音量控制方法、装置、终端和存储介质 | |
CN110389796A (zh) | 编辑操作处理方法、装置及电子设备 | |
CN113157439B (zh) | 一种资源统计方法、装置及终端 | |
CN108536527B (zh) | 一种嵌入式软件的任务调度方法及装置 | |
CN111400068B (zh) | 接口的控制方法、装置、可读介质和电子设备 | |
CN111857518A (zh) | 图像编辑操作的撤销方法、装置、电子设备及介质 | |
CN110430142A (zh) | 用于控制流量的方法和装置 | |
CN110069452B (zh) | 数据存储方法、装置和计算机可读存储介质 | |
CN110070592B (zh) | 特效包的生成方法、装置和硬件装置 | |
CN112363815B (zh) | Redis集群处理方法、装置、电子设备及计算机可读存储介质 | |
CN109697034B (zh) | 一种数据写入方法、装置、电子设备及存储介质 | |
CN115357389A (zh) | 内存管理方法、装置及电子设备 | |
CN104184817A (zh) | 一种下载优化方法及装置、终端 | |
CN116541174A (zh) | 存储设备容量处理方法、装置、设备及存储介质 | |
CN112631608B (zh) | 编译方法、装置、终端及存储介质 | |
CN113407309B (zh) | 虚拟机内存申请方法、装置、存储介质及电子设备 | |
CN110928574A (zh) | 微控制器、中断处理芯片、设备及中断处理方法 | |
CN114063930B (zh) | 一种非易失性内存介质数据更新方法和装置 | |
CN110941436B (zh) | 应用程序的数据存储方法、装置、存储介质与终端设备 | |
CN117453415A (zh) | 数据审核方法、装置、设备及存储介质 | |
CN113391882B (zh) | 虚拟机内存管理方法、装置、存储介质及电子设备 | |
CN115756868A (zh) | 内存分配方法、装置、设备、存储介质及计算机程序产品 | |
US9251100B2 (en) | Bitmap locking using a nodal lock | |
CN110221923B (zh) | 数据访问方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |