CN105159601B - 一种提高Flash擦写寿命的方法 - Google Patents

一种提高Flash擦写寿命的方法 Download PDF

Info

Publication number
CN105159601B
CN105159601B CN201510482615.7A CN201510482615A CN105159601B CN 105159601 B CN105159601 B CN 105159601B CN 201510482615 A CN201510482615 A CN 201510482615A CN 105159601 B CN105159601 B CN 105159601B
Authority
CN
China
Prior art keywords
addressing information
information
byte
sub
block
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.)
Active
Application number
CN201510482615.7A
Other languages
English (en)
Other versions
CN105159601A (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.)
Hangzhou Hexing Electrical Co Ltd
Original Assignee
Hangzhou Hexing Electrical 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 Hangzhou Hexing Electrical Co Ltd filed Critical Hangzhou Hexing Electrical Co Ltd
Priority to CN201510482615.7A priority Critical patent/CN105159601B/zh
Publication of CN105159601A publication Critical patent/CN105159601A/zh
Application granted granted Critical
Publication of CN105159601B publication Critical patent/CN105159601B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Read Only Memory (AREA)

Abstract

发明涉及一种提高Flash擦写寿命的方法。目的在于提供一种能够提高Flash介质擦写寿命的方法。方案:将每个Flash扇区分为128个子块,根据当前各子块的读写状态建立对应的位偏移寻址信息和擦除次数信息,将位偏移寻址信息和擦除次数信息存储于任意一个子块中,并对其进行实时更新;位偏移寻址信息占用16个字节,每个字节8位,每一位对应当前Flash扇区的一个子块的状态;读/写操作时获取当前状态下的位偏移寻址信息和擦除次数信息,根据该位偏移寻址信息对各子块进行读/写;读/写规则为,对于已写过数据但未擦除的子块,不再进行写操作;对于未写过或擦除后未写过数据的子块,不进行读操作。发明主要用于智能电子产品。

Description

