打印

各位帮忙确认疑问:NAND Flash为何需要文件系统支持?

[复制链接]
1850|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
阿南|  楼主 | 2008-4-30 10:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
dld2| | 2008-4-30 10:11 | 只看该作者

俺以为不需要

可能用文件系统管理完善些。毕竟NAND和磁盘在逻辑上很相似。

使用特权

评论回复
板凳
阿南|  楼主 | 2008-4-30 10:14 | 只看该作者

dld2,存放代码时,您是如何避免坏块的?

使用特权

评论回复
地板
lpf336| | 2008-4-30 10:17 | 只看该作者

加个硬盘控制器就不用自己管坏块了

使用特权

评论回复
5
dld2| | 2008-4-30 10:39 | 只看该作者

没深入考虑

我用最简单的方法。
每个文件有一个预定义的起始块地址。
比如一个文件要占N个块,就一个个顺序写,发现坏块,就跳过去。 
读的时候,也是先检测再读。

写入数据里可以加一些数据头或者顺序号之类的东西。如果顺序号是正确排列的,说明读与写一致。否则,有可能是写入之后那个块变坏了。  

使用特权

评论回复
6
computer00| | 2008-4-30 10:46 | 只看该作者

谁说一定要文件系统的?文件系统只是方便你存储/删除/查找

使用特权

评论回复
7
armecos| | 2008-4-30 16:41 | 只看该作者

因为你需要和别人配合工作,

    如果只是你自己使用,当然想怎么做就怎么做啦。可是,配合你一起工作的人可能不了解NAND flash的细节,用户也不一定了解,总不能让使用你程序的人也和你一样了解NAND flash吧!
    
    使用文件系统可以充分利用资源,现成程序的移植极其方便,有利于团队合作。
    
    在NAND flash上实现文件系统主要有两种方式,一种是增加转换层,完成写平衡和坏块管理,这样,常用的FAT等文件系统也能应用在NAND flash上;另一种是选择特别适合NAND flash特点的日志文件系统,如JFFS2或yaffs来实现,好处是效率高,稳定性好,可一定程度纠错。

使用特权

评论回复
8
yddoo| | 2008-4-30 23:26 | 只看该作者

我也来说两句

回3楼:放代码时: 如果用FS来管理代码,换句话说就是代码在你看来是一个与其他数据文件没有差别的data.但你load这个程序到内存时,必须要FS了,也就是说运行这段程序前系统就已经支持FS了。如一些bootloader支持一些简单的FS。

如果不用FS,关于坏块,首先应该知道为什么有坏块(这我就不说了),程序什么时候才会认识到一个坏块:erase出错,program出错(各厂商的可能有不同)
对于装载程序其实是处于只读状态,这时ECC是必不可少的。如果ECC不能纠错时(一般2位以上翻转)应报装载出错而不是产生坏块,坏块产生应由你在写入或擦除出错时记录(读状态位)坏块信息应记录在一可靠的存储区域,
注意如果你系统中只有NAND作为非易失性memory,要注意:当坏块信息所在块也坏了时的处理是有必要的

使用特权

评论回复
9
wangkj| | 2008-5-2 08:26 | 只看该作者

用ECC基本可以解决

有的nand的某些块是保证无坏块的。而且nor也不一定没坏块,只是概率更小
错误的擦写删除算法很容易产生坏块

使用特权

评论回复
10
HWM| | 2008-5-2 20:22 | 只看该作者

这好象没啥难以理解的

当初玩PDP-11/34时就做了一个不用RT-11文件系统的硬盘存储系统。当然现在谁都不会不用文件系统去使用硬盘等类似的块存储器件,理由只有一个,方便可靠。当然可交换性(符合某种标准)也是一个重要的因素。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5786

主题

10221

帖子

463

粉丝