【技术实现步骤摘要】
本专利技术涉及数字信息存储领域,尤其涉及一种在闪存上存取数据的系统 及方法。
技术介绍
随着信息技术的发展,内置处理器的智能设备越来越多,半导体技术的进步又使闪存(FLASH)的价格不断降低,而智能设备使用FLASH来存储 数据则成为一种自然而然的趋势。目前的FLASH主要分为NOR FLASH和NAND FLASH两种,两者都 以块为单位进行擦除,但NORFLASH能够以字节为单位进行写入,且其内 的数据可以直接读取;NAND FLASH则将一块分为多个页并以页为单位进 行写入,对数据的任何访问都必须通过专门的接口。由于FLASH这些特性, 在其上存储数据需要进行有针对性的设计。FLASH块的擦除寿命有限,使用时必须保证各块的擦除次数一致或比 较接近,这称之为磨损平衡;对于很多智能设备来说,软件运行时的意外掉 电是很正常的,有必要实现对意外掉电时的数据保护;另夕卜,很多智能设备 的处理器能力、存储器容量等资源有限,还要求代码(FLASH的管理软件 或文件系统的程序代码)尺寸(即长度)能够尽量小一点。JFFS (The Journalling Flash File System:日志FLASH文件系统)是一 个面向FLASH设计的文件系统,具备通用文件系统的所有功能,但其采用 曰志的形式存储数据,随着修改次数的增长,加载时间会越来越长,影响整 个设备的启动速度。YAFFS (Yet Another Flash File System:另一种FLASH 文件系统)具有和JFFS同样的功能,但其专门针对NAND FLASH设计, 无法应用于NORFLASH。 ...
【技术保护点】
一种在闪存上存取数据的系统,包括分别与所述闪存连接的闪存结构划分模块和初始化模块,以及分别与所述初始化模块连接的数据写入模块和数据读取模块;其中:所述闪存结构划分模块,用于将所述闪存划分成多个存储块,作为擦除操作的基本单位,并在其中 第一页内保存磨损计数;将所述存储块再划分成多个存储页,作为写入操作的基本单位,并在所述存储页起始的一或多个存储单元内保存所述存储页的占用标志;为顺序存储在所述闪存上的每一个数据副本安置一索引;所述初始化模块,用于对所述闪存进行初始化 操作,即根据所述闪存上所述存储块的磨损计数确定所述头块和所述尾块的位置,再根据所述头块或所述尾块的磨损计数确定所述系统磨损计数;所述数据写入模块,用于根据所述闪存当前尾块状况为所述数据副本分配空页,并将所述数据副本与所述索引一起顺序 写入分配的所述空页中;所述数据读取模块,用于根据所述闪存当前尾块位置找到要读取的数据副本的索引,并根据所述索引中的信息读取所述数据副本。
【技术特征摘要】
1、一种在闪存上存取数据的系统,包括分别与所述闪存连接的闪存结构划分模块和初始化模块,以及分别与所述初始化模块连接的数据写入模块和数据读取模块;其中所述闪存结构划分模块,用于将所述闪存划分成多个存储块,作为擦除操作的基本单位,并在其中第一页内保存磨损计数;将所述存储块再划分成多个存储页,作为写入操作的基本单位,并在所述存储页起始的一或多个存储单元内保存所述存储页的占用标志;为顺序存储在所述闪存上的每一个数据副本安置一索引;所述初始化模块,用于对所述闪存进行初始化操作,即根据所述闪存上所述存储块的磨损计数确定所述头块和所述尾块的位置,再根据所述头块或所述尾块的磨损计数确定所述系统磨损计数;所述数据写入模块,用于根据所述闪存当前尾块状况为所述数据副本分配空页,并将所述数据副本与所述索引一起顺序写入分配的所述空页中;所述数据读取模块,用于根据所述闪存当前尾块位置找到要读取的数据副本的索引,并根据所述索引中的信息读取所述数据副本。2、 按照权刊要求1所述的系统,其特征在于,所述初始化模块将所述闪存的第一个空块作为所述尾块;若所述第一个空块后的存储块 仍为空块,则第一个存储块为所述头块,所述系统磨损计数为1;若所述第 一个空块后的存储块不为空块,分两种情况当所述空块不是最后一个存储 块,则所述空块后的存储块为所述头块,该头块的磨损计数加1即为所述系 统磨损计数;而当所述空块是最后一个存储块,则所述第一个存储块为所述 头块,该头块的磨损计数即为系统磨损计数;或者,所述闪存不存在空块,以尾块的磨损计数为所述系统磨损计数; 当存在两个相邻存储块磨损计数变小的分界处时,所述分界处前面的存储块 为所述尾块,所述分界处后面的存储块为所述头块;若不存在所述分界处, 则以所述最后一个存储块为所述尾块,以所述第一个存储块为所述头块。3、 按照权利要求1或2所述的系统,其特征在于,所述数据写入模块进一步包括依次连接的副本分段写入模块、页分配模块及块分配模块,还包括与副本分段写入模块连接的副本索引生成及校验模块,其中所述副本分段写入模块与所述闪存连接,用于按照所述存储页的容量将 所述数据副本内容切分成若干段,然后向所述页分配模块申请为每个段分配 一个空页,将所述段中内容连同所述系统磨损计数或所述占用标志一起写入 所述空页;并保存第 一段首字节和最后 一段尾字节所占用的页的地址信息, 或保存所述第一段首字节占用的页地址和所述副本的长度信息;在所述副本 索引生成及校验模块生成副本索引及其校验信息后,将所述副本索引及其校 验信息写入又分配的一个空页中;所述页分配模块,与所述初始化模块连接,用于为所述副本分段写入模 块顺序分配空页,即当所述尾块不是满块时,将尾页作为分配的空页;当尾 块是满块时,向所述块分配模块申请分配一个空块,并将所述分配的空块中 的第一页作为分配的空页;所述块分配模块,与所述初始化模块连接,用于在所述页分配模块申请 空块分配时,为其顺序分配一个存储块即当所述尾块不是最后一个存储块, 将其后的一个存储块作为分配的块;当所述尾块是所述最后一个存储块,则 将第一个存储块作为分配的块,并将所述系统磨损计数加1;若所述分配的 块是当前的头块,则将所述头块移动到所述分配的块的下一个存储块;最后 将所述分配的块进行纟察除后作为新的尾块分配出去;所述副本索引生成及校验模块,用于根据所述副本的首字节占用的页地 址及所述副本的长度信息生成关于所述副本的所述索引,或根据所述副本的 首字节占用的页地址及其最后字节占用的页地址信息生成关于所述副本的 所述索引;同时,对所述副本的索引进行校验以形成有效索引,并据此生成 校验信息,随同所述副本索引 一起传给所述副本分段写入模块。4、 按照权利要求3所述的系统,其特征在于,所述数据读取模块进一 步包括依次连接的索引搜索模块、索引读取模块以及副本读取模块,其中所述索引搜索模块,用于从所述尾块开始向头块搜索,遍历其中每个存 储页,直至找到第一个所述有效索引为所述要读取的数据副本的索引;所述索引读取模块,用于从所述有效索引中读取最新的数据副本的索 引,获取所述副本首字节占用的页地址及所述副本的长度信息,或者获取所述副本首字节占用的页地址和其最后字节占用的页地址信息;所述副本读取模块,与所述闪存连接,用于根据获取的所述索引中的信 息,从对应的存储页中读取副本的内容。5、 按照权利要求4所述的系统,其特征在于,所述索引搜索模块,如 果一直搜索到头块都没有找到所述有效索引,则报告读取失败;或者,如果 读取到的所述副本占用的第 一个页地址超出了当前头块到尾块覆盖的范围, 则报告读取失败。6、 一种在闪存上存取数据的方法,包括如下步骤(a) 划分所述闪存,确定翁:据结构,即将所述闪存划分为多个存储块,作为每次擦除操作的基本单位;每块在 第 一 页内分配一或多个字节用于磨损计数,存储有关所述存储块擦除次数的 信息;再将存储块进一步划分成多个存储页,作为每次写入操作的基本单位; 每页使用起始的字节单元作为该页的占用标志,用以识别该页是否已被写入 数据;为顺序存储在所述闪存上的每一个数据副本安置一索引;(b) 对系统进行初始化,即根据所述闪存上所述存储块的...
【专利技术属性】
技术研发人员:朱晓斌,侯建文,廖粤东,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:94[中国|深圳]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。