CN111258498B - 一种flash存储器管理方法 - Google Patents
一种flash存储器管理方法 Download PDFInfo
- Publication number
- CN111258498B CN111258498B CN201911244583.1A CN201911244583A CN111258498B CN 111258498 B CN111258498 B CN 111258498B CN 201911244583 A CN201911244583 A CN 201911244583A CN 111258498 B CN111258498 B CN 111258498B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- data
- read
- logical address
- address
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种FLASH存储器管理方法,包括以下过程:初始化FLASH存储器;写入数据时更新读逻辑地址;读取数据时提示读取状态。S101:从定义的FLASH存储区逻辑地址0开始,依次向后查找是否存在STATUS标记为空的存储单元,若是进行S102,若否进行S103;S102:从当前逻辑地址依次向前查找是否存在通过CRC16校验的存储单元,若是进行S104,若否进行S103;S103:擦除整个FLASH存储器的存储区,设置定义FLASH存储器的存储区最大逻辑地址为读逻辑地址,初始化结束;S104:设置当前存储单元逻辑地址为读逻辑地址,初始化结束。本发明能够简化应用的复杂程度,实现存储器均衡磨损和随机掉电数据不丢失,同时使用CRC校验,保证数据的完整性和正确性。
Description
技术领域
本发明涉及存储器技术领域,尤其是涉及一种FLASH存储器管理方法。
背景技术
一般高级的单片机系统中,直接使用EMMC、UFS或其他带控制器管理的存储方案,且上层使用文件系统,比如手机、平板等,对于微单片机系统来说,考虑成本及系统复杂度的原因,大多直接采用MCU内部或片外的FLASH作为数据存储器,虽然硬件方案简单,但是如果直接通过固定地址存储对FLASH进行读写不能保证磨损均衡,影响FLASH使用寿命,而且如果系统随机掉电可能会导致数据丢失。若直接使用双页备份,每次写入需要都要擦除一页,对于数据量不大的情况下,存储密度和效率都比较低而且对FLASH寿命影响较大。
发明内容
本发明解决了FLASH存储器在擦除时磨损不均衡和系统随机掉电时数据丢失的问题,提出了一种FLASH存储器管理方法,能够简化应用的复杂程度,实现存储器均衡磨损和随机掉电数据不丢失,同时使用CRC校验,保证数据的完整性和正确性。
为实现上述目的,本发明提供以下的技术方案:
一种FLASH存储器管理方法,包括以下过程:初始化FLASH存储器;写入数据时更新读逻辑地址;读取数据时提示读取状态。
初始化FLASH存储器的作用是找出存有最新有效数据的读逻辑地址,系统随机断电时,FLASH存储器无法调用,同时其读逻辑地址存有最新有效数据不会丢失;写入数据时更新读逻辑地址作用是保护数据,而写入数据时不断的更新读逻辑地址,将新的读逻辑地址内存有新的数据,同时此时系统发生随机断电,新的读逻辑地址已经存到FLASH存储器,数据不会发生丢失;同时在更新读逻辑地址还有判断FLASH存储器的存储页逻辑地址的环节,每次写入需要判断当前逻辑地址是否为存储页最后一条逻辑地址,若是才擦除下一页,比现有技术中每次写入都要擦除一页更加方便,简化了写入数据的过程。写入数据时更新读逻辑地址还有一个作用是,通过不断变更读逻辑地址存储对FLASH进行读写,FLASH存储器内部擦除区域不定,使得FLASH存储器均衡磨损,延长FLASH使用寿命。
作为优选,所述初始化FLASH存储器具体包括以下步骤:
S101:从定义的FLASH存储区逻辑地址0开始,依次向后查找是否存在STATUS标记为空的存储单元,若是进行S102,若否进行S103;
S102:从当前逻辑地址依次向前查找是否存在通过CRC16校验的存储单元,若是进行S104,若否进行S103;
S103:擦除整个FLASH存储器的存储区,设置定义FLASH存储器的存储区最大逻辑地址为读逻辑地址,初始化结束;
S104:设置当前存储单元逻辑地址为读逻辑地址,初始化结束。
作为优选,所述写入数据时更新读逻辑地址的具体过程包括以下步骤:
S201:判断写入数据与FLASH存储器内部读出的应用数据是否一致,若是直接结束,不写入FLASH存储器,若否进行S202;
S202:计算写入逻辑地址;
S203:判断写入逻辑地址是否为存储页PAGE的最后一个,若是则擦除下一存储页PAGE的数据,再进行S204;
S204:计算、校验、打包数据,写入FLASH存储器,并将写入逻辑地址作为新的读逻辑地址。
作为优选,在步骤S202中,计算写入逻辑地址公式为:
写入逻辑地址=(读逻辑地址+1)% 总逻辑地址数。
作为优选,所述读取数据时提示读取状态的具体过程包括以下步骤:
S301:从当前读逻辑地址读取数据;
S302:判断数据是否存在通过CRC16校验,若是则提示读取成功,若否则提示读取失败。
作为优选,在所述写入数据时更新读逻辑地址前先进行初始化FLASH存储器;在所述读取数据时提示读取状态前先进行初始化FLASH存储器。
作为优选,先进行初始化FLASH存储器,再进行写入数据时更新读逻辑地址,最后进行读取数据时提示读取状态。
本发明有以下有益效果:通过写入数据时更新读逻辑地址,保证系统随机断电数据不会丢失;判断写入逻辑地址是否为存储页PAGE的最后一个,若是则擦除下一存储页PAGE的数据,简化了写入数据的过程;通过不断变更读逻辑地址存储对FLASH进行读写,FLASH存储器内部擦除区域不定,使得FLASH存储器均衡磨损,延长FLASH使用寿命。
附图说明
图1是实施例中FLASH存储器的结构图。
图2是实施例中初始化FLASH存储器的流程图。
图3是实施例中写入数据时更新读逻辑地址的流程图。
图4是实施例中读取数据时提示读取状态的流程图。
其中: 1、存储区 2、存储页PAGE 3、最小存储读写单元PACK。
具体实施方式
实施例:
本实施例提出一种FLASH存储器管理方法,包括以下过程:初始化FLASH存储器;写入数据时更新读逻辑地址;读取数据时提示读取状态。为方便说明,本实施例采用的FLASH存储器结构如下,参考图1,FLASH存储器的存储区1由M个存储页PAGE2构成,其中M大于等于2,存储页PAGE2由N个逻辑地址、N个最小存储读写单元PACK3及字节不足最小存储读写单元PACK3的DUMMY2部分,其中最小存储读写单元PACK3包括集成的特殊标记部STSTUS、数据存储部DATA、校核部CRC16和长度余数部DUMMY1。
存储页PAGE2是FLASH存储器的最小擦除单元;当特殊标记部STSTUS定长为1个字节,当其标记为空时,最小存储读写单元PACK3无存储数据;数据存储部DATA用于存储需要存储的数据,其字节不定长,根据需要进行配置;校核部CRC16,定长两个字节,对数据进行CRC16校核,通过CRC16校核的数据为有效数据,反之为无效数据,CRC16校核为本领域技术的常用技术,在此可以直接使用;长度余数部DUMMY1是存储区1最小编程长度余数,即STATUS+DATA+CRC16+DUMMY1必须为存储区1最小编程长度整数倍;DUMMY2部分为字节不足最小存储读写单元PACK3的部分;最小编程长度为单次写入的字节数,本实施例中单次写入的字节数为一个字节;本实施例中N个逻辑地址标志逻辑地址0到逻辑地址N-1,对应N个最小存储读写单元PACK3。
参考图,2,初始化FLASH存储器具体包括以下步骤:
S101:从定义的FLASH存储区1的逻辑地址0开始,依次向后查找是否存在STATUS标记为空的最小存储读写单元PACK3,若是进行S102,若否进行S103;
S102:从当前逻辑地址依次向前查找是否存在通过CRC16校验的最小存储读写单元PACK3,若是进行S104,若否进行S103;
S103:擦除整个FLASH存储器的存储区1,设置定义FLASH存储器的存储区1最大逻辑地址为读逻辑地址,初始化结束,所述读逻辑地址为最新数据存储的最小存储读写单元PACK3所对应的逻辑地址;
S104:设置当前最小存储读写单元PACK3逻辑地址为读逻辑地址,初始化结束。
参考图3,写入数据时更新读逻辑地址的具体过程包括以下步骤:
S201:判断写入数据与FLASH存储器内部读出的应用数据是否一致,若是直接结束,不写入FLASH存储器,若否进行S202;
S202:计算写入逻辑地址,计算写入逻辑地址公式为:
写入逻辑地址=(读逻辑地址+1)% 总逻辑地址数;
S203:判断写入逻辑地址是否为存储页PAGE的最后一个,若是则擦除下一存储页PAGE2的数据,再进行S204;
S204:计算、校验、打包数据,写入FLASH存储器,并将写入逻辑地址作为新的读逻辑地址。
参考图4,读取数据时提示读取状态的具体过程包括以下步骤:
S301:从当前读逻辑地址读取数据;
S302:判断数据是否存在通过CRC16校验,若是则提示读取成功,若否则提示读取失败。
本方法有两种工作状态:
A,在写入数据时更新读逻辑地址前先进行初始化FLASH存储器;在读取数据时提示读取状态前先进行初始化FLASH存储器。
B,先进行初始化FLASH存储器,再进行写入数据时更新读逻辑地址,最后进行读取数据时提示读取状态。
初始化FLASH存储器的作用是找出存有最新有效数据的读逻辑地址,系统随机断电时,FLASH存储器无法调用,同时其读逻辑地址存有最新有效数据不会丢失;写入数据时更新读逻辑地址作用是保护数据,而写入数据时不断的更新读逻辑地址,将新的读逻辑地址内存有新的数据,同时此时系统发生随机断电,新的读逻辑地址已经存到FLASH存储器,数据不会发生丢失;同时在更新读逻辑地址还有判断FLASH存储器的存储页逻辑地址的环节,每次写入需要判断当前逻辑地址是否为存储页最后一条逻辑地址,若是才擦除下一页,比现有技术中每次写入都要擦除一页更加方便,简化了写入数据的过程。写入数据时更新读逻辑地址还有一个作用是,通过不断变更读逻辑地址存储对FLASH进行读写,FLASH存储器内部擦除区域不定,使得FLASH存储器均衡磨损,延长FLASH使用寿命。
本发明有以下有益效果:通过写入数据时更新读逻辑地址,保证系统随机断电数据不会丢失;判断写入逻辑地址是否为存储页PAGE的最后一个,若是则擦除下一存储页PAGE的数据,简化了写入数据的过程;通过不断变更读逻辑地址存储对FLASH进行读写,FLASH存储器内部擦除区域不定,使得FLASH存储器均衡磨损,延长FLASH使用寿命。
Claims (6)
1.一种FLASH存储器管理方法,其特征是,包括以下过程:一种FLASH存储器管理方法,其特征是,包括以下过程:初始化FLASH存储器,找出存有最新有效数据的读逻辑地址;写入数据时更新读逻辑地址,新的读逻辑地址内存有新的数据,每次写入需要判断当前逻辑地址是否为存储页最后一条逻辑地址,若是才擦除下一页;读取数据时提示读取状态;
所述初始化FLASH存储器具体包括以下步骤:
S101:从定义的FLASH存储区逻辑地址0开始,依次向后查找是否存在STATUS标记为空的存储单元,若是进行S102,若否进行S103;
S102:从当前逻辑地址依次向前查找是否存在通过CRC16校验的存储单元,若是进行S104,若否进行S103;
S103:擦除整个FLASH存储器的存储区,设置定义FLASH存储器的存储区最大逻辑地址为读逻辑地址,初始化结束;
S104:设置当前存储单元逻辑地址为读逻辑地址,初始化结束。
2.根据权利要求1所述的一种FLASH存储器管理方法,其特征是,所述写入数据时更新读逻辑地址的具体过程包括以下步骤:
S201:判断写入数据与FLASH存储器内部读出的应用数据是否一致,若是直接结束,不写入FLASH存储器,若否进行S202;
S202:计算写入逻辑地址;
S203:判断写入逻辑地址是否为存储页PAGE的最后一个,若是则擦除下一存储页PAGE的数据,再进行S204;
S204:计算、校验、打包数据,写入FLASH存储器,并将写入逻辑地址作为新的读逻辑地址。
3.根据权利要求2所述的一种FLASH存储器管理方法,其特征是,在步骤S202中,计算写入逻辑地址公式为:
写入逻辑地址=(读逻辑地址+1)% 总逻辑地址数。
4.根据权利要求1所述的一种FLASH存储器管理方法,其特征是,所述读取数据时提示读取状态的具体过程包括以下步骤:
S301:从当前读逻辑地址读取数据;
S302:判断数据是否存在通过CRC16校验,若是则提示读取成功,若否则提示读取失败。
5.根据权利要求1-4任一项所述的一种FLASH存储器管理方法,其特征是,在所述写入数据时更新读逻辑地址前先进行初始化FLASH存储器;在所述读取数据时提示读取状态前先进行初始化FLASH存储器。
6.根据权利要求1-4任一项所述的一种FLASH存储器管理方法,其特征是,先进行初始化FLASH存储器,再进行写入数据时更新读逻辑地址,最后进行读取数据时提示读取状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911244583.1A CN111258498B (zh) | 2019-12-06 | 2019-12-06 | 一种flash存储器管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911244583.1A CN111258498B (zh) | 2019-12-06 | 2019-12-06 | 一种flash存储器管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258498A CN111258498A (zh) | 2020-06-09 |
CN111258498B true CN111258498B (zh) | 2023-08-22 |
Family
ID=70945105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911244583.1A Active CN111258498B (zh) | 2019-12-06 | 2019-12-06 | 一种flash存储器管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258498B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116302005B (zh) * | 2023-05-11 | 2023-08-22 | 合肥智芯半导体有限公司 | 芯片、芯片升级方法、装置、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419841A (zh) * | 2008-12-09 | 2009-04-29 | 苏州大学 | 一种flash存储器擦写方法 |
CN102662856A (zh) * | 2012-04-27 | 2012-09-12 | 中国科学院计算技术研究所 | 一种固态硬盘及其存取方法 |
CN108255436A (zh) * | 2018-01-25 | 2018-07-06 | 广东美的制冷设备有限公司 | 数据存取方法、存取装置、家电设备和可读存储介质 |
-
2019
- 2019-12-06 CN CN201911244583.1A patent/CN111258498B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419841A (zh) * | 2008-12-09 | 2009-04-29 | 苏州大学 | 一种flash存储器擦写方法 |
CN102662856A (zh) * | 2012-04-27 | 2012-09-12 | 中国科学院计算技术研究所 | 一种固态硬盘及其存取方法 |
CN108255436A (zh) * | 2018-01-25 | 2018-07-06 | 广东美的制冷设备有限公司 | 数据存取方法、存取装置、家电设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111258498A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7937521B2 (en) | Read disturbance management in a non-volatile memory system | |
US9645895B2 (en) | Data storage device and flash memory control method | |
US9189325B2 (en) | Memory system and operation method thereof | |
US8090899B1 (en) | Solid state drive power safe wear-leveling | |
JP4729062B2 (ja) | メモリシステム | |
US8037232B2 (en) | Data protection method for power failure and controller using the same | |
US8046526B2 (en) | Wear leveling method and controller using the same | |
US8453021B2 (en) | Wear leveling in solid-state device | |
CN103106143B (zh) | 固态储存装置及其逻辑至实体对应表建立方法 | |
US20090307413A1 (en) | Data writing method for flash memory and storage system and controller using the same | |
US8332696B2 (en) | Defect management method for storage medium and system thereof | |
US8516184B2 (en) | Data updating using mark count threshold in non-volatile memory | |
CN104750571A (zh) | 用以进行错误纠正的方法、存储装置与存储装置的控制器 | |
TWI479492B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
CN108804045B (zh) | 一种坏块表建立方法及相关装置 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
TWI479315B (zh) | 記憶體儲存裝置、其記憶體控制器與資料寫入方法 | |
CN114756179B (zh) | 基于模拟eeprom的数据写入、读取及管理方法 | |
CN102981969A (zh) | 重复数据删除的方法及其固态硬盘 | |
CN107045423B (zh) | 存储器装置及其数据存取方法 | |
WO2010024506A1 (en) | Flash based storage device using page buffer as write cache and method of using the same | |
CN102789813B (zh) | 一种控制存储设备内非最低有效位页使用的方法及装置 | |
CN111258498B (zh) | 一种flash存储器管理方法 | |
CN113885808A (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus |
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 | ||
CB02 | Change of applicant information |
Address after: 310051 1st and 6th floors, no.451 Internet of things street, Binjiang District, Hangzhou City, Zhejiang Province Applicant after: Zhejiang Zero run Technology Co.,Ltd. Address before: 310051 1st and 6th floors, no.451 Internet of things street, Binjiang District, Hangzhou City, Zhejiang Province Applicant before: ZHEJIANG LEAPMOTOR TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |