CN116954499A - 模拟eeprom的数据处理方法及装置 - Google Patents
模拟eeprom的数据处理方法及装置 Download PDFInfo
- Publication number
- CN116954499A CN116954499A CN202310723048.4A CN202310723048A CN116954499A CN 116954499 A CN116954499 A CN 116954499A CN 202310723048 A CN202310723048 A CN 202310723048A CN 116954499 A CN116954499 A CN 116954499A
- Authority
- CN
- China
- Prior art keywords
- storage area
- data
- state information
- memory
- storage
- 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 abstract description 8
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 5
- 230000010076 replication Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 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/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/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]
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
本申请公开了一种模拟EEPROM的数据处理方法及装置。方法包括:将SRAM中的第一待处理数据写入第一存储区;第一存储区为当前有效数据所在的存储区,第一存储区是否为当前有效数据所在的存储区根据所述第一存储区的状态信息集合确定;在第一存储区达到存储阈值的情况下,将第一存储区中的有效数据复制至第二存储区;擦除第一存储区中的全部数据。实施本申请,可以在没有EEPROM的情况下存储需要保存的非易失性数据,从而可以在不影响程序执行的情况下实现快速读写访问的功能。
Description
技术领域
本申请涉及嵌入式领域,尤其涉及一种模拟EEPROM的数据处理方法及装置。
背景技术
在嵌入式开发中,在很多产品的场景中都使用EEPROM来存储应用中需要保存的非易失性数据。然而,目前在诸如MCU之类的主流微处理器具有较大的闪存(flash)空间,而没有EEPROM。因此,如何在没有EEPROM的情况下存储需要保存的非易失性数据是需要解决的问题。
发明内容
本申请实施例公开了一种模拟EEPROM的数据处理方法及装置,可以在没有EEPROM的情况下存储需要保存的非易失性数据,从而可以在不影响程序执行的情况下实现快速读写访问的功能。
第一方面,本申请实施例提供了一种模拟EEPROM的数据处理方法,方法包括:
将SRAM中的第一待处理数据写入第一存储区,所述第一存储区为当前有效数据所在的存储区,所述第一存储区是否为当前有效数据所在的存储区根据所述第一存储区的状态信息集合确定;
在所述第一存储区达到存储阈值的情况下,将所述第一存储区中的有效数据复制至第二存储区,所述第二存储区的状态信息集合指示所述第二存储区中不存在数据;
擦除所述第一存储区中的全部数据。
第二方面,本申请实施例提供了一种模拟EEPROM的数据处理装置,装置包括:
写入模块,用于将SRAM中的第一待处理数据写入第一存储区,所述第一存储区为当前有效数据所在的存储区,存储区中包括状态信息集合,所述状态信息集合用于表示对应的存储区是否为当前有效数据所在的存储区,所述状态信息集合包括第一状态信息、第二状态信息、第三状态信息以及第四状态信息,所述第一状态信息用于表示对应的存储区是否存在数据,所述第二状态信息用于表示对应的存储区中的目标数据是否已被复制到其他存储区,所述第三状态信息用于表示对应的存储区是否存在有效数据,所述第四状态信息用于表示对应的存储区是否已被格式化;
复制模块,用于在所述第一存储区达到存储阈值的情况下,将所述第一存储区中的有效数据复制至第二存储区,所述第二存储区的第二状态信息集合指示所述第二存储区中不存在数据;
擦除模块,用于擦除所述第一存储区中的全部数据。
第三方面,本申请实施例提供了一种电子设备,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如第一方面所述的方法。
实施本申请实施例,通过将SRAM中的第一待处理数据写入第一存储区,在第一存储区达到存储阈值的情况下,将第一存储区中的有效数据复制至第二存储区;擦除第一存储区中的全部数据。其中,第一存储区为当前有效数据所在的存储区,存储区中包括状态信息集合,状态信息集合用于表示对应的存储区是否为当前有效数据所在的存储区。从而解决了在没有EEPROM的情况下存储需要保存的非易失性数据的问题,从而可以在不影响程序执行的情况下实现快速读写访问的功能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种模拟EEPROM的数据处理方法的架构示意图;
图2为本申请实施例提供的一种模拟EEPROM的数据处理方法的流程示意图;
图3为本申请实施例提供的一种FLASH存储结构示意图;
图4为本申请实施例提供的一种存储区的状态信息集合转换示意图;
图5为本申请实施例提供的另一种FLASH存储结构示意图;
图6为本申请实施例提供的一种模拟EEPROM的数据处理装置的组成示意图。
具体实施方式
下面结合附图对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区分不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
需要说明的是,本申请实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方法不应被解释为比其他实施例或设计方案更优地或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。在本申请实施例中,“A和/或B”表示A和B,A或B两个含义。“A,和/或B,和/或C”表示A、B、C中的任一个,或者,表示A、B、C中的任两个,或者,表示A和B和C。
请参见图1,图1为本申请实施例提供的一种模拟EEPROM的数据处理方法的架构示意图。
SRAM是指静态随机存取存储器,是随机存取存储器的一种。随机存取存储器(Random Access Memory,RAM)是与处理器直接交换数据的内部存储器。它可以随时读写(刷新时除外),而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储介质。RAM工作时可以随时从任何一个指定的地址写入(存入)或读出(取出)信息。但它一旦断电,所存储的数据将随之丢失。RAM在计算机和数字系统中用来暂时存储程序、数据和中间结果。因此,在断电前,需要将RAM中的临时数据存入只读存储器中,在下一次上电后从只读存储器中读取出来存入RAM中。在本申请实施例中,在给处理器101上电的情况下,处理器101用于从FLASH103中读取有效数据存入SRAM102中,以便于处理器101可以快速从SRAM102中读取数据对数据进行处理。其中,有效数据是指上一次断电前临时存储在SRAM中的临时存储数据。并且,处理器101也可以将数据存入SRAM102中作为临时存储数据,以及,将SRAM102中的数据存储到FLASH中。如图1所示,在本申请实施例中,可以将FLASH分为第一存储区和第二存储区两个存储区。在一些可能得实现方式中,也可以将FLASH分为三个、四个或更多的存储区。本申请实施例对此不作限定。
请参见图2,为本申请实施例提供的一种模拟EEPROM的数据处理方法的流程示意图。可以包括步骤S201-步骤203。
步骤S201:将SRAM中的第一待处理数据写入第一存储区。
其中,第一存储区为当前有效数据所在的存储区。第一存储区是否为当前有效数据所在的存储区根据第一存储区的状态信息集合确定。也就是说,每个存储区中包括状态信息集合。状态信息集合可用于表示对应的存储区是否为当前有效数据所在的存储区。示例性的,第一存储区中有状态信息集合,第一存储区中的状态信息集合可以用于表示第一存储区是否为当前有效数据所在的存储区。存储区是指对FLASH进行分区后得到的两个及以上的可存储数据的区域。
在一种可能的实现方式中,状态信息集合可以包括第一状态信息、第二状态信息、第三状态信息以及第四状态信息。第一状态信息用于表示对应的存储区是否存在数据。第二状态信息用于表示对应的存储区中的目标数据是否已被复制到其他存储区。第三状态信息用于表示对应的存储区是否存在有效数据。第四状态信息用于表示对应的存储区是否已被格式化。需要说明的是,第三状态信息用于表示对应的存储区是否存在有效数据,与存储区是否为当前有效数据所在的存储区是存在区别的。当前有效数据所在的存储区是指当前可以进行读写操作的存储区,是根据状态信息集合中各个状态信息共同确定的。也就是说,存在有效数据的存储区不一定是当前有效数据所在的存储区。在一种可能的实现方式中,状态信息集合中的每个状态信息分别可以使用一个bit来表示。示例性的,某一bit位用于表示第一状态信息,当该bit位的值为0时表示对应的存储区不存在数据,当该bit位的值为1时表示对应的存储区存在数据。另一bit位用于表示第二状态信息,当该bit位的值为0时表示对应的存储区中的数据未被复制到其他存储区,当该bit位的值为1时表示对应的存储区中的数据已被复制到其他存储区。以此类推。
在一种可能的实现方式中,为了避免存储空间的浪费以及简化读写数据的操作,第一待处理数据可以顺序写入第一存储区中。示例性的,如图3所示,图3为本申请实施例提供的一种FLASH存储结构示意图。假若存储空间1-6已写入数据,那么第一待处理数据可以顺序写入可以写入数据的存储空间7中,而不是跳过存储空间7不写入直接写入存储空间8或其他可写入数据的存储空间中。
当第一存储区为当前有效数据所在的存储区且未达到存储阈值,可以继续写入数据到第一存储区时,第一存储区的第一状态信息至第四状态信息分别为:存在数据、未完成复制、存在有效数据以及已格式化。
其中,第一待处理数据可以是指当前存储在SRAM中的临时数据。在SRAM中的数据更新后,可相应的将变化的数据更新到FLASH的第一存储区中。由于FLASH是一种数据可以被擦除但无法被覆盖的存储器,因此可以理解的是,在SRAM中更新了的数据,不会相应的在FLASH对应存储空间更新该数据,避免对同一地址进行重复写入,而是在第一存储区的另一存储空间上存储更新后的数据。也就是说,SRAM中更新前的数据,仍然存储在FLASH中,但已经成为了无效数据,而SRAM中更新后的数据,也被存储在了FLASH中,是当前的有效数据。示例性的,图3中示出了FLASH中的某一个存储区,在该存储区中可以包括多个存储空间。当SRAM中的地址A所对应的数据a1需要被存储时,存储在了该存储区的存储空间1内,存储空间1内存储的内容包括SRAM地址A以及数据a1。若SRAM地址A对应的数据由数据a1更新为了数据a2,由于存储空间2-4已存储了其他数据,(如存储空间2存储了SRAM地址B以及数据b,存储空间3存储了SRAM地址C以及数据c,存储空间4存储了SRAM地址D以及数据d,)那么可以将地址A以及数据a2顺序地存储在存储空间5中。若再次对地址A中的数据由数据a2更新为数据a3,那么可以将地址A以及数据a3存储在存储空间6中。可以看出,存储空间1、5、6所存储的均为SRAM中地址A对应的数据,但此时存储空间1、5所存储的实际上为无效数据,存储空间6所存储的为有效数据。也就是说,FLASH中的有效数据可以是指SRAM中到当前为止的最后一次更新后的存储在FLASH中的数据。若SRAM中某一地址对应的数据一直未更新,则存储在FLASH中该地址的数据一直为有效数据,直至SRAM中该地址对应的数据被更新,则存储在FLASH中的该数据成为无效数据。相应的,FLASH中将会写入SRAM该地址对应的更新后的数据。在一种可能的实现方式中,为便于从FLASH中存储和读取数据,可以将数据顺序地存储在FLASH的存储区中。例如,先将数据存储在存储空间1,然后依次将数据存储在存储空间2、存储空间3等。而不是先将数据存储在存储空间1,然后将数据存储在存储空间5,再将数据存储在存储空间2等。可以理解的是,将SRAM中的第一待处理数据写入第一存储区不表示第一存储区中仅存储第一待处理数据。存储在第一存储区的存储空间中的数据包括但不限于第一待处理数据以及第一待处理数据在SRAM中对应的地址等。
在一种可能的实现方式中,每一存储区的存储大小大于SRAM的存储大小。
步骤S202:在第一存储区达到存储阈值的情况下,将第一存储区中的有效数据复制至第二存储区。
其中,此时第二存储区的状态信息集合指示第二存储区中不存在数据。
由于FLASH中的数据无法被覆盖可以知道,当不断地将SRAM中的第一待处理数据写入第一存储区,逐渐的将会达到第一存储区的存储阈值。也就是说,当达到存储阈值后,第一存储区中无法再存储更多的待处理数据。因此,可以在第一存储区达到存储阈值的情况下,将第一存储区中的有效数据复制至第二存储区中。可以理解的是,第一存储区中的无效数据为SRAM中的更新前的数据,已经不存储在SRAM中了,因此可以不将第一存储区中的无效数据复制到第二存储区中。可以理解的是,将第一存储区中的有效数据复制到第二存储区中时存储时,也可以是顺序存储到第二存储区中。示例性的,如图5所示,图5为本申请实施例提供的另一种FLASH存储结构示意图。包括第一存储区和第二存储区。其中,第一存储区已达到存储阈值,第一存储区的存储顺序为由下至上。那么可以知道,第一存储区中的有效数据包括存储空间19对应的数据D3、存储空间17对应的数据D2以及存储空间13对应的数据D1。而由于存储空间10、11、12、14、15、16以及18所存储的数据对应的SRAM的地址分别与存储空间13、17、19所存储的数据对应的SRAM的地址AD1、地址AD2或地址AD3相同,因此可以知道存储空间10、11、12、14、15、16以及18所存储的数据为无效数据。因此复制到第二存储区中的数据为数据D1、数据D2以及数据D3。按照顺序存储,可以将数据D3以及数据D3在SRAM中对应的地址存储到第二存储区的存储空间20中,将数据D2以及数据D2在SRAM中的对应的地址存储到第二存储区的存储空间21中,将数据D1以及数据D1在SRAM中的对应的地址存储到第二存储区的存储空间22中。或者,也可以将数据D1以及数据D1在SRAM中对应的地址存储到第二存储区的存储空间20中,将数据D2以及数据D2在SRAM中的对应的地址存储到第二存储区的存储空间21中,将数据D3以及数据D3在SRAM中的对应的地址存储到第二存储区的存储空间22中。本申请实施例对此不作任何限定。
请参见图4,图4为本申请实施例提供的一种存储区的状态信息集合转换示意图。如图4所示,当第一存储区为当前有效数据所在的存储区且未达到存储阈值,可以继续写入数据到第一存储区时,第二存储区的第一状态信息至第四状态信息分别为:不存在数据、未完成复制、不存在有效数据以及已格式化。
若在第一存储区为当前有效数据所在的存储区且未达到存储阈值,可以继续写入数据到第一存储区的情况下下电,如图4所示,此时第一存储区的第一状态信息至第四状态信息分别为:存在数据、未完成复制、存在有效数据以及已格式化。第二存储区的第一状态信息至第四状态信息分别为:不存在数据、未完成复制、不存在有效数据以及已格式化。因此可以知道,当下次上电时,可以从第一存储区中读取有效数据写入SRAM中,且能继续往第一存储区中写入数据。可以理解的是,处理器确定当前有效数据所在的存储区可以通过某一存储区的状态信息集合确定,可以不对各存储区的状态信息集合进行比较后确定。本申请实施例中将第一存储区的状态信息与第二存储区中的状态信息进行对比,是为了更清楚的对本申请实施例进行解释说明。
将第一存储区中的有效数据复制至第二存储区包括:修改第二存储区的第一状态信息为存在数据;将第一存储区中的有效数据复制至第二存储区。
在修改第二存储区的第一状态信息为存在数据后,如图4所示,第一存储区的第一状态信息至第四状态信息分别为:存在数据、未完成复制、存在有效数据以及已格式化。第二存储区的第一状态信息至第四状态信息分别为:存在数据、未完成复制、不存在有效数据以及已格式化。
通过修改第二存储区的第一状态信息为存在数据,在修改完第二存储区的第一状态信息后但第一存储区中的有效数据未被复制或者未被完全复制到第二存储区中进行存储的情况下断电,可以根据第一存储区的为未完成复制的第二状态信息以及第二存储区的为存在数据的第一状态信息擦除第二存储区中已存储的有效信息,重新将第一存储区中的有效信息复制到第二存储区中。且由于此时第一存储区的第三状态信息为存在有效数据,那么上电后可以从第一存储区中读取有效数据写入SRAM中。
需要说明的是,存储区的第一状态信息为不存在数据时,所表示的意思是该存储区中不存在从SRAM中读取的数据或者可写入SRAM的数据,但是可以存在状态信息集合。
在一种可能的实现方式中,在将第一存储区中的目标数据复制至第二存储区之后,还包括:修改第一存储区的第二状态信息为已完成复制。
与若在修改完第二存储区的第一状态信息但第一存储区中的有效数据未被复制或者未被完全复制到第二存储区中进行存储的情况下断电相同,若在未修改第一存储区的第二状态信息为已完成复制之前,可以根据第一存储区的为未完成复制的第二状态信息以及第二存储区的为存在数据的第一状态信息擦除第二存储区中已存储的有效信息,重新将第一存储区中的有效信息复制到第二存储区中。且由于此时第一存储区的第三状态信息为存在有效数据,那么上电后可以从第一存储区中读取有效数据写入SRAM中。
当将第一存储区的第二状态信息修改为已完成复制后说明第一存储区中的有效数据已全部被复制到了其他存储区(此处为第二存储区)。将第一存储区的第二状态信息修改为已完成复制后,如图4所示,第一存储区的第一状态信息至第四状态信息分别为:存在数据、已完成复制、存在有效数据以及已格式化。第二存储区的第一状态信息至第四状态信息分别为:存在数据、未完成复制、不存在有效数据以及已格式化。
在一种可能的实现方式中,在修改第一存储区的第二状态信息为已完成复制之后,还包括:
修改第二存储区的第三状态信息为存在有效数据。
通过修改第一存储区的第二状态信息为已完成复制,若在修改第二存储区的第三状态信息为存在有效数据之前下电,则可以下一次上电后,确定是从第一存储区中读取有效数据写入SRAM中。
当修改第二存储区的第三状态信息为存在有效数据之后,如图4所示,第一存储区的第一状态信息至第四状态信息分别为:存在数据、已完成复制、存在有效数据以及已格式化。第二存储区的第一状态信息至第四状态信息分别为:存在数据、未完成复制、存在有效数据以及已格式化。
步骤S203:擦除第一存储区中的全部数据。
第一存储区中的数据包括从RAM中读取并写入第一存储区的数据以及状态信息集合。擦除第一存储区中的全部数据可以包括擦除第一存储区中的从RAM中读取并写入第一存储区的全部数据。进一步的,还可以包括擦除第一存储区的状态信息集合。其中,擦除第一存储区的状态信息集合可以是指初始化第一存储区的状态信息集合至第一存储区不存在数据的状态。
通过修改第二存储区的第三状态信息为存在有效数据,那么可以在擦除第一存储区中的全部数据之前下电的情况下,在下一次上电后,可以从第二存储区中读取有效数据写入SRAM中。这是因为,尽管第一存储区中还存储有全部或部分有效数据,但由于第一存储区的第二状态信息为已完成复制,且第二存储区的第三状态信息为存在有效数据,因此在下一次上电后,可以从第二存储区中读取有效数据写入SRAM中。
在一种可能的实现方式中,擦除第一存储区中的全部数据包括:擦除第一存储区中的全部数据,修改第一存储区的第一状态信息为不存在有效数据,修改第一存储区的第二状态信息为不存在数据,修改第一存储区的第三状态信息为未完成复制,修改第一存储区的第四状态信息为未格式化。
可以理解的是,全部数据包括写入的SRAM上的数据,以及,状态信息集合。由于存储区的状态信息集合在存储区未写入SRAM上的数据时也需要用于确定存储区的状态,因此,在擦除存储区中的全部数据后需要重新烧写该存储区的状态信息集合。即,修改第一存储区的第一状态信息为不存在有效数据,修改第一存储区的第二状态信息为不存在数据,修改第一存储区的第三状态信息为未完成复制,修改第一存储区的第四状态信息为未格式化。
在一种可能的实现方式中,由于FLASH中存储的数据在被擦除时不提供字节级别的擦除,而是以块为单位进行擦除。因此,每一存储区的大小可以是块的整数倍。也就是说,一个存储区由多个块组成,一个块由多个存储空间组成。进一步的,可以使得状态信息集合一起单独占用一个或多个块,与数据存储分别在不同块中。或者,也可以使得每个状态信息分别占用存储区中的一个或多个块,与数据分别存储在不同块中。本申请实施例对此不作限定。
在将第一存储区的状态信息集合重新烧写之后,如图4所示,第一存储区的第一状态信息至第四状态信息分别为:不存在数据、未完成复制、不存在有效数据以及未格式化。第二存储区的第一状态信息至第四状态信息分别为:存在数据、未完成复制、存在有效数据以及未格式化。
通过重新烧写第一存储区的状态信息集合,一方面可以对第一存储区进行初始化操作,为第一存储区的重复使用做准备。另一方面可以在将第一存储区的状态信息集合修改之后下电的情况下,在下一次上电后可以从第二存储区中读取有效数据写入SRAM中。这是因为第一存储区的第三状态信息为不存在有效数据,以及,第二存储区的第三状态信息为存在有效数据,则在下一次上电后可以从第二存储区中读取有效数据写入SRAM中。
FLASH中存储的数据在下电之后仍然保存在FLASH中。但存储的数据不可被覆盖。当需要在已存储有数据的存储空间存储新的数据时,可以通过擦除原来存储的数据,再写入新的数据到该存储空间中来达到存储新的数据的目的。
在一种可能的实现方式中,还包括修改第一存储区的第四状态信息为已格式化。
在修改第一存储区的第四状态信息为已格式化之后,如图4所示,第一存储区的第一状态信息至第四状态信息分别为:不存在数据、未完成复制、不存在有效数据以及已格式化。第二存储区的第一状态信息至第四状态信息分别为:存在数据、未完成复制、存在有效数据以及未格式化。
若第一存储区的第四状态信息为未格式化,说明第一存储区未完成重新烧写状态信息的动作。通过将第一存储区的第四状态信息由未格式化修改为已格式化,一方面可以确定第一存储区已重新烧写状态信息集合完成。另一方面,在将第一存储区的状态信息集合修改之后下电的情况下,在下次上电后,可以确定从第二存储区中读取有效数据写入SRAM中。
在一种可能的实现方式中,还可以包括:将SRAM中的第二待处理数据写入第二存储区。
可以理解的是,第一待处理数据和第二待处理数据可以是指SRAM中还未写入到FLASH中的数据。
从修改第一存储区的第四状态信息为已格式化之后的第一存储区以及第二存储区的状态信息集合可以知道,当前有效数据所在的存储区。第二存储区为新的第一存储区,格式化后的第一存储区为新的第二存储区,后续在第二存储区达到存储阈值的情况下,可以将第二存储区中的有效数据复制至格式化后的第一存储区。
在一种可能的实现方式中,可以对新的第一存储区执行上述第一存储区对应的方法,对新的第二存储区执行上述第二存储区对应的方法,此处不再进行赘述。
在一种可能的实现方式中,若FLASH被分为了三块及以上存储区,则可以将第一存储区中的有效数据复制至第二存储区,将第二待处理数据写入第三存储区,本申请实施例对此不作限定。
在一种可能的实现方式中,可以使用一个bit表示一个状态信息,例如表示某存储区的第一状态信息对应的bit位为1,可以表示该存储区的第一状态信息为存在数据,若该bit位为0,则表示该存储区的第一状态信息为不存在数据。其他状态信息可以此类推。进一步的,由于使用一个bit表示一个状态信息时,可能存在bit发生错误的情况,例如,某存储区的第三状态信息为存在有效数据,那么表示该存储区的第三状态信息所对应的bit位应当为1,但可能由于bit发生错误,翻转为了0,那么此时该存储区的第三状态信息未被正确表示。未有效避免这种情况,可使用多个bit位用于表示一个状态信息,例如使用48个bit位表示某存储区的第一状态信息,若该48个bit位中1/0的数目大于预设数量,则说明该存储区的第一状态信息为存在数据/不存在数据。或者,也可以通过比较该48个bit位中1的数目和0的数目确定第一状态信息所表示的信息。例如,若该48个bit位中1的数目大于0的数目,则说明该存储区的第一状态信息为存在数据。若该48个bit位中0的数目大于1的数目,则说明该存储区的第一状态信息为不存在数据。
下面结合附图介绍本申请实施例涉及的装置。
请参见图6,图6为本申请实施例提供的一种模拟EEPROM的数据处理装置的组成示意图。模拟EEPROM的数据处理装置600可以包括:
写入模块601,用于将SRAM中的第一待处理数据写入第一存储区,所述第一存储区为当前有效数据所在的存储区,所述第一存储区是否为当前有效数据所在的存储区根据所述第一存储区的状态信息集合确定;
复制模块602,用于在所述第一存储区达到存储阈值的情况下,将所述第一存储区中的有效数据复制至第二存储区,所述第二存储区的第二状态信息集合指示所述第二存储区中不存在数据;
擦除模块603,用于擦除所述第一存储区中的全部数据。
在一种可能的实现方式中,状态信息集合包括第一状态信息,第一状态信息用于表示对应的存储区是否存在数据,模拟EEPROM的数据处理装置600还可以包括:
修改模块604,用于修改第二存储区的第一状态信息为存在数据。
在一种可能的实现方式中,状态信息集合包括第二状态信息,第二状态信息用于表示对应的存储区中的目标数据是否已被复制到其他存储区,修改模块604,还用于修改第一存储区的第二状态信息为已完成复制。
在一种可能的实现方式中,修改模块604,状态信息集合包括第三状态信息,第三状态信息用于表示对应的存储区是否存在有效数据,还用于修改第二存储区的第三状态信息为存在有效数据。
在一种可能的实现方式中,状态信息集合包括第四状态信息,第四状态信息用于表示对应的存储区是否已被格式化,修改模块604,还用于修改第一存储区的第一状态信息为不存在有效数据,修改第一存储区的第二状态信息为不存在数据,修改第一存储区的第三状态信息为未完成复制,修改第一存储区的第四状态信息为未格式化。
在一种可能的实现方式中,修改模块604,还用于修改第一存储区的第四状态信息为已格式化。
在这一做可能的实现方式中,写入模块601,还用于将SRAM中的第二待处理数据写入第二存储区,所述第二存储区为当前有效数据所在的存储区。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种模拟EEPROM的数据处理方法,其特征在于,所述方法包括:
将SRAM中的第一待处理数据写入第一存储区,所述第一存储区为当前有效数据所在的存储区,所述第一存储区是否为当前有效数据所在的存储区根据所述第一存储区的状态信息集合确定;
在所述第一存储区达到存储阈值的情况下,将所述第一存储区中的有效数据复制至第二存储区,所述第二存储区的状态信息集合指示所述第二存储区中不存在数据;
擦除所述第一存储区中的全部数据。
2.根据权利要求1所述的方法,其特征在于,所述状态信息集合包括第一状态信息,所述第一状态信息用于表示对应的存储区是否存在数据,所述将所述第一存储区中的有效数据复制至第二存储区包括:
修改所述第二存储区的第一状态信息为存在数据;
将所述第一存储区中的有效数据复制至所述第二存储区。
3.根据权利要求2所述的方法,其特征在于,所述状态信息集合包括第二状态信息,所述第二状态信息用于表示对应的存储区中的目标数据是否已被复制到其他存储区,在所述将所述第一存储区中的目标数据复制至所述第二存储区之后,所述方法还包括:
修改所述第一存储区的第二状态信息为已完成复制。
4.根据权利要求3所述的方法,其特征在于,所述状态信息集合包括第三状态信息,所述第三状态信息用于表示对应的存储区是否存在有效数据,在所述修改所述第一存储区的第二状态信息为已完成复制之后,所述方法还包括:
修改所述第二存储区的第三状态信息为存在有效数据。
5.根据权利要求4所述的方法,其特征在于,所述状态信息集合包括第四状态信息,所述第四状态信息用于表示对应的存储区是否已被格式化,所述擦除所述第一存储区中的所述第一待处理数据包括:
擦除所述第一存储区中的全部数据;
修改所述第一存储区的第一状态信息为不存在有效数据,修改所述第一存储区的第二状态信息为不存在数据,修改所述第一存储区的第三状态信息为未完成复制,修改所述第一存储区的第四状态信息为未格式化。
6.根据权利要求5所述的方法,其特征在于,所述擦除所述第一存储区中的所述第一待处理数据还包括:
修改所述第一存储区的第四状态信息为已格式化。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
将SRAM中的第二待处理数据写入所述第二存储区,所述第二存储区为当前有效数据所在的存储区。
8.一种模拟EEPROM的数据处理装置,其特征在于,所述装置包括:
写入模块,用于将SRAM中的第一待处理数据写入第一存储区,所述第一存储区为当前有效数据所在的存储区,所述第一存储区是否为当前有效数据所在的存储区根据所述第一存储区的状态信息集合确定;
复制模块,用于在所述第一存储区达到存储阈值的情况下,将所述第一存储区中的有效数据复制至第二存储区,所述第二存储区的第二状态信息集合指示所述第二存储区中不存在数据;
擦除模块,用于擦除所述第一存储区中的全部数据。
9.一种电子设备,其特征在于,包括处理器和存储器,所述处理器和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310723048.4A CN116954499A (zh) | 2023-06-16 | 2023-06-16 | 模拟eeprom的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310723048.4A CN116954499A (zh) | 2023-06-16 | 2023-06-16 | 模拟eeprom的数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116954499A true CN116954499A (zh) | 2023-10-27 |
Family
ID=88443542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310723048.4A Pending CN116954499A (zh) | 2023-06-16 | 2023-06-16 | 模拟eeprom的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116954499A (zh) |
-
2023
- 2023-06-16 CN CN202310723048.4A patent/CN116954499A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6871259B2 (en) | File system including non-volatile semiconductor memory device having a plurality of banks | |
US6381176B1 (en) | Method of driving remapping in flash memory and flash memory architecture suitable therefor | |
US7472331B2 (en) | Memory systems including defective block management and related methods | |
US8046530B2 (en) | Process and method for erase strategy in solid state disks | |
US7818492B2 (en) | Source and shadow wear-leveling method and apparatus | |
US7769944B2 (en) | Partial-write-collector algorithm for multi level cell (MLC) flash | |
JP4373943B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2008533574A (ja) | セクタ単位での消去の可能な半導体メモリ手段の第1のセクタへの再書き込み方法および装置 | |
KR20090117929A (ko) | 메모리 시스템 | |
US20170285953A1 (en) | Data Storage Device and Data Maintenance Method thereof | |
CN112596668A (zh) | 一种存储器的坏块处理方法及系统 | |
US7809878B2 (en) | Apparatus and method for controlling flash memory | |
JP5057887B2 (ja) | データ更新装置及びデータ更新方法及びデータ更新プログラム | |
US6925522B2 (en) | Device and method capable of changing codes of micro-controller | |
US20190026045A1 (en) | Storage Device and Data Control Method for Storage Error Control | |
JP2007034581A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4235646B2 (ja) | メモリコントローラおよびフラッシュメモリシステム | |
JP2006003966A (ja) | フラッシュメモリの書込方法 | |
JP4661497B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
CN116954499A (zh) | 模拟eeprom的数据处理方法及装置 | |
JP2011175361A (ja) | データ記憶装置及びデータ記憶方法 | |
JP7153435B2 (ja) | 不揮発性メモリのデータ書換方法及び半導体装置 | |
JP5520880B2 (ja) | フラッシュメモリ装置 | |
JP4661748B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2004296014A (ja) | 不揮発性メモリの消去回数平準化方法 |
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 |