一种提高Flash擦写寿命的方法
技术领域
本发明专利涉及一种提高Flash擦写寿命的方法,主要用于智能电子产品、移动互联网设备、移动物联网设备、智能电网设备中。
背景技术
在物联网设备、智能电网设备、智能电子产品中,经常需要频繁、快速、可靠地保存数据,目前的解决方案是软件写入Flash的不同地址,以完成数据保存。
将信息保存在Flash中,由于Flash的“擦除然后写入”的特性,对同一个变量(比如电压、电机速度等)频繁、快速的保存,要先擦除然后写入Flash的不同地址来完成。由于同一个变量的存储地址总是变化的,带来了困扰,应用软件的读写操作复杂性高、可靠性低、可维护性差。这会使软件复杂性急剧提升,软件开发困难,产品可靠性降低。而且这样的软件可移植性差,常造成重复劳动,耦合性大,维护也是个问题。
发明内容
本发明的目的在于克服上述存在的问题,提供一种能够提高Flash介质(独立的Flash存储芯片、CPU自带的片上Flash等)的擦写寿命的方法。
本发明的目的是通过如下技术方案来完成的,
一种提高Flash擦写寿命的方法,包括:
将每个Flash扇区分为128个子块,根据当前各子块的读写状态建立对应的位偏移寻址信息和擦除次数信息,将所述位偏移寻址信息和擦除次数信息存储于任意一个子块中,并对其进行实时更新;所述位偏移寻址信息占用16个字节,每个字节8位,每一位对应当前Flash扇区的一个子块的状态;读/写操作时获取当前状态下的位偏移寻址信息和擦除次数信息,并根据该位偏移寻址信息对各子块进行读/写;读/写规则为,对于已写过数据但未擦除的子块,不再进行写操作;对于未写过或擦除后未写过数据的子块,不进行读操作。
所述位偏移寻址信息中每一位对应当前Flash扇区的一个子块的状态,具体为:
所述位偏移寻址信息中,某一位的值为1,表示该位所对应子块为未写过或擦除后未写过数据的状态;
所述位偏移寻址信息中,某一位的值为0,表示该位所对应子块为已写过数据但未擦除的状态。
所述方法还包括:
根据当前状态下的位偏移寻址信息建立对应的字节偏移寻址信息,将其与所述位偏移寻址信息和擦除次数信息共同存储于任意一个子块中,并进行实时更新;所述字节偏移寻址信息占用2个字节,每个字节8位,每一位对应当前位偏移寻址信息中各个字节的状态;读/写操作时获取当前状态下字节偏移寻址信息和擦除次数信息,并根据字节偏移寻址信息中各个位的值获得其所对应位偏移寻址信息中各个字节的状态,然后结合当前操作和位偏移寻址信息中各个字节的状态,选择获取其中至少一个字节的位偏移寻址信息,最后根据选择的位偏移寻址信息进行读/写操作。
所述字节偏移寻址信息中每一位对应当前位偏移寻址信息中各个字节的状态,具体为:
所述字节偏移寻址信息中,某一位的值为1,表示该位所对应位偏移寻址信息的字节为未写过或擦除后未写过数据的状态;
所述字节偏移寻址信息中,某一位的值为0,表示该位所对应位偏移寻址信息的字节为已写过数据但未擦除的状态。
读操作时,首先获取当前状态下字节偏移寻址信息和擦除次数信息,然后获取字节偏移寻址信息中最后一个值为0的位所对应字节的位偏移寻址信息,最后对所获取的位偏移寻址信息中最后一个值为0的位所对应的子块进行读操作。
写操作时,首先获取当前状态下字节偏移寻址信息和擦除次数信息,其次获取字节偏移寻址信息中最后一个值为0的位所对应字节的位偏移寻址信息,然后获取所得位偏移寻址信息中最后一个值为0的位所对应子块的地址,最后对所得地址加1后对应的子块进行写操作。
所述位偏移寻址信息、字节偏移寻址信息和擦除次数信息均存储于Flash扇区的最后一个子块中。
所述擦除次数信息为单个独立的Flash扇区的总擦除次数。
本发明与现有技术相比有如下优点和效果:
1、每个Flash扇区分为127个子块用于信息的存储,较常规Flash使用提高了Flash的擦写寿命,放大127倍。如,原来Flash的擦/写寿命为10万次,那么使用该方法,Flash的随机擦写寿命可以达1270万次。
2、由于擦写次数得到极大提高,因此,在实际应用中能够完美替代铁电,降低了硬件成本和硬件复杂性,减少了空间占用。
3、引入字节偏移寻址信息,能够更加有针对性的、快速的获取位偏移寻址信息,大大提高了工作效率。
4、应用软件访问Flash中的各字块信息简便灵活,大大降低应用软件的复杂性。提高了应用软件的可靠性、可维护性和可移植性。
附图说明
图1是本发明Flash介质中的子块、位偏移、字节偏移的映射关系图。
具体实施方式
下面将结合附图对本发明做详细的介绍,
如图1所示,本实施例一种提高Flash擦写寿命的方法,包括:
将每个Flash扇区分为128个子块,根据当前各子块的读写状态建立对应的位偏移寻址信息和擦除次数信息(单个、独立的FLASH扇区的总擦除次数),将所述位偏移寻址信息和擦除次数信息存储于Flash扇区的最后一个子块中,并对其进行实时更新;
所述位偏移寻址信息占用16个字节,每个字节8位,每一位对应当前Flash扇区的一个子块的状态:所述位偏移寻址信息中,某一位的值为1,表示该位所对应子块为未写过或擦除后未写过数据的状态;所述位偏移寻址信息中,某一位的值为0,表示该位所对应子块为已写过数据但未擦除的状态。本例中,位偏移寻址信息中字节1的bit0位对应子块1的状态,位偏移寻址信息中字节1的bit1位对应子块2的状态,依次顺序类推,将位偏移寻址信息中各个位分别与各子块一一对应。
读/写操作时获取当前状态下的位偏移寻址信息和擦除次数信息,并根据该位偏移寻址信息对各子块进行读/写;读/写规则为,对于已写过数据但未擦除的子块,不再进行写操作;对于未写过或擦除后未写过数据的子块,不进行读操作。
为了更加有针对性的、快速的获取位偏移寻址信息,本实施例还包括:
根据当前状态下的位偏移寻址信息建立对应的字节偏移寻址信息,将其与所述位偏移寻址信息和擦除次数信息共同存储于Flash扇区的最后一个子块中,并进行实时更新;
所述字节偏移寻址信息占用2个字节,每个字节8位,每一位对应当前位偏移寻址信息中各个字节的状态:所述字节偏移寻址信息中,某一位的值为1,表示该位所对应位偏移寻址信息的字节为未写过或擦除后未写过数据的状态;所述字节偏移寻址信息中,某一位的值为0,表示该位所对应位偏移寻址信息的字节为已写过数据但未擦除的状态。本例中,字节偏移寻址信息中字节1的bit0位对应位偏移寻址信息中字节1的状态,字节偏移寻址信息中字节1的bit1位对应位偏移寻址信息中字节2的状态,依次顺序类推,将字节偏移寻址信息中各个位分别与位偏移寻址信息中各个字节一一对应。
读/写操作时获取当前状态下字节偏移寻址信息和擦除次数信息,并根据字节偏移寻址信息中各个位的值获得其所对应位偏移寻址信息中各个字节的状态,然后结合当前操作和位偏移寻址信息中各个字节的状态,选择获取其中至少一个字节的位偏移寻址信息,最后根据选择的位偏移寻址信息进行读/写操作。写操作时,按照子块1、子块2…子块127的顺序依次进行;读操作时,则仅读取最新的数据,即若当前仅子块1-子块20为写过数据状态,则读取子块20内的数据。
具体来说,读操作时,首先获取当前状态下字节偏移寻址信息和擦除次数信息,然后获取字节偏移寻址信息中最后一个值为0的位所对应字节的位偏移寻址信息,最后对所获取的位偏移寻址信息中最后一个值为0的位所对应的子块进行读操作;写操作时,首先获取当前状态下字节偏移寻址信息和擦除次数信息,其次获取字节偏移寻址信息中最后一个值为0的位所对应字节的位偏移寻址信息,然后获取所得位偏移寻址信息中最后一个值为0的位所对应子块的地址,最后对所得地址加1后对应的子块进行写操作。读写操作时调用同一函数,程序实现起来简单,函数复用性好。
如果子块地址指向子块1—子块127中的任意一块,就对该子块进行写操作,并更新寻址信息。
如果子块地址指向子块128,存储寻址和擦除信息的子块,说明整个Flash扇区已写满。对整个Flash扇区擦除,将要写入的信息写入子块1,并更新寻址信息,更新擦除次数信息,即擦除次数+1。

