原文链接:https://forum.51nb.com/thread-1670848-1-1.html

IT 界总喜欢发明新名词。而且同一个东西,可能有几个不同的名字。同一个名字,又可能指不同的东西。存贮设备,近年有许多新发展,因此新名词也层出不穷,造成不少混乱。这里班门弄斧整理一下,如有错误,欢迎指正。由于篇幅的关系,太旧的标准就不讨论了,如 IDE、PATA 等。这里主要讨论 SATA、PCIe、AHCI 和 NVMe。(关于 NGFF/M.2,那是物理尺寸标准,请参考 http://forum.51nb.com/thread-1669981-1-1.html)。

SATA 和 PCIe 大家应该比较熟悉。这两个都是总线标准。它们是并列发展的关系,并不是谁取代谁的关系。

SATA 由 IDE/ATA 标准发展而来,主要用途是把存贮设备(硬盘)连接到主机(主板)。SATA 经历了如下版本:
SATA revision 1.0 (1.5 Gbit/s, 150 MB/s)
SATA revision 2.0 (3 Gbit/s, 300 MB/s)
SATA revision 3.0 (6 Gbit/s, 600 MB/s)
SATA revision 3.1
SATA revision 3.2 (16 Gbit/s, 1969 MB/s)

在 IT 界,有一样很重要的东西叫“向下兼容”。SATA 在发展的过程中,也要考虑“向下兼容”因素。譬如,主板上 SATA-3 的接口,可以连接 SATA-2 的硬盘。向下兼容是为了保护用户已有的投资。但在另一方面,也造成很多掣肘,以致发展缓慢。

出于向下兼容的考虑,SATA 可以工作在两种模式:传统模式和 AHCI 模式。传统模式是为了兼容以前的 IDE/PATA。AHCI 模式则比较新,支持 SATA 独有的功能,如热插拔、原生命令队列(NCQ)等。现在基本上所有 SATA 设备都是 AHCI 模式了。(Advanced Host Controller Interface)

大家还记得 Windows 7 时代的 AHCI 问题吧?许多机器的 BIOS 中可以选择传统模式或 AHCI 模式。当时出于兼容性考虑,缺省是传统模式。许多人安装 Windows 7 (最初版)的时候,就是在传统模式下安装的,不需要特殊驱动。如果安装之后,进 BIOS 改成 AHCI 模式,Windows 7 就会蓝屏了,因为没有 AHCI 驱动。如果想在 AHCI 模式下安装,Windows 会找不到硬盘,因为没有驱动。这时候要加第三方驱动。后来 Windows 7 SP1 才在安装盘中加入原生 ACHI 驱动程序。历史总是不断重演,现在 NVMe 也面对同样的问题(下面会讨论)。

--- 华丽分割线 ---

PCIe - Peripheral Component Interconnect Express

PCIe 是另一种总线标准,由 AGP、PCI、PCI-x 发展而来。上了年纪的同学都记得,这些总线的发展,主要的动力是显卡的发展。AGP 就是 Accelerated Graphics Port(加速图像端口)的缩写。由于显卡需要很大的带宽和速度,PCI 总线标准就不断升级来满足要求。当然,除了显卡外,PCI 总线还用于其他的扩展卡,如网卡(包括有线网卡、无线网卡、3G/4G卡等)。

从上面 SATA 的不同版本可以看到,提速是一个主要任务(当然也有其他的改进)。但进入 SSD 时代后,SATA 的改版速度(由于要考虑向下兼容),已经跟不上传输速度的要求了。这时候,业界就考虑采用 PCIe 来连接存贮设备。但在驱动程序层面,仍然采用 AHCI。这是因为 AHCI 已经非常成熟,广泛被各种操作系统(如 Windows、Linux)所采用。

以下是 PCIe 各版本的对比。注意在同一个版本中,也有不同的速率,取决于产品使用多少条通道(Lane)。

--- 再来一条分割线 ---

NVMe - Non-Volatile Memory Express

前面说过,AHCI 是为了发挥 SATA 的潜能而设计的,当时算是“高大上”了。但当时仍然是机械硬盘统治市场,因此 AHCI 的设计是基于机械硬盘的特性(旋转式磁性盘片)。虽然 AHCI 也可以用于 SSD,但却不能发挥极致。因为 SSD 更像内存,而不像“盘片”。譬如说,机械硬盘,如果磁头错过了一个扇区,那就得等盘片转一圈回来才能访问。SSD 就不存在这个问题。因此,业界重新设计一个新的 NVMe 协议,希望发挥 SSD 的潜能。下面是 AHCI 和 NVMe 的对比:

注意,NVMe 和 AHCI 一样,是逻辑(或者说软件、驱动程序)上的标准。而 SATA 和 PCIe 则更注重于物理层面(电流、电压、触脚等)。NVMe 比较新,Windows 7 没有原生驱动,因此安装的时候需要加第三方驱动。这个和当年 Windows 7 / AHCI 类似。

--- 物理接口 ---

说完了总线和协议,下面说说物理接口。无论采用什么总线和协议,主板总得连接到存贮设备上。这里所说的物理接口,指是是物理尺寸和形状,电气特征不作讨论。接口又分主机端和设备端。由于种类繁多,这里挑几个常见的。

1. SATA 设备端。下图是大家所熟悉的 SATA 硬盘接口(设备端)。大部分 2.5" SSD 也是用这种接口。采用这种接口的,只能使用 SATA 总线。不能使用 PCIe 总线。

2. M.2 接口。(以前叫 NGFF,现在统一叫 M.2 了,大家改改习惯吧)。采用这种接口的 SSD,可以使用 SATA 或者 PCIe 总线(取决于主板和SSD)。如果采用 PCIe 总线,又分 AHCI 和 NVMe 两种协议。因此总共有三种。下面是代表性产品:

a) 三星 850 EVO M.2 接口,SATA 总线,AHCI 协议

