CN110045927A - 一种使用闪存模拟具有原子操作特性的eeprom的方法 - Google Patents

一种使用闪存模拟具有原子操作特性的eeprom的方法 Download PDF

Info

Publication number
CN110045927A
CN110045927A CN201910302177.XA CN201910302177A CN110045927A CN 110045927 A CN110045927 A CN 110045927A CN 201910302177 A CN201910302177 A CN 201910302177A CN 110045927 A CN110045927 A CN 110045927A
Authority
CN
China
Prior art keywords
page
data
written
working
read
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
Application number
CN201910302177.XA
Other languages
English (en)
Inventor
夏成君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiaohua Semiconductor Co ltd
Original Assignee
Huada Semiconductor Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huada Semiconductor Co Ltd filed Critical Huada Semiconductor Co Ltd
Priority to CN201910302177.XA priority Critical patent/CN110045927A/zh
Publication of CN110045927A publication Critical patent/CN110045927A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-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)
  • Read Only Memory (AREA)

Abstract

本发明涉及一种使用闪存模拟具有原子操作特性的EEPROM的方法,包括下列步骤:提供闪存的一个或多个页面作为第一页面;提供闪存的一个或多个页面作为第二页面;将第一页面确定为工作页面;对工作页面进行读操作和/或写操作,其中所述读操作和/或写操作被设置为使得每次读取的数据均为成功写入的数据;在工作页面写满以后格式化第二页面;以及将第二页面确定为工作页面。本发明还涉及一种存储系统。通过本发明,可以较好地模拟EEPROM的存储操作,从而降低产品的硬件成本和软件成本。

Description

一种使用闪存模拟具有原子操作特性的EEPROM的方法
技术领域
本发明总的来说涉及嵌入式软件领域,具体而言涉及一种使用闪存模拟具有原子操作特性的EEPROM的方法。此外,本发明还涉及一种存储系统。
背景技术
在嵌入式开发中,在很多产品的场景中都使用EEPROM来存储应用中需要保存的非易失性数据。然而,目前在诸如MCU之类的主流微处理器具有较大的闪存(flash)空间,而没有EEPROM,因为如果额外地增加EEPROM器件则会显著增加产品的成本。因此,很多应用都会采用嵌入式软件的方法来使用闪存模拟EEPROM以满足产品需求。
但是现有的使用闪存模拟EEPROM的方案不具原子操作特性,也就是说,如果在写入数据时被打断(如断电)则存储内容会出现混乱(例如只写入了一部分数据,但具体哪部分未知);如果存储区数据因误操作被破坏时,则在读取时无法知道读取的数据是否可信。
发明内容
本发明的任务是提供一种使用闪存模拟具有原子操作特性的EEPROM的方法以及一种存储系统,通过该方法和/或该系统,可以较好地模拟EEPROM的存储操作,从而降低产品的硬件成本和软件成本。
在本发明的第一方面,该任务通过一种使用闪存模拟具有原子操作特性的EEPROM的方法来解决,该方法包括下列步骤:
提供闪存的一个或多个页面作为第一页面;
提供闪存的一个或多个页面作为第二页面;
将第一页面确定为工作页面;
对工作页面进行读操作和/或写操作,其中所述读操作和/或写操作被设置为使得每次读取的数据均为成功写入的数据;
在工作页面写满以后格式化第二页面;以及
将第二页面确定为工作页面。
在本发明中,通过设置所述读操作和/或写操作使得每次读取的数据均为成功写入的数据,可以实现原子性的读/写操作,也就是说,用户端不会读到错误的数据,而是实际读到的数据均为合法数据或有效数据,由此可大大提高存储器的可靠性。在本发明中,“每次读取的数据”可以理解为实际读取的数据、如要实际使用的数据,也就是说,所述读取不一定包括为了判断所读取(或预读取)数据是否为成功写入的数据所做的读操作或预读取操作。
在本发明的一个扩展方案中规定方法,还包括步骤:
对第一页面进行初始化。
通过该扩展方案,可以在最初对第一页面进行操作以前对第一页面进行初始化,以避免某些错误。初始化操作例如包括格式化。
在本发明的一个优选方案中规定,该方法还包括步骤:
将第一页面的有效数据单元复制到第二页面。
通过该优选方案,可以保持数据的连续性和完整性。有效数据单元即数据有效的数据单元。在维护校验值的情况下,有效数据单元是其校验值与其数据匹配的数据单元。在此,所复制的有效数据单元不包含校验值,使得被复制到的第二页面仍然具有可写入数据的空间。当有效数据单元的大小等于页面大小时,存储器自动开辟新的工作页面。
在本发明的一个优选方案中规定,对工作页面进行写操作包括:
将待写入数据以数据单元形式写入到工作页面中,其中每个数据单元包括整数个字节并且其中在工作页面已包含数据单元的情况下将待写入数据的数据单元与已包含的数据单元合并;以及
每当向工作页面写入一个数据单元以后在所写入的数据单元之后写入该数据单元的校验值。
通过该优选方案,可以实现原子化的写操作,也就是说,通过为每个数据单元维护校验值,可以追溯到最后一个正确写入的有效数据单元,因为未正确写入的数据单元的校验值将与数据不匹配,由此可保证写入操作只有写入成功与未写入两种状态。数据单元的大小例如为2字节。此外,待写入数据的数据单元与已包含的数据单元的合并例如可以是指,将待写入数据的数据单元写入到工作页面中,使得其与已包含的数据单元并存,例如待写入数据的数据单元被写入到已包含的数据单元中的最后一个有效数据单元之后。有效数据单元是指校验值与数据相匹配的数据单元、也就是成功写入的数据单元。通过写入数据与现有数据并存,可以减少闪存的同一位置的写入频度/次数,从而延长闪存的寿命。
在本发明的一个扩展方案中规定,所述校验值为2个字节的CRC校验值。通过该扩展方案,可以以较小的代价维护校验值。在此应当指出,根据不同配置、如不同大小的数据单元,可以针对每个数据单元采用不同大小和不同类型的校验值。校验值例如可以包括CRC、散列值等等。
在本发明的一个优选方案中规定,对工作页面进行读操作包括:
在工作页面中确定最后一个有效数据单元,其中有效数据单元是其校验值与其数据匹配的数据单元;
确定待读取数据是否超过所述最后一个有效数据单元;以及
在待读取数据不超过所述最后一个有效数据单元读取所述待读取数据。
通过该优选方案,可以实现原子化的读操作,也就是说,通过为每个数据单元维护校验值,可以在读取时确定待读取数据是否为有效数据,因此在用户端不会读到错误的数据,实际读到的数据为有效数据。
在本发明的一个扩展方案中规定,第一页面和/或第二页面的大小为512字节。通过该扩展方案,可以实现较小的页面以满足某些高频度、且单次读写数据量不大的场景。但是在本发明的教导下,其它大小的页面的也是可设想的。例如,通过闪存的总大小为2048字节的闪存空间来模拟32字节大小的EEPROM。所模拟的EEPROM大小是可配置的。
在本发明的另一扩展方案中规定,该方法还包括步骤:
在第一页面和第二页面中维护表示该页面为工作页面的标记。
通过该扩展方案,可以在页面上可靠地维护工作页面标记,因为根据本发明维护的页面具有较高的可靠性。在其它实施例中,也可以在其它存储位置维护工作页面标记。
在本发明的第二方面,前述任务通过一种存储系统来解决,该系统包括:
闪存,其被配置为提供闪存的一个或多个页面作为第一页面并且提供闪存的一个或多个页面作为第二页面;以及
控制器,所述控制器被配置为执行下列动作:
将第一页面确定为工作页面;
对工作页面进行读操作和/或写操作,其中所述读操作和/或写操作被设置为使得每次读取的数据均为成功写入的数据;
在工作页面写满以后格式化第二页面;以及
将第二页面确定为工作页面。
在本发明的一个优选方案中规定,控制器还被配置为执行下列动作:
将待写入数据以数据单元形式写入到工作页面中,其中每个数据单元包括整数个字节并且其中在工作页面已包含数据单元的情况下将待写入数据的数据单元与已包含的数据单元合并;以及
每当向工作页面写入一个数据单元以后在所写入的数据单元之后写入该数据单元的校验值。
通过该优选方案,可以实现原子化的写操作,也就是说,通过为每个数据单元维护校验值,可以追溯到最后一个正确写入的有效数据单元,因为未正确写入的数据单元的校验值将与数据不匹配,由此可保证写入操作只有写入成功与未写入两种状态。数据单元的大小例如为2字节。在此,待写入数据的数据单元与已包含的数据单元的合并例如可以是指,将待写入数据的数据单元写入到工作页面中,使得其与已包含的数据单元并存,例如待写入数据的数据单元被写入到已包含的数据单元中的最后一个有效数据单元之后。有效数据单元是指校验值与数据相匹配的数据单元、也就是成功写入的数据单元。通过写入数据与现有数据并存,可以减少闪存的同一位置的写入频度/次数,从而延长闪存的寿命。
在本发明的另一优选方案中规定,控制器还被配置为执行下列动作:
在工作页面中确定最后一个有效数据单元,其中有效数据单元是其校验值与其数据匹配的数据单元;
确定待读取数据是否超过所述最后一个有效数据单元;以及
在待读取数据不超过所述最后一个有效数据单元读取所述待读取数据。
通过该优选方案,可以实现原子化的读操作,也就是说,通过为每个数据单元维护校验值,可以在读取时确定待读取数据是否为有效数据,因此在用户端不会读到错误的数据,实际读到的数据为有效数据。
在本发明的一个扩展方案中规定,所述存储系统被用于微控制单元MCU。通过该扩展方案,可以较好地模拟MCU中EEPROM的操作,从而降低MCU的硬件和软件成本。
本发明至少具有下列有益效果:(1)通过本发明,可以提供分页的存储,从而可以较好地模拟EEPROM的存储操作,从而降低产品的硬件成本和软件成本;(2)通过本发明,可以提供原子化的读写操作,从而提高存储系统的可靠性,具体而言,通过为每个数据单元维护校验值,可以追溯到最后一个正确写入的有效数据单元,使得可以在读取时确定待读取数据是否为有效数据,因此在用户端不会读到错误的数据,实际读到的数据有效数据,因为未正确写入的数据单元的校验值将与数据不匹配,因此可在读取时被排除,由此可保证写入操作只有写入成功与未写入两种状态且读取的数据均为有效数据。
附图说明
下面结合附图参考具体实施例来进一步阐述本发明。
图1示出了根据本发明的存储系统的存储结构的示意图;以及
图2示出了根据本发明的使用闪存模拟EEPROM的方法的流程。
具体实施方式
应当指出,各附图中的各组件可能为了图解说明而被夸大地示出,而不一定是比例正确的。在各附图中,给相同或功能相同的组件配备了相同的附图标记。
在本发明中,除非特别指出,“布置在…上”、“布置在…上方”以及“布置在…之上”并未排除二者之间存在中间物的情况。此外,“布置在…上或上方”仅仅表示两个部件之间的相对位置关系,而在一定情况下、如在颠倒产品方向后,也可以转换为“布置在…下或下方”,反之亦然。
在本发明中,各实施例仅仅旨在说明本发明的方案,而不应被理解为限制性的。
在本发明中,除非特别指出,量词“一个”、“一”并未排除多个元素的场景。
在此还应当指出,在本发明的实施例中,为清楚、简单起见,可能示出了仅仅一部分部件或组件,但是本领域的普通技术人员能够理解,在本发明的教导下,可根据具体场景需要添加所需的部件或组件。
在此还应当指出,在本发明的范围内,“相同”、“相等”、“等于”等措辞并不意味着二者数值绝对相等,而是允许一定的合理误差,也就是说,所述措辞也涵盖了“基本上相同”、“基本上相等”、“基本上等于”。
另外,本发明的各方法的步骤的编号并未限定所述方法步骤的执行顺序。除非特别指出,各方法步骤可以以不同顺序执行。
此外,在本发明中,控制器可以用软件、硬件或固件或其组合来实现。控制器既可以单独存在,也可以是某个部件的一部分。
图1示出了根据本发明的存储系统100的存储结构的示意图。
根据本发明的存储系统100包括闪存和控制器(未示出),闪存的存储结构如图1所示。
在本实施例中,闪存具有大小均为512字节的两个页面、即第一页面101和第二页面102。第一页面101和第二页面102例如分别可以包括闪存的一个或多个页面或任意大小的存储空间。在第一页面101和第二页面102上分别存储有多个数据单元、在此分别为示例性的3个数据单元103a-103c和104a-104c。其它数目的数据单元也是可设想的。数据单元是指数据记录。每个数据单元103a-103c和104a-104c是一定大小的数据、例如2字节的数据。在每个数据单元103a-103c和104a-104c之后存放有该数据单元103a-103c和104a-104c的校验值、如CRC校验值。在每个页面101、102上还维护有用于表示该页面是否为工作页面的页面标记105。例如,为工作页面的页面标记被设置为数值“0xF0”,而非工作页面的页面标记则被设置为数值“0x00”。在一个优选的实施例中,存储系统100的存储过程例如如下:查找页面标记105为“0xF0”的页面作为工作页面,如找不到该标记跳转到出错处理流程;扫描工作页面内的所有数据记录,将最后一条CRC验证通过的数据单元作为当前数据单元;如找不到该数据单元则跳转到出错处理流程;读出到当前数据单元为止的全部数据单元并将客户待写入的数据与所述数据单元进行合并;从当前数据单元的地址开始,向后方查找全为FF的存储空间,如本页面已找不到存储空间,则擦除下一个页面;将合并后的数据单元写入找到的存储空间,如该存储空间所在页面的页面标记为不0xF0,则将其改为“0xF0”;如果当前数据单元的地址与新的存储空间的地址不在同一页面,则将当前记录所在页面的页面标记改为“0x00”。
下面简述存储系统100的工作流程,其中所述工作流程的一部分或全部可以在控制器的控制下执行。
·将第一页面101确定为工作页面,即将第一页面101的页面标记设置为数值“0xF0”。另一页面、即第二页面102的页面标记则被设置为“0x00”。
·然后,对工作页面进行读操作和/或写操作。写操作包括:查找页面标记105为“0xF0”的页面,确定该页面为工作页面,如找不到该标记跳转到出错处理流程;每当向工作页面写入一个数据单元103a-103c和104a-104c以后在所写入的数据单元103a-103c和104a-104c之后写入该数据单元103a-103c和104a-104c的校验值,其中所述写入操作为顺序写入操作。读操作包括:查找页面标记105为“0xF0”的页面,确定该页面为工作页面,如找不到该标记跳转到出错处理流程;在工作页面中确定最后一个有效数据单元103a-103c和104a-104c,其中有效数据单元103a-103c和104a-104c是其校验值与其数据匹配的数据单元,如找不到该有效数据单元则跳转到出错处理流程;确定待读取数据是否超过所述最后一个有效数据单元;以及在待读取数据不超过所述最后一个有效数据单元读取所述待读取数据。在优选情况下,每次仅仅读取最后一个有效数据单元。读取多少数据可取决于用户应用或其它规则,只要保证所读取的数据不超过最后一个有效数据单元,即可保证所读取的数据均为有效数据单元。
·随后,在工作页面写满以后格式化第二页面102。
·最后,将第二页面102确定为工作页面以执行读写操作,如此往复操作。
·可选地,将第一页面101的有效数据单元103a-103c复制到第二页面102。有效数据单元即数据有效的数据单元。在维护校验值的情况下,有效数据单元是其校验值与其数据匹配的数据单元。在此,所复制的有效数据单元不包含校验值,使得被复制到的第二页面102仍然具有可写入数据的空间。当有效数据单元的大小等于整个页面大小时,闪存控制器自动开辟新的工作页面101。
上述设计的基础背景是根据主流的闪存的标称擦写寿命10万次。
1.数据存储占用闪存存储2K字节,将EEPROM配置为32字节大小,实测EEPROM擦写寿命为74611683次。
2.数据存储占用闪存存储2K字节,将EEPROM配置为32字节大小,在每次写入数据的时间段内的随机时刻对芯片进行断电。实测30万次断电,未发现读到错误数据的情况,未发现找不到页面标记的情况,未发现找不到最后一条有效记录的情况。实验结果表明该算法实现的EE存储的原子操作真实有效。
3.该设计根据市场80%的应用情况,设计了可灵活配置的尺寸(1~120)的模拟EEPROM,开发人员可根据实际需求进行参数配置后使用,此外该模拟EEPROM以驱动库的形式提供给用户,并不需要用户对内部代码进行修改,也无需关注实现方法,只需要在软件接口处配置参数的值即可。
4.另外,该模拟EEPROM也可以被看作是单片的EEPROM,如果实际特殊应用中需要更大尺寸的EEPROM存储空间,可以扩展使用多片模拟EEPROM,例如:使用两个64字节的模拟EEPROM来实现128字节模拟EEPROM,但该应用方式同样也需要两倍的闪存空间来存储有效数据。
图2示出了根据本发明的使用闪存模拟具有原子操作特性的EEPROM的方法200的流程,其中虚线框表示可选步骤。
在步骤202,提供闪存的一个或多个页面作为第一页面。根据应用需要可以选择任意个页面或任意大小的存储空间作为第一页面。可替代地,可以通过多组第一和第二页面实现所期望大小的EEPROM。
在步骤204,提供闪存的一个或多个页面作为第二页面。根据应用需要可以选择任意个页面或任意大小的存储空间作为第一页面。可替代地,可以通过多组第一和第二页面实现所期望大小的EEPROM。
在步骤206,将第一页面确定为工作页面。在此,可将第一页面101的页面标记设置为数值“0xF0”,同时将另一页面、即第二页面102的页面标记设置为“0x00”。
在步骤206,对工作页面进行读操作和/或写操作,其中所述读操作和/或写操作被设置为使得每次读取的数据均为成功写入的数据。关于读写操作参见之前的描述,所述读写操作具有原子特性,由此防止读写错误。
在步骤208,在工作页面写满以后格式化第二页面。
在步骤210,将第二页面确定为工作页面。在此,可将第一页面101的页面标记设置为数值“0x00”,同时将另一页面、即第二页面102的页面标记设置为“0xF0”。
在可选步骤212,将第一页面的有效数据单元复制到第二页面。有效数据单元即数据有效的数据单元。在维护校验值的情况下,有效数据单元是其校验值与其数据匹配的数据单元。在此,所复制的有效数据单元不包含校验值,使得被复制到的第二页面仍然具有可写入数据的空间。一般情况下,有效数据单元的大小将小于页面的大小,因为不是全部数据单元都有效或者页面还包含其它数据。当有效数据单元的大小等于整个页面大小时,闪存或控制器自动开辟新的工作页面。
本发明至少具有下列有益效果:(1)通过本发明,可以提供分页的存储,从而可以较好地模拟EEPROM的存储操作,从而降低产品的硬件成本和软件成本;(2)通过本发明,可以提供原子化的读写操作,从而提高存储系统的可靠性,具体而言,通过为每个数据单元维护校验值,可以追溯到最后一个正确写入的有效数据单元,使得可以在读取时确定待读取数据是否为有效数据,因此在用户端不会读到错误的数据,实际读到的数据有效数据,因为未正确写入的数据单元的校验值将与数据不匹配,因此可在读取时被排除,由此可保证写入操作只有写入成功与未写入两种状态且读取的数据均为有效数据。
虽然本发明的一些实施方式已经在本申请文件中予以了描述,但是本领域技术人员能够理解,这些实施方式仅仅是作为示例示出的。本领域技术人员在本发明的教导下可以想到众多的变型方案、替代方案和改进方案而不超出本发明的范围。所附权利要求书旨在限定本发明的范围,并藉此涵盖这些权利要求本身及其等同变换的范围内的方法和结构。

Claims (12)

1.一种使用闪存模拟具有原子操作特性的EEPROM的方法,包括下列步骤:
提供闪存的一个或多个页面作为第一页面;
提供闪存的一个或多个页面作为第二页面;
将第一页面确定为工作页面;
对工作页面进行读操作和/或写操作,其中所述读操作和/或写操作被设置为使得每次读取的数据均为成功写入的数据;
在工作页面写满以后格式化第二页面;以及
将第二页面确定为工作页面。
2.根据权利要求1所述的方法,还包括步骤:
对第一页面进行初始化。
3.根据权利要求1所述的方法,还包括步骤:
将第一页面的有效数据单元复制到第二页面。
4.根据权利要求1所述的方法,其中对工作页面进行写操作包括:
将待写入数据以数据单元形式写入到工作页面中,其中每个数据单元包括整数个字节并且其中在工作页面已包含数据单元的情况下将待写入数据的数据单元与已包含的数据单元合并;以及
每当向工作页面写入一个数据单元以后在所写入的数据单元之后写入该数据单元的校验值。
5.根据权利要求4所述的方法,其中所述校验值为2个字节的CRC校验值。
6.根据权利要求4所述的方法,其中对工作页面进行读操作包括:
在工作页面中确定最后一个有效数据单元,其中有效数据单元是其校验值与其数据匹配的数据单元;
确定待读取数据是否超过所述最后一个有效数据单元;以及
在待读取数据不超过所述最后一个有效数据单元读取所述待读取数据。
7.根据权利要求1所述的方法,其中第一页面和/或第二页面的大小为512字节。
8.根据权利要求1所述的方法,还包括步骤:
在第一页面和第二页面中维护表示该页面为工作页面的标记。
9.一种存储系统,包括:
闪存,其被配置为提供闪存的一个或多个页面作为第一页面并且提供闪存的一个或多个页面作为第二页面;以及
控制器,所述控制器被配置为执行下列动作:
将第一页面确定为工作页面;
对工作页面进行读操作和/或写操作,其中所述读操作和/或写操作被设置为使得每次读取的数据均为成功写入的数据;
在工作页面写满以后格式化第二页面;
将第二页面确定为工作页面;以及
将第一页面的有效数据单元复制到第二页面。
10.根据权利要求9所述的存储系统,其中控制器还被配置为执行下列动作:
将待写入数据以数据单元形式写入到工作页面中,其中每个数据单元包括整数个字节并且其中在工作页面已包含数据单元的情况下将待写入数据的数据单元与已包含的数据单元合并;以及
每当向工作页面写入一个数据单元以后在所写入的数据单元之后写入该数据单元的校验值。
11.根据权利要求9所述的存储系统,其中控制器还被配置为执行下列动作:
在工作页面中确定最后一个有效数据单元,其中有效数据单元是其校验值与其数据匹配的数据单元;
确定待读取数据是否超过所述最后一个有效数据单元;以及
在待读取数据不超过所述最后一个有效数据单元读取所述待读取数据。
12.根据权利要求9所述的存储系统,其中所述存储系统被用于微控制单元MCU。
CN201910302177.XA 2019-04-16 2019-04-16 一种使用闪存模拟具有原子操作特性的eeprom的方法 Pending CN110045927A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910302177.XA CN110045927A (zh) 2019-04-16 2019-04-16 一种使用闪存模拟具有原子操作特性的eeprom的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910302177.XA CN110045927A (zh) 2019-04-16 2019-04-16 一种使用闪存模拟具有原子操作特性的eeprom的方法

