OK6410 nandflash 1

从开发板原理图可知,NANDFLASH K9G8G08


从datasheer可知,2G x 8  Bit NAND Flash Memory

2g的地址线,需要31根地址线,但是从原理图可知,只有8条,所以地址是多次发出。而且地址,数据,命令复用。从资料中找到下述定义


可知,地址分成5次发出。恰好31个数据。

继续向下看,同样有DDR类似的命令,毕竟一共就8条DATA线。所以是需要的



如果是单片机或者类似的没有NANDFLASH 控制器的处理器,则需要使用较为繁琐的时序图完成相应的读写操作。例下图。

6410内部集成了NANDFLASH控制器,使用起来较为简单。省略了设置相应使能的步骤,只需要将要发送的数据,命令,地址写到相应的寄存器就可以了。


下面来说点NANDFLASH的特点。

位反转:Nand Flash由于本身硬件的内在特性,会导致(极其)偶尔的出现位反转的现象。
所谓的位反转,bit flip,指的是原先Nand Flash中的某个位,变化了,即要么从1变成0了,要么从0变成1了。


位反转现象

Nand Flash的位反转现象,主要是由以下一些原因/效应所导致:
1.漂移效应(Drifting Effects)
漂移效应指的是,Nand Flash中cell的电压值,慢慢地变了,变的和原始值不一样了。
2.编程干扰所产生的错误(Program-Disturb Errors)
此现象有时候也叫做,过度编程效应(over-program effect)。
对于某个页面的编程操作,即写操作,引起非相关的其他的页面的某个位跳变了。
3.读操作干扰产生的错误(Read-Disturb Errors)
此效应是,对一个页进行数据读取操作,却使得对应的某个位的数据,产生了永久性的变化,即Nand Flash上的该位的值变了。

如果只是对于单个位的跳变,也许问题看起来并不是很严重。然而,如果恰巧是某个重要文件的某位变化了,那么问题就严重了。
如果位反转,只是读取数据出来时候报告出来的位反转,那么很简单,只需要重新再去读取一次数据,即可解决此问题。
但是,如果是Nand Flash物理上的某个位真正的翻转了,那么需要通过对应的ECC校验去解决。
相对Nor Flash来说,Nand Flash中,位反转的现象,相对更加容易发生。因此,Nand Flash厂家都推荐,在使用Nand Flash的时候,最好要应用ECC算法。
当Nand Flash应用于多媒体信息,比如存储音视频文件,那么位反转所造成的问题,并不严重。
当用于存储操作系统,配置文件和其他敏感信息的时候,必须要用ECC,以实现数据的校验,保证数据的正确性。

nandflash储存数据的时候是一页一页的储存,当读写数据时,首先接收列地址(column address)(2048+64-1),确定那一行,然后根据接下来行地址(row address)找到这个数据,每一页大小为2K

为了应对位反转现象,所以每一页2K外,还额外添加64bytes的字节,用于ECC校验。

当写入2K数据后,会自动生成64字节的校验码。

当读出2K数据,重新生成校验码。与64k校验码比较,如果不同,则发生了位反转,并且可以用校验码根据一定算法算出这一位。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值