问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

PCIE 通道分配分析 -- 以 Z270 PCH 为例

创作时间:
作者:
@小白创作中心

PCIE 通道分配分析 -- 以 Z270 PCH 为例

引用
1
来源
1.
https://www.dyldr.top/blog/PC/PCIE_channel

本文以Z270 PCH为例,详细分析了PCIE通道的分配情况。通过结合硬件配置、系统信息和数据手册,深入探讨了PCIE通道的物理规格、电气规格、实现方式以及具体的通道分配情况。

背景

玩上了 E3,很好奇通道分配情况。使用的主板是 Z270-Dragon, CPU 是 E3 1240v6。

基础知识

PCIE 有很多种规格,为了清晰描述,给出以下方便的定义:

  • 物理(插槽)规格:插槽的外形规格。如 PCIE x16, x8, x4, x1, 或者 M.2。
  • 电气规格:连接到插槽的 PCIE 通道 (Lane) 数。一个 X16 物理规格的插槽可能只有 x8 的通道,常见于带有多个 X16 的主板上,但是没有那么多通道。

PCIE 在实现上可以有两种,即

  • CPU 直连
  • PCH 提供

。CPU 直连的通道速度最快,不受其他限制;而 PCH 提供的通道虽然多,总体速度受 DMI Link 的速度限制。(小水管)

PCIE 的通道拆分即指 CPU 直连的 PCIE 通道拆分,涉及到 CPU 相应 CFG 引脚的配置,高端芯片组通过 GPIO 连接到这些引脚来提供动态配置拆分的选项。

PCH 上的 PCIE 信号路径大致如下:

+-----+    DMI    +-----------------------------------------------+
| CPU | <=======> |  -----+                                +------|
+-----+           |       |                             +->| HSIO |
                    |  +------------+     +----------+   /   +------|
                    |  | Controller | <-> | HSIO MUX | <---->| HSIO |
                    |  +------------+     +----------+   \   +------|
                    |                          ^          +->| HSIO |
                    |                          |             +------|
                    | PCH              (USB3 Signals, etc)   | .... |
                    +-----------------------------------------------+

这里涉及 Controller,HSIO 等概念,解释如下:

  • DMI (Direct Media Interface): 一种高速串行接口,用于在 CPU 和 PCH 之间传输数据,负责传递PCIe、USB、SATA 等多种类型的 I/O 请求
  • PCIe Controller: 对于PCIe设备而言,PCIe控制器负责初始化、配置和管理PCIe链路。它决定了如何分配带宽、处理中断、执行电源管理等功能
  • HSIO (High-Speed I/O): 高带宽输入输出模块,它是PCH中负责处理高速信号的部分。HSIO模块支持多种高速接口协议,包括但不限于PCIe、USB 3.x 和 SATA
  • HSIO MUX (Multiplexer):一个多路复用器,允许从多个源(例如,PCIe控制器、USB控制器等)共享有限数量的HSIO通道

资料获取

E3-1240v6 处理器概览万恶的 Intel 并不给我们数据手册,只能看看概览了。

200系 PCH 数据手册一共有两卷,卷 1 是概览,卷 2 是寄存器等详细描述。我们只需要看卷 1 就可以了。

分析

物理&电气规格

观察主板可知:

这块主板一共带有两条 PCIE X16 插槽,4 条 PCIE X1 插槽,两个 M.2 PCIE/SATA Combo 插槽。

其中,PCIEX16_1 是满连接的,和 处理器的 x16 直连对应。

而 PCIEX16_2 是只有一半长度的(即插槽上有针脚的部分),应该对应最大 X8,也就是 2x8 模式。

其余的 PCIE 和 M.2 接口则是由 PCH 提供,需要进一步查看 PCH 的手册确定。

端口规格与连接

X1 插槽

这些 PCIEx1 到底对应 PCH 上的哪些呢?一个办法是查看 dmidecode。运行:

sudo dmidecode -t slot

得到:

