NAND闪存颗粒结构及工作原理
NAND闪存是一种电压元件,靠其内存电压来存储数据,现在我们就来谈谈它的结构及工作原理。
闪存的内部存储结构是金属-氧化层-半导体-场效晶体管(MOSFET),里面有一个浮置栅极(Floating Gate),它便是真正存储数据的单元。请看下图:

数据在闪存的存储单元中是以电荷(electrical charge) 形式存储的。存储电荷的多少,取决于图中的控制栅极(Control gate)所被施加的电压,其控制了是向存储单元中冲入电荷还是使其释放电荷。而数据的表示,以所存储的电荷的电压是否超过一个特定的阈值Vth来表示。
1.对于NAND闪存的写入(编程),就是控制Control Gate去充电(对Control Gate施加电压),使得浮置栅极存储的电荷够多,超过阈值Vth,就表示0。
2.对于NAND Flash的擦除(Erase),就是对浮置栅极放电,低于阈值Vth,就表示1。

上图是一个8Gb 50nm的SLC颗粒内部架构,每个page有33,792个存储单元,每个存储单元代表1bit(SLC),所以每个page容量为4096Byte + 128Byte(SA区)。每个Block由64个page组成,所以每个Block容量为262,114Byte + 8192Byte (SA区)。Page是NAND Flash上最小的读取/写入(编程)单位(一个Page上的单元共享一根字符线Word line),Block是NAND Flash上最小的擦除单位。不同厂牌不同型号颗粒有不同的Page和Block容量。
如上所述,大家应该发现了,写入时,是在字符线上加压以写入数据,擦除时则是在位线上加压,因为一个块共享一条位线,这也是擦除的单位是块而不是页的原因,同理写入的最小单位是页的原因大家想必也已明白。
下图是个8Gb 50nm的SLC芯片,4KB+128字节的页大小,256KB+8KB的块大小。图中每个页内4096字节用于存储数据,另外128字节用于管理和ECC等。

NAND闪存还会利用多Plane设计以提升性能,请看下图:

多Plane设计的原理很简单,从上图中(Micron 25nm L73A)我们看到,一个晶片内部分成了2个Plane,而且2个Plane内的Block编号是单双交叉的,想象我们在操作时,也可以进行交叉操作(一单一双)来提升性能,根据测试,某些情况下性能可以比单Plane设计提高约50%以上。

上图向大家清楚说明了多Plane设计提升性能的原因。
在前面的SSD基本架构中,我们提及了交叉读写(Interleave)算法,这个算法的作用是什么呢?
前面所说的是针对单个晶片内部的多Plane进行操作,这里的Interleave指的是对单通道下多个晶片进行操作。打个比方,下图为64G的m4 SSD,颗粒为8颗粒L73A(每个颗粒内部2个Die封装),那么作为8通道的主控制器,每个通道里可以同时对2个Die(4个Plane)进行操作,达到提速的目的。

假设上面是单通道的操作模式,下图上面部分就是一个通道上有1个Die,下面部分则是一个通道上有2个Die。假定1次读取需要5个时钟周期,一个方块代表1个时钟周期,第五个时钟周期数据即可传输完成,2个Die的时候采用交错操作,第一个时钟周期时Die 1 发送完读取指令后在第二个时钟周期时,Die 2接着发送读取指令,这样就能接近成倍的提升性能,这也就是为什么m4的128G写入速度比64G写入速度快一倍的道理。

