logo科技微讯

尝试深入地解释 Thunderbolt、USB4、USB C

作者:科技微讯
日期:2020-12-08
📜 文章

苹果 M1 电脑配置了 USB4 接口,这又引起了我对 USB 的兴趣。查了一些资料,接下来汇总我对 USB C、USB4、Thunderbolt 的理解,肯定有错漏的地方,欢迎评论指正。

USB 协议

USB 协议主要有以下几种:

  • USB 2.0:480Mbps
  • USB 3.2 gen 1x1(曾用名:usb 3.0、usb 3.1 gen 1):5Gbps,8b/10b 编码,单通道
  • USB 3.2 gen 1x2:10Gbps,8b/10b 编码,双通道
  • USB 3.2 gen 2x1(曾用名:usb 3.1、usb 3.1 gen 2):10Gbps,128b/132b 编码,单通道
  • USB 3.2 gen 2x2( 有时候叫 usb 3.2):20Gbps,128b/132b 编码,双通道
  • USB4 gen 2x2:20Gbps,64b/66b 编码
  • USB4 gen 3x2:40Gbps,128b/132b 编码

usb 3.2 1x2 和 usb 3.2 2x2 分别是 usb 3.1 gen 1 和 usb 3.1 gen 2 的双通道版本,只有 USB C 接口才能实现双通道协议,为什么呢?因为 USB C 有四个高速差分对,两个差分对可以组成一个支持上下行的单通道(一个差分对用于发送,另一个用于接收,此谓上下行),四个差分对就是双通道,USB A、USB B 最多只有两对高速差分对,无法实现双通道。x2 表示双通道,再比如 PCIe 3.0 x4 用的 x4 表示四通道。

上面这段话你可能看不懂,看完这篇文章应该就懂了。

8b/10b 意思是把 8bit 的数据编码成 10bit 发送出去。目的是避免传输过程中出现信号失真,保证对方能收到正确的数据。

但从 8bit 增加到 10bit,相当于增加了 20% 的非实际数据的传输。usb 3.2 gen 2x1 和 usb 3.2 gen 2x2 使用 128b/132b 编码,只增加了不到 4% 的非实际数据的传输。所以虽然 usb 3.2 gen 2x1 和 usb 3.2 gen 1x2 的带宽都是 10Gbps,但有效传输速度有差异,前者大概是 1.212 GB/s,后者是 1.00 GB/s。

usb 4 的官方写法是 USB4,中间没有空格,USB4 = USB C + USB 3.2 + Thunderbolt 3(可选),所以要了解 USB4,还需要分别了解 USB C、Thunderbolt 3。

USB 接口

USB 的接口形状可分为 A、B、C 三种,其中 A 又分为标准的 A、mini A、micro A。USB B 也是。我好像没有用过 mini A 和 micro A,但 mini B、micro B 很常见,以前的手机几乎都用这两种接口,以至于我们说 mini USB、micro USB 默认就是 mini B、micro B。USB C 标准发布之后,才逐步向 C 过渡。

USB A、USB B

下图是各种 USB 接口形状,只是没有 mini A 和 micro A。

几乎所有 usb 接口
几乎所有 usb 接口

按照行业惯例,蓝色表示这些接口支持 USB 3.0 协议,可以看到 B、micro B 的蓝色和黑色外形不一样,这是因为要达到更快的速度,接口处需要添加更多的 pin 针。标准的 USB A 内部空间足够大,不需要改变形状就能增加 USB 3 额外要求的针脚,但 micro B、mini B 需要增加体积才能增加 pin 针。

至于为什么改成这个样子而不是另外的样子,是出于兼容性考虑。比如 USB 2.0 micro B 连接线也可以插入移动硬盘的 USB 3.0 micro B 接口,只是速度只能达到 USB 2.0,如下所示:

micro B 的线,连接 USB 3.0 micro B 的硬盘
micro B 的线,连接 USB 3.0 micro B 的硬盘

各 USB 接口的 pin 针数量和布局如下所示,可以看到从 USB 2.0 到 USB 3.0,pin 针从 4 ~ 5 个增加到 9 ~ 10 个,USB C 甚至增加到 24 个。

各种 USB 接口的内部结构
各种 USB 接口的内部结构

pin 针的数量和布局是为了实现不同的 USB 标准而定的,为了实现 USB 2.0,只需要 4 pin,为了实现 USB 3.0 需要 9 pin。各 pin 针的名称如下:

  • USB 2.0:VBUS、Gnd、D+、D-
  • USB 3.0:VBUS、Gnd、D+、D-、SSRX-、SSRX+、Gnd、SSTX+、SSTX-

对于 mini USB 和 micro USB,你可以看到有 5 个 pin 针,多出的 pin 针叫 ID Pin,用来切换 host 和 device 两种角色。有些安卓手机玩家会通过 OGT 线连接鼠标、键盘、U 盘等设备,就是通过这个 pin 实现的。OTG 线把手机 usb 接口的 ID Pin 和 Gnd Pin 连起来,于是手机就从 device 这个角色转换成 host 角色。ID Pin 默认不和 Gnd pin 相连。

