NVMe 支持 - 隐式还是显式?

Cha*_*son 4 m.2 nvme

在仔细研究可用的 Z170 主板后,我对 NVMe 兼容性感到困惑。你能澄清一下我的假设是正确的还是严重误导的。

考虑主板X。它有一个 M.2 插槽,支持“SSD 和 PCIe (3.0 x4)”模式。它没有 U.2 连接器,NVMe 的规格或手册中也没有提及。假设:无法保证 NVMe 支持,但这是 BIOS 问题而不是硬件缺陷,即可以通过 BIOS 修订版实现。

考虑主板Y。它有一个 M.2 插槽,支持“SSD 和 PCIe (3.0 x4)”模式。它确实有一个 U.2 连接器,但如上所述,在 NVMe 的规格或手册中没有提及。假设:NVMe 支持至少通过 U.2 连接器是隐含的,因为您无法获得非 NV​​Me 的 U.2 驱动器。因此 M.2 驱动器也支持 NVMe,类似于下面的假设。

考虑主板Z。它有一个 M.2 插槽,支持“SSD 和 PCIe (3.0 x4)”模式。它确实有一个 U.2 连接器,并在广告简介中声明您可以通过 U.2 连接器使用 NVMe 驱动器,但没有说明 M.2。假设:M.2 NVMe 设备同样兼容,因为 M.2 插槽使用与 U.2 相同的 PCIe 通道。

三星 SM951 可用作AHCINVMe - 两者都使用 PCIe,这可能是我误解的原因。上面的例子中,XYZ是基于同一厂商的三款真Z170主板的规格;我依靠他们措辞的一致性来解决这个问题,这可能是也可能不是一个好主意。

Dan*_*l B 9

主板上的 NVMe 支持与固件(BIOS/UEFI)有关。那是因为 NVMe 不是像 PCI Express 那样的物理连接器或电子传输协议。相反,它是一种与 SSD 控制器通信的方式,就像 AHCI 是与 SATA HBA(或向后兼容的 PCIe SSD)通信的方式。

它也与引导有关。之后,操作系统接管。

使用 M.2/U.2,有两种类型的连接

  • SATA(由 U.2 端口和键控 B 或 M 的 M.2 插槽支持)
  • PCIe(由 U.2 端口和键控 A、B、E 或 M 的 M.2 插槽支持)

SATA M.2/U.2 SSD 使用 SATA 协议与外部(不是在 SSD 上,而是在主板上)SATA HBA(主机总线适配器)连接。操作系统通常使用 AHCI 与 SATA HBA 通信。一切都与将 SATA 驱动器连接到 SATA 端口时一样。使用 U.2,您甚至可以使用普通的 SATA 电缆。

另一方面,PCIe M.2/U.2 SSD 有两种类型。它具有相当于内置 SATA HBA 的功能。主机可以使用以下两种标准之一与该控制器通信:

  • AHCI(U.2 不可用,但仍有可能)
  • NVMe

AHCI 控制器的性能有限。然而,它提供了最好的兼容性,因为几乎所有(但非常旧)的固件都已经支持 AHCI。因此,您可以从此类 SSD 启动没问题。(前提是 SSD 本身在这方面不受某种限制。)

NVMe 规范更适用于 SSD 等非旋转驱动器,并通过减少开销等提供更好的性能。但是,直到最近,主板固件还不支持该标准,无法从 NVMe SSD 启动。如果有适当的驱动程序可用,您仍然可以从您的操作系统访问它们。

维基百科在这个主题上有一个很好的图片:

自卫队
(请忽略它显然仅与 SATA Express/U.2 有关,在这种情况下 M.2 几乎是等效的。)

tl;dr:所有 NVMe SSD 都使用 PCI Express 连接。因此,无论是通过 U.2、M.2 还是全尺寸 PCI Express 插槽连接,它们在 BIOS 中看起来都是一样的。

但是,拥有 M.2 或 U.2 插槽并不能以任何方式保证固件可以从 NVMe 存储设备启动。

制造商可以稍后提供支持 NVMe 启动的固件,是的。