Claims (7)

1.一种提高Flash擦写寿命的方法,其特征在于包括:
将每个Flash扇区分为128个子块,根据当前各子块的读写状态建立对应的位偏移寻址信息和擦除次数信息,将所述位偏移寻址信息和擦除次数信息存储于任意一个子块中,并对其进行实时更新;所述位偏移寻址信息占用16个字节,每个字节8位,每一位对应当前Flash扇区的一个子块的状态;读/写操作时获取当前状态下的位偏移寻址信息和擦除次数信息,并根据该位偏移寻址信息对各子块进行读/写;读/写规则为,对于已写过数据但未擦除的子块,不再进行写操作;对于未写过或擦除后未写过数据的子块,不进行读操作;
根据当前状态下的位偏移寻址信息建立对应的字节偏移寻址信息,将其与所述位偏移寻址信息和擦除次数信息共同存储于任意一个子块中,并进行实时更新;所述字节偏移寻址信息占用2个字节,每个字节8位,每一位对应当前位偏移寻址信息中各个字节的状态;读/写操作时获取当前状态下字节偏移寻址信息和擦除次数信息,并根据字节偏移寻址信息中各个位的值获得其所对应位偏移寻址信息中各个字节的状态,然后结合当前操作和位偏移寻址信息中各个字节的状态,选择获取其中至少一个字节的位偏移寻址信息,最后根据选择的位偏移寻址信息进行读/写操作。
2.根据权利要求1所述的提高Flash擦写寿命的方法,其特征在于,所述位偏移寻址信息中每一位对应当前Flash扇区的一个子块的状态,具体为:
所述位偏移寻址信息中,某一位的值为1,表示该位所对应子块为未写过或擦除后未写过数据的状态;
所述位偏移寻址信息中,某一位的值为0,表示该位所对应子块为已写过数据但未擦除的状态。
3.根据权利要求2所述的提高Flash擦写寿命的方法,其特征在于,所述字节偏移寻址信息中每一位对应当前位偏移寻址信息中各个字节的状态,具体为:
所述字节偏移寻址信息中,某一位的值为1,表示该位所对应位偏移寻址信息的字节为未写过或擦除后未写过数据的状态;
所述字节偏移寻址信息中,某一位的值为0,表示该位所对应位偏移寻址信息的字节为已写过数据但未擦除的状态。
4.根据权利要求3所述的提高Flash擦写寿命的方法,其特征在于:
读操作时,首先获取当前状态下字节偏移寻址信息和擦除次数信息,然后获取字节偏移寻址信息中最后一个值为0的位所对应字节的位偏移寻址信息,最后对所获取的位偏移寻址信息中最后一个值为0的位所对应的子块进行读操作。
5.根据权利要求3所述的提高Flash擦写寿命的方法,其特征在于:
写操作时,首先获取当前状态下字节偏移寻址信息和擦除次数信息,其次获取字节偏移寻址信息中最后一个值为0的位所对应字节的位偏移寻址信息,然后获取所得位偏移寻址信息中最后一个值为0的位所对应子块的地址,最后对所得地址加1后对应的子块进行写操作。
6.根据权利要求1-5任意一项所述的提高Flash擦写寿命的方法,其特征在于:所述位偏移寻址信息、字节偏移寻址信息和擦除次数信息均存储于Flash扇区的最后一个子块中。
7.根据权利要求1-5任意一项所述的提高Flash擦写寿命的方法,其特征在于:所述擦除次数信息为单个独立的Flash扇区的总擦除次数。
CN201510482615.7A 2015-08-07 2015-08-07 一种提高Flash擦写寿命的方法 Active CN105159601B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510482615.7A CN105159601B (zh) 2015-08-07 2015-08-07 一种提高Flash擦写寿命的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510482615.7A CN105159601B (zh) 2015-08-07 2015-08-07 一种提高Flash擦写寿命的方法

