`
阅读更多

NAND

  NAND闪存是一种比硬盘驱动器更好的存储方案,这在不超过4GB的低容量应用中表现得犹为明显。随着人们持续追求功耗更低、重量更轻和性能更佳的产品,NAND正被证明极具吸引力。


  NAND闪存阵列分为一系列128kB的区块(block),这些区块是NAND器件中最小的可擦除实体。擦除一个区块就是把所有的位(bit)设置为“1”(而所有字节(byte)设置为FFh)。有必要通 过编程,将已擦除的位从“1”变为“0”。最小的编程实体是字节(byte)。一些NOR闪存能同时执行读写操作(见下图1)。虽然NAND不能同时执行 读写操作,它可以采用称为“映射(shadowing)”的方法,在系统级实现这一点。这种方法在个人电脑上已经沿用多年,即将BIOS从速率较低的 ROM加载到速率较高的RAM上。


  NAND的效率较高,是因为NAND串中没有金属触点。NAND闪存单元的大小比NOR要小 (4F2:10F2)的原因,是NOR的每一个单元都需要独立的金属触点。NAND与硬盘驱动器类似,基于扇区(页),适合于存储连续的数据,如图片、音 频或个人电脑数据。虽然通过把数据映射到RAM上,能在系统级实现随机存取,但是,这样做需要额外的RAM存储空间。此外,跟硬盘一样,NAND器件存在坏的扇区,需要纠错码(ECC)来维持数据的完整性。


  存储单元面积越小,裸片的面积也就越小。在这种情况下,NAND就能够为当今的低成本消费市场 提供存储容量更大的闪存产品。NAND闪存用于几乎所有可擦除的存储卡。NAND的复用接口为所有最新的器件和密度都提供了一种相似的引脚输出。这种引脚 输出使得设计工程师无须改变电路板的硬件设计,就能从更小的密度移植到更大密度的设计上。


  NAND与NOR闪存比较


  NAND闪存的优点在于写(编程)和擦除操作的速率快,而NOR的优点是具有随机存取和对字节 执行写(编程)操作的能力(见下图图2)。NOR的随机存取能力支持直接代码执行(XiP),而这是嵌入式应用经常需要的一个功能。NAND的缺点是随机 存取的速率慢,NOR的缺点是受到读和擦除速度慢的性能制约。NAND较适合于存储文件。如今,越来越多的处理器具备直接NAND接口,并能直接从 NAND(没有NOR)导入数据。
  NAND的真正好处是编程速度快、擦除时间短。NAND支持速率超过5Mbps的持续写操作,其区块擦除时间短至2ms,而NOR是750ms。显然,NAND在某些方面具有绝对优势。然而,它不太适合于直接随机存取。
  对于16位的器件,NOR闪存大约需要41个I/O引脚;相对而言,NAND器件仅需24个引 脚。NAND器件能够复用指令、地址和数据总线,从而节省了引脚数量。复用接口的一项好处,就在于能够利用同样的硬件设计和电路板,支持较大的NAND器 件。由于普通的TSOP-1封装已经沿用多年,该功能让客户能够把较高密度的NAND器件移植到相同的电路板上。NAND器件的另外一个好处显然是其封装 选项:NAND提供一种厚膜的2Gb裸片或能够支持最多四颗堆叠裸片,容许在相同的TSOP-1封装中堆叠一个8Gb的器件。这就使得一种封装和接口能够 在将来支持较高的密度。
  NOR闪存的随机存取时间为0.12ms,而NAND闪存的第一字节随机存取速度要慢得多
  以2Gb NAND器件为例,它由2048个区块组成,每个区块有64个页
  2GB NAND闪存包含2,048个区块
  每一个页均包含一个2048字节的数据区和64字节的空闲区,总共包含2,112字节。空闲区 通常被用于ECC、耗损均衡(wear leveling)和其它软件开销功能,尽管它在物理上与其它页并没有区别。NAND器件具有8或16位接口。通过8或16位宽的双向数据总线,主数据被 连接到NAND存储器。在16位模式,指令和地址仅仅利用低8位,而高8位仅仅在数据传输周期使用。


  擦除区块所需时间约为2ms。一旦数据被载入寄存器,对一个页的编程大约要300μs。读一个页面需要大约25μs,其中涉及到存储阵列访问页,并将页载入16,896位寄存器中。
  除了I/O总线,NAND接口由6个主要控制信号构成:
  1.芯片启动(Chip Enable, CE#):如果没有检测到CE信号,那么,NAND器件就保持待机模式,不对任何控制信号作出响应。
  2.写使能(Write Enable, WE#): WE#负责将数据、地址或指令写入NAND之中。
  3.读使能(Read Enable, RE#): RE#允许输出数据缓冲器。
  4.指令锁存使能(Command Latch Enable, CLE): 当CLE为高时,在WE#信号的上升沿,指令被锁存到NAND指令寄存器中。
  5.地址锁存使能(Address Latch Enable, ALE):当ALE为高时,在WE#信号的上升沿,地址被锁存到NAND地址寄存器中。
  6.就绪/忙(Ready/Busy, R/B#):如果NAND器件忙,R/B#信号将变低。该信号是漏极开路,需要采用上拉电阻。
  数据每次进/出NAND寄存器都是通过16位或8位接口。当进行编程操作的时候,待编程的数据进入数据寄存器,处于在WE#信号的上升沿。在寄存器内随机存取或移动数据,要采用专用指令以便于随机存取。
  数据寄存器输出数据的方式与利用RE#信号的方式类似,负责输出现有的数据,并增加到下一个地 址。WE#和RE#时钟运行速度极快,达到30ns的水准。当RE#或CE#不为低的时候,输出缓冲器将为三态。这种CE#和RE#的组合使能输出缓冲 器,容许NAND闪存与NOR、SRAM或DRAM等其它类型存储器共享数据总线。该功能有时被称为“无需介意芯片启动(chip enable don't care)”。这种方案的初衷是适应较老的NAND器件,它们要求CE#在整个周期为低(译注:根据上下文改写)。
  输入寄存器接收到页编程(80h)指令时,内部就会全部重置为1s,使得用户可以只输入他想以0位编程的数据字节
  带有随机数据输入的编程指令。该指令只需要后面跟随着数据的2个字节的地址
  所有NAND操作开始时,都提供一个指令周期
  当输出一串WE#时钟时,通过在I/O位7:0上设置指令、驱动CE#变低且CLE变高,就可 以实现一个指令周期。注意:在WE#信号的上升沿上,指令、地址或数据被锁存到NAND器件之中。如表1所示,大多数指令在第二个指令周期之后要占用若干 地址周期。注意:复位或读状态指令例外,如果器件忙,就不应该发送新的指令。
  注意:因为最后一列的位置是2112,该最后位置的地址就是08h(在第二字节中)和 3Fh(在第一字节中)。PA5:0指定区块内的页地址,BA16:6指定区块的地址。虽然大多编程和读操作需要完整的5字节地址,在页内随机存取数据的 操作仅仅用到第一和第二字节。块擦除操作仅仅需要三个最高字节(第三、第四和第五字节)来选择区块。
  总体而言,NAND的基本操作包括:复位(Reset, FFh)操作、读ID(Read ID, 00h)操作、读状态(Read Status, 70h)操作、编程(Program)操作、随机数据输入(Random data input, 85h)操作和读(Read)操作等。


 将NAND连接到处理器


  选择内置NAND接口的处理器或控制器的好处很多。如果没有这个选择,有可能在NAND和几乎 任何处理器之间设计一个“无粘接逻辑(glueless)”接口。NAND和NOR闪存的主要区别是复用地址和数据总线。该总线被用于指定指令、地址或数 据。CLE信号指定指令周期,而ALE信号指定地址周期。利用这两个控制信号,有可能选择指令、地址或数据周期。把ALE连接到处理器的第五地址位,而把 CLE连接到处理器的第四地址位,就能简单地通过改变处理器输出的地址,任意选择指令、地址或数据。这容许CLE和ALE在合适的时间自动设置为低。
  为了提供指令,处理器在数据总线上输出想要的指令,并输出地址0010h;为了输出任意数量的 地址周期,处理器仅仅要依次在处理器地址0020h之后输出想要的NAND地址。注意,许多处理器能在处理器的写信号周围指定若干时序参数,这对于建立合 适的时序是至关重要的。利用该技术,你不必采用任何粘接逻辑,就可以直接从处理器存取指令、地址和数据。


  多层单元
  多层单元(MLC)的每一个单元存储两位,而传统的SLC仅仅能存储一位。MLC技术有显著的密度优越性,然而,与SLC相比(表3),其速度或可靠性稍逊。因此,SLC被用于大多数媒体卡和无线应用,而MLC器件通常被用于消费电子和其它低成本产品。


  NAND需要ECC以确保数据完整性。NAND闪存的每一个页面上都包括额外的存储空间,它就 是64个字节的空闲区(每512字节的扇区有16字节)。该区能存储ECC代码及其它像磨损评级或逻辑到物理块映射之类的信息。ECC能在硬件或软件中执 行,但是,硬件执行有明显的性能优势。在编程操作期间,ECC单元根据扇区中存储的数据来计算误码校正代码。数据区的ECC代码然后被分别写入到各自的空 闲区。当数据被读出时,ECC代码也被读出;运用反操作可以核查读出的数据是否正确。


  有可能采用ECC算法来校正数据错误。能校正的错误的数量取决于所用算法的校正强度。在硬件或 软件中包含ECC,就提供了强大的系统级解决方案。最简单的硬件实现方案是采用简单的汉明(Simple Hamming)码,但是,只能校正单一位错误。瑞德索罗门(Reed-Solomon)码提供更为强大的纠错,并被目前的控制器广为采用。此外,BCH 码由于比瑞德索罗门方法的效率高,应用也日益普及。


  要用软件执行NAND闪存的区块管理。该软件负责磨损评级或逻辑到物理映射。该软件还提供ECC码,如果处理器不包含ECC硬件的话。


  编程或擦除操作之后,重要的是读状态寄存器,因为它确认是否成功地完成了编程或擦除操作。如果 操作失败,要把该区块标记为损坏且不能再使用。以前已编写进去的数据要从损坏的区块中搬出,转移到新的(好的)存储块之中。2Gb NAND的规范规定,它可以最多有40个坏的区块,这个数字在器件的生命周期(额定寿命为10万次编程/擦除周期)内都适用。一些有坏块的NAND器件能 够出厂,主要就归根于其裸片面积大。管理器件的软件负责映射坏块并由好的存储块取而代之。


  利用工厂对这些区块的标记,软件通过扫描块可以确定区块的好坏。坏块标记被固定在空闲区的第一 个位置(列地址2048)。如果在0或1页的列地址2048上的数据是“non-FF”,那么,该块要标记为坏,并映射出系统。初始化软件仅仅需要扫描所 有区块确定以确定哪个为坏,然后建一个坏块表供将来参考。


  小心不要擦除坏块标记,这一点很重要。工厂在宽温和宽电压范围内测试了NAND;一些由工厂标记为坏的区块可能在一定的温度或电压条件下仍然能工作,但是,将来可能会失效。如果坏块信息被擦除,就无法再恢复。


  另外,NAND在某些地方,尤其是数字电路,和vhdl等一些描述语言中代表与非,或是与非门的意思

 

 

 

Quote

分享到:
评论

相关推荐

    NAND Flash烧录器,NAND Flash编程器,NAND Flash烧写器,NAND Flash拷贝机

    NAND Flash烧录器、NAND Flash编程器、NAND Flash烧写器、NAND Flash拷贝机 NAND Flash烧录器是电子行业中的一种重要设备,主要用于烧录和编程NAND Flash存储器。NAND Flash烧录器的主要功能是将数据烧录到NAND ...

    最新nand flash 规格 spec4.0

    NAND闪存是一种非易失性存储技术,广泛应用于固态硬盘(SSD)、USB闪存驱动器和各种嵌入式设备中。NAND闪存允许数据被保存即使在电源断开的情况下。它以其高存储密度、快速读写速度和较低成本而闻名。随着技术的发展...

    NANDFlash中文手册

    NAND Flash是一种非易失性闪存存储技术,由日本东芝公司于1989年首先推出。它的主要特点是高密度、低功耗、低成本,并且具有可升级的特性,特别适用于需要大量数据存储的多媒体产品。NAND Flash与NOR Flash都是目前...

    NAND Flash Memory Spec资料

    **NAND Flash Memory技术解析与特性** 在存储技术领域,NAND Flash Memory作为一种重要的非易失性存储器,因其在数据存储方面的卓越表现而受到广泛关注。本文将深入探讨NAND Flash Memory的核心概念、架构特点、...

    NAND_Reader_v539.rar

    《NAND_Reader_v539.rar:深入解析NAND闪存读取工具》 在数字设备中,NAND闪存是一种广泛使用的非易失性存储技术,它为我们的移动设备、固态硬盘(SSD)和嵌入式系统提供了可靠的数据存储。NAND_Reader_v539.rar是...

    nandflash 大小修改笔记

    在本文中,我们将探讨如何修改nandflash大小以适应不同容量的存储设备,特别是针对AT91SAM9260微控制器从nandflash启动的情况。AT91SAM9260是一款基于ARM926EJ-S内核的微处理器,广泛用于嵌入式系统设计,它支持从...

    NAND FLASH芯片手册

    **NAND Flash芯片手册** NAND Flash是一种非易失性存储技术,广泛应用于移动设备、固态硬盘(SSD)和嵌入式系统等。它以其高密度、高速度和低功耗特性著称,是现代电子设备中数据存储的重要组成部分。这份"**NAND ...

    FPGA实现的NandFlash控制器(带ECC)文档_源代码,nandflash编程器diy,Vivado

    在本文中,我们将深入探讨如何使用FPGA(Field-Programmable Gate Array)实现一个具有ECC(Error Correction Code)功能的NAND Flash控制器。NAND Flash作为一种非易失性存储技术,广泛应用于各种电子设备中,如...

    nand2tetris软件包verson2.6

    nand2tetris.zip 是 Nand2Tetris 课程 所需全部软件包,版本是 Version 2.6 软件源下载地址页面 https://www.nand2tetris.org/software Nand2Tetris 是一节面向所有受众,零计算机基础,基于动手实践的从最基本...

    Inside_NAND_Flash_Memories

    NAND Flash存储器是现代数字存储领域的一个关键组件,对于信息娱乐和数字媒体产业的发展产生了深远的影响。由于文档内容描述的不完整性和扫描识别可能存在的错误,本知识解析基于NAND Flash内存的普遍知识体系进行...

    EBAZ4205固化NAND

    标题"EBAZ4205固化NAND"指的是在EBAZ4205 FPGA开发板上进行NAND闪存的编程与烧录过程。EBAZ4205是一款基于Xilinx FPGA(Field-Programmable Gate Array)的开发平台,常用于硬件设计和验证。NAND闪存是一种非易失性...

    nandflash烧录文件制作

    在IT行业中,NAND Flash是一种常见的非易失性存储技术,广泛应用于移动设备、嵌入式系统和固态硬盘等。烧录文件制作是将操作系统、应用程序和其他必要数据写入NAND Flash的过程,以实现设备的初始化和功能实现。本文...

    NAND.zip_NAND_NAND FPGA_nand FLASH vhdl_nand flash_nand flash f

    NAND闪存是一种非易失性存储技术,广泛应用于各种电子设备中,如智能手机、SSD固态硬盘和嵌入式系统。NAND闪存以其高速读取、低功耗和高存储密度等特点,成为现代数据存储的重要组成部分。在本项目中,我们将探讨...

    nandFlash控制源代码

    NAND Flash是现代电子设备中广泛使用的非易失性存储技术,主要应用于移动设备、固态硬盘(SSD)和嵌入式系统等。它的控制源代码是实现NAND Flash读写操作的关键部分,通常包括驱动程序、错误管理、坏块检测与标记...

    NandFlash驱动程序

    Nand Flash驱动程序是嵌入式系统中一个关键的组件,它使得系统能够与Nand Flash存储设备进行有效的通信,实现数据的读取、写入和擦除操作。Nand Flash作为一种非易失性存储器,广泛应用于各种电子设备,如手机、平板...

    Inside_NAND_Flash_Memories.pdf

    ### NAND闪存内部原理 #### 引言 随着信息技术的快速发展,存储技术也经历了翻天覆地的变化。其中,NAND闪存作为一种重要的数字存储介质,在过去十年间取得了巨大的成功。它不仅在数字摄影、音乐播放(如MP3)、...

    VHDL例程源码 nand2

    VHDL例程源码 nand2VHDL例程源码 nand2VHDL例程源码 nand2VHDL例程源码 nand2VHDL例程源码 nand2VHDL例程源码 nand2VHDL例程源码 nand2VHDL例程源码 nand2VHDL例程源码 nand2VHDL例程源码 nand2VHDL例程源码 nand2...

    stm32 nand flash 驱动代码

    在本文中,我们将深入探讨如何使用STM32的FSMC(Flexible Static Memory Controller,灵活静态存储器控制器)来驱动NAND Flash,特别是针对K9F1G08型号的NAND Flash。 NAND Flash是一种非易失性存储器,常用于存储...

    Linux MTD 下获取Nand flash 各个参数的过程的详细解析

    ### Linux MTD 下获取Nand flash 各个参数的过程的详细解析 #### 一、引言 在嵌入式系统开发中,NAND Flash 是一种非常重要的存储介质,广泛应用于移动设备、数字相机等产品中。Linux MTD (Memory Technology ...

    toshiba_nand命名规则.pdf

    东芝(Toshiba)作为全球知名的半导体制造商,其NAND闪存产品广泛应用于各种存储设备中。东芝NAND闪存的命名规则相当详细和复杂,根据给定文件的信息,我们可以总结出一些关键的知识点。 首先,东芝NAND闪存的命名...

Global site tag (gtag.js) - Google Analytics