CN103106125A - 基于存储块修复的闪存存储方法 - Google Patents

基于存储块修复的闪存存储方法 Download PDF

Info

Publication number
CN103106125A
CN103106125A CN2013100004154A CN201310000415A CN103106125A CN 103106125 A CN103106125 A CN 103106125A CN 2013100004154 A CN2013100004154 A CN 2013100004154A CN 201310000415 A CN201310000415 A CN 201310000415A CN 103106125 A CN103106125 A CN 103106125A
Authority
CN
China
Prior art keywords
storage
data
storage block
block
flash memory
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
CN2013100004154A
Other languages
English (en)
Other versions
CN103106125B (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.)
JIAOZHOU POWER SUPPLY COMPANY, STATE GRID SHANDONG ELECTRIC POWER COMPANY
Original Assignee
Suzhou Yiyuan Hongda Intellectual Property Agency Co 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 Suzhou Yiyuan Hongda Intellectual Property Agency Co Ltd filed Critical Suzhou Yiyuan Hongda Intellectual Property Agency Co Ltd
Priority to CN201310000415.4A priority Critical patent/CN103106125B/zh
Publication of CN103106125A publication Critical patent/CN103106125A/zh
Application granted granted Critical
Publication of CN103106125B publication Critical patent/CN103106125B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种闪存存储方法,所述方法包括:a)根据待存储数据的大小S以及存储块的存储容量C,将待存储数据划分为L个数据块,其中并初始化参数i=0,j=1;b)根据指针找到闪存中最后存储数据的存储块B(i);c)判断存储块B(i)的下一存储块B(i+1)是否是坏块;d)如果存储块B(i+1)不是坏块,则将L个数据块中的第j块存储到存储块B(i+1)中,令j=j+1,i=i+1,转到步骤g;e)如果存储块B(i+1)是坏块并且能够修复,则修复存储块B(i+1)并将L个数据块中的第j块存储到存储块B(i+1)中,令j=j+1,i=i+1,转到步骤g;f)如果存储块B(i+1)是坏块并且不能够修复,则令i=i+1;g)如果j>L,则结束,否则转到步骤c。

Description

