NANDFlash原理

您所在的位置:网站首页 flash制作原理 NANDFlash原理

NANDFlash原理

2023-08-14 12:00| 来源: 网络整理| 查看: 265

存储器按照存储介质来划分,可以分为半导体存储器和磁表面存储器。半导体存储器是由半导体器件组成的,主要包括随机存储器(RAM:Random Access Memory)、只读存储器(ROM:Read Only Memory)和高速缓存(Cache):

随机存储器RAM:包括静态随机存储器SRAM(Static RAM)和动态随机存储器DRAM(Dynamic RAM)。SRAM不需要刷新电路就可以保存它内部存储的数据,相反,DRAM则要求每隔一段时间就要刷新充电一次,否则,内部的数据就会丢失,因此,SRAM具有较高的性能。但是,SRAM存在一个明显的缺点——集成度较低,这意味着,在设计产品时,在相同的容量下,DRAM内存产品体积较小,而SRAM却具有较大的体积,而且功耗较大。

SRAMS(Static RAM,静态随机存储器),不需要刷新电路,数据不会丢失,而且,一般不是行列地址复用的。但是他集成度比较低,不适合做容量大的内存,一般是用在处理器的缓存里面。像S3C2440的ARM9处理器里面就有4K的SRAM用来做CPU启动时用的。SRAM其实是一种非常重要的存储器,它的用途广泛。SRAM的速度非常快,在快速读取和刷新时能够保持数据完整性。SRAM内部采用的是双稳态电路的形式来存储数据。所以SRAM的电路结构非常复杂。制造相同容量的SRAM比DRAM的成本高的多。正因为如此,才使其发展受到了限制。因此目前SRAM基本上只用于CPU内部的一级缓存以及内置的二级缓存。仅有少量的网络服务器以及路由器上能够使用SRAM。 在这里插入图片描述

DRAM:Dynamic RAM,动态随机存取存储器,每隔一段时间就要刷新一次数据,才能保存数据。而且是行列地址复用的,许多都有页模式。SDRAM是其中的一种。 在这里插入图片描述 SDRAM(Synchronous DRAM,同步动态随机存储器),即数据的读写需要时钟来同步。其存储单元不是按线性排列的,是分页的。 DRAM和SDRAM由于实现工艺问题,容量较SRAM大。但是读写速度不如SRAM。 一般的嵌入式产品里面的内存都是用的SDRAM。电脑的内存也是用的这种RAM,叫DDR SDRAM,其集成度非常高,因为是动态的,所以必须有刷新电路,每隔一段时间必须得刷新数据。

只读存储器ROM:对于只读存储器ROM而言,在制造的时候,信息(数据或程序)就会被永久保存到ROM中,一般只能读出,不能写入,即使发生断电,ROM中的信息也不会丢失。ROM一般用于存放计算机的基础程序和数据,比如,BIOS就是一个永久保存在ROM中的一个软件,是操作系统输入输出管理系统的一部分,包含了自检程序、基本启动程序和基本的硬件驱动程序等,主要用来负责机器的启动和系统中重要硬件的控制和驱动,并为高层软件提供基层调用。

EPROM  EPROM(Erasable Programmable ROM,可擦除可编程ROM)芯片可重复擦除和写入,解决了PROM芯片只能写入一次的弊端。 EPROM芯片有一个很明显的特征,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以看到其内部的集成电路,紫外线透过该孔照射内部芯片就可以擦除其内的数据,完成芯片擦除的操作要用到EPROM擦除器。 EPROM内资料的写入要用专用的编程器,并且往芯片中写内容时必须要加一定的编程电压(VPP=12—24V,随不同的芯片型号而定)。EPROM的型号是以27开头的,如27C020(8*256K)是一片2M Bits容量的EPROM芯片。EPROM芯片在写入资料后,还要以不透光的贴纸或胶布把窗口封住,以免受到周围的紫外线照射而使资料受损。 EPROM芯片在空白状态时(用紫外光线擦除后),内部的每一个存储单元的数据都为1(高电平)。

