CN117909130A - 判定Flash扇区数据写入异常的方法、装置、存储介质和终端设备 - Google Patents
判定Flash扇区数据写入异常的方法、装置、存储介质和终端设备 Download PDFInfo
- Publication number
- CN117909130A CN117909130A CN202410102205.4A CN202410102205A CN117909130A CN 117909130 A CN117909130 A CN 117909130A CN 202410102205 A CN202410102205 A CN 202410102205A CN 117909130 A CN117909130 A CN 117909130A
- Authority
- CN
- China
- Prior art keywords
- sector
- writing
- data
- byte
- last
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000005856 abnormality Effects 0.000 title claims abstract description 32
- 230000002159 abnormal effect Effects 0.000 claims abstract description 20
- 238000004364 calculation method Methods 0.000 abstract description 3
- 230000000694 effects Effects 0.000 abstract description 2
- 238000004422 calculation algorithm Methods 0.000 description 15
- 238000001514 detection method Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
本发明公开了一种判定Flash扇区数据写入异常的方法,该方法包括:执行扇区数据写入,其中,所述执行扇区数据写入包括:依次在扇区首字节写入0值,写入扇区其他数据,在扇区末字节写入0值;读取扇区首末字节,判断首末字节是否为0;若扇区首末字节不全为0,则判定相应扇区发生了数据写入异常的情况。本发明还公开了用于执行上述方法的装置、存储介质和终端设备。本发明通过简单的原理实现了突出的效果,如实现简单,占用存储资源少,不占用计算资源,执行效率高,判定准确等。
Description
技术领域
本发明属于flash存储技术领域,尤其是涉及一种判定Flash扇区数据写入异常的方法、装置、存储介质和终端设备。
背景技术
Flash存储器是使用半导体技术存储二进制数据的一种存储器,属于非易失存储器。Flash存储器使用一个双门极的MOSFET器件作为一个存储单元来存储一个二进制位数据,且支持读、写、擦除操作。Flash存储器使用扇区来管理其存储单元,一定数量的存储单元构成一个扇区,一定数量的扇区构成了Flash存储器,比如32M字节的EN25QX256A由8192个扇区构成,每个扇区由4K字节的存储单元构成。
Flash存储器主要分两种:Nor Flash/Nand Flash。Nor Flash存储器具有读取速度快、支持随机访问的特点,因此在嵌入式系统中被用于存储程序固件。Nand Flash存储器具有高密度、低成本、写入速度快的特点,通常用于大量数据的存储。Flash存储器提供了两种用来实现数据写入的命令:擦除命令/编程命令。其中擦除命令仅支持对指定区域所有位的写1操作,且扇区为其所支持的最小擦除单位。编程命令仅支持对指定区域内指定的位写0操作。因此,要想将数据写入扇区,需要基于这两个命令来执行特定的<扇区写入过程>,且该过程的执行需要完整,即要么不执行,要么开始后中途不能结束。如果未被完整执行,将会导致<扇区数据丢失>,丢失的数据不仅包括需要新更新的数据,还有扇区内原有的其他数据。这种情况很容易发生,因为Flash的擦除命令/编程命令的执行均需要时间,往往需要几十或几百毫秒,如果期间发生异常掉电或程序执行异常,将会导致<扇区数据丢失>。
为解决因<扇区写入过程>不完整导致的<扇区数据丢失>的问题,首先要能够检错,即要能够识别扇区是否存在<扇区写入过程>执行不完整的问题。
为了解决“能够识别扇区是否存在<扇区写入过程>执行不完整”这个问题,现有的方法主要通过对数据校验进行解决,数据源会使用特定校验算法计算出一个校验值,将校验值和数据一起存入扇区。读取的时候,使用相同算法再次计算校验值。如果存储时发生了<扇区写入过程>不完整问题,则会导致计算校验值和存储校验值的不匹配,通过这种方式来识别扇区在写入过程是否存在执行不完整的问题。
现有常用的校验算法有:
奇偶算法:使用数据中0或1的奇/偶数作为校验值;
校验和算法:将所有数据相加得到的和就是校验值;
CRC(cycl ic Redundancy Check,循环冗余校验)算法:利用多项式结合除法及余数的原理进行错误侦测;
ECC算法(Error Correct ion Code,错误校正码):对存储器的数据进行完整性检查和纠正,基于二分法原理的奇偶校验;
MD5算法(Message-Digest Algori thm 5,信息-摘要算法5):校验具有不可逆性,适合用于信息加密。
以上基于算法的检错方式,均可以用于扇区数据的检错,但是,以上方式均存在一定的缺陷,例如,奇偶算法容易适用场合有限,其余几种算法则均需要完成对所有数据的读取操作,占用系统存储资源,且检错过程需要完成特定校验算法,占用系统计算资源,检错能力越强的算法需要占用计算资源越多。
发明内容
本发明的目的是针对上述问题,提供一种判定Flash扇区数据写入异常的方法、装置、存储介质和终端设备,能够用于识别扇区前次是否存在扇区写入过程执行不完整的问题,而且不需要占用系统资源进行扇区所有数据的读取和计算操作。
为达到上述目的,本发明采用了下列技术方案:
一种判定Flash扇区数据写入异常的方法,该方法包括:
执行扇区数据写入,其中,所述执行扇区数据写入包括:依次在扇区首字节写入0值,写入扇区其他数据,在扇区末字节写入0值;
读取扇区首末字节,判断首末字节是否为0;
若扇区首末字节不全为0,则判定相应扇区发生了数据写入异常的情况。
上述异常识别过程可以是在本次执行数据写入过程中同步进行,或者本次执行数据写入操作结束后即刻进行数据写入异常判定,或者基于触发条件,在本次执行数据写入操作结束后的某个时刻进行写入过程异常判定,具体不在此限定。
在上述的判定Flash扇区数据写入异常的方法判定Flash扇区数据写入异常的方法中,所述执行扇区数据写入前,还包括,执行扇区数据擦除。
在上述的判定Flash扇区数据写入异常的方法判定Flash扇区数据写入异常的方法中,所述执行扇区数据擦除,包括执行扇区数据擦除命令以使相应扇区的所有字节均为1。
在上述的判定Flash扇区数据写入异常的方法判定Flash扇区数据写入异常的方法中,所述执行扇区数据擦除过程中,扇区首位已被擦除为1,若此时操作被中断,将检测到扇区首字节不为0,即判定相应扇区发生了数据写入异常的情况。
在上述的判定Flash扇区数据写入异常的方法判定Flash扇区数据写入异常的方法中,所述执行扇区数据擦除后,扇区首位和末位均被擦除为1,若此时操作被中断,将检测到扇区首末字节均不为0,即判定相应扇区发生了数据写入异常的情况。
在上述的判定Flash扇区数据写入异常的方法判定Flash扇区数据写入异常的方法中,所述执行扇区数据写入后,扇区首位被写为0,若此时操作被中断,将检测到扇区末字节不为0,即判定相应扇区发生了数据写入异常的情况。
在上述的判定Flash扇区数据写入异常的方法判定Flash扇区数据写入异常的方法中,所述读取扇区首末字节,若扇区首位写为0,末位写为0,将检测到扇区首末字节均为0,即判定相应扇区写入过程正常。
在上述的判定Flash扇区数据写入异常的方法判定Flash扇区数据写入异常的方法中,所述执行扇区数据写入操作前,对本次数据写入操作所涉及到扇区的前次写入过程进行异常判定。
一种用于执行上述方法的装置,包括:
写入模块,用于执行扇区数据写入,且所述执行扇区数据写入包括:依次在扇区首字节写入0值,写入扇区其他数据,在扇区末字节写入0值;
异常识别模块,用于读取扇区首末字节,判断首末字节是否为0;若扇区首末字节不全为0,则判定相应扇区发生了数据写入异常的情况。
一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述步骤。
一种终端设备,包括:处理器、存储器
所述处理器用于执行存储于存储器中的一个或者多个程序,以实现上述步骤;
所述存储器用于存储可被所述处理器执行的一个或多个程序。
本发明的优点在于:
1、实现原理简单,基于该原理,在扇区写入时通过特定的写入步骤,在扇区内的特定位置写入特定的值来达到异常判定的目的,实现了突出的效果;
2、本方案通过简单的方法实现了扇区写入过程异常的判定,相较于已有的方法都更简单且易于实现;
3、只需要在每个扇区的首末位写0,占用的存储资源非常的少;
4、该方法实现异常判定目的只需要通过识别首末位是否为0即可,无需执行额外的计算,不会占用计算资源,且执行效率高。
附图说明
图1为常规扇区写入过程原理图;
图2为本方案所提出的能够判定Flash扇区写入过程异常的数据写入方法流程图;
图3为本方案所提出的能够判定Flash扇区写入过程异常的扇区写入过程原理图。
具体实施方式
本发明提供了一种判定Flash扇区数据写入异常的方法;
一种用于实现上述方法的装置;
一种存储用于存储能够内处理器执行以实现上述方法的可读存储介质;
一种包括处理器和存储器的终端设备,处理器用于执行存储于存储器中的一个或者多个程序,以实现上述方法;存储器用于存储可被处理器执行的一个或多个程序。
本方案通过在执行扇区写入时,在扇区首末字节写入0值,并且先写首字节为0,再写扇区其他数据,最后写末字节为0。然后只要扇区首尾字节不全为0,即可判定该扇区发生了扇区写入过程不完整的情况,即可将该扇区当前数据判定为无效,或者进一步进行数据修复处理。通过简单的原理实现了突出的效果,如实现简单,占用存储资源少,不占用计算资源,执行效率高,判定准确等。
下面通过具体的过程和与常规扇区写入过程的比较来介绍本方案的实现原理和优势。
如图1所示,常规扇区写入过程分为以下两步,图中使用小方框表示Flash存储器的一个字节,使用字母标号区分字节状态;图中使用一行的方框表示一个完整扇区的所有字节;图中每一行,由上到下,展示了同一扇区写入过程中的不同状态:
步骤1:扇区的前次数据用字母A表示。对扇区执行擦除命令,完成擦除后,扇区上所有字节值为1,用字母B表示。如果此时中断操作,扇区内前次数据和新写数据都会丢失,且无法获知扇区曾发生了数据丢失。
步骤2:将数据传入扇区执行编程命令。写入过程中,完成写入的字节用C表示,未写入位置的字节仍然保持为B。如果此时中断操作,扇区未写入部分的数据会丢失,且无法获知扇区曾发生了数据丢失。写入完成后,所有写入的字节均为C,表示写入完成。
基于常规扇区写入过程,若需要知道扇区在写入过程是否存在执行不完整的问题,需要通过背景技术所述的几种方法中的一种或其他方法进行识别。
如图2所示,本方案所提出的判定Flash扇区数据写入异常的方法中,数据写入过程如下:
开始执行扇区数据写入操作后,对本次数据写入操作所涉及到的扇区均执行扇区擦除命令,擦除结束后,各扇区的各字节为1;
然后对第一个扇区的首字节写0,再写扇区其他数据,写至倒数第二个字节,本扇区数据写入结束,最后写扇区末字节为0;
然后对下一个扇区的首字节写0,继续在扇区其他字节写数据,写至倒数第二个字节本扇区数据写入结束,最后写扇区末字节为0;直至写完所有数据写完所有涉及到的扇区。
写完所有数据以后,最后一个扇区的末字节无论是否被用完所有字节,最后一个字节均写为0。
至此,通过前述特定的写入步骤,在扇区内的特定位置写入特定值的数据写入方式可用于高效,准确,且在占用更少存储空间和不占用计算资源的情况下实现Flash扇区数据写入异常的判定。
如图3所示,本方案的扇区写入过程使用小方框的方式进行说明,同时与常规方法形成对比,同样使用小方框表示Flash存储器的一个字节,使用字母标号区分字节状态;图中使用一行的方框表示一个完整扇区的所有字节;图中每一行,由上到下,展示了同一扇区写入过程中的不同状态:
步骤1:扇区的前次数据用字母A表示,首末字节均为0,表示前次数据写入正常。执行本次数据写入操作时,对本次数据写入涉及到的扇区执行擦除命令(涉及到的扇区是指本次数据写入需要用到的扇区)。完成擦除后,扇区上所有字节值为1,用字母B表示。如果此时中断操作,扇区内前次数据和新写数据都会丢失,但是此时扇区首尾字节不全为0,由此可判断<扇区写入过程>尚未完成,即,存在数据写入异常。
步骤2:先写入扇区的首字节,值为0,执行编程命令。如果此时中断操作,扇区内前次数据和新写数据都会丢失,但是此时扇区首尾字节不全为0,由此可判断<扇区写入过程>尚未完成,即,存在数据写入异常。
步骤3:再传入扇区首末字节以外的数据,执行编程命令。写入过程中,完成写入的字节用C表示,未写入位置的字节仍然保持为B。如果此时中断操作,扇区未写入部分的数据会丢失,但是此时扇区首尾字节不全为0,由此可判断<扇区写入过程>尚未完成,即,存在数据写入异常。
步骤4:再写入扇区的末字节,值为0,完成此步骤后,即完成了相应扇区完整的扇区写入过程。且只有完成了步骤4后,扇区的首末字节才处在全为0状态,表示完成了扇区写入过程。
因此,在完成数据写入操作后,通过读取扇区首末字节的值即可判断相应扇区的数据写入操作是否异常,若首末字节不全为0,则认为该扇区存在数据写入异常的问题。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (11)
1.一种判定Flash扇区数据写入异常的方法,其特征在于,该方法包括:
执行扇区数据写入,其中,所述执行扇区数据写入包括:依次在扇区首字节写入0值,写入扇区其他数据,在扇区末字节写入0值;
读取扇区首末字节,判断首末字节是否为0;
若扇区首末字节不全为0,则判定相应扇区发生了数据写入异常的情况。
2.根据权利要求1所述的判定Flash扇区数据写入异常的方法判定Flash扇区数据写入异常的方法,其特征在于,所述执行扇区数据写入前,还包括,执行扇区数据擦除。
3.根据权利要求2所述的判定Flash扇区数据写入异常的方法,其特征在于,所述执行扇区数据擦除,包括执行扇区数据擦除命令以使相应扇区的所有字节均为1。
4.根据权利要求2所述的判定Flash扇区数据写入异常的方法,其特征在于,所述执行扇区数据擦除过程中,扇区首位已被擦除为1,若此时操作被中断,将检测到扇区首字节不为0,即判定相应扇区发生了数据写入异常的情况。
5.根据权利要求2所述的判定Flash扇区数据写入异常的方法,其特征在于,所述执行扇区数据擦除后,扇区首位和末位均被擦除为1,若此时操作被中断,将检测到扇区首末字节均不为0,即判定相应扇区发生了数据写入异常的情况。
6.根据权利要求2所述的判定Flash扇区数据写入异常的方法,其特征在于,所述执行扇区数据写入后,扇区首位被写为0,若此时操作被中断,将检测到扇区末字节不为0,即判定相应扇区发生了数据写入异常的情况。
7.根据权利要求2所述的判定Flash扇区数据写入异常的方法,其特征在于,所述读取扇区首末字节,若扇区首位写为0,末位写为0,将检测到扇区首末字节均为0,即判定相应扇区写入过程正常。
8.根据权利要求4所述的判定Flash扇区数据写入异常的方法,其特征在于,所述执行扇区数据写入操作前,对本次数据写入操作所涉及到扇区的前次写入过程进行异常判定。
9.一种用于执行权利要求1-8任意一项所述方法的装置,其特征在于,包括:
写入模块,用于执行扇区数据写入,且所述执行扇区数据写入包括:依次在扇区首字节写入0值,写入扇区其他数据,在扇区末字节写入0值;
异常识别模块,用于读取扇区首末字节,判断首末字节是否为0;若扇区首末字节不全为0,则判定相应扇区发生了数据写入异常的情况。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-8任意一项所述的步骤。
11.一种终端设备,其特征在于,
包括:
处理器、存储器
所述处理器用于执行存储于存储器中的一个或者多个程序,以实现如权利要求1-8任意一项所述的步骤;
所述存储器用于存储可被所述处理器执行的一个或多个程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410102205.4A CN117909130A (zh) | 2024-01-25 | 2024-01-25 | 判定Flash扇区数据写入异常的方法、装置、存储介质和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410102205.4A CN117909130A (zh) | 2024-01-25 | 2024-01-25 | 判定Flash扇区数据写入异常的方法、装置、存储介质和终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117909130A true CN117909130A (zh) | 2024-04-19 |
Family
ID=90690556
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410102205.4A Pending CN117909130A (zh) | 2024-01-25 | 2024-01-25 | 判定Flash扇区数据写入异常的方法、装置、存储介质和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117909130A (zh) |
-
2024
- 2024-01-25 CN CN202410102205.4A patent/CN117909130A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI625735B (zh) | 記憶體管理方法以及儲存控制器 | |
US8412879B2 (en) | Hybrid implementation for error correction codes within a non-volatile memory system | |
JP5780174B2 (ja) | 不良ビットエラーを処理するシステムおよび方法 | |
TWI512742B (zh) | 非揮發性快閃記憶體擦除異常存儲塊修復方法和裝置 | |
US20090193058A1 (en) | System and method for providing copyback data integrity in a non-volatile memory system | |
CN109582216B (zh) | 数据储存装置与存储器装置的数据处理方法 | |
CN110286853B (zh) | 一种数据写入方法和装置、计算机可读存储介质 | |
US11048601B2 (en) | Disk data reading/writing method and device | |
US20200258582A1 (en) | Pre-Program Read to Counter Wordline Failures | |
US11698832B2 (en) | Selective sampling of a data unit during a program erase cycle based on error rate change patterns | |
US20140258792A1 (en) | Symmetrical Data Replication For Failure Management In Non-Volatile Memory Systems | |
US7657795B2 (en) | Method and apparatus for writing to a target memory page of a memory | |
KR101512927B1 (ko) | 비휘발성 메모리의 페이지 관리 방법 및 장치 | |
CN111045600B (zh) | 向存储器写入数据的方法、装置及存储介质 | |
CN114721602B (zh) | 一种基于FreeRTOS的Nor Flash滚动存储方法及装置 | |
CN117909130A (zh) | 判定Flash扇区数据写入异常的方法、装置、存储介质和终端设备 | |
US8612824B2 (en) | Semiconductor memory device and controlling method | |
CN111124742B (zh) | Flash数据校验方法及Flash控制器、存储介质、设备 | |
CN114203252A (zh) | 非易失存储器的坏块检测方法、装置、设备及存储介质 | |
US10475522B2 (en) | Memory system including a delegate page and method of identifying a status of a memory system | |
TWI500036B (zh) | 非揮發性儲存裝置及其控制方法 | |
CN112540882A (zh) | 闪存设备检测系统及闪存设备检测方法 | |
JPH09212429A (ja) | 不揮発性半導体ディスク装置 | |
CN115620794B (zh) | 快速存储器的测试方法及测试装置、存储介质、芯片 | |
CN117591138A (zh) | 一种数据刷写实现方法、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |