一种FLASH存储器块细分的数据寻址存储方法.pdf

上传人:xia****o6 文档编号:4211384 上传时间:2018-09-07 格式:PDF 页数:9 大小:504.14KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110350916.6

申请日:

2011.11.08

公开号:

CN102521146A

公开日:

2012.06.27

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||公开

IPC分类号:

G06F12/06

主分类号:

G06F12/06

申请人:

福建新大陆通信科技股份有限公司

发明人:

郭鑫俊

地址:

350000 福建省福州市马尾开发区儒江东路70号(飞毛腿工业园)6号楼及5号楼二至四层

优先权:

专利代理机构:

福州市鼓楼区京华专利事务所(普通合伙) 35212

代理人:

宋连梅

PDF下载: PDF下载
内容摘要

本发明提供一种flash存储器块细分的数据寻址存储方法,该方法中将flash存储器的存储区定义为复数个页空间,页空间的前4个字节进行保留,其中前4个字节的头2个字节作为该页空间状态标志;状态标志包括页清空、页接收以及页有效的状态;且页空间以每4个字节作为一存储单元来存储一数据;并将要写入的数据定义为存储的数据加上虚拟地址的结构;应用程序通过判断页空间的状态,存储要写入的数据;当一页空间写入数据满后,则将有效数据复制到另一个处于页清空状态的页空间;复制完毕后,页空间进行擦除操作并继续写数据。当有大量重要的数据并且改变很频繁的情况下,利用本发明的方法能及时保存及中断恢复数据;能保证数据存取灵活性。

权利要求书

1: 一种 flash 存储器块细分的数据寻址存储方法, 其特征在于 : 包括如下步骤 : 步骤 10、 将所述 flash 存储器的存储区定义为复数个页空间, 所述页空间即根据 flash 存储器的大小划分出的 flash 存储器的块空间, 将页空间的前 4 个字节进行保留, 其中所述 保留的前 4 个字节的头 2 个字节作为该页空间状态标志 ; 所述状态标志包括页清空、 页接收 以及页有效的状态 ; 所述页清空表示页空间处于 flash 存储器初始化、 擦除状态 ; 所述页接 收表示页空间正处于页空间存储满或者页空间的数据要转移的状态 ; 所述页有效表示页空 间处于数据接收更新的状态 ; 且页空间以每 4 个字节作为一存储单元来存储一数据, 该4个 字节的存储单元头 2 个字节用于保存要存储的数据的虚拟地址, 后 2 个字节用于保存要存 储的数据 ; 步骤 20、 当应用程序进行写入数据时, 将要写入的数据定义为存储的数据加上虚拟地 址的结构 ; 判断页空间的状态标志是否为页清空, 是则从当前清空的第一个页空间的页首 地址开始查询页空间中各虚拟地址位置是否为 0XFFFF, 是, 则该虚拟地址位置可保存数据, 记录要保存的数据的虚拟地址到该页空间中该虚拟地址位置, 并将该要保存的数据的存储 的数据保存于所述虚拟地址位置的后 2 个字节空间中 ; 此时将所述第一个页空间所述保留 的前 4 个字节的头 2 个字节标记为页有效的状态, 并继续写入下一个数据 ; 否, 则继续查询 所述页空间中下一个的虚拟地址位置 ; 如果当前的第一个页空间所有的所述虚拟地址位置 无 0XFFFF 时, 则当前的第一个页空间存储的数据已满, 将该第一个页空间所述保留的前 4 个字节的头 2 个字节标记为页接收的状态 ; 进入步骤 30 ; 步骤 30、 将所述第一个页空间里的有效数据复制到处于页清空状态的第二个页空间 里; 所述的有效数据为 : 应用程序不断写入数据, 当写入的数据中存在同一虚拟地址的数 据时, 最后一次写入的数据为有效数据, 当写入的数据中不存在同一虚拟地址的数据时, 写 入的数据都为有效数据 ; 当第一个页空间所有有效数据复制完毕, 进行页空间擦除操作, 且 将所述第一个页空间所述保留的前 4 个字节的头 2 个字节标记为页清空的状态 ; 当第二个 页空间在接收复制数据时, 先将第二个页空间所述保留的前 4 个字节的头 2 个字节标记为 页有效的状态 ; 当接收完毕将第二个页空间所述保留的前 4 个字节的头 2 个字节标记为页 接收的状态 ; 第一个页空间继续写入数据。
2: 根据权利要求 1 所述的一种 flash 存储器块细分的数据寻址存储方法, 其特征在于 : 当应用程序进行读数据时, 判断页空间的状态标志是否为有效, 是则从当前有效的页空间 的末尾的虚拟地址开始检测是否是有效数据 ; 所述检测是否是有效数据是应用程序通过此 时要读取数据的虚拟地址与存储在页空间中虚拟地址进行匹配判断是否一样, 第一次匹配 一样的数据即为有效数 ; 是, 则将读取该有效数据 ; 否, 则继续检测所述页空间的下一个虚 拟地址。
3: 根据权利要求 1 所述的一种 flash 存储器块细分的数据寻址存储方法, 其特征在于 : 所述步骤 20 中当应用程序进行写入数据时, 还能使用多个页空间进行写入数据的, 其当有 效的第一个页空间写满数据时, 将第一个页空间里的有效数据复制到处于页清空状态的第 二个页空间里 ; 当第一个页空间再次写满数据时, 将第一个页空间里的有效数据复制到处 于页清空状态的第三个页空间里 ; 当第一个页空间再次写满数据时, 将第一个页空间里的 有效数据复制到处于页清空状态的第四个页空间里 ; 以此循环进行。
4: 根据权利要求 1 所述的一种 flash 存储器块细分的数据寻址存储方法, 其特征在于 : 2 当所述应用程序在写入或者读取数据时, 设备意外中断, 则重新启动设备, 设备的 flash 存 储器中的应用程序将查找处于页有效状态的页空间, 并继续进行写入或者读取数据。

