1、特性

  • 相对于SPI FLASH(W25Q256)和SD卡等存储设备,NAND FLASH采用8位并口访问,具有访问速度快的优势
  • 芯片操作是以块(block)为基本单位。每块又分成多个页(page),页大小一般是2048字节,读和写都是按照扇区进行的,最小擦除单位是 block
  • NAND FLASH的写操作具有只可以写0,不能写1的特性,所以,在写数据的时候,必须先擦除block(擦除后,block数据全部为1),才可以写入
  • NAND FLASH的page由2部分组成:数据存储区(data area)和备用区域(spare area),对MT29F4G08来说,数据存储区大小为2K字节,备用区域大小为64字节。我们存储的有效数据,一般都是存储在数据存储区。备用区域一般用来存放ECC(Error Checking and Correcting)校验值

2、存储单元结构


图为MT29F4G08的存储结构,由2个plane组成,每个plane有2048个block,每个block由64个page组成,每个page有2K+64字节(2112字节)的存储容量。所以,MT29F4G08的总容量为:2*2048*64*(2K+64)= 553648128字节(512MB)

3、NAND FLASH寻址
对NAND操作实际上就是对NAND的指定地址数据进行读写,NAND FLASH的地址分为三类:

块地址(Block Address)用于在一个Page内部字节寻址

页地址(Page Address)用于在一个Block内部页寻址

列地址(Column Address)用于在NAND内部块寻址

以MT29F4G08为例,这三个地址,通过5个周期发送,首先发送列地址,在发送页地址和块地址。如表所示:

CA0~CA11为列地址,MT29F4G08的一个Page为2112字节,需要12个地址线寻址;

PA0~PA5为页地址,MT29F4G08一个Block为64个Page,需要6个地址线寻址;

BA6~BA17为块地址,MT29F4G08总共有4096个Block,需要12根地址线寻址。

4、坏块管理与磨损均衡
因为NAND FLASH在出厂和使用过程中都可能会产生坏块,且每个BLOCK的擦除次数是有限制的,超过规定次数后,BLOCK将无法再擦除(即产生坏块),因此,我们首先需要能对这些坏块进行识别跟标记,然后合理的分配和使用好的块,以最大限度的延长NAND FLASH的寿命。NAND FLASH的坏块识别有几种方式:1,NAND厂家出厂的时候,会在每个Block的第一个page和第二个page的spare区的第一个字节写入非0XFF的值来表示,我们可以通过这个判断该块是否为坏块;2,通过给每个Block写入数值(0XFF/0X00),然后读取出来,判断写入的数据和读取的数据是否完全一样,来识别坏块;3,通过读取数据时,校验ECC错误,来识别坏块。

5、ECC校验
ECC,英文全称为:Error checking and Correction,是一种对传输数据的错误检测和修正的算法。NAND FLASH存储单元是串行组织的,当读取一个单元的时候,读出放大器所检测到信号强度会被这种串行存储结构削弱,这就降低了所读信号的准确性,导致读数出错(一般只有1个bit出错)。ECC就可以检测这种错误,并修正错误的数据位。

STM32的FMC模块就支持硬件ECC计算,使用的是汉明码,可以实现1bit错误的修正和2bit以上错误的检测,支持页大小按256、512、1024、2048、4096和8192字节为单位进行ECC计算。汉明码算法需要2n bit的ECC校验数据来处理2^n bit的数据包。比如,我们一般以512字节为单位来计算ECC值,只需要24bit的ECC码即可表示 2^12=4096bit=512字节,12*2=24bit

