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

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

Info

Publication number
CN105159601A
CN105159601A CN201510482615.7A CN201510482615A CN105159601A CN 105159601 A CN105159601 A CN 105159601A CN 201510482615 A CN201510482615 A CN 201510482615A CN 105159601 A CN105159601 A CN 105159601A
Authority
CN
China
Prior art keywords
addressing information
sub
block
byte
biased
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
CN201510482615.7A
Other languages
English (en)
Other versions
CN105159601B (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 (8)

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

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025066A (zh) * 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置
CN107656697A (zh) * 2016-07-26 2018-02-02 阿里巴巴集团控股有限公司 一种在存储介质上操作数据的方法和装置
CN107678976A (zh) * 2016-08-02 2018-02-09 爱思开海力士有限公司 数据存储装置及其操作方法

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 武汉新芯集成电路制造有限公司 一种延长快闪存储器使用寿命的方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107656697A (zh) * 2016-07-26 2018-02-02 阿里巴巴集团控股有限公司 一种在存储介质上操作数据的方法和装置
CN107656697B (zh) * 2016-07-26 2021-03-02 阿里巴巴集团控股有限公司 一种在存储介质上操作数据的方法和装置
CN107678976A (zh) * 2016-08-02 2018-02-09 爱思开海力士有限公司 数据存储装置及其操作方法
CN107678976B (zh) * 2016-08-02 2021-09-24 爱思开海力士有限公司 数据存储装置及其操作方法
CN107025066A (zh) * 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置
US11099744B2 (en) 2016-09-14 2021-08-24 Ant Financial (Hang Zhou) Network Technology Co., Ltd. Method and device for writing stored data into storage medium based on flash memory
US11287984B2 (en) 2016-09-14 2022-03-29 Beijing Oceanbase Technology Co., Ltd. Method and device for writing stored data into storage medium based on flash memory

Also Published As

Publication number Publication date
CN105159601B (zh) 2018-12-07

Similar Documents

Publication Publication Date Title
US9842030B2 (en) Data storage device and flash memory control method
CN109388582B (zh) 数据储存装置以及其数据抹除方法
CN103164345B (zh) 固态存储装置遭遇断电后的数据存储方法
CN110998550B (zh) 存储器寻址
CN109933545B (zh) 数据储存装置与存储器装置的数据处理方法
KR102615151B1 (ko) 불휘발성 메모리 장치를 포함하는 스토리지 시스템
CN101364166B (zh) 将2048字节页的Nand Flash模拟成硬盘的方法和装置
US20110004720A1 (en) Method and apparatus for performing full range random writing on a non-volatile memory
CN104317733A (zh) 一种nand flash坏块管理方法
CN106326134A (zh) Ftl地址映射的方法及装置
CN105159601A (zh) 一种提高Flash擦写寿命的方法
CN103744611A (zh) 基于固态硬盘为缓存的计算机***及缓存加速方法
CN112084070B (zh) L2p映射数据恢复方法、装置、存储介质及电子设备
CN112379830B (zh) 有效数据位图的创建方法、装置、存储介质及电子设备
CN104898989B (zh) 一种大容量数据存储设备、方法及装置
CN105512047A (zh) Flash闪存的写操作、擦除操作方法及装置
TWI517170B (zh) 將在非揮發儲存系統中的資料區及保留區某些損壞位元之位址替換成具有正常位元之位址的方法
CN103488572A (zh) 数据储存装置及数据清除方法
CN102323907A (zh) 嵌入式arm处理器对nandflash数据存储和删除方法
CN111913890B (zh) 一种基于安全模组的非易失存储器随机化读写方法
CN102543177B (zh) 一种固态盘静态磨损平衡算法
WO2009045010A2 (en) Flash memory mapping management method
CN112130750B (zh) 数据储存装置以及非挥发式存储器控制方法
WO2019136975A1 (zh) 一种非易失性存储器的磨损均衡方法和装置
CN115543865A (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