NAND闪存颗粒结构及工作原理的更多相关文章
- 储存技术(SLC、MLC、TLC和QLC的NAND闪存技术)和Optane Memory
1.转载:Optane Memory 2.构成SSD的主要IC有主控芯片和NAND闪存,SLC.MLC和TLC三者都是闪存的类型 需要说明的闪存的寿命指的是写入(擦写)的次数,不是读出的次数,因为读取 ...
- [转帖]国产闪存颗粒终于熬出头 紫光存储S100固态硬盘评测
国产闪存颗粒终于熬出头 紫光存储S100固态硬盘评测 https://www.cnbeta.com/articles/tech/830875.htm 全国产的 SSD 群联貌似是对岸的 不过不管怎么说 ...
- 3D NAND闪存是个啥?让国内如此疯狂
Repost: https://news.mydrivers.com/1/477/477251.htm 上个月底武汉新芯科技主导的国家级存储器产业基地正式动工,在大基金的支持下该项目将投资240亿美元 ...
- C51端口结构和工作原理(转)
一.P0端口的结构及工作原理 P0端口8位中的一位结构图见下图: 由上图可见,P0端口由锁存器.输入缓冲器.切换开关.一个与非门.一个与门及场效应管驱动电路构成.再看图的右边,标号为P0.X引脚的 ...
- 就算是3.0的U盘,写入速度10M及以下也是正常的,U盘用很差的闪存颗粒的话就算10Gbps的USB3.1也是很慢的。
作者:范德成链接:https://www.zhihu.com/question/56251636/answer/157021710来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- NAND闪存供过于求的情况今年会有所好转吗?
2018年,NAND闪存全年供过于求,价格一直下跌,导致西数.东芝等厂商毛利率大幅下滑.如今到了2019年,情况会有所好转吗? 近日,集邦科技旗下半导体研究中心DRAMeXchange发布调查报告指出 ...
- laravel基础课程---7、文件处理、闪存、cookie(cookie原理和使用场景)
laravel基础课程---7.文件处理.闪存.cookie(cookie原理和使用场景) 一.总结 一句话总结: 页面请求服务器的时候是把这个页面中所有的cookie都带上了的,cookie里面也存 ...
- 三星260亿美元的豪赌:想垄断DRAM和NAND闪存市场(规模经济让对手难以招架)
腾讯科技讯 据外媒报道,经过50年的发展,半导体市场仍然显得非常活跃,它在今年有望增长20%.随着高增长而来的是供应短缺,这就是DRAM和闪存价格为什么今年会上涨的原因. 三星在DRAM和闪存市场占有 ...
- 代码中理解CPU结构及工作原理
一.前言 从研究生开始到工作半年,陆续在接触MCU SOC这些以CPU为核心的控制器,但由于专业的原因一直对CPU的内部结构和工作原理一知半解.今天从一篇博客中打破一直以来的盲区.特此声明,本文设计思 ...
随机推荐
- SSDT表详解
SSDT(system service dispatch table) 系统服务分派表 SSPT(system service parameter table) 系统服务参数表 #pragma pac ...
- leetcode Binary Tree Level Order Traversal python
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = ...
- Linux学习之修改主机名
1.临时修改主机名 显示主机名: oracle@localhost:~$ hostname localhost 修改主机名: oracle@localhost:~$ sudo hostname orc ...
- js获取input file完整路径的方法
function getPath(){ //判断浏览器 var Sys = {}; var obj = document.getElementById("headImg"); ...
- 将Python代码嵌入C++程序进行编写
将Python代码嵌入C++程序进行编写的实例,python嵌入 把python嵌入的C++里面需要做一些步骤 安装python程序,这样才能使用python的头文件和库 在我们写的源文件中增加“Py ...
- 改进的延时函数Delay(使用MsgWaitForMultipleObjects等待消息或超时的到来)
解决上一节中延时函数占CPU使用率(达50%)的第二种方法是利用消息机制,通过API函数MsgWaitForMultipleObjects等待消息或超时的到来,从而避免使用循环检测使CPU占用率过高. ...
- Android手势源码浅析-----手势绘制(GestureOverlayView)
Android手势源码浅析-----手势绘制(GestureOverlayView)
- docker 容器开启ssh服务
ssh服务安装 安装ssh服务 #yum install openssh-server -y 安装passwd(修改密码需要) #yum install passwd -y 修改sshd_config ...
- 柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航)
柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航) 二.起航 本章节,柯南君将从几个层面,用官网例子讲解一下RabbitMQ的实操经典程序案例,让大家重 ...
- nodejs开发微信1——微信access-token和tickets的数据模型
/* jshint -W079 */ /* jshint -W020 */ "use strict"; //var _ = require("lodash"); ...