NAND Flash上均匀损耗与掉电恢复在线测试

2014-09-11 12:51:37来源: eefocus 关键字:NAND  Flash  均匀损耗  软件测试  YAFFS
  引 言

  随着嵌入式技术在各种电子产品中的广泛应用,嵌入式系统中的数据存储和管理已经成为一个重要的研究课题。Flash存储器具有速度快、容量大、成本低等很多优点,因此在嵌入式系统中被广泛用作外存储器件。嵌入式系统中的Flash存储器需要有自己的文件系统,而不能直接移植通用文件系统,主要有两个原因:第一,嵌入式系统的应用条件恶劣,电源电压不稳定,突发性断电以及非法插拔都容易造成灾难性的影响,通用文件系统对于可靠性的设计考虑不足;第二,通用文件系统的记录信息(如FAT表)需要被多次修改,而记录信息放在Flash存储器固定的区块中,将导致该区块的频繁操作,从而缩短Flash器的使用寿命。这样就对软件技术提出了更高的要求。

  为了管理复杂的存储硬件,同时提供可靠高效的存储环境,出现了基于NAND和NOR的文件系统。目前主流的FFS(Flash File System)有如下3种:TrueFFS、JFFSx以及YAFFS。YAFFS(Yet Another Flash File System)是专门为NAND Flash设计的嵌入式文件系统,适用于大容量存储设备。它是日志结构的文件系统,提供了损耗平衡和掉电保护等机制,可以有效地减小上述原因对文件系统一致性和完整性的影响。本文正是基于这样的前提,介绍了关于嵌入式YAFFS文件系统测试方案,针对文件系统中损耗平衡和掉电保护两个重要的系统性能指标进行实时在线的测试与分析,不同的应用环境使用该文件系统应进行相应的修改。

  1 YAFFS文件系统概述

  YAFFS文件系统类似于JFFS/JFFS2文件系统。不同的是,JFFSl/2文件系统最初是针对NOR Flash的应用场合设汁的,而NOR Flash和NAND Flash本质上有较大的区别。尽管JFFSl/2文件系统也能应用于NANDFlash,但由于它在内存占用和启动时间方面针对NOR的特性做了一些取舍,所以对NAND来说通常并不是最优的方案。

  1.1 NOR和NAND的比较

  基本上NOR比较适合存储程序代码,其容量一般较小(比如小于32 MB),且价格较高;而NAND容量可达lGB以上,价格也相对便宜,适合存储数据。一般来说,128 MB以下容量NAND Flash芯片的一页大小为512字节,用来存放数据,每一页还有16字节的备用空间(SpareData),充当OOB(Out Of Band)区域,用来存储ECC(Error Correction Codc)校验/坏块标志等信息;再由若干页组成一个块,通常一块为32页(16 KB)。与NOR相比,NAND不是完全可靠的。每块芯片出厂时允许有一定比例的坏块存在,对数据的存取不是使用线性地址映射,而是通过寄存器的操作串行存取数据。

  1.2 YAFFs数据在NAND上的存储方式

  YAFFS根据NAND闪存以页为单位存取的特点,将文件组织成固定大小的数据段。利用NAND闪存提供的每页16字节的备用空间来存放ECC检验信息和文件系统的组织信息,不仅能够实现错误检测和坏块处理,而且能够提高文件系统的加载速度。

  YAFFS将文件组织成固定大小(512字节)的数据段。每个文件都有一个页面专门存放文件头,文件头保存了文件的模式、所有者id、组id、长度、文件名等信息。为了提高文件数据块的查找速度,文件的数据段组织成树形结构。YAFFS在文件进行改写时,总是先写入新的数据块,然后将旧的数据块从文件中删除。YAFFS使用存放在页面备用空间中的ECC进行错误检测,出现错误后会进行一定次数的重试;多次重试失败后,该页面就被停止使用。以(512+16)字节为一页的NAND Flash芯片为例,YAFFS文件系统数据的存储布局如图1所示。

  2 YAFFS文件系统测

  2.1 测试总体说明

  YAFFS文件系统是开源的,测试基于白盒测试。在所关心的代码段中,插入测试代码。为保证测试代码不对原代码造成影响,测试后可立即恢复为原代码,所有测试代码(包括测试用变量和函数)均嵌入到#define FS_TEST宏定义中。

  2.2 模拟文件的生成

  嵌入式环境下对文件系统进行大量、长时间的测试存在很多问题,不易实现,对测试代码的插入和数据的监视也比较困难。这里采用PC模拟测试的形式,用文件的读/写模拟NAND器件,并在PC上对模拟文件监视,以达到测试的目的。代码定义了各种NAND器件的类型,以适应不同的器件。模拟器件时,也用这些信息生成相应的模拟文件。

  指明要模拟的NAND器件的大小(FILE_SIZE_IN_MEG)和结构(BLOCKS_PER_MEG,BLOCK_SIZE)后,按照相应的大小和结构生成文件g_filedisk。

  3 均匀损耗测试

  3.1 测试目的

  NAND Flash器件每个Block区块的擦写次数有限。在需要实时记录的应用环境中,为保证器件寿命,应尽量使每个区块的擦写次数相对平均.以最大程度地延长NAND Flash器件的使用寿命。此项测试记录每个Block区块的擦写次数,以测试YAFFS文件系统在均匀损耗方面的性能。

  3.2 测试方法

  测试代码在器件模拟文件的每一页的Spare区后,增加了字节,用于记录该页的擦写次数。由于擦写是以Block为单位进行的,因此每个Block各页的擦写记录数是相同的。在以后的测试中,可以只使用第一页的该Block空间记录擦写次数,其他空间作其他测试用。

  测试代码插入到CheckInit()和yaffs_FEEraseBlockInNAND()(yaffs_fileem.cpp)中,在初始化器件模拟文件时,生成(新模拟文件)或读取(己有模拟文件)擦写次数;并在程序执行擦写函数时,对擦写次数进行累加和保存。

  测试程序甩到的测试变量;记录擦写次数的数组-g_ersNumArray[FILE_SIZE_IN_MEG*BLOCKS_PER_MEG]、指向擦写的最大值-g_pErsMax和指向擦写的最小值-g_pErsMin。

[1] [2] [3]

关键字:NAND  Flash  均匀损耗  软件测试  YAFFS

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/Test_and_measurement/2014/0911/article_9498.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:如何用万用表对选用的电感线圈进行检测?
下一篇:使用简单电容计即可将元件整理至多个容器内

论坛活动 E手掌握
关注eeworld公众号
快捷获取更多信息
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
NAND
Flash
均匀损耗
软件测试
YAFFS

小广播

独家专题更多

东芝在线展会——芯科技智社会创未来
东芝在线展会——芯科技智社会创未来
2017东芝PCIM在线展会
2017东芝PCIM在线展会
TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved