介绍
    1965年,在双极管被W.Shockley、W.Brattain和J.Bardeen三人发明出来之后,Intel的合作创始人Gordon Moore发现了这样一条法则:当价格不变时,集成电路上可容纳的晶体管数目,约每一年便会增加一倍,性能也将提升一倍。而事实上,在接下来的几年集成电路上的晶体管数目大概每18个月就会增加一倍。例如,从Pentium 1.3到Pentium 4之间的18个月里,单位面积里的晶体管数量就从2800万增加到了5500万。
    今天,一个标准的桌面PC的处理器的操作频率已经是按gigahertz来计算的了,而存储器能够存储的容量信息更是按terabytes(TB)来进行计算的了。
    这种单位面积晶体管数量的增加以存储器的为其中一个典型的代表,因为存储器也正好是电子系统中的一个
关键部件。
    半导体存储器能够被划分为两个主要部分:RAM(Random Access Memories)和ROM(Read Only Memories):RAM在断电之后他存储的数据会消失,而ROM则会一直保持。另外一种存储器NVM(Non-Volatile Memories)则介于以上两种之间,他的内容能够被修改,而断电之后数据也不会丢失。这就比单纯的ROM更具有弹性,因为ROM的内容是由生产商写死了客户是不能修改的。
    Non-Volatile Memories的历史从20世纪70年代开始的,而第一款NVM就是EPROM(Erasable Programmable
Read Only Memory),从此以后一直到90年代NVM就逐渐成为半导体家族中最重要的成员之一了,而引起更多关注的是新技术的发展推动NVM的进步多于由此产生的经济效益。
    从20世纪90年代开始,随着半导体存储器进入到了手机、手持电脑、摄像机等数码终端产品,这个市场就一直处于快速增长状态知道今天。
    最流行的Flash 存储器的存储方式是基于一种叫做Floating Gate(FG)的技术,可以参考下面的横截图,一个MOS管是由两个重叠的门组成:第一个是完全被氧化物所包围;而第二个则是被连接到外面。这个单独的门就相当于构成了一个电子隔离带,这样就保证存在里面的电子(数据)能够保留很多年。对这个被隔离起来的部分进行充电和放电的过程就叫做program和erase。由于进行了充放电,所以这个隔离起来的部分内部的电势Vth就会被改变;这就是一个典型的MOS管工作原理。当我们对一个存储单元施加上一个电压的时候,我们就可以分别处两种情况:当我们施加的电压比Vth高的时候便被识别为“1”,否则就被识别为“0”。

NAND 存储器存储单元结构
阵列
    存储器的存储单元都是以矩阵的形式来组织的,因为这种组织可以有效较少存储器的所占空间。我可以通过查看存储单元的组织结构就可以区分NAND和NOR Flash。我们现在介绍的NAND,因为NAND 是目前运用最为广泛的存储器。
    在NAND的架构中,存储单元是如图2.2所示以每32个或者64个进行串联来进行组织的。两个用于选择的晶体管(这个晶体管的两个外接脚DSL/Mdl[接BL] 或者是SSL/Msl[接SL])分别放于每一串存储单元(32或64个)的两端以此来保证与source line(通过Msl)和bitline(通过Mdl)的连接。每一个NAND 存储单元串都有bitline用来与其他串进行连接。控制门用于连接wordlines(WLs)。

    逻辑pages是由同一个wordline控制的存储单元控制的部分,每一个wordline所控制的pages的数目和存储单元的容量有关系。基于存储单元的存储级别,Flash存储器可以分为不同的类别:SLC(一个存储单元1bit)、MLS(一个存储单元2bits)、8LC(一个存储单元3bits)、16LC(一个存储单元4bits)。
    如果我们考虑的SLC的交叉存取情况,奇数和偶数分别形成不同的页。一个例子就是:一个页大小为4KB (4096 * 8 = 32768 bit)的SLC的wordline有65536个存储单元。
    当然,如果是MLC的话则有4个页,每一个存储单元系列就有一个LSB(Least Significant Bit)和一个MSB(Most Significant Bit)。因此也就有:
- 偶数bitlines的MSB 和 LSB的页
  - 奇数bitlines的MSB 和 LSB的页
    同一个wordline的所有的NAND的存储单元串在擦除的时候是一起被擦除的,这样就形成了一个块(blcok),如果2.2所示为两个块,使用的是同一个总线,一个块是由WL0<63:0>构成,另外一个则是WL1<63:0>.
    NAND Flash的存储单元组成结构是矩阵,在对NAND执行读、写和擦除的时候就需要额外的电路,又由于NAND的各个die必须是被封装起来的,所以在设计阶段设定一个适合的大小并构建好周边电子线路是很重要的。例如NAND Flash的各个die的层次结构就是如此。
    图2.3给出了一个层次结构的例子。存储阵列可以被设置为多个plane(图2.3中就是两个plane),水平方向