NAND FLASH简介相关推荐

  1. SPI NAND flash 简介

           在嵌入式系统领域,做为存储设备的NOR flash和NAND flash,大家应该不陌生.早期NOR flash的接口是并行口的形式,也就是把数据线,地址线并排设置与IC的管脚中.但是由 ...

  2. SD NAND Flash简介!

    SD NAND Flash是一种特殊形式的NAND Flash,其内部有包含一个SD 控制器及NAND Flash.他的特点主要有封装小,使用方便的特点.目前市面上的SD NAND Flash的容量主 ...

  3. Nand Flash简介-2

    下面是Nand Flash介绍的第二节,主要是介绍下Nand Flash里面结构和一些特性. Nand Flash结构 图1 上图为Nand Flash的结构,图中这片Flash有8192个块(Blo ...

  4. NAND FLASH基础知识总结

    NAND Flash简介 Flash全称为Flash Memory,属于非易失性存储设备(Non-volatile Memory Device).Flash主要分两种,NAND Flash和NOR F ...

  5. nand flash 原理简介

    Fisrt part : NAND flash和NOR flash的不同 NOR flash采用位读写,因为它具有sram的接口,有足够的引脚来寻址,可以很容易的存取其内部的每一个字节.NAND fl ...

  6. NAND FLASH 读写操作 简介

    NAND FLASH 内存详解与读写寻址方式 一.内存详解 NAND闪存阵列分为一系列128kB的区块(block),这些区块是 NAND器件中最小的可擦除实体.擦除一个区块就是把所有的位(bit)设 ...

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

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

  8. Nand Flash基础知识与坏块管理机制的研究

    概述 Flash名称的由来,Flash的擦除操作是以block块为单位的,与此相对应的是其他很多存储设备,是以bit位为最小读取/写入的单位,Flash是一次性地擦除整个块:在发送一个擦除命令后,一次 ...

  9. 内核kernel以及根文件系统rootfs是如何映射到对应的nand flash的

      原文 初始化代码读取uboot到内存里面,然后跳转到uboot那里去执行uboot,uboot初始化必要的硬件,加载一些驱动,其中包括nand flash的驱动,然后根据uboot里面设置的一个启 ...

  10. nand flash和nor flash的这几点区别你知道吗?

    这篇文章讲解nand flash和nor flash的特点和区别,不涉及存储原理的讲解 (一)Flash简介 FLASH是一种存储芯片,全名叫Flash EEPROM Memory,通地过程序可以修改 ...

最新文章

  1. 【资源】Faster R-CNN原理及代码讲解电子书
  2. ICLR 2020 | 如何解决图像分类中的类别不均衡问题?不妨试试分开学习表征和分类器...
  3. 基于Transformer对透明物体进行分割
  4. git错误提交怎么整?强行回滚最为致命
  5. python永久保存数据_python如何保存数据
  6. 为什么别人有微粒贷,而你没有?
  7. C++ 内建函数对象
  8. [NLP] 相对位置编码(二) Relative Positional Encodings - Transformer-XL
  9. 怎样成为一名A“.NET研究”ndroid开发者
  10. 深入理解CPU cache:组织、一致性(同步)、编程
  11. Linux运维系统工程师系列---17
  12. 读取excel内容在网页上显示出来
  13. 二、bootstrap table 父子表和行列调序
  14. 计算机辅助设计(湖南省首届“湘邮科技杯”大学生程序设计大赛试题)
  15. java中 字符串的补位
  16. KVM虚拟化平台搭建、工作模式与原理
  17. C#工业物联网和集成系统解决方案的技术路线(数据源、数据采集、数据上传与接收、ActiveMQ、Mongodb、WebApi、手机App)
  18. 第四节:Python中用pandas, numpy等清洗数据
  19. 触发器 jackey
  20. 耶鲁大学Michel H. Devoret教授荣获2021年“墨子量子奖”

热门文章

  1. oppor17刷鸿蒙系统,OPPO R17 Pro手机6G+128GB版本上线
  2. 最佳实践 | 联通数科基于 DolphinScheduler 的二次开发
  3. 3维人体建模历史最全算法、论文、数据等资源整理分享
  4. idea 安装uml 画图工具
  5. Zabbix Server 5.2安装教程
  6. Ilasm And Ildasm Practice
  7. cmd复制文件到其他目录
  8. 电子厂计算机维修周记,电子厂实习周记【三篇】【完整版】
  9. SPSS数据分析之多选题定义
  10. 仿uc设置默认浏览器