发明名称 一种在闪存上存取数据的系统及方法
摘要 一种在闪存上存取数据的方法,包括步骤:a)划分闪存,将闪存分成块,每块在首页的一字节存储有关块擦除次数信息的磨损计数;再将块分成页,每页在起始字节存储页占用标志;为顺序存储的每一数据副本安置一经过校验的有效索引,以存储副本的页地址及长度信息;b)初始化,据块磨损计数确定头、尾块的位置,再据头或尾块的磨损计数确定系统磨损计数;c)在闪存上写入或读取数据,据尾块状况分配空页,并将副本与索引一起顺序写入该页中;或据尾块位置找到有效索引,并据此读取副本。本方法适于NOR FLASH和NAND FLASH,通过磨损计数实现磨损平衡,并通过对副本索引的校验实现掉电保护。
申请公布号 CN100555246C 申请公布日期 2009.10.28
申请号 CN200710161524.9 申请日期 2007.09.24
申请人 中兴通讯股份有限公司 发明人 朱晓斌;侯建文;廖粤东
分类号 G06F12/06(2006.01)I 主分类号 G06F12/06(2006.01)I
代理机构 北京安信方达知识产权代理有限公司 代理人 龙 洪;霍育栋
主权项 1、一种在闪存上存取数据的系统,包括分别与所述闪存连接的闪存结构划分模块和初始化模块,以及分别与所述初始化模块连接的数据写入模块和数据读取模块;其中:所述闪存结构划分模块,用于将所述闪存划分为多个存储块,作为擦除操作的基本单位,再将所述存储块划分成多个存储页,作为每次写入操作的基本单位,并在其中第一存储页内的一个固定位置保存所述存储块的磨损计数;以及在所述存储页起始的一或多个存储单元内保存所述存储页的占用标志;为顺序存储在所述闪存上的每一个数据副本安置一索引,用以存储所述副本占用的页地址以及所述副本的长度信息;所述初始化模块,用于对所述闪存进行初始化操作,即根据所述闪存上所述存储块的磨损计数确定所述头块和所述尾块的位置,再根据所述头块或所述尾块的磨损计数确定所述系统磨损计数;具体地:当所述闪存不存在空块,以尾块的磨损计数为所述系统磨损计数;其中:当存在两个相邻存储块磨损计数变小的分界处时,所述分界处前面的存储块为所述尾块,所述分界处后面的存储块为所述头块;当不存在所述分界处,则以所述最后一个存储块为所述尾块,以所述第一个存储块为所述头块;当所述闪存存在空块,将所述闪存的第一个空块作为所述尾块,若所述尾块后的存储块仍为空块,则所述闪存的第一个存储块为所述头块,所述系统磨损计数为1;若所述尾块后的存储块不为空块:当所述空块不是最后一个存储块,则所述空块后的存储块为所述头块,该头块的磨损计数加1即为所述系统磨损计数;当所述空块是最后一个存储块,则所述第一个存储块为所述头块,该头块的磨损计数即为系统磨损计数;所述数据写入模块,用于根据所述闪存当前尾块状况为所述数据副本分配空页,并将所述数据副本与所述索引一起顺序写入分配的所述空页中;所述分配空页即当所述尾块不是满块时,将尾页作为分配的空页;当尾块是满块时,申请分配一个空块,并将分配的空块中的第一页作为分配的空页;所述数据读取模块,用于根据所述闪存当前尾块位置找到要读取的数据副本的索引,并根据所述索引中的信息读取所述数据副本。
地址 518057广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法律部