上使用wordline来标记,垂直方向上使用bitline来标记。
    Row Decoder位于两个plane之间,电路的一个任务就是对所选NAND串的的wordline进行适当的偏压以保证正常工作,所有的bitlines都要连接到sense amplifiers(Sense Amp)。每一个sense amplifier可以有一个多个bitlines,这个我们会在之后介绍到这一部分的时候详细介绍到。sense amplifier的目的是将存储单元中的电流专为一个数字量。而在外围区域则有一些给存储单元进行充电所需的器件以及电压管理器件、逻辑电路以及其他的一些设备。PADs是用来与外部器件进行通信用的。

NAND Flash内部结构简介的更多相关文章

  1. nand flash详解及驱动编写

    https://www.crifan.com/files/doc/docbook/linux_nand_driver/release/html/linux_nand_driver.html#nand_ ...

  2. Samsung K9F1G08U0D SLC NAND FLASH简介(待整理)

    Samsung  K9F1G08U0D,数据存储容量为128M,采用块页式存储管理.8个I/O引脚充当数据.地址.命令的复用端口.详细:http://www.linux-mtd.infradead.o ...

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

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

  4. 说说NAND FLASH以及相关ECC校验方法

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

  5. NAND FLASH ECC校验原理与实现

    ECC简介 由于NAND Flash的工艺不能保证NAND的Memory Array在其生命周期中保持性能的可靠,因此,在NAND的生产中及使用过程中会产生坏块.为了检测数据的可靠性,在应用NAND  ...

  6. JZ2440 裸机驱动 第8章 NAND Flash控制器

    本章目标  了解NAND Flash 芯片的接口 掌握通过NAND Flash控制器访问NAND Flash的方法 8.1 NAND Flash介绍和NAND Flash控制器使用     NAND ...

  7. u-boot分析(九)----nand flash初始化|nand flash读写分析

    u-boot分析(九) 上篇博文我们按照210的启动流程,分析到了初始化串口,由于接下来的取消存储保护不是很重要,所以我们今天按照u-boot的启动流程对nand flash初始化进行分析. 今天我们 ...

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

    [Nand Flash引脚(Pin)的说明] 图3.Nand Flash引脚功能说明 上图是常见的Nand Flash所拥有的引脚(Pin)所对应的功能,简单翻译如下: 1.       I/O0 ~ ...

  9. 如何编写linux下nand flash驱动-4

    2.       软件方面 如果想要在Linux下编写Nand Flash驱动,那么就先要搞清楚Linux下,关于此部分的整个框架.弄明白,系统是如何管理你的nand flash的,以及,系统都帮你做 ...

随机推荐

  1. 单台电脑上启动多个Modelsim图形环境窗口的简单办法(windows)

    1 单台电脑上启动多个Modelsim图形环境窗口的简单办法(windows) http://blog.21ic.com/user1/3128/archives/2010/73447.html   单 ...

  2. Sun开发的JINI技术在网络中的应用

    一.概述 Sun公司开发的Jini系统是一种创新技术,听说它的人很多但较少被人理解.Jini系统可利用Java扩展网络计算的范围,并有可能成为最佳解决方案. Jini是Sun公司的研究与开发项目,它能 ...

  3. 20160328 javaweb Cookie 小练习

    利用cookie实现历史记录浏览: 由于是简单演示,所以直接用javabean 取代数据库了 数据存储类: package com.dzq.dao; import java.util.*; impor ...

  4. Oracle之Merge用法

    Merge用来从一个表中选择一些数据更新或者插入到另一个表中.而最终是用更新还是用插入的方式取决于该语句中的条件. 下面我们简单的举一个例子: SQL)) 表已创建. SQL)) 表已创建. SQL, ...

  5. C#数组按值和按引用传递数组区别

    C#中,存储数组之类对象的变量并不是实际存储对象本身,而是存储对象的引用.按值传递数组时,程序将变量传递给方法时,被调用方法接受变量的一个副本,因此在被调用时试图修改数据变量的值时,并不会影响变量的原 ...

  6. WORDPRESS 后台500错误解决方法集合

    引自: http://www.guuglc.com/565.html 这篇文章本质上我是不可能会写到,就因为7号那天晚上,我准备搬家的时候,发现前台完好,进入后台却500错误. 这时我就得急的,毕竟明 ...

  7. 时间处理总结(三)javascript与WCF

    1.WCF提交时间时,若需接受DateTime需转换为"\/Date(928120800000+0800)\/"这种格式 var DateToJson = function (js ...

  8. 页面资源预加载(Link prefetch)功能加速你的页面加载速度

    有了浏览器缓存,为何还需要预加载? 用户可能是第一次访问网站,此时还无缓存 用户可能清空了缓存 缓存可能已经过期,资源将重新加载 用户访问的缓存文件可能不是最新的,需要重新加载 页面资源预加载/预读取 ...

  9. Codevs 1697 ⑨要写信

    1697 ⑨要写信 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 传送门 题目描述 Description 琪露诺(冰之妖精)有操控冷气的能力.能瞬间冻结小东西,比 ...

  10. (hdu)5391 Zball in Tina Town

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5391 Problem Description Tina Town is a friendl ...