家用主流NVMe SSD对比横评:都是NVMe协议,差距怎么那么大?
近年来NVMe协议的M.2固态硬盘,凭借着更高性能的表现,已逐渐获得市场认可,装机时首选NVMe协议的M.2 SSD也已成主流趋势。虽然同为NVMe协议的M.2 SSD,但由于存在TLC和QLC两种不同类型的闪存颗粒,使得SSD性能截然不同。QLC虽然提升了容量但其性能和寿命都不如目前技术成熟的TLC。ITheat热点科技选取了市面上分别代表TLC和QLC的几款主流NVMe SSD来做一次全面的对比横评,告诉你为什么现阶段,TLC更值得选购。
此次参与横评的三款NVMe SSD分别为西部数据 SN500、Intel 660P以及金士顿 A1000。 对于大多数消费者来说500GB足够作为系统盘再安装一些常用的软件,所以这三款硬盘的容量我们也都统一选择500GB规格。
我们还是来看一下三块SSD的具体规格参数。
西部数据 SN500的主要组成部分其实只有一颗TLC NAND Flash闪存芯片和一颗主控,总写入为300TBW,并且其主控芯片以及闪存颗粒用的都是自家产品。毕竟西部数据在闪存方面的技术积累深厚,全球第一个3D 64层和96层3D闪存技术都出自西数之手,采用自家的主控与闪存颗粒自然也能够更好地发挥闪存的性能,成本也相对更低。
而金士顿 A1000则是采用了群联的PS5008-E8主控,512MB的DDR3L缓存芯片以及四颗128GB的东芝TLC闪存颗粒芯片,总写入也为300TBW。
Intel 660P搭载了惠荣SMI2263主控,256MB的DDR3缓存芯片以及两颗QLC闪存颗粒,总写入为100TBW。另外值得一提的是西部数据 SN500与金士顿 A1000都是走的PCI-E 3.0 x2通道,而Intel 660P则是走的PCI-E 3.0 x4通道。
相信大家都知道对于SSD来说,闪存颗粒这样的核心元器件是影响SSD性能表现的最大因素之一。目前主流的NVMe SSD大部分都是选择TLC类型的闪存颗粒,比如此次参与测评的西部数据WD Blue SN500与金士顿A1000都是搭载3D NAND TLC 64层闪存颗粒。也有小部分固态硬盘则是采用了目前还并不算常见的QLC闪存颗粒,比如Intel 660P就是配备的3D NAND QLC 64层闪存颗粒。那么TLC与QLC有什么区别,哪一个更好呢?
首先是在稳定性与寿命方面,QLC由于单位存储密度更大,是TLC的两倍,所以其电压更难控制,从而影响到性能以及稳定性;而Intel 660P采用QLC闪存的写入总数据量大约为100TBW,只是同样容量西部数据 SN500采用TLC闪存的三分之一左右,因而我们也能够对比出QLC寿命相较于TLC会低很多。在性能方面,虽然采用QLC闪存颗粒的SSD在缓存容量内也能够达到与TLC相近的读写速度,但是一旦缓存耗尽后其持续写入速度将会大幅下跌,甚至速度会不敌传统的机械硬盘。
不过QLC闪存颗粒也不是没有优势,它的生产成本相较于TLC更低,虽然目前QLC的技术可能还不够成熟,但是也许在未来随着成本的下降,取代机械硬盘也不是没有可能。当然,这还需要时间去验证,作为消费的我们也不用着急,如果QLC技术发展更为成熟,肯定会有很多闪存厂商争先恐后推出容量更大,价格更优的SSD。
测试平台
介绍完毕,接下来我们就通过软件以及实际应用场景的测试来看一看哪一款SSD表现最出色吧。
首先是CrystalDiskMark,经过测试我们可以看出西部数据 SN500的顺序读写分别为1751.9MB/s与1465.7MB/s;金士顿 A1000顺序读写分别为1601.7MB/s与1042.8MB/s;Intel 660P顺序读取达到1843.6MB/s,但是写入垫底,仅有981.7MB/s。总体来看西部数据 SN500,表现更好。
而在4K Q32T1的测试项目中,西部数据SN500的读取为439.3MB/s,写入为348.2MB/s;金士顿 A1000的读取为535.6MB/s,写入为524.8MB/s;Intel 660P的读取为345MB/s,写入为541.6MB/s。英特尔的写入表现最好,而金士顿的读取表现最好。
在AS SSD BenchMark测试中,西部数据SN500达到了3453分,而金士顿则为2438分,Intel 660P最低,仅为1851分,三款SSD的差距表现还是很大的。
西部数据 SN500读写分别达到1582MB/s与1385MB/s。金士顿 A1000的读写成绩分别为1379MB/s与943MB/s;而Intel 660P表现与之前相似,读取达到最高,达到了1685MB/s,但是写入最低,仅有925MB/s。
在4K测试项目中,西部数据 SN500读取速度为27.31MB/s,写入达到了149.83MB/s,金士顿 A1000的读取达到25.79MB/s,写入为110.78MB/s,Intel 660P在三者中读取最佳达到了44MB/s,写入也有144.34MB/s,仅稍弱于西部数据 SN500。
同样,在TxBenchMark测试中,西部数据 SN500顺序读写分别为1700MB/s与1463MB/s。金士顿 A1000顺序读写分别为1587MB/s与1040MB/s;Intel 660P读取达到1791MB/s,稍强于西部数据 SN500,但是又一次在写入方面落后于前两者,仅有996MB/s。
而在4K Q32T1的测试中,西部数据 SN500的读取509MB/s,写入为445MB/s;金士顿 A1000的读取为522MB/s,写入为501MB/s,Intel 660P的读取为340MB/s,写入为521MB/s。
通过上面的三款软件测试我们可以看出其测试结果都表明在顺序读取方面,Intel 660P表现最好,稍稍强于西部数据 SN500,金士顿 A1000最弱;顺序写入方面西部数据 SN500拥有最佳的表现,并且能够拉开另外两款SSD较大的差距;而在4K读取方面,Intel 660P表现最好,领先于西部数据 SN500与金士顿 A1000;4K写入方面,三者虽然互有胜负,但综合来看还是Intel 660P更强一些,但是相较于另外两款SSD并没有绝对性的优势。
在PCMark 8的测试中,我们测试西部数据SN 500的硬盘速度为401.44MB/s,金士顿 A1000为271.79MB/s,而Intel 660P略高于金士顿 A1000,达到了287.23MB/s,不过其成绩相较于西部数据 SN500仍然有较大的差距。
上面我们有提到固态硬盘在缓存之内能够有更好的读写表现,但是缓存用完之后速度则会降下不少,有的固态硬盘还是动态缓存或是虚拟缓存。存储的文件越多,可用的缓存就越少,降速就越快,所以我们也用HD TUNE PRO对这三款硬盘进行了测试。
通过测试可以发现西部数据 SN500的缓存最少,仅有大约6GB左右,但其读取还是写入都是三者最高,虽然缓存少掉速比较早,但是掉速之后的读取仍然有1500MB/s左右,而写入也还有750MB/s上下。
而金士顿 A1000则表现更好一些达到了24GB左右,在读取上与西数SN500几乎相当,但是写入更低,掉速之后只有500MB/s。
Intel 660P软件测试的结果是拥有70GB左右的缓存,这个结果还是令我们大吃一惊的。不过其写入与读取速度没有前两者高,在掉速之后写入就像跌进了深渊,差不多100MB/s的速度,简直不敢让人相信这是NVMe协议的SSD。根据这个测试结果,我们推测Intel 660P可能是采用了全盘模拟SLC缓存设计,一旦存储的容量达到了一定程度,SLC缓存量就会降低,并且性能也会有十分明显的降低;而金士顿 A1000则可能是动态SLC缓存设计,性能会随着硬盘可用空间的减少而逐步下降。
当然软件测试反应的只是SSD的理论水平,而SSD在实际应用中的表现其实是我们更加应该关注的,为此我们也进行了以下比较贴合实际生活应用的测试。
首先是实际的文件拷贝中我们也能够很清楚地看到在空盘状态下,将一份大小为30GB的文件分别复制到三块SSD中,三者都保持了较高的写入速度,没有出现性能下降异常的状况。
其中西部数据 SN500在缓慢降速后依然保持约750MB/s的速度,耗时35秒;金士顿 A1000降速来的更晚,但是降速后速度要低于西数 SN500,所以也耗时35秒;而Intel 660P的写入要稍弱于前两者,最终耗时39秒。
西部数据 SN500
金士顿 A1000
Intel 660P
但将三块SSD都装满一半的容量时再进行该项测试,我们可以发现其中西部数据 SN500能够在初始速度保持较高的写入,后面虽然开始降速,但确实一个缓慢的过程,而且降速之后也能够稳定维持在750MB/s;而金士顿 A1000降速到515MB/s后,表现也算比较平稳;Intel 660P在复制文件时,缓存相对较多,降速时间相对靠后,但是降速之后硬盘的速度便惨不忍睹,仅维持在60MB/s左右的速度,甚至不如普通的机械硬盘速度。
最终西部数据 SN500耗时35秒,与空盘状态下保持一致;金士顿 A1000耗时52秒,相较于空盘状态下的35秒已经有了较大的差距,这说明金士顿 A1000随着硬盘可用空间的减少,实际的性能已经受到影响;而Intel 660P更是耗时215秒,与空盘状态下的表现已经是天壤之别,随着硬盘文件存储的增加,Intel 660P的性能下降十分地明显。考虑到我们在日常使用时硬盘存储的数据会越来越多,所以金士顿 A1000与Intel 660P在实际使用中降速问题应该会越来越明显,西部数据 SN500在这方面则会有更好的表现,即使随着硬盘可用空间的减少也不会有性能下降的问题出现。
Intel 660P 存储50%以上状态
在硬盘存满一半的空间之后,我们也再次对Intel 660P进行了软件测试,在HD TUNE的测试中,其缓存并没有像之前一样拥有70GB,而是在4GB左右时就彻底降速,之后便一直维持着不到100MB/s的写入速度。这也印证了我们上面的猜想,Intel 660P采用了全盘模拟SLC缓存的设计,随着硬盘可用空间的减少,SLC缓存量也越来越少,性能表现越来越差。
金士顿 A1000 存储50%以上状态
而金士顿 A1000缓存也从24GB减少到12GB,这也印证我们的猜想,金士顿 A1000是采用了动态SLC缓存的设计,随着硬盘可用空间的减少,SLC缓存量也会逐步降低,性能也会随之降低。
西部数据 SN500则是和之前保持一致,缓存容量依旧为6GB左右,降速后依旧保持着750MB/s左右的写入速度,这说明其不会出现硬盘可用空间减少性能也随之下降的情况。所以再次综合对比来看在实际应用中,西部数据 SN500能够保证在硬盘存储大量数据之后依旧保持最佳性能,而其它两款SSD则会有性能下降的表现,特别是Intel 660P的掉速情况最为严重。
接下来是实际日常环境应用的测试,解压一个30G大小的压缩包。
我们日常生活中也是会比较经常解压文件,而30GB的文件解压测试,西部数据 SN500耗时1分39秒,金士顿 A1000耗时2分15秒,Intel 660P总耗时7分10秒。三者的成绩还是比较大的,西部数据 SN500表现最好,金士顿 A1000落后其半分钟左右,而Intel 660P则与前两者有比较大的差距了。
此外我们也测试了三款SSD在安装与载入LOL游戏时的表现,其中安装方面,西部数据 SN500表现最好耗时8分11秒,金士顿 A1000耗时8分23秒,Intel 660P耗时8分18秒,三款SSD的表现有一定的差距但是不大;而载入方面三款SSD的差距则并不明显,都保持了较高的水准。
在进行读写测试时,我们也测试了这三款SSD的发热表现,毕竟SSD长时间处于较高温度的状态也可能会导致发生降速、不稳定的情况,并且夏天快来了,机箱里还是少点温度更好。
通过热成像仪测试我们可以看到,在室温为25℃的情况下,三款SSD中西部数据 SN500全速运行时最高温度为50.3℃,金士顿 A1000的温度则为52.4℃,而Intel 660P则达到了70.4℃,远高于前两者。
总结:
综合以上的软件测试以及实际场景应用测试得出的数据,我们也做了一个汇总数据对比表格,其中每个测试项目的最优成绩都已用黑体加粗。
通过表格直观的数据对比,我们可以看到软件测试中西部数据SN500在顺序写入和4KQ1T1写入方面的表现最为出色,Intel 660P则是在读取方面更为优秀,而金士顿A1000则整体表现平平。在SLC Cache、PCMark 8、文件拷贝压缩、游戏以及散热的对比环节,西部数据SN500可以说是一骑绝尘,完全是对Intel 660P和金士顿A1000碾压级别的表现,并且考虑到这部分的数据表现更影响日常使用感受,更贴近真实使用体验,所以我们认为西部数据SN500的性能表现是这三款SSD中最为优秀的。
最后,SSD毕竟不是快消品,购买SSD还是要从寿命以及长久使用的稳定性等多方面来考虑。虽然参与测评的三款SSD都拥有5年官方质保,但是西部数据SN500与金士顿A1000采用TLC闪存颗粒在相同容量下的写入寿命是Intel 660P采用QLC闪存颗粒的三倍,所以目前来说还是TLC闪存颗粒更加值得选择。再综合硬盘性能来抉择的话,毫无疑问西部数据 SN500是三款中最值得选购的。
你不孤独!我的FPGA之旅
3)瓜熟蒂落 之1 : 学习数据手册
终于来到这个令人激动的章节了。今天用的是电脑,才发现电脑上是可以发视频的,有机会把自己整得帅一点再拍吧,先坐下来,呷上一口妹夫送的正宗的铁观音!
话说要做个NAND Controller,首先得明确目的和目标,目的当然是要用它来操作 NAND了的,具体说是要来操作一个Raw NAND的。目标嘛,前期先完成简单的Raw NAND读写操作。如果能够知道NAND的读写擦基本原理是最好的了,可要讲起来又是个长篇故事。在上期文章里提到的那本英文书里的确有,还是很有趣的,特别是电路设计上有趣的事情很多,以后找个时间聊聊。今天就不在这里啰嗦了。就把当作它黑盒子, 读懂产品说明书就好了。下图是从网上找到的一款NAND产品的数据手册。
datasheet
什么, 158页,太可怕了。来点简单实际并直接的,先搞定怎么读吧。下面2图, 有点绕,大意说的是 00h命令使能数据输出,在00h-30h后拷贝NAND Flash阵列数据到缓冲区(cache register)里并使能数据输出,可以用CHANGE READ COLUMN (05h-E0h)来改变读的字节位置(COLUMN)。因为这个NAND(所有的吧?)读的时候,在器件内部物理上是按页(Page)的方式一起读出来到缓冲区cache register里的,可是IO口只有8个(以x8为例),外部世界再一个字节(Byte)一个字节(Byte)读出来的,具体 读哪个字节,就是通过 05h-E0h指令来设定的。
READ MODE
READ PAGE (00h-30h)
明白了读所需要的指令,真正的时序呢? 看下图:
REAG PAGE (00h-30h) Operation
先发00hCommand类型(注意图中的 Cycle type)指令 , 然后 2个 列地址Address (C1, C2)指令,接着3个行地址Address (R1,R2,R3)指令,然后30hCommand 指令,之后器件的RDY引脚在tWB时间后由高电平转入低电平, 也就是由Ready就绪状态转入BUSY忙状态,再经过tR 以及上升沿tRR时间后RDY引脚转入高电平的Ready就绪状态,提示数据准备好可以输出了。用户就可以在这个时刻后输出所需要的数据。是不是很简单呢?
当然读的操作有好多,比如:
READ MODES
可以根据需要和按指定的时序操作。
简单了解了读操作,那Program编程,也就是俗话说的写呢?很类似的,也有多种,比如:
Progam Operations
看下面一段文字说明:
Description of Program Operations
大体说的是 编程操作用来将数据从缓冲区(cache )或数据寄存器(data register)里移到闪存阵列里。在编程操作过程中,缓冲区(cache )或数据寄存器(data register)里的数据会被改写。在一个块(Block)里, 页(Pages,注意复数形式喔)必须按小到大(也就是0,1,2,.....)的顺序编程, 乱序(out of order)是禁止的。为什么,要求这么苛刻,这么可怕?其实不是,这是要完成可靠的编程操作的需要。这里面有很有趣的故事,今天就不深入了。接着看时序。
Timing of Program Page 80h-10h
先发80hCommand类型(注意图中的 Cycle type)指令 , 然后 2个 列地址Address (C1, C2)指令,接着3个行地址Address (R1,R2,R3)指令,在tADL后输入数据(D0, D1, .....),然后10hCommand 指令启动编程,器件的RDY引脚在tWB时间后由高电平转入低电平, 也就是由Ready就绪状态转入BUSY忙状态,再经过tPROG时间后RDY引脚转入高电平的Ready就绪状态,提示数据编程结这里是结束,不是成功,因为有可能编程不成功啊。用户就可以在这个时刻后输入70hCommand 指令查询编程状态,得到状态编码数据(图中的status)。状态寄存器的值的定义如下:
Status Register Definition
Status Register Definition (Continued)
注意看到,其中的SR Bit位 1 (实际上是累计的状态) 和 SR Bit位 0 (实际上是刚刚的操作的状态),可以知道刚才操作成功还是失败。
不能老是写啊写啊,有一天要写满的,有一天数据不要了需要擦掉的。这就是擦除(Erase)了。 擦除(Erase)是按块(Block)来的。一个块(Block) 有多大呢? 其实有很多专有的名词的,从Feature 说明上可以看到如下:
Feature
咦,提到好多名词啊,从小到大, Byte, Page, Block, Plane, Device。最终产品到底是32G还是64G,区别在于块也就是Block数目不同。还看到了SLC和ONFI俩名词,是不是很熟悉?
再来看一下擦Erase操作,
Erase Operations
擦Erase动作就是用来清除闪存阵列里一个块Block的内容,将它的页(Pages,注意复数形式)准备好用于编程Progam操作。常用的是60h-D0h 的块Block擦除指令。时序如下,应该很容易理解了。
Erase BLOCK Operation
写到这里突然想到前公司的一个同事LHN,特别倾佩她,虽然她当时刚进公司不久,和她交流时张口就说出60D0指令,当时的我一时脑袋都懵了(工作内容关系,平时没记住这些指令,)。
仨重要的操作指令操作完了,可以发现,指令分为COMMAND, ADDRESS, DIN, DOUT 四类,需要的数据周期(Cycle)略有不同。当然啦,目前为止提到的都是异步Asynchronous Interface总线的,该产品还支持同步Synchronous Interface总线的。比较一下如下的信号分配Signal Assignments,可以看到非常类似,途中高亮的地方可以看到 异步Async的WE# 换成了同步Sync的CLK了。
Signal Assignment
不知不觉手边的铁观音早凉了,需要重新泡,不过的基本操作熟悉了(对了,还有具体的tADL之类的AC参数值也要注意了。具体的比如COMMAND指令的信号如何输入,只好等下回分解了。 ),接下来就可以开始下一步设计了。做为本节的结尾,上个阵列相关的AC参数特性值。高亮的地方是选择产品时的一些重要参数。
Array Characteristics
相关问答
flash 如何 复制 不同的文件?具体步骤如下:1、打开需要复制的源文件。2、按“SHIFT+F2”,双击选择需要复制的场景。3、解锁该场景中所有图层,按住“SHIFT”键,鼠标点击该场景中所有图层...
flash 中怎么 复制 影片剪辑 - 懂得要在Flash中复制影片剪辑,可以使用以下步骤:1.在舞台上选择要复制的影片剪辑。可以使用选择工具或直接单击影片剪辑。2.按Ctrl+C(Windows)或Command...
flash 直接 复制 怎样才能用?要使用Flash直接复制,您需要执行以下步骤:1.找到要复制的Flash对象,并确定其存储位置。通常,Flash对象是.swf文件。2.将Flash对象以文件的形式保存到计算机...
flash 的场景怎样 复制 ?具体步骤如下:1、打开需要复制的源文件。2、按“SHIFT+F2”,双击选择需要复制的场景。3、解锁该场景中所有图层,按住“SHIFT”键,鼠标点击该场景中所有图层...
腾讯视频怎么 复制flash - 懂得那些视频都无法直接调用的,如果你是想发到别的地方,可以用微博类的分享功能。
flash 组合快捷键是什么?工具材料:Flash所有版本操作方法01【FLASH快捷键一】A箭头L套索H移动M放大镜I墨水瓶U油漆桶P铅笔B笔刷N直线T文字O...工具材料:...
怎么把 flash 拷贝下来?只回答chrome的,我个人的经验,打开一个视频网页后缓冲,按F12,在elements中ctrl+F搜索SWF,一般能找到源文件的url(以swf结尾)只回答chrome的,我个人的经验,打...
IE打开视频提示需要安装Adobe flash - Microsoft Community[回答]nswers社区,很高兴能和您一起尝试解决问题。关于您的这个问题可能是由于使用了360清理后造成的。毕竟三方的优化工具可能对系统并不熟悉,...关于您...
用 flash cs5怎样做循环 复制 -ZOL问答第一种方法:选择要复制的元件,然后借助快捷键(ctrl+d)第二种方法:选择元件(必须是影片剪辑,图形或者按钮元件,位图),然后找到对齐面板,如下图最后点复制并变形...
视频播放地址怎样 复制 ?1.在你当前看的flash下,点击工具栏查看源码看到类似这样的代码其中引号内的就是你要的东西,但是还没完2,当你引用它的时候,记得把正确的路径加进去比...