跳过正文
存储【接口、协议介绍】
  1. 存储系统/

存储【接口、协议介绍】

·2088 字·5 分钟·
目录
存储【接口、协议】 - 这篇文章属于一个选集。
§ 1: 本文

计算机存储接口经历了SATA、mSATA、SATAExpress、M.2、U.2多次迭代,这些是物理上的接口形式。我们无法通过外观分别具体使用的通信协议。存储系统的性能与兼容性,不仅取决于硬件设备的容量和速度,更与 物理接口、传输协议、以及上层逻辑协议​ 密切相关。

存储【接口、协议介绍】
#

硬件接口
#

物理接口是指存储设备与计算机主板之间进行 物理连接​ 的硬件接口,包括 连接器类型、引脚定义、电气特性、传输速率上限​ 等。

接口形态
#

接口名称描述
SATA(Serial ATA)L 形接口;7 针连接器传输数据15 针连接器用于供电
mSATAmSATA 是一种专为小型化设备设计的接口。它的出现是为了在不牺牲性能的前提下,将 SSD 集成到更薄、更小的设备中。采用 52 针连接器,直接插入主板上类似于 Mini PCIe 的插槽中。
M.2扁平卡式接口,直接插入主板插槽;B-Key、M-Key 或 B+M Key 决定了支持的协议和 PCIe Lane 数量。
U.22.5 英寸 硬盘形态,但连接器更大、更复杂;企业级标准:专为高性能和高可靠性设计,支持 NVMe (PCIe) 协议。支持热插拔。
PCIe插槽标准 PCIe 扩展卡形态 (AIC - Add-In Card),直接插入主板长槽;最高性能:利用主板上的 PCIe Lane,通常用于最高端的 NVMe SSD 或 RAID 解决方案。

传输协议
#

传输协议定义了 数据在物理接口上是如何被组织、调度和传输的 ,定义了如何在物理线缆上传输数据、握手、错误检测和链路管理等;是存储设备与主机控制器之间的"通信语言"。

传输协议层次标准作用
SATA通道协议SATA (Serial ATA)物理和链路层协议。定义了串行信号如何在 SATA 线缆上传输、握手和错误控制。
PCIe通道协议PCIe (PCI Express)物理和链路层。定义了数据如何在 PCIe Lane 上并行传输(例如 x2, x4, x8, x16)。

一、SATA
#

历史悠久,简单稳定,是传统 HDD 和早期 SSD 的标准。速度上限通常为 600 MB/s (SATA 3.0)。

二、PCIe
#

PCIe(Peripheral Component Interconnect Express)本身是一个高速串行总线标准,定义了数据如何在主板上的插槽和芯片之间传输,它是一种通道协议。在其之上,有多种协议用于不同类型的设备。在高性能 SSD(如 M.2 NVMe SSD)的标准。速度可达数 GB/s,远超 SATA。

PCIe 不仅用于存储,还是现代计算机中连接所有高速外设的基础通道:

  • GPU (显卡): 直接使用 PCIe 协议传输图形数据。
  • 网卡 (NICs): 高速网卡(如 10G/25G/40G/100G/200G/400G Ethernet)通过 PCIe 传输网络数据。
  • USB 控制器: USB 主控制器通过 PCIe 与 CPU 通信。
  1. linux查看PCIe通道、速率
  • Width与插槽、配件带宽有很大关系。通常这里也可以在BIOS中调整(X8X8、X16、X8X4X4)
[root@debian ~]# lspci -s 9b:00.0 -vvv | grep LnkSta
		LnkSta:	Speed 16GT/s (ok), Width x16 (ok)
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ EqualizationPhase1+

上层协议
#

协议名称兼容接口特点优势局限
AHCISATA为 SATA 设计,支持 NCQ(原生指令队列)兼容性好,支持热插拔延迟较高,不适用于 NVMe SSD
NVMePCIe、M.2、U.2专为 闪存/非易失性存储​ 设计,基于 PCIe极低延迟,高并发,高吞吐需要 PCIe 接口,不兼容 SATA

一、AHCI
#

上层协议理解为 主机控制器接口 ,定义了操作系统(Host,主机)如何与 SATA 硬盘的控制器进行通信和编程的标准。Intel 提出的一种新的编程标准,用于定义操作系统如何与 SATA 芯片组/控制器交互。

核心功能:

  • NCQ (Native Command Queuing, 原生命令队列): 允许硬盘优化读取和写入命令的执行顺序。这对于机械硬盘(HDD)尤其重要,因为它能通过优化磁头移动来显著提高性能。对于 SSD 也有性能提升。
  • 热插拔 (Hot-Plugging): 允许用户在不关闭计算机电源的情况下连接或断开 SATA 硬盘。

二、NVMe
#

NVMe(非易失性内存主机控制器接口规范) 是专门为 SSD 闪存设计的全新标准,它通过 PCIe 通道直接连接 CPU,并取代了 AHCI

  • 消除瓶颈: 绕过了 SATA 接口的 600MB/s 速度限制。
  • 优化队列: NVMe 支持高达 64000 个命令队列,每个队列支持 64000 个命令。而 AHCI 只有一个队列,最多只能处理 32 个命令。这极大地提高了固态硬盘的并发性能和低延迟表现。

NVMe-oF
#

为什么需要 NVMe-oF

机械硬盘时代,因为硬盘性能太低,需要把多个机械硬盘连接在一起形成磁盘阵列,从而提供更高的性能或更大的容量。随着固态硬盘的发展,固态硬盘结合机械硬盘可以做成缓存分层,或者全闪存满足应用需求。随着近一步发展,NVMe SSD普及,计算机已经不能完全发挥NVMe SSD的性能。目前有两种方式:减少软件开销、计算与存储分离。计算与存储分离带来了新问题,如何解决网络带宽和延迟。

对于 NVMe-oF ,使用 RDMA (包含InfiniBand、RoCE、iWARP) 的 NVMe-oF和使用 FC-NVMe 的NVMe-oF。RMDA 支持在不涉及处理器的情况下将数据传输到两台计算机的内存。提供低延迟和高吞吐量。

  • NVMe over RDMA对比NVMe over PCIe;NVMe over RDMA在软件上的开销很小,基本可以忽略,可以认为跨网络访问和本地访问一样快。

结语
#

存储接口的演进史,就是一部计算机追求速度、效率与小型化的历史。从最初的 IDE/PATA 到串行化的 SATA,再由 AHCI 引入 NCQ 优化机械性能。然而,固态硬盘(SSD)的出现彻底颠覆了格局,催生了基于 PCIe 通道的 NVMe 协议,从而打破了 SATA 的速度瓶颈,极大提升了数据并发处理能力和延迟表现。未来,存储将继续向更高带宽、更低延迟,以及更紧凑的 M.2 形态迈进。


参考

存储【接口、协议】 - 这篇文章属于一个选集。
§ 1: 本文

相关文章


微信赞赏
微信赞赏
关注公众号
关注公众号
支付宝赞赏
支付宝赞赏