# dmidecode 3.6
Getting SMBIOS data from sysfs.
SMBIOS 3.0.0 present.
Handle 0x001B, DMI type 9, 17 bytes
System Slot Information
    Designation: PCIEX16_1
    Type: PCI Express
    Data Bus Width: 16x or x16
    Current Usage: Available
    Length: Long
    ID: 0
    Characteristics:
        3.3 V is provided
        Opening is shared
        PME signal is supported
    Bus Address: 0000:ff:01.0
Handle 0x001C, DMI type 9, 17 bytes
System Slot Information
    Designation: PCIEX16_2
    Type: PCI Express
    Data Bus Width: 16x or x16
    Current Usage: Available
    Length: Short
    ID: 1
    Characteristics:
        3.3 V is provided
        Opening is shared
        PME signal is supported
    Bus Address: 0000:ff:1b.4
Handle 0x001D, DMI type 9, 17 bytes
System Slot Information
    Designation: PCIEX1_1
    Type: PCI Express
    Data Bus Width: 1x or x1
    Current Usage: Available
    Length: Short
    ID: 2
    Characteristics:
        3.3 V is provided
        Opening is shared
        PME signal is supported
    Bus Address: 0000:ff:1c.3
Handle 0x001E, DMI type 9, 17 bytes
System Slot Information
    Designation: PCIEX1_2
    Type: PCI Express
    Data Bus Width: 1x or x1
    Current Usage: Available
    Length: Short
    ID: 3
    Characteristics:
        3.3 V is provided
        Opening is shared
        PME signal is supported
    Bus Address: 0000:ff:1c.4
Handle 0x001F, DMI type 9, 17 bytes
System Slot Information
    Designation: PCIEX1_3
    Type: PCI Express
    Data Bus Width: 1x or x1
    Current Usage: Available
    Length: Short
    ID: 2
    Characteristics:
        3.3 V is provided
        Opening is shared
        PME signal is supported
    Bus Address: 0000:ff:1c.5
Handle 0x0020, DMI type 9, 17 bytes
System Slot Information
    Designation: PCIEX1_4
    Type: PCI Express
    Data Bus Width: 1x or x1
    Current Usage: Available
    Length: Short
    ID: 3
    Characteristics:
        3.3 V is provided
        Opening is shared
        PME signal is supported
    Bus Address: 0000:ff:1c.6

丢给 LLM 分析一下,可知:

  1. PCIEX16_1
  • 类型:PCI Express
  • 数据总线宽度:16x 或 x16
  • 当前使用状态:可用
  • 长度:长
  • ID: 0
  • 特性:提供3.3V电源,开口共享,支持PME信号
  • 总线地址:0000:ff:01.0
  1. PCIEX16_2
  • 类型:PCI Express
  • 数据总线宽度:16x 或 x16
  • 当前使用状态:可用
  • 长度:短
  • ID: 1
  • 特性:提供3.3V电源,开口共享,支持PME信号
  • 总线地址:0000:ff:1b.4
  1. PCIEX1_1
  • 类型:PCI Express
  • 数据总线宽度:1x 或 x1
  • 当前使用状态:可用
  • 长度:短
  • ID: 2
  • 特性:提供3.3V电源,开口共享,支持PME信号
  • 总线地址:0000:ff:1c.3
  1. PCIEX1_2
  • 类型:PCI Express
  • 数据总线宽度:1x 或 x1
  • 当前使用状态:可用
  • 长度:短
  • ID: 3
  • 特性:提供3.3V电源,开口共享,支持PME信号
  • 总线地址:0000:ff:1c.4
  1. PCIEX1_3
  • 类型:PCI Express
  • 数据总线宽度:1x 或 x1
  • 当前使用状态:可用
  • 长度:短
  • ID: 2 (注意:这里ID重复了)
  • 特性:提供3.3V电源,开口共享,支持PME信号
  • 总线地址:0000:ff:1c.5
  1. PCIEX1_4
  • 类型:PCI Express
  • 数据总线宽度:1x 或 x1
  • 当前使用状态:可用
  • 长度:短
  • ID: 3 (注意:这里ID也重复了)
  • 特性:提供3.3V电源,开口共享,支持PME信号
  • 总线地址:0000:ff:1c.6