EEPROMEEPROM (Electrically Erasable Programmable ROM,电可擦可编程只读存储器),一种掉电后数据不丢失的存储芯片。EEPROM是可用户更改的只读存储器,其可通过高于普通电压的作用来擦除和重编程(重写),即可以在电脑上或专用设备上擦除已有信息并重新编程。不像EPROM芯片,EEPROM不需从计算机中取出即可修改,是现在用得比较多的存储器,比如24CXX系列的EEPROM。 在一个EEPROM中,当计算机在使用的时候是可频繁地重编程的,EEPROM的寿命是一个很重要的设计考虑参数。 EEPROM的一种特殊形式是闪存,其应用通常是个人电脑中的电压来擦写和重编程。 EEPROM一般用于即插即用(Plug & Play),常用在接口卡中,用来存放硬件设置数据,也常用在防止软件非法拷贝的"硬件锁"上面。

闪存(Flash) 闪存(FLASH)是一种非易失性存储器,即断电数据也不会丢失。因为闪存不像RAM(随机存取存储器)一样以字节为单位改写数据,因此不能取代RAM。    闪存卡(Flash Card)是利用闪存(Flash Memory)技术达到存储电子信息的存储器,一般应用在数码相机,掌上电脑,MP3等小型数码产品中作为存储介质,所以样子小巧,有如一张卡片,所以称之为闪存卡。根据不同的生产厂商和不同的应用,闪存卡大概有U盘、SmartMedia(SM卡)、Compact Flash(CF卡)、MultiMediaCard(MMC卡)、Secure Digital(SD卡)、Memory Stick(记忆棒)、XD-Picture Card(XD卡)和微硬盘(MICRODRIVE)。这些闪存卡虽然外观、规格不同,但是技术原理都是相同的。

高速缓存(Cache):是介于内存与CPU之间的一级存储器,速度接近于CPU,一般而言它不会采用DRAM技术,而是使用昂贵但较快速的SRAM技术。

闪存通常包括NOR和NAND两种类型。NOR闪存是由Intel公司开发的,是一种随机访问设备,具有专用的地址和数据线(和SRAM类似),以字节的方式进行读写,允许对存储器当中的任何位置进行访问,这使得NOR闪存是传统的只读存储器(ROM)的一种很好的替代方案,比如计算机的BIOS芯片。而NAND闪存则没有专用的地址线,不能直接寻址,是通过一个间接的、类似I/O的接口来发送命令和地址来进行控制的,这就意味着NAND闪存只能够以页的方式进行访问。相对于NOR闪存而言,NAND闪存只需要更少的逻辑门就可以存储相同数量的位,因此,NAND闪存比NOR闪存体积更小,存储密度更大。就读取速度而言,NOR闪存要比NAND闪存稍快一些;就写入速度而言,NAND闪存要比NOR闪存快许多。NAND闪存执行擦除操作比较简单,只需要擦除整个块即可。NOR闪存进行擦除时,需要把所有的位都写为1。NOR闪存虽然具备更快、更简单的访问过程,但是,存储能力比较低,因此,比较适合用来进行程序的存储。NAND闪存可以提供极高的单元存储密度(当前单个芯片具备了32GB的存储能力),比较适合存储大量的数据,并且写入和擦除的速度也很快;此外,NAND闪存的读写操作单元通常是一个扇区的大小(即512KB),这使得NAND闪存和磁盘的行为非常类似。

闪存芯片是由一组数据存储单元阵列组成的,包含许多个块,每个块又包含许多个―页(通常是32 个页),一个页通常是512 字节,因为闪存被开发出来时的最初目的就是为了取代磁盘,因此,一个闪存页的大小和磁盘扇区大小保持了一致。一个页不仅包括数据区域(通常是512 字节),还包含了一个额外的、小的备用区域(通常是16 字节),或者称为―带外数据(OOB:Out of Band)区域,它是用来存储一系列的管理信息,包括:(1)错误纠正码;(2)和存储在数据区域中的数据对应的逻辑页面编号;(3)页面状态。在写数据的同时,就可以顺便把管理信息写入这些备用区域,额外开销有时候可以忽略不计。每个闪存页的状态可以是以下三种状态中的一种:(1)有效;(2)无效;(3)自由/擦除。当没有数据被写入一个页时,这个页就处于―擦除‖状态,这时,页中的所有位都是1。一个写操作只能针对处于擦除状态的页,然后把这个页的状态改变为―有效。异地更新会导致一些页面不再有效,它们被称为―无效页。 闪存的一个块通常包含32个页,因此,一个块的大小通常16KB,一般称这种闪存为―小块NAND闪存‖。但是,一些高端应用需要更快的写和擦除速度,因此,闪存生产商开始生产―大块NAND闪存,这类闪存中,一个块包含了64个页,每个页2212字节,因此,一个块的大小就是128KB。