通过 otg 线连接 U 盘
通过 otg 线连接 U 盘

除了 ID Pin,其他各 pin 的作用大概如下:

  • VBUS:供电;
  • Gnd:地线;
  • D+、D-:一个差分对,用来实现 USB 2.0;
  • RX- 和 RX+、TX+ 和 TX-:两个差分对,用来实现 USB 3.0(usb 3.2 gen 1x1)的 5Gbps 全双工速度,以及后来推出的 USB 3.1(usb 3.2 gen 2x1) 10Gbps 全双工速度。

全双工是指发送数据的同时也能够接收数据,两者可以同步进行,就好像我们打电话,说话的同时也能够听到对方的声音。USB 3 用一个差分对接收(receive),另一个发送(transmit)。

USB 3 的 pin 针
USB 3 的 pin 针

USB C

可以看到 USB A、USB B 有很多痛点:形状各异,体积大,正反面不同所以不能盲插,A 和 B 通常只能分别连接 host 和 device,不能反过来。

此外,当推出更快的 USB 协议时,是不是还要继续增加 pin 针,是不是继续增加体积?市面上各种接口这么多,有没有可能统一起来?

于是 USB-IF 一口气把 pin 针数量提高到 24 pin,并且把这些 pin 针全部塞入一个上下左右均对称,且体积更小的电路板中,这就是 USB C。

USB C 的 24 个 pin 针
USB C 的 24 个 pin 针

需要注意的是,USB C 公口和母口所采用的 pin 针有一点点差别,公口中间有两个 pin 是空的,有一个 CC pin 和一个 Vconn pin,而母口没有空 pin 也没有 Vconn,但 CC pin 的数量是两个,分别叫 CC1、CC2。

各 pin 的作用大概是:

  • Gnd:地线;
  • D+、D-:一个差分对,专门用来兼容 USB 2.0;
  • RX1- 和 RX1+、TX1+ 和 TX1-、RX2- 和 RX2+、TX2+ 和 TX2-:共四个差分对,用来实现 USB 3.x、USB4 的各个传输速度;
  • Vbus:一共有四个,给设备充电用的,例如给连接到电脑的手机充电,如果支持 PD 充电协议,可提供 5V ~ 20V 电压;
  • SBUS1、SBUS2:在 Alternate Mode 时会用到,连接耳机也是它在发挥作用;
  • CC1、CC2:CC 是 configuration channel 的简称,主要起沟通、配置作用;
  • Vconn:很多 USB C 线内部也有诸多电子元件,需要电,这个电从 Vconn 来。
雷电3Pro 编织线,图源充电头网
雷电3Pro 编织线,图源充电头网

DFP、UFP、Source、Sink

为了清楚说明 USB C 的工作原理,先认识一些概念。

在 USB C 出现之前,一条 USB 线往往一边是 A 另一边是 B,和 A 连接的那个设备叫 host,和 B 连接的那个设备叫 device。USB C 把 host 上的接口称作 DFP(downstream-facing port,下行端口),把 device 的接口称作 UFP(upstream-facing port,上行端口),有些设备例如扩展坞可能同时有 DFP、UFP。

有些英文资料会用 Source 和 Sink 分别表示输出电力和消耗电力。例如 DFP 会向 UFP source Vbus,向电子标志线(electronically marked cable)source Vconn,UFP 会从 DFP sink Vbus。Source 和 Sink 也可以用作名词,表示供电方和用电方。

DFP、UFP 都是从数据传输方向这个角度划分的,Source、Sink 则从电力传输方向这个角度划分。此外还有 DRD、DRP,分别是 dual role data、dual role power 的简称。

USB C 工作原理

前面已经说过雷电 3 母口(receptacle)有两个 CC pin,公口(plug)有一个 CC 一个 Vconn。当 plug 插入 receptacle 时,plug 的 CC 可能和 receptacle 的 CC1 连接,这时候 plug 的 Vconn 就会和 receptacle 的 CC2 连接。当 plug 反过来插入,则 CC 连 CC2、Vconn 连 CC1。

USB C
USB C

DFP 中的控制器会根据 CC1 和 CC2 的电压变化判断是否和 DFP 或 cable 完成了连接,以及判断 plug 的正反,知道了正反,就可以进一步让 receptacle 和 plug 的各个 pin 正确地对应起来。

成功连接后,DFP 还会通过 CC1、CC2 告诉 UFP 它能提供多大功率的电力。USB C 本身支持输出 5V 3A 15W 功率,如果采用了 PD 协议,则最大支持 20V 5A(PD 协议只规定了 5V、9V、15V、20V 四种电压)。UFP 获得这个信息之后,会据此向 DFP 请求电压、电流值。

苹果 MagSafe 无线充电器宣称搭配 20W 的 USB C 充电头就可以给 iPhone 输出 15W 的无线充电功率,但网友发现搭配 Macbook Pro 的 96W 充电头使用,MagSafe 输出功率竟然只有大概 10W。20W 的充电头就可以输出 15W,你 96W 的充电头反而只有 10W?这是因为它们在沟通的过程中,MagSafe 发现这个充电头不支持 9V/2.2A 输出,于是请求了更低的电流。至于苹果为何让 MagSafe 认准了 9V/2.2A,我也不知道。

