阿南 发表于 2008-4-30 10:07

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

以前一直觉得NAND Flash存在坏块,所以搞个文件系统对坏块进行管理.现在有点觉得不用文件系统也是可以管理坏块的,哈哈,有点晕!哪位兄弟帮忙详细解释下理由?

dld2 发表于 2008-4-30 10:11

俺以为不需要

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

阿南 发表于 2008-4-30 10:14

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

lpf336 发表于 2008-4-30 10:17

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

dld2 发表于 2008-4-30 10:39

没深入考虑

我用最简单的方法。<br />每个文件有一个预定义的起始块地址。<br />比如一个文件要占N个块,就一个个顺序写,发现坏块,就跳过去。&nbsp;<br />读的时候,也是先检测再读。<br /><br />写入数据里可以加一些数据头或者顺序号之类的东西。如果顺序号是正确排列的,说明读与写一致。否则,有可能是写入之后那个块变坏了。&nbsp;&nbsp;<br /><br />

computer00 发表于 2008-4-30 10:46

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

armecos 发表于 2008-4-30 16:41

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

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

yddoo 发表于 2008-4-30 23:26

我也来说两句

回3楼:放代码时: 如果用FS来管理代码,换句话说就是代码在你看来是一个与其他数据文件没有差别的data.但你load这个程序到内存时,必须要FS了,也就是说运行这段程序前系统就已经支持FS了。如一些bootloader支持一些简单的FS。<br /><br />如果不用FS,关于坏块,首先应该知道为什么有坏块(这我就不说了),程序什么时候才会认识到一个坏块:erase出错,program出错(各厂商的可能有不同)<br />对于装载程序其实是处于只读状态,这时ECC是必不可少的。如果ECC不能纠错时(一般2位以上翻转)应报装载出错而不是产生坏块,坏块产生应由你在写入或擦除出错时记录(读状态位)坏块信息应记录在一可靠的存储区域,<br />注意如果你系统中只有NAND作为非易失性memory,要注意:当坏块信息所在块也坏了时的处理是有必要的<br />

wangkj 发表于 2008-5-2 08:26

用ECC基本可以解决

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

HWM 发表于 2008-5-2 20:22

这好象没啥难以理解的

当初玩PDP-11/34时就做了一个不用RT-11文件系统的硬盘存储系统。当然现在谁都不会不用文件系统去使用硬盘等类似的块存储器件,理由只有一个,方便可靠。当然可交换性(符合某种标准)也是一个重要的因素。<br />
页: [1]
查看完整版本: 各位帮忙确认疑问:NAND Flash为何需要文件系统支持?