关注总线地址部分,设备和功能号部分是 1c.x,0x1c = 28,则按照手册[PCH Controller Device IDs]:

PCH Controller Device IDs 节选

可知对应了这几个直连端口。

M.2

由主板说明可知,这些 M.2 插槽可以兼容 SATA 和 NVME(PCIE) 设备。我们查看一下

lspci -tv

-[0000:00]-+-00.0  Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers
           +-14.0  Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
           +-17.0  Intel Corporation SATA Controller [RAID mode]
           +-1b.0-[01]--
           +-1c.0-[02]--
           +-1c.7-[03]----00.0  Realtek Semiconductor Co., Ltd. RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet Controller
           +-1d.0-[04]----00.0  SK hynix BC511 NVMe SSD
           +-1f.0  Intel Corporation 200 Series PCH LPC Controller (Z270)
           +-1f.2  Intel Corporation 200 Series/Z370 Chipset Family Power Management Controller
           +-1f.3  Intel Corporation 200 Series PCH HD Audio
           \-1f.4  Intel Corporation 200 Series/Z370 Chipset Family SMBus Controller

可知我们的一个盘挂在了 1d.0 上。把

lspci -vvv

的输出丢给 LLM, 可知:

  1. 00:00.0 Host Bridge
  • 这是系统的核心组件,通常直接连接到CPU,负责管理与内存和其他设备的通信。
  1. 00:14.0 USB控制器
  • 一个USB 3.0 xHCI控制器,用于提供高速USB接口。
  1. 00:17.0 RAID控制器
  • 提供RAID功能的SATA控制器。
  1. 00:1b.0 PCI桥
  • Intel 200系列PCH的第17个PCI Express根端口(Root Port),支持x4宽度,速度可达8GT/s。
  1. 00:1c.0 PCI桥
  • Intel 200系列PCH的第一个PCI Express根端口,支持x1宽度,速度可达8GT/s。
  1. 00:1c.7 PCI桥
  • Intel 200系列PCH的第八个PCI Express根端口,支持x1宽度,速度可达8GT/s,并且连接了一个子设备:
  • 03:00.0 Ethernet控制器:Realtek的千兆以太网控制器。
  1. 00:1d.0 PCI桥
  • Intel 200系列PCH的第九个PCI Express根端口,支持x4宽度,速度可达8GT/s,并且连接了一个子设备:
  • 04:00.0 NVMe SSD:SK hynix的BC511 NVMe固态硬盘。
  1. 00:1f.0 到 00:1f.4
  • 这些都是直接连接到PCH的不同类型的控制器,包括LPC控制器、电源管理控制器、HD音频控制器以及SMBus控制器等。

那么很显然,这两个 M.2 就对应上述的两个 x4 宽度的端口,查看数据手册 [PCIe] 节给出的表:

PCIE Link Configuration Supported

再结合插上的是 M2_1 插槽,可知 M2_1 对应了 RP9 (占用 9-12 Lane),M2_2 对应了 RP17 (占用 17-20 Lane)。

HSIO

PCIE 的实现和物理连接上,还需考虑 HSIO (高速IO) 的分配。查看数据手册 [Flexible I/O]节:

HSIO Mux

可知具体分配限制。比较搞的地方在于,RP9 (即 M2_1)和 SATA0 是一起的,但是主板上提供的 4 个 SATA 端口又只能对应 SATA0-3,那么如果在 M2_1 上面插入 SATA 的盘,则主板上的 SATA0 端口在理论上不可用。

你可能会观察到,PCH 上带了 GbE,即以太网支持,但是实际应用中却经常用 RTL 的网卡,这是为什么呢?在数据手册的 GbE 部分,明确说明是和 I219 配合使用的,那使用 RTL 的网卡就可以理解为省钱/额外的保护功能目的了。

总结

通过

lspci

dmidecode

的信息,结合主板配置和 PCH 数据手册,可以大致得到 PCIE 通道分配的信息。

仍然存在一些疑点,如 PCIEx16_2 的 Bus Address 描述为 0000:ff:1b.4, 并不在直连上。手头上也没有那么多卡来测试 qwq...

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号