小李同学 keep digging deeper
硬件

计算机硬件中总线、协议、接口是什么含义,我的固态硬盘为什么还是很慢

2 阅读 — 字

一块固态硬盘跑不到标称速度,原因通常不在颗粒,而在它走的那条路。要弄明白这件事,得先把总线、协议、接口这三个词分开。

总线:数据走的路

元器件之间有沟通的需求,A 要和 B 说话,就得有条通路。CPU 想和显卡交互数据,需要一条通往显卡的电路;和硬盘、内存交互,同样需要这样一条电路。这种不同设备之间交互数据的通路就是总线(Bus)。

总线是物理结构,有承载能力,不可能所有数据都秒传。单位时间内能传多少数据,叫带宽。目前电脑内的传输总线有三种:民用是 SATA、PCIe,服务器是 SAS。

协议:两边说话的规矩

协议就是两个设备之间交互的规矩,包括:

  • 如何识别对方
  • 如何建立链接
  • 使用讯号的类型
  • 数据编码解码方式
  • 数据传输类型
  • 数据传输方式
  • 物理层电压电流
  • 保持和截止时间

两边的协议一致或相互兼容,才能互相通讯。

从硬盘读一次数据,要同时满足三件事:数据协议做沟通、传输总线做媒介、物理接口把硬盘接上。目前硬盘的数据协议有四种:民用是 IDE(早期协议,已被淘汰)、AHCI、NVMe,服务器是 SCSI。

接口:插上去的那个头

有了协议和总线,还需要物理层面的接口。民用接口主要五种:SATA、mSATA、SATA Express、PCIe、M.2(M.2 又分 B-Key 和 M-Key),企业级是 U.2 和 SAS。

三者相辅相成。协议定得再好,总线和接口不匹配,硬件实力也发挥不出来;反过来总线接口很强,协议拖后腿,一样跑不动。任何一个环节成为瓶颈,整体性能就卡在那里。

实际选硬盘时,协议和接口层面往往不用细究,看传输总线的承载能力就够了——大部分硬盘的性能发挥都受制于总线。

总线的带宽

SATA

目前普及最广的是 SATA 3.0,理论带宽 6 Gbps。

PCIe

PCIe 的带宽和通道长度有关,x4 的速率就是 x1 的 4 倍。

SAS

理论带宽 12 Gbps。

接口与它背后的总线

SATA

SATA 接口用 SATA 总线、AHCI 协议。SATA 3 的理论速率上限是 600 MB/s,加上损耗和干扰,实际最多跑到 500 多 MB 每秒。所以只要走 SATA 3,不管是固态还是机械,都跳不过这个上限。

mSATA

同样是 SATA 总线 + AHCI 协议,这个接口在淘汰下来的老笔记本上很常见。它诞生的目的就是给 SATA 固态缩体积,但同样绕不开 500 MB/s 的限制。

SATA Express

用 PCIe × 2 的总线,既可以走 AHCI 协议,也可以走 NVMe。为了向下兼容,它能当成两个普通 SATA 用,也能整条接口走 PCIe × 1 或 × 2。

M.2

M.2 是三者里最容易被混淐的,因为它三种组合都支持:走 SATA 总线 + AHCI 协议时,它和普通 SATA 盘没区别,速率同样卡在 500 MB/s;走 PCIe 总线 + AHCI 协议是一种;走 PCIe 总线 + NVMe 协议是另一种。最后这种目前用得最多,大部分固态是 PCIe 3.0 × 4,也就是 4 GB/s 以内。

B-Key 的豁口在左边,M-Key 的豁口在右边。

PCIe

PCIe 既是总线,也是接口。主板上横着的长槽短槽就是 PCIe 插槽,显卡插这里,无线网卡、有线网卡、采集卡、声卡也插这里。直接以 PCIe 为接口的固态多见于超高性能企业级产品,民用还是以 M.2 为主。

SAS

SAS 接口用 SAS 总线、SCSI 协议,服务器上用得很多。可以理解为强化版的 SATA:功能更多,也支持更快的 SAS 总线,并且向下兼容 SATA。

U.2

U.2 从 SAS 接口改款而来,除兼容 SATA 还能兼容 SAS,另外提供了 PCIe × 4 总线的支持,同样常见于服务器。

PCIe 总线的硬盘,接口大部分可以互相转接,所以接口本身不是限制速率的决定性因素。判断一块硬盘的速率上限、以及主板会不会拖慢它,还是看它用的总线比较准,单看协议会得出错误结论。

文中插图和部分文字引用自【【硬件科普】硬盘的SATA M.2 NGFF NVME是什么意思,详解硬盘的总线协议与接口】,感谢原作者的分享

本文作者 小李同学,转载请注明出处。

评论

还没有人留言。

写一条

提交后会先进站主的待审列表,通过之后才公开。

搜索文章

输入关键词搜索文章。