Marvell 在CES (Consumer Electronics Show) 2016上发布了新款SSD主控 “88NV1140“,该主控的出现,可能给SSD设计带来巨大变化。
新主控支持NVMe1.2标准里的HMB (Host Memory Buffer)功能,该功能允许主控像使用SSD上的DRAM一样使用主机DRAM。具体说来,就是主机在主存中专门划出一块内存给SSD使用,该内存在物理上可以不连续,SSD可以用它来缓存用户数据,也可以拿它放映射表,具体怎么用,取决于SSD设计者。
SSD有两种设计,一种是带DRAM的,DRAM用于缓存数据和映射表,目前主流SSD都是带DRAM的;还有一种就是不带DRAM (DRAM-Less),缓存数据用主控上的SRAM,映射表采用两级映射,一级映射和少量二级映射放SRAM,二级映射数据更多的是放在Flash上,这种DRAM-Less设计多为入门级SSD使用。Sandforce二代主控是DRAM-Less SSD的代表。
带DRAM的SSD设计,其优势是性能好,因为DRAM可以缓存更多用户数据,最重要的是映射表完全可以放在DRAM,查找和更新迅速;劣势就是,由于增加了一个DRAM,提高了SSD的成本,还有就是加大SSD功耗,另外,异常掉电可能导致更多的用户数据丢失。
DRAM-Less的SSD设计,正好相反,优势是成本和功耗相对低,异常掉电用户数据丢得少(SRAM有限,不可能缓存很多用户数据);缺点是性能差,由于映射表绝大多数是存储在Flash中,对随机读来说,每次读用户数据,需要访问两次Flash,第一次是获取映射表,然后才是真正读取用户数据。
相比HDD,价格是SSD最大的劣势。因此,SSD要取代HDD,必须想办法把成本降下来。对一个SSD来说,材料成本主要来自Flash,几乎占了总成本的80%至95%。TLC和3D flash的出现,使得Flash价格/GB急剧下降,SSD价格一路走低。
由于TLC和3D flash设计原因,在写的时候需要缓存更多的数据,有更多缓存需求,DRAM-less的设计很难满足。
而带DRAM的设计又有之前提到的问题(成本高,功耗高),如何破?
NVMe1.2 HMB的出现,以及Marvell 新主控对HMB的支持,为SSD的设计提供了新的思路。SSD可以自己不带DRAM,完全用主机DRAM,用以缓存数据和映射表。
数据缓存给SSD带来的性能影响不说,单说映射表访问时间给性能带来的影响。拿随机读来说,DRAM-Less访问映射表的时间是读Flash的时间(flash page读时间+数据传输时间=~60us);带DRAM的,其访问映射表的时间是读DRAM的时间;而对HMB来说,其访问映射表的时间是访问主机DRAM的时间,具体时间不太清楚,但肯定落在前面两个时间的中间,接近DRAM SSD,远远好于DRAM-Less SSD。下面是Marvell在2015年闪存峰会上给的一张图:
HMB使SSD成本和功耗降低了,性能还很赞,相信不久的将来,基于HMB设计的SSD会大量出现在SSD市场。
想要每天看一条SSD文章吗?扫一扫,微信关注我们!或者微信搜索公众号ssdfans关注。