一种基于NorFlash芯片的数据擦写方法及系统技术方案

技术编号:18444779 阅读:19 留言:0更新日期:2018-07-14 10:19
本申请公开了一种基于NorFlash芯片的数据擦写方法,所述数据擦写方法包括:当检测到需要向目标物理子扇区写入的待写入数据时,查询目标物理子扇区的第一擦写情况,并计算所有物理子扇区的第二擦写情况;基于数理统计根据第一擦写情况和第二擦写情况判断目标物理子扇区是否符合预设条件;若是,则将待写入数据写入目标物理子扇区;若否,则将所有物理子扇区中实际擦写次数最少的物理子扇区设置为最佳物理子扇区,并将待写入数据写入最佳物理子扇区。本方法能够实现NorFlash芯片中各个扇区的均衡擦写,延长NorFlash芯片的使用寿命。本申请还公开了一种基于NorFlash芯片的数据擦写系统,具有以上有益效果。

A data rewriting method and system based on NorFlash chip

The present application discloses a data erasure method based on a NorFlash chip. The data erasing method includes: when the data to be written to the target physical sector is detected, the first erasure of the target physical sector is querying and the second erasure of all the physical subsectors is calculated; based on the mathematical statistics root. According to the first erasure situation and the second erasure condition, determine whether the target physical sector is in accordance with the preset condition; if, the data will be written to the target physical sector. If not, the physical subsector of the least actual erasure times in all the physical sub sectors is set to the best physical sub sector and will be written to the data to be written. The best physical sector. This method can realize the balanced erase of each sector in the NorFlash chip and extend the life of the NorFlash chip. The application also discloses a data erasure system based on NorFlash chip, which has the above beneficial effects.

