CN116610269B - 数据存储方法、装置、存储介质和控制器 - Google Patents
数据存储方法、装置、存储介质和控制器 Download PDFInfo
- Publication number
- CN116610269B CN116610269B CN202310891158.1A CN202310891158A CN116610269B CN 116610269 B CN116610269 B CN 116610269B CN 202310891158 A CN202310891158 A CN 202310891158A CN 116610269 B CN116610269 B CN 116610269B
- Authority
- CN
- China
- Prior art keywords
- data
- storage space
- writing
- change record
- data state
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000013500 data storage Methods 0.000 title claims abstract description 28
- 230000008859 change Effects 0.000 claims abstract description 140
- 230000008569 process Effects 0.000 description 10
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000006870 function Effects 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0653—Monitoring storage devices or systems
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请公开了一种数据存储方法、装置、存储介质和控制器,该方法为:确定配置数据的存储空间;将配置数据的变更记录,写入到存储空间中,并在变更记录写入存储空间时,将变更记录对应的数据状态,写入到存储空间中。该方法基于存储空间来存储配置数据的变更记录,并结合Flash的自身特性,在存储空间中写入用于表征配置数据的剩余写入次数的数据状态,来控制存储空间中所存储的变更记录的数量,从而支持Flash实现OTP数据、MTP数据以及特殊数据的有效存储。
Description
技术领域
本申请涉及数据存储领域,尤其涉及一种数据存储方法、装置、存储介质和控制器。
背景技术
在汽车电子行业,非易失性存储器(Flash)是汽车控制器的重要组件,负责存储汽车控制器的配置数据,保证了汽车控制器每次重新上电之后,汽车控制器的行为均能符合用户预期。对于汽车控制器而言,配置数据通常分为一次性编程(one time program,OTP)数据(即配置数据写入后,不允许更改)和多次性编程(multi-time program,MTP)数据(即配置数据写入后,可允许多次更改),此外,基于业务需求,配置数据还涉及一种特殊数据,该特殊数据在第一指定生命周期时属于MTP数据,在第二指定生命周期时属于OTP数据,例如在车辆控制器从芯片生产商交付到汽车生产商的这段时间(即第一指定生命周期),汽车生产商会希望车辆控制器的配置数据属于MTP数据,在将汽车交付给用户之后的时间内(即第二指定生命周期),汽车生产商会希望配置数据属于OTP数据。
然而,现有Flash的数据存储方式,无法实现OTP数据、MTP数据以及特殊数据的有效存储。
发明内容
本申请提供了一种数据存储方法、装置、存储介质和控制器,目的在于支持Flash实现OTP数据、MTP数据以及特殊数据的有效存储。
为了实现上述目的,本申请提供了以下技术方案:
一种数据存储方法,包括:
确定配置数据的存储空间;所述存储空间为预先禁止数据擦除的Flash存储空间;
将所述配置数据的变更记录,写入到所述存储空间中,并在所述变更记录写入所述存储空间时,将所述变更记录对应的数据状态,写入到所述存储空间中;所述数据状态用于表征所述配置数据的剩余写入次数。
可选的,确定所述配置数据的存储空间,包括:
获得配置数据的指定写入次数;
基于所述指定写入次数,确定所述配置数据的存储空间;所述存储空间包括数据状态空间和m个数据槽空间,m的取值等同于所述指定写入次数。
可选的,将所述配置数据的变更记录,写入到所述存储空间中,并在所述变更记录写入所述存储空间时,将所述变更记录对应的数据状态,写入到所述存储空间中,包括:
将所述配置数据的变更记录,写入到所述数据槽空间中,并在所述变更记录写入所述数据槽空间时,将所述变更记录对应的数据状态,写入到所述数据状态空间中。
可选的,在基于所述指定写入次数,确定所述配置数据的存储空间之后,还包括:
基于所述指定写入次数,确定初始数据状态;
将所述初始数据状态,写入到所述数据状态空间中。
可选的,在所述变更记录写入所述数据槽空间时,将所述变更记录对应的数据状态,写入到所述数据状态空间中,包括:
在所述变更记录写入所述数据槽空间时,如果所述变更记录携带有指示信息,基于目标数据状态,作为所述变更记录对应的数据状态,写入到所述数据状态空间中,并将指定数据写入到目标数据槽空间中;其中,所述指示信息用于禁止写入所述配置数据;所述目标数据状态用于表征所述配置数据无法写入;所述目标数据槽空间为所述m个数据槽空间中还未被写入数据的数据槽空间。
可选的,在所述变更记录写入所述存储空间时,将所述变更记录对应的数据状态,写入到所述存储空间中,包括:
在所述变更记录写入所述存储空间时,获得所述存储空间中的当前数据状态;
基于所述当前数据状态,获得所述配置数据的当前剩余写入次数;
基于所述当前剩余写入次数,确定所述变更记录对应的数据状态;
利用所述变更记录对应的数据状态,代替所述当前数据状态,写入到所述存储空间中。
可选的,基于所述当前数据状态,获得所述配置数据的当前剩余写入次数,包括:
解析所述当前数据状态,得到目标数值;
计算所述目标数值与多个指定数值之间的汉明距离;
基于所述多个指定数值中汉明距离最小的指定数值,作为目标指定数值;
基于指定次数和指定数值的对应关系,确定所述目标指定数值对应的目标指定次数;
基于所述目标指定次数,作为所述配置数据的当前剩余写入次数。
一种数据存储装置,包括:
空间确定单元,用于确定配置数据的存储空间;所述存储空间为预先禁止数据擦除的Flash存储空间;
数据写入单元,用于将所述配置数据的变更记录,写入到所述存储空间中,并在所述变更记录写入所述存储空间时,将所述变更记录对应的数据状态,写入到所述存储空间中;所述数据状态用于表征所述配置数据的剩余写入次数。
可选的,所述空间确定单元具体用于:
获得配置数据的指定写入次数;
基于所述指定写入次数,确定所述配置数据的存储空间;所述存储空间包括数据状态空间和m个数据槽空间,m的取值等同于所述指定写入次数。
可选的,所述数据写入单元具体用于:
将所述配置数据的变更记录,写入到所述数据槽空间中,并在所述变更记录写入所述数据槽空间时,将所述变更记录对应的数据状态,写入到所述数据状态空间中。
可选的,所述空间确定单元还用于:
基于所述指定写入次数,确定初始数据状态;
将所述初始数据状态,写入到所述数据状态空间中。
可选的,所述数据写入单元具体用于:
在所述变更记录写入所述数据槽空间时,如果所述变更记录携带有指示信息,基于目标数据状态,作为所述变更记录对应的数据状态,写入到所述数据状态空间中,并将指定数据写入到目标数据槽空间中;其中,所述指示信息用于禁止写入所述配置数据;所述目标数据状态用于表征所述配置数据无法写入;所述目标数据槽空间为所述m个数据槽空间中还未被写入数据的数据槽空间。
可选的,所述数据写入单元具体用于:
在所述变更记录写入所述存储空间时,获得所述存储空间中的当前数据状态;
基于所述当前数据状态,获得所述配置数据的当前剩余写入次数;
基于所述当前剩余写入次数,确定所述变更记录对应的数据状态;
利用所述变更记录对应的数据状态,代替所述当前数据状态,写入到所述存储空间中。
可选的,所述数据写入单元具体用于:
解析所述当前数据状态,得到目标数值;
计算所述目标数值与多个指定数值之间的汉明距离;
基于所述多个指定数值中汉明距离最小的指定数值,作为目标指定数值;
基于指定次数和指定数值的对应关系,确定所述目标指定数值对应的目标指定次数;
基于所述目标指定次数,作为所述配置数据的当前剩余写入次数。
一种存储介质,所述存储介质包括存储的程序,其中,所述程序被处理器运行时执行所述的数据存储方法。
一种控制器,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序被处理器运行时执行所述的数据存储方法。
本申请提供的技术方案,确定配置数据的存储空间,将配置数据的变更记录,写入到存储空间中,并在变更记录写入存储空间时,将变更记录对应的数据状态,写入到存储空间中。本申请基于存储空间来存储配置数据的变更记录,并结合Flash的自身特性,在数据状态空间中写入用于表征配置数据的剩余写入次数的数据状态,来控制存储空间中所存储的变更记录的数量,从而支持Flash实现OTP数据、MTP数据以及特殊数据的有效存储。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据存储方法的流程示意图;
图2为本申请实施例提供的另一种数据存储方法的流程示意图;
图3为本申请实施例提供的又一种数据存储方法的流程示意图;
图4为本申请实施例提供的一种数据存储装置的架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
如图1所示,为本申请实施例提供的一种数据存储方法的流程示意图,包括如下所示步骤。
S101:确定配置数据的存储空间。
其中,存储空间为预先禁止数据擦除的Flash存储空间。
需要说明的是,Flash的特性为:对于Flash存储的二进制基本单位(包括0和1),写数据只能将1写为0,0不能写为1。所谓的数据擦除,是指:将数据都写为1。预先禁止数据擦除的Flash存储空间,则代表该Flash存储空间写入数据时,无法再进行数据擦除,具体的,可在Flash存储空间预先写入目标数据,该目标数据在Flash中的所有二进制存储单位都写为1,假设目标数据为16进制的32位数据,即目标数据为0xFFFFFFFF,则Flash存储空间对应的二进制存储单位则写成11111111111111111111111111111111。
可以理解的是,配置数据的数据类型包括OTP数据、MTP数据和特殊数据,不同数据类型的配置数据所对应的指定写入次数并不相同,为此,可以基于配置数据的指定写入次数,确定配置数据的存储空间,具体的,基于指定写入次数,确定存储空间中所包含数据槽空间的数量。
可选的,确定配置数据的存储空间的具体实现过程包括:获得配置数据的指定写入次数;基于指定写入次数,确定配置数据的存储空间;存储空间包括数据状态空间和m个数据槽空间,m的取值等同于指定写入次数。
具体的,假设配置数据的数据类型为OTP数据,则配置数据的指定写入次数为1,则配置数据的存储空间包括数据状态空间和1个数据槽空间,该存储空间可参见表1所示。
具体的,假设配置数据的数据类型为MTP数据且次数为3次,则配置数据的指定写入次数为3,则配置数据的存储空间包括数据状态空间和3个数据槽空间,该存储空间可参见表2所示。
具体的,假设配置数据的数据类型为特殊数据(该特殊数据在指定生命周期内要求具备3次更改机会,在第四次更改时则变更为OTP数据),则配置数据的指定写入次数为4,则配置数据的存储空间包括数据状态空间和4个数据槽空间,该存储空间可参见表3所示。
在上述表1、表2和表3所示的内容仅仅用于举例说明。
S102:将配置数据的变更记录,写入到存储空间中,并在变更记录写入存储空间时,将变更记录对应的数据状态,写入到存储空间中。
其中,数据状态用于表征配置数据的剩余写入次数。
所谓变更记录,用于表征配置数据在各个变更事件(即写入事件)发生时的具体数据,例如,假设配置数据为车辆的安检日期,车辆每隔半年进行安检后,该配置数据都要记录对应的安检日期,具体经历了三次安检,则该配置数据具备三个变更记录,按照发生时间由前到后的顺序,依次为:2022年12月1日、2023年7月1、2023年12月1日。
需要说明的是,将配置数据的变更记录,写入到存储空间中,并在变更记录写入存储空间时,将变更记录对应的数据状态,写入到存储空间中的具体实现流程,可以参见图2所示的步骤以及步骤的解释说明。
上述S101-S102所示流程,基于存储空间来存储配置数据的变更记录,并结合Flash的自身特性,在数据状态空间中写入用于表征配置数据的剩余写入次数的数据状态,来控制存储空间中所存储的变更记录的数量,从而支持Flash实现OTP数据、MTP数据以及特殊数据的有效存储。
如图2所示,为本申请实施例提供的另一种数据存储方法的流程示意图,包括如下所示步骤。
S201:获得配置数据的指定写入次数。
其中,配置数据的指定写入次数,可基于配置数据的数据类型所确定,具体的,配置数据的数据类型通常由技术人员根据实际情况进行设置。
S202:基于指定写入次数,确定配置数据的存储空间。
其中,存储空间包括数据状态空间和m个数据槽空间,m的取值等同于指定写入次数。
需要说明的是,数据状态空间和数据槽空间所包含的二进制存储单位数量,均基于配置数据所决定,例如,假设配置数据为16进制的32位数据,则数据状态空间和数据槽空间所包含的二进制存储单位数量为32个,假设配置数据为16进制的4位数据,则数据状态空间和数据槽空间所包含的二进制存储单位数量为4个。
S203:基于指定写入次数,确定初始数据状态。
其中,存储空间包含数据状态空间,外界读取数据槽空间的数据是,需预先读取数据状态空间的数据,为此,在配置数据的变更记录还未写入数据槽空间之前,预先将初始数据状态写入数据状态空间,以告示外界配置数据的指定写入次数。
需要说明的是,可通过查询数据表的形式,获得与指定写入次数对应的初始数据状态,该数据表可以参见表4所示。
上述表4所示的内容仅仅用于举例说明。
S204:将初始数据状态,写入到数据状态空间中。
其中,由于不同数据类型对应不同的指定写入次数,为此,将初始数据状态,写入到数据状态空间中,能够让外界获悉存储空间所存储配置数据的数据类型,从而实现对不同数据类型的配置数据的有效存储。
S205:将配置数据的变更记录,写入到数据槽空间中,并在变更记录写入数据槽空间时,将变更记录对应的数据状态,写入到数据状态空间中。
其中,数据状态用于表征配置数据的剩余写入次数,数据状态之所以能够实现剩余写入次数的表征,主要基于Flash的自身特性,控制数据状态空间中所能够写入的数据状态,以使每次写入的数据状态均可表征对应的数值(即配置数据的剩余写入次数)。
具体的,假设数据状态的表达形式为16进制的32位数据,则数据状态与剩余写入次数之间的对应关系,可以参见表5所示。
上述表5所示的内容仅仅用于举例说明。
具体的,假设配置数据为OTP数据,则将配置数据的唯一变更记录,写入唯一的数据槽空间中,并将数据状态写入数据状态空间。
以表1所示的存储空间为例,假设配置数据的唯一变更记录具体为0x12344321,则将0x12344321写入数据槽空间后,并将0x12344321对应的数据状态0x00000000(用于表征配置数据的剩余写入次数为0),写入数据状态空间,其结果如表6所示。
具体的,假设配置数据为N次MTP数据,则将配置数据的N个变更记录,分别写入到N个数据槽空间中,并在每个变更记录写入数据槽空间时,将每个变更记录对应的数据状态写入数据状态空间,第一次写入的变更记录对应的数据状态可以表征剩余写入次数为N-1,以此类推,最后一次写入的变更记录对应的数据状态可以表征剩余写入次数为0。
以表2所示存储空间为例,假设配置数据的变更记录包括0x12344321、0x11222211和0x22111122,0x12344321对应的数据状态为0xF800F800,0x11222211对应的数据状态为0xE000E000,0x22111122对应的数据状态为0x80008000,相应的,0x12344321写入存储空间时,存储空间如表7所示,0x11222211写入存储空间时,存储空间如表8所示,0x22111122写入存储空间时,存储空间如表9所示。
可选的,在变更记录写入数据槽空间时,如果变更记录携带有指示信息,基于目标数据状态,作为变更记录对应的数据状态,写入到数据状态空间中,并将指定数据写入到目标数据槽空间中。其中,指示信息用于禁止写入配置数据,目标数据状态用于表征配置数据无法写入(即配置数据的剩余写入次数为0),目标数据槽空间为m个数据槽空间中还未被写入数据的数据槽空间。
具体的,假设配置数据为特殊数据,则将配置数据的S个第一变更记录(第一变更记录属于MTP数据)和第二变更记录(第二变更记录携带有指示信息,即第二变更记录属于OTP数据),分别写入到N(N大于S+1)个数据槽空间中,并在每个第一变更记录写入数据槽空间时,将每个第一变更记录对应的数据状态写入数据状态空间,第一次写入的第一变更记录对应的数据状态可以表征剩余写入次数为N-1,以此类推,最后一次写入的第一变更记录对应的数据状态可以表征剩余写入次数为N-S,在将第二变更记录写入数据槽空间时,基于目标数据状态(例如0x80008000)作为第二变更记录对应的数据状态,写入到数据状态空间中,且在剩余的数据槽空间写入指定数据(例如0x00000000),以避免写入其它变更记录。
以表3所示存储空间为例,假设配置数据的变更记录包括0x12344321、0x11222211和0x22111122,其中,0x12344321和0x11222211属于MTP数据,0x22111122属于OTP数据,0x12344321对应的数据状态为0xFE00FE00,0x11222211对应的数据状态为0xF800F800,0x22111122对应的数据状态为0x80008000,相应的,0x12344321写入存储空间时,存储空间如表10所示,0x11222211写入存储空间时,存储空间如表11所示,0x22111122写入存储空间时,存储空间如表12所示。
可以理解的是,在每次变更记录写入数据槽空间之前,都需要读取数据状态空间中的数据状态,以获悉配置数据的当前剩余写入次数,并在基于当前剩余写入次数,确定是否将变更记录写入存储空间中,如果当前剩余写入次数为0,则禁止变更记录写入存储空间中,如此一来,便可有效支持Flash实现OTP数据、MTP数据以及特殊数据的存储。
需要说明的是,在变更记录写入数据槽空间时,将变更记录对应的数据状态,写入到数据状态空间中的具体实现过程,可以参见图3所示的步骤以及步骤的解释说明。
上述S201-S205所示流程,基于数据状态空间和数据槽空间的组合方式,来存储不同数据类型的配置数据,并结合Flash的自身特性,在数据状态空间中写入用于表征剩余写入次数的数据状态,能够无需外部硬件的支持,来控制存储空间中所存储的变更记录的数量,从而支持Flash实现OTP数据、MTP数据以及特殊数据的有效存储。
如图3所示,为本申请实施例提供的又一种数据存储方法的流程示意图,包括如下所示步骤。
S301:在变更记录写入存储空间时,获得存储空间中的当前数据状态。
其中,由于存储空间包括数据状态空间和数据槽空间,且数据状态空间的读取序位高于数据槽空间,为此,在变更记录写入数据槽空间时,均会读取数据状态空间中所存储的数据状态,对于每个变更记录的写入过程而言,从数据状态空间中读取得到的数据状态,均可视为存储空间中的当前数据状态。
S302:基于当前数据状态,获得配置数据的当前剩余写入次数。
其中,可基于数据状态与剩余写入次数的对应关系,确定配置数据的当前剩余写入次数,具体的,基于表5所示的对应关系,以获得当前数据状态对应的当前剩余写入次数。
需要说明的是,为了增加数据状态的可靠性,故可将数据状态设计为携带有指定汉明距离的数值,例如表5所示的数据状态,该数据状态的汉明距离为4,数据状态自身至少可以纠正2位(bit)错误,例如在外部干扰的情况下,数据状态0xFFFEFFFE被读成了0xFFEEFFFE(具体为bit20的存储单位读错了),通过计算0xFFEEFFFE和表5中其他数值之间的汉明距离,确定0xFFEEFFFE与0xFFFEFFFE之间的汉明距离最小,那么可以判定读错的数据状态的真实值是0xFFFEFFFE,如果0xFFFEFFFE被读成了0xFFEEFFEE(具体bit20和bit4的存储单位都读错了),那么计算0xFFEEFFEE和表5中其他数值之间的汉明距离,确定0xFFEEFFEE与0xFFFEFFFE之间的汉明距离最小,可以判定读错的数据状态的真实值是0xFFFEFFFE。
可选的,基于当前数据状态,获得配置数据的当前剩余写入次数的具体表现过程包括:解析当前数据状态,得到目标数值;计算目标数值与多个指定数值之间的汉明距离;基于多个指定数值中汉明距离最小的指定数值,作为目标指定数值;基于指定次数和指定数值的对应关系,确定目标指定数值对应的目标指定次数;基于目标指定次数,作为配置数据的当前剩余写入次数。
可以理解的是,指定次数和指定数值的对应关系,可参见表5所示,即指定次数相当于表5中的剩余写入次数,指定数值相当于表5中的数据状态。
S303:基于当前剩余写入次数,确定变更记录对应的数据状态。
其中,在获得当前剩余写入次数之后,只需在当前剩余写入次数的基础上减少一个次数,便可获得变更记录对应的数据状态。
具体的,以表5所示对应关系为例,假设当前剩余写入次数为6次,则确定变更记录对应的数据状态所表征的剩余写入次数为5次,为此,可以基于0x FFE0FFE0作为变更记录对应的数据状态。
S304:利用变更记录对应的数据状态,代替当前数据状态,写入到存储空间中。
其中,由于存储空间只有一个数据状态空间,为此,将变更记录对应的数据状态写入存储空间,实质就是:利用变更记录对应的数据状态,代替当前数据状态,写入到存储空间中。
上述S301-S304所示流程,基于存储空间来存储配置数据的变更记录,并结合Flash的自身特性,在数据状态空间中写入用于表征配置数据的剩余写入次数的数据状态,来控制存储空间中所存储的变更记录的数量,从而支持Flash实现OTP数据、MTP数据以及特殊数据的有效存储。
与上述本申请提供的数据存储方法相对应,本申请实施例还提供了一种数据存储装置。
如图4所示,为本申请实施例提供的一种数据存储装置的架构示意图,包括如下所示单元。
空间确定单元100,用于确定配置数据的存储空间;存储空间为预先禁止数据擦除的Flash存储空间。
可选的,空间确定单元100具体用于:获得配置数据的指定写入次数;基于指定写入次数,确定配置数据的存储空间;存储空间包括数据状态空间和m个数据槽空间,m的取值等同于指定写入次数。
可选的,空间确定单元100还用于:基于指定写入次数,确定初始数据状态;将初始数据状态,写入到数据状态空间中。
数据写入单元200,用于将配置数据的变更记录,写入到存储空间中,并在变更记录写入存储空间时,将变更记录对应的数据状态,写入到存储空间中;数据状态用于表征配置数据的剩余写入次数。
可选的,数据写入单元200具体用于:将配置数据的变更记录,写入到数据槽空间中,并在变更记录写入数据槽空间时,将变更记录对应的数据状态,写入到数据状态空间中。
可选的,数据写入单元200具体用于:在变更记录写入数据槽空间时,如果变更记录携带有指示信息,基于目标数据状态,作为变更记录对应的数据状态,写入到数据状态空间中,并将指定数据写入到目标数据槽空间中;其中,指示信息用于禁止写入配置数据;目标数据状态用于表征配置数据无法写入;目标数据槽空间为m个数据槽空间中还未被写入数据的数据槽空间。
可选的,数据写入单元200具体用于:在变更记录写入存储空间时,获得存储空间中的当前数据状态;基于当前数据状态,获得配置数据的当前剩余写入次数;基于当前剩余写入次数,确定变更记录对应的数据状态;利用变更记录对应的数据状态,代替当前数据状态,写入到存储空间中。
可选的,数据写入单元200具体用于:解析当前数据状态,得到目标数值;计算目标数值与多个指定数值之间的汉明距离;基于多个指定数值中汉明距离最小的指定数值,作为目标指定数值;基于指定次数和指定数值的对应关系,确定目标指定数值对应的目标指定次数;基于目标指定次数,作为配置数据的当前剩余写入次数。
上述各个单元,基于存储空间来存储配置数据的变更记录,并结合Flash的自身特性,在数据状态空间中写入用于表征配置数据的剩余写入次数的数据状态,来控制存储空间中所存储的变更记录的数量,从而支持Flash实现OTP数据、MTP数据以及特殊数据的有效存储。
本申请还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,程序执行上述本申请提供的数据存储方法。
本申请还提供了一种控制器,包括:处理器、存储器和总线。处理器与存储器通过总线连接,存储器用于存储程序,处理器用于运行程序,其中,程序运行时执行上述本申请提供的数据存储方法。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本申请的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (8)
1.一种数据存储方法,其特征在于,包括:
确定配置数据的存储空间;所述存储空间为预先禁止数据擦除的Flash存储空间;
将所述配置数据的变更记录,写入到所述存储空间中,并在所述变更记录写入所述存储空间时,将所述变更记录对应的数据状态,写入到所述存储空间中;所述数据状态用于表征所述配置数据的剩余写入次数;
在所述变更记录写入所述存储空间时,将所述变更记录对应的数据状态,写入到所述存储空间中,包括:
在所述变更记录写入所述存储空间时,获得所述存储空间中的当前数据状态;
基于所述当前数据状态,获得所述配置数据的当前剩余写入次数;
基于所述当前剩余写入次数,确定所述变更记录对应的数据状态;
利用所述变更记录对应的数据状态,代替所述当前数据状态,写入到所述存储空间中;
基于所述当前数据状态,获得所述配置数据的当前剩余写入次数,包括:
解析所述当前数据状态,得到目标数值;
计算所述目标数值与多个指定数值之间的汉明距离;
基于所述多个指定数值中汉明距离最小的指定数值,作为目标指定数值;
基于指定次数和指定数值的对应关系,确定所述目标指定数值对应的目标指定次数;
基于所述目标指定次数,作为所述配置数据的当前剩余写入次数。
2.根据权利要求1所述的方法,其特征在于,确定所述配置数据的存储空间,包括:
获得配置数据的指定写入次数;
基于所述指定写入次数,确定所述配置数据的存储空间;所述存储空间包括数据状态空间和m个数据槽空间,m的取值为所述指定写入次数。
3.根据权利要求2所述的方法,其特征在于,将所述配置数据的变更记录,写入到所述存储空间中,并在所述变更记录写入所述存储空间时,将所述变更记录对应的数据状态,写入到所述存储空间中,包括:
将所述配置数据的变更记录,写入到所述数据槽空间中,并在所述变更记录写入所述数据槽空间时,将所述变更记录对应的数据状态,写入到所述数据状态空间中。
4.根据权利要求2所述的方法,其特征在于,在基于所述指定写入次数,确定所述配置数据的存储空间之后,还包括:
基于所述指定写入次数,确定初始数据状态;
将所述初始数据状态,写入到所述数据状态空间中。
5.根据权利要求2所述的方法,其特征在于,在所述变更记录写入所述数据槽空间时,将所述变更记录对应的数据状态,写入到所述数据状态空间中,包括:
在所述变更记录写入所述数据槽空间时,如果所述变更记录携带有指示信息,基于目标数据状态,作为所述变更记录对应的数据状态,写入到所述数据状态空间中,并将指定数据写入到目标数据槽空间中;其中,所述指示信息用于禁止写入所述配置数据;所述目标数据状态用于表征所述配置数据无法写入;所述目标数据槽空间为所述m个数据槽空间中还未被写入数据的数据槽空间。
6.一种数据存储装置,其特征在于,包括:
空间确定单元,用于确定配置数据的存储空间;所述存储空间为预先禁止数据擦除的Flash存储空间;
数据写入单元,用于将所述配置数据的变更记录,写入到所述存储空间中,并在所述变更记录写入所述存储空间时,将所述变更记录对应的数据状态,写入到所述存储空间中;所述数据状态用于表征所述配置数据的剩余写入次数;在所述变更记录写入所述存储空间时,将所述变更记录对应的数据状态,写入到所述存储空间中,包括:在所述变更记录写入所述存储空间时,获得所述存储空间中的当前数据状态;基于所述当前数据状态,获得所述配置数据的当前剩余写入次数;基于所述当前剩余写入次数,确定所述变更记录对应的数据状态;利用所述变更记录对应的数据状态,代替所述当前数据状态,写入到所述存储空间中;基于所述当前数据状态,获得所述配置数据的当前剩余写入次数,包括:解析所述当前数据状态,得到目标数值;计算所述目标数值与多个指定数值之间的汉明距离;基于所述多个指定数值中汉明距离最小的指定数值,作为目标指定数值;基于指定次数和指定数值的对应关系,确定所述目标指定数值对应的目标指定次数;基于所述目标指定次数,作为所述配置数据的当前剩余写入次数。
7.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序被处理器运行时执行权利要求1-5任一所述的数据存储方法。
8.一种控制器,其特征在于,包括:处理器、存储器和总线;所述处理器与所述存储器通过所述总线连接;
所述存储器用于存储程序,所述处理器用于运行程序,其中,所述程序被处理器运行时执行权利要求1-5任一所述的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310891158.1A CN116610269B (zh) | 2023-07-20 | 2023-07-20 | 数据存储方法、装置、存储介质和控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310891158.1A CN116610269B (zh) | 2023-07-20 | 2023-07-20 | 数据存储方法、装置、存储介质和控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116610269A CN116610269A (zh) | 2023-08-18 |
CN116610269B true CN116610269B (zh) | 2023-11-21 |
Family
ID=87685760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310891158.1A Active CN116610269B (zh) | 2023-07-20 | 2023-07-20 | 数据存储方法、装置、存储介质和控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116610269B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888821A (zh) * | 2019-09-30 | 2020-03-17 | 华为技术有限公司 | 一种内存管理方法及装置 |
CN115202579A (zh) * | 2022-07-19 | 2022-10-18 | 深圳市科创奇科技有限公司 | 一种存储器数据保存方法和系统 |
CN115657931A (zh) * | 2022-09-06 | 2023-01-31 | 梅赛德斯-奔驰集团股份公司 | 用于配置具备驾驶辅助功能的汽车的数据存储系统的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11526433B2 (en) * | 2020-03-12 | 2022-12-13 | International Business Machines Corporation | Data structure allocation into storage class memory during compilation |
-
2023
- 2023-07-20 CN CN202310891158.1A patent/CN116610269B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110888821A (zh) * | 2019-09-30 | 2020-03-17 | 华为技术有限公司 | 一种内存管理方法及装置 |
CN115202579A (zh) * | 2022-07-19 | 2022-10-18 | 深圳市科创奇科技有限公司 | 一种存储器数据保存方法和系统 |
CN115657931A (zh) * | 2022-09-06 | 2023-01-31 | 梅赛德斯-奔驰集团股份公司 | 用于配置具备驾驶辅助功能的汽车的数据存储系统的方法 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的OLED驱动设计;中国优秀硕士学位论文全文数据库信息科技辑(第3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116610269A (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7725646B2 (en) | Method of using a flash memory for a circular buffer | |
US5699549A (en) | Memory card having a card management information area for improved format capability and recording, reproducing, and erasing methods therefor | |
US8332696B2 (en) | Defect management method for storage medium and system thereof | |
US20110202709A1 (en) | Optimizing storage of common patterns in flash memory | |
US8892812B2 (en) | Flash memory device and data writing method for a flash memory | |
TWI436369B (zh) | 記憶裝置之使用壽命量測方法及系統內編程碼置換方法、及其資料儲存系統 | |
CN113220239A (zh) | 一种flash存储的擦写方法、装置、设备及可读存储介质 | |
CN108039190B (zh) | 一种测试方法及装置 | |
JP2016540297A (ja) | Nandメモリデバイス内に記憶されたデータのフェールセーフリフレッシュ | |
CN107045423B (zh) | 存储器装置及其数据存取方法 | |
US20090259796A1 (en) | Data writing method for non-volatile memory and storage system and controller using the same | |
CN112988611A (zh) | 非易失性存储器的数据写入方法、终端和可读存储介质 | |
CN103514101A (zh) | 存取闪存的方法以及相关的记忆装置 | |
CN115562587A (zh) | 应用于存储介质的数据存储方法、装置、设备及存储介质 | |
US20090164869A1 (en) | Memory architecture and configuration method thereof | |
CN116610269B (zh) | 数据存储方法、装置、存储介质和控制器 | |
CN109669641B (zh) | 降低ssd误码率的数据存放方法及装置 | |
CN108962322B (zh) | 使用非易失性存储器来实施非易失性计数器的方法和系统 | |
CN113885791A (zh) | Flash存储器的数据写入方法、读取方法和装置 | |
CN111949198A (zh) | 一种坏块管理方法、装置和存储设备 | |
US8312205B2 (en) | Method for identifying a page of a block of flash memory, and associated memory device | |
US20060117134A1 (en) | System and method for prolonging usage lifetime of a non-volatile memory | |
CN118506847B (zh) | 存储器存储装置的检测方法及非瞬时计算机可读取记录媒体 | |
CN110647455A (zh) | 一种存储设备重启记录方法和系统 | |
CN114637626B (zh) | 减少eeprom数据读写出错的方法、装置、设备及可读存储介质 |
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 |