83一种基于Flash 设备的文件系统优化设计王冬,杨琼(中国航空工业集团公司西安航空计算技术研究所,陕西西安710065)摘要:轻量级FAT 文件系统的兼容性强,但面向Flash 存储器时存在容量利用率低与可用寿命缩短的问题。
提出了FAT文件系统的优化设计:创建空闲队列、有效队列以及无效队列,分类管理FAT 表中各个簇的使用情况,以高效执行垃圾回收操作;每次从随机簇号开始查找空闲簇,从而实现簇对应的Flash 物理块之间磨损均衡。
关键词:FAT 文件系统;Flash 存储器;优化设计;垃圾回收;磨损均衡中图分类号:TP309.3文献标识码:A 文章编号:1673-1131(2019)04-0083-02An Optimized Design of File System Based on Flash DeviceWang Dong,Yang Qiong(Xi'an Aeronautics Computing Technique Research Institute ,A VIC ,Xi'an 710065,China )Abstract:Lightweight FAT file system is highly compatible,but there are problems such as low capacity utilization and shorter available life.The optimized design of FAT file system is proposed.Firstly,creating idle queue,valid queue,and invalid queue,then it can classify and manage the usage of each cluster in FAT.The idle clusters are searched from random cluster number each time to achieve wear leveling between the flash physical blocks.Key words:FAT file system ;flash memory ;optimized design ;garbage collection ;wear leveling0引言伴随着越来越多的通讯类、消费类、控制类电子产品快速问世,嵌入式多媒体应用的数量也越发丰富。
为应对复杂的数据管理,以闪存(Flash )为典型代表的单芯片存储器性能与容量不断提升,但如果没有合适的文件系统支持,则无法有效发挥Flash 的能力。
Flash 芯片是当今主流的非易失性存储芯片,主要非为NOR Flash 与NAND Flash 两种:NOR Flash 主要用来存储代码以及部分数据,成本低,传输效率高,属于芯片内执行,但很低的写入与擦除速度大大影响了它的性能;NAND Flash 主要用来存储大容量数据,具有高写入和高擦除速度,但必须开发驱动程序。
嵌入式文件系统设计要额外考虑到电子设备等嵌入式系统运行时存在电源电压不稳定与突然断电,这对文件系统可靠性的要求更为严格。
此外,通用文件系统常用于硬盘等标准块设备之上,而考虑到Flash 具有先擦后写、不能反复写同一页的特征,需要进行优化设计。
本文介绍了常用的Flash 文件系统,分析了FAT 文件系统在使用Flash 设备时容量利用率低与可用寿命缩短的问题[1],然后提出了优化设计:分类管理FAT 表中各个簇的使用情况,实现垃圾回收的高效执行;每次在FAT 表中生成随机簇号开始查找空闲簇,实现Flash 存储器各个物理块之间的磨损均衡。
1概述1.1Flash 文件系统在Flash 存储器上构建文件系统有两种方式:使用块驱动程序,在驱动程序之上,运行一个通用文件系统,其提供了一个逻辑层到物理层的映射使得访问Flash 如同访问标准块设备一样;使用专用的文件系统,它能够不通过块驱动程序而工作。
但不论是采用哪种设计的Flash 文件系统,如表1所示,高效的垃圾回收与磨损均衡实现仍是研究的热点和难点。
JFFS 主要用于嵌入式Linux 。
JFFS2是RedHat 公司基于JFFS 开发的Flash 文件系统[2],它主要是针对RedHat 公司的嵌入式产品eCos 开发的文件系统。
由于设计上的局限,JFFS2对大容量Flash 芯片的支持很难满足人们的要求。
例如,挂载时间会较长、当Flash 上的文件较多时,文件索引信息会占用很多内存等。
YAFFS 是专门针对NAND Flash 设计的嵌入式文件系统,目前有YAFFS 和YAFFS2两个版本,主要区别在于后者能够更好地支持大容量NAND Flash 。
与JFFS 相比,它减少了一些功能,因此速度更快,占用内存更少。
表1常用Flash文件系统对比FAT 文件系统是为Windows 操作系统设计的,目前已成为U 盘、MP3、存储卡等经常需要与PC 机交换数据的移动存储设备中使用最广泛的文件系统,其主要原因在于微软公司的Win-dows 操作系统对它的天然支持,而Windows 操作系统至今仍占据着桌面操作系统市场的主流。
就技术角度来说,FA T 文件系统不是很适合Flash 存储器,因为F A T 表和文件目录表需要频繁地更新,而Flash 的每一块都只能支持有限次的擦写。
所以本文优化FA T 文件系统使之更适用于嵌入式系统的Flash 存储器。
1.2存在问题对于FAT 文件系统,其主引导记录、文件分配表以及根目录这些关键数据集中存储。
如果不对Flash 设备进行有效的磨损均衡,存储关键数据的物理块寿命将大大缩短,造成可靠性降低。
此外,FAT 表涉及所有的读写等文件操作,对性能影响较大,而在Flash 设备上更新数据过程中会在块上产生很多无效页,如果不及时回收这些无效页,短时间内Flash 设备的空间将会被写满,但垃圾回收非常耗时,大大降低FAT 文件系统的整体性能[3]。
鉴于以上问题,需结合FAT 文件系统自身特征设计合理的垃圾回收与磨损均衡机制。
2垃圾回收优化设计常用的Flash 设备垃圾回收操作会记录并维护各个物理块的无效页,每次进行垃圾回收操作之前遍历记录以寻找最“脏”物理块进行无效页回收,这个遍历的过程很耗时,而考虑到FAT 文件系统的架构,其利用FAT 表来记录与维护各个簇的使用情况(空闲,有效,无效),天然的维护了整个空间的使用情况,只不过垃圾回收针对的是页,而FAT 文件系统针对的是簇[4]。
但对于FAT 文件系统而言,面向Flash 设备时,其单个2019(Sum.No 196)信息通信INFORMATION &COMMUNICATIONS2019年第4期(总第196期)84电源无源滤波器设计刘婷婷,邓豹,贺莹(航空工业西安航空计算技术研究所,陕西西安710065)摘要:板级电源设计时往往会使用无缘滤波器进行滤波,所使用的无源滤波器主要包括RC 滤波、LC 滤波。
这些电路的共同目标是构成低通滤波器,达到通直流隔交流的作用。
但是在实际的电路中由于设计需求以及各种器件的寄生参数的影响导致滤波电路的设计变得非常复杂,本文通过计算以及仿真相结合,分析对比理想器件与实际器件的滤波差别,比较几种滤波器之间的差别,给出滤波器的选用方法,提高设计质量。
关键词:电源;无缘滤波;电感;电容中图分类号:TN713文献标识码:A 文章编号:1673-1131(2019)04-0084-030引言无源滤波器是PCB 板级电源滤波常用的电路,主要包括RC 滤波、LC 滤波。
电源滤波电路的共同目标是构成低通滤波器,达到通直流隔交流的作用,但在实际的电路中由于设计需求以及器件寄生参数影响导致滤波电路的设计变得非常复杂,本文将详细介绍此类滤波电路的原理以及设计方法。
1电阻、电感以及电容特性本文所介绍的无源滤波器中的器件涉及:电阻、电感以及电容,本章节主要分析这三种器件的特性以及寄生参数。
1.1电阻电阻器,主要就是由电阻体构成,但由于封装的存在所以存在较小的寄生参数。
理想电阻在全频段阻值相同,实际电阻器由于寄生参数的影响频谱曲线会发生变化:轴向引脚电阻在1GHz 有一个谐振点;贴片式电阻在5GHz 有一个谐振点。
电阻选型时,主要考虑的参数有:阻值精度要求、额定功耗及极限电压。
目前多数单板上面选用贴片式的电阻,1Ghz 以下基本不受寄生参数影响,可以按照理想电阻考虑;如果选用轴向引脚电阻,需要根据滤波频段来决定是否根据实际情况仿真分析。
1.2电感电感是储能元件,多用于电源滤波回路、LC 振荡电路、中低频的滤波电路等,其应用频率范围很少超过50MHz 。
电感簇通常是由多个页构成,簇的使用情况可以代表多个页的使用情况,不必额外单独记录其各个页的使用情况。
图1优化前后的垃圾回收性能对比根据FAT 表中维护的簇,可以将Flash 设备上所有空间分为三种队列:空闲队列维护没有数据的可分配簇;有效队列维护存储有效数据的簇;无效队列维护数据已经陈旧的簇。
三种队列同时代表了整个Flash 空间物理页的使用情况,方便针对Flash 设备的垃圾回收快速进行,其触发时机如下:写文件时,FAT 文件系统已无法从空闲队列分配足够的空闲簇;FAT 文件系统启动时,空闲簇的数目少于设定的空闲簇余量。
执行垃圾回收时,无需查找而直接从无效队列头部取出一个簇,然后回收其包括的所有无效页,提升垃圾回收的速率,如图1所示,在写入次数触发垃圾回收后,且显然优化后的垃圾回收性能较优化前的要好,使得单次写入耗时降低。
3磨损均衡优化设计Flash 设备的物理块具有擦除寿命,必须考虑各物理块之间的磨损均衡。
常用的Flash 设备磨损均衡通过记录各个物理块的擦除次数,定时将擦除次数较大的块数据交换到擦除次数较小的块上。
但考虑到FAT 文件系统每次分配空闲簇的策略,即从FAT 表头开始查找第一个空闲簇然后分配出去,该策略会导致位于表前部空闲簇对应的物理块被频繁使用,造成磨损不均衡的问题。
针对FAT 文件系统的分配策略,优化空闲簇的分配策略,为了保证分配空闲簇的平均性,每次生成一个合法范围内的随机簇号,从该随机簇号开始查找空闲簇。
如果未找到空闲簇,则再从FAT 表头开始查找空闲簇。
由于产生随机数的公平性,能够保证FAT 表内所有空闲簇被分配出去的概率相同,也同时保证了整个Flash 设备所有物理块的使用概率,达到了理想的磨损均衡效果。
4结语本文针对FAT 文件系统在使用Flash 设备时,存在容量利用率低与可用寿命缩短的问题,提出了优化设计:分类管理FAT 表中各个簇的使用情况,实现垃圾回收的高效执行;每次在FAT 表中生成随机簇号开始查找空闲簇,实现Flash 存储器各个物理块之间的磨损均衡。