本文说明SSD中,DWPD(Drive Writes Per Day)所代表的意义与正确的计算方式,并分析各种影响DWPD的变因和增加DWPD的方法,同时也说明哪些应用领域需要较大的DWPD。
要判断SSD是否适用,除了容量和效能之外,寿命长短也是非常重要的一个指标,而SSD的寿命通常跟写入的数据总量有关 – 越频繁写入,SSD就越快损坏。衡量SSD寿命主要有两个指标,一是TBW(Total Bytes Written),代表SSD在损坏前,总共可以写入多少Bytes。由于一般SSD大多可以写入几十到几百Terabytes,因此TBW也有人当成Tera Bytes Written,代表SSD总共可以写入多少Terabytes。而另一个指标就是DWPD,代表在保固期内,用户每天可以全盘写入多少次。假设SSD的容量是256GB,DWPD是1.5,只要用户每天平均写入的数据量不超过256GB x 1.5 = 384GB,则SSD在保固期内不会损坏。
不同SSD的TBW和DWPD,通常跟SSD固件算法、NAND Flash种类,以及SSD的预留空间有关。一般而言,计算公式如下:
NAND Size(TB)是指SSD所连接的NAND flash总容量,以Terabytes为单位;PE Cycle是NAND能写入擦除的次数、WAF(Write Amplification Factor)是写入放大比,而Wear Level Factor则是指均衡擦除的参数。WAF和Wear Level Factor主要跟SSD固件的算法有关、SSD Capacity(TB)是SSD的容量、Warranty day则是保固的天数。由上述公式可知,要增加SSD的DWPD,除了改善固件的算法,就只有两种方法,一是使用PE Cycle较高的NAND flash,例如SLC NAND的PE Cycle通常是20K - 60K,而TLC NAND则只有1K - 2K,但SLC的价格比TLC高非常多。另一种方法则是增加SSD的预留空间,也就是增加OP(Over Provisioning),这两种方法都会增加SSD的成本。因此有较高的DWPD的SSD,售价通常也会比较高。
目前的SSD为了提高效能和稳定性,常会将TLC NAND的某些block开成Pseudo SLC,当成SLC cache使用,而SLC cache也分为Static SLC和Dynamic SLC两种。如上图所示,Static SLC代表这些block永远都是当Pseudo SLC,Dynamic SLC则是有可能动态切换成TLC使用。若采用这种作法,上述计算DWPD的方式则会有些问题,因为Pseudo SLC跟TLC的PE Cycle有很大的不同,同时计算WAF时,是否有将SLC cache的影响加入,各家控制器厂商的算法也不尽相同,为了避免这些问题,应该采用下面的公式来计算DWPD:
上述公式是将Static SLC跟TLC两个区域分开计算,因为这两个区域互相之间不会做wear leveling,所以只要有任一个区域到达PE Cycle,则SSD的寿命就到尽头了。因此取两个区域的TBW的最小值,最后再计算DWPD。在此需注意:由于Dynamic SLC区域的PE Cycle应该跟TLC一样,而且会跟TLC block做wear leveling,所以需合并计算TBW。有些SLC cache的作法是round robin(循环制),每一个block的erase count都一样,所以Wear Level Factor就是1。在此请注意,上述公式若是只有一个区域,则会与前一页的公式相同。
而在计算DWPD时所写入的模式时,JEDEC有定义两种workload(作业量),一种是client workload,属于消费型的应用领域;另一种则是enterprise workload,主要是用于企业级的SSD。这两种workload随机写入的范围,对SSD WAF的影响非常大。
在计算出DWPD之后,若要验证此数据是否正确,则有以下数种方法:
通常云端和监控这类的应用领域,因为写入较频繁,所以需要采用有较高DWPD的固态硬盘,通常DWPD值要有1-3。而一般使用者,或是以读取为主的应用领域,因为不太可能每日都大量写入数据,所以选用DWPD 0.2至0.5左右的固态硬盘就已足够。