基于存储块修复的闪存存储方法
技术领域
本发明涉及数据存储领域,尤其涉及闪存存储领域,特别涉及一种基于存储块修复的闪存存储方法。
背景技术
在服务器设备与终端设备之间或计算机设备内部装置之间进行数据传送时,特别需要用到存储设备作为缓冲设备,所述缓冲设备将各装置之间传送的数据进行缓冲,作为缓冲器其中的数据属于临时数据,因此需要经常被擦除并重新写入,因此要求较高擦写速度和较多最大可擦写次数,然而在现有技术中这两者存在矛盾。目前比较常见存储设备有闪存闪存和电可擦写可编程只读存储器(EEPROM),这两种存储设备分别具有以下优缺点:
首先,闪存的优点是容量大且价格低;缺点是擦写速度慢,而且必须先擦后写,每次擦除的最小单位为一个BANK,即64KB。而且单位存储空间可擦写次数少,约为10万次;
其次,EEPROM的缺点是容量小且价格高;优点是擦写速度快,可单个字节擦写,而且单位存储空间的可擦写次数多,可达到100万次。
现有的存储设备在存储数据时,一般至少有两部分数据需要存储:程序部分和用户数据部分。存储设备出厂后,程序部分一般不会再改变,除非进行软件升级,因此一般都会选择闪存作为程序部分的存储设备。而用户数据部分经常会被用户修改,对存储设备的可擦写次数和稳定性有较高的要求。
但是,如果为考虑成本而采用闪存存储用户数据,则会存在以下问题:闪存擦写速度慢,而且大部分闪存必须以BANK(64KB)为最小擦除单位,一次擦除要100ms以上,擦除次数过多的话,势必会影响闪存存储设备的使用寿命,而且,对数据进行存储时,速度也较慢,因此为了考虑成本的因素而选用闪存时,需要解决均匀擦除的问题。
另一方面,由于闪存存储器中存储单元内的存储块会出现坏块,并且有些坏块是可以修复的,有些坏块是不可修复的,因此,针对存储块是否是坏块并针对坏块是否能够被修复实现待存储数据的存储是非常必要的。
发明内容
为了解决上述问题,本发明的一个目的在于提供一种闪存存储方法,所述方法包括:a)根据待存储数据的大小S以及存储块的存储容量C,将待存储数据划分为L个数据块,其中并初始化参数i=0,j=1;b)根据指针找到闪存中最后存储数据的存储块B(i);c)判断存储块B(i)的下一存储块B(i+1)是否是坏块;d)如果存储块B(i+1)不是坏块,则将L个数据块中的第j块存储到存储块B(i+1)中,令j=j+1,i=i+1,转到步骤g;e)如果存储块B(i+1)是坏块并且能够修复,则修复存储块B(i+1)并将L个数据块中的第j块存储到存储块B(i+1)中,令j=j+1,i=i+1,转到步骤g;f)如果存储块B(i+1)是坏块并且不能够修复,则令i=i+1;g)如果j>L,则结束,否则转到步骤c。
根据本发明的一个方面,在闪存中存储了待存储数据后,修改指针,使得所述指针指示闪存中最后存储数据的存储块。
根据本发明的一个方面,其中当在闪存的最后一个存储块中存储数据后,如果还有需要存储的数据,则接着在闪存的第一个存储块中继续存储数据。
根据本发明的一个方面,其中所述闪存中的存储块的大小为64KB、128KB或256KB。
根据本发明的一个方面,其中所述方法还包括在步骤a之前接收待存储数据。
根据本发明的一个方面,其中所述方法中的步骤b具体为,通过最后存储数据块指针找到闪存中最后存储数据的存储块。
更具本发明的一个方面,其中所述方法中的步骤c具体为,通过存储块B(i)找到其下一存储块B(i+1),然后调用校验单元中的校验程序对所述下一存储块B(i+1)进行校验,判断所述下一存储块是否是坏块。
附图说明
所包括的附图用于进一步理解本发明,其作为说明书的一个组成部分并与说明书一起解释本发明的原理,在附图中:
图1示出了本发明闪存的结构框图;
图2示出了本发明一实施例的方法流程图;
具体实施方式
下面参照附图进一步描述本发明的优选实施例。本发明中,所述闪存包括多个存储单元,所述多个存储单元均包括具有相同存储容量的多个存储块,所述多个存储块用于存储待存储数据,其中多个存储单元具有相同的最大可擦写次数。所述多个存储单元具有的块数可以相同也可以不同。本领域技术人员知道,在本申请中待存储数据的大小远远小于闪存的存储容量。
附图1示出闪存存储器的结构框图,如附图1所述,闪存存储器包括存储单元、地址单元、校验单元、修复单元。所述多个存储单元包括多个存储块,所述多个存储块用于存储带存储数据,其中闪存中所有存储块顺序排列,并且可随时根据当前存储块的地址找到前一存储块的地址和后一存储块的地址。所述地址单元用于存储首块指针和最后存储数据块指针,其中首块指针指示闪存中存储单元内第一存储块的地址,最后存储数据块指针指示闪存中存储单元内最后存储数据的存储块的地址,所述地址单元还用于存储存储待存储数据过程中用到的参数数据。所述校验单元中存放用于校验存储块是否是坏块的校验程序,在校验存储块过程中处理器可调用校验程序对存储块进行校验以判断存储块是否是坏块以及坏块是否能够被修复。所述修复单元中存放用于修复可修复坏块的修复程序,在修复存储块过程中处理器可调用修复程序对可修复存储块进行修复以使得可修复存储块能够被修复。虽然图1中存储块有固定数量,但是仅仅是示例性的,存储块可根据规格及成本的需要设定为任意数量。其中多个存储单元具有相同的最大可擦写次数,也就是说多个存储单元中的存储块具有相同的最大可擦写次数,当然,在本发明中同一存储单元中的存储块具有相同的最大可擦写次数。所述闪存中的所有存储块顺序排列,
附图2示出了根据本发明一优选实施例的闪存存储方法的流程图,所述方法包括:a)根据待存储数据的大小S以及存储块的存储容量C,将待存储数据划分为L个数据块,其中
Figure BSA00000833617900041
并初始化参数i=0,j=1;b)根据指针找到闪存中最后存储数据的存储块B(i);c)判断存储块B(i)的下一存储块B(i+1)是否是坏块;d)如果存储块B(i+1)不是坏块,则将L个数据块中的第j块存储到存储块B(i+1)中,令j=j+1,i=i+1,转到步骤g;e)如果存储块B(i+1)是坏块并且能够修复,则修复存储块B(i+1)并将L个数据块中的第j块存储到存储块B(i+1)中,令j=j+1,i=i+1,转到步骤g;f)如果存储块B(i+1)是坏块并且不能够修复,则令i=i+1;g)如果j>L,则结束,否则转到步骤c。在本申请中待存储数据的大小小于闪存的存储容量,当然如果带存储数据的大小大于闪存的存储容量,可提示闪存存储容量小于待存储数据以避免无效的存储。所述方法还包括在步骤a之前接收待存储数据。所述方法中的步骤b具体为,通过最后存储数据块指针找到闪存中最后存储数据的存储块。所述方法中的步骤c具体为,通过当前存储块找到其下一存储块,然后由CPU调用校验单元中的校验程序对所述下一存储块进行校验,判断所述下一存储块是否是坏块。所述方法中的步骤e具体为,如果所述下一存储块是坏块,则继续由处理器调用校验单元中的校验程序校验所述下一存储块以判断所述下一存储是否能够被修复,如果所述下一存储块能够被修复则继续由处理器调用修复单元中的修复程序对所述下一存储块进行修复以修复所述下一存储块,修复所述下一存储块后将待存储数据中的当前数据块存储到所述下一存储块中,其中以所述闪存中的存储块的存储容量为单位将所述待存储数据进行划分,具体地,其中,S表示待存储数据的大小,C表示存储块的存储容量,L为以存储块的存储容量C将待存储数据进行划分的块数,其中
Figure BSA00000833617900051
其中
Figure BSA00000833617900052
为S除以C向上取整。本申请中步骤c-g是迭代执行的,通过迭代执行最终实现将所有待存储数据以数据块为单元存储到闪存中的所有好块或已修复块中。
根据本发明另一优选实施例,所述方法包括:a)根据待存储数据的大小S以及存储块的存储容量C,将待存储数据划分为L个数据块,其中
Figure BSA00000833617900053
b)根据指针找到闪存中最后存储数据的存储块;c)判断最后存储数据的存储块后的L个存储块是否存在坏块,如果不存在坏块则将待存储数据存储到最后存储数据的存储块后的L个存储块中,结束该方法;d)如果最后存储数据的存储块后的L个存储块中包含有坏块则确定其中能够被修复的坏块,e)修复所有能够被修复的坏块,f)计算所有不能够被修复的所有坏块的数量L1,g)如果L1>0则令L=L+L1并转到步骤c,h)将待存储数据存储到闪存中最后存储数据的存储块后的L个存储块中的好块或已修复块中。在本申请中待存储数据的大小小于闪存的存储容量,当然如果带存储数据的大小大于闪存的存储容量,可提示闪存存储容量小于待存储数据以避免无效的存储。所述方法还包括在步骤a之前接收待存储数据。所述方法中的步骤b具体为,通过最后存储数据块指针找到闪存中最后存储数据的存储块。所述方法中的步骤c具体为,通过由CPU调用校验单元中的校验程序对所述L个存储块进行校验,判断所述L个存储块是否存在坏块。所述方法中的步骤d具体为,如果最后存储数据的存储块后的L个存储块中包含有坏块则继续由处理器调用校验程序对最后存储数据的L个存储块进行校验判断最后存储数据的存储块后的L个存储块中的所有坏块是否能够被修复。所述方法中的步骤e具体为,如果最后存储数据的存储块后的L个存储块中包含由能够被修复的存储块则继续由处理器调用修复单元中的修复程序对最后存储数据的存储块后的L个存储块中的可修复存储块进行修复以修复最后存储数据的存储块后的L个存储块中的可修复存储块。其中以所述闪存中的存储块的存储容量为单位将所述待存储数据进行划分,具体地,其中,S表示待存储数据的大小,C表示存储块的存储容量,L为以存储块的存储容量C将待存储数据进行划分的块数,其中
Figure BSA00000833617900061
其中
Figure BSA00000833617900062
为S除以C向上取整。本申请中步骤c-g是迭代执行的,通过迭代执行最终实现将所有待存储数据以数据块为单元存储到闪存中的所有好块或已修复块中。
其中,在闪存中存储了待存储数据后,修改指针,使得所述指针指示闪存中最后存储数据的存储块。其中当在闪存的最后一个存储块中存储数据后,如果还有需要存储的数据,则接着在闪存的第一个存储块中继续存储数据,具体地,可通过首块指针找到闪存中的第一个存储块。其中所述闪存中的存储块的大小为64KB、128KB或256KB。
虽然图2中示出的实施例中所述闪存存储器包括一个存储单元,但是可根据需要设置多个存储单元,例如可包括两个存储单元,并且地址单元中还存储有链表,通过所述链表将两个存储单元中的所有块进行链接,例如,链表中的第一节点代表第一存储单元中的第一个存储块,链表中的第二节点代表第一存储单元中的第二个存储块,依此类推,链接第一存储单元中的所有存储块,接着在已有链表的最后一个节点后链接第二存储单元中的第一个存储块,并继续如针对第一存储单元的链接进行链接。并且,所述链表可以是循环链表,在具有两个存储单元的闪存中,代表第二存储单元中的最后一个存储块的节点的下一个节点为第一存储单元中的第一个存储块。在多个存储单元的情况下,链表同样可将多个存储单元中的所有块进行链接。
本发明一方面实现顺序存储,另一方面,通过针对存储块是否是坏块并针对坏块是否能够被修复实现待存储数据的有效存储。
应该理解,上述实施例是本发明的示例性实施例,但是本发明并不局限于该实施例,在不脱离本发明精神和范围的情况下,可以对本发明做出多种的改进和变型。

Claims (4)

1.一种闪存存储方法,所述方法包括:
a)根据待存储数据的大小S以及存储块的存储容量C,将待存储数据划分为L个数据块,其中
Figure FSA00000833617800011
并初始化参数i=0,j=1;
b)根据指针找到闪存中最后存储数据的存储块B(i);
c)判断存储块B(i)的下一存储块B(i+1)是否是坏块;
d)如果存储块B(i+1)不是坏块,则将L个数据块中的第j块存储到存储块B(i+1)中,令j=j+1,i=i+1,转到步骤g;
e)如果存储块B(i+1)是坏块并且能够修复,则修复存储块B(i+1)并将L个数据块中的第j块存储到存储块B(i+1)中,令j=j+1,i=i+1,转到步骤g;
f)如果存储块B(i+1)是坏块并且不能够修复,则令i=i+1;
g)如果j>L,则结束,否则转到步骤c。
2.根据权利要求1的方法,在闪存中存储了待存储数据后,修改指针,使得所述指针指示闪存中最后存储数据的存储块。
3.根据权利要求1的方法,其中当在闪存的最后一个存储块中存储数据后,如果还有需要存储的数据,则接着在闪存的第一个存储块中继续存储数据。
4.根据权利要求1中任意权利要求的方法,其中所述闪存中的存储块的大小为64KB、128KB或256KB。
CN201310000415.4A 2013-01-04 2013-01-04 基于存储块修复的闪存存储方法 Expired - Fee Related CN103106125B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310000415.4A CN103106125B (zh) 2013-01-04 2013-01-04 基于存储块修复的闪存存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310000415.4A CN103106125B (zh) 2013-01-04 2013-01-04 基于存储块修复的闪存存储方法

