双雄并立还是一家独大──NOR与NAND闪存芯片的发展之路
硬件周刊
Intel闪存事业部的副总经理Darin Billerbeck在接受采访时曾透露:在过去的15年里,Intel共销售了20亿颗闪存芯片,其中有10亿颗是在头12年里销售的,剩下的10亿颗则在后来的3年里卖出。从上个世纪80年代开始发展的闪存,在2000年以后呈现出高速发展的趋势。
其实市场上的闪存芯片(Flash Memory)并非同一种产品,主要有NOR和NAND两大类型(注:市场还有DiNOR、AND之类的产品,不过不是主流)。NOR是Intel于1988年推出的,在闪存发展的初期大出风头,而1989年东芝公司推出的NAND产品,近年来在数码相机、MP3等产品热销的带动下,大有超越NOR的发展势头。
在容量、读取、擦除、写入等各个方面,两类闪存芯片的竞争从未平息过。在未来的日子里,闪存业将往何处去,NOR和NAND争霸的闪存市场到底是双雄并立还是一家独大,本文以技术面为依托作一些简单的分析。
容量的构成
NOR和NAND两种闪存芯片都是在数码设备和移动设备中,起到类似于硬盘断电后仍能保存数据的功能。但在具体架构设计上,NOR和NAND之间的差别还是很大的。
NAND在架构上是以页面为基本单位,存储页是很基本的单位。一个存储页可以放置512Byte的数据,在大容量的NAND里,存储页的容量可以是512Byte的整数倍,比如一些大于等于256MB的产品就经常采用2048Byte容量的存储页。
在NAND芯片中,比页面更高一级的单位就是块了。一般来说,一个块包含32个或者64个页面,而且页内数据存储容量和块包含的页面数量可以灵活的搭配。
一般来说,如果一个块内有32个页面,每个页面是512Byte,那么这个块的数据容量就是32×512Byte=16KB;而如果是包含64个页面的块而且每个页面数据容量为2048Byte的话,一个块的数据容量就是64×2048Byte=128KB了。整个NAND的数据存储空间,是由很多个这样的块构成的,比如16MB的NAND,就可能是由1024个16KB数据容量的块构成的。图1就是三星某系列NAND容量构成的示意图。
从图1就可以看出,NAND为了实现更大的容量,每个块包含的页面数目和页内数据容量都应该选择最大的设置进行搭配;因为NAND传输的单位是页,为了提高性能选择更大的页内数据容量就可以了。
图2是三星某系列NOR型闪存芯片的资料。从图2就可以看出这是一个非常类似于内存的架构,甚至有Bank这样的概念直接出现。从容量结构上来讲,NOR是一个并行的架构,单芯片提高容量较为困难,参考内存的结构就类比可知具体情况,这里就不再赘述了。
总的来说,采用串行结构的NAND比较容易提高容量,产品也是走大容量路线,而采用并行结构的NOR提升容量相对难一些,常用于对容量要求较小的场合。
寻址方式的异同
了解闪存的组成后,我们就可以来看看它是怎么寻址读取数据的。根据前面的分析,要描述NAND中存储的数据具体在哪个位置,就必须包含这些信息:首先是被读取的数据在哪个块里面,其次是确定被读取数据在这个块中具体哪个页面,最后是确定该数据在页面中的起始操作地址。
接下来我们继续来看,NAND闪存里面包含了数目相当多的块,要确定被读取数据的位置,就要对闪存芯片内部的块进行编号。如果像上面的16MB容量的NAND,有1024个块,那么这些块将会被赋予为0~1023这些数字,并编制为一个10位数的二进制数。
块编号完毕后,还要对块内页面进行编号,和对页面内数据的具体位置进行编号。还是用前面的例子,32个页面的编号将要转化为5位的二进制数,而512Byte的页内数据位置还要转化为9位的二进制数。即使我们只是将上面提到的三个部分二进制编号位数简单加起来,这也将是一个24位的二进制数,如果考虑这三个部分的数字需要区分还加上其他情况,很可能需要的地址线还不止24位。
在寻址时,即使是16位的NAND芯片只用其中一半来进行数据传输,另一半用来寻址,就用上面的例子来说,24位的地址信息,那么至少需要3次才能传递完,也就是说至少需要3个周期。
对于NOR的寻址,从图2可以清楚地看到它拥有足够多的地址线,且整个架构为明显的并行结构,我们可以得出这样的结论,NOR型的闪存可以在一个周期内完成寻址,而且随着容量的增大花费的周期数目并不会出现什么增长。
分析NOR和NAND寻址的过程,我们就可以得出这样的结论,随机寻址的速度,NOR比NAND要快得多,仅从上面的简单计算就可以知道最少有两到三倍的差异。同时NAND还有一个严重的弱点,随着容量的增大,这也就意味着块数、页面数和页内存储空间也会更大,那么就需要更多的编号来表示其地址,这些编号转化为二进制数的长度也越长,随机寻址的时间会越来越长,这将更进一步的拉开它和NOR在随机寻址速度上的差距。
读取速度里面的玄机
数据的读取分为随机读取和连续读取两种,从前面的分析可以看出,在随机读取场合NOR型闪存有相当大的优势。而且NAND虽然是以字节为单位寻址,但传输的单位是页,而且更重要的是这个传输过程要经过页面寄存器进行传输,此过程需要花费较长的时间,现在主流产品需要的时间是15μs到30μs。我们以20MHz作为NAND的运行频率,那么运行一个周期的时间需要的时间就是50ns,这里准备数据传输需要花费的15μs到30μs,换算下来竟然相当于300到600个时钟周期,而结构与DRAM类似的NOR型闪存,在寻址和数据传输的延迟上只需要短短的几个时钟周期。
随机读取一个页面,花费的时间大致等于寻址需要花费的时间、准备数据传输需要花费的时间和数据传输过程需要花费的时间之和。在前两部分,NOR型闪存芯片花费的时钟周期与NAND相比都有相当明显的优势。第三部分数据传输消耗的时间,如果NOR型闪存和NAND运行频率相等,那么消耗的时间还是NAND略多,原因在于除了数据传输以外,NAND还要额外传输3%的校验码。
但是在连续读取上情况又有些不同,两种类型的闪存都支持突发传输,类比DRAM的突发传输我们就可以知道,这个过程是一个类似流水线的操作。整个过程除了第一个页面的传输需要前两个过程以外,后面页面的传输就不需要经历这两个步骤了。而在第三个环节上,NOR和NAND两类闪存如果运行频率相等的话,差别只有几个百分点,即使考虑第一个页面传输时导致的性能差距,同频率的NAND闪存性能比NOR性能缓存相差在十个百分点之内。
以现在的制造工艺而言,NOR型闪存的工艺的运行频率比NAND高一些。所以总的来说,在随机读取上NOR型闪存和NAND相比完全占上风,连续传输速度也比NAND高一些,不过差距不像随机读取那么大。
写入和擦除速度的较量
闪存还有一个比较典型的特点就是擦除数据是以“块”为单位进行的,其主要消耗的时间为对被擦除地址寻址需要的时钟周期加上擦除需要的时间。前面分析了NAND块的大小在16KB~128KB,擦除的时间一般在2ms左右,也就是说基本是处于毫秒级的擦除。而NOR型闪存,擦除的基本单位是类比DRAM中Bank的块,这个块的大小一般以64KB和128KB比较常见,以Intel型号为280F640J5的StrataFlash产品而言,官方白皮书给出的擦除时间在1秒以内。
前面已经提到了写入这个过程可能需要先擦除内容,但这不是必须的,所以对于写入的时间估算上就存在一定的困难。NAND不考虑擦除时写入的过程可以和前面分析过的读取过程相类比,只是读取时通过页面寄存器需要的准备时间这里变成了写入,这部分整个消耗的时间是在几百毫秒左右,以前面提到的三星某系列NAND为例,消耗的时间就是300μs,而更常见的时间为200μs左右。NOR型闪存芯片根据块的大小这部分花费的时间一样的略有差异,但基本上典型时间是从零点几秒到两点几秒的范围内。从写入的速度来看,NAND仍旧比NOR有了至少上百倍的提高。
总的来看,NOR在随机访问包括数据读取上和NAND相比有较大的优势,在数据擦除和写入部分NAND占了上风,两者各有所长。
性能和容量提升相关的技术
除了读取、擦除和写入以外,还有两类重要的闪存技术不应该被忘记。首先需要提及的是RWW(Read While Write)和RWE(Read While Erase),这两项技术能使闪存在写入数据或者擦除数据的同时读取数据,进一步提升NOR型闪存的性能。
与之相对应的是NAND与SRAM这类存储器的整合技术,其原理与硬盘通过加入缓存提升性能类似。与少量的SRAM整合,这会给予NAND相当大的性能提升也可以扩大其使用范围,当然NOR型闪存也有类似的整合,不过意义是有些不同的。
另外一类就是增加容量的技术,这以Intel倡导的MLC(Multi Level Cell,多级单元)和AMD提出的MirrorBit为主要代表。从物理结构上来看MLC是把两个位的信息存入一个浮动栅(Floating Gate,闪存存储单元中存放电荷的部分),通过精确控制浮动栅上的电荷数量,使其呈现出4种不同的存储状态,这样就可以倍增存储容量。MirrorBit是通过在浮动栅上划分出两块独立的存储区,然后通过源极、漏极的互换来达到在一个浮动栅存储两个bit的数据,倍增容量的目的。
闪存家族,路向何方
闪存技术融合的趋势比较明显,比如前面提到的与SRAM进行混合封装提高整体效能、弥补自身在架构上的弱点。在存储体系中,本来就有多级架构存在,虽然现在的闪存都走的是单芯片、低功耗的路子,多方融合塑造立体存储概念应该是未来重要的发展方向。
从业界厂商的动向来看,融合的趋势也越来越明显,一些老牌的NOR或者NAND制造厂商已经开始两类产品同时研发生产,而前面提到的Intel虽然是MLC技术的倡导者,但它在CPU制造领域对于多核心产品的赞同度急剧提升,那么Intel在闪存制造中考虑加入以三星为代表的SLC(Single-Level Cell,单级单元)技术可能性也不小。
目前看来,NOR和NAND,一个在读取和执行上有优势,一个在擦除和写入上有长处,基本处于优势互补的状态。现在更老资格的NOR型闪存芯片市场份额更大一些,但在未来应该是NOR固守低容量市场而NAND主攻高容量市场,在性能、容量等各个方面呈现双雄并立的局面。



