[发明专利]基于Hash算法的在NOR FLASH中存储配置参数的方法无效
申请号: | 200810203996.0 | 申请日: | 2008-12-04 |
公开(公告)号: | CN101419571A | 公开(公告)日: | 2009-04-29 |
发明(设计)人: | 郭健;朱民耀;郑启盛;张锦辉 | 申请(专利权)人: | 上海大学 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F17/30 |
代理公司: | 上海上大专利事务所(普通合伙) | 代理人: | 何文欣 |
地址: | 200444*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 hash 算法 nor flash 存储 配置 参数 方法 | ||
技术领域
本发明涉及FLASH存储技术领域,尤其涉及了一种嵌入式系统中在NOR FLASH存储设备的分区上,基于Hash算法存储配置参数的方法。
背景技术
随着电子技术的发展,NOR FLASH芯片作为一种存储器在嵌入式系统中得到了越来越广泛的应用。NOR FLASH芯片具有可靠性高、体积小、密度大、可擦除、可重写等优点。因此,在嵌入式系统设备中,NOR FLASH可以用于存储系统的运行程序和作为NVRAM存储系统的配置参数。
NOR FLASH芯片可以进行读写和擦除操作,通常以字节为单位写入,以块为单位擦除;在进行写入操作前,必须先进行擦除操作。NOR FLASH芯片的缺点是擦除的次数有限,因此频繁的进行擦除操作不利于NOR FLASH芯片的长期使用。
在嵌入式系统中,FLASH存储空间通常被划分为多个分区,如boot区、内核区、文件系统区以及配置参数区等,如图1所示。参数区一般需要占用一个或者多个sector,如果不加控制,对于配置参数的改变将重新擦除整个配置参数区,那么一些需要经常修改配置参数的嵌入式设备的使用寿命将会受到严重影响。
Hash函数其实是一种对应关系,它使得它的关键字和hash地址即记录的存储位置相对应,在查找时,根据这个对应关系便可找到给定的关键字对应的位置,因而不需要进行比较便可直接取得所查记录。在理想的情况下,可以实现复杂度为0(1)的查找性能,但是Hash函数所建立的从关键字到Hash索引之间的映射是一对多的关系,必然存在Hash冲突,即不同的关键字最后产生相同的索引。Hash算法一般包括两方面的内容:一是Hash函数;二是冲突解决方案。所以一个好的hash函数应该使关键字通过该函数得到一个随机的地址,以便使一组关键字的hash地址均匀的分布在整个区间中,从而减少冲突。
发明内容
本发明的目的是提供一种基于Hash算法的在NOR FLASH中存储配置参数的方法,充分利用FLASH配置参数区的空间,尽量减少FLASH擦除的次数。发明的技术方案为:
将配置参数项以格式“name=value”不加标记的依次写入配置参数分区的空白区域中,通过其在FLASH中的位置关系,在对配置参数创建Hash表后可以得到有效的配置参数,Hash表用于表示配置参数空间分区有效配置信息与内存副本之间的映射,当要修改某个配置参数时,同样先通过Hash算法,然后对比Hash链表中对应的节点,再决定是否需要修改配置参数,以及是否需要将配置参数写入到FLASH中。如图4所示,操作步骤为:
1)配置参数的初始化:配置参数以格式“name=value”不加标记的顺次存在于FLASH中,通过其在FLASH中的位置关系,在对配置信息通过Hash算法创建Hash链表后得到有效的配置参数;
2)配置参数的修改:Hash链表用于表示配置参数分区数据与内存数据之间的映射关系,当要修改某个配置参数时,先通过Hash算法,然后对比Hash链表中的对应节点,再决定是否需要修改配置参数;
3)配置参数的写入:将修改后的配置参数写入到FLASH中。
上述步骤1)和步骤2)中的Hash算法是:Hash函数其实是一种对应关系,它使得它的关键字和Hash地址即记录的存储位置相对应,通过Hash算法,在配置参数的初始化过程中可以得到Flash中的有效配置参数,并可以提高配置信息查询的效率。
上述步骤1)配置参数的初始化的具体操作步骤为:
1)将配置参数分区的内容全部读取到内存中;
2)内存中的全部配置信息无论是否过时,均参与Hash算法,通过Hash算法建立用于表示配置参数分区数据与内存数据映射关系的Hash表;
3)在创建Hash表的过程中,如果有相同名称配置参数项出现,则表明以前创建的配置参数项节点是已经过时的配置信息,需要先删除旧的节点然后再创建新的节点,若有新的配置参数项出现,则直接添加新的节点。
上述步骤2)配置参数的修改:该修改包括参数值的修改、删除和参数的添加等,其具体操作步骤为:
(1)首先通过Hash算法查找该配置参数名对应的Hash链表节点;
(2)比较配置参数名是否与该节点配置参数名相同,如果不同,则添加新的节点到Hash链表中,并将该条配置参数写入配置参数分区中;如果相同,则继续比较该配置参数值是否相等,若相等,则不进行任何操作,否则,删除旧的节点,并创建新的节点,然后将新的配置参数写入配置参数分区中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海大学,未经上海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810203996.0/2.html,转载请声明来源钻瓜专利网。