您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > NandFlash及相关技术说明.
NANDFlash及相关技术说明Contents2.关键技术1.综述3.技术展望4.Q&A综述什么是NANDFlashNANDFlash是一种非易失性存储设备(Non-volatileMemoryDevice),与其类似的是NORFlash。NANDFlash种类NANDFlash有两种:SLC(SingleLevelCell)和MLC(MultiLevelCell)。SLC:单个存储单元,只存储一位数据,表示成1或0。单个存储单元中内部所存储电荷的电压和某个特定的阈值电压V相比,如果大于此V值,就是表示1,反之,就表示0。综述NANDFlash种类MLC:与SLC相对应,就是单个存储单元,可以存储多个位,比如2位,4位等。其实现机制就是通过控制内部电荷的多少,分成多个阈值,通过控制里面的电荷多少,而达到我们所需要的存储成不同的数据。NANDFlash和NORFlash写入数据的过程,其实是放电的过程,即由10的过程。所谓的擦除,也即充电的过程,即由01的过程。正因为NANDFlash采用了块擦除方式即同一物理块同时充电的操作,提升了擦除的效率。CompanyLogo综述NANDFlash种类优缺点比较:速度:SLC芯片理论速度为MLC的3倍左右。MLC芯片理论速度只能达到2MB/s左右。(MLC芯片理论速度只有2MB/s左右,市面上存储卡性能普遍高于此值,为什么?)寿命:SLC芯片单个单元可以写10万次左右。MLC芯片单个单元可以写10万次左右。综述NANDFlash种类优缺点比较:成本:SLC芯片相对价格较高。MLC芯片相对价格较低。容量:SLC芯片容量偏小—与成本相关联。MLC芯片容量可以支持大容量的市场需求。所以,虽然MLC的各项指标都落后于SLC闪存,但是MLC在架构上取胜SLC,MLC肯定是今后的发展方向。综述NANDFlash结构综述NANDFlash结构一个NANDFlash由很多个块(Block)组成;每个块由很多页(page)组成;每一个页,分为数据区和空闲区域(sparearea)/冗余区域(redundantarea),Linux内核中,称之为OOB(OutOfBand)(为什么);一个NANDFlash由多个Plane组成(有什么作用?)综述NANDFlash管脚信号为何需要ALE和CLE?综述NANDFlash优缺点优点:NAND的写入速度快;NAND的擦除速度快(1Mb擦除仅需700us);NAND支持大容量存储(4GB、8GBor);NAND成本低。综述NANDFlash优缺点缺点:写入前需要擦除;擦除次数有限(MLC10万次左右?);NAND存在位反转的问题;NAND存在坏块,并且是随机的,并且在使用中也会产生坏块。关键技术NANDFlash关键技术FTL(FlashTranslationLayer)FTL实质上是一个LBAPBA的过程,目的是为了写入数据时异地更新,提高写入数据效率,保证使用寿命,并且在LBAPBA的过程中,会屏蔽坏块,使得对于HOST端来说,看到的始终是连续的一块地址空间。关键技术NANDFlash关键技术典型FTL(基于Page映射)(drivers/mtd/ftl.c)关键技术NANDFlash关键技术典型FTL缺点:基于页映射,消耗SRAM空间,例如:目前选用NAND有4096*256页,单页映射需要4字节空间,共需4MBSARM空间。关键技术NANDFlash关键技术典型FTL(基于Block映射)关键技术NANDFlash关键技术典型FTL缺点:频繁操作统一空间造成Merge次数过多,效率低下;映射粗放,容易造成碎片增多。关键技术NANDFlash关键技术典型NFTL(基于Hybrid映射)(drivers/mtd/nftlcore.c&nftlmount.c)关键技术NANDFlash关键技术典型NFTL(基于Hybrid映射)(drivers/mtd/nftlcore.c&nftlmount.c)关键技术NANDFlash关键技术典型NFTL缺点:写入数据和读取数据效率与算法密切相关;致命问题:目前Flash对“随机编程”支持有限。关键技术NANDFlash关键技术基于Log的混合映射关键技术NANDFlash关键技术ECC(ErrorCheckingandCorrection)纠错硬件实现,主要有两种算法:汉明码和BCH;ECC数据存储在Spare区。磨损均衡算法基于确定的磨损均衡算法记录每块擦除的次数,在分配新块写入数据时,选择擦除次数最小的块。该算法优点是能够很好的控制每块的写入次数,达到较好的平衡。缺点是对于冷数据存储的块,很难进行有效的均衡处理关键技术NANDFlash关键技术磨损均衡算法基于随机的磨损均衡算法随机分配块作为新数据写入的块。该算法优点是简单。缺点是磨损效果随机。基于混合的磨损均衡算法记录每块的擦除次数,并且采取一定的策略,对冷数据进行适当的处理,将冷数据所在块释放为空闲块。技术展望技术展望片选无关(CEdon’t-care)技术由于某些外部应用的频率比较低,而NANDFlash内部操作速度比较快,所以具体读写操作的大部分时间里面,都是在等待外部命令的输入,“不关心片选”技术,就是在NANDFlash的内部的相对快速的操作(读或写)完成之后,就取消片选。待下次外部命令/数据/地址输入来的时候,再选中芯片,即可正常继续操作了。主要目的是为了降低功耗。技术展望技术展望Copy-Back技术简单的说就是将一个页的数据,拷贝到另一个页。若没有Copy-Back功能,那么正常的做法就是先要将页数据拷贝出来放到内存的数据buffer中,再用写命令将页数据,写到新的页里面。Copy-Back功能的好处在于,不需要用到外部的存储空间,而是可以直接读取数据到内部的页寄存器(pageregister)然后写到新的页里面去。同时为了保证数据的正确,要硬件支持EDC(ErrorDetectionCode)的,否则,在数据的拷贝过程中,可能会出现错误,并且拷贝次数多了,可能会累积更多错误。技术展望技术展望同时编程技术支持同时对多个片进行编程,比如三星的K9K8G08U0A,内部包含4片(Plane),分别叫做Plane0,Plane1,Plane2,Plane3。由于硬件上,对于每一个Plane,都有对应的大小是2048+64=2112字节的页寄存器(PageRegister),使得同时支持多个Plane编程成为可能。技术展望技术展望交错编程技术多Plane同时编程,是针对一个chip里面的多个Plane来说的,而此处的交错页编程,是指对多个chip而言的。可以先对chip1一页进行编程,chip1内部就开始将数据写到页里面,处于忙的状态,而此时可以利用这个时间,对出于就绪状态的chip2也进行页编程,发送对应的命令后,chip2内部开始写数据到存储单元里面去了,之后处于忙的状态。再去检查chip1,若编程完成则可以开始下一页的编程,完命令发送后,再去检查chip2,若编程完成,也可以进行其他页的编程。如此交互操作chip1和chip2,可以有效地利用时间,使得整体编程效率提高近2倍,大大提高NANDFlash的编程/擦写速度了。Q&AQ&ACompanyLogoThankYou!
本文标题:NandFlash及相关技术说明.
链接地址:https://www.777doc.com/doc-2889401 .html