《基于NAND闪存的动态分区搜索装置及其方法.pdf》由会员分享,可在线阅读,更多相关《基于NAND闪存的动态分区搜索装置及其方法.pdf(12页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103744694 A (43)申请公布日 2014.04.23 CN 103744694 A (21)申请号 201310720438.2 (22)申请日 2013.12.24 G06F 9/445(2006.01) G06F 12/02(2006.01) G06F 11/10(2006.01) (71)申请人 武汉烽火众智数字技术有限责任公 司 地址 430074 湖北省武汉市洪山区邮科院路 88 号 (72)发明人 曹木莲 (74)专利代理机构 北京汇泽知识产权代理有限 公司 11228 代理人 刘淑敏 (54) 发明名称 基于 Nand 闪存的动态分区搜索装置。
2、及其方 法 (57) 摘要 本发明公开一种基于 Nand 闪存的动态分区 搜索装置及其方法, 包括 : 版本升级模块, 将预存 储在动态分区的各分区的二进制执行部件按序组 装合并成一个文件加入版本头信息 ; 可烧录版本 模块, 将 Nand 闪存中实际存储的 N 个分区的顺序 依次进行烧录版本组装 ; 烧录模块 : 需要烧录版 本文件到 Nand 闪存时, 将带 ECC 算法的可烧录版 本烧录到 Nand 闪存中 ; 动态分区解析模块 : 用于 在引导程序启动时搜索版本头, 根据版本头记录 的信息和 Nand 闪存依次搜索到的块状态构造出 动态分区表, 内核通过引导程序传递环境变量的 方式或通。
3、过将动态分区表共享到同一段未使用的 内存的方式获取来构造内核分区表。 采用本发明, 能够在解决坏块的同时减少冗余块, 提高存储介 质的利用率。 (51)Int.Cl. 权利要求书 2 页 说明书 6 页 附图 3 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书6页 附图3页 (10)申请公布号 CN 103744694 A CN 103744694 A 1/2 页 2 1. 一种基于 Nand 闪存的动态分区搜索装置, 其特征在于, 该装置包括版本升级模块、 可烧录版本模块、 烧录模块以及动态分区解析模块 ; 其中 : 版本升级模块, 用于将预存储在动态。
4、分区的各分区的二进制执行部件按序组装合并成 一个文件, 并加入版本头信息部件 ; 可烧录版本模块, 用于将Nand闪存中实际存储的N个分区的顺序依次进行烧录版本组 装 ; 由 N-M 个静态分区预存储的二进制执行部件和版本升级模块进行组装合并 ; 烧录模块 : 用于当需要烧录版本文件到 Nand 闪存中时, 将所述带 ECC 算法的可烧录版 本提供给烧录器, 由所述烧录器将所述可烧录版本文件烧录到 Nand 闪存中 ; 动态分区解析模块 : 用于在引导程序启动时搜索版本头, 根据版本头记录的信息和 Nand 闪存依次搜索到的块状态构造出动态分区表, 内核通过引导程序传递环境变量的方式 或者通过。
5、将动态分区表共享到同一段未使用的内存的方式获取来构造内核分区表。 2. 根据权利要求 1 所述基于 Nand 闪存的动态分区搜索装置, 其特征在于, 所述的版本 升级模块, 用于按照块对齐的方式记录各动态分区存储文件的实际大小。 3. 根据权利要求 1 或 2 所述基于 Nand 闪存的动态分区搜索装置, 其特征在于, 还用于 在 Nand 闪存中的引导程序能正常启动的情况下, 将该版本升级文件用于通过软件的方式 进行版本的在线升级更新。 4. 根据权利要求 1 所述基于 Nand 闪存的动态分区搜索装置, 其特征在于, 在所述可烧 录版本模块中, 如果 N-M 个静态分区预存储的二进制执行部。
6、件未达到该分区大小, 则所述 未达到的部分需要按 0xFF 进行填充。 5. 根据权利要求 1 或 4 所述基于 Nand 闪存的动态分区搜索装置, 其特征在于, 在所述 可烧录版本模块中, 各部件组装合并完毕, 再根据具体的硬件电路加入相应 ECC 算法进行 填充。 6. 一种基于 Nand 闪存的动态分区搜索方法, 其特征在于, 该方法包括 : A、 获取原始分区信息, 所述原始分区信息包括 N 个分区及每个所述分区的空间大小, 其中 N 为正整数 ; B、 将需要运用动态构造分区搜索方法的分区数 M 合并成一个大的静态分区 C ; 其中 M 为正整数, 且 1=2, 前 N-1 个分区的。
7、搜索过程按步骤 302 步骤 312 的顺序进行。第 i+1 个分区的起始地址 = 第 i 个分区的起始地址 + (第 i 个 分区坏块数 + 第 i 个分区存储的实际文件内容所占的块数) * 块大小。其中, 动态分区之前 的静态分区个数 iN+ 动态分区之前的静态分区个数。当搜索到最后一个动态分区的起始 地址时, 就可以把剩下的存储空间作为该动态分区的大小。 0043 图 2 为本发明实施例基于 Nand Flash 的动态分区的装置结构示意图。如图 2 所 示, 该基于 Nand Flash 的动态分区的装置, 主要包括 : 版本升级模块 201, 可烧录版本模块 202, 烧录模块 20。
8、3 及动态分区解析模块 204。其中 : 版本升级模块 201 : 用于将预存储在动态各分区的二进制执行部件按序组装合并成一 个文件, 并加入版本头信息部件 ; 还用于记录各动态分区存储文件的实际大小。 并且各部件 按照块对齐的方式进行。不需要进行校验和纠错 (ECC) 算法进行填充。所述模块的一个作 用是可以方便可烧录版本的制作, 另一个作用是可用来作为软件的在线升级版本文件。 0044 可烧录版本模块 202 : 用于将 Nand 存储介质上实际存储的 N 个分区的顺序依次进 行烧录版本组装。如图 4 所示, burnrom 版本 408 是由 uboot 二进制文件、 用户配置文件、 f。
9、ireware 版本 407 组装合并而成。其中, fireware 版本 407 文件是由版本头、 内核和文件 说 明 书 CN 103744694 A 8 6/6 页 9 系统组装合并而成。如果 uboot 二进制文件的大小未达到 uboot 区 401 的大小时, 需要进 行 0xFF 进行填充, 用户配置需要使用 0xFF 填充用户配置区 402 的区域大小。fireware 版 本 407 组装版本头 404, 内核 405 和文件系统 406 时需要进行块对齐, 大小未达到的部分使 用 0xFF 进行填充。 0045 这里, 根据不同的硬件设计方案, Nand Flash 所采用的。
10、 ECC 纠错编码方式可能有 所不同, 确定自己所采用的 ECC 编码方式后, 根据芯片厂家提供的 ECC 算法, 对上面组装成 的烧录版本文件 burnrom 版本 408 加入 ECC 算法进行相应的填充处理。 0046 烧录模块203 : 用于当需要烧录版本文件到Nand Flash芯片中时, 将所述带ECC算 法的可烧录版本 burnrom 版本 408 提供给烧录器, 由所述烧录器将所述可烧录版本文件烧 录到 Nand 闪存芯片中。 0047 动态分区解析模块 204 : 用于在引导程序启动时搜索版本头, 根据版本头信息和 Nand 闪存的块状态构造出动态分区表, 并向动态分区表通过。
11、环境变量的方式或将动态分区 表共享同一段未使用的内存的方式传递给内核构造内核分区表。 0048 对于双版本、 备份版本等存储结构的应用场合, 本发明的上述搜索方法和装置也 同样适用。 0049 本发明实施例提供的上述基于 Nand 闪存的动态分区搜索装置及其方法, 适用于 各种支持 Nand 闪存的烧录器。应用该搜索方法可以减少 Nand 存储介质预留的冗余块, 提 高 Nand 存储介质的存储空间利用率。同时, 运用上述方法和装置, 能够改变生产线原有的 生产方式, 通过使用烧录器直接烧录可烧录版本文件, 能够简化操作人员对烧录器软件的 复杂操作, 通过简单配置即可完成烧录过程。此外, 还可以解决对于 Nand Flash 存在坏块 的情况下, 在使用现有技术的烧录方式可能导致系统无法正常运行的问题。 0050 以上所述, 仅为本发明的较佳实施例而已, 并非用于限定本发明的保护范围。 说 明 书 CN 103744694 A 9 1/3 页 10 图 1 图 2 说 明 书 附 图 CN 103744694 A 10 2/3 页 11 图 3 说 明 书 附 图 CN 103744694 A 11 3/3 页 12 图 4 说 明 书 附 图 CN 103744694 A 12 。