CN105760313A - 基于SPI-Flash的文件系统的数据处理方法及装置 - Google Patents
基于SPI-Flash的文件系统的数据处理方法及装置 Download PDFInfo
- Publication number
- CN105760313A CN105760313A CN201510479857.0A CN201510479857A CN105760313A CN 105760313 A CN105760313 A CN 105760313A CN 201510479857 A CN201510479857 A CN 201510479857A CN 105760313 A CN105760313 A CN 105760313A
- Authority
- CN
- China
- Prior art keywords
- unit
- file system
- block
- data processing
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种基于SPI-Flash的文件系统的数据处理方法及数据处理装置,在FatFs单元与SPI-Flash单元之间增加虚拟地址映射列表,该虚拟地址映射列表单元用于擦写均衡和保护文件系统突然掉电;该SPI-Flash单元从物理上划分为三个分区:物理存储区,用于对应文件系统的实际物理存储;地址映射区,其与该虚拟地址映射列表配合,用于实现多级掉电保护;以及空闲保留区,用于实现当文件系统满时也能执行掉电保护和擦写均衡。本发明能够提供切实可靠的掉电保护。
Description
技术领域
本发明涉及Flash文件系统的数据处理方法及装置,尤其涉及基于SPI-Flash的文件系统的数据处理方法及装置。
背景技术
中国专利CN101526927B公开了一种Flash文件系统的数据处理方法,所述Flash文件系统包括地址映射块,所述地址映射块记录有Flash文件中所有逻辑块与物理块的映射关系,所述方法包括:依据Flash文件的更新请求,在Flash文件系统的物理块中查找第一空闲块,在所述第一空闲块中写入更新的Flash文件;在所述Flash文件系统的物理块中继续查找第二空闲的物理块,在所述第二空闲块中写入新的地址映射块。其中,在一个大小为512B的地址映射块的例子中,地址映射块的字节序列-内容关系为:1-逻辑块号;2-当前地址映射块标识;3-版本信息;4-映射表1。。。。。。。510-映射表507;511写入完成标识;512有效标识信息。其中,当前地址映射块标识是为了将地址映射块与其他块,如系统信息块等区分开来而设置的,在具有多个地址映射块的情况下,所述当前地址映射块标识还可以包括区分不同地址映射块的序号信息。所述映射表项为逻辑块号与物理块号的映射表,即记录所述逻辑块与物理块的映射关系表。现有的这种数据处理方法,参见图1,文件系统中的FatFs单元1是直接对Flash单元2进行操作,在文件对应的逻辑块与物理块的映射关系发生改变的情形,需要生成一个新的地址映射表来记录更新的映射关系,这会产生额外的系统开销;另外,现有的这种数据处理方法是针对Flash块较小,比如:512字节,的掉电保护的,不能很好地适用于基于块最小为4096字节的SPI-Flash。
发明内容
本发明要解决的技术问题在于,基于现有技术的上述缺陷,提出一种基于SPI-Flash的文件系统的数据处理方法及数据处理装置,能够提供切实可靠的掉电保护。
本发明解决其技术问题所采用的技术方案是:提供一种基于SPI-Flash的文件系统的数据处理方法,在FatFs单元与SPI-Flash单元之间增加虚拟地址映射列表,该虚拟地址映射列表单元用于擦写均衡和保护文件系统突然掉电;该SPI-Flash单元从物理上划分为三个分区:物理存储区,用于对应文件系统的实际物理存储;地址映射区,其与该虚拟地址映射列表配合,用于实现多级掉电保护;以及空闲保留区,用于实现当文件系统满时也能执行掉电保护和擦写均衡。
在一些实施例中,该虚拟地址映射列表维护一个空闲队列,每个空闲队列成员的内容由逻辑块地址、同步标志、空闲标志、上一个成员序号、下一个成员序号及该逻辑块地址所对应的物理块地址组成。
在一些实施例中,每个空闲队列成员的内容是由4字节unsignedint定义的,该虚拟地址映射列表最大能够维护0~1023块。
在一些实施例中,同步标志占用1位,在该逻辑块有修改时置标记;空闲标志占用1位,在该逻辑块空闲时置标记;上一个成员序号占用7位,保存前一个空闲逻辑地址序号;下一个成员序号占用7位,保存下一个空闲逻辑地址序号;该物理块地址占用7位。
在一些实施例中,在首次进行块操作时,先将该块从该空闲块队列删除,然后进行写操作;在后续进行块操作时,先从该空闲队列的头部取出一块,然后交换两个块的物理块地址,将空闲块插入该空闲队列的尾部,用于实现简单擦写均衡算法。
在一些实施例中,该地址映射区中的每级备份是由:MASK单元、VREF计数单元、CRC校验单元、空闲块头部索引、空闲块尾部索引、最大物理块数以及映射表组成的,其中VREF计数单元中的计数最高块为最新备份。
在一些实施例中,通过读取该地址映射区中的一个最新的正确备份,使得掉电后操作的实际物理地址保持和掉电前相同,以实现掉电保护。
在一些实施例中,该地址映射区是能够支持4级备份的。
在一些实施例中,该文件系统为FAT12文件系统,该SPI-Flash单元中块最小为4096字节。
本发明解决其技术问题所采用的技术方案还是:提供一种基于SPI-Flash的文件系统的数据处理装置,包括FatFs单元、由该FatFs单元操作的SPI-Flash单元以及设置在该FatFs单元与该SPI-Flash单元之间的虚拟地址映射列表单元,该虚拟地址映射列表单元用于擦写均衡和保护文件系统突然掉电;该SPI-Flash单元从物理上划分为三个分区:物理存储区,用于对应文件系统的实际物理存储;地址映射区,其与该虚拟地址映射列表配合,用于实现多级掉电保护;以及空闲保留区,用于实现当文件系统满时也能执行掉电保护和擦写均衡。
本发明的有益效果在于,通过巧妙地增设虚拟地址映射列表单元,将SPI-Flash单元从物理上划分为三个分区,能够提供切实可靠的掉电保护。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1为现有的文件系统的框图结构。
图2为本发明数据处理装置的框图结构。
图3为本发明虚拟地址映射列表的框图结构。
图4为本发明地址映射区的框图结构。
图5为本发明虚拟地址映射列表的加载流程示意。
图6为本发明逻辑地址对应物理地址映射的流程示意。
具体实施方式
现结合附图,对本发明的较佳实施例作详细说明。
本发明提出一种基于SPI-Flash的文件系统的数据处理方法,在FatFs单元与SPI-Flash单元之间增加虚拟地址映射列表(VAM)单元,该虚拟地址映射列表单元用于擦写均衡和保护文件系统突然掉电而不至于使文件系统损毁。并一定程度上提高和SPI-Flash的使用寿命;该SPI-Flash单元从物理上划分为三个分区:物理存储区,用于对应文件系统的实际物理存储;地址映射区,其与该虚拟地址映射列表配合,用于实现多级掉电保护;以及空闲保留区,用于实现当文件系统满时也能执行掉电保护和擦写均衡。该数据处理方法支持静态调整,用于满足不同产品功能需求。在本实施例中,该文件系统为FAT12文件系统,该SPI-Flash单元中块最小为4096字节。
参见图2,图2为本发明数据处理装置的框图结构。本发明提出一种基于SPI-Flash的文件系统的数据处理装置,包括FatFs单元1、由该FatFs单元1操作的SPI-Flash单元2以及设置在该FatFs单元1与该SPI-Flash单元2之间的虚拟地址映射列表单元3。该虚拟地址映射列表单元3用于擦写均衡和保护文件系统突然掉电。该SPI-Flash单元2从物理上划分为三个分区:物理存储区21,用于对应文件系统的实际物理存储;地址映射区22,其与该虚拟地址映射列表3配合,用于实现多级掉电保护;以及空闲保留区23,用于实现当文件系统满时也能执行掉电保护和擦写均衡。
参见图3,图3为本发明虚拟地址映射列表的框图结构。该虚拟地址映射列表单元3维护一个空闲队列,每个空闲队列成员的内容由逻辑块地址(序号)31、同步标志32、空闲标志33、上一个成员序号34、下一个成员序号35及该逻辑块地址所对应的物理块地址36组成。在本实施例中,每个空闲队列成员的内容是由4字节unsignedint定义的,可以节省内存使用。该虚拟地址映射列表单元3最大能够维护0~1023块。其中,同步标志32占用1位,在该逻辑块有修改时置标记;空闲标志33占用1位,在该逻辑块空闲时置标记;上一个成员序号34占用7位,保存前一个空闲逻辑地址序号;下一个成员序号35占用7位,保存下一个空闲逻辑地址序号;该物理块地址36占用7位。
在首次进行块操作时,先将该块从该空闲块队列删除,然后进行写操作;在后续进行块操作时,先从该空闲队列的头部取出一块,然后交换两个块的物理块地址,将空闲块插入该空闲队列的尾部,用于实现简单擦写均衡算法。
参见图4,图4为本发明地址映射区的框图结构。该地址映射区22中的每级备份4是由:MASK单元41、VREF计数单元42、CRC校验单元43、free_block_head空闲块头部索引44、free_block_end空闲块尾部索引45、phy_max_count最大物理块数47以及映射表48组成的。其中,MASK单元41固定为字符串“VAM_”;VREF计数单元42中的计数最高块为最新备份;CRC校验单元43用于保证地址映射区22的完整性。这种结构,通过读取该地址映射区22中的一个最新的正确备份,使得掉电后操作的实际物理地址保持和掉电前相同,以实现掉电保护。在本实施例中,该地址映射区22是能够支持至少2级(2个)备份的。较佳地,该地址映射区22是能够支持4级备份的。值得一提的是,该地址映射区22是支持静态调整的,也就是说,其能够支持的备份最大个数,是可以根据实际应用的需要而适当调整的。
参见图5,图5为本发明虚拟地址映射列表的加载流程示意。该流程大致包括以下步骤:
501、检查操作逻辑块是否在空闲队列;
502、判断是否在空闲队列中,是的话,转503,否则转504;
503、从空闲队列中移除,转步骤510;
504、取出空闲队列列头;
505、判断同步标记是否已经置位,是的话,转506,否则转507;
506、报错,退出;
507、交换逻辑块和空闲块物理地址;
508、设置空闲块同步标志;
509、将空闲块加入空闲队列末尾;
510、设置逻辑块的同步标志;
511、返回对应的物理地址。
参见图6,图6为本发明逻辑地址对应物理地址映射的流程示意。该流程大致包括以下步骤:
601、读取地址映射区;
602、判断当前读取的备份是否有效,是的话,转603,否则的话,转604;
603、设置块标记,并记录VREF计数;
604、读下一块;
605、判断是否到了最后一块,是的话,转606,否则的话,转604;
606、判断是否存在有效备份,是的话,转607,否则的话,转608;
607、读取最新有效备份,退出;
608、重建地址映射区,转601。
本发明的有益效果在于,通过巧妙地增设虚拟地址映射列表单元3,将SPI-Flash单元2从物理上划分为三个分区21、22、23,能够提供切实可靠的掉电保护。
应当理解的是,以上实施例仅用以说明本发明的技术方案,而非对其限制,对本领域技术人员来说,可以对上述实施例所记载的技术方案进行修改,或者对其中部份技术特征进行等同替换;而这些修改和替换,都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种基于SPI-Flash的文件系统的数据处理方法,其特征在于,在FatFs单元与SPI-Flash单元之间增加虚拟地址映射列表,该虚拟地址映射列表单元用于擦写均衡和保护文件系统突然掉电;该SPI-Flash单元从物理上划分为三个分区:物理存储区,用于对应文件系统的实际物理存储;地址映射区,其与该虚拟地址映射列表配合,用于实现多级掉电保护;以及空闲保留区,用于实现当文件系统满时也能执行掉电保护和擦写均衡。
2.根据权利要求1所述的数据处理方法,其特征在于:该虚拟地址映射列表维护一个空闲队列,每个空闲队列成员的内容由逻辑块地址、同步标志、空闲标志、上一个成员序号、下一个成员序号及该逻辑块地址所对应的物理块地址组成。
3.根据权利要求2所述的数据处理方法,其特征在于:每个空闲队列成员的内容是由4字节unsignedint定义的,该虚拟地址映射列表最大能够维护0~1023块。
4.根据权利要求3所述的数据处理方法,其特征在于:同步标志占用1位,在该逻辑块有修改时置标记;空闲标志占用1位,在该逻辑块空闲时置标记;上一个成员序号占用7位,保存前一个空闲逻辑地址序号;下一个成员序号占用7位,保存下一个空闲逻辑地址序号;该物理块地址占用7位。
5.根据权利要求2所述的数据处理方法,其特征在于:在首次进行块操作时,先将该块从该空闲块队列删除,然后进行写操作;在后续进行块操作时,先从该空闲队列的头部取出一块,然后交换两个块的物理块地址,将空闲块插入该空闲队列的尾部,用于实现简单擦写均衡算法。
6.根据权利要求1所述的数据处理方法,其特征在于:该地址映射区中的每级备份是由:MASK单元、VREF计数单元、CRC校验单元、空闲块头部索引、空闲块尾部索引、最大物理块数以及映射表组成的,其中VREF计数单元中的计数最高块为最新备份。
7.根据权利要求6所述的数据处理方法,其特征在于:通过读取该地址映射区中的一个最新的正确备份,使得掉电后操作的实际物理地址保持和掉电前相同,以实现掉电保护。
8.根据权利要求1所述的数据处理方法,其特征在于:该地址映射区是能够支持4级备份的。
9.根据权利要求1所述的数据处理方法,其特征在于:该文件系统为FAT12文件系统,该SPI-Flash单元中块最小为4096字节。
10.一种基于SPI-Flash的文件系统的数据处理装置,其特征在于,包括FatFs单元、由该FatFs单元操作的SPI-Flash单元以及设置在该FatFs单元与该SPI-Flash单元之间的虚拟地址映射列表单元,该虚拟地址映射列表单元用于擦写均衡和保护文件系统突然掉电;该SPI-Flash单元从物理上划分为三个分区:物理存储区,用于对应文件系统的实际物理存储;地址映射区,其与该虚拟地址映射列表配合,用于实现多级掉电保护;以及空闲保留区,用于实现当文件系统满时也能执行掉电保护和擦写均衡。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510479857.0A CN105760313A (zh) | 2015-08-07 | 2015-08-07 | 基于SPI-Flash的文件系统的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510479857.0A CN105760313A (zh) | 2015-08-07 | 2015-08-07 | 基于SPI-Flash的文件系统的数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105760313A true CN105760313A (zh) | 2016-07-13 |
Family
ID=56341938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510479857.0A Pending CN105760313A (zh) | 2015-08-07 | 2015-08-07 | 基于SPI-Flash的文件系统的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105760313A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502928A (zh) * | 2016-09-29 | 2017-03-15 | 华为技术有限公司 | 一种存储系统掉电保护方法、存储控制器及电子设备 |
CN107908571A (zh) * | 2017-10-31 | 2018-04-13 | 成都华为技术有限公司 | 一种数据写入方法、闪存装置及存储设备 |
CN109558076A (zh) * | 2018-11-06 | 2019-04-02 | 电子科技大学 | 一种可配置的虚拟spi-flash |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1542624A (zh) * | 2003-04-29 | 2004-11-03 | 大唐移动通信设备有限公司 | 一种在Flash文件系统中加快逻辑块映射速度的方法 |
CN101178689A (zh) * | 2007-12-06 | 2008-05-14 | 浙江科技学院 | 一种NAND Flash存储器的动态管理方法 |
CN101346702A (zh) * | 2005-12-21 | 2009-01-14 | Nxp股份有限公司 | 具有可块擦除单元的存储器 |
CN101526927A (zh) * | 2008-03-07 | 2009-09-09 | 北京华虹集成电路设计有限责任公司 | Flash文件系统的数据处理方法及数据处理装置 |
CN101980177A (zh) * | 2010-10-21 | 2011-02-23 | 北京握奇数据系统有限公司 | 一种操作Flash的方法和装置 |
CN103399826A (zh) * | 2013-08-15 | 2013-11-20 | 南京新联电子股份有限公司 | 一种基于nor flash的数据存储方法 |
CN104317732A (zh) * | 2014-10-27 | 2015-01-28 | 上海动联信息技术股份有限公司 | 一种大容量Flash芯片的空间管理方法 |
-
2015
- 2015-08-07 CN CN201510479857.0A patent/CN105760313A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1542624A (zh) * | 2003-04-29 | 2004-11-03 | 大唐移动通信设备有限公司 | 一种在Flash文件系统中加快逻辑块映射速度的方法 |
CN101346702A (zh) * | 2005-12-21 | 2009-01-14 | Nxp股份有限公司 | 具有可块擦除单元的存储器 |
CN101178689A (zh) * | 2007-12-06 | 2008-05-14 | 浙江科技学院 | 一种NAND Flash存储器的动态管理方法 |
CN101526927A (zh) * | 2008-03-07 | 2009-09-09 | 北京华虹集成电路设计有限责任公司 | Flash文件系统的数据处理方法及数据处理装置 |
CN101980177A (zh) * | 2010-10-21 | 2011-02-23 | 北京握奇数据系统有限公司 | 一种操作Flash的方法和装置 |
CN103399826A (zh) * | 2013-08-15 | 2013-11-20 | 南京新联电子股份有限公司 | 一种基于nor flash的数据存储方法 |
CN104317732A (zh) * | 2014-10-27 | 2015-01-28 | 上海动联信息技术股份有限公司 | 一种大容量Flash芯片的空间管理方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502928A (zh) * | 2016-09-29 | 2017-03-15 | 华为技术有限公司 | 一种存储系统掉电保护方法、存储控制器及电子设备 |
WO2018059361A1 (zh) * | 2016-09-29 | 2018-04-05 | 华为技术有限公司 | 一种存储系统掉电保护方法、存储控制器及电子设备 |
CN106502928B (zh) * | 2016-09-29 | 2019-08-20 | 华为技术有限公司 | 一种存储系统掉电保护方法、存储控制器及电子设备 |
CN107908571A (zh) * | 2017-10-31 | 2018-04-13 | 成都华为技术有限公司 | 一种数据写入方法、闪存装置及存储设备 |
CN107908571B (zh) * | 2017-10-31 | 2021-04-20 | 成都华为技术有限公司 | 一种数据写入方法、闪存装置及存储设备 |
CN109558076A (zh) * | 2018-11-06 | 2019-04-02 | 电子科技大学 | 一种可配置的虚拟spi-flash |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783017B (zh) | 一种存储设备坏块的处理方法、装置及存储设备 | |
CN104091617B (zh) | 一种闪存存储设备检测的方法及装置 | |
CN103064765B (zh) | 数据恢复方法、装置及集群存储系统 | |
CN104461390A (zh) | 将数据写入叠瓦状磁记录smr硬盘的方法及装置 | |
CN101446921B (zh) | 一种Flash存储器的动态存储方法 | |
US20070078901A1 (en) | Hierarchical storage system, and control method and program therefor | |
CN102541676B (zh) | 一种nand flash的状态检测及映射方法 | |
CN102081577A (zh) | Flash存储器的数据存储结构及其数据操作方式 | |
CN101515276A (zh) | 一种文件数据写操作的方法、文件数据恢复方法及系统 | |
CN101281493A (zh) | 与非闪存器及其管理方法 | |
US10649672B1 (en) | Offloading device maintenance to an external processor in low-latency, non-volatile memory | |
CN104978148A (zh) | 数据写入方法及装置、数据读取方法及装置 | |
CN103996412A (zh) | 一种用于智能卡非易失性存储器的掉电保护方法 | |
CN115292266B (zh) | 一种基于存储器的高可靠日志存储方法 | |
CN103914397B (zh) | 闪存存储设备及其管理方法 | |
CN112084070B (zh) | L2p映射数据恢复方法、装置、存储介质及电子设备 | |
US9858287B2 (en) | Storage system | |
CN105760313A (zh) | 基于SPI-Flash的文件系统的数据处理方法及装置 | |
CN103544124B (zh) | Nand Flash存储器的访问方法 | |
CN101303667B (zh) | 建立磁盘空簇表及查找磁盘空簇的方法和装置 | |
CN103593301B (zh) | 坏块管理方法及系统 | |
CN104376099A (zh) | 一种基于闪存的文件系统的实现方法和实现装置 | |
CN114089915B (zh) | 基于flash存储器的文件追加写操作方法及装置 | |
CN103106148B (zh) | 区块管理方法、存储器控制器与存储器存储装置 | |
US10282116B2 (en) | Method and system for hardware accelerated cache flush |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160713 |