PD 协议需要 CC pin 进行握手沟通,而 USB A、USB B 都没有 CC pin,近两年支持 PD 协议的 iPhone 配送的充电线已经改为 C2L 接口。从 iPhone 8 开始支持 PD 协议,有人实测充电功率可达 18 ~ 22W。

过去 iPhone 配送的充电器都是 5V 1A,而 iPad、Mac 的充电器都支持输出 5V 2.4A,用这些充电器给 iPhone 充电也比 5V 1A 快很多,这是因为 5V 2.4A 是所谓的 Apple 2.4A 快充协议,从 iPhone 6 到 iPhone 12 都支持苹果的 2.4A 充电。

再说说 PD 协议,它定义了 5V、9V、15V、20V 四种电压,在输出功率低于 60W 的情况下,电流最高不超过 3A。如果当前档位的电压 * 3A 无法满足功率需求,就会进入下一级电压。

USB PD
USB PD

USB C 接口仅仅是一个接口,各种协议也仅仅是协议,USB C 接口背后是控制器,是这些控制器控制着 24 pin 的行为。

USB 2.0 模式

USB C 拥有 24 pin,但不是所有 pin 都同时参与工作。有些 USB C 接口只支持 USB 2.0,这种情况下只有 CC、Vconn、Gnd、Vbus、D+、D- 这些 pin 在工作。

USB 3.x 模式

前面已经说过 USB 3.x 模式有 4 种,其中两种是单通道,另外两个是双通道。如果是单通道,则是靠近 CC pin 的 Tx+ 和 Tx-、Rx+ 和 Rx- 这两个差分对工作;如果是双通道,那所有 Tx、Rx 都工作。

当然,除了 TX、RX 之外,Gnd、Vbus、CC、Vconn 都需要参与。至于 D+、D-,可以用也可以不用,具体看它是否需要 USB 2.0 的能力。对于需要同时提供 USB 3.x 和 USB 2.0 接口的扩展坞,则会开启 D+、D-。

Alternate Mode

USB C 标准制定了所谓的 Alternate Mode(下面简称 Alt Mode),即允许 24 pin 中的 Tx、Rx、SBU 共 10 个 pin 被重新配置,以实现诸如 DisplayPort、HDMI、Thunderbolt 等其他协议,当然,这 10 个 pin 不需要同时改变。在 Alt Mode 中,D+、D- 也需要保持启用,以支持 USB 2.0。

四个 Tx/Rx 差分对以及 SBU 用于 Alt Mode
四个 Tx/Rx 差分对以及 SBU 用于 Alt Mode

Alt Mode 其实是 Power Delivery 协议(简称 PD 协议)的核心功能之一,PD 的名称有点误导人,它的作用不止于供电,进入 Alt Mode 前需要控制器根据 PD 协议通过 CC pin 进行一系列的沟通。

以 DisplayPort Alt Mode 为例,实现方式有以下两种:

  • 把两个 Tx、Rx 差分对配置为两个 dp 通道,把剩下的两个 Tx、Rx 差分对配置为一个 USB 3 通道,这样就保留了 USB 3 的传输能力;
  • 把所有 Tx、Rx 差分对配置为四个 dp 通道,这样虽然失去了 USB 3 的能力,但支持更高分辨率或更高帧率的外置显示器。

SBU 在 DisplayPort Alt Mode 中传输 DisplayPort AUX 信号。

一个实际的例子是苹果 A2119 转换头 ,它可以把电脑的一个 USB C 接口(非雷雳)扩展出一个 5Gbps 的 USB A 口、HDMI 口、USB C 充电口。

苹果 A2119 转换头
苹果 A2119 转换头

市面上有一些 USB C 转双 DisplayPort 接口的适配器,win 电脑可以用它扩展出两个外置显示器,但 mac 电脑只能扩展一个,第二个可以点亮,但显示画面和第一个一样,是第一个的镜像。这是因为 macOS 不支持 MST,只支持 SST (Single-Stream Transport),SST 其实就是普通的 dp 连接。

Support Windows Display Extended and Mirror mode (MST and SST). MacOS does not support MST technology. When this product is used with MacOS you will get 2 mirrored displays rather than 3 independent displays. Windows 10, 8 and 7 you will be able to configure for 3 independent displays.

MST 是 Multi-Stream Transport 的简称,从 dp1.2 开始支持。它类似 Thunderbolt 的 Daisy Chain 功能,即显示器 A 通过 dp 线连接到电脑,显示器 B 通过 db 线连接到显示器 A 的 dp 输出口(如果它有输出口的话),然后显示器 C 通过 db 线连接到显示器 B 的 db 输出口,一直连下去,只要带宽不超过 dp 可支持的带宽,最多可连 63 个屏幕。

