CN101908023A - NandFlash存储器中数据存储方法 - Google Patents
NandFlash存储器中数据存储方法 Download PDFInfo
- Publication number
- CN101908023A CN101908023A CN 201010247594 CN201010247594A CN101908023A CN 101908023 A CN101908023 A CN 101908023A CN 201010247594 CN201010247594 CN 201010247594 CN 201010247594 A CN201010247594 A CN 201010247594A CN 101908023 A CN101908023 A CN 101908023A
- Authority
- CN
- China
- Prior art keywords
- data block
- space
- execution
- storage
- nandflash
- 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
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及Flash存储技术,针对传统技术中在NandFlash存储器中数据存储可靠性低的缺陷,本发明公开了一种具有高可靠性的在NandFlash存储器中数据存储方法。其技术方案的要点可概括为:通过对NandFlash存储空间进行划分,划分为可用空间、备份空间及索引空间,当检测到可用空间中的某个数据块为坏块时,通过搜索索引空间记录,在备份空间中寻找其对应数据块来进行读写,而如果没有对应的数据块则需要将备份空间中第一个未使用的临界状态数据块作为其对应数据块,并在索引空间中新建对应关系。本发明的有益效果是:在NandFlash存储器中实现可靠数据存储,提高存储空间利用率。
Description
技术领域
本发明涉及Flash存储技术,具体的说是涉及NandFlash存储器中数据存储方法。
背景技术
Flash是嵌入式设备(手机、机顶盒、掌上设备等)中最常用的存储介质,主要分为NandFlash与NorFlash。NorFlash具有寿命长(擦写次数达数十万次)、坏块少(使用寿命内可以保证不会产生坏块)的高可靠性,但是其容量小(一般最大64MB)、价格高(是NandFlash的数倍)。与NorFlash相比,NandFlash具有寿命稍短(擦写次数数万次)、坏块比例千分之三(并且使用过程中会产生新的坏块),但是容量大(一般最低64MB、最高可达数GB)、价格低。基于上述对比,除了对存储容量要求比较小、可靠性要求非常高的产品外,大部分民用级嵌入式设备越来越多的青睐于使用NandFlash作为系统程序和用户数据的存储介质。
坏块,是指数据块在出厂时就已经变成了无法使用的数据块;临界状态的块,是指使用过程中对该数据块进行擦除或者写入过程中可能发生错误的数据块(但是读取数据不会发生错误)。因此要想实现在NandFlash存储器中可靠存储,就需要设法规避坏块与临界状态的块。而传统技术中在NandFlash存储器中存储数据是采用直接读取、擦除、写入的方式,并没有规避坏块和临界状态的块,导致存储的可靠性低。
发明内容
本发明所要解决的技术问题是:针对传统技术中在NandFlash存储器中数据存储可靠性低的缺陷,提供一种具有高可靠性的在NandFlash存储器中数据存储方法。
本发明解决上述技术问题所采用的技术方案是:NandFlash存储器中数据存储方法,包括以下步骤:
a.划分NandFlash存储空间,分为可用空间、备份空间及索引空间,可用空间用以存储操作系统文件的数据块,备份空间用以转存储临界状态的数据块,索引空间用以存储可用空间数据块与备份空间数据块的对应关系的记录表;
b.当需要对可用空间内某一地址进行读、写操作时,首先判断该地址对应的数据块A是否为坏块,是则执行步骤e,否则对其进行读、写操作,并执行步骤c;
c.判断读、写操作中是否存在出错情况,是则执行步骤d,否则,成功返回,不执行后续步骤;
d.将数据块A标注为“坏块”,并执行步骤h;
e.搜索索引空间中的记录表,判断是否存在数据块A的记录,如果有记录则执行步骤f,否则执行步骤g;
f.找到数据块A在备份空间中的对应数据块B,对数据块B进行读、写操作,并判断是否存在出错情况,是则将数据块B标注为“坏块”,并执行步骤h,否则,成功返回,不执行后续步骤;
g.如果当前需要执行读操作,则出错返回,如果当前需要执行写操作,则执行步骤h;
h.在备份空间中寻找第一个未被使用的临界状态的数据块C,对该数据块进行写操作,如果成功,则执行步骤i,如果出错,则将数据块C标注为“坏块”,返回步骤h;
i.在索引空间的记录表中新增一条记录,记录数据块A与数据块C的对应关系。
进一步,所述写操作包括:擦除、写入、校验。
本发明的有益效果是:在NandFlash存储器中实现可靠数据存储,提高存储空间利用率。
附图说明
图1为本发明的方法流程图。
具体实施方式
下面结合附图及实施例对本发明作进一步的描述。
本发明针对传统技术中在NandFlash存储器中数据存储可靠性低的缺陷,提供一种具有高可靠性的在NandFlash存储器中数据存储方法。相对于传统技术,其改进点可概括为:通过对NandFlash存储空间进行划分,划分为可用空间、备份空间及索引空间,可用空间用以存储操作系统文件的数据块,备份空间用以转存储临界状态的数据块,索引空间用以存储可用空间数据块与备份空间数据块的对应关系的记录表;当检测到可用空间中的某个数据块为坏块时,通过搜索索引空间记录,在备份空间中寻找其对应数据块来进行规避,而如果没有对应的数据块则需要将备份空间中第一个未使用的临界状态数据块作为其对应数据块,并在索引空间中新建对应关系。据此,可在成本相对较低、容量相对较大的、可靠性却相对较低的NandFlash存储器中实现数据的透明、可靠性存储。
如图1所示,本发明中的NandFlash存储器中数据存储方法,具体实现步骤如下:
a.划分NandFlash存储空间:分为可用空间、备份空间及索引空间,可用空间用以存储操作系统文件的数据块,备份空间用以转存储临界状态的数据块,索引空间用以存储可用空间数据块与备份空间数据块的对应关系的记录表;
b.当需要对可用空间内某一地址进行读、写操作时,首先判断该地址对应的数据块A是否为坏块,是则执行步骤e,否则对其进行读、写操作,并执行步骤c;
c.判断读写操作中是否存在出错情况,是则执行步骤d,否则,成功返回,不执行后续步骤;
d.将数据块A标注为“坏块”,并执行步骤h;
e.搜索索引空间中的记录表,判断是否存在数据块A的记录,如果有记录则执行步骤f,否则执行步骤g;
f.找到数据块A在备份空间中的对应数据块B,对数据块B进行读、写操作,并判断是否存在出错情况,是则将数据块B标注为“坏块”,并执行步骤h,否则,成功返回,不执行后续步骤;
g.如果当前需要执行读操作,则出错返回,如果当前需要执行写操作,则执行步骤h;
h.在备份空间中寻找第一个未被使用的临界状态的数据块C,对该数据块进行写操作,如果成功,则执行步骤i,如果出错,则将数据块C标注为“坏块”,返回步骤h;
i.在索引空间的记录表中新增一条记录,记录数据块A与数据块C的对应关系。
上述写操作包括:擦除、写入、校验。三个操作都通过才算写操作通过,其中任意一个操作失败,则写操作失败。
实施例:
以ST公司的NAND2G存储器为例,其具体实现方式如下:
将ST公司的NAND2G系列NandFlash(容量256MB)空间划分为可用空间253MB、备份空间2MB、索引空间1MB,每个数据块的大小为16KB,对应的设备驱动节点分别为:/dev/mtdblock0、/dev/mtdblock1和/dev/mtdblock2,可用空间对应的逻辑块号范围为(0-16191)、备份空间对应的逻辑块号范围为(0-127)。索引空间的映射记录表项为:M(0≤M≤16191)->N(0≤N≤127)。
如果需要对可用空间的0x28000地址进行写入操作(即:/dev/mtdblock0的编号为10的块),具体步骤如下:
1.如果该数据块是坏块,则执行步骤2;否则,对该数据块执行写操作:块擦除、块写入、块校验,以上三个操作都成功,则返回成功;有任一操作出错,将其标记为“坏块”,并且执行步骤4;
2.搜索索引空间记录表,看是否存在“M=10”的记录。如果未找到记录,则执行步骤4;如果找到记录,则执行步骤3;
3.找到记录“M=10->N=0”,则对备份空间中/dev/mtdblock1的编号为0的数据块执行写操作:块擦除、块写入、块校验:以上三个操作都成功,则返回成功;有任一操作出错,将该数据块标记为“坏块”,并且执行步骤4;
4.在备份空间内寻找到第一个未被使用的好块(如:/dev/mtdblock1的编号为n的块,0≤n≤127,对该数据块执行擦除、块写入、块校验,如果三个操作都成功,则在索引空间记录表中新增一条记录,记录可用空间中的/dev/mtdblock0的编号为10的数据块与备份空间中/dev/mtdblock1的编号为n的数据块的对应关系(“M=10->N=n)”;如果任一操作出错,则将备份空间中的/dev/mtdblock1的编号为n的块标记为“坏块”,并重新执行步骤4。
如果需要对可用空间的0x28000地址进行读取操作(即:/dev/mtdblock0的编号为10的数据块,具体步骤如下:
1.如果该数据块(即:/dev/mtdblock0的编号为10的块)是坏块,则执行步骤2;否则,对该数据块执行块读取,并返回;
2.搜索索引空间记录表,看是否存在“M=10”的映射记录。如果未找到记录,则出错返回;如果找到记录,则执行步骤3;
3.找到记录“M=10->N=1”,则对备份空间中/dev/mtdblock1的编号为1的数据块执行块读取,并返回。
Claims (2)
1.NandFlash存储器中数据存储方法,其特征在于:包括以下步骤:
a.划分NandFlash存储空间,分为可用空间、备份空间及索引空间,可用空间用以存储操作系统中文件的数据块,备份空间用以转存储临界状态的数据块,索引空间用以存储可用空间数据块与备份空间数据块的对应关系的记录表;
b.当需要对可用空间内某一地址进行读、写操作时,首先判断该地址对应的数据块A是否为坏块,是则执行步骤e,否则对其进行读、写操作,并执行步骤c;
c.判断读、写操作中是否存在出错情况,是则执行步骤d,否则,成功返回,不执行后续步骤;
d.将数据块A标注为“坏块”,并执行步骤h;
e.搜索索引空间中的记录表,判断是否存在数据块A的记录,如果有记录则执行步骤f,否则执行步骤g;
f.找到数据块A在备份空间中的对应数据块B,对数据块B进行读、写操作,并判断是否存在出错情况,是则将数据块B标注为“坏块”,并执行步骤h,否则,成功返回,不执行后续步骤;
g.如果当前需要执行读操作,则出错返回,如果当前需要执行写操作,则执行步骤h;
h.在备份空间中寻找第一个未被使用的临界状态的数据块C,对该数据块进行写操作,如果成功,则执行步骤i,如果出错,则将数据块C标注为“坏块”,返回步骤h;
i.在索引空间的记录表中新增一条记录,记录数据块A与数据块C的对应关系。
2.如权利要求1所述的NandFlash存储器中数据存储方法,其特征在于:所述写操作包括:擦除、写入、校验。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010247594 CN101908023A (zh) | 2010-08-06 | 2010-08-06 | NandFlash存储器中数据存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010247594 CN101908023A (zh) | 2010-08-06 | 2010-08-06 | NandFlash存储器中数据存储方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101908023A true CN101908023A (zh) | 2010-12-08 |
Family
ID=43263487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010247594 Pending CN101908023A (zh) | 2010-08-06 | 2010-08-06 | NandFlash存储器中数据存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101908023A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102331911A (zh) * | 2011-06-17 | 2012-01-25 | 杭州华三通信技术有限公司 | 用于文件系统向Nand Flash写数据的驱动装置及方法 |
CN103473098A (zh) * | 2013-09-10 | 2013-12-25 | 华为技术有限公司 | 一种boot程序的启动方法和相关装置 |
CN103778065A (zh) * | 2012-10-25 | 2014-05-07 | 北京兆易创新科技股份有限公司 | 一种闪速存储器及其进行坏块管理的方法 |
CN110109714A (zh) * | 2019-04-25 | 2019-08-09 | 深圳忆联信息系统有限公司 | 提升固件加载效率的方法、装置、计算机设备及存储介质 |
WO2021196663A1 (zh) * | 2020-04-01 | 2021-10-07 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
CN113553003A (zh) * | 2021-06-17 | 2021-10-26 | 厦门大手控制技术有限公司 | 一种数据存储装置及停车场数据存储系统 |
US11527301B2 (en) | 2020-04-01 | 2022-12-13 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11869615B2 (en) | 2020-04-01 | 2024-01-09 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11881240B2 (en) | 2020-04-01 | 2024-01-23 | Changxin Memory Technologies, Inc. | Systems and methods for read/write of memory devices and error correction |
US11894088B2 (en) | 2020-04-01 | 2024-02-06 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11899971B2 (en) | 2020-04-01 | 2024-02-13 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11914479B2 (en) | 2020-04-01 | 2024-02-27 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11922023B2 (en) | 2020-04-01 | 2024-03-05 | Changxin Memory Technologies, Inc. | Read/write method and memory device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101324899A (zh) * | 2008-08-05 | 2008-12-17 | 北京海尔集成电路设计有限公司 | 一种快速写nand型flash的方法 |
CN101593157A (zh) * | 2008-05-27 | 2009-12-02 | 中兴通讯股份有限公司 | 非线性闪存的坏块管理方法及装置 |
-
2010
- 2010-08-06 CN CN 201010247594 patent/CN101908023A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101593157A (zh) * | 2008-05-27 | 2009-12-02 | 中兴通讯股份有限公司 | 非线性闪存的坏块管理方法及装置 |
CN101324899A (zh) * | 2008-08-05 | 2008-12-17 | 北京海尔集成电路设计有限公司 | 一种快速写nand型flash的方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102331911A (zh) * | 2011-06-17 | 2012-01-25 | 杭州华三通信技术有限公司 | 用于文件系统向Nand Flash写数据的驱动装置及方法 |
CN103778065A (zh) * | 2012-10-25 | 2014-05-07 | 北京兆易创新科技股份有限公司 | 一种闪速存储器及其进行坏块管理的方法 |
CN103778065B (zh) * | 2012-10-25 | 2016-12-21 | 北京兆易创新科技股份有限公司 | 一种闪速存储器及其进行坏块管理的方法 |
CN103473098A (zh) * | 2013-09-10 | 2013-12-25 | 华为技术有限公司 | 一种boot程序的启动方法和相关装置 |
US9411689B2 (en) | 2013-09-10 | 2016-08-09 | Huawei Technologies Co., Ltd. | Method and relevant apparatus for starting boot program |
CN110109714B (zh) * | 2019-04-25 | 2022-03-29 | 深圳忆联信息系统有限公司 | 提升固件加载效率的方法、装置、计算机设备及存储介质 |
CN110109714A (zh) * | 2019-04-25 | 2019-08-09 | 深圳忆联信息系统有限公司 | 提升固件加载效率的方法、装置、计算机设备及存储介质 |
WO2021196663A1 (zh) * | 2020-04-01 | 2021-10-07 | 长鑫存储技术有限公司 | 读写方法及存储器装置 |
US11527301B2 (en) | 2020-04-01 | 2022-12-13 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11869615B2 (en) | 2020-04-01 | 2024-01-09 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11881240B2 (en) | 2020-04-01 | 2024-01-23 | Changxin Memory Technologies, Inc. | Systems and methods for read/write of memory devices and error correction |
US11886287B2 (en) | 2020-04-01 | 2024-01-30 | Changxin Memory Technologies, Inc. | Read and write methods and memory devices |
US11894088B2 (en) | 2020-04-01 | 2024-02-06 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11899971B2 (en) | 2020-04-01 | 2024-02-13 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11914479B2 (en) | 2020-04-01 | 2024-02-27 | Changxin Memory Technologies, Inc. | Method for reading and writing and memory device |
US11922023B2 (en) | 2020-04-01 | 2024-03-05 | Changxin Memory Technologies, Inc. | Read/write method and memory device |
CN113553003A (zh) * | 2021-06-17 | 2021-10-26 | 厦门大手控制技术有限公司 | 一种数据存储装置及停车场数据存储系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101908023A (zh) | NandFlash存储器中数据存储方法 | |
CN101656106B (zh) | 一种向eeprom写入数据的方法及装置 | |
CN102135942B (zh) | 一种存储设备中实现损耗均衡的方法及存储设备 | |
CN101446921B (zh) | 一种Flash存储器的动态存储方法 | |
CN103176916B (zh) | 闪存及闪存的地址转换方法 | |
CN101149664A (zh) | 固态硬盘及处理其管理数据的方法 | |
CN103092766A (zh) | 一种用于nand flash的均衡损耗实现方法 | |
CN101526927B (zh) | Flash文件系统的数据处理方法及数据处理装置 | |
CN101819509A (zh) | 一种固态硬盘读写方法 | |
CN103902465A (zh) | 一种固态硬盘垃圾回收的方法、系统和固态硬盘控制器 | |
CN101593157A (zh) | 非线性闪存的坏块管理方法及装置 | |
CN101556555B (zh) | 用于闪存的区块管理方法、其控制器与储存系统 | |
CN101963891A (zh) | 数据存储处理方法与装置、固态硬盘系统与数据处理系统 | |
CN102214143A (zh) | 一种多层单元闪存的管理方法、装置及存储设备 | |
CN102103596B (zh) | 在嵌入式系统中实现文件系统的方法 | |
CN103996412A (zh) | 一种用于智能卡非易失性存储器的掉电保护方法 | |
CN103970669A (zh) | 用于加速在固态设备中的回收操作的物理到逻辑地址映射 | |
CN103076993A (zh) | 一种密集型系统中的存储系统及方法 | |
CN102053796A (zh) | 闪存储存系统、闪存控制器与数据处理方法 | |
CN101567220A (zh) | 闪存的损坏区块辨识方法、储存系统及其控制器 | |
CN101425338B (zh) | 非易失性存储器的写入方法及使用此方法的控制器 | |
CN102981969A (zh) | 重复数据删除的方法及其固态硬盘 | |
CN104166627B (zh) | 一种基于单片机的nand‑flash写操作方法 | |
CN101241469B (zh) | 一种在嵌入式系统中存储、读取数据的方法及装置 | |
CN102789813B (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20101208 |