TrueFFS原理及其在CF卡上的实现
发布时间:2008/5/26 0:00:00 访问次数:2785
    
    摘要:cf卡是一种基于flash技术的容量大、携带方便的存储介质,已在嵌入式系统等领域得到广泛的应用;但是,有限的擦写次数极大地限制了cf卡的使用寿命。trueffs通过一系列算法,能够延长cf卡的使用寿命,提高cf卡的使用效率。文章介绍了trueffs的原理,在cf卡上实现trueffs的方法,并对trueffs的性能进行了分析。
    关键词:trueffs 损耗均衡 闪速存储器 cf卡
    闪速存储器最大的一个缺点就是寿命有限。可擦除的次数因芯片厂商而有所不同,一般都在1万~10万次左右。为了延长闪速存储器的寿命,提高使用效率,msystems公司推出了trueffs系统。它为种类繁多的闪速存储器提供了统一的块设备接口,并且具有可重入、线程安全的特点;支持大多数流行的cpu架构,如powerpc、mips、arm、x86、68k等。
    由于个性鲜明的闪速存储器越来越受到嵌入式系统工程师的青睐,业界流行的嵌入式实时操作系统vxworks已将trueffs作为自身的一个可裁减的模块。目前该模块的版本为2.0,支持intel、amd、toshiba、fujitsu等厂家生产的大多数型号的闪速存储器和flash卡,用户只需要更改少量代码,甚至可直接调用;但是,该模块对如今风靡的cf卡缺乏支持。
    cf卡采用了flash技术。形象地说,cf卡就是由若干片闪速存储器外加一个管理器组成;但是,cf卡具有携带方便、易于升级、存储量大、抗震性好、兼容性佳等优点。目前,cf卡标准已经达到1.4版本,容量从最早的2mb到现今的1gb。然而,有限的擦写闪数是闪速存储器遗传给cf卡的先天缺陷。本文介绍如何在cf上实现trueffs系统,硬件平台以powerpc处理器(mpc8250,motorola公司)为cpu,嵌入式操作系统是vxworks。
    1 trueffs的结构
    trueffs本身并不是一个文件系统,需要在trueffs之上加载dos文件系统才能使用,否则毫无意义。trueffs屏蔽了下层存储介质的差异,为开发者提供了统一的接口方式。应用程序对存储设备的读写就对像对拥有dos文件系统的磁碟设备的操作一样。
    如图1所示,trueffs由1个核心层和3个功能层组成:编译层、mtd层(memory technoilogy driver)、socket层。
    翻译层主要实现trueffs和dos文件系统之间的高级交互功能,管理文件系统和flash中各物理可擦块的关系,以及trueffs中各种智能化处理功能,例如块映射、损耗均衡(wear-leveling)等。目前有三种不同的翻译层模块可供选择。选择哪一种模块要根据使用的flash介质采用nor技术、还是nand技术,或者ssfdc技术而定。
    mtd层实现对具体的flash进行读、写、擦、id识别、映射等驱动,并设置与flash密码相关的一些参数。vxworks的trueffs已经包括了支持intel、amd、toshiba等厂商的大多数flash芯片的mtd层驱动。新的器件需要编写新的mtd层驱动。
    socket层提供了trueffs和硬件之间的接口服务,负责电源管理、检测设备插拔、硬件写保护、窗口管理和向系统注册socket等。
    核心层将其它三层有机结合起来,处理全局问题,例如信息量、计时器、碎片回收和其它系统资源等。
    我们最关心的是mtd层和socket层。vxworks只提供了编译后的二进制形式的核心层和翻译层驱动。在实现trueffs应用之间,先介绍一下trueffs的原理。
    
    
    2 trueffs原理
    2.1 损耗均衡
    闪速存储器不能无限次重复使用。它的每个扇区的擦除次数虽然很大,但却有限;因此,随着使用次数的加长,它最终会变成只读状态,所以应该尽最大 可能延长它的寿命。行之有效的方法就是平衡使用所有的存储单元,而不让某一单元过度使用。这种技术被称之为损耗均衡。trueffs使用一种基于一张动态维护表的存储器——块映射的翻译系统来实现损耗均衡技术。当块数据被修改、移动或碎片回收后,这张维护表会自动调整。
    然而,如果存储在flash上的一些数据本质上是静态的,就会产生静态文件锁定问题。存储这些静态数据的区域根据不会被轮循使用,其它区域就会被更频繁地使用,这将降低flash期望的生命值。trueffs通过强制转移静态区域的方法成功克服了静态文件锁定问题。因为映射表是动态的,trueffs能够以对文件系统不可见的方式转移这些静态数据区域。由于绝对强制损耗均衡方式会对性能产生一些负面影响,所以trueffs采取了一种非绝对损耗均衡算法。它保证
    
    摘要:cf卡是一种基于flash技术的容量大、携带方便的存储介质,已在嵌入式系统等领域得到广泛的应用;但是,有限的擦写次数极大地限制了cf卡的使用寿命。trueffs通过一系列算法,能够延长cf卡的使用寿命,提高cf卡的使用效率。文章介绍了trueffs的原理,在cf卡上实现trueffs的方法,并对trueffs的性能进行了分析。
    关键词:trueffs 损耗均衡 闪速存储器 cf卡
    闪速存储器最大的一个缺点就是寿命有限。可擦除的次数因芯片厂商而有所不同,一般都在1万~10万次左右。为了延长闪速存储器的寿命,提高使用效率,msystems公司推出了trueffs系统。它为种类繁多的闪速存储器提供了统一的块设备接口,并且具有可重入、线程安全的特点;支持大多数流行的cpu架构,如powerpc、mips、arm、x86、68k等。
    由于个性鲜明的闪速存储器越来越受到嵌入式系统工程师的青睐,业界流行的嵌入式实时操作系统vxworks已将trueffs作为自身的一个可裁减的模块。目前该模块的版本为2.0,支持intel、amd、toshiba、fujitsu等厂家生产的大多数型号的闪速存储器和flash卡,用户只需要更改少量代码,甚至可直接调用;但是,该模块对如今风靡的cf卡缺乏支持。
    cf卡采用了flash技术。形象地说,cf卡就是由若干片闪速存储器外加一个管理器组成;但是,cf卡具有携带方便、易于升级、存储量大、抗震性好、兼容性佳等优点。目前,cf卡标准已经达到1.4版本,容量从最早的2mb到现今的1gb。然而,有限的擦写闪数是闪速存储器遗传给cf卡的先天缺陷。本文介绍如何在cf上实现trueffs系统,硬件平台以powerpc处理器(mpc8250,motorola公司)为cpu,嵌入式操作系统是vxworks。
    1 trueffs的结构
    trueffs本身并不是一个文件系统,需要在trueffs之上加载dos文件系统才能使用,否则毫无意义。trueffs屏蔽了下层存储介质的差异,为开发者提供了统一的接口方式。应用程序对存储设备的读写就对像对拥有dos文件系统的磁碟设备的操作一样。
    如图1所示,trueffs由1个核心层和3个功能层组成:编译层、mtd层(memory technoilogy driver)、socket层。
    翻译层主要实现trueffs和dos文件系统之间的高级交互功能,管理文件系统和flash中各物理可擦块的关系,以及trueffs中各种智能化处理功能,例如块映射、损耗均衡(wear-leveling)等。目前有三种不同的翻译层模块可供选择。选择哪一种模块要根据使用的flash介质采用nor技术、还是nand技术,或者ssfdc技术而定。
    mtd层实现对具体的flash进行读、写、擦、id识别、映射等驱动,并设置与flash密码相关的一些参数。vxworks的trueffs已经包括了支持intel、amd、toshiba等厂商的大多数flash芯片的mtd层驱动。新的器件需要编写新的mtd层驱动。
    socket层提供了trueffs和硬件之间的接口服务,负责电源管理、检测设备插拔、硬件写保护、窗口管理和向系统注册socket等。
    核心层将其它三层有机结合起来,处理全局问题,例如信息量、计时器、碎片回收和其它系统资源等。
    我们最关心的是mtd层和socket层。vxworks只提供了编译后的二进制形式的核心层和翻译层驱动。在实现trueffs应用之间,先介绍一下trueffs的原理。
    
    
    2 trueffs原理
    2.1 损耗均衡
    闪速存储器不能无限次重复使用。它的每个扇区的擦除次数虽然很大,但却有限;因此,随着使用次数的加长,它最终会变成只读状态,所以应该尽最大 可能延长它的寿命。行之有效的方法就是平衡使用所有的存储单元,而不让某一单元过度使用。这种技术被称之为损耗均衡。trueffs使用一种基于一张动态维护表的存储器——块映射的翻译系统来实现损耗均衡技术。当块数据被修改、移动或碎片回收后,这张维护表会自动调整。
    然而,如果存储在flash上的一些数据本质上是静态的,就会产生静态文件锁定问题。存储这些静态数据的区域根据不会被轮循使用,其它区域就会被更频繁地使用,这将降低flash期望的生命值。trueffs通过强制转移静态区域的方法成功克服了静态文件锁定问题。因为映射表是动态的,trueffs能够以对文件系统不可见的方式转移这些静态数据区域。由于绝对强制损耗均衡方式会对性能产生一些负面影响,所以trueffs采取了一种非绝对损耗均衡算法。它保证
热门点击
- 延长EEPROM使用寿命的方法
- 智能测量系统中的海量数据存储技术
- 存储器类型综述及DDR接口设计的实现
- DSP处理器与FLASH存储器的接口设计
- TrueFFS原理及其在CF卡上的实现
- 基于FM18L08的高速数据存储系统
- DSP片外高速海量SDRAM存储系统设计
- 大容量NANDFlashTC58DVG02A
推荐技术资料
- 循线机器人是机器人入门和
- 循线机器人是机器人入门和比赛最常用的控制方式,E48S... [详细]