CN116521062A - 数据处理方法、装置、计算机设备和存储介质 - Google Patents
数据处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116521062A CN116521062A CN202310276382.XA CN202310276382A CN116521062A CN 116521062 A CN116521062 A CN 116521062A CN 202310276382 A CN202310276382 A CN 202310276382A CN 116521062 A CN116521062 A CN 116521062A
- Authority
- CN
- China
- Prior art keywords
- data
- check value
- module
- storage module
- writing
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 30
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 11
- 238000013500 data storage Methods 0.000 abstract description 22
- 230000006872 improvement Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 24
- 230000001360 synchronised effect Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/061—Improving I/O performance
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及一种数据处理方法、装置、计算机设备和存储介质,其中,该数据处理方法包括:判断主用存储模块是否存在数据写入次数达到预设阈值的数据块,其中,主用存储模块包括至少一个数据块;在判断到数据写入次数达到预设阈值的情况下,根据数据写入数据块的顺序,获取主用存储模块的每个数据块中预设顺序范围内写入的最近数据,将最近数据拷贝到备用存储模块;擦除主用存储模块,将擦除数据后的主用存储模块转换为新的备用存储模块,将存储数据后的备用存储模块转换为新的主用存储模块。通过本申请,解决了数据存储安全性低的问题,实现了数据存储安全性的提高。
Description
技术领域
本申请涉及计算机领域,特别是涉及数据处理方法、装置、计算机设备和存储介质。
背景技术
辅助驾驶控制器会涉及到一些产品信息,产品二维码,出厂日期等私有数据的存储,且产品信息,产品二维码,出厂日期等私有数据在产品的整个生命周期一般只会被写一次,且数据丢失是不可接受的。
相关技术中将私有数据存储于AUTOSAR(Automotive Open SystemArchitecture,汽车开放***架构)的NVM(Non-Volatile Ram Manager,非易失性存储器管理器)的存储栈中,而AUTOSAR的NVM主要用于存储DTC(Diagnostic Trouble Code,诊断故障码)以及冻结帧等故障数据,故障数据会在产品生命周期中不断地被重复擦除、写入,导致存储在AUTOSAR的NVM的存储栈中的私有数据存在丢失的风险。但如果直接利用Flash存储器进行存取,因为Flash按页写入,按块擦除的特性,Flash利用率极低且数据存储安全性低。
针对相关技术中存在数据存储安全性低的问题,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种数据处理方法、装置、计算机设备和存储介质,以解决相关技术中数据存储安全性低的问题。
第一个方面,在本实施例中提供了一种数据处理方法,包括:
判断主用存储模块是否存在数据写入次数达到预设阈值的数据块,其中,所述主用存储模块包括至少一个数据块;
在判断到存在数据写入次数达到所述预设阈值的数据块时,根据数据写入数据块的顺序,获取所述主用存储模块的每个数据块中预设顺序范围内写入的最近数据,将所述最近数据拷贝到备用存储模块;
擦除所述主用存储模块,将擦除数据后的主用存储模块转换为新的备用存储模块,将存储数据后的备用存储模块转换为新的主用存储模块。
在其中的一些实施例中,每一个数据块都配置有至少一个存储单元,其中,每次写入同一数据块中的数据存储于对应数据块不同的存储单元中,所述预设阈值根据每一个数据块中存储单元的数量确定。
在其中的一些实施例中,判断主用存储模块是否存在数据写入次数达到预设阈值的数据块,包括:根据写入数据的存储单元的数目,确定对应数据块的数据写入次数。
在其中的一些实施例中,将所述最近数据拷贝到备用存储模块,包括:
根据所述最近数据在所述主用存储模块中的第一地址,确定所述备用存储模块中与所述第一地址对应的第二地址;
根据所述第二地址将所述主用存储模块的每个数据块中的最近数据,分别拷贝至所述备用存储模块的不同的数据块中。
在其中的一些实施例中,判断主用存储模块是否存在数据写入次数是否达到预设阈值的数据块,包括:
接收第一数据写入指令,根据所述第一数据写入指令确定所述主用存储模块中存储第一数据的数据块;
判断所述存储第一数据的数据块的数据写入次数是否达到所述预设阈值。
在其中的一些实施例中,将所述最近数据拷贝到备用存储模块之后,所述方法还包括:
根据所述第一数据写入指令获取所述第一数据;
根据所述第一数据计算得到第一校验值,按照预设帧格式生成包括所述第一校验值和第一数据信息的第一数据帧;
将所述第一数据帧写入所述备用存储模块的数据块,读取所述第一数据帧中的第二校验值;
对比所述第一校验值和所述第二校验值,当所述第一校验值和所述第二校验值不一致时,确定所述第一数据帧保存的所述第一数据损坏,所述第一数据写入失败。
在其中的一些实施例中,擦除所述主用存储模块后,所述方法还包括:
接收第二数据读取指令,根据所述第二数据读取指令获得包括第二数据的第二数据帧,读取第二数据帧中的第三校验值;
根据所述第二数据帧得到所述第二数据,计算所述第二数据的第四校验值;
对比所述第三校验值和所述第四校验值,当所述第三校验值和所述第四校验值一致时,确定所述第二数据读取成功,当所述第三校验值和所述第四校验值不一致时,确定所述第二数据读取失败。
在其中的一些实施例中,对比所述第三校验值和所述第四校验值,包括:
当所述第三校验值和所述第四校验值不一致时,重新获取所述第三校验值和所述第四校验值,对比重新获得的第三校验值和重新获得的第四校验值;
当所述第三校验值和所述第四校验值的重读对比次数大于等于预设对比次数时,所述数据帧对应保存的数据损坏,数据读取失败。
第二个方面,在本实施例中提供了一种数据处理装置,包括:控制模块和数据存储器,所述数据存储器包括主用存储模块和备用存储模块,所述控制模块与所述数据存储器连接,所述控制模块能够执行上述第一个方面所述的数据处理方法。
第三个方面,在本实施例中提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的数据处理方法。
第四个方面,在本实施例中提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一个方面所述的数据处理方法。
与相关技术相比,在本实施例中提供的本申请涉及一种数据处理方法,包括:判断主用存储模块是否存在数据写入次数达到预设阈值的数据块,其中,主用存储模块包括至少一个数据块;在判断到存在数据写入次数达到所述预设阈值的数据块时,根据数据写入数据块的顺序,获取主用存储模块的每个数据块中预设顺序范围内写入的最近数据,将最近数据拷贝到备用存储模块;擦除主用存储模块,将擦除数据后的主用存储模块转换为新的备用存储模块,将存储数据后的备用存储模块转换为新的主用存储模块,解决了数据存储安全性低的问题,实现了数据存储安全性的提高。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请一实施例的数据处理方法的终端的硬件结构框图;
图2是本申请一实施例的数据处理方法的流程图;
图3是本申请一实施例中主用存储模块和备用存储模块结构示意图;
图4是本申请一实施例中拷贝最近数据的示意图;
图5是本申请一实施例的存储模块切换方法的流程图;
图6是本申请一实施例中预设帧格式的示意图;
图7是本申请一实施例中数据写入方法的流程图;
图8是本申请一实施例中数据读取方法的流程图;
图9是本申请一实施例中数据同步写入方法的接口调用时序图;
图10是本申请一实施例中数据异步写入方法的接口调用时序图;
图11是本申请一实施例中存储模块结构示意图;
图12是本申请一实施例中存储器初始化故障检验方法的示意图;
图13是本申请一实施例中数据处理过程的故障检测方法的示意图;
图14是本申请一实施例中NVM模块状态机的示意图;
图15是本申请一实施例中用户数据配置的示意图;
图16是本申请一实施例中数据处理装置的结构框图。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和***、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本申请一实施例的数据处理方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的数据处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种数据处理方法,图2是本实施例的数据处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,判断主用存储模块是否存在数据写入次数达到预设阈值的数据块,其中,主用存储模块包括至少一个数据块。
主用存储模块由N个扇区(Sector)组成,为最小数据擦除单位,由至少一个数据块构成。预设阈值为数据写入主用存储模块中同一数据块的次数。可选地,主用存储模块为闪存存储器中的存储模块,不同数据块用于存储不同的数据,用于存储数据更新频率较低的数据。
步骤S202,在判断到存在数据写入次数达到所述预设阈值的数据块时,根据数据写入数据块的顺序,获取主用存储模块的每个数据块中预设顺序范围内写入的最近数据,将最近数据拷贝到备用存储模块。
数据写入次数达到预设阈值时,对应数据块的存储空间已满,无法存储更多的新数据。为了保证数据的无限次写入和安全存储,获取主用存储模块中的最近数据并将最近数据拷贝到备用存储空间。
可选地,闪存存储器包括多个扇区,选取其中2N个扇区,由其中N个扇区组成主用存储模块,由区别于主用存储模块的另外N个扇区组成备用存储模块。主用存储模块和备用存储模块皆为闪存存储器中的存储模块,同时也是闪存存储器中最小的数据擦除单位,用于存储数据更新频率较低的数据。
步骤S203,擦除主用存储模块,将擦除数据后的主用存储模块转换为新的备用存储模块,将存储数据后的备用存储模块转换为新的主用存储模块。
在备用存储模块存储最近数据后,擦除主用存储模块中的所有数据。此时,主用存储模块中无数据存储,转换为新的备用存储模块,而备用存储模块用于写入新的数据,转换为新的主用存储模块。
通过上述步骤,主用存储模块包括至少一个数据块,用于存储至少一份数据,并配置预设阈值控制每份数据重复写入主用存储模块中的次数,在不擦除数据前提下,可以满足重复写入数据以及写入多份数据的需求。通过主用存储模块和备用存储模块的转换,保证数据的无限次写入。同时,将主用存储模块和备用存储模块作为最小数据擦除单位,减少数据擦除次数,延长存储模块使用寿命的同时,提升了数据存储稳定性,降低了数据在频繁写入、擦除过程中丢失的风险,进一步地,提高了数据存储的安全性。
在其中的一些实施例中,每一个数据块都配置有至少一个存储单元,其中,每次写入同一数据块中的数据存储于对应数据块不同的存储单元中,所述预设阈值根据每一个数据块中存储单元的数量确定。判断主用存储模块是否存在数据写入次数达到预设阈值的数据块,包括:根据写入数据的存储单元的数目,确定对应数据块的数据写入次数。可选地,可以为每一个数据块设置数量相同的存储单元,也可以为每一个数据块设置数量不同的存储单元。不同数据块可以用于存储不同数据。
图3是本申请一实施例中主用存储模块和备用存储模块结构示意图。如图3所示,主用存储模块(Bank A)和备用存储模块(Bank B)结构相同,各配置有n个数据块,分别为:数据块1(Block1),数据块2(Block2),…,数据块n(Block n)。配置数据块时,根据存储模块写入的数据大小会确认各数据块的起始地址与长度。每个数据块(Block)配置有5个存储单元,得到存储单元1(backup1)、存储单元1(backup2)、存储单元3(backup3)、存储单元4(backup4)、存储单元5(backup5)。在向同一数据块写入数据时,会根据配置顺序将数据写入至空闲的存储单元中,如:向Block1写入5次数据时,数据先后存储顺序为backup1、backup2、backup3、backup4、backup5,此时,数据写入次数达到预设阈值,数据块1中无空闲的存储空间,数据块1的存储单元5(backup5)中最后写入的是最新数据(Last data)。读取数据的顺序与写入顺序相反,从Block中存储的最新数据开始读取。
在其中的一些实施例中,将最近数据拷贝到备用存储模块,包括:根据最近数据在主用存储模块中的第一地址,确定备用存储模块中与第一地址对应的第二地址;根据第二地址将主用存储模块的每个数据块中的最近数据,分别拷贝至备用存储模块的不同的数据块中。
可选地,按照第一地址的顺序,轮询地把每个数据块中的最近数据拷贝至备用存储模块对应的第二地址空间。轮询操作完成后,主用存储模块中不同数据块的数据分别存储于备用模块不同的数据块中。
图4是本申请一实施例中拷贝最近数据的示意图,如图4所示,设置预设顺序范围内写入的最近数据为每个数据块中最后写入的数据。即,选取主用存储模块Block1的backup5中存储的数据A、Block2的backup3中存储的数据B、Block3的backup2中存储的数据C为最近数据,并根据第二地址将最近数据拷贝至Bank B,具体的,在Bank B中,数据A存储于Block1的backup1,将数据B存储于Block2的backup1,将数据C存储于Block3的backup1。
在其中的一些实施例中,判断主用存储模块是否存在数据写入次数是否达到预设阈值的数据块,包括:接收第一数据写入指令,根据第一数据写入指令确定主用存储模块中存储第一数据的数据块;判断存储第一数据的数据块的数据写入次数是否达到预设阈值。
在判断到存储第一数据的数据块达到预设阈值时,存储第一数据的数据块中已无剩余的存储空间,第一数据无法写入主用存储模块。轮询地将主用存储模块每个数据块中的最近数据拷贝到备用存储模块后,将第一数据写入备用存储模块对应的数据块中。
图5是本申请一实施例的存储模块切换方法的流程图,如图5所示,该流程包括如下步骤:
步骤S501,在接收第一数据写入指令的情况下,判断主用存储模块中存储第一数据的数据块是否达到预设阈值,其中,第一数据写入主用存储模块。在判断到存储第一数据的数据块达到预设阈值的情况下,启动存储模块切换机制,并执行步骤S502;在判断到存储第一数据的数据块未达到预设阈值的情况下,第一数据写入主用存储模块中;
步骤S502,轮询将各数据块数据拷贝至备用存储模块对应的地址空间中;
步骤S503,将第一数据写入备用存储模块;
步骤S504,擦除主用存储模块,激活备用存储模块。
在其中的一些实施例中,将最近数据拷贝到备用存储模块之后,还包括:根据第一数据写入指令获取第一数据;根据第一数据计算得到第一校验值,按照预设帧格式生成包括第一校验值和第一数据信息的第一数据帧;将第一数据帧写入备用存储模块的数据块,读取第一数据帧中的第二校验值;对比第一校验值和第二校验值,当第一校验值和第二校验值不一致时,确定第一数据帧保存的第一数据损坏,第一数据写入失败。
图6是本申请一实施例中预设帧格式的示意图,如图6所示,预设帧格式的数据帧包括标识符、数据长度、数据段、校验段和填充段,上述语义对应描述如下表所示:
其中,标识符、数据长度、校验段的字节长度均为固定长度,分别用于标识数据块中存储的数据是否有效、数据的有效长度和校验值。数据段为非固定长度,用于存放数据。填充段为非固定长度,用于填充整个数据帧至数据存储器的最小写入单位的整数倍,以满足数据写入要求。
可选地,第一数据通过8位的CRC校验、16位CRC校验,或32位CRC校验的冗余校验机制计算得到第一校验值,并将第一校验值填入预设帧格式中的校验段。冗余校验机制可根据用户需求配置。第一数据帧写入备用存储模块的数据块后,从用存储模块的数据块中读取并解析第一数据帧,得到第一数据帧的数据段存储的数据,以及,校验段存储的第一校验值。按照第一校验值的校验方法计算第一数据帧的数据段存储的数据,得到数据段中存储数据的第二校验值,比较第一校验值和第二校验值。
图7是本申请一实施例中数据写入方法流程图,如图7所示,数据写入方法将第一数据写入Flash,包括:
步骤S701,在接收第一数据写入指令(Write Request)后,根据第一数据计算第一校验值;
步骤S702,按照预设帧格式组装得到第一数据帧;
步骤S703,将第一数据帧写入Flash的存储单元中;
步骤S704,判断Flash底层接口是否返回“写入成功”结果。在判断到返回“写入成功”结果的情况下,执行步骤S706;在判断到未返回“写入成功”结果的情况下,执行步骤S705;
步骤S705,获取第一数据写入的重复(Retry)次数,比较重复次数和最大Retry次数,其中,最大Retry次数由用户配置得到。在判断到Retry次数等于最大Retry次数的情况下,确定第一数据写入失败;在判断到Retry次数小于最大Retry次数的情况下,执行步骤S703;
步骤S706,读取第一数据帧;
步骤S707,根据第一数据帧中存储的数据计算得到第二校验值;
步骤S708,比对第一校验值和第二校验值,在第一校验值和第二校验值一致的情况下,确定第一数据写入成功,在第一校验值和第二校验值不一致的情况下,确定第一数据写入失败;
在其中的一些实施例中,擦除主用存储模块后,方法还包括:接收第二数据读取指令,根据第二数据读取指令获得包括第二数据的第二数据帧,读取第二数据帧中的第三校验值;根据第二数据帧得到第二数据,计算第二数据的第四校验值;对比第三校验值和第四校验值,当第三校验值和第四校验值一致时,确定第二数据读取成功,当第三校验值和第四校验值不一致时,确定第二数据读取失败。
获得第二数据帧,并解析得到第二数据帧的数据段存储的数据,以及,校验段存储的第三校验值。按照第三校验值的校验方法计算第二数据帧的数据段存储的数据,得到数据段中存储数据的第四校验值,比较第三校验值和第四校验值。若第三校验值和第四校验值一致,则确定第二数据读取成功;第三校验值和第四校验值不一致,则数据被破坏,确定第二数据读取失败。
在其中的一些实施例中,对比第三校验值和第四校验值,包括:当第三校验值和第四校验值不一致时,重新获取第三校验值和第四校验值,对比重新获得的第三校验值和重新获得的第四校验值;当第三校验值和第四校验值的重读对比次数大于等于预设对比次数时,数据帧对应保存的数据损坏,数据读取失败。
预设对比次数由静态配置得到,通过配置预设对比次数,重复数据读取步骤,确定数据是否被破坏。图8是本申请一实施例中数据读取方法的流程图,如图8所示,数据读取方法包括:
步骤S801,在接收第二数据读取指令(Read request)的情况下,根据第二数据的地址空间读取第二数据帧;
步骤S802,解析第二数据帧,获取第三校验值,并根据第二数据计算第四校验值;
步骤S803;比对第三校验值和第四校验值。在第三校验值和第四校验值一致的情况下,确定第二数据读取成功;在第三校验值和第四校验值不一致的情况下,执行步骤S804;
步骤S804,判断重复读取第二数据帧的次数,预设最大Retry次数为5,在判断到重复读取第二数据帧的次数小于5的情况下,执行步骤S801,在判断到重复读取第二数据帧的次数不小于5的情况下,确定第二数据读取失败。
在其中的一些实施例中,还提供了一种应用于Flash存储器的数据处理方法,由NVM(Non-Volatile Ram Manager,非易失性存储器管理器)模块控制与调用Flash存储器。示例性地,将DTC以及冻结帧数据等频繁存储、擦除和读取的数据存储于NVM模块存储栈中,将产品信息,产品二维码,出厂日期等产品私有数据存储于独立于NVM存储栈的Flash存储器中。避免了在APP软件、boot软件和TSW软件(Test Software,测试软件)部署NVM模块以共享私有数据时,NVM模块带来的数据存储模块过于冗余和庞大的问题,满足了需要软件共享私有数据时对私有数据存储精简性的要求。在不增加硬件成本的情况下,将私有数据与NVM存储栈中频繁存储、擦除和读取的数据从物理上隔离开来,私有数据不受NVM模块在生命周期的影响,保证了存储数据的稳定性和安全性。
其中,Flash存储器得到数据写入方法包括同步写入方法和异步写入方法,对于不同优先级的数据存储任务提供同步调用接口或异步调用接口。其中,当Flash存储器写入数据为实时变化的数据时,数据写入对实时性、数据安全性的要求较高,则可以使用同步写入方法,由NVM模块调用Flash的同步写入接口。具体地,在同步写入过程中,NVM操作***会禁止中断,挂起其他任务,将写入数据列为最高优先级任务直至数据全部写入Flash或者跳出数据写入超时的结果,再释放资源,操作***打开中断,执行其他任务。
图9是本申请一实施例中数据同步写入方法的接口调用时序图,如图9所示,用户(User)选择同步写入时,发送数据写入指令FTNVM_WriteSync,NVM模块(FTNVM)调用同步接口,同步接口组装得到数据帧后,占用全部cpu资源,发送Flash_Write指令,调用底层驱动(LowLayer Driver)接口直接写入数据,底层驱动返回任务执行结果,释放NVM模块的***资源,获取同步接口返回值,即数据写入结果。
当Flash存储器写入数据对实时性要求不高,允许软件在后台操作。逐步写入时,则可以使用异步写入方法,异步写入方法下数据写入的优先级较低,占用***资源较少。由于数据写入任务占用过高***资源后,会引起cpu负载率瞬时上升,导致cpu处理数据写入任务以外的其他任务时卡顿,而本实施如此设置,能够解决该问题,起到以较少***资源写入数据的效果。
图10是本申请一实施例中数据异步写入方法的接口调用时序图,如图10所示,在用户调用NVM的接口时,会通过FTNVM_WriteAsync指令将数据写入这一任务加入到任务队列中,由主程序Mainfunction轮询去处理任务。在主程序Mainfunction中,NVM模块轮询处理任务,组装好存储帧后(添加帧头标识符、添加数据长度、计算校验值、添加填充值),调用底层Flash驱动,将数据写入Flash存储介质。底层Flash写入数据完成后,会调用NVM提供的Notifaction回调函数,通知NVM数据写入成功或者数据写入失败,NVM根据Flash返回的结果改变状态JobResult。用户可调用状态获取接口GetJobResult来获取任务状态,其中,数据写入任务未完成时,状态为Pending。
在其中的一些实施例中,图11是本申请一实施例中存储模块结构示意图,Flash存储器中包括多个字节数为4K的4K扇区Sector,每个扇区包括至少一个大小为8比特的页,取Flash存储器中2*n个扇区组成两个存储模块Bank。由n个Sector组成主用存储模块Bank A,由区别于Bank A的n个Sector组成备用存储模块Bank B。
在其中的一些实施例中,由NVM模块控制Flash存储器还包括由NVM模块监控Flash存储器的状态。示例性地,NVM模块包括两种故障机制,图12是本申请一实施例中存储器初始化故障检验方法的示意图,如图12所示,在上电初始化阶段,NVM模块会查找存储模块Bank,通过Bank的字符串确定目前的主用存储模块Bank,并通过冗余校验机制校验Bank头信息,若头信息校验失败,证明NVM数据被破坏,NVM进入故障模式。
NVM模块监控Flash存储器的状态还包括在写入/读取数据阶段检测存储器的状态,图13是本申请一实施例中数据处理过程的故障检测方法的示意图,如图13所示,NVM模块调用底层Flash读写接口写入/读取数据,并等待底层回调Notifaction,若等待超时,说明底层Flash故障,NVM进入故障模式。同时,NVM模块提供获取状态的接口,供故障管理模块监控该数据存储模块的状态。
在其中的一些实施例中,NVM模块状态机的状态如下表所示:
图14是本申请一实施例中NVM模块状态机的示意图,如图14所示,NVM模块初始化完成后,进入IDLE空闲状态,若初始化失败,Bank校验失败,NVM模块进入ERROR状态,用户故障管理模块可以调用接口获取NVM状态。
IDLE状态中,会轮询去任务队列中获取任务,如有数据读/写任务加入到队列中后,NVM状态机将会从IDLE跳转至WRITE/READ状态机。
WRITE状态中,会根据队列中的信息,从对应的数据源地址提取数据,并进行存储帧组装,如添加帧头、添加数据长度、计算校验值、添加填充值等,组装完成后,调用底层写数据接口,并跳转至PENDING状态。
Read状态中,接收到读数据指令后,会调用底层读数据接口,并跳转至PENDING状态。底层返回数据后,对数据进行解析,计算校验值并比对,成功后将数据拷贝至用户空间,并跳转至IDLE状态。
PENDING状态中,会一直等待底层返回任务结果,读数据成功后,跳转至READ状态,写入数据成功后,跳转至IDLE状态。若等待超时,则说明底层Flash故障,NVM进入故障状态。
BANKSWITCH状态中,主要进行数据的迁移,迁移数据完成后,激活主用存储模块Bank,擦除备用存储模块Bank中的数据,并跳转至WRITE状态中,继续进行写数据的任务。
ERROR状态,当NVM初始化失败或者写入数据失败后,会进入ERROR状态,此时NVM模块无法正常工作。
其中,图15是本申请一实施例中用户数据配置的示意图,其中,Baseaddress为给NVM模块分配的Flash起始地址,BankLength为抽象出来的Bank大小,应该是Flash最小擦除单位Secotr的倍数;FlashPageLength为Flash的物理最小写入长度;FlashSectorLength为Flash的物理最小擦除单位;BlockId为配置的存储Block的序号;BlockName为配置的存储Block名字;BlockLength为配置的存储block的长度;CRC为配置的CRC类型。
在本实施例中还提供了一种数据处理装置,以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图16是本申请一实施例中数据处理装置的结构框图,如图16所述,数据处理装置包括:控制模块和数据存储器,数据存储器包括主用存储模块和备用存储模块,控制模块与数据存储器连接,控制模块能够实现上述实施例,已经进行过说明的不再赘述。
在本实施例中还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
此外,结合上述实施例中提供的数据处理方法,在本实施例中还可以提供一种计算机可读存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种数据处理方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (11)
1.一种数据处理方法,其特征在于,包括:
判断主用存储模块是否存在数据写入次数达到预设阈值的数据块,其中,所述主用存储模块包括至少一个数据块;
在判断到存在数据写入次数达到所述预设阈值的数据块时,根据数据写入数据块的顺序,获取所述主用存储模块的每个数据块中预设顺序范围内写入的最近数据,将所述最近数据拷贝到备用存储模块;
擦除所述主用存储模块,将擦除数据后的主用存储模块转换为新的备用存储模块,将存储数据后的备用存储模块转换为新的主用存储模块。
2.根据权利要求1所述的数据处理方法,其特征在于,包括:
每一个数据块都配置有至少一个存储单元,其中,每次写入同一数据块中的数据存储于对应数据块不同的存储单元中,所述预设阈值根据每一个数据块中存储单元的数量确定。
3.根据权利要求2所述的数据处理方法,其特征在于,判断主用存储模块是否存在数据写入次数达到预设阈值的数据块,包括:
根据写入数据的存储单元的数目,确定对应数据块的数据写入次数。
4.根据权利要求1所述的数据处理方法,其特征在于,将所述最近数据拷贝到备用存储模块,包括:
根据所述最近数据在所述主用存储模块中的第一地址,确定所述备用存储模块中与所述第一地址对应的第二地址;
根据所述第二地址将所述主用存储模块的每个数据块中的最近数据,分别拷贝至所述备用存储模块的不同的数据块中。
5.根据权利要求1所述的数据处理方法,其特征在于,判断主用存储模块是否存在数据写入次数是否达到预设阈值的数据块,包括:
接收第一数据写入指令,根据所述第一数据写入指令确定所述主用存储模块中存储第一数据的数据块;
判断所述存储第一数据的数据块的数据写入次数是否达到所述预设阈值。
6.根据权利要求5所述的数据处理方法,其特征在于,将所述最近数据拷贝到备用存储模块之后,所述方法还包括:
根据所述第一数据写入指令获取所述第一数据;
根据所述第一数据计算得到第一校验值,按照预设帧格式生成包括所述第一校验值和第一数据信息的第一数据帧;
将所述第一数据帧写入所述备用存储模块的数据块,读取所述第一数据帧中的第二校验值;
对比所述第一校验值和所述第二校验值,当所述第一校验值和所述第二校验值不一致时,确定所述第一数据帧保存的所述第一数据损坏,所述第一数据写入失败。
7.根据权利要求1所述的数据处理方法,其特征在于,擦除所述主用存储模块后,所述方法还包括:
接收第二数据读取指令,根据所述第二数据读取指令获得包括第二数据的第二数据帧,读取第二数据帧中的第三校验值;
根据所述第二数据帧得到所述第二数据,计算所述第二数据的第四校验值;
对比所述第三校验值和所述第四校验值,当所述第三校验值和所述第四校验值一致时,确定所述第二数据读取成功,当所述第三校验值和所述第四校验值不一致时,确定所述第二数据读取失败。
8.根据权利要求7所述的数据处理方法,其特征在于,对比所述第三校验值和所述第四校验值,包括:
当所述第三校验值和所述第四校验值不一致时,重新获取所述第三校验值和所述第四校验值,对比重新获得的第三校验值和重新获得的第四校验值;
当所述第三校验值和所述第四校验值的重读对比次数大于等于预设对比次数时,所述数据帧对应保存的数据损坏,数据读取失败。
9.一种数据处理装置,其特征在于,包括:控制模块和数据存储器,所述数据存储器包括主用存储模块和备用存储模块,所述控制模块与所述数据存储器连接,所述控制模块能够执行权利要求1至8中任一项所述的数据处理方法。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的数据处理方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310276382.XA CN116521062A (zh) | 2023-03-21 | 2023-03-21 | 数据处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310276382.XA CN116521062A (zh) | 2023-03-21 | 2023-03-21 | 数据处理方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116521062A true CN116521062A (zh) | 2023-08-01 |
Family
ID=87407205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310276382.XA Pending CN116521062A (zh) | 2023-03-21 | 2023-03-21 | 数据处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521062A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795297A (zh) * | 2023-08-18 | 2023-09-22 | 苏州云途半导体有限公司 | 一种存储设备、存储方法及装置 |
-
2023
- 2023-03-21 CN CN202310276382.XA patent/CN116521062A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795297A (zh) * | 2023-08-18 | 2023-09-22 | 苏州云途半导体有限公司 | 一种存储设备、存储方法及装置 |
CN116795297B (zh) * | 2023-08-18 | 2023-11-17 | 江苏云途半导体有限公司 | 一种存储设备、存储方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9286164B2 (en) | Electronic device to restore MBR, method thereof, and computer-readable medium | |
JP4404625B2 (ja) | 情報処理装置および該装置用のromイメージ生成装置 | |
KR101143112B1 (ko) | 페일세이프 방식으로 맞춤 소프트웨어 영상 갱신을불휘발성 저장 장치에 적용하는 시스템 및 방법 | |
EP2375323A1 (en) | Firmware image update and management | |
US20100235617A1 (en) | System recovery method and embedded system with automatic recovery function | |
US20070055969A1 (en) | System and method for updating firmware | |
CN108509215B (zh) | 一种***软件的更换方法、装置、终端设备及存储介质 | |
US20070174689A1 (en) | Computer platform embedded operating system backup switching handling method and system | |
CN107908417B (zh) | 固件升级方法及电子设备 | |
KR20170040734A (ko) | 업데이트 제어 방법을 갖는 전자 시스템 및 그것의 동작 방법 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
CN103365696A (zh) | Bios镜像文件获取方法及装置 | |
CN112596808A (zh) | 一种嵌入式***的参数存储机制 | |
CN109271206B (zh) | 一种异常现场的内存压缩和保存方法 | |
CN116521062A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20140089653A1 (en) | Electronic apparatus, method of restoring guid partition table (gpt) and computer-readable recording medium | |
CN115525482B (zh) | 一种微控制器芯片启动控制方法、装置、芯片及存储介质 | |
CN113672270A (zh) | 升级方法,计算机***和远端升级设备 | |
US11226755B1 (en) | Core dump in a storage device | |
US20150347234A1 (en) | Recovery method for portable touch-control device and portable touch-control device using the same | |
CN113127263B (zh) | 一种内核崩溃恢复方法、装置、设备及存储介质 | |
CN113778485A (zh) | 电子芯片的***运行方法、装置、电子芯片和存储介质 | |
CN112540799A (zh) | 启动数据的管理方法、***、终端设备及存储介质 | |
CN108121580A (zh) | 应用程序通知服务的实现方法及装置 | |
CN113190244A (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 |