CN109165115A - 一种增强flash存储器可靠性的方法 - Google Patents
一种增强flash存储器可靠性的方法 Download PDFInfo
- Publication number
- CN109165115A CN109165115A CN201810665139.6A CN201810665139A CN109165115A CN 109165115 A CN109165115 A CN 109165115A CN 201810665139 A CN201810665139 A CN 201810665139A CN 109165115 A CN109165115 A CN 109165115A
- Authority
- CN
- China
- Prior art keywords
- flash
- flash memory
- page
- mapping table
- access
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明介绍一种增强FLASH存储器可靠性的方法,涉及应对上层应用对FLASH存储器页的访问请求,通过建立FLASH映射表,在映射表中查找访问页对应的实际地址,访问该实际地址;访问后,检查硬件提供的ECC校验寄存器,如果该寄存器的值为0,则表示访问成功;如果该寄存器的值为1,则表示存在ECC1bit错误并被纠错,此错误作为换页条件,进行换页操作。换页时,在映射表中按规则找到可用冗余区的页地址,如果冗余区耗尽,FLASH存储器可靠性失效,否则使用该冗余区,并更新FLASH映射表信息,完成换页操作。本发明介绍的方法,可以通过建立FLASH映射表,配置FLASH存储器冗余区大小,动态提升FLASH存储器的可靠性,解决不同用户对FLASH存储器可靠性的需求,提高开发效率。
Description
技术领域
本发明涉及芯片FLASH存储器领域,特别涉及一种增强FLASH存储器可靠性的方法。
背景技术
得益于所具有的大容量、高速度、低功耗、非易失性等优点,闪存(FLASH)存储器正在人们的日常生活中占据着越来越多、越来越重要的位置;但是由于FLASH存储器在更新数据之前,必须先对其所在块/页擦除才能进行写操作,而每个块/页的擦写次数有上限;在FLASH存储器使用过程中,随着使用时间和使用次数的增加,FLASH存储器就会出现坏块/页或者存在坏块/页的隐患,尤其是对某一些块/页的擦写相比于对其它块/页更加频繁(热点页),将会导致,FLASH块/页数据存储出现异常,影响FLASH存储器可靠性,缩短了整片FLASH的使用寿命。
同时,部分芯片从硬件层面提出一种延长可靠性的方案,即ECC校验机制。该机制利用了存储器中每一bit可靠性有差异的特点,并试验证明通常1bit出错先出现。首先,存储器会对存储器做ECC校验值的冗余存储,并在访问存储器之后,使用ECC算法对读出数据加ECC校验值进行校验,如果数据存在1bit失效,ECC算法本身能够纠错,保证数据正确。如果数据存在2bit失效,ECC算法无法纠错,可靠性失效。
ECC校验机制确实提升了FLASH存储器的可靠性,但是为了达到更好的效果,能够将存储器可靠性提升若干倍,并且不修改硬件设计,本发明提出了一种增强FLASH存储器可靠性的方法。
发明内容
本发明所解决的技术问题是,如何设计一种增强FLASH存储器可靠性的方法。
本发明的方法针对FLASH存储器的读写访问,通过建立FLASH映射表,将ECC算法校验错误标志作为控制信号进行坏页处理以及针对FLASH存储器映射断电的镜像处理;通过坏页处理,使用FLASH冗余区存储器页代替目标FLASH存储区FLASH页,提升FLASH存储器热点页的寿命,增强FLASH存储器整体的可靠性。
为了更好的理解图2中增强FLASH存储器可靠性方法的流程图的流程说明,增加了流程中需要操作的各步骤描述,说明如下:
ECC校验,是指芯片在针对FLASH存储器进行读写操作时,对FLASH存储器数据进行ECC算法校验,并将校验结果标志写入寄存器,通过该硬件寄存器标志判断FLASH存储器可靠性;
读/写FLASH,是指用户针对FLASH存储器的读操作和写操作;
FLASH映射表,是指实现用户FLASH存储器逻辑地址和实际访问的FLASH存储器地址映射关系的管理,供读/写FLASH调用;
坏页处理,是指根据ECC校验输出寄存器标志信号,通过FLASH映射表选择直接操作对应存储器地址还是FLASH冗余区进行替换,并更新FLASH映射表,实际使用块或页可根据FLASH存储器最小操作单位设定;
FLASH存储区,是指默认和用户FLASH逻辑地址对应的存储芯片FLASH数据的区域;
FLASH冗余区,是指当目标FLASH存储区坏页后,新存储芯片FLASH数据的区域。
本发明的方法,在原有用户应用和硬件的体系结构中,通过建立FLASH映射表及其换页处理功能替换原有FLASH存储器的读写操作接口,将读写接口均连接FLASH映射表,即逻辑地址和芯片物理地址映射表,FLASH映射表初始化为默认值(可以全0或者全1),表示默认状态下FLASH存储器用户逻辑地址即为实际FLASH存储器物理地址;当坏页处理产生使用FLASH冗余区替换目标存储器后,将物理地址块/页地址信息更新到FLASH存储器映射中。
本发明方法使用的芯片硬件ECC算法校验机制,即为芯片在FLASH存储器读写操作后,对FLASH存储器数据进行ECC算法校验,当数据开始出现BIT位错误时,应将将校验结果标志写入寄存器,同时硬件将自动完成此次数据的BIT位纠错,输出正确的FLASH存储器数据,本发明方法通过该硬件寄存器标志信号通过FLASH映射表启动坏页处理,将正确的FLASH存储器数据更新到FLASH冗余区,并更新地址信息到FLASH映射表中。当进行坏页处理时,循环查找空余FLASH冗余区,并且保证在替换时擦写正确,没有ECC算法校验错误。
同时为了保证坏页处理过程中FLASH映射表更新过程发生断电或者异常时,重新上电或异常恢复以后,FLASH存储器映射数据值为旧值或者新值,而不是第三态,本发明方法在坏页处理过程中可以增加镜像处理,在FLASH映射表更新时进行数据镜像备份,当新上电或异常恢复时,先判断FLASH映射表镜像备份数据的合法性,然后根据判断结果选择恢复或者忽略镜像数据,这里的镜像处理可以使用业界通用备份方法,目的是保证FLASH映射表再次上电的正确性,如果芯片FLASH存储器自身可以保证,可以不进行镜像处理。
本发明方法针对作为用户数据区的FLASH存储区进行设计,会额外占用FLASH存储数据区存放FLASH存储器映射、镜像备份区,同时由于需要根据用户划定数据区作为FLASH存储器映射,因此会使用RAM资源申明全局变量,且额外申请FLASH存储数据区作为配置区保存全局变量;这些额外占用的区域会减少用户资源,存放位置用户可以根据需求固定在FLASH存储区的任何位置,这是可以由用户指定的。
本发明方法为了解决整体FLASH存储器的可靠性瓶颈,即增强应用频繁擦写次数高于FLASH存储器块/页本征寿命热点页的寿命,还需要依附单独开启的FLASH冗余区作为FLASH存储区的坏页轮转替换;当目标FLASH存储区坏页后,代替原目标FLASH存储区作为新存储芯片FLASH数据的区域。
附图说明
图1是增强FLASH存储器可靠性方法的软件层次及操作说明图。
图2是增强FLASH存储器可靠性方法的流程图。
具体实施方式
下面结合附图对本发明方法进行详细说明。
如图1所示,本发明的方法主要是在用户应用和硬件读写FLASH存储器之间通过建立FLASH映射表来实现功能,其中主要包含映射信息初始化、坏页处理等;
当程序上电后,将FLASH映射表初始化为默认值,表示默认状态下FLASH存储器用户逻辑地址即为实际FLASH存储器物理地址;将全局变量和镜像处理初始化为默认值,表示默认的映射区域以及未断电;
读/写FLASH通过读写接口连接FLASH映射表,获取当前的FLASH存储器用户逻辑地址和实际FLASH存储器物理地址的映射关系,每次访问FLASH存储器前,需要先清空ECC校验输出到寄存器的标志信号,表示后续坏页处理模块获取的标志均为本次FLASH存储器操作引起;
当读写接口进行通过FLASH映射表进行FLASH读/写操作后,将根据ECC校验输出到寄存器的标志信号,判定当前FLASH存储器映块/页操作是否产生错误来决定是否启动坏页处理,使用FLASH冗余区进行替换,如果启动FLASH冗余区进行替换,将更新FLASH映射表,如果有必要可以采用通用镜像处理,保证由于芯片断电操作引起的第三态问题不出现,保证FLASH映射表数据再次上电的正确性。
如图2所示,给出本发明方法具体使用流程图,流程图中介绍第一次使用本发明方法功能如何操作,按以下步骤操作,保证本发明方法功能的正确性,增强FLASH存储器的可靠性:
步骤1,上电后,建立FLASH映射表及初始化,等待上层应用对FLASH存储器访问请求;
步骤2,应对FLASH存储器访问请求,在映射表中进行映射查找,得到实际FLASH存储地址;
步骤3,根据需要操作的实际FLASH存储地址,访问FLASH存储器地址;
步骤4,判断是否需要换页,判断条件为:如果是读访问,检查ECC校验寄存器,为0则不需要换页,访问成功,退出判断;为1则需要换页但返回数据正确,进入步骤5;为其他值则ECC无法纠错,访问失败,退出判断;如果是写访问,检查写函数返回值,如果为0,则不需要换页,访问成功,退出判断;为1则需要换页但返回数据正确,进入步骤5;
步骤5,查询FLASH映射表,按规则找到可用冗余区的页地址。如果冗余区已经耗尽,进入步骤6;如果存在可用的冗余区页,则先将冗余页值更新为与替换页相同,再更新FLASH映射表信息(此步骤应进行镜像保护),访问成功,流程结束;
步骤6,冗余区耗尽,无法换页,存储器整体可靠性失效,访问彻底失败,流程终止。
通过本发明的阐述,对于产品化的芯片,可以预见整体FLASH存储器的可靠性瓶颈是擦写次数高于FLASH存储器块/页的本征寿命的热点页。那么,具体而言,整体热点区寿命提升约:其中Pr为FLASH冗余区大小,n为热点区块/页大小。因此本发明介绍的方法,根据FLASH存储器冗余区的容量配置,可以动态提升FLASH存储器的可靠性,解决不同用户对FLASH存储器可靠性的需求,提高程序开发的测试效率。
Claims (5)
1.一种增强FLASH存储器可靠性的方法,其特征在于,按以下步骤操作进行程序执行和处理,改进FLASH存储器的可靠性:
步骤1,上电后,建立FLASH映射表及初始化,等待上层应用对FLASH存储器访问请求;
步骤2,应对FLASH存储器访问请求,在映射表中进行映射查找,得到实际FLASH存储地址;
步骤3,根据需要操作的实际FLASH存储地址,访问FLASH存储器地址;
步骤4,判断是否需要换页,判断条件为:如果是读访问,检查ECC校验寄存器,为0则不需要换页,访问成功,退出判断;为1则需要换页但返回数据正确,进入步骤5;为其他值则ECC无法纠错,访问失败,退出判断;如果是写访问,检查写函数返回值,如果为0,则不需要换页,访问成功,退出判断;为1则需要换页但返回数据正确,进入步骤5;
步骤5,查询FLASH映射表,按规则找到可用冗余区的页地址,如果冗余区已经耗尽,进入步骤6;如果存在可用的冗余区页,则先将冗余页值更新为与替换页相同,再更新FLASH映射表信息,访问成功,流程结束;
步骤6,冗余区耗尽,无法换页,存储器整体可靠性失效,访问彻底失败,流程终止。
2.根据权利要求1所述的方法,其特征在于利用芯片在FLASH存储器访问后产生的ECC校验结果作为控制信号进行坏页处理;基于芯片ECC算法校验机制,在每次FLASH存储器访问操作完成后,芯片对数据进行ECC算法校验,结果写入寄存器,并自动纠错FLASH存储器页访问的数据,保证读出数据的正确性。
3.根据权利要求1所述的方法,其特征在于使用FLASH冗余区页代替目标FLASH存储区页;代替的方式为:为所有存储页建立FLASH映射表,每个FLASH存储页在FLASH映射表中有对应的实际地址,当发生换页时,将冗余区页地址信息更新到对应的FLASH映射表位置。
4.根据权利要求1所述的方法,其特征在于FLASH映射表可以进行所有存储器页信息管理,包括换页、坏页信息等处理。
5.根据权利要求1所述的方法,其特征在于可以通过配置FLASH映射表、FLASH存储器冗余区大小,动态提升FLASH存储器的可靠性,解决不同用户对FLASH存储器可靠性的需求,提高开发效率可以进行所有存储器页信息管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810665139.6A CN109165115B (zh) | 2018-06-26 | 2018-06-26 | 一种增强flash存储器可靠性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810665139.6A CN109165115B (zh) | 2018-06-26 | 2018-06-26 | 一种增强flash存储器可靠性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109165115A true CN109165115A (zh) | 2019-01-08 |
CN109165115B CN109165115B (zh) | 2021-11-09 |
Family
ID=64897266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810665139.6A Active CN109165115B (zh) | 2018-06-26 | 2018-06-26 | 一种增强flash存储器可靠性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109165115B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704236A (zh) * | 2019-10-11 | 2020-01-17 | 南京元晨微电子科技有限公司 | 芯片flash数据的在线校验方法及计算机存储介质 |
CN112540723A (zh) * | 2020-11-06 | 2021-03-23 | 深圳市民德电子科技股份有限公司 | 一种NOR Flash坏点补偿的方法 |
TWI740454B (zh) * | 2020-04-14 | 2021-09-21 | 慧榮科技股份有限公司 | 反應電源事件的資料存取方法及裝置 |
CN113724772A (zh) * | 2021-07-12 | 2021-11-30 | 深圳市美信咨询有限公司 | 存储器失效位置查找方法、装置和计算机设备 |
US11342008B2 (en) | 2020-04-14 | 2022-05-24 | Silicon Motion, Inc. | Method and apparatus for accessing to data in response to power-supply event |
CN114647534A (zh) * | 2022-05-24 | 2022-06-21 | 国网山东省电力公司营销服务中心(计量中心) | 一种基于数字化控制设备的数据存储方法及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0096781B1 (en) * | 1982-06-16 | 1989-11-29 | International Business Machines Corporation | System for updating error map of fault tolerant memory |
CN1905070A (zh) * | 2005-07-28 | 2007-01-31 | 三星电子株式会社 | 能够存储多比特数据和单比特数据的闪存设备 |
US20090052241A1 (en) * | 2007-08-22 | 2009-02-26 | Hynix Semiconductor Inc. | Method of operating a non-volatile memory device |
CN101615145A (zh) * | 2009-07-24 | 2009-12-30 | 中兴通讯股份有限公司 | 一种提高存储器数据缓存可靠性的方法和装置 |
CN101834611A (zh) * | 2010-05-06 | 2010-09-15 | 复旦大学 | 一种纠正多比特错误的ecc电路 |
CN103295649A (zh) * | 2013-04-28 | 2013-09-11 | 上海宏力半导体制造有限公司 | 提高nvm可靠性的方法 |
CN103353855A (zh) * | 2013-07-27 | 2013-10-16 | 深圳市瑞耐斯技术有限公司 | 一种nand闪存存储设备及其带外数据读取方法 |
CN103559141A (zh) * | 2013-11-01 | 2014-02-05 | 北京昆腾微电子有限公司 | 非易失性存储器的管理方法和装置 |
CN104616698A (zh) * | 2015-01-28 | 2015-05-13 | 山东华翼微电子技术股份有限公司 | 一种充分利用存储器冗余单元的方法 |
CN204833244U (zh) * | 2015-08-19 | 2015-12-02 | 首都师范大学 | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置 |
CN105788647A (zh) * | 2014-12-26 | 2016-07-20 | 北京兆易创新科技股份有限公司 | 一种非易失存储器的纠错方法和装置 |
-
2018
- 2018-06-26 CN CN201810665139.6A patent/CN109165115B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0096781B1 (en) * | 1982-06-16 | 1989-11-29 | International Business Machines Corporation | System for updating error map of fault tolerant memory |
CN1905070A (zh) * | 2005-07-28 | 2007-01-31 | 三星电子株式会社 | 能够存储多比特数据和单比特数据的闪存设备 |
US20090052241A1 (en) * | 2007-08-22 | 2009-02-26 | Hynix Semiconductor Inc. | Method of operating a non-volatile memory device |
CN101615145A (zh) * | 2009-07-24 | 2009-12-30 | 中兴通讯股份有限公司 | 一种提高存储器数据缓存可靠性的方法和装置 |
CN101834611A (zh) * | 2010-05-06 | 2010-09-15 | 复旦大学 | 一种纠正多比特错误的ecc电路 |
CN103295649A (zh) * | 2013-04-28 | 2013-09-11 | 上海宏力半导体制造有限公司 | 提高nvm可靠性的方法 |
CN103353855A (zh) * | 2013-07-27 | 2013-10-16 | 深圳市瑞耐斯技术有限公司 | 一种nand闪存存储设备及其带外数据读取方法 |
CN103559141A (zh) * | 2013-11-01 | 2014-02-05 | 北京昆腾微电子有限公司 | 非易失性存储器的管理方法和装置 |
CN105788647A (zh) * | 2014-12-26 | 2016-07-20 | 北京兆易创新科技股份有限公司 | 一种非易失存储器的纠错方法和装置 |
CN104616698A (zh) * | 2015-01-28 | 2015-05-13 | 山东华翼微电子技术股份有限公司 | 一种充分利用存储器冗余单元的方法 |
CN204833244U (zh) * | 2015-08-19 | 2015-12-02 | 首都师范大学 | 嵌入式微处理器高速缓存4位数据翻转错误的纠正装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110704236A (zh) * | 2019-10-11 | 2020-01-17 | 南京元晨微电子科技有限公司 | 芯片flash数据的在线校验方法及计算机存储介质 |
CN110704236B (zh) * | 2019-10-11 | 2020-09-01 | 南京元晨微电子科技有限公司 | 芯片flash数据的在线校验方法及计算机存储介质 |
TWI740454B (zh) * | 2020-04-14 | 2021-09-21 | 慧榮科技股份有限公司 | 反應電源事件的資料存取方法及裝置 |
US11342008B2 (en) | 2020-04-14 | 2022-05-24 | Silicon Motion, Inc. | Method and apparatus for accessing to data in response to power-supply event |
US11664056B2 (en) | 2020-04-14 | 2023-05-30 | Silicon Motion, Inc. | Method and apparatus for accessing to data in response to power-supply event |
CN112540723A (zh) * | 2020-11-06 | 2021-03-23 | 深圳市民德电子科技股份有限公司 | 一种NOR Flash坏点补偿的方法 |
CN113724772A (zh) * | 2021-07-12 | 2021-11-30 | 深圳市美信咨询有限公司 | 存储器失效位置查找方法、装置和计算机设备 |
CN114647534A (zh) * | 2022-05-24 | 2022-06-21 | 国网山东省电力公司营销服务中心(计量中心) | 一种基于数字化控制设备的数据存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109165115B (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109165115A (zh) | 一种增强flash存储器可靠性的方法 | |
JP4129381B2 (ja) | 不揮発性半導体記憶装置 | |
US8205070B2 (en) | Device bootup from a NAND-type non-volatile memory | |
CN101937374B (zh) | 存储存储器重映射信息的非易失性存储器 | |
JP4059473B2 (ja) | メモリカード及びメモリコントローラ | |
JP3708047B2 (ja) | フラッシュメモリの管理方法 | |
KR20060012696A (ko) | 불량 블록 관리 기능을 가지는 플레시 메모리 장치 및플레시 메모리 장치의 불량 블록 관리 방법. | |
US8296504B2 (en) | Data management method and flash memory storage system and controller using the same | |
EP1934752A1 (en) | Flash memory management | |
US8694748B2 (en) | Data merging method for non-volatile memory module, and memory controller and memory storage device using the same | |
US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
US20080189476A1 (en) | Nonvolatile semiconductor storage device and method of managing the same | |
CN101625897A (zh) | 用于快闪存储器的数据写入方法、储存系统与控制器 | |
JP4034947B2 (ja) | 不揮発性記憶システム | |
JP4158526B2 (ja) | メモリカード及びメモリへのデータ書き込み方法 | |
CN101425334B (zh) | 一种实现nor flash坏块管理的方法及其控制电路 | |
US8068363B2 (en) | Flash memory apparatus and read operation control method therefor | |
CN111124294B (zh) | 一种扇区映射信息的管理方法及装置、存储介质和设备 | |
US20100325344A1 (en) | Data writing method for flash memory and control circuit and storage system using the same | |
CN108108118B (zh) | 数据写入方法以及存储控制器 | |
CN110968455B (zh) | 一种非易失性存储器的修复方法及装置 | |
CN110633056B (zh) | 在操作系统层面的Flash芯片的页面管理方法及存储设备 | |
CN101661432B (zh) | 闪存区块管理方法、闪存储存系统及控制器 | |
JP4433792B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4641034B2 (ja) | 不揮発性記憶システム |
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 |