Publications (1)

Publication Number Publication Date
CN110045927A true CN110045927A (zh) 2019-07-23

Family

ID=67277242

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910302177.XA Pending CN110045927A (zh) 2019-04-16 2019-04-16 一种使用闪存模拟具有原子操作特性的eeprom的方法

Country Status (1)

Country Link
CN (1) CN110045927A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110554842A (zh) * 2019-09-06 2019-12-10 华大半导体有限公司 一种使用闪存模拟eeprom的方法
TWI719829B (zh) * 2020-01-14 2021-02-21 瑞昱半導體股份有限公司 資料寫入方法、資料讀取方法與記憶體裝置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645014A (zh) * 2008-08-09 2010-02-10 海信(北京)电器有限公司 利用单片机内置flash程序存贮器模拟eeprom的数据存储方法
CN202473263U (zh) * 2012-03-16 2012-10-03 无锡华润矽科微电子有限公司 支持高擦写次数的flash存储器电路
CN103268294A (zh) * 2013-04-19 2013-08-28 深圳创维数字技术股份有限公司 一种存取数据的操作方法和数据处理设备
CN103914393A (zh) * 2014-04-11 2014-07-09 四川华拓光通信股份有限公司 一种基于mcu的flash不丢失更新存储方法
CN104820641A (zh) * 2015-04-16 2015-08-05 上海冉能自动化科技有限公司 减少flash擦除次数的方法
CN105138655A (zh) * 2015-08-31 2015-12-09 深圳市茁壮网络股份有限公司 一种数据存储、读取方法及装置
CN108694016A (zh) * 2017-04-10 2018-10-23 联合汽车电子有限公司 模拟eeprom数据分析系统及方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645014A (zh) * 2008-08-09 2010-02-10 海信(北京)电器有限公司 利用单片机内置flash程序存贮器模拟eeprom的数据存储方法
CN202473263U (zh) * 2012-03-16 2012-10-03 无锡华润矽科微电子有限公司 支持高擦写次数的flash存储器电路
CN103268294A (zh) * 2013-04-19 2013-08-28 深圳创维数字技术股份有限公司 一种存取数据的操作方法和数据处理设备
CN103914393A (zh) * 2014-04-11 2014-07-09 四川华拓光通信股份有限公司 一种基于mcu的flash不丢失更新存储方法
CN104820641A (zh) * 2015-04-16 2015-08-05 上海冉能自动化科技有限公司 减少flash擦除次数的方法
CN105138655A (zh) * 2015-08-31 2015-12-09 深圳市茁壮网络股份有限公司 一种数据存储、读取方法及装置
CN108694016A (zh) * 2017-04-10 2018-10-23 联合汽车电子有限公司 模拟eeprom数据分析系统及方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110554842A (zh) * 2019-09-06 2019-12-10 华大半导体有限公司 一种使用闪存模拟eeprom的方法
TWI719829B (zh) * 2020-01-14 2021-02-21 瑞昱半導體股份有限公司 資料寫入方法、資料讀取方法與記憶體裝置
CN113126885A (zh) * 2020-01-14 2021-07-16 瑞昱半导体股份有限公司 数据写入方法、数据读取方法与存储装置