但这种 Daisy Chain 的做法并不是常见,常见的做法是把以上所有屏幕连接到所谓的 MST 扩展坞,刚才提到的 USB C 转双 DisplayPort 接口的适配器 就是这样一个 MST 扩展坞。可惜 macOS 并不支持 MST,据说这只是软件上的限制,给 mac 电脑安装 win 或 linux 系统应该就能用 MST 扩展坞。

所以,把一个 USB C 通过 Alt mode 扩展为两个 DisplayPort 接口这种做法不适用于 mac。但是,这并不意味着不能把两个显示器同时连到 mac 的一个 USB C 接口,因为 mac 的 USB C 有 Thunderbolt。

各 pin 作用小结

现在你应该对 USB C 各 pin 的作用有一定了解,并明白它为什么支持正反盲插,为什么支持这么多协议。

在 PD 协议的帮助下,USB C 可以进入 Alt Mode,这个模式让 USB C 数据线变成了一根 DisplayPort(简称 dp) 数据线,通过 dp1.2、dp1.4 等协议连接外置显示器。

USB C 另一个重要 Alt Mode 是 Thunderbolt,接下来看看什么是 Thunderbolt。

Thunderbolt 3

有些文章会把 Thunderbolt 简称为 TB,很多硬件厂商喜欢把它叫“雷电”,而苹果官方称之为“雷雳”,下面我会混着使用这三种称呼。

Thunderbolt 控制器

USB C 开启 Thunderbolt Alt Mode 的前提是:设备有 TB 控制器。

Intel 为雷电 3 发布了两个系列的 TB 控制器,分别是 Alpine Ridege、Titan Ridge,每个系列又有多个型号:

  • Alpine Ridege:DSL6240、DSL6340、DSL6540、JHL6340、JHL6540,后面两款发布于 16Q2;
  • Titan Ridge:JHL7540、JHL7340、JHL7440,这三款发布于 18Q1;

其中 Titan Ridge 支持 DisplayPort 1.4 协议,Alpine Ridege 只支持 DisplayPort 1.2。

2020 年 Intel 发布 Maple Ridge 控制器,这是雷电 4 控制器,有三款:JHL8540、JHL8340、JHL8440。

以上控制器有一些用于电脑,有一些用于扩展坞等外设。那雷电线呢?雷电线也要有相应的控制器,例如售价 ¥949 的苹果雷雳 3 Pro 连接线两端均有一个型号是 JHL7040 的芯片:

JHL7040
JHL7040

用在电脑中的雷电控制器对外连接雷电接口,对内打通了一个 PCIe 3 x4 以及最多两个四通道的 DisplayPort,这句话后面会有更详细的说明,这里是为了帮助你理解下面这段话。

2016、2017 年的 13 英寸四雷雳口的 Macbook Pro 左边和右边的雷雳口速度不一样,是因为它们采用的第六代 U 系列处理器(6267U、6567U、6287U)只支持 12 个 PCIe 通道,而且这 12 个通道不直接连接 CPU,而是先统一汇总到 PCH,然后由 PCH 通过 OPI 通道连接到 CPU。

CPU <-> OPI(DMI)<-> PCH <-> 雷电 3 主控 <-> 雷电 3 接口

12 个 PCIe 通道,有 4 个分给固态硬盘,4 个分给左边的雷雳控制器,右边的控制器只分配了 2 个,剩下 2 个需要用在其他地方。由于一个 PCIe 3.0 通道的带宽只有 8Gbps,所以右边的雷电控制器 PCIe 带宽被限制为 16Gbps。

为什么同年发布的 15 英寸的 Macbook Pro 没有这个问题呢?因为 15 英寸用的 6700HQ、6820HQ、6920HQ 处理器本身就有 16 个 PCIe 通道和它直接相连,另外还有 16 个 PCIe 连接到 PCH。直连到 CPU 的 PCIe 通道中,有 8 个分配给独立显卡(15 英寸有独显),其他 8 个平分给两个雷电控制器。

以上理论来自 Evan McCann,错了别打我。

13 英寸 Macbook Pro 从 2018 年开始 PCIe 的通道数量从 12 个增加到 16 个,所以右边的雷电控制器也分配了 4 条 PCIe 通道,成为满速接口。

mac 电脑可以打开系统信息查看它安装了多少个雷电控制器,一个雷雳总线代表一个雷电控制器,如下所示,我的 13 英寸两雷雳口的 MBP 只有一个雷电控制器。

查看雷电控制器的数量
查看雷电控制器的数量

上面提到的雷电控制器都是独立的一块芯片,需要电脑厂商向 Intel 购买然后设计到主板中去,一个雷电控制器售价貌似是 8 ~ 12 美金,成本较高,所以多年以来雷电接口常见于苹果电脑,PC 比较少。

可能是为了加速雷电技术的普及,Intel 开始直接把雷电控制器整合进它的处理器中。Intel 第 10 代 Ice Lake 处理器加入了 TB3 功能,硬件厂商省下了购买雷电控制器的费用,所以不少 Win 电脑也开始支持雷电接口。最新的第 11 代 Tiger Lake 处理器甚至内置了雷电 4。

Thunderbolt 三种模式

