NAND_FLASH特性总结
NandFlash简介

NandFlash简介分类:Linux2013-03-06 14:34 2945人阅读评论(0) 收藏举报Flash Memory中文名字叫闪存,是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器。
从名字中就可以看出,非易失性就是不容易丢失,数据存储在这类设备中,即使断电了,也不会丢失,这类设备,除了Flash,还有其他比较常见的入硬盘,ROM等,与此相对的,易失性就是断电了,数据就丢失了,比如大家常用的内存,不论是以前的SDRAM,DDR SDRAM,还是现在的DDR2,DDR3等,都是断电后,数据就没了。
FLASH的分类:功能特性分为两种:一种是NOR型闪存,以编码应用为主,其功能多与运算相关;另一种为NAND型闪存,主要功能是存储资料,如数码相机中所用的记忆卡。
NOR FLASH和NAND FLASHNOR和NAND是现在市场上两种主要的非易失闪存技术。
Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM 一统天下的局面。
紧接着,1989年,东芝公司发表了NAND flash结结,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。
但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。
NOR的读速度比NAND稍快一些。
NAND的写入速度比NOR快很多。
NAND的4ms擦除速度远比NOR的5s快。
大多数写入操作需要先进行擦除操作。
NAND的擦除单元更小,相应的擦除电路更少在NOR Flash中, 所有的存储区域都保证是完好的, 同时也拥有相同的耐久性。
在硬模中专门制成了一个相当容量的扩展存储单元—他们被用来修补存储阵列中那些坏的部分,这也是为了保证生产出来的产品全部拥有完好的存储区域。
为了增加产量和降低生产成本, NAND Flash 器件中存在一些随机bad block 。
为了防止数据存储到这些坏的单元中, bad block 在IC烧录前必须先识别。
NORFLASH和NANDFLASH基本结构和特点

NORFLASH和NANDFLASH基本结构和特点⾮易失性存储元件有很多种,如EPROM、EEPROM、NOR FLASH和NAND FLASH,前两者已经基本被淘汰了,因此我仅关注后两者,本⽂对FLASH的基本存储单元结构、写操作、擦除操作和读操作的技术进⾏了简单介绍,对了NOR和NAND由存储结构决定的特性和应⽤场合的差异,对后续的硬件设计和驱动编程起到铺垫作⽤。
1 FLASH基本存储单元---浮栅场效应管 NOR FLASH和NAND FLASH都是使⽤浮栅场效应管(Floating Gate FET)作为基本存储单元来存储数据的,浮栅场效应管共有4个端电极,分别是为源极(Source)、漏极(Drain)、控制栅极(Control Gate)和浮置栅极(Floating Gate),前3个端电极的作⽤于普通MOSFET是⼀样的,区别仅在于浮栅,FLASH就是利⽤浮栅是否存储电荷来表征数字0’和'1’的,当向浮栅注⼊电荷后,D和S之间存在导电沟道,从D极读到'0’;当浮栅中没有电荷时,D和S间没有导电沟道,从D极读到'1’,原理⽰意图见图1.1[1],图1.2是⼀个实际浮栅场效应管的剖⾯图。
注:SLC可以简单认为是利⽤浮栅是否存储电荷来表征数字0’和'1’的,MLC则是要利⽤浮栅中电荷的多少来表征'00’,'01’,'10’和'11’的,TLC与MLC相同。
2 FLASH基本存储单元的操作---写/擦除/读 FLASH中,常⽤的向浮栅注⼊电荷的技术有两种---热电⼦注⼊(hot electron injection)和F-N隧道效应(Fowler Nordheim tunneling);从浮栅中挪⾛电荷的技术通常使⽤F-N隧道效应(Fowler Nordheim tunneling),基本原理见图2[2]。
写操作就是向浮栅注⼊电荷的过程,NOR FLASH通过热电⼦注⼊⽅式向浮栅注⼊电荷(这种⽅法的电荷注⼊效率较低,因此NOR FLASH的写速率较低),NAND FLASH则通过F-N隧道效应向浮栅注⼊电荷。
NAND Flash简介

