基于NorFlash的数据滚存方法

文档序号:6466039阅读:776来源:国知局
专利名称:基于NorFlash的数据滚存方法
技术领域
此算法是应用于非文件系统的NorFlash存储及文件系统尚未支持的大容量数 据存储。
背景技术
在采用非文件系统的norflash存储系统中,flash数据写入一般需要四个过

1) 先读取出要写入块的数据,放入内存中;
2) 擦除此块
3) 修改内存中块的内容
4) 再将内存中数据写入此块。 以上的flash的存储方法存在几个缺点
1) 每次写入数据都需要对flash进行一次擦除,因此大大加大了 flash的 擦除次数,降低了 flash使用寿命。
2) 每次均都进行读、写、擦除操作,降低了写入时间。
3) flash在擦除后,新的数据尚未写入时,如果此时掉电,数据将不可恢 复,因此不能保证数据的完整。
基于以上原因,针对滚存数据的存储特点,设计了滚存数据的存储算法,以下 称做滚存算法,它保证了写数据时始终写到干净的flash块上,写时不需要擦除, 擦除操作是在整块写完之后进行的,由此它解决了传统flash存储的缺点。

发明内容
本发明的方法是对当前Flash滚存数据方法的改进。在滚存的过程中,缓存 空间的2个块始终可以写入,这两个块主要起到了缓存的作用,因为数据直接写 入这两个块中做擦除操作。该方法在程序逻辑上将滚存空间形成一个封闭环,有 效存储空间的初始地址出厂时默认设置为0x00000000,滚存数据长度置为0,在使 用过程中每次关闭机器时将此数据保存在文件中,启动时取出赋到变量中,缓存 空间在滚存数据长度所在的块和下一个块,共2个块的空间,缓存空间始终是可 写的,也是程序始终写入的空间,数据滚存步骤如下-
1) 对Flash分区根据系统的各种应用功能将Flash划分成多个数据区域;
2) 滚存在非文件系统控制的Flash分区内,从某开始地址顺序存储数据, 直到指定的结束地址,然后再跳转到开始地址存储,再次存储时将覆盖掉先前存 储的数据;
3) 滚存空间是指存储数据的开始地址到结束地址的空间;
4) 缓存空间在滚存空间中指定2个或以上的Flash块做缓存区;
5) 有效存储空间在滚存空间中有效数据占用的空间,即是去除缓存空间后 剩余的空间;
6) Flash擦除块是指系统擦除Flash的基本单位,NorFlash擦除块大小《
64K;
7) 滚存数据长度设定是指从有效存储空间的起始地址当前写入地址的长度;
Flash擦除块大小64K
有效存储空间大小为0x280000, 40个擦除块; 缓存空间大小为0x20000, 2个擦除块; 滚存空间的实地址是0x00000000—-0x002A0000。 本发明的有益效果是解决了写入速度的问题,另外也不会出现断电丢失数据的 现象,并且每个块的擦写次数只有一次,降到最低,使Flash的寿命得到极至延 长。主要应用于金融税控收款机、税控收款机、税控器、税控打印机、金融P0S 机、各类商业POS机等对大容量滚存数据的存储。


附图l是flash空间示意图; 附图2是滚存初始状态附图3是滚存一轮后的状态图。
具体实施例方式
1) 在程序逻辑上将滚存空间形成一个封闭环;有效存储空间的初始地址出 厂时默认设置为0x00000000,滚存数据长度置为0,在使用过程中每次关闭机器时 将此数据保存在文件中,启动时取出赋到变量中(如图2)。
2) 缓存空间在滚存数据长度所在的块和下一个块,共2个块的空间。缓存 空间始终是可写的,也是程序始终写入的空间。
3) 机器出厂时,首先初始化缓存块为干净块。
4) 从缓存块起始地址写数据,如果数据写完第一块,则擦除第三块,缓存 块的起始地址变为第二块,那么第二块和第三块做为缓存块。
5) 记录下来当前滚存的数据长度。
6) 当滚存数据长度写到有效存储空间大小后,重置滚存数据长度为0,有 效存储数据的起始地址置为当前地址,第一轮是即为0x280000。
7) 依次向下循环写下去。
在滚存的过程中,缓存空间的2个块始终可以写入,这两个块主要起到了缓 存的作用,因为数据直接写入这两个块中,做擦除操作。 实施实例
本发明的方法已经在RE310上测试通过。
权利要求
1、基于NorFlash的数据滚存方法,其特征在于在程序逻辑上将滚存空间形成一个封闭环,有效存储空间的初始地址出厂时默认设置为0x00000000,滚存数据长度置为0,在使用过程中每次关闭机器时将此数据保存在文件中,启动时取出赋到变量中,缓存空间在滚存数据长度所在的块和下一个块,共2个块的空间,缓存空间始终是可写的,也是程序始终写入的空间,数据滚存步骤如下1)对Flash分区根据系统的各种应用功能将Flash划分成多个数据区域;2)滚存在非文件系统控制的Flash分区内,从某开始地址顺序存储数据,直到指定的结束地址,然后再跳转到开始地址存储,再次存储时将覆盖掉先前存储的数据;3)滚存空间是指存储数据的开始地址到结束地址的空间;4)缓存空间在滚存空间中指定2个或以上的Flash块做缓存区;5)有效存储空间在滚存空间中有效数据占用的空间,即是去除缓存空间后剩余的空间;6)Flash擦除块是指系统擦除Flash的基本单位,NorFlash擦除块大小≤64K;7)滚存数据长度设定是指从有效存储空间的起始地址当前写入地址的长度;Flash擦除块大小64K有效存储空间大小为0x280000,40个擦除块;缓存空间大小为0x20000,2个擦除块;滚存空间的实地址是0x00000000---0x002A0000。
2、 根据权利要求1所述的方法,其特征在于机器出厂时,首先初始化缓存块 为干净块,从缓存块起始地址写数据,数据写完第一块,则擦除第三块,缓存块 的起始地址变为第二块,第二块和第三块做为缓存块。
3、 根据权利要求1所述的方法,其特征在于在滚存的过程中,记录当前滚存 的数据长度,当滚存数据长度写到有效存储空间大小后,重置滚存数据长度为0, 有效存储数据的起始地址置为当前地址,第一轮是0x280000。
全文摘要
本发明提供一种基于NorFlash的数据滚存方法是在程序逻辑上将滚存空间形成一个封闭环,有效存储空间的初始地址出厂时默认设置为0x00000000,滚存数据长度置为0,在使用过程中每次关闭机器时将此数据保存在文件中,启动时取出赋到变量中,缓存空间在滚存数据长度所在的块和下一个块,共2个块的空间,缓存空间始终是可写的,也是程序始终写入的空间,本发明的有益效果是解决了写入速度的问题,另外也不会出现断电丢失数据的现象,并且每个块的擦写次数只有一次,降到最低,使Flash的寿命得到极致延长。
文档编号G06F12/02GK101354678SQ200810139440
公开日2009年1月28日 申请日期2008年9月10日 优先权日2008年9月10日
发明者于秋粉, 刘来波, 周胜群 申请人:浪潮齐鲁软件产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1