要开启 Thunderbolt 模式,需要连接双方均支持雷电技术,有一方不支持都不能进入雷电模式。

比如把我的三星 T5 移动硬盘通过硬盘自带的 USB C 数据线连接到我的 MBP 雷电口,因为 T5 和它的数据线都不支持雷电技术,所以只能通过 USB 协议而不是雷电协议传输数据。

再比如我的 MBP 和外置显示器都有雷电口,但我的 USB C 线不是雷电线,于是会进入 DisplayPort Alt Mode,这是 USB C 的技术,虽然也能点亮屏幕,但只能连一个屏幕(mac 不支持 dp 的 mst,前面解释过)。mac 要想连接两个 4k 60hz 显示器,需要进入 Thundebolt 模式。

如果硬件支持并成功进入了 Thunderbolt 模式,雷电控制器就会建立 4 条高速通道,每一条通道的带宽可以是 10Gbps 或 20Gbps,这样就实现了双向 20Gbps 或 40Gbps 的总带宽。至于 Thunderbolt 是如何利用 USB C 的 10 个可重新配置的 pin 实现双向 40Gbps 的速度,我没有找到公开的资料。

Thunderbolt 带宽
Thunderbolt 带宽

还记得我前面说过的这句话吗:TB 控制器对外连接雷电口,对内打通了一个 PCIe 3.0 x4 通道,以及最多两个四通道的 DisplayPort 连接。

PCIe 3.0 x4 其实就是四条 8Gbps 双向通道,带宽共 32Gbps,它使用 128b/130b 对数据进行编码,所以一个通道的有效数据传输速度是 985MB/s,四通道就是 3940MB/s。

再说 DisplayPort,一个标准 dp 连接通常由四个通道组成,最多两个四通道 dp 是指雷电控制器会根据外置显示器的数量和分辨率,又或者和它连接的雷电扩展坞所提供的接口,确定建立一个还是两个 dp 连接。dp 连接的带宽和 dp 协议的版本有关,目前常见的版本是 dp1.2 和 dp1.4。

一个四通道 dp1.2 连接最高支持 4 * 5.4Gbps = 21.6Gbps 的带宽,两个四通道 dp1.2 就是 43.2Gbps。但是,因为 dp1.2、dp1.4 都采用 8b/10b 编码方式,所以即使跑满两个四通道 dp1.2 的 43.2Gbps 带宽,有效数据的传输速率只有大概 35Gbps。dp1.2 通常以 HBR2 模式传输数据,dp1.3 和 dp1.4 需要使用 HBR3 模式才能达到上述速度。HBR 是 high bit rate 的简称。

需要注意的是,TB 控制器背后的 pcie 和 dp 连接并不总是跑满带宽,也不可能同时跑满,不能同时跑满是因为 TB 一共才支持 40Gbps 的双向带宽。

在进一步理解 Thunderbolt 以前,先看看 Intel 对它的官方定义,可能第一次看不懂,但看完这篇文章再回顾,也许就能明白每一句话的意思了:

Fundamentally, Thunderbolt is a tunneling architecture designed to take a few underlying protocols, and combine them onto a single interface, so that the total speed and performance of the link can be shared between the underlying usages of these protocols – whether they are data, display, or something else.

所谓 tunneling architecture 可以翻译为隧道技术,隧道技术可以看作是将不同协议的数据整合到一起的技术 ,通过数据包头来区分类型。

Thunderbolt 和 PCIe

40Gbps 怎样分配?下图显示,如果是 Data Only 模式,例如把文件从电脑拷贝到雷电移动硬盘,数据会通过电脑主板中的 PCIe 通道转移到 TB 控制器再通过雷电线传输出去,而 TB 控制器最多只打通了 4 个 PCIe 通道,所以理论上说,从硬盘到 TB 控制器的速率应该能达到 32Gbps(假设电脑硬盘的读取速度能达到 32Gbps),但事实上是这样子的吗?不是的,事实上只有 22Gbps,远远未达到四条 PCIe 3.0 能提供的 32Gbps 带宽。

Thunderbolt 带宽分配
Thunderbolt 带宽分配

这就是雷电硬盘最大速率通常标注 2800MB/s 的原因,不过有些雷电 3 硬盘能测出 3000MB/s 的速度,不知道为什么。

OWC ThunderBlades
OWC ThunderBlades

问题是,为什么只有 22Gbps?这似乎是 Intel 的人为限制。

有些网友推测:可能是因为 Intel 生产的一些 TB3 控制器可以连接两个雷电接口,Intel 希望这两个接口至少支持 USB 3.x。USB 传输数据时也走 PCIe 通道,如果其中一个接口跑满了 32Gbps,那剩下的接口就只有 0 带宽,所以给它预留了 32 - 22 = 10Gbps。虽然不是所有雷电控制器都连接两个雷电接口,但为了统一,Intel 把 22Gbps 的限制实施到所有 TB3 控制器上。

以上只是推测。22Gbps 其实对硬盘的影响不大,2800MB/s 对硬盘来说足够了,但可能会成为 eGPU 的性能瓶颈。

Thunderbolt 和 DisplayPort

