CN116225985A - Soc参数掉电非易失的存储方法、装置和计算机设备 - Google Patents
Soc参数掉电非易失的存储方法、装置和计算机设备 Download PDFInfo
- Publication number
- CN116225985A CN116225985A CN202211626706.XA CN202211626706A CN116225985A CN 116225985 A CN116225985 A CN 116225985A CN 202211626706 A CN202211626706 A CN 202211626706A CN 116225985 A CN116225985 A CN 116225985A
- Authority
- CN
- China
- Prior art keywords
- storage
- block
- data structure
- data
- power
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Power Sources (AREA)
Abstract
本申请涉及一种SOC参数掉电非易失的存储方法、装置和计算机设备,其中,该方法包括:构建至少两个存储块的块头数据结构,基于块头数据结构,建立状态转换机制;并基于块头数据结构设置其中一个存储块处于激活状态,另一个存储块处于备用状态;构建数据头数据结构,并基于数据头数据结构建立数据写入机制;在上电初始化后,从缓存表中获取处于激活状态的存储块的存储地址;基于状态转换机制和数据写入机制,将待写入数据写入到存储地址中。通过本申请,解决了相关技术中存在存储运行缓慢,容易造成阻塞的问题,提高存储的运行效率,降低阻塞的发生。
Description
技术领域
本申请涉及存储技术领域,特别是涉及SOC参数掉电非易失的存储方法、装置和计算机设备。
背景技术
在汽车电池管理系统(Battry Management System,BMS)中,汽车电池的荷电状态(State Of Charge,SOC)参数需要随电池充放电实时更新存储,并且保证掉电非易失。目前使用的SOC参数掉电非易失的存储方案是直接使用MCU中的Flash进行读写操作,并使用额外CRC校验判断被写入数据是否正确。由于SOC参数更新存储频繁,使得CRC校验判断运算量大,导致存储运行缓慢,容易造成阻塞。
针对相关技术中存在存储运行缓慢,容易造成阻塞,目前还没有提出有效的解决方案。
发明内容
在本实施例中提供了一种SOC参数掉电非易失的存储方法、装置和计算机设备,以解决相关技术中存在存储运行缓慢,容易造成阻塞的问题。
第一个方面,在本实施例中提供了一种SOC参数掉电非易失的存储方法,适用于SOC参数掉电非易失的存储系统;所述系统包括随机存储器和Flash;所述随机存储器中设置有缓存表;所述Flash中设置有至少两个存储块;所述方法包括:
构建至少两个存储块的块头数据结构,基于所述块头数据结构,建立状态转换机制;并基于所述块头数据结构设置其中一个所述存储块处于激活状态,另一个所述存储块处于备用状态;
构建数据头数据结构,并基于所述数据头数据结构建立数据写入机制;
在上电初始化后,从所述缓存表中获取处于激活状态的所述存储块的存储地址;
基于所述状态转换机制和数据写入机制,将待写入数据写入到所述存储地址中。
在其中的一些实施例中,所述存储块的块头数据结构包括:擦写次数、空校验标志、当前使用标志以及换页中标志。
在其中的一些实施例中,所述基于所述块头数据结构设置其中一个所述存储块处于激活状态,另一个所述存储块处于备用状态,包括:
在所述块头数据结构中的当前使用标志为有效状态设置对应的所述存储块处于激活状态;
在所述块头数据结构中的当前使用标志为无效状态设置对应的所述存储块处于激活状态。
在其中的一些实施例中,所述数据头数据结构包括ID、Len、IDLenValid、DataValid以及Data。
在其中的一些实施例中,所述方法还包括:
在上电初始化时,根据所述块头数据结构和所述数据头数据结构中的标志位执行上电恢复数据操作。
在其中的一些实施例中,所述方法还包括:
在空闲检查时,根据所述块头数据结构和所述数据头数据结构中的标志位执行周期维护操作。
在其中的一些实施例中,所述方法还包括:
在从所述缓存表中获取处于激活状态的所述存储块的存储地址之前,以低地址往高地址索引,查找处于激活状态的所述存储块的存储地址,将所述存储地址存储到所述缓存表中。
第二个方面,在本实施例中提供了一种SOC参数掉电非易失的存储装置,适用于SOC参数掉电非易失的存储系统;所述系统包括随机存储器和Flash;所述随机存储器中设置有缓存表;所述Flash中设置有至少两个存储块;所述装置包括:第一处理模块、第二处理模块、获取模块以及写入模块;
所述第一处理模块,用于构建至少两个存储块的块头数据结构,基于所述块头数据结构,建立状态转换机制;并基于所述块头数据结构设置其中一个所述存储块处于激活状态,另一个所述存储块处于备用状态;
所述第二处理模块,用于构建数据头数据结构,并基于所述数据头数据结构建立数据写入机制;
所述获取模块,用于在上电初始化后,从所述缓存表中获取处于激活状态的所述存储块的存储地址;
所述写入模块,用于基于所述状态转换机制和数据写入机制,将待写入数据写入到所述存储地址中。
第三个方面,在本实施例中提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一个方面所述的SOC参数掉电非易失的存储方法。
第四个方面,在本实施例中提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一个方面所述的SOC参数掉电非易失的存储方法。
与相关技术相比,在本实施例中提供的SOC参数掉电非易失的存储方法、装置和计算机设备,通过构建至少两个存储块的块头数据结构,基于块头数据结构,建立状态转换机制;并基于块头数据结构设置其中一个存储块处于激活状态,另一个存储块处于备用状态;构建数据头数据结构,并基于数据头数据结构建立数据写入机制;在上电初始化后,从缓存表中获取处于激活状态的存储块的存储地址;基于状态转换机制和数据写入机制,将待写入数据写入到存储地址中,解决了相关技术中存在存储运行缓慢,容易造成阻塞的问题,基于状态转换机制和数据写入机制来严格控制写入顺序,而无需额外CRC校验判断,从而提高存储的运行效率,降低阻塞的发生。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本申请一实施例提供的SOC参数掉电非易失的存储方法的终端设备的硬件结构框图;
图2是本申请一实施例提供的SOC参数掉电非易失的存储方法的流程图;
图3是本申请一实施例提供的第一个初始化的流程示意图;
图4是本申请一实施例提供的第二个初始化的流程示意图;
图5是本申请一实施例提供的周期维护的流程示意图;
图6是本申请一实施例提供的SOC参数掉电非易失的存储装置的结构框图。
图中:102、处理器;104、存储器;106、传输设备;108、输入输出设备;210、第一处理模块;220、第二处理模块;230、获取模块;240、写入模块。
具体实施方式
为更清楚地理解本申请的目的、技术方案和优点,下面结合附图和实施例,对本申请进行了描述和说明。
除另作定义外,本申请所涉及的技术术语或者科学术语应具有本申请所属技术领域具备一般技能的人所理解的一般含义。在本申请中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本申请中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本申请中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本申请中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本申请中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
在本实施例中提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。比如在终端上运行,图1是本实施例的SOC参数掉电非易失的存储方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102和用于存储数据的存储器104,其中,处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置。上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限制。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示出的不同配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如在本实施例中的SOC参数掉电非易失的存储方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种SOC参数掉电非易失的存储方法,图2是本实施例的SOC参数掉电非易失的存储方法的流程图,如图2所示,该流程包括如下步骤:
步骤S210,构建至少两个存储块的块头数据结构,基于块头数据结构,建立状态转换机制;并基于块头数据结构设置其中一个存储块处于激活状态,另一个存储块处于备用状态;
步骤S220,构建数据头数据结构,并基于数据头数据结构建立数据写入机制;
步骤S230,在上电初始化后,从缓存表中获取处于激活状态的存储块的存储地址;
步骤S240,基于状态转换机制和数据写入机制,将待写入数据写入到存储地址中。
具体的,上述SOC参数掉电非易失的存储方法,适用于SOC参数掉电非易失的存储系统;其包括随机存储器(RAM)和Flash;随机存储器中设置有缓存表;Flash中设置有至少两个存储块(Block)。SOC参数掉电非易失的存储系统可以是一个MCU,Flash与随机存储器连接,Flash的存储块可以分为A存储块和B存储块。在其他实施例中,Flash可以是外置的,对此并不进行限制。
基于预先设置的结构格式,构建的至少两块存储块的块头数据结构;每块存储块的块头数据结构是相同的,包括:擦写次数、空校验标志、当前使用标志以及换页中标志。通过设置块头数据结构可以设置存储块处于激活状态或备用状态。比如,设置A存储块处于激活状态,B存储块处于备用状态。当然这两个存储块的状态可以互换。再关联各块头数据结构之间的关系,建立状态转换机制;通过状态转换机制来控制两个存储块的配合工作。基于预先设置的结构格式,构建待写入数据的数据头数据结构;其包括ID、Len、IDLenValid、DataValid以及Data。再基于上述数据头数据结构之间的关系,建立数据写入机制,通过数据写入机制来控制待写入数据的写入控制,而不需要借助额外的CRC校验判断。
在上电初始化能够保障SOC参数掉电非易失的存储系统中各器件处于理想状态,比如:其中一个存储块处于激活状态,另一个存储块处于备用状态;缓存表中存储有处于激活状态的存储块的最新的有效存储地址等。那么在需要写入待写入数据时,从从缓存表中获取处于激活状态的存储块的存储地址;基于状态转换机制和数据写入机制,将待写入数据写入到存储地址中,以完成数据写入。
在现有的相关技术中,直接使用MCU中的Flash进行读写操作,并使用额外CRC校验判断被写入数据是否正确。由于SOC参数更新存储频繁,使得CRC校验判断运算量大,导致存储运行缓慢,容易造成阻塞。与相关技术相比,在本实施例中的Flash可以是内置的Flash也可以是外置的Flash,能够灵活配置,适用各类场景。且通过上述步骤,利用状态转换机制和数据写入机制控制严格写入顺序,确保数据正确被写入,而无需额外CRC校验判断,从而提高存储的运行效率,降低阻塞的发生;解决了相关技术中存在存储运行缓慢,容易造成阻塞的问题。
在其中的一些实施例中,构建后的存储块的块头数据结构如表1,每个存储块的块头数据结构相同。在存储块的头部写入Block管理数据,实现至少两个存储块的管理使用。
表1
表1中,存储块的块头数据结构包括:擦写次数(CycleTimes)、空校验标志(Verified)、当前使用标志(Active)以及换页中标志(Swapping)。其中,擦写次数(CycleTimes):用于记录当前Block擦写次数,使用Uint32格式;每次擦写后更新次数,当擦写次数超过一个使用寿命的预设值可以上报,提前预警。空校验标志(Verified):用于标志该Block已完成整片Block空校验,有效标志0xAAAA0001U;flash在写入待写入数据前要确保要写入存储块的存储地址上没有数据,有数据的要先擦除,Block的空校验检查了该Block上的数据已被擦除,此时空校验标志为有效标志。当前使用标志(Active):用于标志该Block为当前激活使用Block,有效标志0xAAAA0002U。换页中标志(Swapping):用于标志该Block当前正在换页中,有效标志0xAAAA0003U。通过上述块头数据结构即可设置存储块的各类状态。
在其中的一些实施例中,步骤S210中的基于块头数据结构设置其中一个存储块处于激活状态,另一个存储块处于备用状态,包括如下步骤:
在块头数据结构中的当前使用标志为有效状态设置对应的存储块处于激活状态;
在块头数据结构中的当前使用标志为无效状态设置对应的存储块处于激活状态。
具体的,可以将有效标志设置为0xAAAA0001U,该存储块处于激活状态。可以将有效标志设置为0xAAAA0011U,该存储块处于备用状态。当然也可以由其他设置方式,在此不重复阐述。对于擦写次数、当前使用标志以及换页中标志对于的状态、模式或操作的设置也是相同的原理。比如:将当前使用标志设置为0xAAAA0002U,该存储块处于当前使用状态。可以将当前使用标志设置为0xAAAA0012U,该存储块处于未使用状态。
在其中的一些实施例中,基于块头数据结构,建立状态转换机制如表2。
表2
在上述表2中,状态转换机制一共有A-E五种Stage(阶段),每一组阶段多有对应的状态转换机制。其中,ABlock的有效标志设置为0xAAAA0001U。为了达到在擦写操作的任何时刻下电不会产生Flash中已存储的参数数据丢失的现象,设置异常防掉电策略。异常防掉电策略为:C阶段重新上电后启动阻塞Swapping(换页中);D阶段重新上电后启动Erase(擦除);E阶段重新上电后启动Erase,重新擦除后执行空校验。其中,A阶段和B阶段不涉及异常防掉电策略。
在其中的一些实施例中,构建后的数据头数据结构如表3。表3中数据头数据结构包括ID、Len、IDLenValid、DataValid以及Data。其中,ID:用于数据索引的逻辑ID;Len:用于表示数据长度;IDLenValid:用于标志IDLen字段写入成功,有效标志0x55550004U;DataValid:用于标志Data字段写入成功,有效标志0x55550005U;Data:用于表示数据字段。通过改变长度写入,可按照SOC参数长度分配数据长度(数据头Len参数配置),充分利用Flash资源。
表3
在其中的一些实施例中,基于数据头数据结构建立的数据写入机制如表4。在A阶段和B阶段:若IDLenValid写入完成之前掉电,初始化索引跳过一个数据头的长度地址,重新写数据。数据的管理策略是数据从一个Block的低地址往高地址存储,根据数据头长度和数据长度索引下一个数据头地址。具体为:Block头所占空间32字节,由数据头数据结构可知,数据头所占空间24字节,数据头的Len表示Data所占空间,根据这些信息,就可以在Block中找到(索引)一块未被写入过的地址。比如:以32+(24+Len)+(24+Len)+…低地址往高地址索引查找,直到找到个IDLen没被写入过的就是一块未被写入过的地址。C阶段和D阶段:若IDLenValid写入完成之后,DataValid写入完成之前掉电,初始化索引跳过一个数据头长度和Len长度地址,重新写数据。
表4
Stage(阶段) | Operation(操作) |
A | 写IDLen |
B | 写IDLenValid标志 |
C | 写Data |
D | 写DataValid标志 |
在其中的一些实施例中,SOC参数掉电非易失的存储方法还包括如下步骤:
在从缓存表中获取处于激活状态的存储块的存储地址之前,以低地址往高地址索引,查找处于激活状态的存储块的存储地址,将存储地址存储到缓存表中。
具体的,缓存表存在于MCU的RAM中,缓存表存储了每个ID号对应最新有效数据在Block中的偏移,在每次上电初始化缓存表后保存查到的最新有效数据偏移,若数据不存在,则写入0xffffffff到Cache表,记录IDCache地址无效。在其他实施例中,也可以直接将存储地址存储到缓存表中,对此并不进行限制。在本实施例中,可以使初始化后读写数据时不用再从存储块的低地址往高地址查找,而是直接由缓存表提供有效的存储地址,提高寻址速度。
在本实施例中,设置的缓存表策略为:在上电后缓存表第一次读取存储块中的有效数据需要从一个存储块的低地址往高地址,根据数据头长度和数据长度索引下一个数据头地址,取最后一个对应ID号且数据字段有效的数据为最新的有效值,若不存在,则在Flash中不存在对应ID号的有效数据。
通过上述存储地址的索引,改变存储地址;也就是在flash中的实际的存储地址是会变的,如果按现有技术固定地址的存储方式,某个数据更新频繁会影响flash的整体寿命。
在其中的一些实施例中,SOC参数掉电非易失的存储方法还包括如下步骤:
在上电初始化时,根据块头数据结构和数据头数据结构中的标志位执行上电恢复数据操作。
具体的,上电初始化包括两个过程:
如图3所示,第一个初始化过程为:
读取存储块配置,初始化缓存表;校验存储块配置;若存储块配置校验不通过,则存储块配置错误;若存储块配置校验通过,则校验空间地址是否重叠;若空间地址校验不通过,则存储块配置错误;若空间地址校验通过,则检查控制空间长度是否满足最小写单元;若不满足,则存储块配置错误;若满足则校验通过保存存储块的配置。
如图4所示,第二个初始化过程为:
读取两个存储块(A存储块处于激活状态,B存储块处于备用状态)的块头数据结构的信息;判断A存储块存在Active,且非Swapping;若A存储块存在Active,且非Swapping,则判断B存储块是否处于备用状态;若B存储块处于备用状态,则判断遍历存储块,更新缓存表是否成功;若成功则初始化成功。若失败,则重置存储块,并初始化成功。
若A存储块不存在Active,且非Swapping,则判断A存储块存在Active,且Swapping;若A存储块不存在Active,且Swapping,则重置存储块,并初始化成功。若A存储块存在Active,且Swapping,则阻塞擦除B存储块阻塞Swap;再标记擦除标志位等待执行维护。
若B存储块不处于备用状态,则标记擦除标志位等待执行维护。
在本实施例中,上述A存储块和B存储块可以互换,在上电初始化时,根据块头数据结构和数据头数据结构中的标志位执行上电恢复数据操作,恢复存储块中最新且有效的数据。
在其中的一些实施例中,SOC参数掉电非易失的存储方法还包括如下步骤:
在空闲检查时,根据块头数据结构和数据头数据结构中的标志位执行周期维护操作。
具体的,周期维护操作可以是一个设定好的周期维护程序。
如图5所示,执行过程可以为:执行周期维护程序,判断是否成功初始化;若否,则在重复初始化超过最大次数内继续重新初始化;在重复初始化超过最大次数时初始化错误。
若是,判断Erase标志位置1(是否有效),若有效,则执行Erase操作;若无效或执行Erase操作后,判断Swap标志位置1(是否有效),若有效,则执行Swap操作;若无效或执行Swap操作后,判断空闲时间是否满足自动维护时间;若否,则结束。
若是,则判断另一块Block是否未Verified,若是,则Erase标志位置1;若否,则判断是否满足提前Swap条件,若是则Swap标志位置1;若否,则结束。
在本实施例中,使用周期维护操作进行维护,调用SOC参数保存时不会阻塞运行。在空闲时刻检查是否需要提早换页;在空闲时刻检查是否需要为另一块Block执行擦除工作,无需换页时阻塞擦除。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中还提供了一种SOC参数掉电非易失的存储装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是本实施例的SOC参数掉电非易失的存储装置的结构框图,如图6所示,该装置包括:第一处理模块210、第二处理模块220、获取模块230以及写入模块240;
第一处理模块210,用于构建至少两个存储块的块头数据结构,基于块头数据结构,建立状态转换机制;并基于块头数据结构设置其中一个存储块处于激活状态,另一个存储块处于备用状态;
第二处理模块220,用于构建数据头数据结构,并基于数据头数据结构建立数据写入机制;
获取模块230,用于在上电初始化后,从缓存表中获取处于激活状态的存储块的存储地址;
写入模块240,用于基于状态转换机制和数据写入机制,将待写入数据写入到存储地址中。
通过上述装置,解决了相关技术中存在存储运行缓慢,容易造成阻塞的问题,基于状态转换机制和数据写入机制来严格控制写入顺序,而无需额外CRC校验判断,从而提高存储的运行效率,降低阻塞的发生。
在其中的一些实施例中,存储块的块头数据结构包括:擦写次数、空校验标志、当前使用标志以及换页中标志。
在其中的一些实施例中,第一处理模块210,还用于在块头数据结构中的当前使用标志为有效状态设置对应的存储块处于激活状态;
在块头数据结构中的当前使用标志为无效状态设置对应的存储块处于激活状态。
在其中的一些实施例中,数据头数据结构包括ID、Len、IDLenValid、DataValid以及Data。
在其中的一些实施例中,SOC参数掉电非易失的存储装置,还包括上电恢复数据操作模块;上电恢复数据操作模块,用于在上电初始化时,根据块头数据结构和数据头数据结构中的标志位执行上电恢复数据操作。
在其中的一些实施例中,SOC参数掉电非易失的存储装置,还包括周期维护模块;
周期维护模块,用于在空闲检查时,根据块头数据结构和数据头数据结构中的标志位执行周期维护操作。
在其中的一些实施例中,SOC参数掉电非易失的存储装置,还包括存储模块;存储模块用于在从缓存表中获取处于激活状态的存储块的存储地址之前,以低地址往高地址索引,查找处于激活状态的存储块的存储地址,将存储地址存储到缓存表中。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中还提供了一种计算机设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述计算机设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,构建至少两个存储块的块头数据结构,基于块头数据结构,建立状态转换机制;并基于块头数据结构设置其中一个存储块处于激活状态,另一个存储块处于备用状态;
S2,构建数据头数据结构,并基于数据头数据结构建立数据写入机制;
S3,在上电初始化后,从缓存表中获取处于激活状态的存储块的存储地址;
S4,基于状态转换机制和数据写入机制,将待写入数据写入到存储地址中。
需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
此外,结合上述实施例中提供的SOC参数掉电非易失的存储方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种SOC参数掉电非易失的存储方法。
应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本申请提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本申请保护范围。
显然,附图只是本申请的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本申请适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本申请披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本申请公开的内容不足。
“实施例”一词在本申请中指的是结合实施例描述的具体特征、结构或特性可以包括在本申请的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本申请中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种SOC参数掉电非易失的存储方法,其特征在于,适用于SOC参数掉电非易失的存储系统;所述系统包括随机存储器和Flash;所述随机存储器中设置有缓存表;所述Flash中设置有至少两个存储块;所述方法包括:
构建至少两个存储块的块头数据结构,基于所述块头数据结构,建立状态转换机制;并基于所述块头数据结构设置其中一个所述存储块处于激活状态,另一个所述存储块处于备用状态;
构建数据头数据结构,并基于所述数据头数据结构建立数据写入机制;
在上电初始化后,从所述缓存表中获取处于激活状态的所述存储块的存储地址;
基于所述状态转换机制和数据写入机制,将待写入数据写入到所述存储地址中。
2.根据权利要求1所述的SOC参数掉电非易失的存储方法,其特征在于,所述存储块的块头数据结构包括:擦写次数、空校验标志、当前使用标志以及换页中标志。
3.根据权利要求2所述的SOC参数掉电非易失的存储方法,其特征在于,所述基于所述块头数据结构设置其中一个所述存储块处于激活状态,另一个所述存储块处于备用状态,包括:
在所述块头数据结构中的当前使用标志为有效状态设置对应的所述存储块处于激活状态;
在所述块头数据结构中的当前使用标志为无效状态设置对应的所述存储块处于激活状态。
4.根据权利要求1所述的SOC参数掉电非易失的存储方法,其特征在于,所述数据头数据结构包括ID、Len、IDLenValid、DataValid以及Data。
5.根据权利要求1至4中任一项所述的SOC参数掉电非易失的存储方法,其特征在于,所述方法还包括:
在上电初始化时,根据所述块头数据结构和所述数据头数据结构中的标志位执行上电恢复数据操作。
6.根据权利要求1所述的SOC参数掉电非易失的存储方法,其特征在于,所述方法还包括:
在空闲检查时,根据所述块头数据结构和所述数据头数据结构中的标志位执行周期维护操作。
7.根据权利要求1所述的SOC参数掉电非易失的存储方法,其特征在于,所述方法还包括:
在从所述缓存表中获取处于激活状态的所述存储块的存储地址之前,以低地址往高地址索引,查找处于激活状态的所述存储块的存储地址,将所述存储地址存储到所述缓存表中。
8.一种SOC参数掉电非易失的存储装置,其特征在于,适用于SOC参数掉电非易失的存储系统;所述系统包括随机存储器和Flash;所述随机存储器中设置有缓存表;所述Flash中设置有至少两个存储块;所述装置包括:第一处理模块、第二处理模块、获取模块以及写入模块;
所述第一处理模块,用于构建至少两个存储块的块头数据结构,基于所述块头数据结构,建立状态转换机制;并基于所述块头数据结构设置其中一个所述存储块处于激活状态,另一个所述存储块处于备用状态;
所述第二处理模块,用于构建数据头数据结构,并基于所述数据头数据结构建立数据写入机制;
所述获取模块,用于在上电初始化后,从所述缓存表中获取处于激活状态的所述存储块的存储地址;
所述写入模块,用于基于所述状态转换机制和数据写入机制,将待写入数据写入到所述存储地址中。
9.一种计算机设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任一项所述的SOC参数掉电非易失的存储方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的SOC参数掉电非易失的存储方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211626706.XA CN116225985A (zh) | 2022-12-17 | 2022-12-17 | Soc参数掉电非易失的存储方法、装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211626706.XA CN116225985A (zh) | 2022-12-17 | 2022-12-17 | Soc参数掉电非易失的存储方法、装置和计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116225985A true CN116225985A (zh) | 2023-06-06 |
Family
ID=86570514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211626706.XA Pending CN116225985A (zh) | 2022-12-17 | 2022-12-17 | Soc参数掉电非易失的存储方法、装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116225985A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117687580A (zh) * | 2024-02-02 | 2024-03-12 | 深圳曦华科技有限公司 | 一种Flash的数据管理系统、微控制单元以及车辆 |
CN117707434A (zh) * | 2024-02-02 | 2024-03-15 | 深圳曦华科技有限公司 | 一种Flash的数据写入方法、装置、车辆以及存储介质 |
CN117742588A (zh) * | 2023-11-30 | 2024-03-22 | 武汉芯必达微电子有限公司 | 使用Flash模拟EEPROM的数据存储方法及系统 |
-
2022
- 2022-12-17 CN CN202211626706.XA patent/CN116225985A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117742588A (zh) * | 2023-11-30 | 2024-03-22 | 武汉芯必达微电子有限公司 | 使用Flash模拟EEPROM的数据存储方法及系统 |
CN117742588B (zh) * | 2023-11-30 | 2024-06-04 | 武汉芯必达微电子有限公司 | 使用Flash模拟EEPROM的数据存储方法及系统 |
CN117687580A (zh) * | 2024-02-02 | 2024-03-12 | 深圳曦华科技有限公司 | 一种Flash的数据管理系统、微控制单元以及车辆 |
CN117707434A (zh) * | 2024-02-02 | 2024-03-15 | 深圳曦华科技有限公司 | 一种Flash的数据写入方法、装置、车辆以及存储介质 |
CN117707434B (zh) * | 2024-02-02 | 2024-05-17 | 深圳曦华科技有限公司 | 一种Flash的数据写入方法、装置、车辆以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116225985A (zh) | Soc参数掉电非易失的存储方法、装置和计算机设备 | |
US10552311B2 (en) | Recovery for non-volatile memory after power loss | |
US7774390B2 (en) | Apparatus for collecting garbage block of nonvolatile memory according to power state and method of collecting the same | |
US8775874B2 (en) | Data protection method, and memory controller and memory storage device using the same | |
US8806301B2 (en) | Data writing method for a flash memory, and controller and storage system using the same | |
US20070245064A1 (en) | Method Of Flash Memory Management | |
US8589619B2 (en) | Data writing method, memory controller, and memory storage apparatus | |
CN103106143A (zh) | 固态储存装置及其逻辑至实体对应表建立方法 | |
US9460004B2 (en) | Memory erasing method, memory controller, and memory storage apparatus | |
US8775760B2 (en) | Modifying a host interface setting for a non-volatile memory module | |
US10642731B2 (en) | Memory management method and storage controller | |
US20110271032A1 (en) | Access device and memory controller | |
US8819387B2 (en) | Memory storage device, memory controller, and method for identifying valid data | |
US11942608B2 (en) | Device battery and unmanned aerial vehicle | |
US9223688B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN117742588B (zh) | 使用Flash模拟EEPROM的数据存储方法及系统 | |
US8762685B2 (en) | Data writing method, memory controller and memory storage apparatus | |
CN116360695A (zh) | 一种基于混合储能电源的数据存储方法及装置 | |
CN113535654B (zh) | 日志处理方法、系统、电子装置和存储介质 | |
CN111258498B (zh) | 一种flash存储器管理方法 | |
US20170139593A1 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
CN114610230A (zh) | 一种基于单片机的闪存数据交换方法及终端 | |
CN111159057A (zh) | 一种无电池情况下记录任务机累积上电次数的系统和方法 | |
CN112988037A (zh) | 静态磨损均衡方法、终端和计算机可读存储介质 | |
CN113946469B (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 |