NAND Flash作为一种比较实用的固态硬盘存储介质,有自己的一些物理特性,需要有基本的管理技术才能使用,对设计者来说,挑战主要在下面几点:

1.需要先擦除才能写入。 2.损耗机制,有耐久度限制。 3.读写时候造成的干扰会造成数据出错。 4.数据的保存期。 5.对初始和运行时候的坏块管理。

只有至少满足这些基本的管理技术,才能让NAND Flash成为一款可以使用的固态存储介质。(这里还没有谈到任何关于性能的地方,因为那是这些基本条件满足后的事。)

当满足了上面的5点后,才该谈到稳定,性能,耐久度,影响这些的5大因素为:

1.SLC和MLC 2.平衡磨损算法 3.透过坏块管理技术确保数据的完整性。 4.使用错误检测和校正技术 5.写入放大

只有满足了这些条件,才能得到一款理想中的完美的固态硬盘。

Flash全名叫做Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Volatile Memory Device)。关于什么是非易失性/易失性,从名字中就可以看出,非易失性就是不容易丢失,数据存储在这类设备中,即使断电了,也不会丢失,这类设备,除了Flash,还有其他比较常见的如硬盘,ROM等,与此相对的,易失性就是断电了,数据就丢失了,比如大家常用的内存,不论是以前的SDRAM,DDR SDRAM,还是现在的DDR2,DDR3等,都是断电后,数据就没了。

Flash的内部存储是金属-氧化层-半导体-场效晶体管(MOSFET),里面有个悬浮门(Floating Gate),是真正存储数据的单元。 在这里插入图片描述

数据在Flash内存单元中是以电荷(electrical charge) 形式存储的。存储电荷的多少,取决于图中的控制门(Control gate)所被施加的电压,其控制了是向存储单元中冲入电荷还是使其释放电荷。而数据的表示,以所存储的电荷的电压是否超过一个特定的阈值Vth 来表示。

1.对于NAND Flash的写入(编程),就是控制Control Gate去充电(对Control Gate加压),使得悬浮门存储的电荷够多,超过阈值Vth,就表示0。

2.对于NAND Flash的擦除(Erase),就是对悬浮门放电,低于阀值Vth,就表示1。

NAND Flash的架构: 在这里插入图片描述