我们再仔细看看上面那张 “Thunderbolt 带宽分配” 的示意图,图片显示 TB 建立的通道可同时传输 Data (PCIe) 和视频 (DisplayPort) 数据。

如果我没有理解错,USB C 的 Alt Mode 模式只能传输一种数据,例如 DisplayPort Alt Mode 下的 dp 通道只能传输 dp 信号,再比如 USB 3 的通道应该也只能传输 USB 数据,两种数据不会混合在一起。

Intel 是怎样把不同协议的数据混在一起传输?我没有找到答案。我们只需要知道 Thunderbolt 的 40Gbps 带宽是由 PCIe、DisplayPort 两种数据共同填充的,并且 DisplayPort 的优先级更高。

同时传输 PCIe 和 DisplayPort 数据
同时传输 PCIe 和 DisplayPort 数据

再复习一下这句话:TB 控制器对外连接雷电口,对内打通了一个 PCIe 3.0 x4 通道,以及最多两个四通道的 DisplayPort 连接。

最多两个四通道 dp 连接意思是,如果只连接一个 tb 显示器,就建立一个 dp 连接;如果连接两个 tb 显示器(例如用 TB3 扩展坞),就建立两个 dp 连接。一个四通道 dp1.2 连接带宽是 21.6Gbps,两个就是 43.2Gbps。一个四通道 dp1.4 的带宽是 32.4Gbps,两个 dp1.4 的连接就是 64.8Gbps。

还记得我前面提到的 DisplayPort MST 功能吗?通过 MST 连接的所有屏幕其总带宽不能超过一个四通道 dp 连接所支持的带宽,对于 dp1.2 就是 21.6Gbps,dp1.4 就是 32.4Gbps。假设都扩展两块屏幕,TB 比 MST 支持更高的分辨率和更高的刷新率。

优先分配 dp 带宽,40Gbps 减去 dp 占用的带宽就是 PCIe 的可用带宽。但由于 PCIe 带宽不能高于 22Gbps,所以当 dp 带宽小于 8Gbps 时,这个雷电连接就达不到所宣称的 40Gbps 带宽。

由于 TB 是双向 40Gbps,PCIe 是双向的,但 dp 信号始终是从电脑向显示器传输,所以它不会影响从屏幕到显示器的 PCIe 传输速度。通过 Daisy Chain 技术把雷电硬盘连接到显示器的第二个雷电接口,然后把硬盘的数据拷贝到电脑,理论上说速度依然可以达到 22Gbps。

Thunderbolt 带宽分配
Thunderbolt 带宽分配

上图显示 5K 60Hz 的屏幕是通过 Dual DisplayPort 连接的,意思是把 mac 的一个雷电口通过雷电扩展坞变成两个 dp 口,这两个 dp 口可以分别连接一个 4k 显示器,也可以同时连接一个 5k 显示器。mac 的 TB 控制器检测到这个雷电扩展坞,会建立两条 dp 连接,两条 dp1.2 的连接最高提供 43.2Gbps 的带宽,足够带动一个 5k 屏幕。

Dual DisplayPort
Dual DisplayPort

有趣的是,苹果 Macbook Pro 连接 5K 屏幕只需要一条线,根本不需要扩展坞。Intel 说的 dual DisplayPort 不适用于苹果。

看看下面这张图,dp1.2 协议所使用的 HBR2 模式无法满足 5k 60hz 的带宽,需要 dp1.4 的 HBR3 才行。但即使是 2016 年 13 英寸双口 MBP 都能以一根线直连 5K 60hz 屏幕,并且它不支持 dp1.4。

各 dp 协议支持的分辨率和刷新率
各 dp 协议支持的分辨率和刷新率

这是怎么做到的?我也不知道,看了 Linus 的视频,我觉得苹果也知道一条 dp 连接无法提供足够的带宽,所以苹果不知道用了什么黑科技在只有一条线的情况下建立了两条 dp 连接,然后把两条带宽塞入一条雷电线传输出去。9to5Mac 的想法类似。

2016 年 macbook pro 连接 5k 显示器
2016 年 macbook pro 连接 5k 显示器

对苹果来说 5k 算什么啊,Macbook Pro 甚至能用一条线带动 6k 60hz 显示器。

6k 60hz 的屏幕大概需要 35Gbps 的带宽,远远高于一个 dp1.2 连接所能提供的带宽,也高于一个 dp1.4 连接的带宽。那怎么办呢?这时候用到一项叫 DSC(Display Stream Compression)的技术,DSC 最多能够以 3:1 的比例对数据进行压缩。在 DSC 的帮助下,一个 dp1.4 连接就能带动一个 8K UHD (7680 × 4320) 60 Hz 的显示器。

dp1.2 不支持 DSC,dp1.4 才支持。上面提到的 2016 款 13inch MBP 的显卡不支持 dp1.4,所以无能为力。以下是部分支持 dp1.4 苹果电脑,这些电脑都支持 6k 显示器:

对于没有独显的 MBP 一直到 2020 年才支持 dp1.4,因为它们采用的第十代 ice lake 处理器的核显终于支持 dp1.4 了。

