代码编织梦想

Nand-flash内存是flash内存的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。

简介

NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR  flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年, 东芝公司发表了NAND  flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的 硬件工程师分不清NOR和 NAND闪存
“NAND 存储器”经常可以与相“NOR存储器”互换使用。许多业内人士也搞不清 楚NAND闪存技术相对于NOR技术的优越之处,因 为大多数情况下闪存只是用来存储少量的代码并且需要多次擦写,这时NOR闪存更适合一些。而NAND则是高数据存储密度的理想解决方案。
NOR的特点是芯片内执行(XIP, eXecute In Place),这样 应用程序可以直接在 flash 闪存内运行,不必再把代码读到系统RAM中。NOR的 传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除 速度大大影响了它的性能。
NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于 flash的管理需要特殊的系统接口。

NAND和NOR的区别

性能比较

flash 闪存是非易失 存储器 ,可以对称为块的存储器单元块进行擦写和再 编程 。任何 flaNAND特点是 器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。 NAND器件执行擦除 操作是十分简单的,而NOR则要求在进行擦除前 先要将目标块内所有的位都写为1。
由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5ms ,与此相反,擦除NAND器件是以8~32KB的块进 行的,执行相同的操作最多只需要4ms。
执行擦除时块尺寸的不同进一步拉大了NOR和NAND之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时), 更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时, 设计师必 须权衡以下的各项因素。
● NOR的读速度比NAND稍快一些。
● NAND的写入速度比NOR快很多。
● NAND的擦除速度远比NOR快。
● NAND的擦除单元更小,相应的擦除电路更加简单。
● NAND的实际应用方式要比NOR复杂的多。
● NOR可以直接使用,并在上面直接运行代码,而NAND需要I/O接口,因此使用时需要驱动。

接口差别

NOR flash带有SRAM接口,有足够的地址 引脚来寻址,可以很容易地存取其内部的每 一个字节。
NAND器件使用复杂的I/O口来串行地存取数据,各个产品或厂商的方法可能各不相同 。8个 引脚用来传送控制、地址和数据信息。
NAND读和写操作采用512 字节的块,这一点有点像硬盘管理此类操作,很自然地,基于NAND的 存储器就可以取代硬盘或其他块设备。NOR的特点是芯片内执行(XIP, eXecute In Place),这样 应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。
NOR的 传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。
NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于 flash的管理需要特殊的系统接口。

NAND特点编辑

容量和成本

NAND  flash的单元尺寸几乎是NOR器件的一半,由于生产过程更为简单,NAND结构可 以在给定的模具尺寸内提供更高的容量,也就 相应地降低了价格。
NOR  flash占据了容量为1~16MB闪存市场的大部分,而NAND flash只是用在8~128M B的产品当中,这也说明NOR主要应用在代码存 储介质中,NAND适合于数据存储,NAND在CompactFlash、Secure Digital、PC Cards和M MC存储卡市场上所占份额最大。

物理构成

NAND Flash 的数据是以bit的方式保存在memory cell,一般来说,一个cell 中只能存储一个bit。这些cell 以8个或者16个为单位,连成bit line,形成所谓的byte(x8)/word(x16),这就是NAND Device的 位宽。这些Line会再组成Page ,(NAND Flash 有多种结构,我使用的NAND Flash 是K9F1208,下面内容针对三星的K9F1208U0M), 每页528Bytes (512byte(Main Area)+16byte(Spare Area)), 每32个page形成一个Block (32*528B)。具体一片 flash 上有多少个Block视需要所定。我所使用的三星k9f1208U0M具有4096个block,故总容量为4096*(32*528B)=66MB,但是其中的2MB是用来保存ECC校验码等额外数据的,故实际中可使用的为64MB。
NAND flash以页为单位读写数据,而以块为单位擦除数据。 按照这样的组织方式可以形成所谓的三类地址:
Column Address:Starting Address of the Register. 翻成中文为列地址,地址的低8位
Page Address :页地址
Block Address :块地址
对于NAND Flash来讲,地址和命令只能在I/O[7:0]上传递,数据宽度是8位。

