基于冯诺依曼结构的计算机,从根本原理开始就和存储器的性能息息相关。即使经过如此多年的发展,为了解决存储方面的瓶颈,计算机仍然不得不使用寄存器、缓存、内存、硬盘这样的多级缓冲存储结构,以达到满足性能需求并降低成本的要求。去年,英特尔和美光宣布了全新3D XPoint存储技术,能够在很大程度上解决存储系统中硬盘和内存速度差异太大的问题。和目前的存储器介质相比,3D XPoint除了工艺和部分结构,在读写原理和特性上有了革命性的进步,今年也许会是首款商业化的非易失性超高速、长寿命存储设备,因此值得我们重点关注。
存储器的性能是PC设备上目前的短板。这一点从很多用户由HDD更换为SSD后,感觉像是“换了一个电脑”就能体现出来。HDD目前的传输速度往往在200MB/s以内,寻道时间约为10ms级;SSD传输速度为数百MB/s到几GB/s,寻道时间约为0.1ms以内;更快的内存带宽为几十GB/s,延迟时间低至ns级。再向上还有更高速的缓存、寄存器等设备。
随着制程提升,NAND的容量正在迅速提升,但寿命和延迟等问题,并没有革命性的变化。
内存的基本技术结构也已经很久没有革命性的变化。图为目前快的DDR4内存,仍旧只能充当暂存器。
抛开和处理器紧密相关的高速缓存和寄存器不说,先来看内存和外部存储这两个级别。目前我们使用的内存主要是DRAM。DRAM的核心问题是易失性,其它方面的表现优秀—比如在性能上DRAM的延迟很低(纳秒级别)、带宽较为充裕;寿命方面由于原理所致,DRAM寿命很长(只要不是物理损坏、接触不良或者击穿)。不过,DRAM的存储需要不停供电,断电就会丢失存储的数据。从DRAM被发明出来到现在,比如从SDRAM到后来的DDR、DDR2、DDR3以及目前的DDR4,DRAM只是不断地在预取值和总线上进行调整,核心的存储架构其实变化不大。
再来看目前广泛应用于存储设备的NAND闪存。NAND闪存分为SLC、MLC、TLC等多种分支颗粒。从寿命上说,NAND是有平均读写次数的寿命的,即使是性能好的SLC NAND颗粒,其寿命也比DRAM小得多。这对需要长期不断读写数据的设备来说并不是一个好消息。虽然人们可以通过设置缓冲空间、平衡磨损算法、提前设置寿命预警来确保NAND不会在使用的时候“掉链子”、引发数据丢失,但寿命依旧是NAND在使用中不可回避的问题,毕竟数据是无价的。此外,受制于存储原理,NAND延迟较高,尤其是写入时存在充电时间,怎么也快不起来,目前只能被用作外部存储设备。但在今天,由于之前有性能更低的HDD机械硬盘的存在,基于NAND颗粒的SSD仍旧让用户感受到了性能的巨大提升。