判定Flash扇区数据写入异常的方法、装置、存储介质和终端设备与流程

文档序号:37718385发布日期:2024-04-23 11:51阅读:13来源:国知局
判定Flash扇区数据写入异常的方法、装置、存储介质和终端设备与流程

本发明属于flash存储,尤其是涉及一种判定flash扇区数据写入异常的方法、装置、存储介质和终端设备。


背景技术:

1、flash存储器是使用半导体技术存储二进制数据的一种存储器,属于非易失存储器。flash存储器使用一个双门极的mosfet器件作为一个存储单元来存储一个二进制位数据,且支持读、写、擦除操作。flash存储器使用扇区来管理其存储单元,一定数量的存储单元构成一个扇区,一定数量的扇区构成了flash存储器,比如32m字节的en25qx256a由8192个扇区构成,每个扇区由4k字节的存储单元构成。

2、flash存储器主要分两种:nor flash/nand flash。nor flash存储器具有读取速度快、支持随机访问的特点,因此在嵌入式系统中被用于存储程序固件。nand flash存储器具有高密度、低成本、写入速度快的特点,通常用于大量数据的存储。flash存储器提供了两种用来实现数据写入的命令:擦除命令/编程命令。其中擦除命令仅支持对指定区域所有位的写1操作,且扇区为其所支持的最小擦除单位。编程命令仅支持对指定区域内指定的位写0操作。因此,要想将数据写入扇区,需要基于这两个命令来执行特定的<扇区写入过程>,且该过程的执行需要完整,即要么不执行,要么开始后中途不能结束。如果未被完整执行,将会导致<扇区数据丢失>,丢失的数据不仅包括需要新更新的数据,还有扇区内原有的其他数据。这种情况很容易发生,因为flash的擦除命令/编程命令的执行均需要时间,往往需要几十或几百毫秒,如果期间发生异常掉电或程序执行异常,将会导致<扇区数据丢失>。

3、为解决因<扇区写入过程>不完整导致的<扇区数据丢失>的问题,首先要能够检错,即要能够识别扇区是否存在<扇区写入过程>执行不完整的问题。

4、为了解决“能够识别扇区是否存在<扇区写入过程>执行不完整”这个问题,现有的方法主要通过对数据校验进行解决,数据源会使用特定校验算法计算出一个校验值,将校验值和数据一起存入扇区。读取的时候,使用相同算法再次计算校验值。如果存储时发生了<扇区写入过程>不完整问题,则会导致计算校验值和存储校验值的不匹配,通过这种方式来识别扇区在写入过程是否存在执行不完整的问题。

5、现有常用的校验算法有:

6、奇偶算法:使用数据中0或1的奇/偶数作为校验值;

7、校验和算法:将所有数据相加得到的和就是校验值;

8、crc(cycl ic redundancy check,循环冗余校验)算法:利用多项式结合除法及余数的原理进行错误侦测;

9、ecc算法(error correct ion code,错误校正码):对存储器的数据进行完整性检查和纠正,基于二分法原理的奇偶校验;

10、md5算法(message-digest algori thm 5,信息-摘要算法5):校验具有不可逆性,适合用于信息加密。

11、以上基于算法的检错方式,均可以用于扇区数据的检错,但是,以上方式均存在一定的缺陷,例如,奇偶算法容易适用场合有限,其余几种算法则均需要完成对所有数据的读取操作,占用系统存储资源,且检错过程需要完成特定校验算法,占用系统计算资源,检错能力越强的算法需要占用计算资源越多。


技术实现思路

1、本发明的目的是针对上述问题,提供一种判定flash扇区数据写入异常的方法、装置、存储介质和终端设备,能够用于识别扇区前次是否存在扇区写入过程执行不完整的问题,而且不需要占用系统资源进行扇区所有数据的读取和计算操作。

2、为达到上述目的,本发明采用了下列技术方案:

3、一种判定flash扇区数据写入异常的方法,该方法包括:

4、执行扇区数据写入,其中,所述执行扇区数据写入包括:依次在扇区首字节写入0值,写入扇区其他数据,在扇区末字节写入0值;

5、读取扇区首末字节,判断首末字节是否为0;

6、若扇区首末字节不全为0,则判定相应扇区发生了数据写入异常的情况。

7、上述异常识别过程可以是在本次执行数据写入过程中同步进行,或者本次执行数据写入操作结束后即刻进行数据写入异常判定,或者基于触发条件,在本次执行数据写入操作结束后的某个时刻进行写入过程异常判定,具体不在此限定。

8、在上述的判定flash扇区数据写入异常的方法判定flash扇区数据写入异常的方法中,所述执行扇区数据写入前,还包括,执行扇区数据擦除。

9、在上述的判定flash扇区数据写入异常的方法判定flash扇区数据写入异常的方法中,所述执行扇区数据擦除,包括执行扇区数据擦除命令以使相应扇区的所有字节均为1。

10、在上述的判定flash扇区数据写入异常的方法判定flash扇区数据写入异常的方法中,所述执行扇区数据擦除过程中,扇区首位已被擦除为1,若此时操作被中断,将检测到扇区首字节不为0,即判定相应扇区发生了数据写入异常的情况。

11、在上述的判定flash扇区数据写入异常的方法判定flash扇区数据写入异常的方法中,所述执行扇区数据擦除后,扇区首位和末位均被擦除为1,若此时操作被中断,将检测到扇区首末字节均不为0,即判定相应扇区发生了数据写入异常的情况。

12、在上述的判定flash扇区数据写入异常的方法判定flash扇区数据写入异常的方法中,所述执行扇区数据写入后,扇区首位被写为0,若此时操作被中断,将检测到扇区末字节不为0,即判定相应扇区发生了数据写入异常的情况。

13、在上述的判定flash扇区数据写入异常的方法判定flash扇区数据写入异常的方法中,所述读取扇区首末字节,若扇区首位写为0,末位写为0,将检测到扇区首末字节均为0,即判定相应扇区写入过程正常。

14、在上述的判定flash扇区数据写入异常的方法判定flash扇区数据写入异常的方法中,所述执行扇区数据写入操作前,对本次数据写入操作所涉及到扇区的前次写入过程进行异常判定。

15、一种用于执行上述方法的装置,包括:

16、写入模块,用于执行扇区数据写入,且所述执行扇区数据写入包括:依次在扇区首字节写入0值,写入扇区其他数据,在扇区末字节写入0值;

17、异常识别模块,用于读取扇区首末字节,判断首末字节是否为0;若扇区首末字节不全为0,则判定相应扇区发生了数据写入异常的情况。

18、一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述步骤。

19、一种终端设备,包括:处理器、存储器

20、所述处理器用于执行存储于存储器中的一个或者多个程序,以实现上述步骤;

21、所述存储器用于存储可被所述处理器执行的一个或多个程序。

22、本发明的优点在于:

23、1、实现原理简单,基于该原理,在扇区写入时通过特定的写入步骤,在扇区内的特定位置写入特定的值来达到异常判定的目的,实现了突出的效果;

24、2、本方案通过简单的方法实现了扇区写入过程异常的判定,相较于已有的方法都更简单且易于实现;

25、3、只需要在每个扇区的首末位写0,占用的存储资源非常的少;

26、4、该方法实现异常判定目的只需要通过识别首末位是否为0即可,无需执行额外的计算,不会占用计算资源,且执行效率高。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1