b) 三星 SM951 M.2 接口,PCIe 总线,AHCI 协议

c) 三星 SM951 M.2 接口,PCIe 总线,NVMe 协议

3. SATA Express 接口。SATA Express 使用的是 PCIe 总线,向下兼容 SATA 总线。设备端物理接口如下图。给眼神不好的同学提个醒:设备端的触脚是连在一起的,而不是 SATA 那样分成两部分。目前 T460/T560/X260/P50s 可以支持 SATA Express 的设备(东芝品牌的 SSD)。

--- 总结 ---

下图总结了目前不同标准/协议之间的组合。

由于上图可见,AHCI 和 NVMe 是驱动程序层面的。顾名思义,NVMe 只适用于 SSD(SSD和主板也要支持 NVMe 才行)。AHCI 则适用于机械硬盘和SSD。

在主板芯片层面,有 AHCI 控制器和 PCIe 控制器。有趣的是 AHCI 驱动程序“居然”可以使用 PCIe 控制器(中间那条橙色的线)。这个其实是个过渡方案,目的是在利用 PCIe 高带宽的同时,保持对上层软件的兼容性。目前在笔记本上,用这个方案的产品并不多。楼主也不觉得会成为主流。

绿色那个框是主板上的物理接口。参见以上“物理接口”一节。注意即使是同样的物理接口,也可以选择不同的总线和协议(如果主机和设备支持的话)。因此不要以为买了 M.2 的盘就一定是高大上,买了 2.5" 的盘就一定是屌丝。

左下角的 SATA 设备就不用多说了。大家都很熟悉。

右下角的 PCIe SSD 设备则可以有两种不同的控制器(最下面的两个框):AHCI 和 NVMe。因此,同样是 PCIe 的 SSD,也可以有不同的传输效能。

说了这么多,相信大家已经晕了。下面按传输效率做个排序,希望对大家有帮助。

1. PCIe NVMe。
这个是最高大上的。在笔记本市场,根据效能,可以再细分为两个等级:
1A 是 M.2 尺寸的 NVMe(如三星 950 PRO)。可以有四条 PCIe 通道,速度最快。但由于电路板面积限制,容量和发热都是个问题。
1B 是 2.5" 尺寸的 NVMe(如东芝 XG3),采用 SATA Express 接口,可以有两条 PCIe 通道,传输速率较低。由于 2.5" 体积较大,容量和发热比 M.2 要好。在 T460/T560/X260/P50s 上可用。

2. PCIe AHCI。
效能比 1 稍低,是由于 AHCI 协议的滞后性决定的。笔记本上只有 M.2 外形,没有 2.5" 外形。(如三星 SM951 AHCI 版)。

3. SATA AHCI。
效能最低,但兼容性最好,根据外形可分为两类。这两类的传输效能是一样的,无分高低。如果要便宜、容量,则选 2.5"。如果要轻薄,则选 M.2。
3A 是 2.5" 外形的设备,如目前广泛使用的机械硬盘,固态硬盘等。
3B 是 M.2 外形的设备,如三星 850 EVO 的 M.2 盘。

转载于:https://www.cnblogs.com/pxb2018/p/10418118.html

