最近想到了一个如何更加简单的理解Nand Flash做Retry原理的方法,在这里记录分享一下

这里为了表述简单,假设一个Nand Flash,它非常非常的小,小到只有8个SLC Cell,本身Retry原理跟Block、Page、WL关系不是很大,所以就假设他们都不存在好了。这个Flash他就只有8个SLC Cell,所以他可以存储的数据量为8 bit

这个Cell也比较特别,在打入电子的时候,我们不用准确的电压值来做记录,而是用一个V1,V2来代表该Cell的电压。

如上图所示,该Flash的每个Cell只能存在V0到V7共8种电压状态,当读取数据时,根据该Cell的电压在P值的左边还是右边,判定读出的值分别为1和0。

下面开始模拟编程过程,设定我们要写入的原始数据为0x55,他的二进制是0101 0101 b,首先写入bit 0  数据为1,那么这时候Nand Flash 把Cell 0猛地打入电子,同时使其电压尽可能处于P值的左边,最后Cell0的电压落在了V1。

上图表示这时候落在V1的Cell 数量有1个,用对应的颜色在图上表示对应Cell的电压值,个数的意思是这个Flash当中,处于对应电压的Cell有多少个。

后面7个Cell就不一一展示了,假设他们在写完之后呈现出这样的一个状态

大概解释一下就是处于V2电压的Cell有bit 2和bit 4,处于V6电压的Cell有bit 3和bit 5.

这时候,我们通过P阈值来读取数据,就能正确的读出原本写入的0x55,通常情况下这个图会被画成折线图我们现在把他连起来,得到下面这个样子

这个图就是阈值分布图,可以看到在阈值P的地方两个波交叉较少,在正常的Flash当中这时候用ECC就能纠错,不过在这个特殊的Flash当中还没有数据出错。

存好数据之后,这个特殊的Flash可能会被高温,低温,ReadDisturb等等等等各种环境摧残,最终他的有一个Cell的电压发生变化了。变成了下图这种状态

如上图所示,bit 6的电压从V3跳到了V4,这时候我们再继续用阈值P来读数据,实际上读出来的是0001 0101b,即0x15,画出阈值分布曲线之后是这个形态

可以看到两个波峰交叉的地方升高了。所以这时候如果想要数据能够正确的读取出来,要将阈值P进行偏移

将阈值偏移到P0进行数据读取时,bit 6又可以读出数据是1,变回正确数据,这就是Retry时做阈值偏移的基本原理。上面画的阈值分布图实际上是针对不知道原始数据的时候画出来的,所以看不出真实的Cell变化。不过此时我们是知道原始数据为0x55的,所以知道是哪一个bit发生的变化,因此可以画出更详细的阈值分布图:

上图红线表示原始数据为1的Cell,绿色为原始数据为0的Cell。

以上就是Retry基本原理以及阈值分布图的画法解析。

Nand Flash 通过调整阈值的Retry方法简单描述相关推荐

  1. Linux MTD架构下的nand flash驱动详解

    转载自:http://blog.csdn.net/wang_zheng_kai/article/details/18988521 有了前面的基础(Nandflash详解:https://blog.cs ...

  2. 如何编写linux下nand flash驱动

    http://www.cnblogs.com/sankye/articles/1638852.html 向作者Sankye致敬 [编写驱动之前要了解的知识] 1.       硬件特性: [Flash ...

  3. nand flash驱动编写步骤

    分配一个nand_chip结构体:这个结构体中包含了关于NAND Flash的地址信息.读写方法.ECC模式.硬件控制等一些底层机制.就是与NANDcontroller相关的东西. 设置nand_ch ...

  4. 用JLINK烧写U-boot到Nand Flash中

    很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash中,幸好我们还有JLINK,用JLINK烧写U-boot到Nor ...

  5. jlink烧写linux内核,如何利用JLINK烧写U-boot到NAND Flash中

    很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash中,幸好我们还有JLINK,用JLINK烧写U-boot到Nor ...

  6. JLINK烧写U-boot到NAND Flash中

    http://www.linuxidc.com/Linux/2 很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash ...

  7. Nand Flash管理算法介绍之FTL简介

    和传统磁盘相比,Nand Flash存储设备存储延迟低.功耗低.更高的存储密度.抗震型号更好和噪声低.但是,由于Nand Flash的特性影响(读写擦的单位不一致,每个块有P/E次数限制),Nand ...

  8. MTD 设备驱动 和 NAND Flash 驱动程序分析。

    硬件环境: 飞凌OK6410,256MB DDR,2GB NAND Flash.   NAND Flash 型号:K9G8G08U9A   .     分析源码:Linux 2.6.36.2 内核源码 ...

  9. NAND FLASH学习笔记之MTD下nand flash驱动(二)

    在这里补充这一片是为了更好的理解上一篇,补充的内容包括:MTD下NAND的布局中几个重要文件的诠释和MTD涉及的几个重要的结构体(更好的理解接口) 一.内核中的NAND代码布局 在Linux 内核中, ...

最新文章

  1. 计算机应用a级考试,四川省职称计算机应用能力考试A级模拟题
  2. VC:CString用法整理(转载)
  3. 怎么将html字符串转换成标签并展示,将字符串转为html标签-续
  4. Win10 Anaconda下TensorFlow-GPU环境搭建详细教程(包含CUDA+cuDNN安装过程)(转载)...
  5. Agisoft PhotoScan Professional软件处理无人机航拍照片基本流程
  6. android 8 esp8266,微信硬件平台(八) 1 esp8266从自己的服务器获取token
  7. jsp mysql做登入界面_用jsp实现网站登录界面的制作,并连接数据库
  8. 鸿蒙微内核游戏,华为鸿蒙微内核
  9. 担心再次被起诉?马斯克已删除特斯拉可能几个月内成为最大公司推文
  10. Backbone入门教程
  11. mysql查询与索引优化2
  12. 学51单片机需要专门把C语言学透吗
  13. 【云安全课程】云平台使用安全
  14. 项目管理办公室(PMO) 的不同定位
  15. GitHub 中超过3.5万开源代码被投毒
  16. 名帖330 王羲之 行草《平安帖》《何如帖》《奉橘帖》
  17. 内核I2C子系统详解
  18. ASP.NET 在vs中使用Calendar控件 制作一个日历 并标注节假日
  19. 面向未来,我们来聊一聊什么是现代化数据架构
  20. 2022 年,阿里内推 Java 后端面试题,文末附面试福利

热门文章

  1. 图片横向滚动 01-兼容IE8和Chrome浏览器
  2. firebox插件使用笔记
  3. oracle中的存储过程是什么,oracle存储过程是什么?
  4. 一点点墨水滴在纸上写出来的字体
  5. 【CFD理论】对流项-02
  6. Docker 容器技术(史上最强总结)
  7. asp计算机房预约系统源码,(机房)实验室预约管理系统
  8. windos找不到文件:打开fla文件时候报错!
  9. Python数据分析2-pandas入门和实战
  10. 大一寒假训练九(map,set,vector)【更新完成】