自从有了网购,电脑配件出了问题也懒得跑电脑店了,直接网购个替代品换上。一方面主板厂商的设置越来越人性化,一方面也因为装机的方式越来越多样,发展到后来购买电脑主机也化整为零,直接采购一批配件自己装起来玩。支持NVME的硬盘网购时见过不少,一方面比sata稍贵,一方面这货看着跟个内存条似的,往往连个外壳也没有,生怕一个不小心给它装散架了。
前几天受朋友委托装一台新机,想配一块固态硬盘,发现两者的价格也相差无几,于是就搜索并学习了一下这二者的区别。原来这两个名字代表了俩个不同的概念:
模拟串行高速接口
从接口上来看,SATA对热插拔很友好,早先台式机装机市场的SSD基本上都是SATA的,现在的机械硬盘也是SATA接口居多。但速率上最高只能到6Gb/s,上限550MB/s左右,现在已经慢慢被PCIe取代。PCIe支持速率更高,也离CPU最近。很多设备如网卡,显卡也都走PCIe接口,当然也包括SSD。现在比较主流的是PCIe3.0,8Gb/s看起来好像也没比SATA高多少,但是PCIe支持多个LANE,每个LANE都是8Gb/s,这样性能就倍数增加了。目前,SSD主流的是PCIe 3.0x4lane,性能可以做到3500MB/s左右。
传输层协议
什么是传输层协议?简单的理解,就是指数据传输的方法。IDE过低的速度,以及老旧的协议,催生了AHCI传输协议,AHCI相比于IDE,其每次传输传输一个队列中,携带32条指令,同时优化了硬盘队列,通过NCQ技术,使硬盘能够快速顺畅的读取数据而减少磁头移动带来的时间浪费。而与AHCI相匹配的SATA接口,能够提供比ATA总线更高的传输速度。但是,AHCI终究是为了机械硬盘而产生的产物,随着SSD的普及,SSD的高响应速度与读写能力在压榨着传输总线与传输协议的最大速度。因此而诞生了为SSD而生的新协议。为了能够让SSD更好的发挥速度与读写能力,NVMe随之产生。相比于AHCI,NVMe单次提供641024个请求队列,而每个队列达到了641024个请求。远超AHCI单队列32个请求的规模。NVMe释放了传输协议的限制,为了能够与传输协议的速度匹配,使用NVMe的设备都直接连接到了PCIE总线上。
物理接口
M.2是一种物理接口,支持M2接口的SSD也分为两类,一类支持AHCI协议,另一类支持NVMe协议,很多笔记本的M.2接口是同时支持两种类型的盘的。
比如上图中的M.2物理接口,左边的这种一般用于AHCI协议(SATA),而右边的接口,也是目前主流的,适用于支持NVMe协议的固态硬盘。
既然有了两种插座,那么势必会有两种…哦不…三种插头与之对应,适用于前图左边接口的、适用于前图右侧接口的、以及左右接口都能够兼容的。
比如上图中的这块就是一块兼容两种M.2接口的SSD,兼容是过渡时期的特殊需要,随着NVMe协议的进一步普及,也必然会逐渐淡出人们的视野。
个人使用上,其实两者不会让人感觉性能差别巨大到影响用户体验。SATA具有更好的兼容性,适合旧机改造升级,而对于支持NVMe协议且配备了对应接口的主板来说,既然价格差距已经可以忽略,那么NVMe协议显然是一个更顺应历史的选择。