CN110795040A - 简易文件管理系统及其实现方法 - Google Patents
简易文件管理系统及其实现方法 Download PDFInfo
- Publication number
- CN110795040A CN110795040A CN201911030682.XA CN201911030682A CN110795040A CN 110795040 A CN110795040 A CN 110795040A CN 201911030682 A CN201911030682 A CN 201911030682A CN 110795040 A CN110795040 A CN 110795040A
- Authority
- CN
- China
- Prior art keywords
- space
- area
- data
- index table
- management system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000005192 partition Methods 0.000 claims abstract description 8
- 230000002035 prolonged effect Effects 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 10
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及软件系统领域,特别地,涉及一种简易文件管理系统及其实现方法,包括flash模块,还包括分区表,以及索引表;所述flash模块划分成若干空间space,其中每个空间space用以对应记录存储一类信息;每个空间space均划分成若干区域area,数据以区域area为单位进行存储,且每个空间space内的区域area按序分布;在对应的空间space内读写数据时,按照该空间space内的区域area的分布顺序,依次循环选择在相应的区域area进行读写。本系统采用动态平均擦写的方式,较之传统的固定地址读写方式,大大的延长了flash的使用寿命。并且即使在写入时掉电,索引表中的area id保持不变,故在设备重启后,读取的位上一次的完整数据,从而能保证数据的完整性。
Description
技术领域
本发明涉及软件系统领域,特别地,涉及一种简易文件管理系统及其实现方法。
背景技术
目前MCU单片机资源缺乏,大多数研发人员通过直接读写flash绝对地址的方式存储数据,具有简单、方便、研发周期短等特点,短期内运行问题不大,但针对长期运行(>3年),且稳定性要求高的场景,隐藏的问题就暴露出来了,主要表现如下:
1、固定地址直接读取数据
数据直接存储在flash固定地址,应用程序直接根据地址读写数据,根据flash特性,当写数据时,必须先擦除,然后再写入数据。由于flash可擦除的次数是有限制的,通常为10万次,这样,当我们以固定地址频繁读写时,容易导致地址所在的扇区坏损,从而数据存储失败。
2、当写入时断电,造成数据完整性破坏或者丢失。
由于flash写数据时,必须先擦除,再写入数据,当一次完整的写数据过程中断电,原数据的完整性可能被破坏,从而导致数据存储失败。
发明内容
有鉴于此,本发明目的是提供一种简易文件管理系统及其实现方法。
为了解决上述技术问题,本发明的技术方案是:
一种简易文件管理系统,包括flash模块,还包括分区表,以及索引表;
所述flash模块划分成若干空间space,其中每个空间space用以对应记录存储一类信息;
每个空间space均划分成若干区域area,数据以区域area为单位进行存储,且每个空间space内的区域area按序分布;在对应的空间space内读写数据时,按照该空间space内的区域area的分布顺序,依次循环选择在相应的区域area进行读写;
所述分区表用以储存记录每个空间space的起始地址、长度,以及该空间space内存在的区域area的数量及大小;
所述索引表用以指示当前数据所存储的区域area。
优选的,所述flash模块划分成3个空间space,分别作用于:
用以记录日常使用常用参数;
用以储存日志;
用以记录一些重要的、不可出错的信息参数。
本发明还提供了一种上述简易文件管理系统的实现方法,包括如下步骤:
首先设备启动:应用程序从flash模块中读取索引表信息到ram缓存中,根据索引表信息检测所有的空间space是否已被初始化,若没有,则初始化相应的未被初始化的空间space,启动完成;若所有空间space均已被初始化,则直接完成启动;
设备启动后可根据需要进行数据读取程序或数据写入程序。
优选的,所述数据读取程序包括如下步骤:
S1、根据选择的空间space 的id获取该空间space的起始地址、长度,以及该空间space中区域area的大小;
S2、根据索引表中当前的区域area的id与偏移量offset计算目标绝对地址;
S3、根据目标的起始绝对地址,以及所读数据的长度读取数据,读取完成。
优选的,所述写入程序包括如下步骤:
T1、根据选择的空间space 的id获取该空间space的起始地址、长度,以及该空间space中区域area的大小;
T2、根据索引表中当前区域area的id获取下一个区域area的id;
T3、将flash中当前区域area中的数据拷贝到新的区域area中;
T4、将需要更新的ram中数据拷贝到新的area中;
T5、将索引表中该空间space中的area的id更新为新的area的id。
综上所述,较之现有技术,本发明的优点在于:
本系统采用动态平均擦写的方式,较之传统的固定地址读写方式,大大的延长了flash的使用寿命。
并且即使在写入时掉电,索引表中的area id保持不变,故在设备重启后,读取的位上一次的完整数据,从而能保证数据的完整性。
通过将整个flash空间分区,并将所有的分区空间利用索引表管理,这样方便flash空间的分类管理以及维护。
本系统可以支持一次擦除,多次写入,避免擦除时间过长,减少擦除次数,故延长了flash寿命。
附图说明
图1为flash的分区关系示意图;
图2为本简易文件管理系统实现流程图;
图3为写数据流程示意图。
具体实施方式
以下结合附图,对本发明的具体实施方式作进一步详述,以使本发明技术方案更易于理解和掌握。
实施例1:
参照图1所示,本实施例提供一种简易文件管理系统,包括flash模块、分区表,以及索引表;
所述flash模块划分成若干空间space,其中每个空间space用以对应记录存储一类信息,本实施例以建立3个空间space为例,其中第一个用以用以记录日常使用常用参数;第二个用以储存日志;第三个用以记录一些重要的、不可出错的信息参数。每一个空间space都对应分配有一个id,以此指示对应的空间space,比如第一个空间space id为1,第二个为2…,依次类推。
本实施例中每个空间space均划分成若干区域area,比如8个区域area,数据以区域area为单位进行存储,且每个空间space内的区域area按序分布,每一个区域area也对应的分配有id,以此指示对应的area,比如第一个区域id为1,第二个id为2…,依次类推。
在对应的空间space内读写数据时,按照该空间space内的区域area的分布顺序,依次循环选择在相应的区域area进行读写,换言之,首先在第一个区域内进行读写,然后第二个…,直至第八个,再由第八个回到第一个,如此循环读写。
其中分区表用以储存记录每个空间space的起始地址、长度,以及该空间space内存在的区域area的数量及大小;
所述索引表用以指示当前数据所存储的区域area,具体而言,索引表用以指示当前存储数据位于对应空间space的哪个区域area;区域area的id存储于索引表中。
结合图2所示,本文件管理系统的程序实现流程具体包括如下步骤:
首先设备启动:应用程序从flash模块中读取索引表信息到ram缓存中,根据索引表信息检测所有的空间space是否已被初始化,若没有,则初始化相应的未被初始化的空间space,启动完成;若所有空间space均已被初始化,则直接完成启动。
设备启动后,便可根据需要进行数据读取程序或数据写入程序。
其中数据读取程序包括如下步骤:
S1、根据选择的空间space id获取该空间space的起始地址、长度,以及该空间space中区域area的大小;
S2、根据空间space信息,结合索引表中当前的区域area的id与偏移量offset计算目标绝对地址;
S3、根据目标的起始绝对地址,以及所读数据的长度读取数据,读取完成。
结合图3所示,其中所述写入程序包括如下步骤:
T1、根据选择的空间space 的id获取该空间space的起始地址、长度,以及该空间space中区域area的大小;
T2、根据索引表中当前区域area的id获取下一个区域area的id;
T3、将flash中当前区域area中的数据拷贝到新的区域area中,在此过程中,只拷贝不需要更新的部分;
T4、将需要更新的ram中数据拷贝到新的area中,此过程中,只拷贝需要更新的部分;
T5、将索引表中该空间space中的area的id更新为新的area的id。
由以上过程可知,本系统采用动态平均擦写的方式,较之传统的固定地址读写方式,大大的延长了flash的使用寿命。
并且即使在写入时掉电,索引表中的area id保持不变,故在设备重启后,读取的位上一次的完整数据,从而能保证数据的完整性。
通过将整个flash空间分区,并将所有的分区空间利用索引表管理,这样方便flash空间的分类管理以及维护。
本系统可以支持一次擦除,多次写入,避免擦除时间过长,减少擦除次数,故延长了flash寿命。
以上只是本发明的典型实例,除此之外,本发明还可以有其它多种具体实施方式,凡采用等同替换或等效变换形成的技术方案,均落在本发明要求保护的范围。
Claims (5)
1.一种简易文件管理系统,包括flash模块,其特征在于:还包括分区表,以及索引表;
所述flash模块划分成若干空间space,其中每个空间space用以对应记录存储一类信息;
每个空间space均划分成若干区域area,数据以区域area为单位进行存储,且每个空间space内的区域area按序分布;在对应的空间space内读写数据时,按照该空间space内的区域area的分布顺序,依次循环选择在相应的区域area进行读写;
所述分区表用以储存记录每个空间space的起始地址、长度,以及该空间space内存在的区域area的数量及大小;
所述索引表用以指示当前数据所存储的区域area。
2.根据权利要求1所述的一种简易文件管理系统,其特征在于:所述flash模块划分成3个空间space,分别作用于:
用以记录日常使用常用参数;
用以储存日志;
用以记录一些重要的不可出错的信息参数。
3.一种根据权利要求1所述的简易文件管理系统的实现方法,其特征在于:包括如下步骤:
首先设备启动:应用程序从flash模块中读取索引表信息到ram缓存中,根据索引表信息检测所有的空间space是否已被初始化,若没有,则初始化相应的未被初始化的空间space,启动完成;若所有空间space均已被初始化,则直接完成启动;
设备启动后可根据需要进行数据读取程序或数据写入程序。
4.根据权利要求3所述的简易文件管理系统的实现方法,其特征在于:所述数据读取程序包括如下步骤:
S1、根据选择的空间space 的id获取该空间space的起始地址、长度,以及该空间space中区域area的大小;
S2、根据索引表中当前的区域area的id与偏移量offset计算目标绝对地址;
S3、根据目标的起始绝对地址,以及所读数据的长度读取数据,读取完成。
5.根据权利要求3所述的简易文件管理系统的实现方法,其特征在于:所述写入程序包括如下步骤:
T1、根据选择的空间space 的id获取该空间space的起始地址、长度,以及该空间space中区域area的大小;
T2、根据索引表中当前区域area的id获取下一个区域area的id;
T3、将flash中当前区域area中的数据拷贝到新的区域area中;
T4、将需要更新的ram中数据拷贝到新的area中;
T5、将索引表中该空间space中的area的id更新为新的area的id。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911030682.XA CN110795040A (zh) | 2019-10-28 | 2019-10-28 | 简易文件管理系统及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911030682.XA CN110795040A (zh) | 2019-10-28 | 2019-10-28 | 简易文件管理系统及其实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110795040A true CN110795040A (zh) | 2020-02-14 |
Family
ID=69441643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911030682.XA Pending CN110795040A (zh) | 2019-10-28 | 2019-10-28 | 简易文件管理系统及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795040A (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5570340A (en) * | 1994-05-31 | 1996-10-29 | Samsung Electronics Co., Ltd. | Disk recording medium and method which uses an order table to correlate stored programs |
US20080109589A1 (en) * | 2004-04-28 | 2008-05-08 | Toshiyuki Honda | Nonvolatile Storage Device And Data Write Method |
CN101354678A (zh) * | 2008-09-10 | 2009-01-28 | 浪潮齐鲁软件产业有限公司 | 基于NorFlash的数据滚存方法 |
CN101446921A (zh) * | 2008-12-23 | 2009-06-03 | 青岛海信宽带多媒体技术股份有限公司 | 一种Flash存储器的动态存储方法 |
CN103577574A (zh) * | 2013-11-05 | 2014-02-12 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于nand flash的高可靠线性文件系统 |
CN103577121A (zh) * | 2013-11-05 | 2014-02-12 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于nand flash的高可靠线性文件存取方法 |
WO2016165597A1 (zh) * | 2015-04-16 | 2016-10-20 | 中兴通讯股份有限公司 | 数据存储的处理方法及装置 |
CN106293532A (zh) * | 2016-08-10 | 2017-01-04 | 广东佳禾声学科技有限公司 | 一种Flash数据储存方法 |
CN107168647A (zh) * | 2017-04-17 | 2017-09-15 | 武汉永力科技股份有限公司 | Flash数据读写方法及系统 |
CN108763531A (zh) * | 2018-05-31 | 2018-11-06 | 深圳市易甲文技术有限公司 | 一种mdvr文件存储系统及其运行方法 |
CN109343790A (zh) * | 2018-08-06 | 2019-02-15 | 百富计算机技术(深圳)有限公司 | 一种基于nand flash的数据存储方法、终端设备及存储介质 |
CN109634919A (zh) * | 2018-10-16 | 2019-04-16 | 西北铁道电子股份有限公司 | 一种文件管理系统 |
-
2019
- 2019-10-28 CN CN201911030682.XA patent/CN110795040A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5570340A (en) * | 1994-05-31 | 1996-10-29 | Samsung Electronics Co., Ltd. | Disk recording medium and method which uses an order table to correlate stored programs |
US20080109589A1 (en) * | 2004-04-28 | 2008-05-08 | Toshiyuki Honda | Nonvolatile Storage Device And Data Write Method |
CN101354678A (zh) * | 2008-09-10 | 2009-01-28 | 浪潮齐鲁软件产业有限公司 | 基于NorFlash的数据滚存方法 |
CN101446921A (zh) * | 2008-12-23 | 2009-06-03 | 青岛海信宽带多媒体技术股份有限公司 | 一种Flash存储器的动态存储方法 |
CN103577574A (zh) * | 2013-11-05 | 2014-02-12 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于nand flash的高可靠线性文件系统 |
CN103577121A (zh) * | 2013-11-05 | 2014-02-12 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于nand flash的高可靠线性文件存取方法 |
WO2016165597A1 (zh) * | 2015-04-16 | 2016-10-20 | 中兴通讯股份有限公司 | 数据存储的处理方法及装置 |
CN106155915A (zh) * | 2015-04-16 | 2016-11-23 | 中兴通讯股份有限公司 | 数据存储的处理方法及装置 |
CN106293532A (zh) * | 2016-08-10 | 2017-01-04 | 广东佳禾声学科技有限公司 | 一种Flash数据储存方法 |
CN107168647A (zh) * | 2017-04-17 | 2017-09-15 | 武汉永力科技股份有限公司 | Flash数据读写方法及系统 |
CN108763531A (zh) * | 2018-05-31 | 2018-11-06 | 深圳市易甲文技术有限公司 | 一种mdvr文件存储系统及其运行方法 |
CN109343790A (zh) * | 2018-08-06 | 2019-02-15 | 百富计算机技术(深圳)有限公司 | 一种基于nand flash的数据存储方法、终端设备及存储介质 |
CN109634919A (zh) * | 2018-10-16 | 2019-04-16 | 西北铁道电子股份有限公司 | 一种文件管理系统 |
Non-Patent Citations (1)
Title |
---|
刘源杨;马建辉;庄汝科;王岗;: "基于嵌入式MCU数据Flash的数据存储及管理方法研究与实现", 电子产品世界, no. 10, pages 57 - 60 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7769945B2 (en) | Method and system for facilitating fast wake-up of a flash memory system | |
CN103577121A (zh) | 一种基于nand flash的高可靠线性文件存取方法 | |
EP1895418A1 (en) | Nonvolatile memory device, method of writing data, and method of reading out data | |
CN106951375B (zh) | 在存储系统中删除快照卷的方法及装置 | |
US8892812B2 (en) | Flash memory device and data writing method for a flash memory | |
US20180081797A1 (en) | Wear-leveling nandflash memory reading/writing method | |
CN103577574A (zh) | 一种基于nand flash的高可靠线性文件系统 | |
CN101706822B (zh) | 提高挂载日志式文件系统速度的方法及设备 | |
CN103136108A (zh) | 快闪存储装置及其数据读取方法 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
CN111309245B (zh) | 一种分层存储写入方法和装置、读取方法和装置及系统 | |
CN108664208B (zh) | 基于flash存储器的文件追加写操作方法及装置 | |
CN115291815A (zh) | 一种存储器及其控制方法与存储系统 | |
CN113608701A (zh) | 一种存储系统中数据管理方法和固态硬盘 | |
CN111444114B (zh) | 一种非易失性内存中数据的处理方法、装置及系统 | |
JP4347707B2 (ja) | 情報記録媒体のフォーマット方法および情報記録媒体 | |
US6967869B1 (en) | Method and device to improve USB flash write performance | |
CN104133640B (zh) | 从休眠快速恢复 | |
CN113190241B (zh) | 数据分区的容量扩充方法、装置、电子设备、存储介质 | |
CN109753224B (zh) | 存储结构及存储结构配置方法 | |
CN111124294B (zh) | 一种扇区映射信息的管理方法及装置、存储介质和设备 | |
CN105260266A (zh) | 一种快照卷写方法及依赖快照系统 | |
KR20090119481A (ko) | 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법 | |
CN110795040A (zh) | 简易文件管理系统及其实现方法 | |
CN113535086B (zh) | 一种固态硬盘中重建的加速方法 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230612 Address after: 313000 No. 2008, Dingfu Road, East New District, Huzhou City, Zhejiang Province Applicant after: Zhejiang Jingri Science and Technology Co.,Ltd. Address before: 310051 17th floor, block a, infield building, 459 Jianghong Road, Binjiang District, Hangzhou City, Zhejiang Province Applicant before: Zhejiang Huiling Technology Co.,Ltd. |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200214 |