NAND和NOR 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的管理和需要特殊的系统接口。性能比较 flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的写入操作只能在空或已擦除的单元内进行,所以大多数情况下,在进行写入操作之前必须先执行擦除。NAND器件执行擦除操作是十分简单的,而NOR则要求在进行擦除前先要将目标块内所有的位都写为0。 由于擦除NOR器件时是以64~128KB的块进行的,执行一个写入/擦除操作的时间为5s,与此相反,擦除NAND器件是以8~32KB的块进行的,执行相同的操作最多只需要4ms。 执行擦除时块尺寸的不同进一步拉大了NOR和NADN之间的性能差距,统计表明,对于给定的一套写入操作(尤其是更新小文件时),更多的擦除操作必须在基于NOR的单元中进行。这样,当选择存储解决方案时,设计师必须权衡以下的各项因素。 ● NOR的读速度比NAND稍快一些。 ● NAND的写入速度比NOR快很多。 ● NAND的4ms擦除速度远比NOR的5s快。 ● 大多数写入操作需要先进行擦除操作。 ● NAND的擦除单元更小,相应的擦除电路更少。接口差别 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存储卡市场上所占份额最大。可靠性和耐用性 采用flahs介质时一个需要重点考虑的问题是可靠性。对于需要扩展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闪存的管理,包括纠错、坏块处理和损耗平衡。
NAND和闪存转换层(FTL)
我们使用的固态硬盘(SSD),U盘等存储设备,有别于机械硬盘,其实际存储颗粒为NAND。而NAND存储颗粒受其物理特性影响必然存在坏块,同时也不能直接写0写1。
NAND有别于机械硬盘,主要体现在一下几个方面。
一,如果你想往某个区域存储一个字节的数据,比如0x55,首先需要确认当前区域是没有写入过数据的,也就是必须是全部0xFF的,因为NAND写入的时候每个bit只能从1变成0,不能从0变成1。如果不是全FF,则需要擦除操作,讲该区域全部变成0xFF,才可以写入你想要的0x55写进去。
二,NAND还存在另外一个特性是数据容易出错,写进去的是0x55,回读可能是0x5A,这时候需要ECC算法将错误的数据纠正过来,ECC算法比较复杂,在此不论述。
三,NAND存储颗粒的擦写次数是有限的,一般一个块也就是3000次左右,不能无线擦写。
四,NAND存储颗粒是存在坏块的,也就是实际物理地址上的某个区域是不能正常存储数据的。
这些特性都导致电脑不能向机械硬盘一样直接操作NAND。比如我们的电脑管理了全部文件内容,管理这些文件内容的功能叫文件系统。类似FAT文件系统会在固定的区域存储所有的文件信息,包括文件名,大小,作者等,例如存储在地址0里面。而我们需要频繁的修改文件,那么地址0存储的文件信息就需要频繁的更新,假如存储地址0对应NAND地址0,那么这块控件将很快达到其擦写次数寿命,导致损坏,我们的文件信息就会发生错乱。而且NAND不接受直接写入,必须先擦除再写入,还需要记录NAND中的坏块在哪里,避免写入已经坏掉的区域。读取的时候还需要进行ECC纠错,防止数据出错,这都会大大增加系统的负担,是不会被厂家接受的。大家都懒,谁愿意为了你的问题而改变自己呢,除非你给钱。
FTL闪存转换增这时候被提出来了,其作用就是文件系统和NAND之间的沟通桥梁。对于文件系统来说,它操作的实际第一对象是FTL,依然向机械硬盘一样管理所有的数据,不需要变动,什么都不需要改,除了问题一定是你的,因为我没改。这样系统方恨开心。但是管理NAND的脏活累活就得FTL来做了,谁让SSD等厂家想卖钱呢。
FTL算法,其实就是一种逻辑地址到物理地址的映射。当文件系统发送指令要写入或者更新一个特定的逻辑页时,FTL实际上是把数据写入到一个不同的空闲物理页并更新映射表(逻辑地址和物理地址的关联数据),并把这个页上包含的"旧数据"标记为"无效"(更新后的数据已经写入新的物理地址,旧地址的数据自然就失效了)。正是因为FTL的存在,操作系统才能把SSD当成机械硬盘那样操作,因此FTL转换的性能也就直接影响SSD的性能表现,而且FTL算法也是影响SSD寿命及稳定性的决定因素之一。
FTL还需要管理坏块,磨损均衡(与NAND寿命直接相关),ECC算法等功能,只有这样才能伪装的自己是一个机械硬盘,别人才会用你。
相关问答
NAND 与ROM有什么不同-ZOL问答我的PPC有8G的NAND但是ROM只有128MB,我想问在WM系统中NADN和ROM的使用功能一样...它在任何时候都可以读写,RAM通常是作为操作系统或其他正在运行程序的临时存储...
bib文件是什么意思[回答]nboot是从NANDflash读image到内存并执行,eboot是从以太网(用tftp)下载image到内存并执行。将nboot.nb0烧到第0块,将eboot.nb0烧到第2块。启动时nbo....
bib文件是什么意思nboot是从NANDflash读image到内存并执行,eboot是从以太网(用tftp)下载image到内存并执行。将nboot.nb0烧到第0块,将eboot.nb0烧到第2块。启动时nbo....
镁光NANDflash块锁了怎么解锁不了,锁住了只能 读 - 153****4...原因:现在很多带多媒体功能电脑键盘都会有一个键盘锁功能,锁键盘后,根据出厂设定全部键盘按键或者大部按键将不能使用。如果不小心锁上的话解锁就行...
F-ROM是什么样的存储媒介呢? - 懂得FROM是FlashROM,是一种可以永久保存数据的存储体,掉电后数据不会丢失(10年以上!),FROM通常又分两种,一种是NORFROM,另一种是NANDFROM。NORFROM可以...
bib文件是什么意思nboot是从NANDflash读image到内存并执行,eboot是从以太网(用tftp)下载image到内存并执行。将nboot.nb0烧到第0块,将eboot.nb0烧到第2块。启动时nbo....
内存卡 读 速的区别?内存卡读速指的是从内存卡中读取数据的速度,读取速度快的内存卡可以使得数据传输更加流畅和快速,有助于提高设备的整体性能与体验。内存卡读速的区别通常取决...
2019年的NVME固态硬盘性能到了什么水平?新的SSD现在都使用64层3DTLCNAND,并且已经从Phison控制芯片切换到更新的SiliconMotion控制芯片。A2000还采用了PCIe3.0x4配置,允许NVMeSS...
硬盘和ROM的区别?ROM是只读存储器(Read-OnlyMemory),是计算机内部存储器中的一种,而硬盘是外部存储器,所以对于大学学子来说,考试时你如果把这两个混为一种东西绝对是错误...
内存和SSD的区别是什么?SSD主要有三部分构成:SSD主控芯片,DRAM缓存以及NAND闪存,如下图。SSD主控对于SSD的作用,就类似于CPU处理器对于电脑的作用,负责指挥工作。DRAM缓存作用是进...