介绍
    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. 微信小程序开闸,关于入口、推广、场景的一些观察与思考

    今夜(1月9号)零点,微信小程序正式上线.在体验了很多款小程序后,我对小程序的使用场景有了更多的认识.以下是一些想法,欢迎交流. 一.小程序的"入口"在哪儿? 1.只有访问过的小程 ...

  2. 前端编辑器 之 sublime-text3

    工善欲其事,必先利其器 作为一名前端工程师,一定要有熟练,便捷的开发工具,虽然自己一直使用神一样的编辑器,但是却没有使用的像神一样,于是再次深入了解下这款工具 下载sublime-text 去官网下载 ...

  3. U3D 2D游戏之黑暗纪元 2D游戏基础入门开发全(1)

    第一个U3D 2D游戏的例子,全部自己编写,算是入门用,这里记录一下. 1.首先游戏把层次布置好,这里分为 背景层,游戏层,UI层 背景层 (Background-1):就是单纯的背景显示作用. 游戏 ...

  4. Hazelcast

    Hazelcast是一个高度可扩展的数据分发和集群平台.特性包括: 提供java.util.{Queue, Set, List, Map}分布式实现. 提供java.util.concurrency. ...

  5. 20160314 Request 和Response

    一.Response 1.Resonse的继承结构: ServletResponse--HttpServletResponse 2.Response代表响应,于是响应消息中的 状态码.响应头.实体内容 ...

  6. java- 枚举的常见用法

    用法一:常量 public enum MyColor{Red,Black,Blue} public enum Color { RED, GREEN, BLANK, YELLOW } enum为枚举类的 ...

  7. ARC和MRC实现单例模式

    代码如下,可直接拷贝到头文件中 #define singleton_h(name) +(instancetype)shared##name # if __has_feature(objc_arc) / ...

  8. linux命令之端口占用

    1.lsof命令 eg: lsof -i:8080,这里显示8080端口在被java使用,状态是LISTEN, 可以使用killall 进程名(killall java) 结束占用端口的进程(不建议, ...

  9. 享元模式(咖啡屋)【java与模式】

    package com.javapatterns.flyweight.coffeeshop; public class Flavor extends Order { private String fl ...

  10. 02_Jquery_02_元素选择器

    [简述] 元素选择器就是通过元素名来查询元素 $("elementName")这里就可以通过元素名来获取jquery元素了. 但与id选择器不同的是,名称相同的元素有很多,所以获取 ...