在Nand Flash上构建FAT文件系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

在NandFlash上构建FAT文件系统摘要:本文介绍了NandFlash存储器的结构,介绍了Fat文件系统的结构,介绍了NandFlash基础上实现Fat文件系统的初步构想,分析了工作中的难点。是对之前阅读FAT文件系统资料工作的总结。版本作者时间备注Nand_FatV0.1heisao@126.com2007-1-31不够完整2目录1NandFlash的结构.......................................................................................................................31.1NandFlash一般结构........................................................................................................31.2NandFlash数据完整性....................................................................................................41.3建立在Flash上的文件系统的要求.........................................................................42FAT文件系统...............................................................................................................................52.1FAT文件系统简介............................................................................................................52.2FAT文件系统的组成........................................................................................................52.2.1引导扇区.................................................................................................................52.2.2保留扇区.................................................................................................................72.2.3FAT表和数据的存储原则.....................................................................................73NandFlash上的文件系统.........................................................................................................134工作分析.....................................................................................................................................145参考文献:.................................................................................................................................1531NandFlash的结构1.1NandFlash一般结构Flash是一种非易失性的存储器,允许用户进行电擦除和电写入。NOR和NAND是现在市场上两种主要的非易失闪存技术。NOR的特点是芯片内执行(XIP,eXecuteInPlace),应用程序可直接在flash闪存内运行,传输效率很高,很低的写入和擦除速度。NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。K9F2808U0C是Sunsang公司的一块16MB的NandFlash芯片,其结构图如图1.1所示,Flash按照结构分为,区(Partion),块(Block),扇区(Sector)。该Flash芯片的列地址被分为3种,A区(0-255byte),B区(256-511byte),C区(512-527byte)图1.1K9F2808U0C结构图Flash设备的编程只允许从1写到0,而不能将某位数据从0写到1,只能通过擦除的方式将一整块的数据写为1,如图1.2所示。图1.2Flash设备写入特点41.2NandFlash数据完整性NandFlash使用中要数据完整性,主要有两个因素的影响:1)Flash中的坏块,可能在出场的时候Flash设备中就存在坏块,也可能随着Flash设备的使用,在使用的某刻,出现坏块。但块与块之间是独立的,某Flash设备中出现坏块不影响其它块的使用。处理方法是建立和维持一个坏块的列表,使用软件进行坏块的检测和屏蔽;2)写操作时因掉电而造成的数据的丢失。通过文件系统来处理这一问题。1.3建立在Flash上的文件系统的要求1)写分布。由于每块都是独立的,具有有限的擦写次数,因此在进行写入或者擦除时避免一直对某块进行反复的擦写,而应将对Flash设备的擦除或者写入分布到所有的块中;2)存储回收。改动的数据往往并不是被写回原有的块中,而是写到一个新的可编程的块中,这就需要对原有的块进行回收,以使其变成新的可编程的块;3)读写同时进行。对于多分区的Flash,可以在对某区进行读的同时,对另一区进行写操作。如果是同时对某分区进行读写操作,只能通过软件进行控制;4)对Flash设备的统一管理。使用软件的方法能将不同的Flash统一管理。52FAT文件系统2.1FAT文件系统简介FAT文件系统是FileAllocationTable的简称,一共有三种,分别是FAt12、FAT16、FAT32。FAT12是最早的FAT文件系统,伴随着Dos诞生,在DOS3.0以前使用,采用12位文件分配表,Fat12可以管理的磁盘容量是8M,现在主要用在软盘驱动器中。Fat12文件系统有如下限制:1)文件名:只能是8.3格式的文件名;2)磁盘容量:最多8M(4096clusters×4sectors/clusters×512bytes/sectors);3)文件碎片严重。在Dos3.0中,微软推出了新的文件系统Fat16。除了采用了16位字长的分区表之外,Fat16和Fat12在其他地方都非常的相似。字长增加4位,可以使用的簇的总数增加到了65546=216。在总的簇数在4096之下的时候,应用的还是Fat12的分区表,当实际需要超过4096簇的时候,应用的是Fat16的分区表。FAT16分区格式存在严重的缺点:大容量磁盘利用效率低。为了解决磁盘浪费问题,微软推出了一种全新的磁盘分区格式FAT32,应用在Windows95OSR2及以后的Windows版本中。这种格式采用32位的文件分配表,磁盘的管理能力大大增强,突破了FAT162GB的分区容量的限制。FAT32的限制:1)最大的限制在于兼容性方面,Fat32不能保持向下兼容。2)当分区小于512M时,Fat32不会发生作用。4)单个文件不能大于4G。(精确数据是4G-2bytes)。2.2FAT文件系统的组成每个FAT文件系统由4部分组成,这些基本区域按照一下顺序排列:0-保留区(ReservedRegion)1-FAT区(FATRegion)2-根目录区(RootDirectoryRegion,FAT32卷没有此域)3-文件和目录数据区(FileandDirectoryDataRegion)下面依次解释DBR、FAT1、FAT2、根目录、数据区、剩余扇区的概念。2.2.1引导扇区引导扇区,又叫DBR区(DOSBOOTRECORD)即操作系统引导记录区的意思,通常占用分区的第0扇区共512个字节。在这512个字节中,其实又是由跳转指令,厂商标志和操作系统版本号,BPB(BIOSParameterBlock),扩展BPB,OS引导程序,结束标志几部分组6成,以FAT32为例说明分区DBR各字节的含义,见图2.1。图2.1FAT32分区DBR扇区图2.1的对应解释见图2.2图2.2FAT32上DBR扇区解释7详细的DBR扇区各字段的偏移及解释参见FATfilesystemspecification。2.2.2保留扇区在上述FAT文件系统DBR的偏移0x0E处,用2个字节存储保留扇区的数目。所谓保留扇区(有时候会叫系统扇区,隐藏扇区),是指从分区DBR扇区开始的仅为系统所有的扇区,包括DBR扇区。在FAT16文件系统中,保留扇区的数据通常设置为1,即仅仅DBR扇区。而在FAT32中,保留扇区的数据通常取为32。FAT32中的保留扇区除了磁盘总第0扇区用作DBR,总第2扇区(win98系统)或总第0xC扇区(win2000,winxp)用作OS引导代码扩展部分外,其余扇区都不参与操作系统管理与磁盘数据管理,通常情况下是没作用的。操作系统之所以在FAT32中设置保留扇区,是为了对DBR作备份或留待以后升级时用。FAT32中,DBR偏移0x34占2字节的数据指明了DBR备份扇区所在,一般为0x06,即第6扇区。当FAT32分区DBR扇区被破坏导致分区无法访问时。可以用第6扇区的原备份替换第0扇区来找回数据。2.2.3FAT表和数据的存储原则FAT表(FileAllocationTable文件分配表),是Microsoft在FAT文件系统中用于磁盘数据(文件)索引和定位引进的一种链式结构。在FAT文件系统中,文件的存储依照FAT表制定的簇链式数据结构来进行。同时,FAT文件系统将组织数据时使用的目录也抽象为文件,以简化对数据的管理。FAT表项的大小与FAT类型有关,FAT12的表项是12bit,FAT16为16bit,FAT32为32bit。我们把数据区空间分成BPB_BytsPerSec*BPB_SecPerClus字节长的簇来管理,对于大文件,需要分配多个簇,同一个文件的数据并不一定完整的存放在磁盘上一个连续的区域内,而往往会分成若干段,象链子一样存放。这种存放方式称为文件的链式存储。为了实现文件的链式存储,文件系统必须准确的记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号,对文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,FAT表的对应表项中记录着它所代表的簇的有关信息:诸如是否空,是否是坏簇,是否已经是某个文件的尾簇等。FAT16存储原理当把一部分磁盘空间格式化为fat文件系统时,fat文件系统就将这个分区当成整块可分配的区域进行规划,以便于数据的存储。引导扇区FAT1FAT2(FAT1的备份)根文件夹其它文件夹及所有文件剩余扇区1扇区实际情况取大小同FAT132个扇区开始簇编号(从2开始)不足一簇图2.3FAT12/16文件系统组织形式FAT16是Microsoft较早推出的文件系统,具有高度兼容性,目前仍然广泛应用于个人电脑尤其是移动存储设备中。FAT16简单来讲由图2.3所示的6部分组成(主要是前5部分)。8首

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功