一种使用闪存模拟具有原子操作特性的EEPROM的方法技术

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

A Method of Using Flash Memory to Simulate EEPROM with Atomic Operating Characteristics

【技术实现步骤摘要】
一种使用闪存模拟具有原子操作特性的EEPROM的方法
本专利技术总的来说涉及嵌入式软件领域,具体而言涉及一种使用闪存模拟具有原子操作特性的EEPROM的方法。此外,本专利技术还涉及一种存储系统。
技术介绍
在嵌入式开发中,在很多产品的场景中都使用EEPROM来存储应用中需要保存的非易失性数据。然而,目前在诸如MCU之类的主流微处理器具有较大的闪存(flash)空间,而没有EEPROM,因为如果额外地增加EEPROM器件则会显著增加产品的成本。因此,很多应用都会采用嵌入式软件的方法来使用闪存模拟EEPROM以满足产品需求。但是现有的使用闪存模拟EEPROM的方案不具原子操作特性,也就是说,如果在写入数据时被打断(如断电)则存储内容会出现混乱(例如只写入了一部分数据,但具体哪部分未知);如果存储区数据因误操作被破坏时,则在读取时无法知道读取的数据是否可信。
技术实现思路
本专利技术的任务是提供一种使用闪存模拟具有原子操作特性的EEPROM的方法以及一种存储系统,通过该方法和/或该系统,可以较好地模拟EEPROM的存储操作,从而降低产品的硬件成本和软件成本。在本专利技术的第一方面,该任务通过一种使用闪存模拟具有原子操作特性的EEPROM的方法来解决,该方法包括下列步骤:提供闪存的一个或多个页面作为第一页面;提供闪存的一个或多个页面作为第二页面;将第一页面确定为工作页面;对工作页面进行读操作和/或写操作,其中所述读操作和/或写操作被设置为使得每次读取的数据均为成功写入的数据;在工作页面写满以后格式化第二页面;以及将第二页面确定为工作页面。在本专利技术中,通过设置所述读操作和/或写操作使得每次读取的数据均为成功写入的数据,可以实现原子性的读/写操作,也就是说,用户端不会读到错误的数据,而是实际读到的数据均为合法数据或有效数据,由此可大大提高存储器的可靠性。在本专利技术中,“每次读取的数据”可以理解为实际读取的数据、如要实际使用的数据,也就是说,所述读取不一定包括为了判断所读取(或预读取)数据是否为成功写入的数据所做的读操作或预读取操作。在本专利技术的一个扩展方案中规定方法,还包括步骤:对第一页面进行初始化。通过该扩展方案,可以在最初对第一页面进行操作以前对第一页面进行初始化,以避免某些错误。初始化操作例如包括格式化。在本专利技术的一个优选方案中规定,该方法还包括步骤:将第一页面的有效数据单元复制到第二页面。通过该优选方案,可以保持数据的连续性和完整性。有效数据单元即数据有效的数据单元。在维护校验值的情况下,有效数据单元是其校验值与其数据匹配的数据单元。在此,所复制的有效数据单元不包含校验值,使得被复制到的第二页面仍然具有可写入数据的空间。当有效数据单元的大小等于页面大小时,存储器自动开辟新的工作页面。在本专利技术的一个优选方案中规定,对工作页面进行写操作包括:将待写入数据以数据单元形式写入到工作页面中,其中每个数据单元包括整数个字节并且其中在工作页面已包含数据单元的情况下将待写入数据的数据单元与已包含的数据单元合并;以及每当向工作页面写入一个数据单元以后在所写入的数据单元之后写入该数据单元的校验值。通过该优选方案,可以实现原子化的写操作,也就是说,通过为每个数据单元维护校验值,可以追溯到最后一个正确写入的有效数据单元,因为未正确写入的数据单元的校验值将与数据不匹配,由此可保证写入操作只有写入成功与未写入两种状态。数据单元的大小例如为2字节。此外,待写入数据的数据单元与已包含的数据单元的合并例如可以是指,将待写入数据的数据单元写入到工作页面中,使得其与已包含的数据单元并存,例如待写入数据的数据单元被写入到已包含的数据单元中的最后一个有效数据单元之后。有效数据单元是指校验值与数据相匹配的数据单元、也就是成功写入的数据单元。通过写入数据与现有数据并存,可以减少闪存的同一位置的写入频度/次数,从而延长闪存的寿命。在本专利技术的一个扩展方案中规定,所述校验值为2个字节的CRC校验值。通过该扩展方案,可以以较小的代价维护校验值。在此应当指出,根据不同配置、如不同大小的数据单元,可以针对每个数据单元采用不同大小和不同类型的校验值。校验值例如可以包括CRC、散列值等等。在本专利技术的一个优选方案中规定,对工作页面进行读操作包括:在工作页面中确定最后一个有效数据单元,其中有效数据单元是其校验值与其数据匹配的数据单元;确定待读取数据是否超过所述最后一个有效数据单元;以及在待读取数据不超过所述最后一个有效数据单元读取所述待读取数据。通过该优选方案,可以实现原子化的读操作,也就是说,通过为每个数据单元维护校验值,可以在读取时确定待读取数据是否为有效数据,因此在用户端不会读到错误的数据,实际读到的数据为有效数据。在本专利技术的一个扩展方案中规定,第一页面和/或第二页面的大小为512字节。通过该扩展方案,可以实现较小的页面以满足某些高频度、且单次读写数据量不大的场景。但是在本专利技术的教导下,其它大小的页面的也是可设想的。例如,通过闪存的总大小为2048字节的闪存空间来模拟32字节大小的EEPROM。所模拟的EEPROM大小是可配置的。在本专利技术的另一扩展方案中规定,该方法还包括步骤:在第一页面和第二页面中维护表示该页面为工作页面的标记。通过该扩展方案,可以在页面上可靠地维护工作页面标记,因为根据本专利技术维护的页面具有较高的可靠性。在其它实施例中,也可以在其它存储位置维护工作页面标记。在本专利技术的第二方面,前述任务通过一种存储系统来解决,该系统包括:闪存,其被配置为提供闪存的一个或多个页面作为第一页面并且提供闪存的一个或多个页面作为第二页面;以及控制器,所述控制器被配置为执行下列动作:将第一页面确定为工作页面;对工作页面进行读操作和/或写操作,其中所述读操作和/或写操作被设置为使得每次读取的数据均为成功写入的数据;在工作页面写满以后格式化第二页面;以及将第二页面确定为工作页面。在本专利技术的一个优选方案中规定,控制器还被配置为执行下列动作:将待写入数据以数据单元形式写入到工作页面中,其中每个数据单元包括整数个字节并且其中在工作页面已包含数据单元的情况下将待写入数据的数据单元与已包含的数据单元合并;以及每当向工作页面写入一个数据单元以后在所写入的数据单元之后写入该数据单元的校验值。通过该优选方案,可以实现原子化的写操作,也就是说,通过为每个数据单元维护校验值,可以追溯到最后一个正确写入的有效数据单元,因为未正确写入的数据单元的校验值将与数据不匹配,由此可保证写入操作只有写入成功与未写入两种状态。数据单元的大小例如为2字节。在此,待写入数据的数据单元与已包含的数据单元的合并例如可以是指,将待写入数据的数据单元写入到工作页面中,使得其与已包含的数据单元并存,例如待写入数据的数据单元被写入到已包含的数据单元中的最后一个有效数据单元之后。有效数据单元是指校验值与数据相匹配的数据单元、也就是成功写入的数据单元。通过写入数据与现有数据并存,可以减少闪存的同一位置的写入频度/次数,从而延长闪存的寿命。在本专利技术的另一优选方案中规定,控制器还被配置为执行下列动作:在工作页面中确定最后一个有效数据单元,其中有效数据单元是其校验值与其数据匹配的数据单元;确定待读取数据是否超过所述最后一个有效数据单元;以及在待读取本文档来自技高网...