Similar Documents

Publication Publication Date Title
TWI375962B (en) Data writing method for flash memory and storage system and controller using the same
EP1739535B1 (en) File system storing transaction records in flash-like media
CA2818472C (en) Optimized startup verification of file system integrity
CN100353337C (zh) 闪存储存系统
EP1744246A2 (en) File system having deferred verification of data integrity
US20080162792A1 (en) Caching device for nand flash translation layer
EP3069349B1 (en) Fail safe refresh of data stored in nand memory device
CN109240942A (zh) 固态驱动器中的原子写入命令支持
CN105843558B (zh) 处理流水文件的方法及系统
TW200941499A (en) Hybrid flash memory storage device and method of controlling the same
CN102306127B (zh) 一种ddriii内存识别和初始化方法
US7925821B2 (en) Nonvolatile semiconductor storage device and method of managing the same
CN1936853B (zh) 嵌入式设备的数据掉电保护和修复方法
CN110045927A (zh) 一种使用闪存模拟具有原子操作特性的eeprom的方法
TW201013682A (en) One-time-programmable memory emulation
TW201715399A (zh) 資料儲存裝置及其資料維護方法
CN101246429A (zh) 将闪存模块用作主存储器的电子系统和相关系统引导方法
CN102521146B (zh) 一种flash存储器块细分的数据寻址存储方法
CN100456263C (zh) 在税控收款机中使用闪存时处理坏块的方法
CN109815158A (zh) 进行系统备份的方法、记忆装置及控制器、及电子装置
CN106547472B (zh) 存储阵列管理方法及装置
US8055853B2 (en) Data storage system and data storage program for atomic transactions
CN104133640A (zh) 从休眠快速恢复
CN110262980A (zh) 基于有限寿命存储介质的高速存储系统
CN107957921B (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
TA01 Transfer of patent application right

Effective date of registration: 20220711

Address after: 201210 floor 10, block a, building 1, No. 1867, Zhongke Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai

Applicant after: Xiaohua Semiconductor Co.,Ltd.

Address before: Room 305, block Y1, 112 liangxiu Road, Pudong New Area, Shanghai 201203

Applicant before: HUADA SEMICONDUCTOR Co.,Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20190723

RJ01 Rejection of invention patent application after publication