NAND和NOR Flash 完全学习笔记(基础篇)
本文要点:1. NAND FLASH与NOR FLASH 的技术对比;2. 最详细的存储单元对比详解;3. NAND FLASH与NOR FLASH 的最新市场份额及应用;4. NAND FLASH与NOR FLASH 的基础原理分析。
目前,NOR FLASH和NAND FLASH是市场上主要的非易失性闪存技术,但是据我了解,还是有很多工程师分不清NAND FLASH与NOR FLASH。首先,来一个直观的图片。
然后,我从权威的网站上找到了最新的NAND FLASH收益以及市场份额表,根据最新的表单,我们可以知道谁是这个市场的老大,做的比较好一些,一方面让工程师时刻知道市场的动向,另一方面可以在之后的器件选型等方面提供重要的参考。
一般来说,快闪记忆体可分为两大规格,一个是NAND, 一个是NOR。简单来说,NAND一般以存储数据为主,晶片容量大,容量可以达到2Gb甚至更大,NAND的读取是以一次读取一块的形式来进行的,通常一次读取512个字节,采用这种技术的Flash比较廉价;NOR一般以存储程序代码为主,又称为Code Flash,所以可让微处理器直接读取,但晶片容量较低,主流容量512Mb,NOR采用内存的随机读取技术。如果利用闪存只是用来存储少量的代码,这是NOR Flash更合适一些。用户不能直接运行NAND Flash上的代码,因此很多使用NAND Flash的Demo Board除了使用NAND Flash以外,还加上一块小的NOR Flash来运行启动代码。通过下表我比较了几乎所有关于NAND FLASH以及NOR FLASH的全部重要特性。
然后,对于Flash三个重要概念的理解:
1. Flash属于非易失性存储设备,内部存储单元是MOSFET,里面有一个悬浮门(Floating Gate), 是存储数据的单元。与此对应的,易失性存储设备就是断电后,数据就丢失了,例如常用的内存,不论是之前的SDRAM,还是现在通用的DDR3以及DDR4,都是断电后,数据就没有了。
2. SLC和MLC的区别:NAND FLASH的内存单元可以分为两类,存储一位数据,也就是SLC(Single Level Cell); 对应的,存储多位数据的就是MLC(Multi Level Cell),比如两位,或者四位。
3. 大多数的写入操作需要先进行擦除操作。
到此,对于NAND FLASH以及NOR FLASH 我们有了一个基本的认识。我对知识的学习一个重要的方法是对比,通过图表的对比更能看出各自的差异化,从而达到加深知识的效果,因此我做了下图来比较目前还算所有存储器的最小单元结构图,便于学习与理解。
原理分析 要说明此原理,需要一些基本的量子物理学,我认为以下这种论述是比较适合理解的,也很有趣:经典物理学认为,物体越过势垒,有一定的阈值能量;所以,粒子能量小于此阈值能量的不能越过,能量大于此阈值能量的可以越过。举例来说,我们骑自行车过坡道,如果先用力骑,因此有一定初入能量,坡道不高的话,即使不蹬自行车也可以依靠惯性过去;但是,如果坡道很高,不蹬自行车,可能车到了一半,可能就退回来了。而量子力学则认为,即便是粒子能量小于阈值能量,同时很多粒子冲向势垒,虽然也有一部分粒子会反弹,但是还会有一些粒子可以越过去,好像有一个隧道,因此称为量子隧道。
对比二者的差异发现,宏观上的确定性在微观上常常就具有不确定性。因为隧穿几率极小,因此通常情况下,隧道效应并不影响经典的宏观效应,但是某些特殊条件下也会出现。当微电子器件进一步微型化是必须要考虑量子效应。NAND FLASH的擦写均是基于隧道效应,电流穿过浮置栅极与硅基层之间的绝缘层,对浮置栅极进行充电(写数据)或放电(擦除数据);另外,NOR FLASH擦除数据也是基于隧道效应(电流从浮置栅极到硅基层),但在写入数据时则是采用热电子注入方式(电流从浮置栅极到源极)。对于FLASH闪存单元来说,它是为三端器件,与场效应管有相同的名称:源极、漏极和栅极。栅极与硅衬底之间有二氧化硅绝缘层,用来保护浮置栅极中的电荷不会泄漏。采用这种结构,使得存储单元具有了电荷保持能力。举个栗子,就像是装进瓶子里的水,当你倒入水后,水位就一直保持在那里,除非你再次倒入或倒出,所以闪存具有记忆能力。
绝缘浮置栅极是NAND存储数据的核心
什么是NAND Flash位翻转?如何解决其带来的启动异常等问题?
位翻转特性。
大家是否遇到过设备运行一段时间后无法开机,程序运行异常,但重烧固件后问题又神奇消失了的情况。如果你使用的存储是NAND Flash,那么或许位翻转现象是你需要关注的重点问题。
NAND Flash工作原理与数据绝缘储存有关,当需要写入数据时施加电压会形成电场,使电子能够穿越绝缘体进入存储单元完成数据写入。当需要删除存储单元的数据时同时也是需要施加电压的,以引导电子穿越绝缘层使其离开存储单元。
然而问题的关键在于什么是位翻转?位翻转是指在NAND Flash存储单元中由于长期使用电压变化、物理效应等因素,存储单元内的电子状态发生意外变化的现象。举个例子,本应储存为0的状态可能被意外变成了1或者反之,这种变化可能导致数据的读取错误,进而引发设备异常运行、启动问题等。
位翻转的出现通常源于漂移效应、频繁对某一区域的读写操作以及存储单元寿命耗尽等原因。要解决这个问题一种很常见的方法是引入ECC校验机制,这个机制能够检验所读取数据的正确性并在一定范围内纠正错误。
为了应对NAND Flash位翻转可能带来启动异常等问题,致远电子M3352核心板提供了有力的解决方案。通过在U-Boot支持8位ECC校验算法,它可以纠正小于8位的位翻转的问题。而对于超过8位的数据位翻转,系统将从备份分区启动并恢复坏区,从而保障系统不会因NAND Flash位翻转而导致启动问题。
相关问答
如何编写 nandflash 驱动?实际上与其他嵌入式系统一样。给没有操作系统的手机写驱动:查看datasheet,一点一点写吧;有操作系统的,先学习操作系统提供的API接口,再学习操作系统提供给...
nand flash 详解?Nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速...
平板电脑怎样可以把默认储存 nandflash 改为外置储存?首先,升级ipados13,然后再空间里把应用都重新装一遍,可以节约15%左右的app自身空间(ios/ipados13自带的功能),然后你就可以用外置u盘了,这个时候看看万...
nand flash 是什么颗粒?TLC是闪存一种类型,全称为Triple-LevelCellTLC芯片技术是MLC和TLC技术的延伸,最早期NANDFlash技术架构是SLC(Single-LevelCell),原理是在1个...
如何编写Linux下 NandFlash 驱动?实现ubifs相对简单,框架都搭好了,根据nandflash控制器写mtd接口就好了。主要关注pagelayout,硬ECC能力是否与nand要求匹配,ECC最好有纠错比特数预警,以实...
你好U盘因强制拔出后电脑无法识别变成了驱动器 NAND Flash USB device怎么办呀?1、在确保没问题的USB接口上,插上U盘,听一下音箱有没有叮咚一声的响声。如果什么声音也没有,说明电脑完全没有识别到有USB设备插入,那可能是U盘坏了。2、如...
ssd nand 区别?SSD指的固态硬盘,固态硬盘上存储信息的方式是采用Flash芯片,Flash芯片主要分为NANDFlash和NorFlash。简单来说,SSD硬盘是一个由若干个NANDFlash或者NorFl...
用STM32挂接的最大 NandFlash 到多少?看下STM32f103的FSMC寻址地址是从0x70000000到0x8FFFFFFF就是8*64M的nandflashbank2,bank3还支持SRAM看下STM32f103的FS...
emmc与 nand flash 哪个好?1、NANDFlash是一种存储介质,要在上面读写数据,外部要加主控和电路设计。2、eMMC是NANDflash+主控IC,对外的接口协议与SD、TF卡类似;对厂家而言简化了电...
nand 闪存是什么颗粒?NandFlash闪存颗粒中根据存储密度的差异可分为SLC、MLC、TLC和QLC四种,按照存储方式划分,NAND闪存已经发展了四代:第一代SLC(Single-LevelCell)每单元可.....