【技术实现步骤摘要】
一种基于NorFlash芯片的数据擦写方法及系统
本专利技术涉及数据存储领域,特别涉及一种基于NorFlash芯片的数据擦写方法及系统。
技术介绍
因NorFlash芯片允许片内直接运行应用程序,较高的传输效率和成本效益及掉电数据不丢失的特性,因此很多嵌入式产品将NorFlash芯片作为应用程序和重要数据的存储设备。根据flash的编程原理都是只能将1写为0,而不能将0写为1,所以在flash编程之前都需要首先擦除对应存储单元的数据,目前flash芯片提供的擦除方式包括扇区擦除(SectorErase)和片擦除(ChipErase)两种,因此若向某个flash存储单元中写入数据之前,必须首先将该存储单元所在的扇区进行擦除,擦除之后再将需要写入的数据逐一写入该扇区。现有技术中,通过记录扇区擦写时标实现各扇区均衡的方法来进行NorFlash芯片的数据擦写,但是这种方法在针对当系统发生回向校时的情况,极易造成扇区内记录的擦写时标的不准确性,发生回向校时跨度比较大的时候,使得某扇区的擦写过于频繁,违背了扇区均衡擦写的初衷,若发生回向校时更新每个扇区时标,需要擦写每个扇区,消耗时间比较长,此时一旦系统发生异常断电,极易造成flash数据丢失。因此,如何实现NorFlash芯片中各个扇区的均衡擦写,延长NorFlash芯片的使用寿命是本领域技术人员目前需要解决的技术问题。
技术实现思路
本申请的目的是提供一种基于NorFlash芯片的数据擦写方法及系统能够实现NorFlash芯片中各个扇区的均衡擦写,延长NorFlash芯片的使用寿命。为解决上述技术问题,本申请提供一种基于NorFlash芯片的数据擦写方法,该数据擦写方法包括:当检测到需要向目标物理子扇区写入的待写入数据时,查询所述目标物理子扇区的第一擦写情况,并计算所有物理子扇区的第二擦写情况;其中,所述第一擦写情况包括所述目标物理子扇区的逻辑写入次数和实际写入次数,所述第二擦写情况包括所有所述物理子扇区的逻辑写入次数的平均值和实际写入次数的平均值、均方根误差、最大值和最小值;基于数理统计根据所述第一擦写情况和所述第二擦写情况判断所述目标物理子扇区是否符合预设条件;若是,则将所述待写入数据写入所述目标物理子扇区;若否,则将所有所述物理子扇区中实际擦写次数最少的物理子扇区设置为最佳物理子扇区,并将所述待写入数据写入所述最佳物理子扇区。可选的,基于数理统计根据所述第一擦写情况和所述第二擦写情况判断所述目标物理子扇区是否符合预设条件包括:判断SquareError是否大于误差限制且所述SquareError与EraseMAX和/或EraseMIN之间的差值大于最大允许不均匀度,得到第一判断结果;其中,所述SquareError、所述EraseMAX和所述EraseMIN分别为所有所述物理子扇区的实际写入次数的均方根误差、最大值和最小值;判断EraseTimes是否等于所述EraseMAX,得到第二判断结果;其中,所述EraseTimes为所述目标物理子扇区的实际写入次数;判断是否所述EraseTimes大于EraseAVR且LogicTimes大于LogicAVril,得到第三判断结果;其中所述EraseAVR和LogicAVril分别为所有所述物理子扇区的实际写入次数的平均值和逻辑写入次数的平均值,LogicTimes为所述目标物理子扇区的逻辑写入次数;根据所述第一判断结果、所述第二判断结果和所述第三判断结果判断所述目标物理子扇区是否符合预设条件;其中,所述预设条件为所述第一判断结果、所述第二判断结果和所述第三判断结果均为是。可选的,在查询所述目标物理子扇区的第一擦写情况,并计算所有物理子扇区的第二擦写情况之前,还包括:按照预设规则对所述NorFlash芯片进行分区操作;其中,分区后的NorFlash芯片包括用于写入数据的DATA扇区和用于管理所述DATA扇区的所述MANAGE扇区,所述DATA扇区包括逻辑子扇区与所述物理子扇区;所述MANAGE扇区包括用于统计所述DATA扇区的逻辑写入次数的LOGIC_STATIS子扇区、用于统计所述DATA扇区实际写入次数的REAL_ERASE_STATIS子扇区和用于存储所述逻辑扇区与所述物理子扇区之间的映射关系的SECTOR_MAP子扇区;可选的,在查询所述目标物理子扇区的第一擦写情况,并计算所有物理子扇区的第二擦写情况之前,还包括:判断所述NorFlash芯片是否为第一次使用;若是,则对所述MANAGE扇区执行初始化操作。可选的,对所述MANAGE扇区执行初始化操作包括:将所述LOGIC_STATIS子扇区中记录的逻辑写入次数初始化为0;将所述REAL_ERASE_STATIS子扇区中记录的实际擦写次数初始化为0;更新所述SECTOR_MAP子扇区中记录的映射关系,以使所述DATA扇区的每个子扇区的逻辑编号与物理编号一一对应。可选的,将所述待写入数据写入所述目标物理子扇区包括:将所述目标物理子扇区、所述LOGIC_STATIS子扇区、所述REAL_ERASE_STATIS子扇区和所述SECTOR_MAP子扇区中的原有数据和待写入数据备份至临时文件夹;擦除所述目标物理子扇区、所述LOGIC_STATIS子扇区、所述REAL_ERASE_STATIS子扇区和所述SECTOR_MAP子扇区中的所述原有数据;将所述临时文件夹中的所述待写入数据写入所述目标物理子扇区,并更新所述目标物理子扇区、所述LOGIC_STATIS子扇区、所述REAL_ERASE_STATIS子扇区和所述SECTOR_MAP子扇区中的数据。可选的,将所述DATA扇区中实际擦写次数最少的物理子扇区设置为最佳物理子扇区,并将所述待写入数据写入所述最佳物理子扇区包括:将所述DATA扇区中实际擦写次数最少的物理子扇区设置为最佳物理子扇区;将所述最佳物理子扇区、所述目标物理子扇区、所述LOGIC_STATIS子扇区、所述REAL_ERASE_STATIS子扇区和所述SECTOR_MAP子扇区中的原有数据和待写入数据备份至临时文件夹;擦除所述最佳物理子扇区、所述目标物理子扇区、所述LOGIC_STATIS子扇区、所述REAL_ERASE_STATIS子扇区和所述SECTOR_MAP子扇区中的所述原有数据;将所述最佳物理子扇区对应的逻辑扇区映射关系转移至所述目标物理子扇区对应的逻辑扇区,并将所述目标物理子扇区对应的逻辑扇区中的映射关系转移至所述最佳物理子扇区对应的逻辑扇区;将所述临时文件夹中的所述待写入数据写入所述最佳物理子扇区,并更新所述最佳物理子扇区、所述LOGIC_STATIS子扇区、所述REAL_ERASE_STATIS子扇区和所述SECTOR_MAP子扇区中的数据。可选的,更新所述LOGIC_STATIS子扇区、所述REAL_ERASE_STATIS子扇区和所述SECTOR_MAP子扇区中的数据之后,还包括:删除所述临时文件夹中的全部数据。可选的,还包括:将所述LOGIC_STATIS子扇区、所述REAL_ERASE_STATIS子扇区和所述SECTOR_MAP子扇区划分为预设数量个存储单元;将所述LOGIC_STATIS子扇区、所述REAL_ERASE_本文档来自技高网...

【技术保护点】
1.一种基于NorFlash芯片的数据擦写方法,其特征在于,包括:当检测到需要向目标物理子扇区写入的待写入数据时,查询所述目标物理子扇区的第一擦写情况,并计算所有物理子扇区的第二擦写情况;其中,所述第一擦写情况包括所述目标物理子扇区的逻辑写入次数和实际写入次数,所述第二擦写情况包括所有所述物理子扇区的逻辑写入次数的平均值和实际写入次数的平均值、均方根误差、最大值和最小值;基于数理统计根据所述第一擦写情况和所述第二擦写情况判断所述目标物理子扇区是否符合预设条件;若是,则将所述待写入数据写入所述目标物理子扇区;若否,则将所有所述物理子扇区中实际擦写次数最少的物理子扇区设置为最佳物理子扇区,并将所述待写入数据写入所述最佳物理子扇区。

【技术特征摘要】
1.一种基于NorFlash芯片的数据擦写方法,其特征在于,包括:当检测到需要向目标物理子扇区写入的待写入数据时,查询所述目标物理子扇区的第一擦写情况,并计算所有物理子扇区的第二擦写情况;其中,所述第一擦写情况包括所述目标物理子扇区的逻辑写入次数和实际写入次数,所述第二擦写情况包括所有所述物理子扇区的逻辑写入次数的平均值和实际写入次数的平均值、均方根误差、最大值和最小值;基于数理统计根据所述第一擦写情况和所述第二擦写情况判断所述目标物理子扇区是否符合预设条件;若是,则将所述待写入数据写入所述目标物理子扇区;若否,则将所有所述物理子扇区中实际擦写次数最少的物理子扇区设置为最佳物理子扇区,并将所述待写入数据写入所述最佳物理子扇区。2.根据权利要求1所述数据擦写方法,其特征在于,基于数理统计根据所述第一擦写情况和所述第二擦写情况判断所述目标物理子扇区是否符合预设条件包括:判断SquareError是否大于误差限制且所述SquareError与EraseMAX和/或EraseMIN之间的差值大于最大允许不均匀度,得到第一判断结果;其中,所述SquareError、所述EraseMAX和所述EraseMIN分别为所有所述物理子扇区的实际写入次数的均方根误差、最大值和最小值;判断EraseTimes是否等于所述EraseMAX,得到第二判断结果;其中,所述EraseTimes为所述目标物理子扇区的实际写入次数;判断是否所述EraseTimes大于EraseAVR且LogicTimes大于LogicAVril,得到第三判断结果;其中,所述EraseAVR和LogicAVril分别为所有所述物理子扇区的实际写入次数的平均值和逻辑写入次数的平均值,LogicTimes为所述目标物理子扇区的逻辑写入次数;根据所述第一判断结果、所述第二判断结果和所述第三判断结果判断所述目标物理子扇区是否符合预设条件;其中,所述预设条件为所述第一判断结果、所述第二判断结果和所述第三判断结果均为是。3.根据权利要求1所述数据擦写方法,其特征在于,在查询所述目标物理子扇区的第一擦写情况,并计算所有物理子扇区的第二擦写情况之前,还包括:按照预设规则对所述NorFlash芯片进行分区操作;其中,分区后的NorFlash芯片包括用于写入数据的DATA扇区和用于管理所述DATA扇区的所述MANAGE扇区,所述DATA扇区包括逻辑子扇区与所述物理子扇区;所述MANAGE扇区包括用于统计所述DATA扇区的逻辑写入次数的LOGIC_STATIS子扇区、用于统计所述DATA扇区实际写入次数的REAL_ERASE_STATIS子扇区和用于存储所述逻辑扇区与所述物理子扇区之间的映射关系的SECTOR_MAP子扇区。4.根据权利要求3所述数据擦写方法,其特征在于,在查询所述目标物理子扇区的第一擦写情况,并计算所有物理子扇区的第二擦写情况之前,还包括:判断所述NorFlash芯片是否为第一次使用;若是,则对所述MANAGE扇区执行初始化操作。5.根据权利要求4所述数据擦写方法,其特征在于,对所述MANAGE扇区执行初始化操作包括:将所述LOGIC_STATIS子扇区中记录的逻辑写入次数初始化为0;将所述REAL_ERASE_STATIS子扇区中记录的实际擦写次数初始化为0;更新所述SECTOR_MAP子扇区中记录的映射关系,以使所述DATA扇区的每个子扇区的逻辑编号与物理编号一一对应。6.根据权利要求3所述数据擦写方法,其特...

【专利技术属性】
技术研发人员:候志立
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1