【技术保护点】
1.一种使用闪存模拟具有原子操作特性的EEPROM的方法,包括下列步骤:提供闪存的一个或多个页面作为第一页面;提供闪存的一个或多个页面作为第二页面;将第一页面确定为工作页面;对工作页面进行读操作和/或写操作,其中所述读操作和/或写操作被设置为使得每次读取的数据均为成功写入的数据;在工作页面写满以后格式化第二页面;以及将第二页面确定为工作页面。

【技术特征摘要】
1.一种使用闪存模拟具有原子操作特性的EEPROM的方法,包括下列步骤:提供闪存的一个或多个页面作为第一页面;提供闪存的一个或多个页面作为第二页面;将第一页面确定为工作页面;对工作页面进行读操作和/或写操作,其中所述读操作和/或写操作被设置为使得每次读取的数据均为成功写入的数据;在工作页面写满以后格式化第二页面;以及将第二页面确定为工作页面。2.根据权利要求1所述的方法,还包括步骤:对第一页面进行初始化。3.根据权利要求1所述的方法,还包括步骤:将第一页面的有效数据单元复制到第二页面。4.根据权利要求1所述的方法,其中对工作页面进行写操作包括:将待写入数据以数据单元形式写入到工作页面中,其中每个数据单元包括整数个字节并且其中在工作页面已包含数据单元的情况下将待写入数据的数据单元与已包含的数据单元合并;以及每当向工作页面写入一个数据单元以后在所写入的数据单元之后写入该数据单元的校验值。5.根据权利要求4所述的方法,其中所述校验值为2个字节的CRC校验值。6.根据权利要求4所述的方法,其中对工作页面进行读操作包括:在工作页面中确定最后一个有效数据单元,其中有效数据单元是其校验值与其数据匹配的数据单元;确定待读取数据是否超过所述最后一个有效数据单元;以及在待读取数据不超过所述最后一个有效数据单元读取所述待读取数据。7.根据权利要求1所述的方法,其中第一页面和/或第二...

【专利技术属性】
技术研发人员:夏成君
申请(专利权)人:华大半导体有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1