OCZ Vertex 4系列固态硬盘深入芯片级评测与解析
文章开始前先引用下Tom's Hardware 针对OCZ Vertex 4系列掉速现象的分析和解释,因为这也是我考虑去买块OCZ Vertex 4 128GB研究下算法的因素之一,好奇心驱使,另外是想验证下OCZ官方的说法到底靠谱不。
这段6月27日OCZ官方给Tom's的解释我胡乱翻一下:
针对Vertex 4 搭配最新固件的表现,OCZ 提供给了我们一份官方声明予以澄清。我们(指Tom's)尚未确认Vertex 4 在“性能模式”和“储存模式”间来回切换需要多少时间:
在开发1.4 版固件之前的相当长一段时间里,OCZ收集着来自它们选出的测试案例用户数据使用习惯和资料存储的模式,它们希望结合这次固件更新更直接的解决一些问题。 它们发现大部分的用户SSD往往留有大部分未使用的空间,这些用户利用SSD作为系统盘、数据盘,或只是存放对性能有要要求的应用程序。在1.4 版的固件中,OCZ 利用了这些调查结果,针对垃圾回收功能做了优化,以便为这种类型的使用者提供可以大幅提升SSD性能的固件。这意味着那些没用到一半容量的SSD,可以享 受到进一步性能的提高,并且在SSD使用超过一半的容量时,垃圾回收功能算法会根据数据的使用频繁度重新最佳化。在这段转换期间可能会有些许延迟,但这属 于单一事件,而且整体性能回快速回升,这样做可以进一步提升我们客户群体的SSD体验。
看完上面这段官方的回复,下面用我对这几天测试下来的结果,解析OCZ VERTEX 4 系列固态硬盘1.4RC固件之后的提速原理部分。
我们知道闪存有SLC和MLC之分,当前在OCZ VERTEX 4系列固态硬盘上采用的闪存颗粒都属于MLC闪存。MLC闪存比SLC闪存慢,至于为什么慢?我这里解释下,搞懂了之后会让后面OCZ Vertex4系列固件提速原理更好的理解。
上图是SLC闪存和MLC闪存, SLC闪存可以表示状态“1”或者“0"就是1bit,而MLC闪存可以表示状态“11”,"10","00","01"就是2bit。 其中前面一个数字我们叫高位(Upper Page,MSB),后面个可以叫低位(Lower Page, LSB)。
MLC是如何读取的呢? 需要分2步走,先判断LSB,再判断MSB,总共需要读取2次或者3次电压判定才能得知正确的状态,所以造成读取延迟比SLC高大约2.5倍。不过由于 NAND的读取延迟本来就不高,而且MLC相比SLC能多表示1bit,因此对SSD的全局性能起到的影响并不多,可以忽略。