NAND FLASH 的特殊性1.存在壞塊。
由於NAND生產工藝的原因,出廠晶片中會隨機出現壞塊。
壞塊在出廠時已經被初始化,並在特殊區域中標記為不可用,在使用過程中如果出現壞塊,也需要進行標記。
2.易出現位反轉。
NAND FLASH更易出現位反轉的現象,如果位反轉出現在關鍵檔上,會導致系統掛機。
所以在使用NAND FLASH的同時,建議使用ECC/EDC演算法確保可靠性。
3.存在Spare區。
正因為NAND FLASH有著上面的兩項特殊的地方,Spare區就扮演作存放壞塊標誌,ECC值以及晶片資訊和檔資訊的作用。
4.多維的空間結構。
NAND FLASH一般由block,page,sector等結構組成。
所以在有的檔系統中就衍生出各種分區資訊和磁區資訊等。
NAND FLASH 燒錄的複雜性1.處理壞塊。
由於NAND存在壞塊,導致位址空間不是連續的。
所以正確的處理壞塊是保證NAND FLASH燒錄後能夠正常運行的關鍵。
從大的方面來說,處理壞塊常用的最有效的主要為兩種方法:a.跳過;b.替代。
也有部分客戶為了使用方便,並沒有把壞塊處理的概念引入,直接(在壞塊上寫過,這種方法雖然簡單,但容易產生很多不穩定的因素。
目前我們公司在出廠的時候為每一種NAND FLASH配置標準的壞塊處理方式有Skip(跳過),ReservedSamsung的保留替代方案)和直接在壞塊上寫過(一般情況不建議客戶使用)2.計算ECC。
ECC/EDC演算法具有查錯,糾錯的功能,並且在NAND FLASH使用的大多數環境,需要帶有ECC演算法的。
目前廣泛使用的為Samsung的漢明碼(Hamming code),分為512Byte&256W兩種。
還有功能更為強大的4-bit ECC 和Computer ECC。
由於ECC演算法比較多,每個演算法個體又具有比較強的可變性(位元組織,分段計算等),而且在Spare區存放的位置也不能統一,所以無法做成統一的演算法。
NandFLash分析与总结

友善之臂K9F1208U0C PCB04-5位,12代表512M位,也就是64M字节熟悉一下NandFlash的硬件:1主要的引脚:I/O0 —I/O7:数据输入输出端,命令,数据,地址复用端口(LDATA0-LDATA7)R/B: 准备忙输出(RnB)CE:芯片使能(nFCE)CLE: 命令锁存使能(CLE)ALE:地址锁存使能(ALE)WE:写使能(nFWE)RE:读使能(nFRE)2Mini2440的一些引脚设置:和寄存器设置:(NCON(Advflash), GPG13(页大小), GPG14(地址周期), GPG15(总线宽度)–参考引脚配置)#define rGSTATUS0 (*(volatile unsigned *)0x560000ac) //External pin status3NandFlash启动时,代码小于4k与大于4k的情况:在三星的NAND Flash 中,当CPU从NAND Flash开始启动时,CPU会通过内部的硬件将NAND Flash开始的4KB数据复制到称为“Steppingstone”的4KB 的内部RAM中,起始地址为0,然后跳到地址0处开始执行。
这也就是我们为什么可以把小于4KB的程序烧到NAND Flash中,可以运行,而当大于4KB时,却没有办法运行,必须借助于NAND Flash的读操作,读取4KB以后的程序到内存中。
4NandFlash的存储结构以及读写原理:4.1NandFlash中的块,页,位宽:●NAND Flash的数据是以bit的方式保存在memory cell(存储单元)一般情况下,一个cell中只能存储一个bit。
这些cell以8个或者16个为单位,连成bit line ,形成所谓的byte(x8)/word(x16),这就是NAND Flash的位宽。
这些Line会再组成Pape(页)。
然后是每32个page形成一个Block,所以一个Block(块)大小是16k.Block是NAND Flash中最大的操作单元。
NAND FLSH 烧录

SP5000支持算法集成的坏块分区处理方式 外,还可以为客户定制其他的烧录方式(例 如三星平台、高通平台、博通平台、TD终端 、Linux系统、WinCE 烧录等)。算法本身 支持ecc512B(Hamming Code),并且支持生 成的ecc码在spare区任意连续地址map。算 法本身还支持NAND Flash Boot区的只读属 性处理,一般表现为Bad block Mark前的 OEM Reserved的处理。
NAND FLASH
1. NAND FLASH 特点 2. NAND FLASH 几种工艺模式 3. 烧录NAND FLASH 三种处理模式 4. 分区烧录的要求和操作 5. 新NAND FLASH算法运用
NAND FLASH 特点
NAND FLASH 是一种非易失的闪存技术,被 广泛用于U盘,MP3\MP4、GPS、PDA、 GSM、3G、手机、无线上网设备、笔记本等 多个领域。NAND FLASH是高数据存储密度 闪存的理想解决方案。
C.分区模式 (Partition)
分区模式是一种较为复杂的坏块处理方法,支持 多个文件组成的可烧录文件(*.img、*.mbn、*.bin等) 的块地址定位烧录。 SP5000支持的可烧录的分区模式映象文件是由 两部分构成的。第一部分在映象文件的第一个Block, 包含芯片的基本信息,分区表信息。第二部分是从 映象文件的第二个Block开始,是正在烧录到NAND Flash 的内容。其中第二部分是由多个文件构成的, 每个文件的起始信息在第一部分的分区表信息中定 义,由分区表控制其烧录,所以使用分区模式进行 烧录。
A) 跳过坏块 (Skip bad block)
这是一种最常用的坏块处理方法。它的实现 原理比较简单,顺序烧录,发现某一块为坏 块后,将相应数据烧录到下有个好块,如果 发现连续的坏块的话,也连续的跳过这些坏 块,并把数据烧录的下一个出现的好块中。 其原理如下图。
nand_flash读写工作原理_概述说明

nand flash读写工作原理概述说明1. 引言1.1 概述NAND Flash是一种非常常见和重要的存储设备,被广泛应用于各种电子产品中。
它的独特设计使得它成为一种高性能、低功耗、擦写可靠且具有较大容量的存储器解决方案。
由于其许多优点,NAND Flash在移动设备、个人电脑、服务器以及其他许多领域都有着广泛的应用。
1.2 文章结构本文将详细介绍NAND Flash的读写工作原理,并探讨其在存储领域中的优势与应用场景。
首先,我们将简要介绍NAND Flash的基本概念和特点,包括其结构和组成部分。
然后,我们将重点讲解NAND Flash进行读操作和写操作时所涉及的工作原理和步骤。
通过对这些原理的详细阐述,读者将能够全面了解NAND Flash如何实现数据的读取和写入。
除此之外,我们还将探讨NAND Flash相对于其他存储设备的优势,并介绍几个典型应用场景。
这些优势包括快速读写速度、低功耗、体积小且轻便、强大的耐久性以及较大的存储容量。
在应用场景方面,我们将重点介绍NAND Flash 在移动设备领域、物联网和服务器等各个行业中的广泛应用。
最后,我们将进行本文的小结,并对NAND Flash未来的发展进行展望。
通过全面了解NAND Flash的工作原理和优势,读者将能够更好地理解其在现代科技领域中的重要性,并对其未来发展趋势有一个清晰的认识。
1.3 目的本文的目的是通过对NAND Flash读写工作原理进行详细说明,使读者能够全面了解NAND Flash是如何实现数据读写操作的。
此外,我们还旨在向读者展示NAND Flash在存储领域中所具有的优势和广泛应用场景,使其意识到这一存储设备在现代科技产业中所扮演的重要角色。
希望通过本文,读者能够加深对NAND Flash技术的理解,并为相关领域或产品的研发与设计提供参考依据。
2. NAND Flash读写工作原理:2.1 NAND Flash简介:NAND Flash是一种非易失性存储器,采用了电子闪存技术。
norflash和nandflash闪存设备的概述

norflash和nandflash闪存设备的概述⼤多数router都是没有硬盘的,它使⽤闪存来完成相应的存储功能(包括存储固件以及系统数据),这种⾮易失性的闪存可以避免掉电丢失的问题。
我们常接触的闪存主要有两种:NOR flash 和 NAND flash。
如果闪存芯⽚和SOC直接连接并且⼜linux直接寻址,我们将它称作raw flash;如果在SOC和flash芯⽚间有多加⼀个外部控制芯⽚,我们称它作“FTL (Flash Translation Layer) flash”。
嵌⼊式系统中的Flash芯⽚并不需要单独的控制芯⽚,因此不是 “FTL”-设备⽽是 “raw flash”-设备。
存储空间是通过操作MTD设备 MTD (Memory Technology Device)加上特定的⽂件系统filesystems来完成的。
⼀般nor flash有4/8/16/32M,相对nand flash来说存储量较⼩,价格更贵,但是它的优点是不会坏块,nand flash⼀般都是32~256M或者更⼤,但是它容易坏块。
嵌⼊式设备中这由内核 Linux Kernel 来完成,有时候会单独由bootloader来完成存储分区的布局;你只需要定义, “kernel分区由偏移量x起⾄偏移量y⽌”。
这样做的优点是, 我们之后能直接通过分区名来定位某个分区,⽽不⽤指定数据的精确起始点。
如果使⽤的是raw flash,openwrt将会将这个寻址空间看作MTDopenwrt将会将这个寻址空间看作MTD,我们可以通过在bootload或者kernel中对这块存储空间进⾏分区的划分,我们通常描述为"partitionkernel starts at offsetx and ends at offsety". ⼀般我们都会对每个分区进⾏命名,⽅便更好的操作。
nand flash的特性:操作最⼩单元为页(Page)/块(Block)。
FLASH芯片种类与区别

