非挥发性存储器带来的挑战与机会 智能应用 影音
EVmember
Event

非挥发性存储器带来的挑战与机会

  • DIGITIMES企划

台湾大学信息工程学系教授郭大维
台湾大学信息工程学系教授郭大维

以浮闸式(Floating Gate)半导体电路所设计NAND Flash非挥发性存储器,已在移动设备与工控应用上大量普及,随着NAND Flash由SLC转到MLC、TLC,写入效能越来越差,耐用度与可信赖性度也越来越不堪;业界正评估像相变存储器(Phase Change Memory,PCM)技术,以直追DRAM的读取速度以及兼顾NVM非挥发性存储器的特质下,会对现今在电脑系统、移动设备与储存媒体的应用模式造成什麽改变。

NVM非挥发性存储器种类与当前应用

台湾大学信息工程学系教授郭大维指出,非挥发性存储器(Non-Volatile Memory;NVM)的储存优势,在于耐震与逐渐下滑的成本,省电、高效能与延展性。随着Flash制程技术伴随着摩尔定律不断进化,单位容量成本不断下降,价格也越来越有竞争力,像是NAND Flash在2012年就达到229亿美元的市场规模;但是Flash效能与品质信赖度却是接连降级,操作上的技术限制也越来越多。

从DRAM、PCM、NAND与传统HDD的参考规格来看,DRAM读写速度高达1GB/s以上,读写耗能为 0.8J/GB、1.2J/GB,待机功耗100mW,读写延迟时间为20-50ns(64B)~ 1-3us (4KB)、20-50ns(64B)~1-3us (4KB);而传统HDD读写耗能高达65J/GB,待机功耗10W/TB,读写延迟为~ 5ms (512B)到40ms(4KB)。像NAND Flash,读写速度5~40MB/s(per Die),其读写功耗为1.5J/GB、17.5J/GB,待机功耗1~10mW/GB,不仅比传统HDD还省电,没写数据的待机模式下也比DRAM还省电。但NAND Flash会有区块抹写次数1,000?100,000的限制。

目前NAND Flash市场定位储存媒体,不仅大量使用在消费性电子产品,服务器与储存装置,连强调强固性与长寿命工控应用也在使用,同时也带来了新的市场机会与厂商排名更动。全球前25大储存装置厂,除希捷(Seagate)、威腾(WD)等传统硬盘厂商之外,其它几乎都是以NVM设计的SSD固态硬盘而起来。

郭大维指出,ISCA09研究论文做过测试研究来说,以32GB PCM来替换8GB DRAM,执行时间减少53%;在桌上型电脑或服务器用4GB PCM换掉原有的4GB DRAM,整体耗能节省65%。PCM存储器读写耗能仅1J/GB、6J/GB,待机功耗1mW/GB比NAND Flash、DRAM还省电,而且跟DRAM一样可以只修改、抹除一个位元,而不是像NAND Flash以整个Page/Blocks做写入╱抹除的限制;PCM写入时速度约为50?100MB/s(per Die),读写延迟时间~ 50ns(64B)~3us(4KB)、~ 1us(64B)~64us(4KB),连待机模式都比DRAM省电;仅写入速度、功耗与延迟时间大于DRAM,但比NAND Flash表现还佳,这就是PCM厂商宣称PCM可以取代DRAM的理由,但PCM一样有抹写次数的限制(100万次?1亿次)。

从上而下或者由下而上的取代效应

郭大维指出,依UNIX、Linux等OS开机时间分析,可能有高达45%的时间花费在I/O等待,若直接用NVM非挥发性存储器来取代DRAM,那整个电脑的运作模式变成常态时间处于关闭(Off)的状态;仅读取NVM存储器位元数据时才开启(On)的模式。这也会冲击到现有的存储器管理(Memory Management)的思维,因为NVM比DRAM便宜,因此不需要做虚拟存储器的调度设计。

这种NVM系统也对既有的档案系统、档案读写作业模式,OS甚至是撰写程序的思维带来冲击。当整个存储器空间就是NVM时,不再需要透过档案系统、数据库来申请运作代码、数据库索引值,指定存储器区域后后把数据读进DRAM的琐碎模式;随意的要更动哪个内容就直接更动,也无须考虑把更动的内容写回储存媒体的问题。而NVM系统对堆砌各种软件协定的操作系统平台,自然也会带来冲击。

