CN105159601A - 一种提高Flash擦写寿命的方法 - Google Patents
一种提高Flash擦写寿命的方法 Download PDFInfo
- 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
Links
Landscapes
- Read Only Memory (AREA)
Abstract
发明涉及一种提高Flash擦写寿命的方法。目的在于提供一种能够提高Flash介质擦写寿命的方法。方案:将每个Flash扇区分为128个子块,根据当前各子块的读写状态建立对应的位偏移寻址信息和擦除次数信息,将位偏移寻址信息和擦除次数信息存储于任意一个子块中,并对其进行实时更新;位偏移寻址信息占用16个字节,每个字节8位,每一位对应当前Flash扇区的一个子块的状态;读/写操作时获取当前状态下的位偏移寻址信息和擦除次数信息,根据该位偏移寻址信息对各子块进行读/写;读/写规则为,对于已写过数据但未擦除的子块,不再进行写操作;对于未写过或擦除后未写过数据的子块,不进行读操作。发明主要用于智能电子产品。
Description
技术领域
本发明专利涉及一种提高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扇区的总擦除次数。
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)
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)
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 | 武汉新芯集成电路制造有限公司 | 一种延长快闪存储器使用寿命的方法 |
-
2015
- 2015-08-07 CN CN201510482615.7A patent/CN105159601B/zh active Active
Patent Citations (6)
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)
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 | |
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 | |
CN109388582B (zh) | 数据储存装置以及其数据抹除方法 | |
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
KR102615151B1 (ko) | 불휘발성 메모리 장치를 포함하는 스토리지 시스템 | |
CN101364166B (zh) | 将2048字节页的Nand Flash模拟成硬盘的方法和装置 | |
US20110004720A1 (en) | Method and apparatus for performing full range random writing on a non-volatile memory | |
US20190066801A1 (en) | Characterizing and operating a non-volatile memory device | |
CN104317733A (zh) | 一种nand flash坏块管理方法 | |
WO2015054338A1 (en) | System and method of storing data in a data storage device with a selection of two writing orders in order to improve the reading speed of a differential look ahead reading mode. | |
CN105159601A (zh) | 一种提高Flash擦写寿命的方法 | |
CN103744611A (zh) | 基于固态硬盘为缓存的计算机系统及缓存加速方法 | |
CN111045603A (zh) | 一种固态硬盘的坏块替换方法和装置 | |
WO2008086233A1 (en) | Storing information in a memory | |
CN104898989B (zh) | 一种大容量数据存储设备、方法及装置 | |
TW201917578A (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
CN107608905A (zh) | 擦写Flash数据的方法及装置 | |
CN105512047A (zh) | Flash闪存的写操作、擦除操作方法及装置 | |
CN112379830A (zh) | 有效数据位图的创建方法、装置、存储介质及电子设备 | |
CN117370222A (zh) | 存储映射方法、装置、计算机可读存储介质及电子设备 | |
TWI517170B (zh) | 將在非揮發儲存系統中的資料區及保留區某些損壞位元之位址替換成具有正常位元之位址的方法 | |
CN104166627A (zh) | 一种基于单片机的nand-flash写操作方法 | |
CN102543177B (zh) | 一种固态盘静态磨损平衡算法 | |
WO2009045010A2 (en) | Flash memory mapping management method | |
WO2019136975A1 (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 |