采用NAND Flash设计存储设备的挑战在哪里?

对于搞电子设计的工程师而言,NAND Flash是再熟悉不过的东西了。在电子设计的时候,NAND Flash通常作为大容量存储介质,可以类比为PC系统中的磁盘。在电子设计领域,对于小容量存储,还可以采用EEPROM之类的芯片;对于程序存储,可以选择NOR FlashNOR FlashNAND Flash之间的差别网上有过很多的讨论,在此不一一列数。

NAND Flash作为大容量存储,替代磁盘存储是从消费电子和军工领域开始的。消费电子领域追求小型化和便携,容量普遍较小,因此非常适合采用NAND Flash作为持久化存储介质。军工领域追求高可靠性,机械硬盘无法满足要求,因此只能采用NAND Flash替代机械硬盘。机械硬盘在企业级存储领域一直占据着主导地位,其最主要原因有如下几个方面:

1、容量大。自从巨磁阻效应被应用到磁盘之后,磁盘容量一直在不断增长,在不久的将来,4TB/6TB盘将会被大量使用。此外,磁盘容量还有增长空间,充氦磁盘亦可以在现有基础上增加盘片数量,从而提升单盘容量。

2、价格便宜。虽然磁盘容量在不断增加,但是单盘的价格没有提升。因此,每GB容量的价格在不断下降,磁盘在这几年还有很大的价格优势。

3、应用支持。基本上企业级的存储软件都是针对磁盘进行优化设计的,而这种软件又不能直接简单移植到NAND Flash存储上。

正因为上述几个原因,导致在企业级存储领域,磁盘一直处于领导地位,以NAND Flash为核心的存储盘无法撼动磁盘的地位。但是,从长远来看,NAND Flash有望替代磁盘,其最主要的原因是NAND Flash属于半导体存储,具有很好的性能优势。其容量的增长将符合摩尔定律。半导体工艺的进步,封装技术的进步都将促使NAND Flash单芯片容量不断快速增长。截止到2013年底,Samsung公司已经推出了V-NAND芯片,即将NAND Flash晶圆进行垂直3D封装,从而使得单芯片的NAND Flash容量成倍增长。目前,很多NAND Flash厂商已经可以提供单芯片128GBFlash芯片。如此高的单芯片容量,很容易将2.5SSD做到TB级以上。半导体芯片的价格决定于产量,因此,一旦产量上去之后,NAND Flash芯片将可以做到非常廉价,因此,磁盘的价格在可见的未来不再具有优势。到那时,大容量的NAND Flash还不能替代机械磁盘吗?

答案当然是肯定可以替代机械磁盘。现在的问题是如何在NAND Flash基础上做好存储设备。基于NAND Flash设计存储系统的挑战到底在哪里?

要回答这个问题,其实就是要了解NAND Flash的内部结构和特征。首先来看一下NAND Flash的内部结构:

 

wKioL1OZvDux04fYAAF97jET23w010.jpg

 

NAND Flash内部可以分成无数的Page页,这些Page页是读写的最小单元。多个连续的Page页构成一个Block,这些Block块是擦除的最小单元。在写一个Page页的时候,首先需要将这个Page页所在的Block擦除,否则无法对这个Page进行写入(编程)操作。对于NAND Flash而言,读操作最快,在20us左右;写操作慢于读操作,在200us左右;而擦除操作非常耗时,在1ms左右的数量级。因此,如果在写入数据的时候进行擦除操作,将会引入两大问题:第一,写性能受到擦除操作的影响变得很差;第二,由于擦除操作的基本单元是block块,因此,一个page页的写入操作将会引起整个块数据的迁移,这就是典型的写放大问题。更为严重的也是大家一直讨论和关心的寿命问题,NAND Flash内部的块是有擦写次数的,即每个块都有一定的寿命。通常SLCNAND Flash10万次的擦写寿命,MLCFlash1万次的寿命,而TLCFlash只有几千次的擦除寿命。这些限制似乎使得NAND Flash看起来不可用,数据存在NAND Flash中是否可靠?综上归纳起来,NAND Flash主要有以下几个方面的问题:

1、不对称的性能。读的性能最好;写性能次之;擦除性能最差。

2、读写基本单元是Page页,而擦除基本单元是block块。

3、Block块内部只能采用顺序方式进行写入。

4、每次page页写的时候都需要进行擦除操作。

5、块擦除有寿命限制。

NAND Flash的问题的确很多,不像Memory一样可以在任意地址进行随意的读写操作,而且还有寿命问题。因此在采用NAND Flash设计存储设备时需要进行合理设计才能发挥Flash的优势,避免Flash的问题。例如,擦除操作比较耗时,那么可以采用虚拟化的技术,将擦除操作在后台完成,而不是在写入操作的时候进行擦除操作。Page页写操作时,需要首先进行块擦除操作,因此,不能对Flash进行in-place-update的操作,只能采用out-of-place的写方式。块擦除的寿命问题可以通过wear-leveling算法均衡所有块的寿命,从而使得整个存储系统的寿命不低于当前磁盘系统的寿命。写擦除操作可能会引起bit-error等问题,因此,可以采用多级编码、动态编码的方式增强数据可靠性。不管怎么样,虽然,NAND Flash存在很多问题,但是她的优势更加的迷人,因此,聪明的工程师一定能够想出很多方法克服问题,基于NAND Flash研制出性能卓越、可靠的存储系统。

NAND Flash凭借着性能优势、密度优势、能耗优势即将登上企业存储的舞台,您准备好了吗?

 

你可能感兴趣的:(Flash,SSD,nand)