yaffs基础第二篇——yaffs中缓冲机制

本文探讨了YAFFS文件系统中的缓存机制,旨在减少对NAND Flash的频繁操作并延长其寿命。在YAFFS_mount时,会初始化缓冲区。每个缓冲区包含对象信息、块ID、最后使用时间、脏标志和数据区域。当对文件进行非512字节的写操作时,系统会查找或分配缓冲区。若缓冲区已满,最不常使用的缓冲区会被清理并写回NAND Flash。
摘要由CSDN通过智能技术生成

最近一直在研究yaffs,准备写个专题系列,当然现在的整理有点零散,而且一些我理解的想法不一定正确,现在先以笔记的形式把我的理解过程记录下来,之后会整理成一个更系统的关于yaffs的专题。

 

2009 04 10
yaffs的缓存机制
由于nandflash是有一定的读写次数的,所以在对一个文件进行操作的时候往往是先通过缓冲进行,对最后一次性写入nandflash,这有效的减少了用户对nandflash的频繁操作,延长了nandflash的寿命。


下面大致说一下yaffs的缓存机制:

1.首先在yaffs_mount的时候会对yaffs_dev这个结构体进行注册,和缓冲部分相关的有:
dev->nShortOpCaches//这个变量决定了有多少个缓冲,因为缓冲会大量的占用堆栈的空间,所以在yaffs不建议缓冲的数量很大,即使你填一个很大的数,系统也不会超过YAFFS_MAX_SHORT_OP_CACHES的总数。
yaffs_ChunkCache *srCache;//缓冲区的首地址,dev->srCache = YMALLOC( dev->nShortOpCaches * sizeof(yaffs_ChunkCache));
下面介绍一下缓冲区这个结构体的组成:
typedef struct
{
 struct yaffs_ObjectStruct *object;//一个缓冲区对应一个文件
 int chunkId;
 int lastUse; //通过lastUse来
 int dirty; //标志了这一个缓冲区是否被使用 
 int nBytes; 
 __u8 data[YAFFS_BYTES_PER_CHUNK];//数据区
} yaffs_

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值