Publications (2)

Publication Number Publication Date
CN105159601A CN105159601A (zh) 2015-12-16
CN105159601B true CN105159601B (zh) 2018-12-07

Family

ID=54800475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510482615.7A Active CN105159601B (zh) 2015-08-07 2015-08-07 一种提高Flash擦写寿命的方法

Country Status (1)

Country Link
CN (1) CN105159601B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107656697B (zh) * 2016-07-26 2021-03-02 阿里巴巴集团控股有限公司 一种在存储介质上操作数据的方法和装置
KR20180014975A (ko) * 2016-08-02 2018-02-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN107025066A (zh) 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1362708A (zh) * 2001-01-02 2002-08-07 吴秀林 一种闪存芯片的读写方法
WO2006065566A1 (en) * 2004-12-16 2006-06-22 Sandisk Corporation Scratch pad block
CN101980177A (zh) * 2010-10-21 2011-02-23 北京握奇数据系统有限公司 一种操作Flash的方法和装置
CN102063379A (zh) * 2010-12-28 2011-05-18 天津市亚安科技电子有限公司 一种flash存储器的数据存储方法
CN102073592A (zh) * 2009-11-19 2011-05-25 中兴通讯股份有限公司 一种闪存快速读写方法和装置
CN104464809A (zh) * 2014-11-05 2015-03-25 武汉新芯集成电路制造有限公司 一种延长快闪存储器使用寿命的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1362708A (zh) * 2001-01-02 2002-08-07 吴秀林 一种闪存芯片的读写方法
WO2006065566A1 (en) * 2004-12-16 2006-06-22 Sandisk Corporation Scratch pad block
CN102073592A (zh) * 2009-11-19 2011-05-25 中兴通讯股份有限公司 一种闪存快速读写方法和装置
CN101980177A (zh) * 2010-10-21 2011-02-23 北京握奇数据系统有限公司 一种操作Flash的方法和装置
CN102063379A (zh) * 2010-12-28 2011-05-18 天津市亚安科技电子有限公司 一种flash存储器的数据存储方法
CN104464809A (zh) * 2014-11-05 2015-03-25 武汉新芯集成电路制造有限公司 一种延长快闪存储器使用寿命的方法

Also Published As

Publication number Publication date
CN105159601A (zh) 2015-12-16

Similar Documents

Publication Publication Date Title
US10452532B2 (en) Directed sanitization of memory
TWI575373B (zh) 資料儲存裝置以及快閃記憶體控制方法
TWI692690B (zh) 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN105159601B (zh) 一种提高Flash擦写寿命的方法
US9753847B2 (en) Non-volatile semiconductor memory segregating sequential, random, and system data to reduce garbage collection for page based mapping
US10540276B2 (en) Method of processing data based on erase operations of logical pages related to data compression rate of mapping table in data storage device
US10475516B2 (en) Data storage device and data erasing method wherein after erasing process, predetermined value is written to indicate completion of said erasing method
US20100131809A1 (en) Apparatus and methods for generating row-specific reading thresholds in flash memory
US9213646B1 (en) Cache data value tracking
CN106802867B (zh) 固态储存装置及其数据编程方法
US11132044B2 (en) Dynamic P2L asynchronous power loss mitigation
US10073771B2 (en) Data storage method and system thereof
US10866751B2 (en) Method for managing flash memory module and associated flash memory controller
US10606744B2 (en) Method for accessing flash memory module and associated flash memory controller and electronic device
CN103279424A (zh) 一种Nand Flash的坏列管理装置和方法
CN104898989B (zh) 一种大容量数据存储设备、方法及装置
CN111930301A (zh) 垃圾回收优化方法、装置、存储介质及电子设备
KR100781517B1 (ko) 비휘발성 메모리의 맵핑 정보 관리 장치 및 방법
CN105512047A (zh) Flash闪存的写操作、擦除操作方法及装置
CN103309814B (zh) 汽车里程数据在eeprom中的存储方法
CN111966281A (zh) 数据储存装置与数据处理方法
CN112256198B (zh) Ssd数据读取方法、装置、可读存储介质及电子设备
CN112130750B (zh) 数据储存装置以及非挥发式存储器控制方法
CN203311409U (zh) 一种Nand Flash的坏列管理装置
CN111190835B (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
GR01 Patent grant
GR01 Patent grant