可靠耐用性

采用 flash介质时一个需要重点考虑的问题是可靠性。对于需要扩展MTBF的系统来说 ,Flash是非常合适的存储方案。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性。
寿命(耐用性)
在NAND闪存中每个块的最大擦写次数是一百万次,而NOR的擦写次数是十万次。NAND
存储器除了具有10比1的块擦除周期优势,典型 的NAND块尺寸要比NOR器件小8倍,每个NAND存储器块在给定的时间内的删除次数要少一 些。
位交换
所有 flash器件都受位交换现象的困扰。在某些情况下(很少见,NAND发生的次数要比NOR多),一个比特位会发生反转或被报告反转了。
一位的变化可能不很明显,但是如果发生在一个关键文件上,这个小小的故障可能 导致系统停机。如果只是报告有问题,多读几次 就可能解决了。
当然,如果这个位真的改变了,就必须采用错误 探测/错误更正(EDC/ECC)算法。位 反转的问题更多见于NAND闪存,NAND的供应商建 议使用NAND闪存的时候,同时使用EDC/ECC算法。
这个问题对于用NAND存储 多媒体信息时倒不是致命的。当然,如果用本地存储设备来存储 操作系统、配置文件或其他敏感信息时, 必须使用EDC/ECC系统以确保可靠性。
坏块处理
NAND器件中的坏块是随机分布的。以前也曾有过消除坏块的努力,但发现成品率太低,代价太高,根本不划算。
NAND器件需要对介质进行初始化扫描以发现坏块,并将坏块标记为不可用。在已制 成的器件中,如果通过可靠的方法不能进行这项 处理,将导致高故障率。

易于使用

可以非常直接地使用基于NOR的闪存,可以像其他 存储器那样连接,并可以在上面直 接运行代码。
由于需要I/O接口,NAND要复杂得多。各种NAND器件的存取方法因厂家而异。
在使用NAND器件时,必须先写入驱动程序,才能继续执行其他操作。向NAND器件写 入信息需要相当的技巧,因为 设计师绝不能向坏 块写入,这就意味着在NAND器件上自始至终都必须进行虚拟映射。

软件支持

当讨论 软件支持的时候,应该区别基本的读/写/擦操作和高一级的用于磁盘仿真和 闪存管理算法的软件,包括 性能优化
在NOR器件上运行代码不需要任何的 软件支持,在NAND器件上进行同样操作时,通常 需要 驱动程序,也就是内存技术驱动程序(MTD ),NAND和NOR器件在进行写入和擦除操作时都需要MTD。
使用NOR器件时所需要的MTD要相对少一些,许多厂商都提供用于NOR器件的更高级软 件,这其中包括M-System的TrueFFS驱动,该驱 动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所采用。
驱动还用于对DiskOnChip产品进行仿真和NAND闪存的管理,包括纠错、坏块处理和 损耗平衡。(纠正一点:NOR擦除时,是全部写1,不是写0,而且,NOR FLASH SECTOR擦除时间视品牌、 大小不同而不同,比如,4M FLASH,有的SECTOR擦除时间为60ms,而有的需要最大6S。)NOR FLASH的主要供应商是INTEL ,MICRO等厂商,曾经是FLASH的主流产品,但现在被 NAND FLASH挤的比较难受。它的优点是可以直接从FLASH中运行程序,但是工艺复杂,价格比 较贵。
NAND FLASH的主要供应商是SAMSUNG和东芝,在U盘、各种存储卡、 MP3播放器里面的都是这种 FLASH,由于工艺上的不同,它比NOR FLASH拥有更大存储容量,而且便宜。但也有缺点,就是
无法寻址直接运行程序,只能存储数据。另外NAND FLASH 非常容易出现坏区,所以需要有校验
的算法。
在掌上电脑里要使用NAND FLASH 存储数据和程序,但是必须有NOR FLASH来启动。除了
SAMSUNG处理器,其他用在掌上电脑的主流处理器还不支持直接由NAND FLASH 启动程序。因此,
必须先用一片小的NOR FLASH 启动机器,在把OS等 软件从NAND FLASH 载入SDRAM中运行才行,
挺麻烦的。

4相关信息编辑

NAND型闪存以块为单位进行擦除操作。闪存的写入操作必须在空白区域进行,如果目标区域已经有数据,必须先擦除后写入,因此擦除操作是闪存的基本操作。
而SRAM (Static RAM, 静态随机存储器) - 此类静态RAM的运行速度非常快,也非常昂贵,其体积相对来说也比较大。今天我们常说的CPU内的一级、 二级缓存就是使用了此SRAM。 英特尔的 Pentium III Coppermine CPU中结合有256KB的全速 二级缓存,这实际上就是一种SRAM。非常不幸得就是 此种SRAM与其"伙伴"DRAM相比非常地昂贵,因此在CPU内只能使用少量的SRAM,以降低处理器的生产成本;不过由于SRAM的特点---高速 度,因此对提高系统性能非常有帮助。处理器内的 一级缓存,其运行频率与CPU的 时钟同步;而 二级缓存可以整合在CPU中,也可以位于如一些Slot-1 CPU的边上。



nftl(nand硬件翻译层)+ fat 的应用-爱代码爱编程

转自:http://bbs.csdn.net/topics/330159014   zhangshengheng 发帖: 小弟最近在研究nftl+FAT的应用,希望可以在Nand flash上成功应用FAT32文件系统。 内核:2.6.32.2 开发板:mini2440 nand:K9F2G08U0A 现在的进展:1.mtd下的所有的对nand支持很

nand flash管理算法介绍之ftl简介-爱代码爱编程

和传统磁盘相比,Nand Flash存储设备存储延迟低、功耗低、更高的存储密度、抗震型号更好和噪声低。但是,由于Nand Flash的特性影响(读写擦的单位不一致,每个块有P/E次数限制),Nand Flash不能直接通过简单的接口转换就拿来使用。所以我们需要在Nand Flash上增加一个管理软件FTL(Flash Translation Layer)

ftl(flash transform layer)基础_weixin_35012020的博客-爱代码爱编程

Nand Flash结构: A device contains one or more targets A target is controlled by one CE# signalA target is organized into one or more LUNs 1 Die = 1 LUN(Logical unit number) FTL模块结

nand flash驱动, ecc, mtd, ftl, 文件系统_dolaameng328的博客-爱代码爱编程

Nand Flash驱动, ECC, MTD, FTL, 文件系统 2011-05-23 20:03 特点Nand flash存储结构为chip->(plane)->block->page>byte。page分为数据区和oob(out of band),oob用于存放ecc码、标记坏块和

小小flash动画_信息追梦人 | 动画制作专业优秀毕业生周海倩-爱代码爱编程

工院能量站 成长故事 大家好,我是周海倩,我是2010年进入山东工业技师学院的,当时小小的我拖着大大的行李箱步入校园的场景还记忆犹新,回想在校时的经历更是激动得令我难忘。 入校后,我把学校当成一个新的起点,一开始就严格要求自己,思想积极要求进步,学习刻苦成绩突出。我们所在的班级10多媒体技师班(动画方向),遇到了很多很棒的老师,在

五、mini2440_bsp_nand_[t]的博客-爱代码爱编程

一、原理介绍 1、实现目标         测试Nand Flash读取功能。s3c2440启动会自动拷贝前4K到片内SRAM,前4K程序(程序功能)将Nand Flash的4096~(4096+2048)的2K程序读取到片外SDRAM中,引导执行;当被读取、引导的程序正常执行,即可证明Nand Flash读取成功。          2、Nand