(转)科普:SATA、PCIe、AHCI、NVMe相关推荐

  1. SATA M.2 NGFF PCIE AHCI NVME SSD固态硬盘的接口、总线和协议区分

    总线.协议 说接口之前先说总线,民用产品的硬盘总线多为 SATA 和 PCIe. SATA 总线只能使用 AHCI 协议.NVME 对比 AHCI 的优势在于 低延时.低功耗,更适合固态硬盘. PCI ...

  2. 浅谈nvme sata pci-e m.2,协议 总线 接口的关系。

    B站,[硬件科普]硬盘的SATA M.2 NGFF NVME是什么意思,详解硬盘的总线协议与接口 wiki NVM Express 关于Sata PCI-e和Nvme的速率 区别详细总结,请见本文章M ...

  3. 硬盘界面发展史:ATA, AHCI, NVMe. PATA, SATA, SAS, Mini PCIE/MSATA, M.2(PCEx2/SATA or PCIEx4)

    ATA: ATA(AT Attachment) 是一个很久远的标准,最初是定义诸如硬盘等存储设备和 CPU 的接的标准.一共有两种类型的 ATA,第一种叫 Parallel ATA(PATA),第二种 ...

  4. 什么是SATA/PCI-E, M.2, U.2, NVMe...固态硬盘接口协议详解

    1. 硬盘接口,通道,协议 首先是物理层面的接口,就是插拔的那个口:我们有SATA 3,mSATA,SATA - E,U.2,M.2,PCI-E等物理接口. 然后是通信的通道,主要的区别是速率上限不同 ...

  5. SSD接口SATA/PCIE/mSATA/M.2分析

    SATAT通道:硬盘--内存--CPU PCIE通道:硬盘--CPU 一. 硬盘传输标准协议AHCI和NVME AHCI(serial Advanced Host Controller Interfa ...

  6. pci串行端口找不到驱动程序_科普:PCI-E插槽都有哪些样子?

    主板上的扩展插槽曾经是多种多样的,例如曾经非常流行的组合就是PCI插槽搭配AGP插槽,其中AGP插槽主要用在显卡上,而PCI插槽的用途则更广一些,不仅有用在显卡上,还能用于扩展其它设备,如网卡.声卡. ...

  7. [固态硬盘协议 第3回] 你懂 PCIE 和 NVME是如何相依相恋?

    前言 固态硬盘中的王者,一说非PCIE 莫属,一说非NVME SSD 莫属. PCIE 和 NVME 因何而生? PCIE 和 NVME 的联系和区别? 本着对 PCIE 和 NVME 的好奇心,本文 ...

  8. 基于PCIe的NVMe协议在FPGA中实现方法

    NVMe协议是工作在PCIE的最上层协议层的,故需要先搞清楚PCIE.本文基于Xilinx的UltraScale+,开发工具为Vivado2021.2.学习中以spec为主,其它资料辅助参考(重点介绍 ...

  9. 微星970A-G43 主板 PCIE接NVME固态硬盘无法启动Win7,解决方案

    微星970A-G43 主板 PCIE接NVME固态硬盘无法启动Win7解决心路! 华硕M5A97主板添加 PCI NVME硬盘 ADM970芯片组添加PCIE NVME硬盘,并WIN7启动问题. 97 ...

  10. m2接口和nvme协议接口_M.2接口是如何辨别插入的SSD是SATA协议还是NVME协议?

    一. m.2接口 M.2接口,是一种新的主机接口方案,可以兼容多种通信协议,如sata.PCIe.USB.HSIC.UART.SMBus等.M.2接口,是Intel推出的一种替代MSATA新的接口规范 ...

最新文章

  1. 关注这些技术号,你将拥有半个互联网圈
  2. html点击播放生日快乐歌曲大全,播放生日快乐歌曲.doc
  3. IPython、python shell(command line)、pycharm,python,python IDLE的区别是什么?
  4. 如何修改远程桌面连接3389端口
  5. 数据库性能分析mysql_mysql数据库的性能优化分析
  6. JavaScript数据类型之Number
  7. 韦东山第3期嵌入式Linux项目-视频监控-3-在LCD上显示摄像头图像
  8. 关于使用CAD文件预览的使用
  9. 企业实战——Ansible自动化运维基础知识
  10. react native 更改app名称和图标
  11. 如何在知网下载PDF文件
  12. 智能电动车汽车充电器桩语音芯片ic方案对比分析 选型
  13. Visual Studio添加代码片段
  14. 查询linux服务器有哪些IP在连接
  15. android简易计算器的实现
  16. MATLAB数字图像处理系统——边缘检测
  17. Restful风格的springMVC配搭ajax请求的小例子
  18. 2023电工杯数学建模B题思路模型
  19. linux dae文件下载,linux dae命令详解.doc
  20. 逼死程序员的翟欣欣方首度发声了,居然这样说,你信不?

热门文章

  1. 数字信号处理5——CFAR算法及matlab实现
  2. 我YY的一个移动应用运营模式
  3. 固建机器人建筑钢结构设备生产厂家一体化工作站,推动钢结构产业发展
  4. 树莓派基础实验33:TCRT5000红外循迹传感器实验
  5. mysql数据库md5密码替换_MD5 加密的密码在数据库重置
  6. Java获取本机的ip地址和Mac地址
  7. 雅马哈机械手的基本操作,与上位机通讯程序编写
  8. AIX6.1上重新安装RAC11G时,ASM无法识别磁盘为Candidate Dsik
  9. nginx 502错误原因和解决办法总结
  10. 离散数学复习:命题逻辑