说明书


一种 flash 存储器块细分的数据寻址存储方法

    【技术领域】
     本发明涉及嵌入式软件技术领域, 尤其涉及一种 flash 存储器块细分的数据寻址 存储方法。 【背景技术】
     设备在运行时、 往往有些数据是比较重要的, 但是当有大量这种重要数据并且改 变很频繁的情况下, 这种数据的及时保存及中断恢复就成为了问题 ; 且这些重要数据需要 占用较大的空间, 或者其存取的灵活性无法保证。
     目前设备中并行接口的非易失存储器很多, 如: EEPROM、 FLASH、 FRAM、 SRAM+ 备用 电池方式等占据了市场主流, 几种产品性能方面各有优缺。使用广泛的是 EEPROM 及 FLASH 存储器, 其它方式目前还存在标准问题及成本过高的问题。其中 EEPROM 的市场应用范围最 为广泛, 其缺点也很明显, 写入速度慢, 至少 10ms 的写等待时间, 而且写操作次数有限制, 并且总体存储容量有限。FLASH 存储器存储容量大, 但其存储特性又使得其在使用过程中 存在存取不灵活的特点, 具体表现为 : 传统 flash 特性为块 (block) 擦除、 最小操作单元到 位 (bit) 可编写 ; 位操作特性为将 1 改写 0, 并且不可逆, 逆操作需要通过 flash 块擦操作 实现。
     现有技术中提供了一种数据存储方法及装置, 如公开日为 2009 年 10 月 14 日, 公 开号为 CN101556556 的中国专利, 其特征点是 : 获得当前待写入数据块的前一数据块的起 始存储地址 ; 将所述起始存储地址减去所述当前待写入数据块的大小, 得到中间结果 ; 若 所述中间结果小于 0, 则将所述中间结果映射到所述存储器的有效地址内, 以该映射的结果 作为所述当前待写入数据块的起始存储地址 ; 若所述中间结果大于或等于 0, 则直接以该 中间结果作为所述当前待写入数据块的起始存储地址 ; 从所述当前待写入数据块的起始存 储地址对应的存储单元开始写入所述当前待写入数据块。利用该发明实施例提供的方法, 可以减少对存储器的读写次数, 从而降低向存储器中写数据时的功耗 ; 但其数据存储方法 比较复杂, 其还要判断起始存储地址与当前待写入数据块的大小关系。 【发明内容】
     本发明要解决的技术问题, 在于提供一种在大量存储易变数据的情况下, 保证其 易变数据存取的灵活性的数据寻址存储方法。
     本发明是这样实现的 : 一种 flash 存储器块细分的数据寻址存储方法, 包括如下 步骤 :
     步骤 10、 将所述 flash 存储器的存储区定义为复数个页空间, 所述页空间即根据 flash 存储器的大小划分出的 flash 存储器的块空间, 将页空间的前 4 个字节进行保留, 其 中所述保留的前 4 个字节的头 2 个字节作为该页空间状态标志 ; 所述状态标志包括页清空、 页接收以及页有效的状态 ; 所述页清空表示页空间处于 flash 存储器初始化、 擦除状态 ; 所 述页接收表示页空间正处于页空间存储满或者页空间的数据要转移的状态 ; 所述页有效表示页空间处于数据接收更新的状态 ; 且页空间以每 4 个字节作为一存储单元来存储一数 据, 该 4 个字节的存储单元头 2 个字节用于保存要存储的数据的虚拟地址, 后 2 个字节用于 保存要存储的数据 ;
     步骤 20、 当应用程序进行写入数据时, 将要写入的数据定义为存储的数据加上虚 拟地址的结构 ; 判断页空间的状态标志是否为页清空, 是则从当前清空的第一个页空间的 页首地址开始查询页空间中各虚拟地址位置是否为 0XFFFF, 是, 则该虚拟地址位置可保存 数据, 记录要保存的数据的虚拟地址到该页空间中该虚拟地址位置, 并将该要保存的数据 的存储的数据保存于所述虚拟地址位置的后 2 个字节空间中 ; 此时将所述第一个页空间所 述保留的前 4 个字节的头 2 个字节标记为页有效的状态, 并继续写入下一个数据 ; 否, 则继 续查询所述页空间中下一个的虚拟地址位置 ; 如果当前的第一个页空间所有的所述虚拟地 址位置无 0XFFFF 时, 则当前的第一个页空间存储的数据已满, 将该第一个页空间所述保留 的前 4 个字节的头 2 个字节标记为页接收的状态 ; 进入步骤 30 ;
     步骤 30、 将所述第一个页空间里的有效数据复制到处于页清空状态的第二个页空 间里 ; 所述的有效数据为 : 应用程序不断写入数据, 当写入的数据中存在同一虚拟地址的 数据时, 最后一次写入的数据为有效数据, 当写入的数据中不存在同一虚拟地址的数据时, 写入的数据都为有效数据 ; 当第一个页空间所有有效数据复制完毕, 进行页空间擦除操作, 且将所述第一个页空间所述保留的前 4 个字节的头 2 个字节标记为页清空的状态 ; 当第二 个页空间在接收复制数据时, 先将第二个页空间所述保留的前 4 个字节的头 2 个字节标记 为页有效的状态 ; 当接收完毕将第二个页空间所述保留的前 4 个字节的头 2 个字节标记为 页接收的状态 ; 第一个页空间继续写入数据。
     本发明具有如下优点 : 本发明将 flash 存储器的存储区定义为复数个页空间, 页 空间的前 4 个字节进行保留, 其中前 4 个字节的头 2 个字节作为该页空间状态标志 ; 状态 标志包括页清空、 页接收以及页有效的状态 ; 且页空间以每 4 个字节作为一存储单元来存 储一数据 ; 并将要写入的数据定义为存储的数据加上虚拟地址的结构 ; 应用程序通过判断 页空间的状态, 存储要写入的数据 ; 当一页空间写入数据满后, 则将有效数据复制到另一个 处于页清空状态的页空间 ; 复制完毕后, 页空间进行擦除操作并继续写数据。这样读取数 据时, 只要通过数据的虚拟地址进行查找, 且当所述应用程序在写入或者读取数据时, 设备 意外中断, 则重新启动设备, 设备的 flash 存储器中的应用程序将查找处于页有效状态的 页空间, 并继续进行写入或者读取数据 ; 且在有效数据复制过程中遇到设备中断, 重新恢复 后, 也是可以根据查找处于也有效状态的页空间, 进行继续复制。 本发明实现了当有大量重 要的数据并且改变很频繁的情况下, 利用本发明的方法能及时保存及中断恢复数据 ; 能保 证数据存取灵活性。【附图说明】
     图 1 为本发明方法流程示意图。
     图 2 为本发明页空间的结构示意图。
     图 3 为本发明定义的数据结构示意图。 【具体实施方式】请参阅图 1 至图 3 所示, 本发明的一种 flash 存储器块细分的数据寻址存储方法, 包括如下步骤 :
     步骤 10、 将所述 flash 存储器的存储区定义为复数个页空间, 所述页空间即根据 flash 存储器的大小划分出的 flash 存储器的块空间, 页空间的存储大小根据 flash 的块大 小决定, 不同型号及不同容量的 flash 的块 (block) 大小不同 ; 如图 2 所示, 将页空间的前 4 个字节进行保留, 其中所述保留的前 4 个字节的头 2 个字节作为该页空间状态标志 ( 后 2 个字节可以用于后期的二次开发 ) ; 所述状态标志包括页清空、 页接收以及页有效的状态 ; 所述页清空表示页空间处于 flash 存储器初始化、 擦除的状态 ; 所述页接收表示页空间正 处于页空间存储满或者页空间的数据要转移的状态 ; 所述页有效表示页空间处于数据接收 更新的状态 ; 且页空间以每 4 个字节作为一存储单元来存储一数据, 该 4 个字节的存储单元 头 2 个字节用于保存要存储的数据的虚拟地址, 后 2 个字节用于保存要存储的数据 ;
     步骤 20、 当应用程序进行写入数据时, 将要写入的数据定义为存储的数据加上虚 拟地址的结构 ( 如图 3 所示 ) ; 判断页空间的状态标志是否为页清空, 是则从当前清空的第 一个页空间的页首地址开始查询页空间中各虚拟地址位置是否为 0XFFFF, 是, 则该虚拟地 址位置可保存数据, 记录要保存的数据的虚拟地址到该页空间中该虚拟地址位置, 并将该 要保存的数据的存储的数据保存于所述虚拟地址位置的后 2 个字节空间中 ; 此时将所述第 一个页空间所述保留的前 4 个字节的头 2 个字节标记为页有效的状态, 并继续写入下一个 数据 ; 否, 则继续查询所述页空间中下一个的虚拟地址位置 ; 如果当前的第一个页空间所 有的所述虚拟地址位置无 0XFFFF 时, 则当前的第一个页空间存储的数据已满, 将该第一个 页空间所述保留的前 4 个字节的头 2 个字节标记为页接收的状态 ; 进入步骤 30 ;
     步骤 30、 将所述第一个页空间里的有效数据复制到处于页清空状态的第二个页空 间里 ; 所述的有效数据为 : 应用程序不断写入数据, 当写入的数据中存在同一虚拟地址的 数据时, 最后一次写入的数据为有效数据 ( 即写入的数据为存储的数据加上虚拟地址的结 构, 则存在存储的数据不一样, 但是虚拟地址一样的情况 ; 这样写入数据中出现同一虚拟地 址的数据时, 最后一次写入的数据为有效数据 ), 当写入的数据中不存在同一虚拟地址的数 据时, 写入的数据都为有效数据 ; 当第一个页空间所有有效数据复制完毕, 进行页空间擦除 操作, 且将所述第一个页空间所述保留的前 4 个字节的头 2 个字节标记为页清空的状态 ; 当 第二个页空间在接收复制数据时, 先将第二个页空间所述保留的前 4 个字节的头 2 个字节 标记为页有效的状态 ; 当接收完毕将第二个页空间所述保留的前 4 个字节的头 2 个字节标 记为页接收的状态 ; 第一个页空间继续写入数据。
     在本发明设备意外中断的数据保存方法中, 当应用程序进行读数据时, 判断页空 间的状态标志是否为有效, 是则从当前有效的页空间的末尾的虚拟地址开始检测是否是有 效数据 ; 所述检测是否是有效数据是应用程序通过此时要读取数据的虚拟地址与存储在页 空间中虚拟地址进行匹配判断是否一样, 第一次匹配一样的数据即为有效数 ( 即匹配的时 候根据数据的虚拟地址进行匹配, 匹配可能存在有 2 个或多个虚拟地址一样的数据, 则第 一匹配一样的数据即为有效数 ) ; 是, 则将读取该有效数据 ; 否, 则继续检测所述页空间的 下一个虚拟地址。
     如果想增加页空间的使用寿命可以增加多个页空间循环保存数据, 当应用程序进 行写入数据时, 还能使用多个页空间进行写入数据的, 其当有效的第一个页空间写满数据时, 将第一个页空间里的有效数据复制到处于页清空状态的第二个页空间里 ; 当第一个页 空间再次写满数据时, 将第一个页空间里的有效数据复制到处于页清空状态的第三个页空 间里 ; 当第一个页空间再次写满数据时, 将第一个页空间里的有效数据复制到处于页清空 状态的第四个页空间里 ; 以此循环进行。其页空间保存数据的多少跟 FLASH 存储器的大小 有关, 如果页空间大小是 1K 那么只能保存 1024/4-1 = 256-1 个 16 位数据, 如果保存 8 位 数, 可以用 2 个 8 位数据组合后保存或者直接保存, 如果保存 32 位数据那就拆成 2 个 16 位 保存。
     值得一提的是 : 存储单元个数取决于存储单元大小和页空间大小。存储单元个 数 (Num) =页空间大小 (Page size)/ 存储单元大小 (32bit) ; 例如 : 当页空间大小 (Page size) 为 128KB 时, 存储单元个数 (Num) 为 32K(32768) 个。
     其中页空间状态标志标记转换是使用 flash 的位操作特性 : flash 存储器中的数 据由 “1” 改写为 “0” 时可以进行位操作, 而由 “0” 改写为 “1” 则需要 flash 存储器中的整个 块进行擦除操作才能实现, 根据 flash 存储器这种特性可以对所在页空间标识多种状态。 即数据在 0xFFFF 到 0x0000 之间, 进行一个 “1” 改写为 “0” 的位操作, 就可以表示一种状 态, 这种方法最后的状态一定是由 0x0000 到 0xFFFF, 从而形成完整一个状态循环。在本发 明中只是利用了其中 3 中状态, 即页清空 ( 用 0XFFFF 表示 )、 页接收 ( 用 0XEEEE 表示 ) 以 及页有效 ( 用 0X0000 表示 ) 的状态。 当所述应用程序在写入或者读取数据时, 设备意外中断, 则重新启动设备, 设备的 flash 存储器中的应用程序将查找处于页有效状态的页空间, 并继续进行写入或者读取数 据; 且在有效数据复制过程中遇到设备中断, 重新恢复后, 也是可以根据查找处于也有效状 态的页空间, 进行继续复制。
     以上所述仅为本发明的较佳实施例, 凡依本发明申请专利范围所做的均等变化与 修饰, 皆应属本发明的涵盖范围。
    

