CN107608906A - 减少片内flash擦除次数的方法 - Google Patents
减少片内flash擦除次数的方法 Download PDFInfo
- Publication number
- CN107608906A CN107608906A CN201710884524.5A CN201710884524A CN107608906A CN 107608906 A CN107608906 A CN 107608906A CN 201710884524 A CN201710884524 A CN 201710884524A CN 107608906 A CN107608906 A CN 107608906A
- Authority
- CN
- China
- Prior art keywords
- page
- data
- write
- data storage
- build structure
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种减少片内FLASH擦除次数的方法,其包含:在FLASH的空间中划分出管理页及多个数据储存页,多个数据储存页用作数据存储块,且管理页用作数据存储块的块头结构体存放地址;其中,要写入的数据默认从多个数据储存页的第一页开始写入,并且写入的同时,写入的数据的数据存储块的块头结构体写入管理页中;其中,在写入数据的过程中,块头结构体每次在上一次写的块头结构体后顺序写入更新后的块头结构体,当写到管理页的末尾时,擦除管理页,并从管理页的首地址开始写入;当数据储存页的所述第一页写满时,数据继续写入数据储存页的剩余页。借此,本发明的减少片内FLASH擦除次数的方法,大大减少了页面的擦写次数,进而提高了芯片的使用寿命。
Description
技术领域
本发明涉及一种减少片内FLASH擦除次数的方法。
背景技术
在嵌入式设计中,许多应用设计都需要使用EEPROM存储非易失性数据,由于成本原因,在许多嵌入式处理器中并没有集成EEPROM模块。通常我们可以采用在片内FLASH存储器(可编程只读存储器,以下简称FLASH)中保存非易失性数据的应用方式来达到使用要求。对一些普通的应用场合,这种使用方式可以满足要求。
比如,STM32系列处理器中并不具备EEPROM。为了存储非易失性数据,需要利用芯片内部FLASH空间中程序代码区域的未利用空间作为存储非易失性数据空间。但是由于FLASH与EEPROM在擦写寿命上存在一定差距,所以在实际应用中,这种应用方式并不能够满足所有应用需求。
当前在单片机保存少量数据的时候,都保存在固定的位置,这将导致数据保存对应的页面需要在有数据变化的时候进行擦除操作,这就很容易达到FLASH的擦写次数上限,进而导致整个CPU无法使用。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种减少片内FLASH擦除次数的方法,大大减少了页面的擦写次数,进而提高了芯片的使用寿命。
为实现上述目的,本发明提供了一种减少片内FLASH擦除次数的方法,其包含:在FLASH的空间中划分出管理页及多个数据储存页,多个数据储存页用作数据存储块,且管理页用作数据存储块的块头结构体存放地址;其中,要写入的数据默认从多个数据储存页的第一页开始写入,并且写入的同时,写入的数据的数据存储块的块头结构体写入管理页中;其中,在写入数据的过程中,块头结构体每次在上一次写的块头结构体后顺序写入更新后的块头结构体,当写到管理页的末尾时,擦除管理页,并从管理页的首地址开始写入;其中,在写入数据的过程中,当数据储存页的第一页写满时,数据继续写入数据储存页的剩余页,当剩余页写满时,擦除第一页,且数据从第一页的首地址继续写入。
优选地,上述技术方案中,数据存储块的块头结构体包含:数据存储块的大小、数据项的大小、数据的数量、指向第一条数据的头指针以及指向最后一条数据的尾指针。
优选地,上述技术方案中,写入数据是采用FIFO机制实现。
优选地,上述技术方案中,多个储存页的储存空间相同,且数据储存页的储存空间为16个字节或32个字节。
优选地,上述技术方案中,读取数据时,首先读取管理页中的块头结构体,从而确定数据在数据储存页中的位置,然后读取数据储存页中的数据,当数据储存页中的头指针移动至尾指针时,数据全部读取完成,则擦除数据储存页。
与现有技术相比,本发明具有如下有益效果:本发明的减少片内FLASH擦除次数的方法,大大减少了页面的擦写次数,进而提高了芯片的使用寿命。
附图说明
图1是根据本发明的一种减少片内FLASH擦除次数的方法的流程示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
如图1所示,根据本发明具体实施方式的一种减少片内FLASH擦除次数的方法,其包含:在FLASH的空间中划分出管理页及多个数据储存页,多个数据储存页用作数据存储块,且管理页用作数据存储块的块头结构体存放地址;其中,要写入的数据默认从多个数据储存页的第一页开始写入,并且写入的同时,写入的数据的数据存储块的块头结构体写入管理页中;其中,在写入数据的过程中,块头结构体每次在上一次写的块头结构体后顺序写入更新后的块头结构体,当写到管理页的末尾时,擦除管理页,并从管理页的首地址开始写入;其中,在写入数据的过程中,当数据储存页的第一页写满时,数据继续写入数据储存页的剩余页,当剩余页写满时,擦除第一页,且数据从第一页的首地址继续写入。
优选地,数据存储块的块头结构体包含:数据存储块的大小、数据项的大小、数据的数量、指向第一条数据的头指针以及指向最后一条数据的尾指针;写入数据是采用FIFO机制实现;多个储存页的储存空间相同,且数据储存页的储存空间为16个字节或32个字节。
优选地,读取数据时,首先读取管理页中的块头结构体,从而确定数据在数据储存页中的位置,然后读取数据储存页中的数据,当数据储存页中的头指针移动至尾指针时,数据全部读取完成,则擦除数据储存页。
块头结构体的定义如下:
块头结构体存储在FLASH空间的管理页中,在存储过程中,每次在上一次写的块头结构体后顺序写入更新后的块头结构体。当写到管理页的末尾时,擦除当前页,从页首地址重新开始写入。读取块头结构体的数据时,从页头开始查找,最后一个记录项就是当前的块头结构体的记录项。
数据存储在划分好的多个数据储存页中(即数据储存块中),存取时按照约定的记录大小为单位,采用FIFO机制实现。块头结构体中的头指针、尾指针分别指向存有数据的队列的首部和尾部。
当有数据需要写入时,首先数据默认从数据储存页的第一页开始写入,并且写入数据的同时,该第一页的数据存储块的块头结构体同时存入管理页中,以便后续读取数据时查找方便,而在写入数据的过程中,块头结构体每次在上一次写的块头结构体后顺序写入更新后的块头结构体,当写到管理页的末尾时,擦除管理页,并从管理页的首地址开始写入,同时具体数据的内容也会写入多个数据储存页,当数据储存页的所述第一页写满时,数据继续写入数据储存页的剩余页,当剩余页写满时,擦除第一页,且数据从第一页的首地址继续写入,已形成循环写入。
读取数据时,首先读取管理页中的块头结构体,从而确定数据在数据储存页中的位置,然后读取数据储存页中的数据,当数据储存页中的头指针移动至所述尾指针时,数据全部读取完成,则数据储存页进行擦除。
综上所述,本发明的减少片内FLASH擦除次数的方法,大大减少了页面的擦写次数,进而提高了芯片的使用寿命。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
Claims (5)
1.一种减少片内FLASH擦除次数的方法,其特征在于,所述减少片内FLASH擦除次数的方法包括:
在所述FLASH的空间中划分出管理页及多个数据储存页,所述多个数据储存页用作数据存储块,且所述管理页用作所述数据存储块的块头结构体存放地址;
其中,要写入的数据默认从所述多个数据储存页的第一页开始写入,并且写入的同时,写入的所述数据的所述数据存储块的所述块头结构体写入所述管理页中;
其中,在写入所述数据的过程中,所述块头结构体每次在上一次写的所述块头结构体后顺序写入更新后的所述块头结构体,当写到所述管理页的末尾时,擦除所述管理页,并从所述管理页的首地址开始写入;
其中,在写入所述数据的过程中,当所述数据储存页的所述第一页写满时,所述数据继续写入所述数据储存页的剩余页,当所述剩余页写满时,擦除所述第一页,且所述数据从所述第一页的首地址继续写入。
2.根据权利要求1所述的减少片内FLASH擦除次数的方法,其特征在于,所述数据存储块的所述块头结构体包含:所述数据存储块的大小、数据项的大小、数据的数量、指向第一条数据的头指针以及指向最后一条数据的尾指针。
3.根据权利要求1所述的减少片内FLASH擦除次数的方法,其特征在于,写入所述数据是采用FIFO机制实现。
4.根据权利要求1所述的减少片内FLASH擦除次数的方法,其特征在于,所述多个储存页的储存空间相同,且所述数据储存页的所述储存空间为16个字节或32个字节。
5.根据权利要求1所述的减少片内FLASH擦除次数的方法,其特征在于,读取所述数据时,首先读取所述管理页中的所述块头结构体,从而确定所述数据在所述数据储存页中的位置,然后读取所述数据储存页中的所述数据,当所述数据储存页中的所述头指针移动至所述尾指针时,所述数据全部读取完成,则所述数据储存页进行擦除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710884524.5A CN107608906A (zh) | 2017-09-26 | 2017-09-26 | 减少片内flash擦除次数的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710884524.5A CN107608906A (zh) | 2017-09-26 | 2017-09-26 | 减少片内flash擦除次数的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107608906A true CN107608906A (zh) | 2018-01-19 |
Family
ID=61058386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710884524.5A Pending CN107608906A (zh) | 2017-09-26 | 2017-09-26 | 减少片内flash擦除次数的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107608906A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002399A (zh) * | 2018-07-09 | 2018-12-14 | 北京智芯微电子科技有限公司 | 嵌入式设备事件记录的方法 |
CN109558080A (zh) * | 2018-11-20 | 2019-04-02 | 宁波三星医疗电气股份有限公司 | 一种电力采集设备的NandFlash数据管理方法 |
CN110389723A (zh) * | 2019-07-22 | 2019-10-29 | 广东美的制冷设备有限公司 | 数据的存储方法、装置、空调器和存储介质 |
CN111078136A (zh) * | 2019-10-22 | 2020-04-28 | 安徽力高新能源技术有限公司 | 一种防止BMS动态数据存储导致flash寿命降低的方法 |
CN112525278A (zh) * | 2020-12-05 | 2021-03-19 | 重庆前卫表业有限公司 | 一种应用均衡寿命存储方法的智能燃气表及数据存储方法 |
CN114528561A (zh) * | 2022-01-13 | 2022-05-24 | 山东华芯半导体有限公司 | 一种flash密钥存储管理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160004474A1 (en) * | 2013-03-15 | 2016-01-07 | Huawei Technologies Co., Ltd. | Data Erasing Method and Apparatus Applied to Flash Memory |
CN106293532A (zh) * | 2016-08-10 | 2017-01-04 | 广东佳禾声学科技有限公司 | 一种Flash数据储存方法 |
-
2017
- 2017-09-26 CN CN201710884524.5A patent/CN107608906A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160004474A1 (en) * | 2013-03-15 | 2016-01-07 | Huawei Technologies Co., Ltd. | Data Erasing Method and Apparatus Applied to Flash Memory |
CN106293532A (zh) * | 2016-08-10 | 2017-01-04 | 广东佳禾声学科技有限公司 | 一种Flash数据储存方法 |
Non-Patent Citations (2)
Title |
---|
周立功等: "《ARM嵌入式系统软件开发实例 二》", 30 June 2006, 北京航空航天出版社 * |
张刚等: "《最新DSP技术 "达芬奇"系统、框架和组件》", 30 September 2009, 国防工业出版社 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109002399A (zh) * | 2018-07-09 | 2018-12-14 | 北京智芯微电子科技有限公司 | 嵌入式设备事件记录的方法 |
CN109002399B (zh) * | 2018-07-09 | 2021-05-18 | 北京智芯微电子科技有限公司 | 嵌入式设备事件记录的方法 |
CN109558080A (zh) * | 2018-11-20 | 2019-04-02 | 宁波三星医疗电气股份有限公司 | 一种电力采集设备的NandFlash数据管理方法 |
CN109558080B (zh) * | 2018-11-20 | 2022-04-22 | 宁波三星医疗电气股份有限公司 | 一种电力采集设备的NandFlash数据管理方法 |
CN110389723A (zh) * | 2019-07-22 | 2019-10-29 | 广东美的制冷设备有限公司 | 数据的存储方法、装置、空调器和存储介质 |
CN111078136A (zh) * | 2019-10-22 | 2020-04-28 | 安徽力高新能源技术有限公司 | 一种防止BMS动态数据存储导致flash寿命降低的方法 |
CN111078136B (zh) * | 2019-10-22 | 2023-05-05 | 力高(山东)新能源技术股份有限公司 | 一种防止BMS动态数据存储导致flash寿命降低的方法 |
CN112525278A (zh) * | 2020-12-05 | 2021-03-19 | 重庆前卫表业有限公司 | 一种应用均衡寿命存储方法的智能燃气表及数据存储方法 |
CN114528561A (zh) * | 2022-01-13 | 2022-05-24 | 山东华芯半导体有限公司 | 一种flash密钥存储管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107608906A (zh) | 减少片内flash擦除次数的方法 | |
JP4729062B2 (ja) | メモリシステム | |
EP1769331B1 (en) | Storage device and host apparatus | |
US20080162792A1 (en) | Caching device for nand flash translation layer | |
US8850102B2 (en) | Flash memory with small data programming capability | |
US8433844B2 (en) | Method for managing a memory device having multiple channels and multiple ways, and associated memory device and controller thereof | |
US20150026390A1 (en) | Garbage collection control method for solid state drive | |
JP2011508357A (ja) | 1セル当り単一ビットnandフラッシュメモリをエミュレートする1セル当り多ビットnandフラッシュメモリ用コントローラ | |
CN102890620A (zh) | 非易失性临时数据处理 | |
CN110018787A (zh) | 基于ssd全系统的固件读写方法、装置和计算机设备 | |
US20170154681A1 (en) | Memory control method and apparatus | |
CN100365593C (zh) | 计算机系统的内存管理方法 | |
CN109002399A (zh) | 嵌入式设备事件记录的方法 | |
CN102521146A (zh) | 一种flash存储器块细分的数据寻址存储方法 | |
US11210209B2 (en) | Method for managing flash memory module and associated flash memory controller and electronic device | |
CN109710547B (zh) | 一种工业物联网中的缓冲内存管理设计与实现方法 | |
US20140269086A1 (en) | System and method of accessing memory of a data storage device | |
US10282328B2 (en) | Apparatus having direct memory access controller and method for accessing data in memory | |
US9405674B2 (en) | Address generating circuit and address generating method | |
CN106776360B (zh) | 一种芯片及电子设备 | |
US8312205B2 (en) | Method for identifying a page of a block of flash memory, and associated memory device | |
US8566562B2 (en) | Method for sequentially writing data with an offset to a non-volatile memory | |
CN110427161B (zh) | 一种用于串行闪存的数据存储方法 | |
CN101963942A (zh) | 一种机顶盒nor型flash快速存储的方法 | |
US20090055574A1 (en) | NAND Flash Memory Device And Related Method Thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180119 |
|
RJ01 | Rejection of invention patent application after publication |