FLASH芯片种类与区别1. NOR FlashNOR Flash是一种并行存储器,其结构类似于传统的ROM。
它具有快速读取速度和高可靠性,适合于存储大量的程序代码和数据。
NOR Flash可以被直接访问,支持随机读取和编程操作。
但是,NOR Flash的写入速度较慢且价格较高,逐渐被NAND Flash所替代。
2. NAND FlashNAND Flash是一种序列存储器,其结构是按行(Page)和块(Block)组织的。
NAND Flash拥有高密度、低成本和快速写入速度的特点,广泛应用于存储容量较大的数据。
它主要用于存储媒体文件、大型应用程序和操作系统。
然而,相比NOR Flash,NAND Flash的读取速度较慢且对于随机读取操作性能较差。
3. SLC FlashSLC(Single Level Cell)Flash是一种基于单元内只存储一个数据位的闪存技术。
它具有较长的寿命、较高的耐用性和较低的读取和写入延迟。
SLC Flash的价格相对较高,但在一些对可靠性和性能要求较高的应用中得到广泛使用,如军事设备、嵌入式系统等。
4. MLC FlashMLC(Multi Level Cell)Flash是一种基于单元内存储多个数据位的闪存技术。
它将SLC Flash的寿命和性能进行了牺牲,以更高的存储密度为代价获得更低的操作成本。
MLC Flash相对于SLC Flash来说容易出现位翻转和写入耗损等问题,但在普通电子设备中广泛应用,如智能手机、平板电脑等。
5. TLC FlashTLC(Triple Level Cell)Flash是一种比MLC Flash更高密度的闪存技术,它能够存储更多的数据位于单个存储单元内。
TLC Flash的存储密度非常高,价格更低,但在性能和寿命方面受到更大的限制。
由于TLC Flash存储单元内的电荷水平更复杂,因此更容易发生数据的位移和错误。
6. 3D V-NAND Flash3D V-NAND Flash是一种新型闪存技术,它采用垂直堆积的结构,通过将存储单元堆叠在一起来提高存储密度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NAND FLASH 操作总结
目前NAND FLASH 按照其物理结构划分,主要有SLC ,MCL , AGN 等类型,AND FLASH 的引脚,时序特殊,单独讨论;
本文档只是在匆匆浏览各种FLASH 的DA TA SHEET 上得出的一点心得,可能不全面,或者有些细节未能注意到;本文档也只讨论我们常用的FLASH 操作方法,和对加速有帮助的操作方法;
FLASH 主要有以下几种容量:
16MB 、32MB 、64MB 、128MB 、256MB 、512MB 等容量;
FLASH 对于读写,编程操作的过程详解;(我自己推理得到的,可能厂家的做法不是这样的,但是逻辑应该错不了) 每片FLASH 都有Data Register (有的文档取名为:Page Register ), 一般情况下,Data Register 的容量至少等于一个PAGE 的容量,如果是多BANK 的FLASH ,每个Bank 最少有一个Data Register 与只对应,我们可以在逻辑上认为每个BANK 是一个独立的物理设备;其引脚是公用的,但是其操作(与引脚无关的操作)是可以并行的;
Random Data output
)的操作原理了;随机读(Random Data output ):如果当前需要读取的数据与上一次读取的数据在同一个PAGE 内,那么本次操作使用随机读命令可以节省时间的一种方法;因为要操作的PAGE 的数据已经全部暂存在Data Register 里面,可以直接从Data Register 里面读取数据;过程详解如下:
根据这二个过程可以得出,随机读命令在时间效率上,比一般读命令少一个“等RB 信号”过程,其它过程的时间效率几乎一样;少了“等RB 信号”过程大约可以节省25us(均值)的时间;只有支持大PAGE (指一个PAGE 包含几个SECTOR )的
FLASH 才支持随机读操作;一般一个大PAGE 包含四个SCTOR ,则可以使用三次随机读的机会,一共可以节省75us 的时间;如果使用普通读命令分四次读,每读一个字节需要66ns 的时间,每次等待RB 需要25us 的时间,每个PAGE 共有2112个字节;则总的耗时为2112*66ns+25us*4=239.392us (忽略发命令和发地址的时间);如果也是分四次读,采用一次普通读,三次随机读,则耗时为2112*66ns+25us=164.392 us ;
写及编程命令的处理过程列表:
分类:。