如上图所示,这是一个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),块是最小的擦除单位(。不同厂牌不同型号颗粒有不同的page和block大小。

下图是个8Gb 50nm的SLC颗粒。 在这里插入图片描述

4KB的页尺寸,256KB的块尺寸。图中4096字节用于存储数据,另外128字节用来做管理和ECC用。

SLC 和 MLC 区别:

SLC主要针对军工,企业级应用,有着高速写入,低出错率,长耐久度特性。 MLC主要针对消费级应用,有着2倍容量于SLC,低成本,适合USB闪盘,手机,数码相机等储存卡。如今也被用于消费级固态硬盘上。 在这里插入图片描述 由上图可以看到,MLC和SLC虽然使用相同的电压值,但是电压之间的阀值被分成了4份,直接影响了性能和稳定性。主要有下面几点:

1.相邻的存储电荷的悬浮门间会互相干扰,造成悬浮门里的电荷不稳定出现bit错误,MLC由于阀值相比SLC更接近,造成出错几率更大。 2.MLC读写性能降低,写入更是降低50%以上,因为需要确认充入电荷的量,这需要更精确的处理。SLC只有0和1,也就是有和没有,而MLC会有00,01,10,11 4个状态,在充入电荷后还要去判断是哪个状态,自然就慢了。 3.因为上面说的,造成额外的读写压力,所以功耗明显增大。 4.因为额外的读写压力,造成闪存的写入耐久度和数据保存期受到影响。

eMLC和eSLC的耐久度提升是用牺牲了数据保存期和增加读写时间换来的。(也就是性能会更差点)

挑战1:需要先擦除才能写入。 在这里插入图片描述

当今的NAND Flash可以读/写一个page,但是必须以block大小擦除。

擦除操作就是让块中所有的bit变为1,从一个干净的“已擦除”状态的block重新开始。当里面的页变为0后,只有擦除整个块才能让这个页变为1。为了尽量减少擦除的次数,成熟的块管理技术必不可少。

挑战2:读/写干扰。

NAND Flash的电荷非常不稳定,在读/写中很容易对邻近的单元造成干扰,干扰后会让附近单元的电荷脱离实际的逻辑数值,造成bit出错,因为阀值接近的关系,MLC相对SLC来说更容易受到干扰。 在这里插入图片描述

读取干扰 在这里插入图片描述 写入干扰

读取干扰指的是在读取某个page时,邻近的bit会受到升高电压的干扰,造成bit出错。写入干扰指的是,某个page在写入时,邻近bit的电压也被升高了,造成bit出错。相对写入干扰来说,读取干扰明显小的多。在读/写干扰中,可能造成某些bit被改变,结果造成数据出错。所以需要在返回数据给主机前,用ECC/EDC算法来纠正这些bit的错误。随着闪存工艺的提升,同样大小的晶片上被封装入更多的单元,造成干扰越来越厉害,所以需要更强大的ECC/EDC来纠正bit。

挑战3:数据保存期限

数据保存期指的是当完全断电后,数据能在NAND Flash里保存多久。NAND单元必须保证一个稳定的电压水平,来保证数据是有效的。典型的SLC一般为10年。电荷从悬浮门里漏出,我们叫做电子迁移,当随着时间的流逝,电荷泄漏到一定程度,改变了NAND单元里悬浮门的电压对应的逻辑值,这样就造成bit出错。 在这里插入图片描述

数据保存期会随着擦写次数的增加而明显降低,而且从上面的原理中看出,MLC的数据保存期明显会比SLC少。(更容易被干扰)

挑战4: 坏块

NAND Flash里有2种坏块类型:

1,出厂坏块:由于为了保证产量和控制成本,出厂的NAND Flash某些就会有坏块。厂商保证SLC出厂坏块低于2%,MLC出厂坏块低于5%。 2,积累坏块:在多次的写入/擦除循环中,某些NAND单元的电荷电压被永久性的改变了,那就意味着包含这个NAND单元不可用了。

所以固态硬盘需要有坏块管理才能使用,主控制器用坏块表来映射出厂坏块和积累坏块到坏块区内,出厂时,颗粒的第一个块Block 0厂商会保证是可用的(至少ECC后可用)。

挑战5:擦写次数限制

造成NAND Flash有擦写次数限制的主要有2个因素:

1,电荷被困在氧化层,不能进入悬浮门。 2,氧化层结构被破坏。 在这里插入图片描述

如图,一旦氧化层损坏到达一定程度,造成电荷越来越难在P-substrate和悬浮门之间交流。电荷被困在氧化层造成悬浮门中的电压到不了阀值,所以说这个NAND单元就要被放入坏块区了。

当前主流SLC的P/E为10万次,50nm MLC为1万次,3xnm的MLC为5000次。到了这个数字并不意味着就不能用了,这个只是代表平均寿命,也就是说到了这个次数后,坏块就会开始大量增加了。

随着工艺提升,ECC的要求越来越高,50nm的SLC颗粒,三星规定1bit ECC的就够了,而50nm MLC要4bit ECC,到了3xnm要求达到24bit ECC。

附; ECC

影响NAND Flash稳定性和耐久度的一个主要因素就是ECC能力,目前最常用的三种算法是:

1.Reed-Solomon。2.Hamming。3.BCH (Bose, Ray-Chaudhuri, Hocquenghem)

不管何种ECC算法,何种主控,检测错误的方式是相同的: 在这里插入图片描述

1.每当一个page写入NAND Flash,数据会通过ECC引擎,创造独特的ECC签名。 2.数据和对应的ECC签名存都存放在NAND Flash里,数据放在数据区,ECC签名放在 SA区。 3.当需要读取数据时,数据和ECC签名一起被送往主控制器,此时新的ECC签名被生成。 4.此时主控把2个签名对照,如果签名相同,说明数据没有错误,数据就会被送往主机。如果签名不同,数据就会先放在主控里,而不是直接送往主机。

某些主控会把改正后的数据再次写回闪存,另一些则不会,因为谁也不知道下次读取会不会再出错。

ECC的能力直接关系到NAND Flash的耐久度,数据保存期。当NAND Flash的P/E数到了之后,错误数会越来越多,ECC弱的直接就报坏块并标记退休,如果ECC能力足够强,就能挖掘出Flash所有潜力。



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3