Publications (2)

Publication Number Publication Date
CN103106125A true CN103106125A (zh) 2013-05-15
CN103106125B CN103106125B (zh) 2016-09-28

Family

ID=48314003

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310000415.4A Expired - Fee Related CN103106125B (zh) 2013-01-04 2013-01-04 基于存储块修复的闪存存储方法

Country Status (1)

Country Link
CN (1) CN103106125B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491740A (zh) * 2018-02-01 2018-09-04 珠海全志科技股份有限公司 一种tf卡性能实时监测方法
US10203899B2 (en) 2014-06-27 2019-02-12 Huawei Technologies Co., Ltd. Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
US10445199B2 (en) 2016-12-22 2019-10-15 Western Digital Technologies, Inc. Bad page management in storage devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104308A1 (en) * 2006-10-25 2008-05-01 Yeon-Jin Mo System with flash memory device and data recovery method thereof
CN102331911A (zh) * 2011-06-17 2012-01-25 杭州华三通信技术有限公司 用于文件系统向Nand Flash写数据的驱动装置及方法
CN102609334A (zh) * 2012-01-09 2012-07-25 晨星软件研发(深圳)有限公司 非易失闪存擦除异常存储块修复方法和装置
CN102638412A (zh) * 2012-05-04 2012-08-15 杭州华三通信技术有限公司 一种缓存管理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104308A1 (en) * 2006-10-25 2008-05-01 Yeon-Jin Mo System with flash memory device and data recovery method thereof
CN102331911A (zh) * 2011-06-17 2012-01-25 杭州华三通信技术有限公司 用于文件系统向Nand Flash写数据的驱动装置及方法
CN102609334A (zh) * 2012-01-09 2012-07-25 晨星软件研发(深圳)有限公司 非易失闪存擦除异常存储块修复方法和装置
CN102638412A (zh) * 2012-05-04 2012-08-15 杭州华三通信技术有限公司 一种缓存管理方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
林刚: "NAND Flash坏块管理算法及逻辑层驱动设计", 《中国优秀硕士论文全文数据库》, 19 January 2010 (2010-01-19), pages 25 - 27 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10203899B2 (en) 2014-06-27 2019-02-12 Huawei Technologies Co., Ltd. Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
US10445199B2 (en) 2016-12-22 2019-10-15 Western Digital Technologies, Inc. Bad page management in storage devices
CN108491740A (zh) * 2018-02-01 2018-09-04 珠海全志科技股份有限公司 一种tf卡性能实时监测方法