一种FLASH存储器块细分的数据寻址存储方法.pdf_第1页
第1页 / 共9页
一种FLASH存储器块细分的数据寻址存储方法.pdf_第2页
第2页 / 共9页
一种FLASH存储器块细分的数据寻址存储方法.pdf_第3页
第3页 / 共9页
点击查看更多>>
资源描述

《一种FLASH存储器块细分的数据寻址存储方法.pdf》由会员分享,可在线阅读,更多相关《一种FLASH存储器块细分的数据寻址存储方法.pdf(9页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102521146 A (43)申请公布日 2012.06.27 C N 1 0 2 5 2 1 1 4 6 A *CN102521146A* (21)申请号 201110350916.6 (22)申请日 2011.11.08 G06F 12/06(2006.01) (71)申请人福建新大陆通信科技股份有限公司 地址 350000 福建省福州市马尾开发区儒江 东路70号(飞毛腿工业园)6号楼及5 号楼二至四层 (72)发明人郭鑫俊 (74)专利代理机构福州市鼓楼区京华专利事务 所(普通合伙) 35212 代理人宋连梅 (54) 发明名称 一种flash存储器块细分的数。

2、据寻址存储方 法 (57) 摘要 本发明提供一种flash存储器块细分的数据 寻址存储方法,该方法中将flash存储器的存储 区定义为复数个页空间,页空间的前4个字节进 行保留,其中前4个字节的头2个字节作为该页空 间状态标志;状态标志包括页清空、页接收以及 页有效的状态;且页空间以每4个字节作为一存 储单元来存储一数据;并将要写入的数据定义为 存储的数据加上虚拟地址的结构;应用程序通过 判断页空间的状态,存储要写入的数据;当一页 空间写入数据满后,则将有效数据复制到另一个 处于页清空状态的页空间;复制完毕后,页空间 进行擦除操作并继续写数据。当有大量重要的数 据并且改变很频繁的情况下,利用本。

3、发明的方法 能及时保存及中断恢复数据;能保证数据存取灵 活性。 (51)Int.Cl. 权利要求书2页 说明书4页 附图2页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 4 页 附图 2 页 1/2页 2 1.一种flash存储器块细分的数据寻址存储方法,其特征在于:包括如下步骤: 步骤10、将所述flash存储器的存储区定义为复数个页空间,所述页空间即根据flash 存储器的大小划分出的flash存储器的块空间,将页空间的前4个字节进行保留,其中所述 保留的前4个字节的头2个字节作为该页空间状态标志;所述状态标志包括页清空、页接收 以及页有效的状态。

4、;所述页清空表示页空间处于flash存储器初始化、擦除状态;所述页接 收表示页空间正处于页空间存储满或者页空间的数据要转移的状态;所述页有效表示页空 间处于数据接收更新的状态;且页空间以每4个字节作为一存储单元来存储一数据,该4个 字节的存储单元头2个字节用于保存要存储的数据的虚拟地址,后2个字节用于保存要存 储的数据; 步骤20、当应用程序进行写入数据时,将要写入的数据定义为存储的数据加上虚拟地 址的结构;判断页空间的状态标志是否为页清空,是则从当前清空的第一个页空间的页首 地址开始查询页空间中各虚拟地址位置是否为0XFFFF,是,则该虚拟地址位置可保存数据, 记录要保存的数据的虚拟地址到该。

5、页空间中该虚拟地址位置,并将该要保存的数据的存储 的数据保存于所述虚拟地址位置的后2个字节空间中;此时将所述第一个页空间所述保留 的前4个字节的头2个字节标记为页有效的状态,并继续写入下一个数据;否,则继续查询 所述页空间中下一个的虚拟地址位置;如果当前的第一个页空间所有的所述虚拟地址位置 无0XFFFF时,则当前的第一个页空间存储的数据已满,将该第一个页空间所述保留的前4 个字节的头2个字节标记为页接收的状态;进入步骤30; 步骤30、将所述第一个页空间里的有效数据复制到处于页清空状态的第二个页空间 里;所述的有效数据为:应用程序不断写入数据,当写入的数据中存在同一虚拟地址的数 据时,最后一。

6、次写入的数据为有效数据,当写入的数据中不存在同一虚拟地址的数据时,写 入的数据都为有效数据;当第一个页空间所有有效数据复制完毕,进行页空间擦除操作,且 将所述第一个页空间所述保留的前4个字节的头2个字节标记为页清空的状态;当第二个 页空间在接收复制数据时,先将第二个页空间所述保留的前4个字节的头2个字节标记为 页有效的状态;当接收完毕将第二个页空间所述保留的前4个字节的头2个字节标记为页 接收的状态;第一个页空间继续写入数据。 2.根据权利要求1所述的一种flash存储器块细分的数据寻址存储方法,其特征在于: 当应用程序进行读数据时,判断页空间的状态标志是否为有效,是则从当前有效的页空间 的末。

7、尾的虚拟地址开始检测是否是有效数据;所述检测是否是有效数据是应用程序通过此 时要读取数据的虚拟地址与存储在页空间中虚拟地址进行匹配判断是否一样,第一次匹配 一样的数据即为有效数;是,则将读取该有效数据;否,则继续检测所述页空间的下一个虚 拟地址。 3.根据权利要求1所述的一种flash存储器块细分的数据寻址存储方法,其特征在于: 所述步骤20中当应用程序进行写入数据时,还能使用多个页空间进行写入数据的,其当有 效的第一个页空间写满数据时,将第一个页空间里的有效数据复制到处于页清空状态的第 二个页空间里;当第一个页空间再次写满数据时,将第一个页空间里的有效数据复制到处 于页清空状态的第三个页空间。

8、里;当第一个页空间再次写满数据时,将第一个页空间里的 有效数据复制到处于页清空状态的第四个页空间里;以此循环进行。 4.根据权利要求1所述的一种flash存储器块细分的数据寻址存储方法,其特征在于: 权 利 要 求 书CN 102521146 A 2/2页 3 当所述应用程序在写入或者读取数据时,设备意外中断,则重新启动设备,设备的flash存 储器中的应用程序将查找处于页有效状态的页空间,并继续进行写入或者读取数据。 权 利 要 求 书CN 102521146 A 1/4页 4 一种 flash 存储器块细分的数据寻址存储方法 【 技术领域 】 0001 本发明涉及嵌入式软件技术领域,尤其涉。

9、及一种flash存储器块细分的数据寻址 存储方法。 【 背景技术 】 0002 设备在运行时、往往有些数据是比较重要的,但是当有大量这种重要数据并且改 变很频繁的情况下,这种数据的及时保存及中断恢复就成为了问题;且这些重要数据需要 占用较大的空间,或者其存取的灵活性无法保证。 0003 目前设备中并行接口的非易失存储器很多,如:EEPROM、FLASH、FRAM、SRAM+备用 电池方式等占据了市场主流,几种产品性能方面各有优缺。使用广泛的是EEPROM及FLASH 存储器,其它方式目前还存在标准问题及成本过高的问题。其中EEPROM的市场应用范围最 为广泛,其缺点也很明显,写入速度慢,至少1。

10、0ms的写等待时间,而且写操作次数有限制, 并且总体存储容量有限。FLASH存储器存储容量大,但其存储特性又使得其在使用过程中 存在存取不灵活的特点,具体表现为:传统flash特性为块(block)擦除、最小操作单元到 位(bit)可编写;位操作特性为将1改写0,并且不可逆,逆操作需要通过flash块擦操作 实现。 0004 现有技术中提供了一种数据存储方法及装置,如公开日为2009年10月14日,公 开号为CN101556556的中国专利,其特征点是:获得当前待写入数据块的前一数据块的起 始存储地址;将所述起始存储地址减去所述当前待写入数据块的大小,得到中间结果;若 所述中间结果小于0,则将。

11、所述中间结果映射到所述存储器的有效地址内,以该映射的结果 作为所述当前待写入数据块的起始存储地址;若所述中间结果大于或等于0,则直接以该 中间结果作为所述当前待写入数据块的起始存储地址;从所述当前待写入数据块的起始存 储地址对应的存储单元开始写入所述当前待写入数据块。利用该发明实施例提供的方法, 可以减少对存储器的读写次数,从而降低向存储器中写数据时的功耗;但其数据存储方法 比较复杂,其还要判断起始存储地址与当前待写入数据块的大小关系。 【 发明内容 】 0005 本发明要解决的技术问题,在于提供一种在大量存储易变数据的情况下,保证其 易变数据存取的灵活性的数据寻址存储方法。 0006 本发明。

12、是这样实现的:一种flash存储器块细分的数据寻址存储方法,包括如下 步骤: 0007 步骤10、将所述flash存储器的存储区定义为复数个页空间,所述页空间即根据 flash存储器的大小划分出的flash存储器的块空间,将页空间的前4个字节进行保留,其 中所述保留的前4个字节的头2个字节作为该页空间状态标志;所述状态标志包括页清空、 页接收以及页有效的状态;所述页清空表示页空间处于flash存储器初始化、擦除状态;所 述页接收表示页空间正处于页空间存储满或者页空间的数据要转移的状态;所述页有效表 说 明 书CN 102521146 A 2/4页 5 示页空间处于数据接收更新的状态;且页空间以。

13、每4个字节作为一存储单元来存储一数 据,该4个字节的存储单元头2个字节用于保存要存储的数据的虚拟地址,后2个字节用于 保存要存储的数据; 0008 步骤20、当应用程序进行写入数据时,将要写入的数据定义为存储的数据加上虚 拟地址的结构;判断页空间的状态标志是否为页清空,是则从当前清空的第一个页空间的 页首地址开始查询页空间中各虚拟地址位置是否为0XFFFF,是,则该虚拟地址位置可保存 数据,记录要保存的数据的虚拟地址到该页空间中该虚拟地址位置,并将该要保存的数据 的存储的数据保存于所述虚拟地址位置的后2个字节空间中;此时将所述第一个页空间所 述保留的前4个字节的头2个字节标记为页有效的状态,并。

14、继续写入下一个数据;否,则继 续查询所述页空间中下一个的虚拟地址位置;如果当前的第一个页空间所有的所述虚拟地 址位置无0XFFFF时,则当前的第一个页空间存储的数据已满,将该第一个页空间所述保留 的前4个字节的头2个字节标记为页接收的状态;进入步骤30; 0009 步骤30、将所述第一个页空间里的有效数据复制到处于页清空状态的第二个页空 间里;所述的有效数据为:应用程序不断写入数据,当写入的数据中存在同一虚拟地址的 数据时,最后一次写入的数据为有效数据,当写入的数据中不存在同一虚拟地址的数据时, 写入的数据都为有效数据;当第一个页空间所有有效数据复制完毕,进行页空间擦除操作, 且将所述第一个页。

15、空间所述保留的前4个字节的头2个字节标记为页清空的状态;当第二 个页空间在接收复制数据时,先将第二个页空间所述保留的前4个字节的头2个字节标记 为页有效的状态;当接收完毕将第二个页空间所述保留的前4个字节的头2个字节标记为 页接收的状态;第一个页空间继续写入数据。 0010 本发明具有如下优点:本发明将flash存储器的存储区定义为复数个页空间,页 空间的前4个字节进行保留,其中前4个字节的头2个字节作为该页空间状态标志;状态 标志包括页清空、页接收以及页有效的状态;且页空间以每4个字节作为一存储单元来存 储一数据;并将要写入的数据定义为存储的数据加上虚拟地址的结构;应用程序通过判断 页空间的。

16、状态,存储要写入的数据;当一页空间写入数据满后,则将有效数据复制到另一个 处于页清空状态的页空间;复制完毕后,页空间进行擦除操作并继续写数据。这样读取数 据时,只要通过数据的虚拟地址进行查找,且当所述应用程序在写入或者读取数据时,设备 意外中断,则重新启动设备,设备的flash存储器中的应用程序将查找处于页有效状态的 页空间,并继续进行写入或者读取数据;且在有效数据复制过程中遇到设备中断,重新恢复 后,也是可以根据查找处于也有效状态的页空间,进行继续复制。本发明实现了当有大量重 要的数据并且改变很频繁的情况下,利用本发明的方法能及时保存及中断恢复数据;能保 证数据存取灵活性。 【 附图说明 】。

17、 0011 图1为本发明方法流程示意图。 0012 图2为本发明页空间的结构示意图。 0013 图3为本发明定义的数据结构示意图。 【 具体实施方式 】 说 明 书CN 102521146 A 3/4页 6 0014 请参阅图1至图3所示,本发明的一种flash存储器块细分的数据寻址存储方法, 包括如下步骤: 0015 步骤10、将所述flash存储器的存储区定义为复数个页空间,所述页空间即根据 flash存储器的大小划分出的flash存储器的块空间,页空间的存储大小根据flash的块大 小决定,不同型号及不同容量的flash的块(block)大小不同;如图2所示,将页空间的前 4个字节进行保。

18、留,其中所述保留的前4个字节的头2个字节作为该页空间状态标志(后2 个字节可以用于后期的二次开发);所述状态标志包括页清空、页接收以及页有效的状态; 所述页清空表示页空间处于flash存储器初始化、擦除的状态;所述页接收表示页空间正 处于页空间存储满或者页空间的数据要转移的状态;所述页有效表示页空间处于数据接收 更新的状态;且页空间以每4个字节作为一存储单元来存储一数据,该4个字节的存储单元 头2个字节用于保存要存储的数据的虚拟地址,后2个字节用于保存要存储的数据; 0016 步骤20、当应用程序进行写入数据时,将要写入的数据定义为存储的数据加上虚 拟地址的结构(如图3所示);判断页空间的状态。

19、标志是否为页清空,是则从当前清空的第 一个页空间的页首地址开始查询页空间中各虚拟地址位置是否为0XFFFF,是,则该虚拟地 址位置可保存数据,记录要保存的数据的虚拟地址到该页空间中该虚拟地址位置,并将该 要保存的数据的存储的数据保存于所述虚拟地址位置的后2个字节空间中;此时将所述第 一个页空间所述保留的前4个字节的头2个字节标记为页有效的状态,并继续写入下一个 数据;否,则继续查询所述页空间中下一个的虚拟地址位置;如果当前的第一个页空间所 有的所述虚拟地址位置无0XFFFF时,则当前的第一个页空间存储的数据已满,将该第一个 页空间所述保留的前4个字节的头2个字节标记为页接收的状态;进入步骤30。

20、; 0017 步骤30、将所述第一个页空间里的有效数据复制到处于页清空状态的第二个页空 间里;所述的有效数据为:应用程序不断写入数据,当写入的数据中存在同一虚拟地址的 数据时,最后一次写入的数据为有效数据(即写入的数据为存储的数据加上虚拟地址的结 构,则存在存储的数据不一样,但是虚拟地址一样的情况;这样写入数据中出现同一虚拟地 址的数据时,最后一次写入的数据为有效数据),当写入的数据中不存在同一虚拟地址的数 据时,写入的数据都为有效数据;当第一个页空间所有有效数据复制完毕,进行页空间擦除 操作,且将所述第一个页空间所述保留的前4个字节的头2个字节标记为页清空的状态;当 第二个页空间在接收复制数。

21、据时,先将第二个页空间所述保留的前4个字节的头2个字节 标记为页有效的状态;当接收完毕将第二个页空间所述保留的前4个字节的头2个字节标 记为页接收的状态;第一个页空间继续写入数据。 0018 在本发明设备意外中断的数据保存方法中,当应用程序进行读数据时,判断页空 间的状态标志是否为有效,是则从当前有效的页空间的末尾的虚拟地址开始检测是否是有 效数据;所述检测是否是有效数据是应用程序通过此时要读取数据的虚拟地址与存储在页 空间中虚拟地址进行匹配判断是否一样,第一次匹配一样的数据即为有效数(即匹配的时 候根据数据的虚拟地址进行匹配,匹配可能存在有2个或多个虚拟地址一样的数据,则第 一匹配一样的数据。

22、即为有效数);是,则将读取该有效数据;否,则继续检测所述页空间的 下一个虚拟地址。 0019 如果想增加页空间的使用寿命可以增加多个页空间循环保存数据,当应用程序进 行写入数据时,还能使用多个页空间进行写入数据的,其当有效的第一个页空间写满数据 说 明 书CN 102521146 A 4/4页 7 时,将第一个页空间里的有效数据复制到处于页清空状态的第二个页空间里;当第一个页 空间再次写满数据时,将第一个页空间里的有效数据复制到处于页清空状态的第三个页空 间里;当第一个页空间再次写满数据时,将第一个页空间里的有效数据复制到处于页清空 状态的第四个页空间里;以此循环进行。其页空间保存数据的多少跟。

23、FLASH存储器的大小 有关,如果页空间大小是1K那么只能保存1024/4-1256-1个16位数据,如果保存8位 数,可以用2个8位数据组合后保存或者直接保存,如果保存32位数据那就拆成2个16位 保存。 0020 值得一提的是:存储单元个数取决于存储单元大小和页空间大小。存储单元个 数(Num)页空间大小(Page size)/存储单元大小(32bit);例如:当页空间大小(Page size)为128KB时,存储单元个数(Num)为32K(32768)个。 0021 其中页空间状态标志标记转换是使用flash的位操作特性:flash存储器中的数 据由“1”改写为“0”时可以进行位操作,而。

24、由“0”改写为“1”则需要flash存储器中的整个 块进行擦除操作才能实现,根据flash存储器这种特性可以对所在页空间标识多种状态。 即数据在0xFFFF到0x0000之间,进行一个“1”改写为“0”的位操作,就可以表示一种状 态,这种方法最后的状态一定是由0x0000到0xFFFF,从而形成完整一个状态循环。在本发 明中只是利用了其中3中状态,即页清空(用0XFFFF表示)、页接收(用0XEEEE表示)以 及页有效(用0X0000表示)的状态。 0022 当所述应用程序在写入或者读取数据时,设备意外中断,则重新启动设备,设备的 flash存储器中的应用程序将查找处于页有效状态的页空间,并继续进行写入或者读取数 据;且在有效数据复制过程中遇到设备中断,重新恢复后,也是可以根据查找处于也有效状 态的页空间,进行继续复制。 0023 以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与 修饰,皆应属本发明的涵盖范围。 说 明 书CN 102521146 A 1/2页 8 图1 说 明 书 附 图CN 102521146 A 2/2页 9 图2 图3 说 明 书 附 图CN 102521146 A 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1