以 dp1.4 协议连接显示器,显示器也要支持 dp1.4,所以购买显示器的时候要留意它 dp 接口的参数。

奇怪的是,2017 年的 iMac2017 年的 iMac Pro2017 年的 15 英寸 MBP 它们的显卡虽然支持 dp 1.4,但它们都无法连接 6k 60hz 显示器。为什么呢?不知道,但它们都有一个共同的特点:TB 控制器仅支持 dp1.2,不支持 dp1.4。这是导致它们不支持 6k 的原因吗

如果是,那为什么以上三款电脑可以通过苹果 A2119 转换头连接 4k 60hz 显示器?这个问题暂时无解,先放在一边。

Thunderbolt 4

PCIe、DisplayPort 是和 Thunderbolt 有关的最重要的两个方面,除此之外,还有 Daisy Chain、Networking 局域网等功能,但都不难理解,感兴趣的自己去看看吧。

接下来了解 TB3 和 TB4 的区别。

OWC 扩展坞制造商的 Larry O’Connor 认为 TB3 TB4 其实没有区别,TB4 的技术 TB3 都有。只是要想获得 TB4 认证,一些 TB3 不强制要求的标准在 TB4 中被强制要求了,所以 TB4 某种程度上说就是高规格的 TB3。他还说 Mac 电脑的雷电接口几乎是全功能雷电 3 接口,认证了 TB4 也不会有什么提升。

下图是 TB4、TB3 认证所需的最低要求对比,注意是“最低”要求,不是“最高”要求:

雷电3 vs. 雷电4
雷电3 vs. 雷电4

根据这张表格,我们知道 TB3、TB4 大概存在以下区别。

区别一

雷电 4 线需要在 2 米及以下的长度要保证达到 40Gbps 的传输速度。

雷电 3 线没有这项要求,事实上,超过 0.5m 的雷电 3 线可能只支持 20Gbps。雷电 3 线有 passive 和 active 之分,active 在 2 米及以下可以达到 40Gbps,但不兼容 usb 3,而 passive 通常在 0.5m 以内才能达到 40Gbps,在 1m 或 2m 会变成 20Gbps,好处是它兼容 usb 3。

我的三星 t5 移动硬盘使用自带的 usb 线可以达到 10Gbps 的速度,但如果用 LG UltraFine 4K 显示器自带的 TB3 线进行连接只能达到 480Mbps 的速度,不支持 USB 3,应该是 active 线。

但是,苹果 Mac Pro 自带的雷电线也是 2 米,不过同时支持 40Gbps 和 USB 3.1 gen 2。按照前面的说法,2m 支持 40Gbps 应该是 active 线,但 2m 支持 USB 3 应该是 passive 线,不是很清楚苹果是怎么做到的。也许这条线已经满足 TB4 标准了吧,我猜。

区别二

TB4 配件(例如扩展坞)需要支持 4 个雷电接口,其中一个可以连电脑,另外三个连接外围设备。

TB3 扩展坞只要求有 2 个雷电口,其中一个连电脑,意味着连接外围设备的雷电口只有一个。在 TB4 发布之前,雷电扩展坞的雷电口好像最多只有两个,但这似乎是 Intel 的原因,因为雷电 3 控制器好像不支持两个以上的雷电口。为雷电 4 准备的 8000 系列控制器已经支持。

区别三

TB4 要求必须支持两个 4K 显示器,TB3 只要求支持一个。当然 TB3 也可以支持两个 4K,只是不强制要求。苹果发布的三款 M1 电脑只支持一个外置显示器,不符合 TB4 认证标准,也许这就是苹果没有把 M1 的雷电接口称作雷雳 4 的原因吧。

区别四

通过 PCIe 通道传输数据,TB4 要求必须达到 32Gbps 的带宽,也就是说,每一个 TB 控制器必须连接 4 个 PCIe 3 通道。TB3 两个通道也能通过认证。

区别五

功率低于 100W 的笔记本电脑要想通过 TB4 认证,必须至少有一个雷电口支持 PD 充电协议,可以用来给电脑充电。TB3 可以不支持充电。

区别六

连接到雷电扩展坞的电脑进入睡眠状态后,必须能通过按下键盘或移动鼠标唤醒,无论屏幕是否合上。

TB3 没有这种要求,有网友表示他的 MBP 连接了雷电 3 扩展坞后,电脑睡眠了扩展坞也会睡眠,这时连接到这个扩展坞的鼠标和键盘不能唤醒 MBP。

苹果论坛有网友表示他的鼠标、键盘通过蓝牙和电脑连接,外置显示器连接到雷电 3 扩展坞的 DisplayPort 口。电脑睡眠后,鼠标和键盘不能唤醒这个屏幕,貌似是因为扩展坞跟着电脑一起睡眠了,睡眠后断电,断电后无法自动重新通电,所以无法重新点亮屏幕。

TB4 解决的可能就是这个问题吧?

区别七

TB4 还要求提供基于 Intel VT-d 的 Direct Memory Access 保护,TB3 没有这个要求。

区别八

