去掉DRAM PCIe固态硬盘有望普及

发表于 讨论求助 2019-11-17 06:13:37

yoga3pro
  近几年,SSD发展势头凶猛,特别是消费级和企业级SSD均有显著的增长。在2017年第四季度,已经有超过50% notebook开始采用消费级SSD。另外,还有很多国产品牌撑起了消费级SSD零售重担。



  现在消费级市场上的SSD主要有两种,一种是SATA SSD,另外一种则是PCIe SSD。其中,SATA SSD依旧是市场主导。但是,与SATA SSD相比,PCIe SSD的性能有成倍的提升,在当下,NVMe/PCIe已成为时代的趋势。估计在2018年,市场上采用PCIe Gen3的SSD将达到50%。



  既然,PCIe SSD发展这么好,为啥在市场上还不能普及?归根结底,就是一个字:贵!
  消费级SSD市场面对的是终端用户,而非数据中心等企业用户。消费级SSD潜在用户,在换SSD之前用的都是机械硬盘HDD,换了SATA SSD之后,性能也会有显著的提升,如非性能发烧友,何必花大价钱换PCIe SSD呢?所以,最终造成的情况就是,PCIe SSD在消费级市场只是高端旗舰电脑或者有钱人的选择,寻常百姓只能望而却步。
  为了改善这种尴尬的局面,SSD厂家就开始动脑筋了,不是PCIe SSD成本高嘛,那好,我把DRAM颗粒去掉,做成DRAM-Less PCIe SSD. 很显然,省掉了DRAM芯片,成本自然下降了,对PCIe SSD的普及起到积极的促进作用。
  英雄所见略同!DRAM-Less PCIe SSD已经成为了众多SSD厂商的选择,主控厂商也相继发布支持DRAM-Less的PCIe主控芯片,如Marvell的88NV1160,慧荣科技的SM2263XT等。
  在PCIe SSD去掉DRAM之后,SSD端就少了缓存,为了减少缺省DRAM所带来的性能下降,人们又想到了Host Memory Buffer(HMB, 主机内存缓存区)。在NVMe 1.2 Spec开始引入HMB功能,不过,这个功能是optional,并不是必须的。HMB功能的作用就是在主机的DRAM内存中留出一块缓存区专门供SSD运用,如下图:


不过,对于HMB有几点需要注意:

(1)HMB功能由Host操纵,Enable或者Disable;
(2)初始化阶段,Host需要向controller提供一份"可用内存记录表", 以告知Controller,Host哪段内存是供SSD专属运用的;
(3)主控负责对Host提供的那段内存进行初始化;
(4)在关机或者RTD3或者其他要求Host重新分配内存的事件发生之前,Host需要告知Controller释放那段专属的内存空间;
(5)Device允许向Host要求最小分配内存空间;
(6)在发生意外插拔时,Controller需要确保数据没有遗失或者损毁。

  理解了HMB的概念,那HMB到底对SSD有没有好处呢?我们让数据说话。

  顺序工作负载



  从上图顺序读和顺序写的性能表现来看,HMB对顺序工作负载的性能影响不大,作用可以忽视。

  随机工作负载



  对于随机读,HMB对SSD性能提升效果显著,特别是1024GB SSD,加入HMB之后,性能提升了70%,全盘读性能也提升了40%。



  对于随机写,HMB对SSD性能提升的效果更加显著,1024GB SSD的随机写性能直接跃升5倍之多。通过上述实验对比发现,HMB对顺序工作负载基本没有效果,对随机工作负载的提升效果极大。那么,这里,我们在思考一个问题:HMB的大小对随机工作负载有影响吗?答案是肯定的,看下图:



  从上图发现,当HMB的大小为1024MB时,SSD的随机工作负载效果最佳。
  HMB是好,但能完全信任吗?
  在HMB注意事项里,我们提到"在发生意外插拔时,Controller需要确保数据没有遗失或者损毁。" 在HMB里面存在的内容主要有:数据,mapping table, metadata等,如果发生数据遗失或者损毁,那么对用户来说,肯定是不愿意接受的。



  为了保护HMB里面内容,那就需要请出End-to-End数据保护这位大神了,在这里,E2E就不再展开咯,具体参考NVMe Spec。


  写在最后


  PCIe SSD有了DRAM-Less和HMB之后,可以保证成本下降的同时,性能依然保持足够的竞争力。
发表
26906人 签到看排名