supersxj
驱动牛犊
驱动牛犊
  • 注册日期2002-11-22
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3875回复:6

请问NAND flash中一页为528字节,512字节后的16个字节干什么用呢

楼主#
更多 发布于:2004-09-02 17:20
一直不太明白512个字节之后的16个字节是干什么的,在做U盘时我们一般只用的到512个字节吧.对于NAND flash,文档上说必须要以页为单位进行读写操作,那么我想问问一下作过的大侠,我进行读写flash操作时一定要一下子读出或写入528个字节吗?比如说我只读该页的几个字节,或者写入时只写512个字节,剩下的16个字节压根不去管他可以吗?

另外在三星的文档上说每一个invalid block只是在第一个或第二个page的517字节上有问题,那如果我只用到每个page的前512个字节,是不是压根就不用管invalid block的问题呀.
danchai
驱动牛犊
驱动牛犊
  • 注册日期2003-11-06
  • 最后登录2004-11-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-08 12:36
那16个字节不是用于存放用户的实际数据的,而是存储ECC校验值和坏块标识,也就是你提到的第一或第二页的特定字节位置。

一般来说(我觉得),NAND Flash的Spare区是需要使用的,不能忽略,尤其是要识别坏块。
danchai
驱动牛犊
驱动牛犊
  • 注册日期2003-11-06
  • 最后登录2004-11-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-09-08 12:42
再补充一下,即便你只使用第一页的512个字节,坏块识别的过程也是不能省略的,如果16K的数据块被标识为无效,那么其上的每一页都是不可靠的,不应使用。
supersxj
驱动牛犊
驱动牛犊
  • 注册日期2002-11-22
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-09-09 19:28
那就是说事先应该检测整个片子的坏块,然后记录了,并且在写数据的时候,每次还要读spare区,判断是不是坏块.唉,程序上又要多一大块内容.

另外再请问一下,读数据的时候是不是读什么地址上的数据都可以呀,不是要从页起始地址开始读,一次至少读一页吧
PandaFeng
驱动牛犊
驱动牛犊
  • 注册日期2002-10-09
  • 最后登录2004-09-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-09-28 13:02
只能页寻址,一次可以读528byte 或 256byte(上下半区) 或 16byte(额外区)。具体看看芯片是否支持。
p_y_h
驱动牛犊
驱动牛犊
  • 注册日期2004-04-27
  • 最后登录2006-04-27
  • 粉丝0
  • 关注0
  • 积分84分
  • 威望9点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-10-18 15:36
NAND FLASH需要一个管理程序,搜索一下FTL,就知道那16个BYTE有多重要了。
lonsy
驱动牛犊
驱动牛犊
  • 注册日期2002-05-13
  • 最后登录2011-04-08
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望10点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-10 10:41
16byte有ECC,还有出厂的一些标识,比如坏块什么的。

很多公司在做flash算法的时候也借用这些地方做标记。
WDM我喜欢!
游客

返回顶部