Also Published As

Publication number Publication date
CN103106125B (zh) 2016-09-28

Similar Documents

Publication Publication Date Title
CN102623042B (zh) 存储器系统及其操作方法
JP5923844B2 (ja) ソリッドステートドライブのメモリ装置への論理的アドレスの適応マッピング
CN103593147B (zh) 一种数据读取的方法及装置
US10437738B2 (en) Storage device performing hashing-based translation between logical address and physical address
CN103677674B (zh) 一种数据处理方法及装置
CN109542961A (zh) 数据存储方法、装置、计算机设备和存储介质
CN107894919A (zh) 定时任务触发方法、装置、设备及可读存储介质
US9558852B2 (en) Method and apparatus for defect repair in NAND memory device
CN103902696A (zh) 一种加载资源文件的方法及装置
CN103425589A (zh) 控制装置、存储装置以及存储控制方法
US9081658B2 (en) Storage device and data management method thereof
CN108153680A (zh) 数据存储装置及其操作方法
US20170270050A1 (en) Memory system including memory device and operation method thereof
CN103106125A (zh) 基于存储块修复的闪存存储方法
CN108108261A (zh) 数据存储装置及其操作方法
CN108958643A (zh) 数据存储装置及其操作方法
US20120155175A1 (en) Flash memory device and operation method thereof
US9786373B2 (en) EEPROM backup method and device
US10025706B2 (en) Control device, storage device, and storage control method
CN105094742B (zh) 一种写数据的方法和设备
CN103116549B (zh) 基于最大可擦除次数的闪存存储方法
WO2015087651A1 (ja) メモリの使用可能期間を延ばすための装置、プログラム、記録媒体および方法
CN103268266A (zh) 闪存校验存储方法
CN104539607A (zh) 一种信息校验方法、终端以及服务器
CN103268290B (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
DD01 Delivery of document by public notice

Addressee: Suzhou Yiyuan Hongda Intellectual Property Agency Co., Ltd.

Document name: Notification of Passing Preliminary Examination of the Application for Invention

DD01 Delivery of document by public notice

Addressee: He Yingshuai

Document name: Notification of Publication and of Entering the Substantive Examination Stage of the Application for Invention

C41 Transfer of patent application or patent right or utility model
CB03 Change of inventor or designer information

Inventor after: Dan Songmei

Inventor after: Liu Yuanfei

Inventor after: Yin Xianming

Inventor after: Jie Zhitao

Inventor after: Song Qing

Inventor after: Sun Guangjie

Inventor after: Gao Xinxu

Inventor before: Wang Yuanyuan

COR Change of bibliographic data
TA01 Transfer of patent application right

Effective date of registration: 20160831

Address after: 266300 Shandong city of Qingdao province Jiaozhou City Fu Street office Suzhou Street No. 2

Applicant after: JIAOZHOU POWER SUPPLY COMPANY, STATE GRID SHANDONG ELECTRIC POWER COMPANY

Address before: Suzhou City, Jiangsu province 215100 Songjiang Road, Suzhou Industrial Park, No. 208 Building 8 Room 112

Applicant before: Suzhou Yiyuan Hongda Intellectual Property Agency Co., Ltd.

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: 20160928

Termination date: 20170104