从储存媒体观点来看,非挥发存储器芯片实体层,在上面堆砌一个基本驱动程序,然后接一个原生档案系统(Native File System)层;而操作系统的档案系统,藉由区块装置的模拟(Block Device Emulation)与原生档案系统连接。一般NAND Flash储存装置的运作架构,其原生档案系统层由FTL(Flash Translation Layer)与MTD (Memory Technology Device)所建构,每一颗Flash芯片规划出成千上万个Blocks,每个Blocks再区分成几十个最小写入单位的Page。

Flash存储器操作特性就是只能更动、写入一个page,而抹除作业则以一个区块为单位。因此像NAND Flash存取上,大多采取一有新数据就先写到未使用的新记忆页的Write once法则,旧的记忆页仅标示成可使用,待日后做Garbage Collection时才回收使用;而Flash控制芯片会使用Wear-Leveling平均抹写技术,平均并摊平Flash芯片内每个Block被抹写的次数,避免数据反覆写到同一个区块的机率,以提昇Flash整体使用寿命。而像是MLC Flash来说,还需考虑到只能从较低页号码依序写入、有限制次数且相邻页存取、读写干扰的问题。

档案系统对逻辑区块做读写时,控制芯片会经由FTL层做逻辑对实体区块查表转换作业,由于采一对一的区块转换,等同用相同Flash容量的DRAM来储存转换表数据浪费成本,有许多像是依Flash区块数做除以特定值与取余数方式,计算出两段式索引参照值的方式;另一种则是动态配置逻辑╱实体区块转译表的链结式结构,以平衡逻辑区块转换效率与转换表空间。

随着制程演进,NAND Flash读写耐用度越来越低,数据保存能力越来越差。以SLC来说,读取、写入速率、抹写耐用度、数据错误率分别为235Mbps、23Mbps、60,000次、10的负9次方(十亿分之一),到MLC变成109Mbps、6.3Mbps、3,000次、10的负6次方(百万分之一),而TLC变成27Mbps、0.8Mbps、500次与10的负5次方(十万分之一),错误率越来越高,可以透过控制芯片的ECC做修正,但这会大幅增加控制芯片的成本与执行资源。因此对NAND Flash来说,技术上的问题与挑战,在于效能、单位储存成本与可信赖度。

PCM相变存储器的发展趋势与应用位阶

前面提到PCM存储器是定位在介于DRAM与NAND Flash之间,单位储存成本比NAND Flash但比DRAM便宜。相较于NAND Flash而言,PCM具备至少一百万次的抹写耐用度的可信赖度,以及比NAND Flash还快的写入速度,读取速度更是跟当前DRAM相当,只有写入数据时比DRAM的耗能高与较长的延迟时间。目前业界对于PCM的应用位阶,倾向于以PCM做为介于DRAM与Disk之间的中介存储器,或可直接做为存储器(Memory) 使用;另外一方面则是做为较快速的储存装置,需要设计由PCM往上叠出一个PCM-FS实体档案系统层,由Disk往上叠出一个EXT3格式的档案系统,PCM-FS与EXT3再往上堆砌叠出虚拟档案系统(Virtual File System,VFS)。

郭大维提到,两年前三星(Samsung)曾尝试在旗下某款手机,直接用PCM存储器来取代DRAM与NAND FLASH,并做市场测试。PCM要取代DRAM,如何应付CPU以奈秒等级(nano sec)快速要求配置存储器,要能快速找到一个被写入最少次数的PCM记忆页,同时应付区域性经常存取(Locality in Access),并兼顾对PCM记忆单元电路写入次数最小化的随机或特定演算法平均抹写法则等问题。

台大针对这项议题做过一些测试研究,像是最近使用的零查找的虚拟存储器管理技术(Age-Based PCM Wear Leveling with Nearly Zero Search Cost),将最近用过的记忆页抛弃,并摆置在分页转译表离的越远、越不容易在被存取到越好。另一种是参考PCM记忆页特性的阵列存取排序法,纪录每一个PCM记忆页被存取的次数与频率,然后做排序,使系统永远能配置到最少(最新鲜)的PCM页,以增加平均抹写的效用与耐受度。

当进一步PCM要导入服务器时,得考虑像快取(Caching)、缓冲(Buffering)、数据迁移(Data Migration)与应用探勘(Application Tuning)等跨应用层之间的最佳化,数据库架构必须重新翻新,从索引值设计、记录与修复、复制支持到应用程序的探索语法等都得改变。像导入最小写入索引化(Indexing and Small Writes)与封包╱快取化(Packing and Caching)的技术研究。