CN106569748A - Flash文件系统的数据处理方法和装置 - Google Patents

Flash文件系统的数据处理方法和装置 Download PDF

Info

Publication number
CN106569748A
CN106569748A CN201610957817.7A CN201610957817A CN106569748A CN 106569748 A CN106569748 A CN 106569748A CN 201610957817 A CN201610957817 A CN 201610957817A CN 106569748 A CN106569748 A CN 106569748A
Authority
CN
China
Prior art keywords
data
storage
written
memory block
flash
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
Application number
CN201610957817.7A
Other languages
English (en)
Other versions
CN106569748B (zh
Inventor
杨祎巍
李鹏
林伟斌
赵云
肖勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Research Institute of Southern Power Grid Co Ltd
Original Assignee
Power Grid Technology Research Center of China Southern Power Grid Co Ltd
Research Institute of Southern Power Grid Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Power Grid Technology Research Center of China Southern Power Grid Co Ltd, Research Institute of Southern Power Grid Co Ltd filed Critical Power Grid Technology Research Center of China Southern Power Grid Co Ltd
Priority to CN201610957817.7A priority Critical patent/CN106569748B/zh
Publication of CN106569748A publication Critical patent/CN106569748A/zh
Application granted granted Critical
Publication of CN106569748B publication Critical patent/CN106569748B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

本发明涉及一种Flash文件系统的数据处理方法和装置,该方法包括如下步骤:在接收数据写入请求后,判断Flash存储器中与数据存储末尾节点相对应的剩余存储区是否满足待写入数据的存储要求;若否,则计算Flash存储器起始地址对应的剩余存储区与所述末尾节点相对应的剩余存储区的存储空间总和;若所述存储空间总和满足所述存储要求,则将所述待写入数据存储至所述末尾节点相对应的剩余存储区以及所述起始地址对应的剩余存储区。本发明有效避免了Flash存储器中某些存储块被频繁使用而导致失效,均衡了存储器的磨损,也增强了Flash文件系统的安全性和鲁棒性。

Description

Flash文件系统的数据处理方法和装置
技术领域
本发明涉及Flash存储器领域,特别是涉及一种Flash文件系统的数据处理方法和装置。
背景技术
Flash存储器掉电后存储内容不会丢失,是非易失性存储器,具有功耗低、存储密度高、体积小、可靠性高、可擦除、可重复编程等特点,其作为存储单元广泛应用在芯片中。Flash存储器进行文件写入前必须先执行擦除操作,Flash存储器擦除操作以块为单位进行。Flash存储器擦写次数有限,一般为10万至100万次,而擦写频繁的存储块有可能出现失效的情况,因此,要尽量避免频繁地对同一存储块操作,以免造成Flash存储器的提前损坏,即解决磨损均衡的问题是Flash的关键技术之一。
发明内容
基于此,本发明实施例提供一种Flash文件系统的数据处理方法和装置,能均衡Flash存储器的磨损,防止Flash存储器提前损坏。
为实现上述目的,本发明实施例采用以下技术方案:
一种Flash文件系统的数据处理方法,包括如下步骤:
在接收数据写入请求后,判断Flash存储器中与数据存储末尾节点相对应的剩余存储区是否满足待写入数据的存储要求;
若否,则计算Flash存储器起始地址对应的剩余存储区与所述末尾节点相对应的剩余存储区的存储空间总和;
判断所述存储空间总和是否满足所述存储要求;若是,则将所述待写入数据存储至所述末尾节点相对应的剩余存储区以及所述起始地址对应的剩余存储区。
以及一种Flash文件系统的数据处理装置,包括:
存储空间末尾判断模块,用于在接收数据写入请求后,判断Flash存储器中与数据存储末尾节点相对应的剩余存储区是否满足待写入数据的存储要求;
搜索判断模块,用于在与数据记录链表末尾节点相对应的剩余存储区不满足待写入数据的存储要求时,计算Flash存储器起始地址对应的剩余存储区与所述末尾节点相对应的剩余存储区的存储空间总和,并判断所述存储空间总和是否满足所述存储要求;
写入模块,用于在所述存储空间总和满足所述存储要求时,将所述待写入数据存储至所述末尾节点相对应的剩余存储区以及所述起始地址对应的剩余存储区。
基于本发明实施例所提供的Flash文件系统的数据处理方法和装置,在写入目录和文件时,可顺序选取Flash存储器中的存储块进行存储,若存储空间不足则从Flash存储器的起始地址选取存储块进行存储,有效避免了某些存储块被频繁使用而导致失效,均衡了存储器的磨损,也增强了Flash文件系统的安全性和鲁棒性。
附图说明
图1是本发明的Flash文件系统的数据处理方法在一个实施例中的流程示意图;
图2、图3为本发明实施例中检查剩余存储区的示意图;
图4是本发明的Flash文件系统的数据处理方法在另一个实施例中的流程示意图;
图5、图6为本发明实施例中合并剩余存储区的示意图;
图7是本发明的Flash文件系统的数据处理方法在又一个实施例中的流程示意图;
图8是本发明实施例中按照掉电保护方式存储待写入数据的流程示意图;
图9是本发明实施例中因发生意外掉电而重新上电后存储待写入数据的流程示意图;
图10是本发明实施例中读取数据的流程示意图;
图11是本发明实施例中删除数据的流程示意图;
图12是本发明的Flash文件系统的数据处理装置在一个实施例中的结构示意图。
具体实施方式
下面将结合较佳实施例及附图对本发明的内容作进一步详细描述。显然,下文所描述的实施例仅用于解释本发明,而非对本发明的限定。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。应当理解的是,尽管在下文中采用术语“第一”、“第二”等来描述各种信息,但这些信息不应限于这些术语,这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,“第一”信息也可以被称为“第二”信息,类似的,“第二”信息也可以被称为“第一”信息。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
图1是本发明的Flash文件系统的数据处理方法在一个实施例中的流程示意图,如图1所示,本实施例中的Flash文件系统的数据处理方法包括以下步骤:
步骤S110,在接收数据写入请求后,判断Flash存储器中与数据存储末尾节点相对应的剩余存储区是否满足待写入数据的存储要求;若否,则进行步骤S120;若是,则进入步骤S130;
在本实施例中,待写入数据可以是目录,也可以是文件。数据存储末尾节点是指距离Flash存储空间末尾最近的节点。与末尾节点相对应的剩余存储区是指目前使用到的最远地址距离存储空间末尾所剩的存储区。例如图2所示,假设Flash存储器的存储空间为1024KB,图2是文件存储的现状,数据存储末尾节点对应于文件3,其使用到了1000KB地址,距离Flash存储空间末尾最近。在接收数据写入请求后,Flash文件系统判断Flash存储器中与数据存储末尾节点相对应的剩余存储区是否满足待写入数据的存储要求,即判断图2中的剩余存储区1是否满足写入数据的存储要求。
在一种可选的实施方式中,Flash文件系统使用数据记录链表来记录目录和文件,链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列节点(链表中每一个元素称为节点)组成,节点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个节点地址的指针域。链表结构可以充分利用存储空间,实现灵活的存储空间动态管理。
本实施例中的数据记录链表可以是目录记录链表,也可以是文件记录链表。当Flash文件系统接收到数据写入请求后,Flash文件系统可判断与数据记录链表末尾节点相对应的剩余存储区是否满足待写入数据的存储要求。数据记录链表中末尾节点与Flash存储器中数据存储末尾节点相对应,且与已使用到的地址相关。对于剩余存储区是否满足存储要求,Flash文件系统可以通过计算地址之间的可用空间进行判断。例如,例如,Flash存储器地址为0x0000-0xFFFF,目前数据记录链表中末尾节点对应的数据已经使用到了地址0xFF00,那么从0xFF00到Flash存储器末尾地址0xFFFF还有(0xFFFF-0xFF00=0xFF)的存储空间可用,若要待写入数据大小为4B,则数据记录链表中末尾节点对应的剩余存储区可以满足存储要求,但若要存储0x100的文件,则剩余存储区不能满足存储要求。
步骤S120,计算Flash存储器起始地址对应的剩余存储区与所述末尾节点相对应的剩余存储区的存储空间总和,并判断所述存储空间总和是否满足所述存储要求;
具体的,从Flash存储器的起始地址开始,相邻文件或目录之间的存储空间并非一定是连续的,相邻文件或目录之间会存在存储碎片,因此除了数据存储末尾节点对应的剩余存储区外,Flash存储器中还有其它可用的剩余存储区。当数据存储末尾节点对应的剩余存储区不满足待写入数据的存储要求时,搜索Flash存储器起始地址对应的剩余存储区,并计算起始地址对应的剩余存储区域数据存储末尾节点相对应的剩余存储区的存储空间总和,并判断存储空间总和是否满足存储要求。其中,Flash存储器的起始地址即首地址,如地址0000。
以写入文件为例,假设Flash存储器的存储空间为1024KB,图2是文件存储空间的现状,数据存储末尾节点对应于文件3,其使用到了1000KB地址的位置,故末尾节点对应的剩余存储区1只有24KB,若待写入文件只有4KB,则剩余存储区1满足待写入文件的存储要求,故可将待写入文件写入剩余存储区1。但若待写入文件有32KB,则剩余存储区1不满足待写入文件的存储要求,此时,计算Flash存储器起始地址对应的剩余存储区与末尾节点对应的剩余存储区的存储空间总和。Flash文件系统可以通过计算地址之间的可用空间来检查各个剩余存储区的存储空间。例如图3所示,检查剩余存储区2,利用地址之间的可用空间计算剩余存储区2的存储空间,然后再加上数据存储末尾节点对应的剩余存储区1的存储空间,得到存储空间总和,此后进一步判断是否满足待写入文件的存储要求。
步骤S130,将所述待写入数据存储至所述末尾节点相对应的剩余存储区以及所述起始地址对应的剩余存储区。
具体的,待写入数据包括第一部分数据和第二部分数据,在写入所述待写入数据时,可先将待写入数据的第一部分数据存储至数据存储末尾节点对应的剩余存储区,然后将待写入数据的第二部分数据存储至起始地址对应的剩余存储区。或者,先将待写入数据的第一部分数据存储至起始地址对应的剩余存储区,然后将待写入数据的第二部分存储至数据存储末尾节点对应的剩余存储区。
进一步的,还可以更新数据记录链表的节点信息,如将新写入数据的数据长度、存储地址等信息作为一个节点追加至数据记录链表的末尾。
基于本实施例所提供的Flash文件系统的数据处理方法,在写入目录和文件时,可顺序选取存储块进行存储,若空间不足则从Flash存储器的起始地址进行选取,有效避免了某些存储块被频繁使用导致失效,增强了Flash文件系统的安全性和鲁棒性,特别适合用于智能卡、安全芯片等片内Flash存储容量有限、可靠性要求较高的场合。
进一步的,Flash文件系统可以对Flash存储器进行初始化,初始化的过程包括生成坏块统计表、文件目录表以及文件分配表的过程。其中,坏块统计表用户统计Flash存储器的坏块,避免将数据存储到坏块中。例如1MB的Flash存储器,若出现32KB的坏块,则该Flash存储器只有992KB的可用存储空间。文件目录表用于存储目录,而文件分配表则是用于记录各文件存储位置及文件状态,文件分配表使用链表(即文件记录链表)来记录文件的信息。
在另一个实施例中,参照图4所示,本发明的Flash文件系统的数据处理方法,进一步包括以下步骤:
步骤S125,若所述存储空间总和不满足所述存储要求,则启动垃圾回收机制,对Flash存储器中的剩余存储区进行合并处理;
步骤S126,判断合并处理后的剩余存储区是否满足所述存储要求;若是,则将待写入数据存储至满足存储要求的剩余存储区;若否,则返回写入失败的提示信息;
在本实施例中,垃圾回收机制用于整理存储空间,减小存储空间碎片。当Flash存储器起始地址对应的剩余存储区与数据存储末尾节点相对应的剩余存储区的存储空间总和不满足待写入数据的存储要求时,启动垃圾回收机制。参照图2所示,若剩余存储区2与剩余存储区1的存储空间总和不满足待写入数据的存储要求,此时启动垃圾回收机制,整理存储空间,对剩余存储区进行合并处理,例如在图2中,可调整文件1、文件2以及文件3的存储空间,使剩余存储3和剩余存储区1合并,或者使剩余存储区2、剩余存储3以及剩余存储区1合并。
在合并剩余存储区之后,再判断剩余存储区是否满足待写入数据的存储要求,若满足,则在剩余存储区存储待写入数据。若剩余存储区仍然不满足待写入数据的存储要求,则Flash文件系统返回写入失败的提示信息。
对于合并剩余存储区之后的判断过程也可以参照步骤S110和S120,即在通过垃圾回收机制合并剩余存储区之后,检查数据存储末尾节点对应的剩余存储区是否满足要求,若不满足,则继续判断起始地址对应的剩余存储区与数据存储末尾节点对应的剩余存储区的存储空间总和是否满足存储要求。例如在图2中,假设剩余存储区3和剩余存储区1合并,则先判断合并后的剩余存储区是否满足存储要求,若满足,则存储待写入数据至合并后的剩余存储区;若不满足,则进一步检查剩余存储区2和合并后的剩余存储区的存储空间总和是否满足存储要求。此后便与步骤130的处理过程一致。
对于垃圾回收机制,本实施例还提供一种实现方法。以写入文件为例,启动垃圾回收机制,对剩余存储区进行合并处理的过程包括:从占用存储空间最大的文件相对应的节点开始,按照节点指向调整相应文件的存储区,以使相邻文件的存储区连续。
在合并剩余存储区时,确定占用存储空间最大的文件作为基准文件,以该基准文件作为开始节点,按照节点指向逐步调整相应文件的存储区。参照图5所示,文件B是占用存储空间最大的文件,其对应节点指向的下一个文件为文件C,因此,以文件B为基准文件,调整文件C的存储区,消除文件B与文件C之间的存储碎片,这样就实现了剩余存储区的合并,合并结果参照图6所示。
进一步的,本发明的Flash文件系统的数据处理方法还能实现掉电保护功能,依据数据写入请求可以判断是否启动掉电保护机制,例如数据写入请求中包含是否启动掉电保护机制的标志位,若该标识位为“1”,则表示启动掉电保护机制。
图7是本发明的Flash文件系统的数据处理方法在又一实施例中的流程示意图。参照图7所示,在存储待写入数据时,若依据数据写入请求判定启动掉电保护机制,则按照掉电保护写入方式存储所述待写入数据,以防止写入过程中重要文件丢失、文件破损等问题。
在一种可选的实施方式中,参照图8所示,按照掉电保护写入方式存储待写入数据的过程包括:
步骤S801,从满足所述存储要求的剩余存储区中选择数据缓冲区和目标存储区,并设置所述数据缓冲区和所述目标存储区的属性均为第一属性;
数据缓冲区和目标存储区的选择方法可参照步骤S110、步骤S120的选择过程。从满足存储要求的剩余存储区中选择数据缓冲区和目标存储区,参照图9所示,确定目标存储区后,数据缓冲区1和数据缓冲区2均可以选择。
属性可以用来标记数据缓冲区和目标存储区的使用情况,设置数据缓冲区和所述目标存储区的属性均为第一属性后,表示数据缓冲区和所述目标存储区均为待写入状态。
步骤S802,将所述待写入数据写入所述数据缓冲区,并设置所述数据缓冲区和所述目标存储区的属性均为第二属性;
将待写入数据写入数据缓冲区后,设置数据缓冲区和目标存储区的属性均为第二属性,表示数据缓冲区和目标存储区均为已写入状态。
步骤S803,将所述待写入数据写入所述目标存储区,并设置所述数据缓冲区和所述目标存储区的属性均为第三属性,且删除所述数据缓冲区。
将待写入数据写入目标存储区后,设置数据缓冲区和所述目标存储区的属性均为第三属性,表示数据缓冲区和所述目标存储区的属性均为已完成状态,此时删除数据缓冲区,即清空数据缓冲区的存储内容。
若在按照掉电保护写入方式存储待写入数据的过程中发生意外掉电,则参照图9所示,在重新上电后,执行以下处理过程:
步骤S901,检查所述目标存储区的属性;
步骤S902,若所述目标存储区的属性为第一属性,则删除所述目标存储区和所述数据缓冲区;
步骤S903,若所述目标存储区的属性为第二属性,则将所述待写入数据从所述数据缓冲区写入到所述目标存储区,并删除所述数据缓冲区;
步骤S904,若所述目标存储区的属性为第三属性,则不做处理。
具体的,在重新上电后,对目标存储区的属性进行检查,如果目标存储区的属性为第一属性,表明目标存储区处于待写入状态,此时删除数据缓冲区和目标存储区,此后可以重新按照掉电保护写入方式存储待写入数据。如果目标存储区的属性为第二属性,表明数据缓冲区和目标存储区处于已写入状态,此时将数据缓冲区中存储的待写入数据写入到目标存储区,并删除数据缓冲区,以此保证写入数据的完整性。如果目标存储区的属性为第三属性,表明目标存储区处于已完成的状态,待写入数据已成功存储至目标存储区,此时不需要进行处理。
进一步的,本发明的Flash文件系统的数据处理方法还可以读取数据。参照图10所示,包括以下步骤:
步骤S1001,在接收读取数据请求后,根据所述读取数据请求对Flash存储器中的文件属性进行检查;
步骤S1002,若检查到与所述读取数据请求相对应的数据,则读取该数据。
本实施例中读取的数据既可以是文件,也可以是目录。具体的,以读取文件为例,读取数据请求中可包含文件名或文件标识,Flash文件系统接收读取数据请求后,根据文件名或文件标识对Flash存储器中的目录和文件的文件属性进行检查,若找到与读取数据请求中的文件名或文件标识相一致的文件,则读取该文件。另外,如果未找到与读取数据请求中的文件名或文件标识相一致的文件,则返回读取失败的提示信息。读取目录的过程与读取文件类似,此处不予赘述。
进一步的,本发明的Flash文件系统的数据处理方法还可以删除数据。参照图11所示,包括以下步骤:
步骤S1101,接收删除数据请求;
步骤S1102,删除Flash存储器中与所述删除数据请求相对应的节点信息。
本实施例中,删除的数据既可以是文件,也可以是目录。具体的,以删除文件为例,删除数据请求中可包含文件名或文件标识,在删除文件时,仅删除Flash存储器中与文件名或文件标识相对应的节点信息,而不擦除存储的文件,在下次写入文件时再执行擦除操作,这样可以进一步防止频繁擦除某个存储块。删除目录的过程与删除文件类似,此处不予赘述。
需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。
根据上述本发明的Flash文件系统的数据处理方法,本发明还提供一种Flash文件系统的数据处理装置,下面结合附图及较佳实施例对本发明的Flash文件系统的数据处理装置进行详细说明。
图12为本发明的Flash文件系统的数据处理装置在一个实施例中的结构示意图。如图12所示,该实施例中的Flash文件系统的数据处理装置包括:
存储空间末尾判断模块1,用于在接收数据写入请求后,判断Flash存储器中与数据存储末尾节点相对应的剩余存储区是否满足待写入数据的存储要求;
搜索判断模块2,用于在与数据记录链表末尾节点相对应的剩余存储区不满足待写入数据的存储要求时,计算Flash存储器起始地址对应的剩余存储区与所述末尾节点相对应的剩余存储区的存储空间总和,并判断所述存储空间总和是否满足所述存储要求;
写入模块3,用于在所述存储空间总和满足所述存储要求时,将所述待写入数据存储至所述末尾节点相对应的剩余存储区以及所述起始地址对应的剩余存储区。
进一步的,仍参照图12所示,本实施例中的Flash文件系统的数据处理装置还包括初始化模块4,用于对Flash存储器进行初始化。初始化模块4进行初始化的过程包括生成坏块统计表、文件目录表以及文件分配表的过程。其中,坏块统计表用户统计Flash存储器的坏块,避免将数据存储到坏块中。例如1MB的Flash存储器,若出现32KB的坏块,则该Flash存储器只有992KB的可用存储空间。文件目录表用于存储目录,而文件分配表则是用于记录各文件存储位置及文件状态,文件分配表使用链表来记录文件的信息。
可选的,仍参照图12所示,本实施例中的Flash文件系统的数据处理装置还包括:
垃圾回收模块5,用于在所述存储空间总和不满足所述存储要求时,启动垃圾回收机制,对Flash存储器中的剩余存储区进行合并处理;
合并判断模块6,用于判断合并处理后的剩余存储区是否满足所述存储要求;若是,则写入模块3将所述待写入数据存储至合并处理后的剩余存储区。
可选的,仍参照图12所示,本实施例中的Flash文件系统的数据处理装置,还包括:
掉电保护启动判断模块7,用于依据所述数据写入请求判断是否启动掉电保护机制;若是,则写入模块3在存储所述待写入数据时,按照掉电保护写入方式存储所述待写入数据。
进一步的,仍参照图12所示,本实施例中的Flash文件系统的数据处理装置还包括读取模块8。读取模块8在接收读取数据请求后,根据读取数据请求对Flash存储器中的文件属性进行检查,若检查到与所述读取数据请求相对应的数据,则读取该数据。
具体的,以读取文件为例,读取数据请求中可包含文件名或文件标识,读取模块8接收读取数据请求后,根据文件名或文件标识对Flash存储器中的目录和文件的文件属性进行检查,若找到与读取数据请求中的文件名或文件标识相一致的文件,则读取该文件。另外,如果读取模块8未找到与读取数据请求中的文件名或文件标识相一致的文件,则返回读取失败的提示信息。
进一步的,仍参照图12所示,本实施例中的Flash文件系统的数据处理装置还包括删除模块9,删除模块9接收删除数据请求后,删除Flash存储器中与删除数据请求相对应的节点信息。
具体的,以删除文件为例,删除数据请求中包含文件名或文件标识,删除模块9在删除文件时,仅删除Flash存储器中与文件名或文件标识相对应的节点信息,而不擦除存储的文件,在写入模块3下次写入文件时再执行擦除操作,这样可以进一步防止频繁擦除某个存储块。
上述Flash文件系统的数据处理装置可执行本发明实施例所提供的Flash文件系统的数据处理方法,具备执行方法相应的功能模块和有益效果,此处不再对各个功能模块实现其功能的具体方法进行赘述。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种Flash文件系统的数据处理方法,其特征在于,包括如下步骤:
在接收数据写入请求后,判断Flash存储器中与数据存储末尾节点相对应的剩余存储区是否满足待写入数据的存储要求;
若否,则计算Flash存储器起始地址对应的剩余存储区与所述末尾节点相对应的剩余存储区的存储空间总和;
若所述存储空间总和满足所述存储要求,则将所述待写入数据存储至所述末尾节点相对应的剩余存储区以及所述起始地址对应的剩余存储区。
2.根据权利要求1所述的Flash文件系统的数据处理方法,其特征在于,还包括:
若所述存储空间总和不满足所述存储要求,则启动垃圾回收机制,对Flash存储器中的剩余存储区进行合并处理;
判断合并处理后的剩余存储区是否满足所述存储要求;
若是,则将所述待写入数据存储至合并处理后的剩余存储区。
3.根据权利要求1或2所述的Flash文件系统的数据处理方法,其特征在于,在存储所述待写入数据时,若依据所述数据写入请求判定启动掉电保护机制,则按照掉电保护写入方式存储所述待写入数据。
4.根据权利要求2所述的文件系统的数据处理方法,其特征在于,所述待写入数据为待写入文件,对Flash存储器中的剩余存储区进行合并处理的过程包括:
从占用存储空间最大的文件相对应的节点开始,按照节点指向调整相应文件的存储区,以使相邻文件的存储区连续。
5.根据权利要求3所述的文件系统的数据处理方法,其特征在于,按照掉电保护写入方式存储所述待写入数据的过程包括:
从满足所述存储要求的剩余存储区中选择数据缓冲区和目标存储区,并设置所述数据缓冲区和所述目标存储区的属性均为第一属性;
将所述待写入数据写入所述数据缓冲区,并设置所述数据缓冲区和所述目标存储区的属性均为第二属性;
将所述待写入数据写入所述目标存储区,并设置所述数据缓冲区和所述目标存储区的属性均为第三属性,且删除所述数据缓冲区。
6.根据权利要求5所述的文件系统的数据处理方法,其特征在于,若在按照掉电保护写入方式存储所述待写入数据的过程中发生意外掉电,则在重新上电后,检查所述目标存储区的属性;
若所述目标存储区的属性为第一属性,则删除所述目标存储区和所述数据缓冲区;
若所述目标存储区的属性为第二属性,则将所述待写入数据从所述数据缓冲区写入到所述目标存储区,并删除所述数据缓冲区。
7.根据权利要求1所述的文件系统的数据处理方法,其特征在于,还包括如下步骤:
在接收数据删除请求后,删除Flash存储器中与所述数据删除请求相对应的节点信息。
8.一种Flash文件系统的数据处理装置,其特征在于,包括:
存储空间末尾判断模块,用于在接收数据写入请求后,判断Flash存储器中与数据存储末尾节点相对应的剩余存储区是否满足待写入数据的存储要求;
搜索判断模块,用于在与数据记录链表末尾节点相对应的剩余存储区不满足待写入数据的存储要求时,计算Flash存储器起始地址对应的剩余存储区与所述末尾节点相对应的剩余存储区的存储空间总和,并判断所述存储空间总和是否满足所述存储要求;
写入模块,用于在所述存储空间总和满足所述存储要求时,将所述待写入数据存储至所述末尾节点相对应的剩余存储区以及所述起始地址对应的剩余存储区。
9.根据权利要求8所述的Flash文件系统的数据处理装置,其特征在于,还包括:
垃圾回收模块,用于在所述存储空间总和不满足所述存储要求时,启动垃圾回收机制,对Flash存储器中的剩余存储区进行合并处理;
合并判断模块,用于判断合并处理后的剩余存储区是否满足所述存储要求;若是,则所述写入模块将所述待写入数据存储至合并处理后的剩余存储区。
10.根据权利要求8或9所述的Flash文件系统的数据处理装置,其特征在于,还包括:
掉电保护启动判断模块,用于依据所述数据写入请求判断是否启动掉电保护机制;若是,则所述写入模块在存储所述待写入数据时,按照掉电保护写入方式存储所述待写入数据。
CN201610957817.7A 2016-10-27 2016-10-27 Flash文件系统的数据处理方法和装置 Active CN106569748B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610957817.7A CN106569748B (zh) 2016-10-27 2016-10-27 Flash文件系统的数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610957817.7A CN106569748B (zh) 2016-10-27 2016-10-27 Flash文件系统的数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN106569748A true CN106569748A (zh) 2017-04-19
CN106569748B CN106569748B (zh) 2019-04-09

Family

ID=58535463

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610957817.7A Active CN106569748B (zh) 2016-10-27 2016-10-27 Flash文件系统的数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN106569748B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107608639A (zh) * 2017-10-20 2018-01-19 深圳益邦阳光有限公司 基于闪存的队列式循环存储方法、电子设备和存储介质
CN108037944A (zh) * 2017-12-12 2018-05-15 苏州华芯微电子股份有限公司 Eprom自动重烧方法
CN108427651A (zh) * 2018-03-15 2018-08-21 天津光电丰泰科技有限公司 一种基于Zynq Qspi-Flash的双功能复用方法
CN108710472A (zh) * 2018-04-27 2018-10-26 北京大学深圳研究生院 用于存储单元内部的磨损均衡管理方法及分布式存储系统
CN109767003A (zh) * 2019-01-31 2019-05-17 深兰科技(上海)有限公司 神经网络加速器的存储控制方法、装置、电子设备及介质
CN109918228A (zh) * 2019-01-28 2019-06-21 浙江中控技术股份有限公司 一种数据掉电保持方法及系统
CN109960611A (zh) * 2019-03-07 2019-07-02 杭州迪普科技股份有限公司 数据恢复的方法、装置、电子设备及机器可读存储介质
CN110532198A (zh) * 2019-09-09 2019-12-03 成都西山居互动娱乐科技有限公司 一种存储空间分配的方法及装置
CN110968270A (zh) * 2019-11-22 2020-04-07 中山优感科技有限公司 一种Flash空间的高效存储方法及装置
CN111147540A (zh) * 2019-11-18 2020-05-12 深圳市元征科技股份有限公司 文件传输方法、装置、设备和存储介质
CN111143899A (zh) * 2018-11-06 2020-05-12 中兴通讯股份有限公司 存储数据的方法、装置、存储介质及电子装置
CN111367474A (zh) * 2020-03-02 2020-07-03 湖南师范大学 面向嵌入式存储器的fat文件系统后分配方法及系统
CN111506269A (zh) * 2020-04-22 2020-08-07 腾讯科技(深圳)有限公司 一种磁盘存储空间分配方法、装置、设备及存储介质
CN113326236A (zh) * 2021-04-22 2021-08-31 宁波三星医疗电气股份有限公司 基于智能电力终端的有限空间存储方法
CN114035749A (zh) * 2018-01-12 2022-02-11 珠海极海半导体有限公司 电子设备和Flash存储器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013137624A (ja) * 2011-12-28 2013-07-11 Toshiba Corp データ記憶装置、メモリ制御装置及び方法
US20150143026A1 (en) * 2013-11-21 2015-05-21 Sandisk Technologies Inc. Temperature based flash memory system maintenance
CN104933051A (zh) * 2014-03-17 2015-09-23 腾讯科技(深圳)有限公司 文件存储空间回收方法和装置
CN105159616A (zh) * 2015-09-11 2015-12-16 浪潮(北京)电子信息产业有限公司 一种磁盘空间管理方法及装置
CN105260270A (zh) * 2015-11-11 2016-01-20 恒宝股份有限公司 一种Flash存储空间的动态恢复方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013137624A (ja) * 2011-12-28 2013-07-11 Toshiba Corp データ記憶装置、メモリ制御装置及び方法
US20150143026A1 (en) * 2013-11-21 2015-05-21 Sandisk Technologies Inc. Temperature based flash memory system maintenance
CN104933051A (zh) * 2014-03-17 2015-09-23 腾讯科技(深圳)有限公司 文件存储空间回收方法和装置
CN105159616A (zh) * 2015-09-11 2015-12-16 浪潮(北京)电子信息产业有限公司 一种磁盘空间管理方法及装置
CN105260270A (zh) * 2015-11-11 2016-01-20 恒宝股份有限公司 一种Flash存储空间的动态恢复方法及装置

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107608639A (zh) * 2017-10-20 2018-01-19 深圳益邦阳光有限公司 基于闪存的队列式循环存储方法、电子设备和存储介质
CN108037944A (zh) * 2017-12-12 2018-05-15 苏州华芯微电子股份有限公司 Eprom自动重烧方法
CN108037944B (zh) * 2017-12-12 2021-01-01 苏州华芯微电子股份有限公司 Eprom自动重烧方法
CN114035749B (zh) * 2018-01-12 2023-02-28 珠海极海半导体有限公司 电子设备和Flash存储器
CN114035749A (zh) * 2018-01-12 2022-02-11 珠海极海半导体有限公司 电子设备和Flash存储器
CN108427651A (zh) * 2018-03-15 2018-08-21 天津光电丰泰科技有限公司 一种基于Zynq Qspi-Flash的双功能复用方法
CN108710472A (zh) * 2018-04-27 2018-10-26 北京大学深圳研究生院 用于存储单元内部的磨损均衡管理方法及分布式存储系统
CN111143899A (zh) * 2018-11-06 2020-05-12 中兴通讯股份有限公司 存储数据的方法、装置、存储介质及电子装置
CN109918228A (zh) * 2019-01-28 2019-06-21 浙江中控技术股份有限公司 一种数据掉电保持方法及系统
CN109767003A (zh) * 2019-01-31 2019-05-17 深兰科技(上海)有限公司 神经网络加速器的存储控制方法、装置、电子设备及介质
CN109960611B (zh) * 2019-03-07 2021-06-29 杭州迪普科技股份有限公司 数据恢复的方法、装置、电子设备及机器可读存储介质
CN109960611A (zh) * 2019-03-07 2019-07-02 杭州迪普科技股份有限公司 数据恢复的方法、装置、电子设备及机器可读存储介质
CN110532198A (zh) * 2019-09-09 2019-12-03 成都西山居互动娱乐科技有限公司 一种存储空间分配的方法及装置
CN110532198B (zh) * 2019-09-09 2023-08-08 成都西山居互动娱乐科技有限公司 一种存储空间分配的方法及装置
CN111147540A (zh) * 2019-11-18 2020-05-12 深圳市元征科技股份有限公司 文件传输方法、装置、设备和存储介质
CN110968270A (zh) * 2019-11-22 2020-04-07 中山优感科技有限公司 一种Flash空间的高效存储方法及装置
CN111367474A (zh) * 2020-03-02 2020-07-03 湖南师范大学 面向嵌入式存储器的fat文件系统后分配方法及系统
CN111367474B (zh) * 2020-03-02 2021-03-02 湖南师范大学 面向嵌入式存储器的fat文件系统后分配方法及系统
CN111506269A (zh) * 2020-04-22 2020-08-07 腾讯科技(深圳)有限公司 一种磁盘存储空间分配方法、装置、设备及存储介质
CN111506269B (zh) * 2020-04-22 2021-09-07 腾讯科技(深圳)有限公司 一种磁盘存储空间分配方法、装置、设备及存储介质
CN113326236A (zh) * 2021-04-22 2021-08-31 宁波三星医疗电气股份有限公司 基于智能电力终端的有限空间存储方法

Also Published As

Publication number Publication date
CN106569748B (zh) 2019-04-09

Similar Documents

Publication Publication Date Title
CN106569748A (zh) Flash文件系统的数据处理方法和装置
CN105009091B (zh) 一种数据存储系统及用于数据存储系统的动态预留空间方法
CA2574756C (en) Systems, methods, computer readable medium and apparatus for memory management using nvram
CN102646069B (zh) 一种延长固态盘使用寿命的方法
CN103150258B (zh) 一种固态存储系统的写入、读取及垃圾收集方法
CN102662856B (zh) 一种固态硬盘及其存取方法
CN102508785B (zh) 一种磨损均衡方法及装置
CN109977034B (zh) 数据储存装置以及非挥发式存储器操作方法
CN102648457A (zh) 使用混合存储来延伸ssd生存期
CN106775436B (zh) 数据存取方法、存储器控制电路单元与存储器
CN109101437A (zh) 一种数据存储方法与终端
CN104978154A (zh) 一种基于缓存操作的flash快速读写方法及系统
KR101077901B1 (ko) 로그 블록 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법
CN102169464B (zh) 一种用于非易失性存储器的缓存方法、装置及智能卡
CN105630406B (zh) 利用mram作为编辑缓存区的存储系统及编辑缓存方法
CN106205707A (zh) 存储器装置
CN112035065B (zh) 一种数据写入方法、装置、设备及计算机可读存储介质
CN111324284B (zh) 一种存储器
CN105353979A (zh) SSD内部数据文件系统eblock链接结构、管理系统及方法
CN114911631B (zh) 基于持久内存技术的全局资源管理方法及系统
KR100868674B1 (ko) 플래시메모리 관리방법
KR101101038B1 (ko) 플래시메모리 기반 데이터베이스 관리 시스템 및 이를 위한 페이지 합병 방법
CN106201326A (zh) 信息处理装置
JP2008257607A (ja) ログファイル保存装置及びログファイル管理方法
CN106205708A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210604

Address after: 510700 3rd, 4th and 5th floors of building J1 and 3rd floor of building J3, No.11 Kexiang Road, Science City, Luogang District, Guangzhou City, Guangdong Province

Patentee after: China Southern Power Grid Research Institute Co.,Ltd.

Address before: 510080 water Donggang 8, Dongfeng East Road, Yuexiu District, Guangzhou, Guangdong.

Patentee before: China Southern Power Grid Research Institute Co.,Ltd.

Patentee before: CSG POWER GRID TECHNOLOGY RESEARCH CENTER

TR01 Transfer of patent right