CN109739683B - 基于掉电防护介质的lkj文件写入方法、存储介质 - Google Patents
基于掉电防护介质的lkj文件写入方法、存储介质 Download PDFInfo
- Publication number
- CN109739683B CN109739683B CN201811650868.0A CN201811650868A CN109739683B CN 109739683 B CN109739683 B CN 109739683B CN 201811650868 A CN201811650868 A CN 201811650868A CN 109739683 B CN109739683 B CN 109739683B
- Authority
- CN
- China
- Prior art keywords
- file
- area
- storage medium
- buffer
- writing
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
基于掉电防护介质的LKJ文件写入方法、存储介质,包括:构建文件系统;在掉电防护介质中申请一块区域,该区域中划分缓冲区和缓冲块区,缓冲块区管理缓冲区,文件写入存储介质前,首先将文件写入到缓冲区,并在缓冲块区记录文件写入信息;外部数据写入到存储介质前,先将待写入的文件写入缓冲区中,并在缓冲区中记录该文件的写入信息,当缓冲区写满或者开辟的缓冲块区用完,则将文件从缓冲区写入到存储介质中,并清除缓冲区和缓冲块区,等待下一次写入。本发明能够应用于铁电存储器进行数据的写入,且能够减少flash的读写次数。
Description
技术领域
本发明提供一种基于铁电存储器的LKJ文件写入方法。
背景技术
现在大多数嵌入式设备上采用FAT文件系统,而通用的FAT文件系统并不适合直接移植到Flash存储器,尤其是NorFlash存储器中,即不适合应用于LKJ中。主要有以下原因:
1)嵌入式系统的应用条件恶劣,电源电压不稳定,突发性断电以及非法插拔都将对Flash的存储造成灾难性的影响;通用文件系统对于可靠性的设计考虑不足。
2)通用文件系统的记录信息需要被频繁改写(如FAT表),而记录信息放在固定的区块中,将导致该区块的频繁使用,影响整个Flash器件的使用寿命。
3)Flash存储器数据写入必须在空白的区块或者擦除后的区块进行,其底层技术要求以块为单位进行擦除(将“0xFF”写入到要擦除的存储块中),再按页写入。
鉴于以上原因,需对既有的FAT文件系统进行修改,是之适应于LKJ系统。
发明内容
本发明提供一种应用于机车中的基于铁电存储器的LKJ文件写入方法,以解决现有技术存在的问题。
本发明采用以下技术方案:
基于铁电存储器的LKJ文件写入方法,包括:
构建文件系统;所述文件系统建立外部设备与存储介质之间的读写链接,所述读写链接包括文件在存储介质中存储的文件名、文件名对应文件存储的偏移地址、文件名对应文件存储的文件编号;所述文件编号为文件在存储介质中存储的盘符标志;
在掉电防护介质中申请一块区域,该区域中划分缓冲区和缓冲块区,缓冲块区管理缓冲区,文件写入存储介质前,首先将文件写入到缓冲区,并在缓冲块区记录文件写入信息;所述缓冲块的文件写入信息包括该文件在缓冲区内存储的缓冲区偏移地址、文件在缓冲区中的写入长度、文件在存储介质中存储位置的偏移地址、文件在存储介质中对应的文件名、文件在存储介质中存储的文件编号;所述文件在存储介质中存储位置的偏移地址为在写入数据之前在存储介质中申请的存储区域的偏移地址;
外部数据写入到存储介质前,先将待写入的文件写入缓冲区中,并在缓冲区中记录该文件的写入信息,当缓冲区写满或者开辟的缓冲块区用完,则将文件从缓冲区写入到存储介质中,并清除缓冲区和缓冲块区,等待下一次写入;
读取数据时,如果文件存储在缓冲区中,则直接从缓冲区中读取文件,如果文件存储在存储介质中,则从存储介质中直接读取文件。首先根据文件名查找文件是否存储在缓冲区中,是则直接读取,不是则通过文件名获取文件存储的偏移地址,从偏移地址对应的存储区域中读取需要的数据。
所述将缓冲区的文件写入到存储介质中的写入过程为:从文件写入信息中获取该文件在缓冲区中的偏移地址、待写入数据的数据长度和该文件在存储介质中对应的文件偏移地址、文件编号;根据文件编号获取该文件存储的盘符,找到对应的文件名,把数据从待写入数据在缓冲区中的偏移地址开始的位置,按照数据长度转存到存储介质的相应文件偏移地址所对应的区域中。
所述掉电防护介质为铁电存储器,此时文件系统存储在铁电存储其中,存储介质为flash。
如果待写入的数据在存储介质中是连续的,则缓冲块为一块,在数据写入过程中需要不断修改缓冲块中存储的文件在缓冲区中的写入长度。
将文件写入缓冲区的写入过程划分为最小的、不可打断的多个操作,且对操作划分操作序列号,在将数据写入缓冲区时,记录该写入信息的缓冲块中同时记录操作过程中的操作序列号,当存储介质掉电时,从新上电后,首先判断才做序列号是否完整,如果操作序列号不完整,则开始执行掉电恢复流程,所述掉电恢复流程为从操作序列号缺少的操作开始重新进行写入操作。
所述掉电恢复流程的恢复过程为:
如果操作序列号显示文件在写入缓冲区完成后断电,则上电后恢复操作状态;
如果操作序号显示文件在存储介质中申请的存储区域的偏移地址过程中断电,则清除当前申请的存储区域,重新申请存储区域;
如果操作需要显示将文件从缓冲区写入存储介质过程中断电,则重新将文件写入存储介质。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器读取执行所述方法的步骤。
本发明的有益效果:本发明能够应用于铁电存储器进行数据的写入,且能够减少flash的读写次数。
附图说明
图1为缓冲区和缓冲块的示意图。
图2为写入操作示意图。
图3为掉电恢复流程。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细说明。
本发明提供基于铁电存储器的LKJ文件写入方法,该方法通过文件系统建立外部设备与存储介质之间的读写通道,通过文件系统读写数据,能够减少对FLASH的读写次数,提高文件的读写效率。
本发明首先创建一个文件系统,该文件系统与现有应用于FAT32的FAT32文件系统功能与基本构成类似,例如申请号为“201710392808.2”的专利中的文件系统实现,需根据应用对象,对文件系统内部的参数进行增减或者修改。具体来说,文件系统由文件系统信息区(FST区)、文件描述信息区(FDT区)、文件分配信息区(FAT区)组成,文件系统信息区(FST区)是文件系统的信息区,存储文件系统的基本信息,如文件系统的有效标识、文件系统的版本、文件系统存放位置、扇区数、扇区大小、FDT区的起始地址、FAT区的起始地址等;文件描述信息区(FDT区)主要标识文件存储在存储介质中的偏移地址和长度,包括文件系统中各文件的文件名、文件大小、文件创建时间、文件修改时间、文件偏移地址(即文件起始簇)等;而文件分配信息区(FAT区)标识文件的分配信息,即记录文件存储在存储介质中的数据簇区中各簇关联信息,而数据簇区则位于Flash中,用于存储文件数据。
FST区还存储有FDT区和FAT区的起始地址,能够通过FST区索引到FDT区和FAT区,而通过FAT能够通过索引文件存储在存储介质中的各簇连接关系,进而进行文件的索引读写。即外部设备能够根据文件系统索引到文件在存储介质中的存储位置进行读写,同时在写入过程中,能够通过修改文件系统中的相应偏移地址、簇信息进行写入文件的记录,以便进行文件系统的读取。
文件系统能够建立外部设备和Flash之间的连接,外部设备需要从Flash中读取数据时,首先通过文件系统的FST区中存储的FDT区的起始地址,索引到FDT所存储的区域,然后通过FDT区索引到文件名对应的文件起始簇,通过文件起始簇在FAT区中的索引到文件在数据簇区的存储关联信息,进而进行读取;当需要写入数据时,如果是针对已经存储的文件进行的修改或追加写入,则通过文件系统的FDT区索引到文件名对应的文件起始簇,通过文件起始簇通过FAT表索引到文件在数据簇区的存储链接信息,进行文件修改或追加写入,修改的同时需要修改文件系统中存储的文件的信息,例如修改FDT区中存储文件的文件大小、文件修改时间等,同时需要修改FAT中存储的数据簇区中各簇关联信息。如果是新文件的写入,则需要在存储介质中申请新的区域,同时,需要在FDT区中创建该文件的信息,例如文件的文件名、文件大小、文件创建时间、文件修改时间、存储的文件偏移地址(即文件起始簇)等,然后写入时在FAT区中记录各簇关联信息。
本发明主要应用于非易失性存储器,例如应用于机车中的铁电存储器中,此时,文件系统存储在铁电存储器中,而Flash作为存储介质。
基于上述文件系统原理,本发明提供的基于铁电存储器的LKJ文件写入方法,包括以下内容:
首先构建文件系统,文件系统的构成如上所述,文件系统建立外部设备与存储介质之间的读写链接,该读写链接至少包括文件系统编号和文件名、通过文件名找到FDT中的文件目录信息,文件目录信息对应文件存储区域的偏移地址;其中文件系统编号为文件在存储介质中存储的盘符标志,表示文件存在存储介质的哪个区域。
数据写入过程中,首先在掉电防护介质中申请一块区域,该区域中划分缓冲区和缓冲块区,缓冲块区管理缓冲区,文件写入存储介质前,首先将文件写入到缓冲区,并在缓冲块区记录文件写入信息;当缓冲区写满或者开辟的缓冲块区用完,则将文件从缓冲区写入到存储介质中,并清除缓冲区和缓冲块区,等待下一次写入。
上述缓冲块的文件写入信息包括该文件在缓冲区内存储的缓冲区偏移地址、文件在缓冲区中的写入长度、文件在存储介质中存储位置的偏移地址、文件在存储介质中对应的文件名、文件在存储介质中存储的文件系统编号、该待写入数据的操作序列号;上述文件在存储介质中存储位置的偏移地址为写入数据之前在存储介质中申请的存储区域的偏移地址,即为文件的待写入地址。
将缓冲区的文件写入到存储介质中的写入过程为:从文件写入信息中获取该文件在缓冲区中的偏移地址、待写入数据长度和该文件在存储介质中对应的文件偏移地址、文件系统编号;根据文件系统编号获取该文件存储的盘符,找到对应的文件名,把数据从待写入数据在缓冲区中的偏移地址开始的位置,按照数据长度转存到存储介质的相应文件偏移地址所对应的区域中。
如图2所示,为文件写入缓冲区的写入过程,如果一次写入的文件长度小于或等于0,则写入成功,如果当前写入长度大于0,则判断文件写入长度与当前缓冲区剩余存储空间大小,如果文件写入长度大于缓冲区存储空间,则直接拷贝缓冲区大小的数据写入到缓冲区,然后将数据从缓冲区写入到存储介质,同时为操作过程标注操作序列号,否则拷贝剩余写入数据拷贝到缓冲区中。
读取数据时,首先根据文件名找到FDT相对应的文件,获取文件存储的开始簇,计算读取的偏移地址和FAT表之间的链接关系,从偏移地址对应的存储区域中读取需要的数据;如果读取的文件内容都存储在缓冲区中,则直接从缓冲区中读取文件,如果读取的文件内容都存储在存储介质中,则从存储介质中直接读取文件。如果读取的文件内容开始地址在存储介质中,结束地址数据在缓冲区中,则先从存储介质中,读出部分数据,然后再从缓冲区中读取剩余数据。
外部数据写入到存储介质前,先将待写入的文件写入缓冲区中,并在缓冲块中记录该文件的写入信息,如果待写入的数据在存储介质中是连续的,只需使用一块缓冲块,在数据写入过程中需要不断修改缓冲块中存储的文件在缓冲区中的写入长度;否则,需启动多个缓冲块,当开辟的缓冲块均用完或缓冲区已用满,将相应内容写入存储介质。
本发明还可进行掉电恢复,具体为将文件写入缓冲区的写入过程划分为最小的、不可打断的多个操作,且对操作划分操作序列号,在将数据写入缓冲区时,记录该写入信息的缓冲块中同时记录操作过程中的操作序列号,当存储介质掉电时,重新上电后,首先判断该操作序列号是否完整,如果操作序列号不完整,则开始执行掉电恢复流程,所述掉电恢复流程为从操作序列号缺少的操作开始重新进行写入操作。
如图3所示,掉电恢复流程的恢复过程为:
如果操作序列号显示文件在写入缓冲区完成后断电,则上电后恢复文件操作前的状态;
如果操作序号显示文件在存储介质中申请的存储区域的偏移地址过程中断电,则清除当前申请的存储区域,重新申请存储区域;
如果操作需要显示将文件从缓冲区写入存储介质过程中断电,则重新将文件写入存储介质。
操作打开文件前,应首先检查缓冲区内是否有数据,如有数据进行相应的写入缓冲区工作。操作关闭文件前,应首先检查缓冲区内是否有数据,如有数据先进行相应的写入工作,完成后再关闭。
在从存储介质中读取文件时,应先检查缓冲区内是否存在该文件的部分数据,若有,应将缓冲区的数据随存储介质中的内容一块读取。
本发明在缓冲块管理区还留有用于设置存储缓冲块区和缓冲区当前信息的空间,用于表示当前缓冲块和缓冲区的状态,这些信息可包括缓冲区的大小、缓冲区已使用长度、缓冲块的最大数、目前已使用的缓冲块、缓冲管理块CRC。每个具体的缓冲块区记录缓冲区存储的数据信息,该信息至少包括:操作序列号对应文件的文件系统编号、对应文件的FDT编号、对应文件的偏移、对应文件的写入长度、缓冲区内偏移、缓冲区内容CRC,CRC校验用于对缓冲区内的内容进行校验,判断内容是否有误。
本发明实现上述方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该存储介质可选择掉电防护介质,根据机车的应用环境,尤其是可选择铁电存储器。
在本说明书的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本领域的技术人员在本发明揭露的范围内,可轻易想到的变化或者替换,都应该涵盖在本发明的保护范围内。
Claims (5)
1.基于铁电存储器的LKJ文件写入方法,其特征在于,包括:
构建文件系统;
所述文件系统建立外部设备与存储介质之间的读写链接,
所述读写链接包括文件在存储介质中存储的文件名、文件名对应文件存储的偏移地址、文件名对应文件存储的文件编号;所述文件编号为文件在存储介质中存储的盘符标志;
在掉电防护介质中申请一块区域,该区域中划分缓冲区和缓冲块区,缓冲块区管理缓冲区,文件写入存储介质前,首先将文件写入到缓冲区,并在缓冲块区记录文件写入信息;所述缓冲块的文件写入信息包括该文件在缓冲区内存储的缓冲区偏移地址、文件在缓冲区中的写入长度、文件在存储介质中存储位置的偏移地址、文件在存储介质中对应的文件名、文件在存储介质中存储的文件编号;所述文件在存储介质中存储位置的偏移地址为在写入数据之前在存储介质中申请的存储区域的偏移地址;
外部数据写入到存储介质前,先将待写入的文件写入缓冲区中,并在缓冲块 区中记录该文件的写入信息,当缓冲区写满或者开辟的缓冲块区用完,则将文件从缓冲区写入到存储介质中,并清除缓冲区和缓冲块区,等待下一次写入;
将文件写入缓冲区的写入过程划分为最小的、不可打断的多个操作,且对操作划分操作序列号,在将数据写入缓冲区时,记录该写入信息的缓冲块中同时记录操作过程中的操作序列号,当存储介质掉电时,从新上电后,首先判断才做序列号是否完整,如果操作序列号不完整,则开始执行掉电恢复流程,所述掉电恢复流程为从操作序列号缺少的操作开始重新进行写入操作;
所述掉电恢复流程的恢复过程为:
如果操作序列号显示文件在写入缓冲区完成后断电,则上电后恢复操作状态;
如果操作序号显示文件在存储介质中申请的存储区域的偏移地址过程中断电,则清除当前申请的存储区域,重新申请存储区域;
如果操作需要显示将文件从缓冲区写入存储介质过程中断电,则重新将文件写入存储介质;
读取数据时,如果文件存储在缓冲区中,则直接从缓冲区中读取文件,如果文件存储在存储介质中,则从存储介质中直接读取文件;
所述掉电防护介质为铁电存储器,此时文件系统存储在铁电存储其中,存储介质为flash。
2.根据权利要求1所述的基于铁电存储器的LKJ文件写入方法,其特征在于:首先根据文件名查找文件是否存储在缓冲区中,是则直接读取,不是则通过文件名获取文件存储的偏移地址,从偏移地址对应的存储区域中读取需要的数据。
3.根据权利要求1所述的基于铁电存储器的LKJ文件写入方法,其特征在于:
将缓冲区的文件写入到存储介质中的写入过程为:从文件写入信息中获取该文件在缓冲区中的偏移地址、待写入数据的数据长度和该文件在存储介质中对应的文件偏移地址、文件编号;根据文件编号获取该文件存储的盘符,找到对应的文件名,把数据从待写入数据在缓冲区中的偏移地址开始的位置,按照数据长度转存到存储介质的相应文件偏移地址所对应的区域中。
4.根据权利要求1所述的基于铁电存储器的LKJ文件写入方法,其特征在于:
如果待写入的数据在存储介质中是连续的,则缓冲块为一块,在数据写入过程中需要不断修改缓冲块中存储的文件在缓冲区中的写入长度。
5.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~4任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811650868.0A CN109739683B (zh) | 2018-12-31 | 2018-12-31 | 基于掉电防护介质的lkj文件写入方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811650868.0A CN109739683B (zh) | 2018-12-31 | 2018-12-31 | 基于掉电防护介质的lkj文件写入方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109739683A CN109739683A (zh) | 2019-05-10 |
CN109739683B true CN109739683B (zh) | 2022-08-05 |
Family
ID=66362981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811650868.0A Active CN109739683B (zh) | 2018-12-31 | 2018-12-31 | 基于掉电防护介质的lkj文件写入方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109739683B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101634997A (zh) * | 2009-06-02 | 2010-01-27 | 福州思迈特数码科技有限公司 | 增强基于NAND Flash的FAT文件系统稳定性的方法 |
CN101807212A (zh) * | 2010-04-30 | 2010-08-18 | 迈普通信技术股份有限公司 | 嵌入式文件系统的缓存方法及嵌入式文件系统 |
CN102508723A (zh) * | 2011-09-28 | 2012-06-20 | 山东神思电子技术股份有限公司 | 一种面向ic卡的掉电保护方法 |
CN107239526A (zh) * | 2017-05-27 | 2017-10-10 | 河南思维轨道交通技术研究院有限公司 | 文件系统实现方法、碎片整理方法、操作位置定位方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108234594A (zh) * | 2017-11-28 | 2018-06-29 | 北京市商汤科技开发有限公司 | 文件存储方法和装置、电子设备、程序和介质 |
-
2018
- 2018-12-31 CN CN201811650868.0A patent/CN109739683B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101634997A (zh) * | 2009-06-02 | 2010-01-27 | 福州思迈特数码科技有限公司 | 增强基于NAND Flash的FAT文件系统稳定性的方法 |
CN101807212A (zh) * | 2010-04-30 | 2010-08-18 | 迈普通信技术股份有限公司 | 嵌入式文件系统的缓存方法及嵌入式文件系统 |
CN102508723A (zh) * | 2011-09-28 | 2012-06-20 | 山东神思电子技术股份有限公司 | 一种面向ic卡的掉电保护方法 |
CN107239526A (zh) * | 2017-05-27 | 2017-10-10 | 河南思维轨道交通技术研究院有限公司 | 文件系统实现方法、碎片整理方法、操作位置定位方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109739683A (zh) | 2019-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107239526B (zh) | 文件系统实现方法、碎片整理方法、操作位置定位方法 | |
US10168962B2 (en) | Tape emulating disk based storage system and method with automatically resized emulated tape capacity | |
KR100644602B1 (ko) | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 | |
US5860124A (en) | Method for performing a continuous over-write of a file in nonvolatile memory | |
CN1493026B (zh) | 存储装置及利用此存储装置的记录再生装置 | |
JP4206688B2 (ja) | データ処理装置及びデータ処理方法 | |
CN101515276B (zh) | 一种文件数据写操作的方法、文件数据恢复方法及系统 | |
TWI394041B (zh) | 用以增進通用串列匯流排快閃記憶體寫入效能之方法和裝置 | |
CN103049349B (zh) | 基于分层存储的快照方法及系统 | |
JP2006040264A (ja) | メモリカードの制御方法および不揮発性半導体メモリの制御方法 | |
CN111797058B (zh) | 一种通用文件系统及文件管理的方法 | |
JP2006519444A (ja) | フラッシュメモリーのデータ管理方法 | |
US20090094299A1 (en) | Apparatus and method for defragmenting files on a hydrid hard disk | |
US9122416B2 (en) | Mainframe storage apparatus that utilizes thin provisioning | |
JP6109012B2 (ja) | テープメディアにおいてフォーマットを初期化する前に書き込まれていたデータのリカバリー | |
KR20090031102A (ko) | 이동식 저장 장치의 포맷 방법 및 장치 | |
KR100954603B1 (ko) | 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법 | |
CN109739683B (zh) | 基于掉电防护介质的lkj文件写入方法、存储介质 | |
CN110262980B (zh) | 基于有限寿命存储介质的高速存储系统 | |
CN102708107A (zh) | 一种追加式文件存储的方法及系统 | |
US11436105B2 (en) | Data processing method and memory controller utilizing the same | |
CN109271100A (zh) | 一种Flash存储器数据存储方法和读取方法 | |
CN111949212B (zh) | 基于自定义开放通道ssd的文件系统及文件管理方法 | |
CN113467697A (zh) | 存储器控制器与数据处理方法 | |
JP2006338731A (ja) | データ書き込み方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |