NOR Flash


NOR Flash

文章插图
NOR Flash【NOR Flash】NOR Flash是一种非易失快闪记忆体技术 , 是Intel在1988年创建 。
基本介绍中文名:NOR Flash
属性:非易失快闪记忆体技术
时间:1988年
所属:Intel
快闪记忆体技术是现在市场上两种主要的非易失快闪记忆体技术之一 。Intel于1988年首先开发出NOR Flash 技术 , 彻底改变了原先由EPROM(Erasable Programmable Read-Only-Memory电可程式序唯读存储器)和EEPROM(电可擦唯读存储器Electrically Erasable Programmable Read - Only Memory)一统天下的局面 。紧接着 , 1989年 , 东芝公司发表了NAND Flash 结构 , 强调降低每比特的成本 , 有更高的性能 , 并且像磁碟一样可以通过接口轻鬆升级 。NOR Flash 的特点是晶片内执行(XIP  , eXecute In Place) , 这样应用程式可以直接在Flash快闪记忆体内运行 , 不必再把代码读到系统RAM中 。NOR 的传输效率很高 , 在1~4MB的小容量时具有很高的成本效益 , 但是很低的写入和擦除速度大大影响到它的性能 。NAND的结构能提供极高的单元密度 , 可以达到高存储密度 , 并且写入和擦除的速度也很快 。套用NAND的困难在于Flash的管理需要特殊的系统接口 。通常读取NOR的速度比NAND稍快一些 , 而NAND的写入速度比NOR快很多 , 在设计中应该考虑这些情况 。——《ARM嵌入式Linux系统开发从入门到精通》 李亚峰 欧文盛 等编着 清华大学出版社 P52 注释 API Key性能比较flash快闪记忆体是非易失存储器 , 可以对称为块的存储器单元块进行擦写和再编程 。任何flash器件的写入操作只能在空或已擦除的单元内进行 , 所以大多数情况下 , 在进行写入操作之前必须先执行擦除 。NAND器件执行擦除操作是十分简单的 , 而NOR则要求在进行擦除前先要将目标块内所有的位都写为0 。由于擦除NOR器件时是以64~128KB的块进行的 , 执行一个写入/擦除操作的时间为5s , 与此相反 , 擦除NAND器件是以8~32KB的块进行的 , 执行相同的操作最多只需要4ms 。执行擦除时块尺寸的不同进一步拉大了NOR和NAND之间的性能差距 , 统计表明 , 对于给定的一套写入操作(尤其是更新小档案时) , 更多的擦除操作必须在基于NOR的单元中进行 。这样 , 当选择存储解决方案时 , 设计师必须权衡以下的各项因素 。l 、NOR的读速度比NAND稍快一些 。2、 NAND的写入速度比NOR快很多 。3 、NAND的4ms擦除速度远比NOR的5s快 。4 、大多数写入操作需要先进行擦除操作 。5 、NAND的擦除单元更小 , 相应的擦除电路更少 。此外 , NAND的实际套用方式要比NOR複杂的多 。NOR可以直接使用 , 并可在上面直接运行代码;而NAND需要I/O接口 , 因此使用时需要驱动程式 。不过当今流行的作业系统对NAND结构的Flash都有支持 。此外 , Linux核心也提供了对NAND结构的Flash的支持 。详解NOR和NAND是现在市场上两种主要的非易失快闪记忆体技术 。Intel于1988年首先开发出NOR flash技术 , 彻底改变了原先由EPROM和EEPROM一统天下的局面 。紧接着 , 1989年 , 东芝公司发表了NAND flash结构 , 强调降低每比特的成本 , 更高的性能 , 并且象磁碟一样可以通过接口轻鬆升级 。但是经过了十多年之后 , 仍然有相当多的硬体工程师分不清NOR和NAND快闪记忆体 。像“flash存储器”经常可以与相“NOR存储器”互换使用 。许多业内人士也搞不清楚NAND快闪记忆体技术相对于NOR技术的优越之处 , 因为大多数情况下快闪记忆体只是用来存储少量的代码 , 这时NOR快闪记忆体更适合一些 。而NAND则是高数据存储密度的理想解决方案 。NOR的特点是晶片内执行(XIP, eXecute In Place) , 这样应用程式可以直接在flash快闪记忆体内运行 , 不必再把代码读到系统RAM中 。NOR的传输效率很高 , 在1~4MB的小容量时具有很高的成本效益 , 但是很低的写入和擦除速度大大影响了它的性能 。NAND结构能提供极高的单元密度 , 可以达到高存储密度 , 并且写入和擦除的速度也很快 。套用NAND的困难在于flash的管理需要特殊的系统接口 。接口差别NOR flash带有SRAM接口 , 有足够的地址引脚来定址 , 可以很容易地存取其内部的每一个位元组 。NAND器件使用複杂的I/O口来串列地存取数据 , 各个产品或厂商的方法可能各不相同 。8个引脚用来传送控制、地址和数据信息 。NAND读和写操作採用512位元组的块 , 这一点有点像硬碟管理此类操作 , 很自然地 , 基于NAND的存储器就可以取代硬碟或其他块设备 。容量成本NAND flash的单元尺寸几乎是NOR器件的一半 , 由于生产过程更为简单 , NAND结构可以在给定的模具尺寸内提供更高的容量 , 也就相应地降低了价格 。NOR flash占据了容量为1~16MB快闪记忆体市场的大部分 , 而NAND flash只是用在8~128MB的产品当中 , 这也说明NOR主要套用在代码存储介质中 , NAND适合于数据存储 , NAND在CompactFlash、Secure Digital、PC Cards和MMC(多媒体存储卡Multi Media Card)存储卡市场上所占份额最大 。可靠耐用採用flash介质时一个需要重点考虑的问题是可靠性 。对于需要扩展MTBF(平均故障间隔时间Mean Time Between Failures)的系统来说 , Flash是非常合适的存储方案 。可以从寿命(耐用性)、位交换和坏块处理三个方面来比较NOR和NAND的可靠性 。寿命(耐用性)在NAND快闪记忆体中每个块的最大擦写次数是一百万次 , 而NOR的擦写次数是十万次 。NAND存储器除了具有10比1的块擦除周期优势 , 典型的NAND块尺寸为NOR器件的八分之一 , 每个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(Memory Technology Devices) 。使用NOR器件时所需要的MTD要相对少一些 , 许多厂商都提供用于NOR器件的更高级软体 , 这其中包括M-System的TrueFFS驱动 , 该驱动被Wind River System、Microsoft、QNX Software System、Symbian和Intel等厂商所採用 。驱动还用于对DiskOnChip产品进行仿真和NAND快闪记忆体的管理 , 包括纠错、坏块处理和损耗平衡 。