- 参考:
- What is the IDE interface and what does it consist of? - https://itigic.com/ide-ata-pata-and-atapi-interface-how-does-it-work/
- What is ATA? - https://www.computerhope.com/jargon/a/ata.htm
- 机械硬盘5种接口:IDE、SATA、SCSI、SAS、FC - https://www.dgxue.com/huifu/59.html
- PCI Express解析
- PCI Express解析——系列文章【1】:基本概述PCI、PCI-X与PCIe的最大区别 - https://blog.csdn.net/weixin_42491720/article/details/125809177
- PCI Express解析——系列文章【2】:PCIe原理分析之——PCI Express线路基础 - https://blog.csdn.net/weixin_42491720/article/details/125816479
- PCI Express解析——系列文章【3】:PCIe原理分析之——PCI Express拓扑结构 - https://blog.csdn.net/weixin_42491720/article/details/125816827
- PCI Express解析——系列文章【4】:PCIe原理分析之——PCI Express系统模块、PCIe体系结构 - https://blog.csdn.net/weixin_42491720/article/details/125924818
- PCI Express解析——系列文章【5】:PCIe原理分析之——PCI Express 配置解析(BDF、BAR)、 MEM Read举例 - https://blog.csdn.net/weixin_42491720/article/details/126036359
- 视频 - 【硬件科普】硬盘的SATA M.2 NGFF NVME是什么意思,详解硬盘的总线协议与接口 - https://www.bilibili.com/video/BV1Qv411t7ZL/
目前,固态硬盘的接口主要有SATA、mSATA、PCIe、m.2四种,下面,我们就这四种接口展开来讲。
文章目录
- 【整理】协议、总线、接口
- 机械硬盘接口(规范)
- IDE、ATA (规范)
- PATA(被淘汰)
- SATA(⭐️ 主流 2022年10月25日)
- 对比:SATA、PATA
- SAS
- U.2
- 扩展槽接口(规范)
- PCI (被淘汰)
- PCI-X(被淘汰)
- PCI-E(⭐️ 主流 2022年10月26日)
- PCIe 数据链路通道
- # PCI-E x16
- # PCI-E x8
- # PCI-E x4
- # ❓ 问题:主板上为什么找不到 PCI-E x4 插槽?
- # PCI-E x1
- PCIe 发展版本、📚 速率整理
- PCI、PCI-x、PCI-E 架构/速率总结
- 固态硬盘接口(规范)
- SATA
- mSATA
- PCIe
- ❓ 问题:为什么 pcie 比 sata 快这么多?
- ❓ 问题:为什么固态硬盘欲抛弃 SATA 接口?
- M.2 ( NGFF ) (⭐️ 主流 2022年10月26日)
- 总线 & 协议
- B-key & M-key
- AHCI 协议 和 NVMe 协议
- USB 协议
- 总结
- 速率情况
- 使用情况
【整理】协议、总线、接口
硬盘的数据传输离不开 协议、总线、接口。它们就像车子(接口)、道路(总线)、交通规则(协议)是一个不可分割的组合,影响着传输速率。
(存在木桶效应,因此厂商一般会组合在一起推出新的产品)
虽然上图展示出它们的对应关系比较混乱(如:PCIe 总线既可用 ahic 协议、又可以用 nvme 协议),但大体可以看成如下关系:
- 【代步车🚌】SATA 接口、mSATA总线 跑在 SATA 总线上,遵守 AHCI 协议
- 【跑车🏎️】PCIe 接口、M.2 接口跑在 PCIe 总线上,遵守 NVMe 协议
(M.2 接口有时会偷跑在 SATA 上,遵守 AHCI 协议,但这是妥妥的浪费!!) - 【军用喷气飞机✈️】SAS 接口 跑在 SAS 总线上,遵守 SCSI 协议
下面就以 “规范” 统称这种 “接口、总线、协议” 的组合。
机械硬盘接口(规范)
硬盘接口是硬盘与计算机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。不同的硬盘接口决定着硬盘与计算机之间的连接速度。在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏。
从整体的角度上,硬盘接口分为 IDE、SATA、SCSI、SAS 和 FC 五种。每种接口协议拥有不同的技术规范,具备不同的传输速度,存取效率差异很大,所面对的实际应用和目标市场也各不相同。
IDE、ATA (规范)
IDE(Integrated Drive Electronics,电子集成驱动器)(created by Western Digital and Compaq in 1986),其本意是指把 “硬盘控制器” 与 “盘体” 集成在一起的 硬盘驱动器。
优点:
-
对硬盘厂商而言
把 “盘体” 与 “硬盘控制器” 集成在一起的做法减少了硬盘接口的电缆数目与长度,数据传输的可靠性得到了增强,硬盘制造起来变得更容易,因为硬盘生产厂商不需要再担心自己的硬盘是否与其他厂商生产的控制器兼容。 -
对用户而言
硬盘安装起来也更为方便。
在过去的很长一段时间都是主流的硬盘接口,它经过数年的发展变得很成熟、廉价、稳定。
IDE代表着硬盘的一种类型,它的接口标准为 ATA(Advanced Technology Bus Attachment,先进技术总线架构)。(its main feature was a direct connection to the 16-bit ISA bus introduced by IBM.)
此 ATA 架构在后来称为 PATA,但这里仍然以当时的称呼 ATA 代称
ATA 开始时候作为一个 pc 组件被放在主机的总线适配器中,有时候也在声卡中,最终被内置成主板南桥的两个物理接口 “primary”、“secondary”(或者称为 “master”、“slave”)。
(它们被分配到 ISA 总线系统上的基地址为 0x1F0 和 0x170)
❓ 问题:master、slave 硬盘如何工作?
参考:https://itigic.com/ide-ata-pata-and-atapi-interface-how-does-it-work/
类型和版本:
- IDE and ATA-1 – The first version of what is now known as ATA / ATAPI was developed by Western Digital. The first devices to use it were Compaq and they were released in 1986.
- EIDE and ATA-2 : This standard was approved in 1994, and the EIDE name stands for Enhanced IDE.
- ATAPI: initially the interface was developed for storage devices, but ATAPI allowed to take the ATA interface further and be used in other types of devices, since it allowed the “eject” command, so it was ideal for floppy drives, for example. It also incorporated the SCSI command.
- UDMA and ATA-4: This standard raised the performance to 33 MB / s, and in its latest versions, new 80-pin cables were incorporated that increased the performance up to 133 MB / s.
- Ultra ATA: Initially described by Western Digital in 2000, this interface described higher performance but never really saw the light of day because it coincided with the days of SATA, which ended up replacing the IDE interface.
IDE硬盘的传输模式有以下三种:
-
PIO(Programmed I/O) 模式
PIO(Programmed I/O) 模式的最大弊端是耗用极大量的 CPU 资源。以 PIO 模式运行的 IDE 接口,数据传输速率达3.3MB/s
(PIO mode 0) ~16.6MB/s
(PIO mode 4) 不等。 -
DMA(Direct Memory Access) 模式
DMA(Direct Memory Access) 模式分为 Single-Word DMA 及 Multi-Word DMA 两种。- Single-Word DMA 模式的最高传输速率达
8.33MB/s
- Multi-Word DMA(Double Word DMA)则可达
16.66MB/s
。
DMA 模式同 PIO 模式的最大区别:DMA模式并不用过分依赖CPU的指令而运行,可达到节省处理器运行资源的效果。
但由于Ultra DMA模式的出现和快速普及,这两种模式立即被UDMA所取代。 - Single-Word DMA 模式的最高传输速率达
-
Ultra DMA(简称UDMA)模式
Ultra DMA 模式是 Ultra ATA 制式下所引用的一个标准,以 16位 Multi-Word DMA 模式作为基准。UDMA 的其中一个优点是它除了拥有 DMA 模式的优点外,更应用了 CRC(Cyclic Redundancy Check)技术,加强了数据在传送过程中侦错及除错方面的性能。
UDMA 接口又分为 UDMA/33、UDMA/66、UDMA/100、UDMA/133 等。1996年底,昆腾 和 Intel 公司宣布共同开发了 Ultra DMA/33 的新型 EIDE接 口,因其数据传输速率为
33MB/s
,故称 UDMA/33 ,后面的 UDMA/66、UDMA/100、UDMA/133 命名原因同上。
PATA(被淘汰)
PATA 就是原始的 ATA 实现方案(用一根四芯的电源线和一根80芯的数据线与主板相连接),只是在 2003 年 SATA 出现后改名了。 而原先的 ATA 概念被升级成一种规范。
(When the SATA interface was introduced in 2003, the original ATA was renamed Parallel ATA or PATA for short.)
SATA(⭐️ 主流 2022年10月25日)
SATA(Serial Advanced Technology Attachment,简称 Serial ATA)是一种电脑总线,负责主板和大容量存储装置(如硬盘及光驱)之间的数据传输,主要用于个人电脑。
历史
- 2000年11月由国际串列式 ATA 组织(Intel和APT、Dell、IBM、Maxtor 及Seagate等几家厂商)制定了 SATA,以取代旧式 PATA 接口,因采用串行方式传输数据而得名;
- 2003年1月7日 SATA 1.0 推出,为第一代 SATA 接口,传输速度为
1.5Gbit/s
; - 2004年 SATA 2.0 正式推出,符合 ATA-7 规范,传输速度为
1.5Gbit/s
; - 2009年5月26日 SATA 3.0 完成最终规格发布,相比上代速率提升至
6Gbit/s
; - 后面还推出了SATA 3.1、SATA 3.2、SATA 3.3,但速率上并没有提升,只是新增了一些功能;
❓ 问题: 为什么还有 PATA Power
为了兼容旧接口
SATA 硬盘需要多种电压所以总体输入电源线要有 15 个针脚。然而 PATA 硬盘使用是 D 型 4 针电源接口,故有些 SATA 硬盘除为了兼容 IDE 硬盘接口还提供了传统 IDE 硬盘使用的 D 型 4 针电源接口
架构
从字义上来看是一套“序列式”架构,用来对应ATA内接磁盘驱动器总线相对应。其 传输方式 是将许多数据位封装成一组封包,然后以比平行模式快30倍的速度在来源与目的地之间来回传送数据封包。
特点
-
更少的针脚数目
SATA一次只会传送1位数据,这样能减少SATA接口的针脚数目,使连接电缆数目变少,效率也会更高,同时这样的架构还能降低系统能耗和减小系统复杂性 -
发展潜力更大
其在数据传输上这一方面,SATA 的速度比旧式 PATA 接口更加快捷- PATA 的最高数据传输速率
133MB/s
- Serial ATA 1.0 定义的数据传输速率可达
150MB/s
- Serial ATA 2.0 的数据传输速率达到
300MB/s
- Serial ATA 3.0 的最高数据传输速率已经实现
600MB/s
在此有必要对SATA的数据传输速率作一下说明。就串行通信而言,数据传输速率是指串行接口数据传输的实际比特率,SATA 1.0 的传输速率是 1.5Gb/s,SATA 2.0 的传输速率是 3.0Gb/s,SATA 3.0 的传输速率是 6.0Gb/s。与其他高速串行接口一样,SATA 接口也采用了一套用来确保数据流特性的编码机制,这套编码机制将原本每字节所包含的8位数据(即 1B = 8b)编码成 10 位数据(即 1B = 10b),这样一来,SATA 接口的每字节串行数据流就包含了 10 位数据,经过编码后的SATA传输速率就相应地变为 SATA 实际传输速率的十分之一,所以 1.5Gb/s = 150MB/s,3.0Gb/s = 300MB/s,而 6.0Gb/s = 600MB/s。
- PATA 的最高数据传输速率
-
更低电压
SATA的物理设计可说是以 Fibre Channel(光纤通道)作为蓝本,所以采用四芯接线,需求的电压则大幅度减低至 250mV(最高 500mV),是传统PATA接口的 5V 的 1/20。 -
支持热插拔
有更低的电压,厂商可以给SATA硬盘附加上高级的硬盘功能,如 热插拔(Hot Swapping) 等。 -
支持 RAID
在连接形式上,除了传统的点对点(Point-to-Point)形式外,SATA 还支持“星形”连接,这样就可以给 RAID 这样的高级应用提供设计上的便利。在实际的使用中,SATA的主机总线适配器(Host Bus Adapter,HBA)就好像网络上的交换机一样,可以实现以通道的形式和单独的每个硬盘通信,即每个 SATA 硬盘都独占一个传输通道,所以不存在像 PATA 那样的主/从控制的问题。 -
良好的兼容性 (市场上看,SATA 接口最大的优势便在于它的兼容性)
SATA规范不仅立足于未来,而且还保留了多种向后兼容方式,在使用上不存在兼容性的问题。在硬件方面,SATA标准中允许使用转换器提供同PATA设备的兼容性,转换器能把来自主板的PATA信号转换成SATA硬盘能够使用的串行信号,这在某种程度上保护了我们的原有投资,降低了升级成本;在软件方面,SATA和PATA保持了软件兼容性,这意味着厂商丝毫也不必为使用SATA而重写任何驱动程序和操作系统代码。
对比:SATA、PATA
比较的项目 | SATA | PATA |
---|---|---|
扩展到 | 串行ATA | 并行ATA |
状态 | 目前正在使用中 | 过时的 |
速度 | 快速 | 中等 |
热插拔 | 支持的 | 不支持热插拔设备。 |
外部接口 | 提供 | 没有外部接口的规定。 |
最大电缆长度 | 39.6英寸 | 18英寸 |
电缆尺寸 | 较小 | 大 |
比特率 | 150 MB / s - 600 MB / s | 16 MB / s - 133 MB / s |
接口对比
电缆对比
SAS
SAS 接口(配合 SAS 总线,SCSI 协议)主要用在服务器上,基于 SATA 接口改进而来,可以看作加强版的 SATA 接口,支持更多的功能,比如一分多(以满足服务器硬盘柜多硬盘的要求)
SAS 接口可以向下兼容 SATA 硬盘,走 SATA 总线和 AHCI 协议。
(但是 SAS 硬盘不支持 SATA 接口规范)
U.2
U.2 接口是 SAS 接口的升级,向下兼容 SAS 接口、SATA 接口,同时还额外提供了 PCIe x4 总线的支持。
U.2 也是在 服务器 和 高端 HEDT 平台上使用。
扩展槽接口(规范)
本文介绍硬盘接口,之所以不得不介绍扩展槽接口,是因为其性能高、兼容性好、发展潜力大,加上目前 pcie 4 固态硬盘的推出,有望成为中高端硬盘接口的首选。
PCI (被淘汰)
PCI(Peripheral Component Interconnect,外设部件互联标准),顾名思义,其接口用于连接外部设备,如:连接显卡,声卡,网卡和 Modem 等。在早期主板中往往配备了 2~6 个 PCI 插槽,占据当时市场主流地位。
拓扑结构
PCI 是在 CPU 和原来系统总线内部插入的一级总线,采用的是 总线型拓扑结构 ,一条 PCI 总线上挂着若干 PCI 终端设备或桥设备(比如说北桥南桥)。这些设备共享该PCI总线,如果那个设备想说话必须获得总线使用权。
种类
PCI 接口分为 32bit 和 64bit 两种,32bit 就是一般台式机使用的普通的 pci 接口,64bit 接口比 32bit 接口长一些一般只出现在服务器上。
32Bit PCI | 64Bit PCI |
---|---|
| |
下图,最上边是兼容5v和3.3v,中间是5v电压的,最下边的是3.3v电压的 | 64bit比32bit要长一些,也分为5v,3.3v,和兼容两种电压的 |
32bit 和 64bit 都有 5v 和 3.3v 电压两种:
- 5v 电压的是 PCI2.1 标准的时钟频率为 33MHz
- 3.3v 电压的是 PCI2.2 标准以后出现的可以工作在 66MHz 的时钟频率上
不过现在一般来说,卡和插槽都做成可以同时兼容两种电压的版本,也都有防插错设计,只要能插上都是可以工作,不过工作在哪种时钟频率上就要分析一下了。
pci 接口迟早被淘汰,因为速率太低,仅 132MB/s
(32bit)和 264MB/s
(64bit)
32bit 的 pci 接口生命力很顽强,即使现在最新的主板上也会留几个插槽,不过 64bit 的 PCI 接口好像在服务器上也是昙花一现基本被淘汰了。
PCI-X(被淘汰)
PCI-X 在外形上和 64bit 的 PCI 基本上是一样的,但是它们使用的是不同的标准,PCI-X 的插槽可以兼容 PCI 的卡(通过针脚区分),PCI-X 也是共享总线的,插多个设备传输速率会下降。PCI-X 一般只出现在服务器主板上,不过现在也逐步被 PCI-E 取代,很多厂商的服务器都已经不提供 PCI-X 的插槽了。
PCI-E(⭐️ 主流 2022年10月26日)
- 更多:
- PCI-E 1x, 4x, 8x, 16x 接口定义
原文 - https://pinoutguide.com/Slots/pci_express_pinout.shtml
翻译 - https://blog.csdn.net/enlaihe/article/details/122133827
PCI-E(PCI Express,原名 3GIO) 是(INTEL 2001年提出的)(相对 PCI 而言的新一代)总线接口;
(旨在替代旧的PCI,PCI-X和AGP总线标准)
-
采用了目前业内流行的点对点(endpoint to endpoint)串行连接,比起 PCI 以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽;
(PICe 比 PCI 快就是因为它是串行) -
可以把数据传输率提高到一个很高的频率,达到 PCI 所不能提供的高带宽;
PCIe 2.0 为例,每秒 5GT(Gigatransfer)原始数据传输率,编码方式为 8b/10b(每 10 个位元只有 8 个有效数据),即有效频宽为 4Gb/s = 500MByte/s。
-
相对于传统PCI总线在单一时间周期内只能实现单向传输,PCI Expres s的双单工连接能提供更高的传输速率和质量。
💡 提示
独立显卡、独立声卡、独立网卡、USB 3.0/3.1 接口扩展卡、RAID 阵列卡、PCI-E SSD、mSATA SSD、m.2 SSD、M.2 无线网卡或者其它 M.2 接口设备等硬件都可以插到 PCI-E 插槽上,因此厂商都会给它们装上足够多的PCI-E插槽,以确保自家产品的扩展能力,满足玩家的需要,比如用来挖矿或者实现多屏输出。
拓扑结构
PCIe 采用 树形拓扑结构。Root Complex ( RC ) 是树的根,相当于 CPU 的 agent。CPU 必须通过 RC 来访问内存和其他 PCIe 设备(如 PCIe SSD, PCIe 网卡)。
PCIe 设备可以直接连到 RC 上,也可以通过 switch ( 或者 PCI 中称为 bridge )来连到 RC 上。Switch 上也可以连 switch。PCIe bridge 可以将 PCIe 总线换成 PCI 总线(或反过来),实现 PCIe 和 PCI 设备的互联。
PCIe 采用点到点 ( endpoint to endpoint ) 的通信方式,每个设备独享通道带宽,速度和效率都比 PCI 好。理论上任何两个 PCIe endpoint ( PCIe 设备 ) 都可以互相通信,但实际上 endpoint 一般要通过 RC 与另一个 endpoint 通信,因为两个设备的数据格式可能不一样。
种类
接口提供了 x1 到 x32 多种规格( 意思就是 1 个通道到 32 个通道 ),最常见的是 PCI-E x16 接口,从1.0开始就已经提供了 8GB/s
(x16)的带宽,而往后的每代(2.0、3.0)都直接翻倍!
PCIe 数据链路通道
将两台设备连接在一起的一个 PCI Express 互联称为一条链路。一条链路在每个方向上可以有 x1、x2、x4、x8、x12、x16、x32 个信号对,这些信号可以称为通道,设计者根据需求确实实现通道。
链路 | 特点 | ||||||
---|---|---|---|---|---|---|---|
PCIe链路宽度 | x1 | x2 | x4 | x8 | x12 | x16 | x32 |
总带宽(GB/s) | 0.5 | 1 | 2 | 4 | 6 | 8 | 16 |
# PCI-E x16
PCI-E x16 插槽全长 89mm,有 164 根针脚,靠主板外侧端有一卡口,将 16x 分为前后两组:
- 较短的插槽有 22 根针脚,主要用于供电
- 较长的插槽 142 根,主要用于数据传输,具有16通道所带来的高带宽
💡 提示
PCI-E x16 插槽,主要用于显卡以及 RAID 阵列卡等,这个插槽拥有优良的兼容性,可以向下兼容 x1/x4/x8 级别的设备。可以说是PCI-E x16插槽是PCI-E的万能插槽。
💡 提示
由于PCI-E x16插槽常用于显卡,与cpu处理器直接相通,在物理位置上直接靠近cpu,这样显卡与处理器之间的数据交换就可以减少延迟,让系统的性能可以得到充分的发挥。
(当然也有例外,最终还是要看板子的说明书)
PCI-E 16X的显卡
# PCI-E x8
插槽全长 56mm,有 98 根针脚,与 PCI-E x16 比较,主要是数据针脚减少至 76 根,短的供电针脚仍然是 22 针脚。
💡 提示
为了兼容性,PCI-E x8 插槽通常加工成 PCI-E x16 插槽的形式,但数据针脚只有一半是有效的,也就是说实际带宽只有真正的 PCI-E x16 插槽的一半。
可以观察主板布线,x8 的后半段没有线路连接,甚至针脚也没有焊接。
# PCI-E x4
PCI-E x4 插槽的长度为 39mm,同样是在 PCI-E x16 插槽的基础上,以减少数据针脚的方式实现。
PCI-E x4 的通道数通常由主板芯片扩展而来,不过随着 cpu 内部 PCI-E 通道数的增多,现在有部分高端主板可以开始提供直连 cpu 的 PCI-E x4 插槽。
PCI-E x4 接口主要用于连接 PCI-E SSD固态硬盘,或者是通过 PCI-E 转接卡安装的 M.2 SSD 固态硬盘。
PCI-E 转接卡
# ❓ 问题:主板上为什么找不到 PCI-E x4 插槽?
其实它是以 M.2 接口的形式出现的。
当需要使用 PCI-E x4 的时候,可以通接口转换器完成
M.2 接口和接口转换器
更多:
- 知乎 - 为什么现在的主板,把PCI-E X4通道都做成了M.2(NVMe)接口? https://www.zhihu.com/question/511376976
# PCI-E x1
PCI-E x1 插槽的长度是最短的,仅有25mm,相比PCI-E x16插槽,其数据针脚是大幅度减少至14个。
PCI-E x1插槽的带宽通常由主板芯片提供,主要用途是独立网卡、独立声卡、USB 3.0/3.1扩展卡等都会用到PCI-E x1插槽,甚至可以通过转接线给PCI-E x1插槽装上显卡,用来挖矿或者实现多屏输出。
PCIe 发展版本、📚 速率整理
PCIe 版本发展经历大版本 4 次更新,每次之后会有一次小版本更新如 1.1 、 2.1 、 3.1 ,小版本基本没什么特殊变化,均是基于大版本的优化。
-
PCIe 1.0
2003年,PCI-SIG 推出了 PCIe 1.0a,每通道数据速率为250 MB/s
,传输速率为每秒2.5 gigatransfer(GT/s)
。传输速率表示为每秒传输量,而不是每秒位数,因为传输量包括不提供额外吞吐量的开销位.
如: PCIe 1.x 使用 8b/10b 编码方案,导致占用了 20% (= 2/10) 的原始信道带宽。 -
PCIe 2.0
2007年1月15日,PCI-SIG 宣布推出 PCI Express Base 2.0 规范。PCIe 2.0 标准将传输速率从 PCIe 1.0 的2.5GT/s
推升至5GT/s
(传输速率提高了一倍)- 吞吐量提升
每通道吞吐量从250MB/s
上升到500MB/s
。因此,32 通道 PCIe ×32 可支持高达16GB/s
的总吞吐量。 - 向后兼容
PCIe 2.0 主板插槽与 PCIe v1.x 卡完全向后兼容。 PCIe 2.0 卡也通常使用 PCI Express 1.1 的可用带宽向下兼容 PCIe 1.x 主板。
总体来说,为 v2.0 设计的显卡或主板将与另一个 v1.1 或 v1.0a 配合使用。
- 吞吐量提升
-
PCIe 3.0
2010年11月,在多个延迟之后 PCI Express 3.0 基本规范版本 3.0 才终于被推出。
因为,早在 2007年8月,PCI-SIG 就宣布 PCI Express 3.0 将以每秒8GT/s
进行比特率- 编码提升
PCI Express3.0 将编码方案从之前的8b/10b
编码升级到128b/130b
,将带宽开销从PCI Express 2.0的20%降低到大约1.54%(= 2/130)。这通过称为“加扰”的技术来实现,该技术将已知的二进制多项式应用于反馈拓扑中的数据流。 - 向后兼容
并且将与现有的 PCI Express 实现向后兼容。
- 编码提升
-
PCIe 4.0
2011年11月29日,PCI-SIG 宣布 PCI Express 4.0 提供16Gb/s
比特率,使 PCI Express 3.0提供的带宽增加一倍,同时保持软件支持和二手机械接口的向后兼容性。
如今(2022年10月26日),早在两年前 pcie 4.0 就开始被高端主板支持,但碍于价格高受众少,当时还很少有外部设备支持。经过两年的发展,随着支持 pcie 4.0 的主板价格的下降,和越来越多外部设备厂商愿意支持 pcie 4.0 接口(最典型的如 pcie4 固态硬盘), pcie 4.0 正在成为主流。
PCI Express 版本 | 行代码 | 传输速率 | 吞吐量 | |||
---|---|---|---|---|---|---|
x1 | x4 | x8 | x16 | |||
1.0 | 8b/10b | 2.5GT/s | 250MB/s | 1GB/s | 2GB/s | 4GB/s |
2.0 | 8b/10b | 5GT/s | 500MB/s | 2GB/s | 4GB/s | 8GB/s |
3.0 | 128b/130b | 8GT/s | 984.6MB/s | 3.938GB/s | 7.877GB/s | 16.754GB/s |
4.0 | 128b/130b | 16GT/s | 1.969GB/s | 7.877GB/s | 16.754GB/s | 31.508GB/s |
PCI、PCI-x、PCI-E 架构/速率总结
- PCI、PCI-X:总线体系结构是 多点(multi-drop) 、 并行 互连总线,其中多台设备共享一条总线,在一条PCI总线上可以挂接多个PCI设备,这些PCI设备通过一系列信号线与PCI总线相连,这些信号由地址/数据信号、控制信号、仲裁信号、中断信号等组成,是通过总线周期来实现的;
- PCIe:能后实现两台设备之间的通信的 串行 、 点对点 类型的互连,多个PCIe设备使用交换器(Switch)实现互连;采用基于交换器的技术来互连大量设备,在串行互连上进行通信是利用基于数据包的通信协议来实现的。
标准 | 总线 | 时钟 | 传输速度 |
---|---|---|---|
PCI 32bit | 32bit | 33MHz 66MHz | 133Mb/s 266Mb/s(半双工) |
PCI 64bit | 64bit | 33MHz 66MHz | 266Mb/s 533Mb/s |
PCI-X | 64bit | 66MHz 100MHz 133MHz | 533Mb/s 800Mb/s 1066Mb/s |
PCI-E X1 | 8bit | 2.5GHz | 512Mb/s(双工) |
PCI-E X4 | 8bit | 2.5GHz | 2Gb/s(双工) |
PCI-E X8 | 8bit | 2.5GHz | 4Gb/s(双工) |
PCI-E X16 | 8bit | 2.5GHz | 8Gb/s(双工) |
固态硬盘接口(规范)
目前市面上的 SSD 主要分为三种规格:
-
2.5 英寸 SATA 接口 SSD
2.5 英寸 SATA 接口的 SSD 只要是主板上有 SATA 接口的都可以使用,优点就是兼容性较强,而且普遍比 NVME SSD 便宜些,缺点就是速度相对较慢(但比机械快很多),最快连续读写一般也无法超过550MB/s
。 -
M.2 接口 SSD(走 SATA 通道)
M.2 接口 SSD(走 SATA 通道)是最具迷惑性的,很多人误以为 M.2 接口的 SSD 就是走 PCI-E 通道,性能很强,但事实上绝大部分 M.2 接口的 SSD 除非标注 PCI-E 通道(或者 NVMe 标志),否则肯定是 SATA 通道产品,本质性能上和第一种完全一致,非常不建议购买这一类! -
M.2 接口 SSD(走 PCI-E 通道且支持 NVMe 协议)
M.2 接口 SSD(走 PCI-E 通道且支持 NVMe 协议)是高性能的代表,也是未来的主流,因为现在主板上的 M.2 接口一般都可以支持 NVMe 协议,所以想买 M.2 接口 SSD 的用户务必购买这一类,这一类产品读写速度很容易达到1000MB/s
甚至3000MB/s
以上,价格也不贵。购买的 SSD 只要有 NVMe 标志,就说明一定是 PCI-E 通道的,但是走 PCI-E 通道的产品未必支持 NVMe 协议(早期的 M.2 PCI-E SSD 一般都不支持)。
下面逐一介绍 固态硬盘 的接口:
SATA
在固态硬盘刚普及的时候(05年左右),有 固态硬盘 就采用了 SATA 2.0 接口,不过,目前市面上的 SATA 固态硬盘基本都采用了 SATA 3.0 接口。
受青睐
相比于其他接口, SATA 接口最大的优势便在于它的兼容性。目前,很多主板以及一些笔记本电脑都保留了 SATA 接口,这意味着,几乎所有的电脑都能支持 SATA 接口固态硬盘升级。
性能瓶颈
而相对于传统机械硬盘而言,SATA 接口的固态硬盘表现也不差,在随机读写速度上都有巨大的提升。不过,由于 SATA 接口的最大传输速度的限制,SATA 接口的固态硬盘读写速度普遍只能达到 500MB/s
,在随机读写速度上,一般也不超过 10 万 IOPS,对于追求性能来说的人来说,这显然是无法满足的。
mSATA
mSATA 接口是针对超极本的轻薄设备而开发的,通俗点讲就是缩小版的 SATA 固态硬盘,而本质上仍然是SATA固态硬盘。
不受青睐
由于它不仅拥有SATA固态硬盘的速度限制,又没有了 SATA 固态硬盘的兼容性和通用性,因此,它很快被淘汰,被最新的 m.2 接口所取代。
PCIe
正如上一章介绍的,PCIe 属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及 QOS 等功能。它的主要优势就是数据传输速率高,而且还有相当大的发展潜力。
尝试
为了解决 SATA 固态硬盘的速度瓶颈,很多固态硬盘厂商将目光瞄向了电脑主机板上的 PCIe 接口,希望通过 PCIe 比 SATA 大得多的频宽来获得更快的速度。实际结果也不负期待, PCIe接 口固态硬盘确实非常快。
性能
目前 PCIe 硬盘接口通道有 PCIe 2.0 x2 和 PCIe 3.0 x4 两种,最大速度可达 32Gbps
。而且早期 PCIe 不能做启动盘的问题已经解决,现在旗舰级 SSD 大多会选择 PCIe 接口。
问题
只是,出于体积、兼容性和制造成本的限制,再加上会占用主机板接口,所以它注定无法大范围普及。所以,目前市面上 PCIe 接口的固态硬盘并不多。
❓ 问题:为什么 pcie 比 sata 快这么多?
我们先来了解一下两种接口硬盘的工作原理:
- 在传统SATA硬盘中,当我们进行数据操作时,数据会先从硬盘读取到内存,再将数据提取至CPU内部进行计算,计算后写入内存,存储至硬盘中;
- 而PCI-E就不一样了,数据直接通过总线与CPU直连,接近最大的传输速度,最大的数据量,省去了内存调用硬盘的过程。
❓ 问题:为什么固态硬盘欲抛弃 SATA 接口?
SATA 其实是给机械硬盘提供的接口,而 SSD 发展的快速发展使现有的 SATA 接口成为了瓶颈:
- SATA2 最高速率是
3Gbps
,理论传输速度支持到300MB/s
左右 - SATA3 最高速率也只有
6Gbps
,理论传输速度为600MB/s
虽然远远超过了 HDD 的传输速率,但是面对固态硬盘却显得捉襟见肘,使用 NVME 协议的 M2 接口的硬盘读写速度轻松飙升到 3000MB/s
,是 SATA3 的 5~6 倍之多,由此可见抛弃 SATA,而 M2 成为主流也只是时间的问题。
M.2 ( NGFF ) (⭐️ 主流 2022年10月26日)
(NGFF ( Next Generation Form Factor ) 是 M.2 接口行业规范的别名)
M.2 接口是 Intel 推出的一种替代 mSATA 的新的接口规范,可以兼容多种通信协议(如:AHCI 、 NVME 和 USB 等协议)。因此,数据可以通过SATA总线(使用AHCI协议)、PCIL总线(使用NVME协议)、USB总线等方式传输。
由于很好的平衡了速度、体积和成本等优势,M.2接口的固态硬盘已经成为主流,尤其在笔记本电脑领域中得到广泛利用。
外观
M.2 接口的固态硬盘宽度 22mm,单面厚度 2.75mm,双面闪存布局也不过 3.85mm 厚,但M.2 具有丰富的可扩展性,最长可以做到 110mm,可以提高 SSD 容量。M.2 SSD 与 mSATA 类似,也是不带金属外壳的,常见的规格有主要有 22x42、22x60、22x80 三种,宽度都为 22 mm,长度则各不相同。
总线 & 协议
M.2 接口的总线和协议有三种组合,虽然都是 M.2 接口,但其走的总线不同、支持的协议不同,对速度的影响可以说是千差万别。
M.2 接口目前支持两种通道总线和两种通信协议:(一共三种组合)
- 一个是 SATA 总线(使用 AHCI 通讯协议)(慢):由于 SATA 通道理论带宽的限制,极限传输速度也只能到
600MB/s
(此时该接口上的硬盘和普通的SATA固态硬盘没有区别,就是体积小一点) - 一个是 PCI-E 总线(使用 AHCI 通讯协议)(快):速率上限又pcie的版本和长度决定
(大概因为不愿重新开发 AHCI 协议和 PCIe 总线的适配,所以市面上数量较少,只有如:三星 SM951 AHCI版本) - 一个是 PCI-E总线(使用 NVMe 通讯协议)(快):理论硬盘接口速度高达
32Gb/s
(目前普及度最高的组合)
(目前常用在 pcie3.0 x4 中,速率上限4GB/s
)
(等 pcie4.0 x4 普及后,速率上限8GB/s
)
B-key & M-key
M.2 的接口有两种不同的规格,分别是 “socket2”(B key) 和 ”socket3”(M key) :
B key (socket 2) | M key (socket 3) | |
---|---|---|
豁口 | 左边 | 右边 |
总线 | SATA、PCIe x2 | SATA、PCIe x4 |
AHCI 协议 和 NVMe 协议
AHCI 协议
AHCI(Advanced Host Controller Interface)协议在机械硬盘时代 SATA 接口时就出现了。通过 AHCI 协议,主机可以发最多32条命令给硬盘执行,大幅提升硬盘性能。机械硬盘时代基本满足用户对性能的要求
NVMe 协议
NVMe(Non-Volatile Memory Express)协议在于充分利用 PCI-e 通道的低延时和并行性,极大的提高 SSD 的读写性能。
AHCI(SATA/SAS) | NVMe(PCIe) | |
---|---|---|
背景 | 为HDD而设计 | 为SSD而设计 |
最大队列数量 | 1 | 64k |
最大队列深度 | 32 | 64k |
延迟 | 6ms | 2.8ms |
通信 | 与SATA控制器通信 | 直接与CPU通信 |
更多:https://blog.csdn.net/bandaoyu/article/details/121072279
USB 协议
大家都知道,M.2 固态硬盘有 NVMe 和 SATA 两种协议。如果 M.2 插槽如果不支持特定的协议,相应的固态硬盘将无法识别和使用。同时,也有其他协议被 M.2 固态硬盘 厂商考虑过,如下面说的 USB协议。
上图中这款 Cactus 出品的4GB M.2设备使用了海派世通的主控,搭配一颗 SLC NAND 闪存,M.2 2242 版型的它其实是一颗 US B协议的存储产品,作用类似于过去的 USB DOM 闪存盘。
根据 Catus 提供的信息,这款 M.2 DOM 优盘的读写速度为 55/30MB/s
,普通玩家应该是看不上它的性能。不过作为工控领域的产品,它能够支持零下45度至90度的工业宽温标准,抗震能力达到3000G,在特定的应用环境下能够发挥出独特的作用。
更多:https://www.bilibili.com/read/cv2184990/
总结
速率情况
USB2.0接口的理论传输速率为480Mbps,最大数据传输速率约为60MB/s左右。
USB3.0接口的理论传输速率为5Gbps,最大数据传输速率约为500-600MB/s左右。
SATA2接口的理论传输速率为3.0Gbps,最大数据传输速率约为300-350MB/s左右。
SATA3接口的理论传输速率为6.0Gbps,最大数据传输速率约为550-600MB/s左右。
mSATA接口的理论传输速率与SATA2相同,为3.0Gbps,最大数据传输速率约为300-350MB/s左右。
eSATA接口的理论传输速率与SATA2相同,为3.0Gbps,最大数据传输速率约为300-350MB/s左右。
M.2 NGFF接口是一种新型的固态硬盘接口,其传输速率因不同的协议转接板而异,例如SATA协议转接板最高速率为300-350MB/s,PCIe NVMe接口最高速率可以达到几千MB/s。
使用情况
目前,市面上主要以 SATA 和 M.2 接口的固态硬盘为主,前者能够方便老电脑的升级,而后者得益于在各方面的平衡优势在近几年的主板和新电脑中占据主导地位。至于 PCIe 和 mSATA 接口的固态硬盘,受限于成本和速度等因素,如今已不常见。
点赞、收藏、关注!