CN101101790A - 与非闪存的读取方法 - Google Patents
与非闪存的读取方法 Download PDFInfo
- Publication number
- CN101101790A CN101101790A CNA2006100863181A CN200610086318A CN101101790A CN 101101790 A CN101101790 A CN 101101790A CN A2006100863181 A CNA2006100863181 A CN A2006100863181A CN 200610086318 A CN200610086318 A CN 200610086318A CN 101101790 A CN101101790 A CN 101101790A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- flash memory
- page
- related pages
- data
- 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
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及一种与非闪存的读取方法,包括:CPU输入读取的指令和地址,从与非闪存中读取相关页面数据;为了检测是否在上述相关页面数据中存在错误,生成正确的ECC值,将该值与上述相关页面的ECC值进行比较;当上述两个ECC值的比较结果是在上述相关页面中发生1字节错误时,对发生的1字节错误进行纠正后,对相应的错误页面一览表进行更新,当上述相关页面的1字节错误发生的次数超过已设定的频度基准次数时,将相关页面数据存储到已设定的预约区域中;当上述两个ECC值的比较结果是在上述相关页面发生2字节错误时,如果判断在上述预约区域存在相关页面的数据,则读取该区域存储的相关页面数据,执行第2步骤。
Description
技术领域
本发明涉及与非(NAND)闪存的读取方法,尤其涉及在读取与非闪存中的存储数据的过程中实现可能发生的错误最少和稳定与非闪存读取性能的与非闪存的读取方法。
背景技术
最近,在PDA、MP3播放器等多媒体装置中正在广泛使用闪存存储器。尤其当存储媒体的容量较大时,需要使用与非闪存。
闪存存储器划分为或非(NOR)闪存和与非闪存两种。或非闪存价格比较昂贵,可以进行XIP(Execute In Place:芯片内执行);与非闪存价格便宜,但由于利用请求式页面调度(Demand Paging),所以替代XIP存在性能下降的可能。这里,我们对XIP进行说明。所谓XIP是一种即使在随机存取存储器中不装载闪存文件系统中存储的实行代码,也可以执行操作的技术,该技术不但能够减少随机存取存储器的存储器要求量,而且可以同时运行多个应用程序。
与非闪存中使用的请求式页面调度是将用户需要的数据从与非闪存读取一定部分,并存储到SDRAM(同步式动态随机存取存储器)中的技术,由于可以使用的SDRAM的空间受到限制,所以从与非闪存中一次读取的数据量并不多,与读取数据的时间相比,其系统性能降低。
图1为普通的与非闪存的结构示意图。普通的与非闪存一般由512字节[Bytes]构成的主数据和包括错误纠正代码(Error Correction Code:以下简称“ECC”)在内的16字节的备用区域构成。
图2是上述结构构成的与非闪存读取数据方法的示意图。下面,对读取数据的过程进行说明。
首先,为了读取与非闪存中存储的数据,中央处理器(CPU)输入读取指令,并输入要读取的与非闪存的地址。
与非闪存接收到CPU输入的指令和地址后,输出相关数据,为了检测上述与非闪存输出的数据是否存在错误,CPU生成正确的ECC值,将与非闪存输出数据的ECC值与上述CPU生成的ECC值进行比较。
对上述ECC值比较,当两个ECC值相同时,结束读取过程;当两个ECC值不同时,向CPU报告存在错误。
经过上述两个ECC值的比较,当与非闪存输出的数据存在错误时,例如,如果在与非闪存输出数据的最小单位-512字节页中存在1字节错误,则CPU利用从与非闪存接收的ECC值与在CPU中生成的ECC值,查找到1字节错误,并对1字节的错误进行纠正。
但,如果与非闪存输出的数据中存在2字节错误,由于只能判断发生了2字节错误,不能查找到错误位置或错误值,只好向CPU报告发生2字节错误,重新执行读取动作。如果在重新执行的读取动作中再次发生2字节错误,根本没有解决的方法。
即,当读取现有的与非闪存中存储的数据时,当512字节存在1字节错误,可以查找到错误位置,并对错误值进行纠正。但,对于2字节错误却束手无策。当然,发生2字节错误的几率很低,但是,随着使用大容量与非闪存装置的不断增多,读取动作也会增多,因此,发生2字节以上致命错误的几率必然增多。
发明内容
为了解决上述问题,本发明旨在提供一种与非闪存的读取方法,即,当发生1字节错误时,对已具有的管理发生1字节错误页面的错误页面一览表进行更新,如果存在发生1字节错误的次数超过已设定的频度基准的页面,则将超过频度基准页面的数据存储到已设定的预约区域中,当在存储到预约区域的页面中发生2字节错误时,利用存储在预约区域的页面进行修复,提高发生2字节错误页面的错误修复能力,增强与非闪存读取性能的与非闪存的读取方法。
为了实现上述目的,本发明与非闪存的读取方法的特征包括如下步骤:CPU输入读取的指令和地址,从与非闪存读取相关页面数据的第1步骤;为了检测在上述相关页面数据中是否存在错误,生成正确的错误纠正代码值,将生成的ECC值与上述相关页面的ECC值进行比较的第2步骤;当上述两个ECC值的比较结果是在上述相关页面中发生1字节错误时,对发生的1字节错误进行纠正后,对已具有的管理发生1字节错误页面的错误页面一览表进行更新,当上述相关页面的1字节错误发生的次数超过已设定的频度基准次数时,将相关页面的数据存储到已设定的预约区域中的第3步骤;当上述两个ECC值的比较结果是在上述相关页面发生2字节错误时,判断在上述预约区域是否存在相关页面的数据,如果在上述预约区域存在相关页面的数据,则读取在预约区域中存储的相关页面数据,执行第2步骤的第4步骤。
如上所述,本发明的与非闪存的读取方法具有特征:当发生1字节错误时,对已具有的管理发生1字节错误页面的错误页面一览表进行更新,如果存在发生1字节错误的次数超过已设定的频度基准的页面,则将超过频度基准的页面的数据存储到已设定的预约区域中,当在存储到预约区域的页面中发生2字节错误时,利用存储在预约区域的页面进行修复,以此提高发生2字节错误的页面的错误修复能力,提高与非闪存的读取性能。
附图说明
图1为普通的与非闪存结构的示意图。
图2为现有的与非闪存的读取方法的一实施例的顺序框图。
图3为本发明的与非闪存的读取方法的一实施例的顺序框图。
具体实施方式
下面将参照附图对具有以上特征的本发明与非闪存的读取方法的实施例进行详细说明。
本发明的重点在于,在进行与非闪存的读取动作过程中,当与非闪存输出的页面上发生1字节错误时,除了对1字节错误进行修复以外,对常常发生1字节错误的页面的一览表继续管理,以后,当发生2字节错误时,对2字节错误进行修复。
发生上述2字节错误时修复的方法是,通过一览表对常常发生1字节错误的页面继续管理,如果1字节错误发生的次数超过已设定的频度基准次数,则将相关页面存储到与非闪存的部分区域--已设定的预约区域中,以后,如果存储在预约区域中的相关页面发生2字节错误,读取存储在预约区域中的同一页面,并修复。
随着预测错误发生的可能性和预约区域大小的不同,本发明的性能存在很大差异,上述两个变数的最佳值可以根据使用与非闪存的系统特性,通过试验获得。
图3为本发明的与非闪存的读取方法的一实施例的顺序图。如图所示,包括以下几个步骤:CPU输入读取的指令和地址,从与非闪存读取相关页面数据的第1步骤;CPU生成ECC值,将生成的ECC值与上述相关页面的ECC值进行比较的第2步骤;当上述两个ECC值的比较结果是在上述相关页面中发生1字节错误时,对发生的1字节错误进行纠正后,更新错误页面一览表,当上述相关页面的1字节错误发生的次数超过已设定的频度基准次数时,将相关页面数据存储到已设定的预约区域中的第3步骤;当上述两个ECC值的比较结果是在上述相关页面发生2字节错误时,如果在上述预约区域存在相关页面的数据,读取在预约区域中存储的相关页面数据,执行第2步骤的第4步骤。
而且,与非闪存的读取方法还包括:当发生上述2字节错误时,如果在预约区域不存在发生2字节错误的相关页面的数据,则向CPU报告2字节错误的步骤。
下面,对以上步骤构成的本发明的动作进行详细说明。
首先,为了读取与非闪存中存储的数据,CPU输入读取指令,并输入要读取的与非闪存的地址。
CPU从与非闪存读取与上述输入的指令和地址对应的相关页面数据,为了检测与非闪存输出的相关页面数据中是否存在错误,生成正确的ECC值,将与非闪存输出的相关页面数据的ECC值与其进行比较。
对上述ECC值比较,当两个ECC值相同时,由于在相关页面没有错误,结束读取过程,当两个ECC值不同时,向CPU报告存在错误。
经过比较上述两个ECC值,如果在与非闪存输出的数据中存在1字节错误,CPU就利用从与非闪存接收的ECC值与在CPU中生成的ECC值,查找到1字节错误,并对1字节的错误进行纠正。
对上述相关页面的1字节错误进行纠正,然后对已设定的错误页面一览表的相应错误页面信息进行更新。即,上述错误页面一览表包括发生1字节错误页面的1字节错误发生的次数,如果存储在上述一览表中的页面再次发生1字节错误,就增加页面的错误发生次数,更新一览表。而且,当存储在上述错误页面一览表中的页面的1字节错误发生次数相同时,在最近发生的页面上设置加权值进行管理。这是由于当在与非闪存中存储数据时,存在时间的类似性,最近使用的数据很有可能在一定期间持续使用的缘故。
完成更新上述错误页面一览表后,判断发生1字节错误的相应页面的错误发生的次数是否超过已设定的频度基准。当上述判断结果为,如果与非闪存输出的相应页面的1字节错误发生的次数超过频度基准,则将相应页面的数据存储到已设定的预约区域中。这时,预约区域大小据读取动作以页面单位形成,将页面单位的预约区域大小设置较多即可,但通常,在需要进行清除动作的情况下,由于其基本单位是由32个页面构成的块,预约区域的大小优选为块大小。而且,预约区域大小并没有规定,随着存储装置的容量的大小和常常执行的动作不同,预约区域大小也不同。
相反,当上述两个ECC值的比较结果为,如果在与非闪存输出的相应页面上存在2字节错误,判断在预约区域是否存在与相关页面相同的页面数据,当不存在与相关页面相同的页面数据时,与现有的技术一样,向CPU报告存在2字节错误后,结束动作;否则,当在预约区域存在与发生2字节错误相应页面相同的页面数据时,读取在预约区域中存储的相应页面的数据。
如果读取在预约区域中存储的相应页面的数据,由于执行读取动作,为了检测相应页面的错误,在CPU中生成正确的ECC值,并重新运行在上述预约区域读取的相应页面的ECC值与上述CPU中生成的ECC值进行比较的过程。
由于本发明通过比较在预约区域中读取的相应页面的ECC值和CPU中生成的ECC值,进行错误纠正,即使在与非闪存输出的相应页面上发生2字节错误,也可以对错误进行修复,具有提高效率的优点。
并且,由于很难掌握使用频度低的页面的错误特性,所以本发明在初始化过程中,一次读取与非闪存中存储的整个页面的数据,掌握所有页面的读取错误特性。
Claims (4)
1、一种与非闪存的读取方法,其特征在于,包括如下步骤:
CPU输入读取的指令和地址,从与非闪存读取相关页面的数据的第1步骤;
为了检测是否在上述相关页面数据中存在错误,生成正确的ECC值,将生成的ECC值与上述相关页面的ECC值进行比较的第2步骤;
当上述两个ECC值的比较结果是在上述相关页面中发生1字节错误时,对发生的1字节错误进行纠正后,对已具有的管理发生1字节错误页面的错误页面一览表进行更新,当上述相关页面的1字节错误发生的次数超过已设定的频度基准次数时,将相关页面数据存储到已设定的预约区域中的第3步骤;
当上述两个ECC值的比较结果是在上述相关页面发生2字节错误时,判断在上述预约区域是否存在相关页面的数据,如果在上述预约区域存在相关页面的数据,读取在预约区域中存储的相关页面数据,执行第2步骤的第4步骤。
2、如权利要求1所述与非闪存的读取方法,其特征在于:当在上述相应页面发生上述2字节错误时,如果在预约区域不存在相关页面的数据,则向CPU报告2字节错误。
3、如权利要求1所述的与非闪存的读取方法,其特征在于:上述预约区域大小是由32个页面构成的块大小。
4、如权利要求1所述的与非闪存的读取方法,其特征在于:上述错误页面一览表包括发生1字节错误的页面的1字节错误发生的次数,如果存储在上述一览表中的页面再次发生1字节错误,就增加页面的错误发生次数,并进行更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100863181A CN100536027C (zh) | 2006-07-07 | 2006-07-07 | 与非闪存的读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100863181A CN100536027C (zh) | 2006-07-07 | 2006-07-07 | 与非闪存的读取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101101790A true CN101101790A (zh) | 2008-01-09 |
CN100536027C CN100536027C (zh) | 2009-09-02 |
Family
ID=39036018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100863181A Expired - Fee Related CN100536027C (zh) | 2006-07-07 | 2006-07-07 | 与非闪存的读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100536027C (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923570A (zh) * | 2010-07-21 | 2010-12-22 | 中国电子科技集团公司第三十八研究所 | 一种在Windows CE环境下建立大页面NAND Flash存储系统的方法 |
CN101510173B (zh) * | 2008-10-10 | 2010-12-29 | 慧帝科技(深圳)有限公司 | 一种减少储存次数的资料储存方法及其装置 |
CN101645026B (zh) * | 2008-08-07 | 2011-11-16 | 创惟科技股份有限公司 | 根据错误更正码更新闪存页面的储存装置与方法 |
CN102455979A (zh) * | 2010-10-18 | 2012-05-16 | 英业达股份有限公司 | 受损存储单元的资料保护方法 |
WO2014075522A1 (en) * | 2012-11-14 | 2014-05-22 | International Business Machines Corporation | Reconstructive error recovery procedure (erp) for multiple data sets using reserved buffer |
US9053748B2 (en) | 2012-11-14 | 2015-06-09 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) using reserved buffer |
US9104576B2 (en) | 2013-07-16 | 2015-08-11 | International Business Machines Corporation | Dynamic buffer size switching for burst errors encountered while reading a magnetic tape |
US9141478B2 (en) | 2014-01-07 | 2015-09-22 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) using reserved buffer |
US9582360B2 (en) | 2014-01-07 | 2017-02-28 | International Business Machines Corporation | Single and multi-cut and paste (C/P) reconstructive error recovery procedure (ERP) using history of error correction |
-
2006
- 2006-07-07 CN CNB2006100863181A patent/CN100536027C/zh not_active Expired - Fee Related
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645026B (zh) * | 2008-08-07 | 2011-11-16 | 创惟科技股份有限公司 | 根据错误更正码更新闪存页面的储存装置与方法 |
CN101510173B (zh) * | 2008-10-10 | 2010-12-29 | 慧帝科技(深圳)有限公司 | 一种减少储存次数的资料储存方法及其装置 |
CN101923570A (zh) * | 2010-07-21 | 2010-12-22 | 中国电子科技集团公司第三十八研究所 | 一种在Windows CE环境下建立大页面NAND Flash存储系统的方法 |
CN102455979A (zh) * | 2010-10-18 | 2012-05-16 | 英业达股份有限公司 | 受损存储单元的资料保护方法 |
GB2523281A (en) * | 2012-11-14 | 2015-08-19 | Ibm | Reconstructive error recovery procedure (ERP) for multiple data sets using reserved buffer |
US8793552B2 (en) | 2012-11-14 | 2014-07-29 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) for multiple data sets using reserved buffer |
US9053748B2 (en) | 2012-11-14 | 2015-06-09 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) using reserved buffer |
WO2014075522A1 (en) * | 2012-11-14 | 2014-05-22 | International Business Machines Corporation | Reconstructive error recovery procedure (erp) for multiple data sets using reserved buffer |
GB2523281B (en) * | 2012-11-14 | 2016-12-14 | Ibm | Reconstructive error recovery procedure (ERP) for multiple data sets using reserved buffer |
DE112013005453B4 (de) * | 2012-11-14 | 2017-03-02 | International Business Machines Corporation | Rekonstruierende Fehlerbehebungsprozedur (ERP) für mehrerer Datensätze unter Verwendung eines reservierten Puffers |
US9590660B2 (en) | 2012-11-14 | 2017-03-07 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) using reserved buffer |
US10110257B2 (en) | 2012-11-14 | 2018-10-23 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) for multiple data sets using reserved buffer |
US9104576B2 (en) | 2013-07-16 | 2015-08-11 | International Business Machines Corporation | Dynamic buffer size switching for burst errors encountered while reading a magnetic tape |
US9583136B2 (en) | 2013-07-16 | 2017-02-28 | International Business Machines Corporation | Dynamic buffer size switching for burst errors encountered while reading a magnetic tape |
US9141478B2 (en) | 2014-01-07 | 2015-09-22 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) using reserved buffer |
US9564171B2 (en) | 2014-01-07 | 2017-02-07 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) using reserved buffer |
US9582360B2 (en) | 2014-01-07 | 2017-02-28 | International Business Machines Corporation | Single and multi-cut and paste (C/P) reconstructive error recovery procedure (ERP) using history of error correction |
Also Published As
Publication number | Publication date |
---|---|
CN100536027C (zh) | 2009-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100536027C (zh) | 与非闪存的读取方法 | |
EP2901286B1 (en) | Techniques associated with a read and write window budget for a two level memory system | |
CN102385535B (zh) | 处理从非易失性存储器进行设备引导期间的错误 | |
CN101782871B (zh) | 信息处理装置、处理器及存储器管理方法 | |
US8756474B2 (en) | Method for initiating a refresh operation in a solid-state nonvolatile memory device | |
US8799555B2 (en) | Boot data storage schemes for electronic devices | |
CN103106143B (zh) | 固态储存装置及其逻辑至实体对应表建立方法 | |
US20210034128A1 (en) | Power backup architecture to manage capacitor health | |
CN101848000A (zh) | 解码方法、编码方法及启动控制系统 | |
US9652330B2 (en) | Method for data management and memory storage device and memory control circuit unit | |
CN103914392A (zh) | 闪存的空块回收方法及装置 | |
CN103247345A (zh) | 快闪存储器及快闪存储器失效存储单元检测方法 | |
CN102890645B (zh) | 存储器储存装置、存储器控制器与数据写入方法 | |
CN102200937A (zh) | 一种与非闪存中数据读取的方法、装置及电视机系统 | |
US20050283647A1 (en) | External storage device | |
CN100549971C (zh) | 一种读取cpu代码的方法及装置 | |
CN102388365B (zh) | 一种处理器启动方法及装置 | |
US20140229796A1 (en) | Electronic Control Apparatus | |
CN102508731B (zh) | 基于rs编译码的操作系统的容错启动方法 | |
TWI467579B (zh) | 電子裝置及其記憶體控制方法以及相關電腦可讀取儲存媒體 | |
CN101727361A (zh) | 一种终端产品版本存储的方法与系统 | |
CN1239986C (zh) | 计算机的双基本输入输出系统 | |
US20050268077A1 (en) | Memory system for an electronic device and the method for controlling the same | |
US20090063758A1 (en) | Program and read method and program apparatus of nand flash memory | |
CN113495673B (zh) | 读写方法及存储器装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090902 Termination date: 20180707 |