CN112540723A - 一种NOR Flash坏点补偿的方法 - Google Patents

一种NOR Flash坏点补偿的方法 Download PDF

Info

Publication number
CN112540723A
CN112540723A CN202011229468.XA CN202011229468A CN112540723A CN 112540723 A CN112540723 A CN 112540723A CN 202011229468 A CN202011229468 A CN 202011229468A CN 112540723 A CN112540723 A CN 112540723A
Authority
CN
China
Prior art keywords
error correction
firmware
mapping set
correction code
code table
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.)
Granted
Application number
CN202011229468.XA
Other languages
English (en)
Other versions
CN112540723B (zh
Inventor
林嘉顺
谭睿
许文焕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SHENZHEN MINDE ELECTRONICS TECHNOLOGY Ltd
Original Assignee
SHENZHEN MINDE ELECTRONICS TECHNOLOGY Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SHENZHEN MINDE ELECTRONICS TECHNOLOGY Ltd filed Critical SHENZHEN MINDE ELECTRONICS TECHNOLOGY Ltd
Priority to CN202011229468.XA priority Critical patent/CN112540723B/zh
Publication of CN112540723A publication Critical patent/CN112540723A/zh
Application granted granted Critical
Publication of CN112540723B publication Critical patent/CN112540723B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种NOR Flash坏点补偿的方法,包括固件存储步骤、固件加载步骤以及固件纠错步骤;其中,固件纠错步骤包括:完成固件加载后,固件纠错开始,加载纠错码表;通过纠错码表对固件数据的完整性进行检测,若检测到固件被破坏,则根据纠错码表逐个对纠错单元的固件数据进行纠正,并对纠错单元进行纠正,建立纠错单元与备份单元的映射关系,填充至映射集合中;将纠正后的固件数据保存于与纠错单元具有映射关系的备份单元中,并将新的映射集合保存于映射集合区域中,固件纠正完成。通过采用本发明的NOR Flash坏点补偿的方法,可以在NOR Flash出现坏点时,使用新的备份单元进行替换,确保数据完整无损,提高数据使用的可靠性。

Description

一种NOR Flash坏点补偿的方法
技术领域
本发明涉及计算机存储技术领域,尤其涉及一种NOR Flash坏点补偿的方法。
背景技术
NOR Flash是一种非易失闪存技术,NOR Flash中的N是NOT,含义是Floating Gate中有电荷时,读出‘0’,无电荷时读出‘1’,是一种‘非’的逻辑;OR的含义是同一个Bit Line下的各个基本存储单元是并联的,是一种‘或’的逻辑,这就是NOR的由来。NOR Flash在产品一般用于存储数据和固件程序。使用过程中,由于NOR Flash芯片的工艺缺陷,不能百分百保证所有bit位都是完好的,可能出现电压漂移导致“位翻转(bit错误)”现象,俗称“坏点”,以至于bit不能表达正确表达‘0’或‘1’,存在数据安全性无法保障的缺陷。这种现象将损坏存储于NOR Flash的数据,在产品中将导致设备固件运行失败,因此设备的稳定性和寿命将受到很大影响。
发明内容
本发明要解决的技术问题在于,针对现有技术的缺陷,提供一种NOR Flash坏点补偿的方法。
本发明解决其技术问题所采用的技术方案是:构造一种NOR Flash坏点补偿的方法,包括固件存储步骤、固件加载步骤以及固件纠错步骤;
其中,所述固件存储步骤包括:
将NOR Flash空间划分为固件区域、纠错码表区域、映射集合区域和具有多个备份单元的备份区域;
将所述固件区域划分为多个纠错单元,对多个所述纠错单元下的固件数据进行纠错码计算,获得一组与多个所述纠错单元对应的纠错码表;
生成有关所述纠错单元与所述备份单元之间的映射关系的空映射集合,并将所述映射集合存储于所述映射集合区域;
将固件存储于所述固件区域中,将所述纠错码表存储于所述纠错码表区域中;
所述固件纠错步骤包括:
完成固件加载后,固件纠错开始,加载所述纠错码表;
通过所述纠错码表对固件数据的完整性进行检测,若检测到固件被破坏,则根据所述纠错码表逐个对所述纠错单元的固件数据进行纠正,并对所述纠错单元进行纠正,建立所述纠错单元与所述备份单元的映射关系,填充至所述映射集合中;
将纠正后的固件数据保存于与所述纠错单元具有映射关系的所述备份单元中,并将新的所述映射集合保存于所述映射集合区域中,固件纠正完成。
优选地,在本发明所述的NOR Flash坏点补偿的方法中,所述固件加载步骤包括:
加载固件开始,固件从NOR Flash中整体加载;
判断所述映射集合中的映射总数是否为零,若否,则根据所述映射集合中的纠错单元与备份单元之间的映射关系,逐个将所述纠错单元中的固件数据替换为所述备份单元中的纠正后的固件数据,完成固件加载;若是,则进行所述固件纠错步骤。
优选地,在本发明所述的NOR Flash坏点补偿的方法中,所述固件存储步骤还包括:
将所述纠错码表区域划分为保持同步的第一纠错码表镜像区域和第二纠错码表镜像区域;
将所述映射集合区域划分为保持同步的第一映射集合镜像区域和第二映射集合镜像区域;
所述步骤将所述纠错码表存储于所述纠错码表区域中,包括:
将所述纠错码表分别存储于所述第一纠错码表镜像区域和所述第二纠错码表镜像区域中,以获得第一纠错码表镜像和第二纠错纠错码表镜像;
所述步骤将所述映射集合存储于所述映射集合区域,包括:
将所述映射集合分别存储于所述第一映射集合镜像区域和所述第二映射集合镜像区域,以获得第一映射集合镜像和第二映射集合镜像。
优选地,在本发明所述的NOR Flash坏点补偿的方法中,所述步骤将所述固件区域划分为多个纠错单元,包括:
根据预存固件的长度,按照固定的纠错长度将所述固件区域划分为多个纠错单元;其中,所述固定的纠错长度为ECC算法的计算单元长度。
优选地,在本发明所述的NOR Flash坏点补偿的方法中,所述步骤对多个所述纠错单元下的固件数据进行纠错码计算,包括:
通过ECC算法对多个所述纠错单元下的固件数据进行纠错码计算。
优选地,在本发明所述的NOR Flash坏点补偿的方法中,所述固件存储步骤还包括:
通过CRC-32算法计算所述纠错码表和所述映射集合的CRC校验码。
优选地,在本发明所述的NOR Flash坏点补偿的方法中,在所述固件纠错步骤中,加载所述纠错码表之后还包括:
检索所述纠错码表是否完整,若否,则进行纠错码表同步。
优选地,在本发明所述的NOR Flash坏点补偿的方法中,所述步骤检索所述纠错码表是否完整,若否,则进行纠错码表同步,包括:
加载所述第一纠错码表镜像和所述第二纠错码表镜像;
判断所述第一纠错码表镜像和所述第二纠错码表镜像是否完整;
若其中一个纠错码表镜像不完整,则使用另一个纠错码表镜像进行同步。
优选地,在本发明所述的NOR Flash坏点补偿的方法中,所述步骤固件从NORFlash中整体加载,之后还包括:
检索所述映射集合是否完整,若否,则进行映射集合同步。
优选地,在本发明所述的NOR Flash坏点补偿的方法中,所述步骤检索所述映射集合是否完整,若否,则进行映射集合同步,包括:
加载所述第一映射集合镜像和所述第二映射集合镜像;
判断所述第一映射集合镜像和所述第二映射集合镜像是否完整;
若其中一个映射集合镜像不完整,则使用另一个映射集合镜像进行同步。
通过实施本发明,具有以下有益效果:
通过采用本发明的NOR Flash坏点补偿的方法,可以在NOR Flash出现坏点时,使用新的备份单元进行替换,确保数据完整无损,提高数据使用的可靠性。并且,将纠错码表区域和映射集合区域划分成两份镜像,两份镜像保持相同,保障了纠错码表和映射集合的安全,防止在保存纠错码表和映射集合过程中出现掉电,导致补偿功能失效。同时,备份区域的备份单元出现“坏点”,补偿算法依然可以进行叠加,保障备份区域的补偿功能。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明NOR Flash的划分区域图;
图2是本发明的固件存储步骤流程图;
图3是本发明的固件纠错步骤流程图;
图4是本发明的固件加载步骤流程图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
ECC的全称是Error Checking and Correction,是一种差错检测和修正算法。可选256、512、1024、2048、4096、8192Bytes为计算单元,计算纠错码(冗余信息),ECC能检测2个比特错误,并纠正其中1个比特错误,而且计算速度很快。
循环冗余校验(Cyclic Redundancy Check,CRC)是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。
在本实施例中,本发明构造了一种NOR Flash坏点补偿的方法,包括固件存储步骤、固件加载步骤和固件纠错步骤;
其中,如图2所示,该固件存储步骤包括:
步骤S1:将NOR Flash空间划分为固件区域、纠错码表区域、映射集合区域和具有多个备份单元的备份区域。其中,备份区域中依次排列的备份单元为正常、没有坏点的备份单元,即使备份区域中的备份单元出现“坏点”,补偿算法依然可以进行叠加,保障备份区域的补偿功能。
具体地,本发明选用ECC算法的计算单元为256Bytes,即每个纠错单元为256Bytes,保护粒度更小,算法计算复杂度和耗时更小,更符合工程应用。ECC算法的计算单元的长度为256Bytes,其纠错码(冗余信息)有效位是3Bytes。采用CRC-32算法计算数据的校验码,可生成长度为32Bits的CRC检验码。在另外一些实施例中,可选用长度为512、1024、2048、4096或8192Bytes的计算单元,而纠错码有效位以及CRC检验码长度也会相应发生改变,在此不再赘述。
以总空间为4MB(4096KB)的NOR Flash为例,NOR Flash的特性是先擦除后写入的特性,擦除的单元基本上是Page(大小4KB)和Block(大小64KB),因此划分的固件区域大小为Page的倍数,以确保擦除数据时,能尽可能不干扰到其他独立区域的数据。将NOR Flash空间中的固件区域、纠错码表区域、映射集合区域和备份区域的大小分配如下表1所示:
表1
Figure BDA0002764695300000061
步骤S2:将固件区域划分为多个纠错单元,对多个纠错单元下的固件数据进行纠错码计算,获得一组与多个纠错单元对应的纠错码表。
具体地,如图1所示,固件区域被划分为多个纠错单元,包括纠错单元1、纠错单元2、纠错单元3……纠错单元N-1、纠错单元N。
在一些实施例中,如图2所示,固件烧录,对固件进行接收,根据预存固件的长度,按照固定的纠错长度将固件区域划分为多个纠错单元,其中,固定的纠错长度为ECC算法的计算单元的长度,例如256Bytes,然后通过ECC算法对多个纠错单元下的固件数据进行纠错码计算,获得一组与多个纠错单元对应的纠错码表。其中,纠错码表如图1所示,包括依次排列的纠错码总数、纠错码1、纠错码2、纠错码3……纠错码N以及CRC校验码。需要说明的是,其纠错码1与纠错单元1对应,纠错码N与纠错单元N对应,以此类推。
在另外一些实施例中,CRC校验码是为了保证纠错码计算的正确性,因此该固件存储步骤还包括:通过CRC-32算法计算纠错码表的CRC校验码,并设于纠错码表末位。
步骤S3:生成有关纠错单元与备份单元之间的映射关系的空映射集合或者空映射链表,设置映射总数为0,并将映射集合存储于映射集合区域。
具体地,如图1所示,映射集合包括映射总数、源地址1、映射地址1…源地址N、映射地址N以及CRC校验码。CRC校验码是为了保证映射总数、源地址和映射地址生成的正确性,因此该固件存储步骤还包括:通过CRC-32算法计算映射集合的CRC校验码,并设于映射集合末位。
其中,映射集合的源地址1可写入发生坏点的纠错单元地址,而映射地址可写入备份单元地址,当检测到固件数据被破坏或者纠错单元存在坏点时,可通过映射集合将发生坏点的纠错单元映射到正常的备份单元。
步骤S4:将固件存储于固件区域中,将纠错码表存储于纠错码表区域中。
在一些实施例中,保障了纠错码表和映射集合的安全,防止在保存纠错码表和映射集合过程中出现掉电,导致补偿功能失效,因此该固件存储步骤还包括:将纠错码表区域划分为保持同步的第一纠错码表镜像区域和第二纠错码表镜像区域,如图1所示。
在步骤S4中,将纠错码表存储于纠错码表区域中,包括:将纠错码表分别存储于第一纠错码表镜像区域和第二纠错码表镜像区域中,以获得第一纠错码表镜像和第二纠错纠错码表镜像。如果掉电,则第一纠错码表镜像区域中的纠错码表可能被破坏,第二纠错码表镜像区域中的纠错码表可备用。或者,第二纠错码表镜像区域中的纠错码表可能被破坏,第一纠错码表镜像区域中的纠错码表可备用。
该固件存储步骤还包括:将映射集合区域划分为保持同步的第一映射集合镜像区域和第二映射集合镜像区域,如图1所示。
在步骤S3中,将映射集合存储于映射集合区域,包括:将映射集合分别存储于第一映射集合镜像区域和第二映射集合镜像区域,以获得第一映射集合镜像和第二映射集合镜像。如果掉电,则第一映射集合镜像区域中的映射集合可能被破坏,第二映射集合镜像区域中的映射集合可备用。或者,第二映射集合镜像区域中的映射集合可能被破坏,第一映射集合镜像区域中的映射集合可备用。
在一些实施例中,该固件存储步骤包括:对存储于固件区域中的固件的完整性进行校验,若检验通过,则烧录固件完成,若检验不通过,则烧录固件失败。
在本实施例中,如图3所示,该固件纠错步骤包括:
步骤S5:完成固件加载后,固件纠错开始,加载纠错码表。
在一些实施例中,为了保证纠错码表的完整性,在加载纠错码表之后,还包括检索纠错码表是否完整,一个完整的纠错码表包括纠错码总数、纠错码以及CRC校验码,若不完整,则进行纠错码表同步。具体地,包括以下步骤:加载第一纠错码表镜像和第二纠错码表镜像,判断第一纠错码表镜像和第二纠错码表镜像是否完整,若其中一个纠错码表镜像不完整,则使用另一个纠错码表镜像进行同步,例如,将第一错码表镜像更新至第二错码表镜像区域,或者将第二错码表镜像更新至第一错码表镜像区域。
步骤S6:对纠错单元逐个进行ECC校验,通过纠错码表对固件数据的完整性进行检测,若检测到固件被破坏或纠错单元存在坏点,例如错误页存在,则根据纠错码表逐个对纠错单元的固件数据进行纠正,并对纠错单元进行纠正,建立纠错单元与备份单元的映射关系,填充至映射集合中,通过映射集合将发生坏点的纠错单元映射到正常的备份单元;
在一些实施例中,还会判断纠正坏点错误是否成功,若是则进行步骤S7,若否,则固件加载失败。
步骤S7:将纠正后的固件数据保存于与纠错单元具有映射关系的备份单元中,并更新纠错单元与备份单元的映射关系,将新的映射集合保存于映射集合区域中,固件纠正完成,后续固件加载时可通过映射集合将存在坏点的纠错单元映射到正常的备份单元上,并加载备份单元中正确的固件数据,从而完成映射纠正。
其中,将纠正后的固件数据保存于与纠错单元具有映射关系的备份单元中,如果掉电,则映射集合未保存,设备重启后继续进行固件纠错。
将新的映射集合保存于映射集合区域中,包括:将新的映射集合分别存储于第一映射集合镜像区域和第二映射集合镜像区域,以获得第一映射集合镜像和第二映射集合镜像。如果掉电,则第一映射集合镜像区域中的映射集合可能被破坏,第二映射集合镜像区域中的映射集合可备用。或者,第二映射集合镜像区域中的映射集合可能被破坏,第一映射集合镜像区域中的映射集合可备用。
最后,判断纠错单元坏点检索是否完成,若是,则设备重启。
在本实施例中,如图4所示,该固件加载步骤包括:
步骤S8:加载固件开始,固件从NOR Flash中整体加载。在此需要说明的是,加载固件的意思是读取固件数据,运行程序。
在一些实施例中,为保证固件加载时,映射集合的完整性,在固件从NOR Flash中整体加载之后,还包括:检索映射集合是否完整,一个完整的映射集合包括映射总数、源地址、映射地址以及CRC校验码,若不完整,则进行映射集合同步。具体地,包括以下步骤:
加载第一映射集合镜像和第二映射集合镜像;
判断第一映射集合镜像和第二映射集合镜像是否完整;
若其中一个映射集合镜像不完整,则使用另一个映射集合镜像进行同步,例如将第一映射集合镜像更新至第二映射集合镜像区域,或者将第二映射集合镜像更新至第一映射集合镜像区域。
步骤S9:判断映射集合中的映射总数是否为零,若否,则根据映射集合中的纠错单元与备份单元之间的映射关系,将存在坏点的纠错单元映射到正常的备份单元上,逐个将纠错单元中的固件数据替换为备份单元中的纠正后的固件数据,完成固件加载。若是,则进行所述固件纠错步骤,或者进一步对固件完整性进行校验,若通过,则执行固件跳转,若不通过,则进行所述固件纠错步骤。
通过实施本发明,具有以下有益效果:
通过采用本发明的NOR Flash坏点补偿的方法,可以在NOR Flash出现坏点时,使用新的备份单元进行替换,确保数据完整无损,提高数据使用的可靠性。并且,将纠错码表区域和映射集合区域划分成两份镜像,两份镜像保持相同,保障了纠错码表和映射集合的安全,防止在保存纠错码表和映射集合过程中出现掉电,导致补偿功能失效。同时,备份区域的备份单元出现“坏点”,补偿算法依然可以进行叠加,保障备份区域的补偿功能。
可以理解的,以上实施例仅表达了本发明的优选实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制;应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,可以对上述技术特点进行自由组合,还可以做出若干变形和改进,这些都属于本发明的保护范围;因此,凡跟本发明权利要求范围所做的等同变换与修饰,均应属于本发明权利要求的涵盖范围。

Claims (10)

1.一种NOR Flash坏点补偿的方法,其特征在于,包括固件存储步骤、固件加载步骤以及固件纠错步骤;
其中,所述固件存储步骤包括:
将NOR Flash空间划分为固件区域、纠错码表区域、映射集合区域和具有多个备份单元的备份区域;
将所述固件区域划分为多个纠错单元,对多个所述纠错单元下的固件数据进行纠错码计算,获得一组与多个所述纠错单元对应的纠错码表;
生成有关所述纠错单元与所述备份单元之间的映射关系的空映射集合,并将所述映射集合存储于所述映射集合区域;
将固件存储于所述固件区域中,将所述纠错码表存储于所述纠错码表区域中;
所述固件纠错步骤包括:
完成固件加载后,固件纠错开始,加载所述纠错码表;
通过所述纠错码表对固件数据的完整性进行检测,若检测到固件被破坏,则根据所述纠错码表逐个对所述纠错单元的固件数据进行纠正,并对所述纠错单元进行纠正,建立所述纠错单元与所述备份单元的映射关系,填充至所述映射集合中;
将纠正后的固件数据保存于与所述纠错单元具有映射关系的所述备份单元中,并将新的所述映射集合保存于所述映射集合区域中,固件纠正完成。
2.根据权利要求1所述的NOR Flash坏点补偿的方法,其特征在于,所述固件加载步骤包括:
加载固件开始,固件从NOR Flash中整体加载;
判断所述映射集合中的映射总数是否为零,若否,则根据所述映射集合中的纠错单元与备份单元之间的映射关系,逐个将所述纠错单元中的固件数据替换为所述备份单元中的纠正后的固件数据,完成固件加载;若是,则进行所述固件纠错步骤。
3.根据权利要求2所述的NOR Flash坏点补偿的方法,其特征在于,所述固件存储步骤还包括:
将所述纠错码表区域划分为保持同步的第一纠错码表镜像区域和第二纠错码表镜像区域;
将所述映射集合区域划分为保持同步的第一映射集合镜像区域和第二映射集合镜像区域;
所述步骤将所述纠错码表存储于所述纠错码表区域中,包括:
将所述纠错码表分别存储于所述第一纠错码表镜像区域和所述第二纠错码表镜像区域中,以获得第一纠错码表镜像和第二纠错纠错码表镜像;
所述步骤将所述映射集合存储于所述映射集合区域,包括:
将所述映射集合分别存储于所述第一映射集合镜像区域和所述第二映射集合镜像区域,以获得第一映射集合镜像和第二映射集合镜像。
4.根据权利要求1所述的NOR Flash坏点补偿的方法,其特征在于,所述步骤将所述固件区域划分为多个纠错单元,包括:
根据预存固件的长度,按照固定的纠错长度将所述固件区域划分为多个纠错单元;其中,所述固定的纠错长度为ECC算法的计算单元长度。
5.根据权利要求1所述的NOR Flash坏点补偿的方法,其特征在于,所述步骤对多个所述纠错单元下的固件数据进行纠错码计算,包括:
通过ECC算法对多个所述纠错单元下的固件数据进行纠错码计算。
6.根据权利要求1所述的NOR Flash坏点补偿的方法,其特征在于,所述固件存储步骤还包括:
通过CRC-32算法计算所述纠错码表和所述映射集合的CRC校验码。
7.根据权利要求3所述的NOR Flash坏点补偿的方法,其特征在于,在所述固件纠错步骤中,加载所述纠错码表之后还包括:
检索所述纠错码表是否完整,若否,则进行纠错码表同步。
8.根据权利要求7所述的NOR Flash坏点补偿的方法,其特征在于,所述步骤检索所述纠错码表是否完整,若否,则进行纠错码表同步,包括:
加载所述第一纠错码表镜像和所述第二纠错码表镜像;
判断所述第一纠错码表镜像和所述第二纠错码表镜像是否完整;
若其中一个纠错码表镜像不完整,则使用另一个纠错码表镜像进行同步。
9.根据权利要求3所述的NOR Flash坏点补偿的方法,其特征在于,所述步骤固件从NORFlash中整体加载,之后还包括:
检索所述映射集合是否完整,若否,则进行映射集合同步。
10.根据权利要求9所述的NOR Flash坏点补偿的方法,其特征在于,所述步骤检索所述映射集合是否完整,若否,则进行映射集合同步,包括:
加载所述第一映射集合镜像和所述第二映射集合镜像;
判断所述第一映射集合镜像和所述第二映射集合镜像是否完整;
若其中一个映射集合镜像不完整,则使用另一个映射集合镜像进行同步。
CN202011229468.XA 2020-11-06 2020-11-06 一种NOR Flash坏点补偿的方法 Active CN112540723B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011229468.XA CN112540723B (zh) 2020-11-06 2020-11-06 一种NOR Flash坏点补偿的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011229468.XA CN112540723B (zh) 2020-11-06 2020-11-06 一种NOR Flash坏点补偿的方法

Publications (2)

Publication Number Publication Date
CN112540723A true CN112540723A (zh) 2021-03-23
CN112540723B CN112540723B (zh) 2023-02-03

Family

ID=75015047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011229468.XA Active CN112540723B (zh) 2020-11-06 2020-11-06 一种NOR Flash坏点补偿的方法

Country Status (1)

Country Link
CN (1) CN112540723B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140869A1 (en) * 2006-12-11 2008-06-12 Nam-Phil Jo Circuits and Methods for Correcting Errors in Downloading Firmware
US20120096333A1 (en) * 2010-10-13 2012-04-19 Electronics And Telecommunications Research Institute Data input and output method of nand flash memory and embedded system using the same
CN103942119A (zh) * 2013-12-26 2014-07-23 杭州华为数字技术有限公司 一种存储器错误的处理方法和装置
CN105242982A (zh) * 2015-10-22 2016-01-13 宁波三星医疗电气股份有限公司 用于采用了nand flash的电力采集终端的纠错方法
US20180067799A1 (en) * 2016-09-07 2018-03-08 Sandisk Technologies Llc System and method for detecting and correcting mapping table errors in a non-volatile memory system
CN108073470A (zh) * 2016-11-07 2018-05-25 三星电子株式会社 执行地址映射表的纠错的存储器系统及其控制方法
CN109165115A (zh) * 2018-06-26 2019-01-08 北京中电华大电子设计有限责任公司 一种增强flash存储器可靠性的方法
CN110457160A (zh) * 2019-07-02 2019-11-15 深圳市金泰克半导体有限公司 一种纠错方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080140869A1 (en) * 2006-12-11 2008-06-12 Nam-Phil Jo Circuits and Methods for Correcting Errors in Downloading Firmware
US20120096333A1 (en) * 2010-10-13 2012-04-19 Electronics And Telecommunications Research Institute Data input and output method of nand flash memory and embedded system using the same
CN103942119A (zh) * 2013-12-26 2014-07-23 杭州华为数字技术有限公司 一种存储器错误的处理方法和装置
CN105242982A (zh) * 2015-10-22 2016-01-13 宁波三星医疗电气股份有限公司 用于采用了nand flash的电力采集终端的纠错方法
US20180067799A1 (en) * 2016-09-07 2018-03-08 Sandisk Technologies Llc System and method for detecting and correcting mapping table errors in a non-volatile memory system
CN108073470A (zh) * 2016-11-07 2018-05-25 三星电子株式会社 执行地址映射表的纠错的存储器系统及其控制方法
CN109165115A (zh) * 2018-06-26 2019-01-08 北京中电华大电子设计有限责任公司 一种增强flash存储器可靠性的方法
CN110457160A (zh) * 2019-07-02 2019-11-15 深圳市金泰克半导体有限公司 一种纠错方法及装置

Also Published As

Publication number Publication date
CN112540723B (zh) 2023-02-03

Similar Documents

Publication Publication Date Title
KR101417561B1 (ko) 메타데이터 태그를 통한 불규칙적인 패리티 분포 검출
JP4950886B2 (ja) 不揮発性記憶装置、メモリコントローラ及び不良領域検出方法
US8560925B2 (en) System and method for handling bad bit errors
TWI512742B (zh) 非揮發性快閃記憶體擦除異常存儲塊修復方法和裝置
US8756398B2 (en) Partitioning pages of an electronic memory
US20140115416A1 (en) Non-volatile memory error correction
US9754682B2 (en) Implementing enhanced performance with read before write to phase change memory
CN112540723B (zh) 一种NOR Flash坏点补偿的方法
JP4357305B2 (ja) 外部記憶装置
CN104750577A (zh) 面向片上大容量缓冲存储器的任意多位容错方法及装置
CN114203252A (zh) 非易失存储器的坏块检测方法、装置、设备及存储介质
US11403041B2 (en) Memory system and control method thereof
KR20050064887A (ko) 오류 검출 능력이 강화된 플래시 메모리 및 다비트 오류검출 방법
CN111124742B (zh) Flash数据校验方法及Flash控制器、存储介质、设备
CN110764693B (zh) 一种提高Nand flash数据稳定性的方法以及装置
CN108762975B (zh) 一种ecc数据存储方法、系统及存储介质
WO2019148792A1 (zh) 智能型存储器装置中固件自我修复方法
CN111124740A (zh) 一种数据读取方法、装置、存储设备及机器可读存储介质
US20170235635A1 (en) Solid state storage device and data processing method thereof
US20220254435A1 (en) Semiconductor storage device and error processing method for defective memory cell in the device
CN110058955B (zh) 具有错误纠正功能的内存和相关内存系统
CN117690469A (zh) 内部存储器的故障修复方法及设备
US20180292994A1 (en) Method and device for operating a memory device
CN116312721A (zh) 纠错码的确定方法、数据加载方法和装置
CN116610254A (zh) 一种减少闪存读耗时的方法及其系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant