[发明专利]一种基于未知长度二分查找的闪存数据检索存储的方法有效
申请号: | 201310015153.9 | 申请日: | 2013-01-15 |
公开(公告)号: | CN103020323A | 公开(公告)日: | 2013-04-03 |
发明(设计)人: | 王洪君;李绍林;曹敏;王琰;王惠;王光雷 | 申请(专利权)人: | 山东大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F12/02 |
代理公司: | 济南金迪知识产权代理有限公司 37219 | 代理人: | 许德山 |
地址: | 250100 山*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 未知 长度 二分 查找 闪存 数据 检索 存储 方法 | ||
技术领域
本发明涉及一种基于未知长度二分查找的闪存数据检索存储的方法,属于闪存存储技术领域。
背景技术
闪存(Flash Memory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位,区块大小一般为256KB到20MB。闪存是电子可擦除只读存储器(EEPROM)的变种,闪存与EEPROM不同的是,它能在字节水平上进行删除和重写而不是整个芯片擦写,这样闪存就比EEPROM的更新速度快。由于其断电时仍能保存数据,闪存通常被用来保存设置信息,如在电脑的BIOS(基本输入输出程序)、PDA(个人数字助理)、数码相机中保存资料等。
闪存由于本身特点,一个扇区在可以存放数据之前,必须先擦除该扇区,然后再在相应位置写入数据,这是因为闪存擦出操作,会将该扇区重置为全1,当写入数据时,数据中的所有为0的数据位会将闪存中对应位置的1置为0,而数据中所有为1的数据位将不会影响扇区中对应的1,即扇区中的数据位,可以被从1置为0,但是不可以被从0置为1(除非执行擦除操作)。
郑文静、李明强、舒继武等所写的“Flash存储技术”[见“计算机研究与发展”杂志,2010,47(4):716-726]一文中指出,跨扇区存储数据时产生的扇区合并操作,由于涉及数据复制、扇区擦除等耗时耗能操作,还会降低可靠性,已经被认为是闪存存储系统设计时的瓶颈。同时,针对其他存储介质(如磁盘等)设计的B树和B+树等数据结构,在闪存介质中性能急剧下降,如何针对闪存介质设计高性能的数据结构或数据检索方法,也是亟待解决的问题。
现有方法在闪存介质检索存储数据时检索效率与存储效率不能兼顾。
删除数据时,现有方法,查找该数据所在的扇区,将该扇区中除该数据以外的数据读出,擦除该扇区,将读出的结果写会该扇区,操作复杂低效,内存消耗大。
擦写数据时,现有方法,一种方式是以追加方式存储新数据,另一种方式是将某个扇区的已有数据与新数据排序,再擦除该扇区,再将排序结果写入该扇区。前者的存储速度快,但是检索速度慢;后者的存储速度慢,但是检索速度快。
查询数据时,现有方法,对于以追加方式存储新数据而言,只能顺序查找,复杂度为线性增长,复杂度高;对于以排序方式存储新数据而言,可以使用二分查找,复杂度为对数增长,复杂度低。
跨扇区存储数据时,如果某扇区已满,现有方法,对于以追加方式存储新数据而言,可以随机找一个未满的扇区,存放新数据,效率高;对于以排序方式存储新数据而言,为将新数据存储到正确位置,需要擦除并重新写入该扇区之后全部已存储数据扇区的数据,效率极其低下。
发明内容
针对现有技术的不足,本发明提出了一种基于未知长度二分查找的闪存数据检索存储的方法,它是一种基于位图和未知长度二分查找的闪存介质存储检索易变数据的高效方法,以解决现有闪存介质存储检索易变数据时存储效率与检索效率不能兼顾的问题。本发明使用位图,标示数据的有效性,进而实现高效的删除操作;使用负载因子,决定各扇区的负载百分比,进而解决以排序方式存储数据导致的存储速度慢的问题;使用未知长度二分查找,解决对未知长度的有序序列中的高效数据检索;使用擦写距离,解决跨扇区存储数据时,由于某扇区满而导致的极低效的数据移动问题。
本发明的技术方案如下:
一种基于未知长度二分查找的闪存数据检索存储的方法,是利用单片机控制系统实现的,该系统包括单片机、闪存存储芯片、查询生成器、报警器、上位机,上位机通过RS-485连接单片机,单片机通过SPI连接闪存存储芯片,单片机通过SPI或RS-232连接查询生成器,单片机通过三极管放大器和继电器连接报警器;查询生成器用于向单片机输入待查询的数据,当待查询数据在闪存存储芯片中不存在时,报警器报警,上位机将变更的数据发送至单片机,单片机负责将数据变更反映到闪存存储芯片中;该方法分作6步,前3步提供设定及计算得到的基本参数,后3步分别进行不同的操作以实现3组不同的功能,该方法具体步骤如下:
1)各扇区的容量为Capacity,负载因子为LoadFactor,扇区数量为SectorCount,扇区从0开始编号;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东大学,未经山东大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310015153.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:多级过滤式污水回收再生系统
- 下一篇:一种太阳能自动污水处理装置