一种提高数据写入完整性的方法_3

文档序号:8209004阅读:来源:国知局
功擦除首页时,还可以为:将当前页的地址作为当前坏页地址, 对当前坏页地址执行坏块处理操作,返回重新擦除首页;
[0069] 擦除尾页之后,还包括:判断是否成功擦除尾页,是则将首备份页地址作为待写入 的首页地址,用首页地址更新RAM页号表中的首备份页地址,用待写入的首页地址更新RAM 页号表中的首页地址,执行步骤bl8;否则报错,结束;其中,判断未成功擦除尾页时,还可 以为:将当前页的地址作为当前坏页地址,对当前坏页地址执行坏块处理操作,返回重新擦 除尾页;
[0070] 步骤bl8 :清除首备份页的掉电标识,将尾备份页地址作为待写入的尾页地址,用 尾页地址更新RAM页号表中的尾备份页地址,用待写入的尾页地址更新RAM页号表中的尾 页地址;
[0071] 本步骤中,清除首备份页的掉电标识之后,还包括:判断是否成功清除首备份页的 掉电标识,是则将尾备份页地址作为待写入的尾页地址,用尾页地址更新RAM页号表中的 尾备份页地址,用待写入的尾页地址更新RAM页号表中的尾页地址,执行步骤bl9;否则报 错,结束;其中,判断未成功清除首备份页的掉电标识时,还可以为:将当前页的地址作为 当前坏页地址,对当前坏页地址执行坏块处理操作,返回步骤bl8;
[0072] 步骤bl9 :清除尾备份页的掉电标识,结束;
[0073] 本步骤中,清除尾备份页的掉电标识之后,还包括:判断是否成功清除尾备份页的 掉电标识,是则结束;否则报错,结束;其中,判断未成功清除尾备份页的掉电标识时,还可 以为:将当前页的地址作为当前坏页地址,对当前坏页地址执行坏块处理操作,返回步骤 bl9 ;
[0074] 步骤b20 :将页数保存为3页,从RAM页号表中读取与首页页号对应的地址,作为 首页地址,根据首页地址从文件系统区中的数据区中查找首页,读取首页数据;
[0075] 具体地,将页数保存为3页,从RAM页号表中读取与首页页号对应的地址,作为首 页地址,从文件系统区中的数据区中查找首页地址对应的数据作为首页数据;
[0076] 例如:从RAM页号表中读取首页页号0对应的地址,将其作为首页地址,即首页地 址为:〇 ;
[0077] 从文件系统区中的数据区中查找首页地址0对应的数据,作为首页,读取到的首 页数据为:〇〇〇〇〇......0000 ;
[0078] 步骤b21 :根据首页偏移量、首页待写参数长度和首页地址,将待写参数写入首页 数据中;
[0079] 具体地,根据首页偏移量和首页地址,计算待写参数在首页中的起始地址,从待写 参数高位端开始获取长度与首页待写参数长度相同的数据,将其作为首页待写参数,从待 写参数在首页中的起始地址开始,将首页待写参数写入首页数据中。
[0080] 例如:以首页地址为0、首页偏移量为9、首页待写参数长度是500为例,计算得到 待写参数在首页中的起始地址为9,从首页数据的高位端开始获取长度与首页待写参数长 度相同的数据,将其作为首页待写参数,从首页数据中地址为9处开始写入首页待写参数, 写入首页待写参数之后的首页数据为:〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇〇6B8A......D4DF1DEF ;
[0081] 步骤b22 :将首页数据中的首页的掉电标识置位,将首页页号写入首页数据中,将 首备份页标识作为备份页标识;
[0082] 具体地,将首页数据中的首页的掉电标识置为0XFF00,将首页页号写入首页数据 中的第三个字节上,将首备份页标识作为备份页标识;优选地,首备份页标识为backl ;
[0083] 步骤b23 :根据页数和备份页标识从RAM页号表中获取未被使用的备份页地址,将 其作为首备份页地址,根据首备份页地址查找首备份页,将首页数据写入首备份页中;
[0084] 具体地,将页数和备份页标识作为参数,传给磨损平衡处理函数,获取磨损平衡处 理函数返回的未被使用的备份页地址,从文件系统的备份区中查找与未被使用的备份页地 址对应的首备份页,将首页数据写入首备份页中。
[0085] 例如:将页数3和备份页标识backl作为参数,传给磨损平衡处理函数,获取到磨 损平衡处理函数返回的未被使用的备份页地址为3072,从文件系统区中的备份区中查找 3072对应的首备份页,将首页数据写入首备份页中,写入数据之后的首备份页为:
[0086]
【主权项】
1. 一种提高数据写入完整性的方法,其特征在于,包括: 当设备上电进行数据恢复时,执行步骤S1 ; 步骤S1 ;获取每个页地址中的掉电标识和页号,将置位的掉电标识对应的页号和页地 址保存至第一缓存区中,记录掉电页数; 步骤S2 ;根据所述掉电页数判断是否存在掉电页,是则执行步骤S3 ;否则结束; 步骤S3;从所述第一缓存区中获取第一个页号作为当前页号,判断所述第一缓存区中 首页的掉电标识是否置位,是则执行步骤S4 ;否则执行步骤S6 ; 步骤S4 ;判断是否存在与所述当前页号相同的其他页,是则擦除当前页,执行步骤S5 ; 否则清除所述当前页的掉电标识,执行步骤S5 ; 步骤S5;更新所述当前页号,判断所述第一缓存区中是否存在所述更新后的当前页 号,是则返回步骤S4 ;否则结束; 步骤S6 ;判断是否存在与所述当前页号相同的其他页,是则擦除与所述当前页号相同 的其他页,执行步骤S7 ;否则清除所述当前页的掉电标识,执行步骤S7 ; 步骤S7 ;更新所述当前页号,判断所述第一缓存区中是否存在当前页号,是则返回步 骤S6;否则结束。
2. 如权利要求1所述的方法,其特征在于,所述设备上电时,还包括: 读取初始化标识,对所述初始化标识进行判断,如果所述初始化标识未置位,则进行 初始化操作,将所述初始化标识置位,执行步骤bl ;如果所述初始化标识置位,则执行步骤 S1 ; 步骤bl ;接收外部传入的参数,根据所述外部传入的参数计算首页页号、首页偏移量、 首页待写参数长度、尾页页号、尾页待写参数长度; 步骤b2 ;根据所述首页页号获取首页地址,根据所述首页地址查找首页,读取首页数 据,根据所述首页偏移量、所述首页地址和所述首页待写参数长度,从所述外部传入的参数 中的待写参数中获取首页待写参数,将所述首页待写参数写入所述首页数据中,将所述首 页数据中的首页的掉电标识置位,将所述首页页号写入所述首页数据中,根据预设的首备 份页标识获取首备份页地址,根据所述首备份页地址查找首备份页,将所述首页数据写入 所述首备份页中; 步骤b3 ;根据所述首页页号计算中间页页号,根据所述中间页页号获取中间页地址, 根据所述中间页地址查找中间页,读取中间页数据,根据所述首页待写参数长度和所述尾 页待写参数长度,从所述外部传入的参数中的待写参数中获取中间页待写参数,将所述中 间页待写参数写入所述中间页数据中,将所述中间页数据中的中间页的掉电标识置位,将 所述中间页页号写入所述中间页数据中,根据预设的中间备份页标识获取中间备份页地 址,根据所述中间备份页地址查找中间备份页,将所述中间页数据写入所述中间备份页 中; 步骤b4 ;根据所述尾页页号获取尾页地址,根据所述尾页地址查找尾页,读取尾页数 据,根据所述尾页待写参数长度,从所述外部传入的参数中的待写参数中获取尾页待写参 数,将所述尾页待写参数写入所述尾页数据中,将所述尾页数据中的尾页的掉电标识置位, 将所述尾页页号写入所述尾页数据中,根据预设的尾备份页标识获取尾备份页地址,根据 所述尾备份页地址查找尾备份页,将所述尾页数据写入所述尾备份页中; 步骤b5 ;擦除所述首页,擦除所述中间页,擦除所述尾页,将所述首备份页的地址作为 待写入的首页地址,用所述首页地址更新所述首备份页地址,用所述待写入的首页地址更 新所述首页地址,清除首备份页的掉电标识; 步骤b6 ;将所述中间备份页的地址作为待写入的中间页地址,用所述中间页地址更新 所述中间备份页地址,用所述待写入的中间页地址更新所述中间页地址,清除中间备份页 的掉电标识; 步骤b7 ;将所述尾备份页的地址作为待写
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1