TB4 要求符合 USB4 标准,TB3 只要求兼容 USB4 标准。换句话来说:TB4 肯定是 USB4,但 USB4 不一定是 TB4。

USB4 和 DisplayPort 2.0

USB4 的正式写法是 USB4,中间没有空格。开头已经说过:USB4 = USB C + USB 3.2 + TB3(可选)。

  • USB 2.0、USB 3.1 可以通过 A、B 等多种接口实现,而 USB4 只能是 USB C;
  • USB4 可选 10Gbps、20Gbps、40Gbps 三种速度,所以 USB4 不强制 40Gbps,很多文章一提到 USB4 就说它支持 40Gbps,容易让人产生误解;
  • USB4 强制支持 PD 充电,虽然不强制达到 100W;
  • USB4 不强制支持 TB3,所以不要以为 USB4 一定支持上面提到的 TB3 技术。之所以不强制支持 TB3,是因为有些设备,例如手机,可能不需要 TB3 提供的功能;
  • USB4 可以通过 DisplayPort Alt Mode 2.0 实现 80Gbps 的视频带宽。

说到 USB4,就不得不提 DisplayPort 2.0,因为它们都是基于 Thunderbolt 3 设计的。

下图来自 Anandtech,是关于 dp2.0 和其他 dp 协议的对比,可见 dp2.0 x4 的带宽最高支持 80Gbps,编码方式由于从 8b/10b 升级到 128/132b,所以有效数据传输带宽也能达到 77.37Gbps,能带动 8k 60hz 的显示器,这还是在没有 DSC 的情况下。

dp 协议对比
dp 协议对比

dp2.0 其实定义了三种带宽,分别是 40Gbps、54Gbps、80Gbps,之所以有三种带宽是因为它支持三种传输模式,分别是 UHBR 10、UHBR 13.5、UHBR 20。要达到想要的带宽,电脑和显示器都要支持相应的 dp 协议,并且连接它们的线要支持对应的传输模式。如果电脑和显示器支持 dp2.0,但用的线只支持 UHBR 10,那就是 40Gbps 的带宽。

由于 dp2.0 也是基于 TB3 制定的协议,所以如果一个 USB4 接口支持 TB3,那这个 USB4 接口就基本具备了传输 dp2.0 的硬件能力。所以一个支持 TB3 的 USB4 接口进入 DisplayPort Alt Mode 之后,就能以 dp2.0 而不是 dp1.2 或 dp1.4 的协议传输 dp 数据,这个模式叫 DisplayPort Alt Mode 2.0。

DisplayPort Alt Mode 2.0 和前面已经详细说明的基于 dp1.2 或 dp1.4 的 DisplayPort Alt Mode 一样,可以把四个高速差分对变成四个 dp 通道,也可以只把两个高速差分对变成两个 dp 通道。dp 只要求数据向一个方向传输,所以无论是四个还是两个 dp 通道,都是单向的。

dp Alt 模式下的 dp 通道只能传输 dp 数据,但支持 TB3 的 USB4 接口还可以通过隧道技术把 dp、pcie、usb 等数据混在一起传输,带宽动态分配。由于 USB4 在隧道模式下是双向的,一个方向的带宽最高只有 40Gbps,所以混合传输时,dp2.0 数据无法达到 80Gbps 带宽。说了这么多我想表达的是:要完全释放 dp1.4 的带宽,dp alt 模式和隧道模式都可以;但要想充分释放 dp2.0 的带宽,USB4 接口需要在 dp alt 模式下运行。

总结

这篇文章先介绍了 USB 各种接口的区别,包括形状、pin 针的结构和功能;接着重点介绍了 USB C 各 pin 针的作用,据此了解它是如何兼容各 USB 协议的,并如何通过 Alt 模式实现 DisplayPort、Thunderbolt 等传输协议。

​ 用 USB C 连接显示器有两种方法,一种是通过 USB C 的 Alt 模式,另一种是通过 Thunderbolt 协议的 dp 连接。搞清楚 dp 对我们理解显示器外接有 ​ 很大帮助,你需要知道 dp1.2、dp1.4、dp2.0、HBR、MST、DSC​ 等和 DisplayPort 有关的技术,有些硬件(主要是显卡)支持这些技术,有些不支持,这就是为什么有些 USB C 接口可以连接 ​ 高分辨率的显示器,有些不能。

要明白 Thunderbolt 你最好先了解雷电控制器,然后你需要知道雷电技术其实就是把 dp、pcie 两种数据同时塞入一个通道中进行传输,两种数据共享 40Gbps 的带宽 ​。pcie 是基本的电脑硬件知识,如果你不清楚可以先看看这方面的资料。

最后是关于 USB 的最新协议 USB4,以及 Thunderbolt 的最新协议 TB4​。一言以蔽之:USB4 = USB C + USB 3.2 + TB3(可选);TB4 = 更多强制要求的 TB3。​

以上是我对 USB C、USB4、Thunderbolt 的理解,肯定有错漏的地方,欢迎评论指正。

donation赞赏
thumbsup0
thumbsdown0
暂无评论