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

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

ID:24790167

大小:50.50 KB

页数:4页

时间:2018-11-16

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

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

1、TrueFFS原理以及其在CF卡上的实现.freelsystems公司推出了trueffs系统。它为种类繁多的闪速存储器提供了统一的块设备接口,并且具有可重入、线程安全的特点;支持大多数流行的cpu架构,如poips、arm、x86、68k等。由于个性鲜明的闪速存储器越来越受到嵌入式系统工程师的青睐,业界流行的嵌入式实时操作系统vxd、toshiba、fujitsu等厂家生产的大多数型号的闪速存储器和flash卡,用户只需要更改少量代码,甚至可直接调用;但是,该模块对如今风靡的cf卡缺乏支持。cf卡采用了flash技术。形象地说,cf卡就是

2、由若干片闪速存储器外加一个管理器组成;但是,cf卡具有携带方便、易于升级、存储量大、抗震性好、兼容性佳等优点。目前,cf卡标准已经达到1.4版本,容量从最早的2mb到现今的1gb。然而,有限的擦写闪数是闪速存储器遗传给cf卡的先天缺陷。本文介绍如何在cf上实现trueffs系统,硬件平台以popc8250,motorola公司)为cpu,嵌入式操作系统是vxtd层(memorytechnoilogydriver)、socket层。翻译层主要实现trueffs和dos文件系统之间的高级交互功能,管理文件系统和flash中各可擦块的关系,以及t

3、rueffs中各种智能化处理功能,例如块映射、损耗均衡(td层实现对具体的flash进行读、写、擦、id识别、映射等驱动,并设置与flash密码相关的一些参数。vxd、toshiba等厂商的大多数flash芯片的mtd层驱动。新的器件需要编写新的mtd层驱动。socket层提供了trueffs和硬件之间的接口服务,负责电源管理、检测设备插拔、硬件写保护、窗口管理和向系统注册socket等。核心层将其它三层有机结合起来,处理全局问题,例如量、计时器、碎片回收和其它系统资源等。我们最关心的是mtd层和socket层。vxd的am29lv065d

4、芯片来说是64kb。trueffs使用一种被称为碎片回收的机制来回收那些不再包含有效数据的块。该机制从一个预擦除单元内复制所有的有效数据块到另一个新的被称为转移单元的擦除单元。然后,trueffs更新映射表,再擦除这个废旧的预擦除单元。这样,原来的块出现在外界时仍然包含了原来的数据,虽然这些数据现在已经存放在flash存储器的其它空间。碎片回收算法会找到并回收与下面标准最吻合的擦除单元:①废块最多;②擦除次数最少;③最静态的区域。2.3块分配和关联数据集结为了提高数据的读取效率,trueffs使用一种灵活的空间分配策略:将关联的数据(如由同

5、一个文件的内容组成的多个块)集结到同一个单独擦除单元内的一段连续的区域中。为此,trueffs尽量在同一个擦除单元内维持一个由多个上连续的自由块组成的存储池。如果这样连续的存储池无法实现,trueffs分尽量保证池中的所有块是在同一个擦除单元内。如果连这样的情况也不可能的话,trueffs会尽量把块池分配到一个拥有最多可用空间的擦除单元内。这种集结关联数据的途径有几个好处。首先,如果trueffs必须从一个小的存储窗口来访问flash,那么这样集结了的关联数据可以减少调用映射块到该窗口的次数,加快了文件继续访问速度。其次,这种策略可以减少碎

6、片的产生。这是因为删除一个文件可以释放掉更容易回收的完整块,意味着碎片回收会变得更快。另外,它可以使属于静态文件的多个块存放在同一地址,这样当损耗均稀算法决定移动静态区域时,转移这些块就变得更加容易了。2.4错误恢复向flash写数据有时可能会出错,比如在响应文件系统写请求时、碎片回收期间甚至在trueffs格式化或擦除flash时。在这些情况下,trueffs能够从错误中恢复过来;但在新数据第一次写入flash时如果出错就会丢失这些数据。然而,trueffs非常仔细地保证所有已经存放在flash上的数据是可恢复的,甚至能够避免用户由于不耐

7、烦或好奇而猛地拔出flash卡而可能造成的灾难性后果。trueffs健壮的关键是它使用了一种“先写后擦”的策略。当更新flash一个扇区的数据时,只有在更新操作完成并且新存储的数据校验成功后,先前的数据才会被允许擦掉。这样的结果是数据扇区不能处于部分写状态。操作成功的话新扇区的数据有效,否则老扇区的数据有效。很明显,这样有利于用户已经写到flash上的数据的稳定性。3编程trueffs的编程主要在mtd层和socket层。首先必须在当前vxb容量。它是基于nand的flash技术,所以在文件中定义include_tl_nftl;如果是nor

8、技术,则定义include_tl_ftl。

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

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

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