trueffs原理及其在cf卡上的实现

trueffs原理及其在cf卡上的实现

ID:22372640

大小:56.00 KB

页数:6页

时间:2018-10-28

trueffs原理及其在cf卡上的实现_第1页
trueffs原理及其在cf卡上的实现_第2页
trueffs原理及其在cf卡上的实现_第3页
trueffs原理及其在cf卡上的实现_第4页
trueffs原理及其在cf卡上的实现_第5页
资源描述:

《trueffs原理及其在cf卡上的实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、TrueFFS原理及其在CF卡上的实现第1内容显示中关键词:TrueFFS损耗均衡闪速存储器CF卡闪速存储器最大的一个缺点就是寿命有限。可擦除的次数因芯片厂商而有所不同,一般都在1万~10万次左右。为了延长闪速存储器的寿命,提高使用效率,Msystems公司推出了TrueFFS系统。它为种类繁多的闪速存储器提供了统一的块设备接口,并且具有可重入、线程安全的特点;支持大多数流行的CPU架构,如PooryTechnoilogyDriver)、Socket层。翻译层主要实现TrueFFS和DOS文件系统之间的高

2、级交互功能,管理文件系统和Flash中各物理可擦块的关系,以及TrueFFS中各种智能化处理功能,例如块映射、损耗均衡(29LV065D芯片来说是64KB。TrueFFS使用一种被称为碎片回收的机制来回收那些不再包含有效数据的块。该机制从一个预擦除单元内复制所有的有效数据块到另一个新的被称为转移单元的擦除单元。然后,TrueFFS更新映射表,再擦除这个废旧的预擦除单元。这样,原来的块出现在外界时仍然包含了原来的数据,虽然这些数据现在已经存放在Flash存储器的其它空间。碎片回收算法会找到并回收与下面标准最

3、吻合的擦除单元:①废块最多;②擦除次数最少;③最静态的区域。2.3块分配和关联数据集结为了提高数据的读取效率,TrueFFS使用一种灵活的空间分配策略:将关联的数据(如由同一个文件的内容组成的多个块)集结到同一个单独擦除单元内的一段连续的区域中。为此,TrueFFS尽量在同一个擦除单元内维持一个由多个物理上连续的自由块组成的存储池。如果这样连续的存储池无法实现,TrueFFS分尽量保证池中的所有块是在同一个擦除单元内。如果连这样的情况也不可能的话,TrueFFS会尽量把块池分配到一个拥有最多可用空间的擦除

4、单元内。这种集结关联数据的途径有几个好处。首先,如果TrueFFS必须从一个小的存储窗口来访问Flash,那么这样集结了的关联数据可以减少调用映射物理块到该窗口的次数,加快了文件继续访问速度。其次,这种策略可以减少碎片的产生。这是因为删除一个文件可以释放掉更容易回收的完整块,意味着碎片回收会变得更快。另外,它可以使属于静态文件的多个块存放在同一地址,这样当损耗均稀算法决定移动静态区域时,转移这些块就变得更加容易了。2.4错误恢复向Flash写数据有时可能会出错,比如在响应文件系统写请求时、碎片回收期间甚至

5、在TrueFFS格式化或擦除Flash时。在这些情况下,TrueFFS能够从错误中恢复过来;但在新数据第一次写入Flash时如果出错就会丢失这些数据。然而,TrueFFS非常仔细地保证所有已经存放在Flash上的数据是可恢复的,甚至能够避免用户由于不耐烦或好奇而猛地拔出Flash卡而可能造成的灾难性后果。TrueFFS健壮的关键是它使用了一种“先写后擦”的策略。当更新Flash一个扇区的数据时,只有在更新操作完成并且新存储的数据校验成功后,先前的数据才会被允许擦掉。这样的结果是数据扇区不能处于部分写状态。

6、操作成功的话新扇区的数据有效,否则老扇区的数据有效。很明显,这样有利于用户已经写到Flash上的数据的稳定性。3编程TrueFFS的编程主要在MTD层和Socket层。首先必须在当前VxB容量。它是基于NAND的Flash技术,所以在文件中定义INCLUDE_TL_NFTL;如果是NOR技术,则定义INCLUDE_TL_FTL。3.2MTD层文件cfCardMTD.c实现了MTD层的功能。在本设计中,MTD层主要实现4个函数:读、写、擦除和ID识别。ID识别函数根据读取设备的ID号来选择与当前设备匹配的M

7、TD驱动。识别函数中指定了针对当前设备的一些参数以及基本操作函数,并赋给一个叫FLFlash的数据结构。FLStatuscfMTDIdentify(FLFlashpVol);数据结构中的主要参数赋值如下:pVol->type=CF_ID;/器件ID号/pVol->erasableBlockSize=512;/可擦除的最小单元是512B/pVol->chipSize=0x4000000;/器件容量为64MB/pVol-ap=cfMap;/将CF卡的一段区域映射到内存空间/CF卡的读函数比F

8、lash的读函数繁琐。它和写一样,必须根据一定的算法来读取数据,而Flash只需要直接从地址中读数据。但是,CF卡的擦函数非常简单,直接返回就可以了。因为CF卡可以直接调用写命令写入数据,CF卡本身能够自动完成擦除操作。CfMap函数将CF卡的一段区域映射到存储空间,一般为4KB。因为CF卡的40MB地址空间并不映射到系统的存储空间中,映射可以加快系统访问CF卡的速度,而Flash的地址空间,所以Flash的MTD驱动中的该函

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。