当前位置: 首页 > 知识库问答 >
问题:

硬件 - 主板的PCI-e插槽和CPU的PCI-e通道有什么对应关系?

林星华
2024-08-08

我的电脑主板是 MPG Z490M GAMING EDGE WIFI ,设计的PCIE插槽是两个pci-e x1插槽和两个pci-e x16插槽; 主板上的CPU是i7-10700k,最大支持的pcie通道数是16条,支持1x16, 2x8, 1x8+2x4拆分。
我想问一下:

  1. CPU这16条通道和主板上的pcie插槽是如何协同工作的呢,有什么对应关系?
  2. 我从BIOS中选择1x16,和2x8两个选项之后情况有什么不同

共有1个答案

颛孙庆
2024-08-08

PCIe 通道是 CPU 与外设通讯用的,一般关心协议版本和信号频率(可以大致理解为带宽倍率),使用时的实际值由 CPU、主板、外设协商确认。

主板 PCIe 插槽是物理尺寸长度,外接设备 PCIe 插排分为物理长度和触点长度两部分。比如显卡一般会占满 x16 长,金手指触点也 x16 都有。当主板 BIOS 设置了 1x16,那么插上 NVIDIA 4070 能协商出 PCIe 2.0 x4 到 PCIe 4.0 x16,因为它支持闲时低功耗。主板设置了 2x8,那么最高只能协商到 x8 了。

若想利用 PCIe 拆分,可以购买用于 PCIe 拆分的转接卡,比如某宝可搜到 x8 显卡接口 + 2 x4 NVMe SSD 接口的转接卡,这卡长 x16,金手指触点也 x16,其中 x8 归插在其上的显卡,x4 x4 各归插在其上的 SSD。

PCIe 插槽可以不用满,比如无线网卡、蓝牙一般占 x4 长,3.0 x4。我见过一种有线网卡,尺寸是 x8 但是金手指触点只有 x1 部分有。

本质上,焊在主板上的 NVMe SSD 插座,也是走的 PCIe 通道,只是其物理接口形式不是通用 PCIe 插槽。一般他们是 PCIe 4.0 x4,因为现在 NVMe SSD 大致也就能跑到这个带宽了(7000+ MB/s)。

有时,因为接触不良,本能到 x4、x8、x16 的,却只协商到 x1 等,可以简单擦擦金手指试试。我遇到过很多次。

主板的规格文档会说明,它哪些接口是占用了 CPU 的哪些 PCIe 通道,是直连 CPU 还是走主板芯片中转。比如很多时候 USB2.0 接口不能吃满带宽,直连 CPU 就会独占 PCIe 通道,很浪费。

 类似资料:
  • 问题内容: 我正在处理一些旧代码,发现曾经使用过 但是我现在尝试 似乎在做同样的事情,还是这样做?我有点记得我这样做是有原因的,但是我不记得了,做“ man sed”并没有帮助,因为他们对-E仅一无所知- e对以太并没有多大意义。 我以为-e表示它将与正则表达式匹配… 问题答案: 从源代码开始,是与BSD sed兼容的未记录的选项。 从手册开始,在BSD中sed用于支持扩展的正则表达式。

  • 问题内容: Linux内核2.6 我有一个通过GPIO加载的fpga,该GPIO连接到运行Linux的开发板。fpga将通过pci- express总线发送和接收数据。但是,这是在启动时枚举的,因此,未发现任何链接(因为在启动时未加载fpga)。 如何在Linux中强制重新枚举pci-e总线?是否有一个简单的命令,或者我必须进行内核更改?我需要热插拔PCIe设备的功能。 问题答案: 我想知道您使用

  • PCI Utilities 包含各种工具用来处理 PCI 总线,同时提供了一个可移植库用来访问 PCI 配置注册表,包括 lspci 用来列出所有 PCI 设备(用来调试内核和设备驱动程序)和 setpci 用来手工配置 PCI 设备。

  • 问题内容: 我遇到了像这样的Java代码: 以上三种之间的区别是什么?它们在Java中如何称呼这种类型的类或接口声明? 问题答案: 好吧,前两个没有什么区别-它们只是为 type参数 (或)使用了不同的名称。 第三个不是有效的声明- 用作提供类型实 参 时使用的 通配符 ,例如,意味着引用某种类型的列表,但我们不知道是什么。 __ 所有这些都是 泛型 ,这是一个很大的话题。您可能希望通过以下资源了

  • PCI与PCIE [PCI] pci=选项[,选项...] 指定各种PCI子系统选项: earlydump 在内核做出任何改变之前,首先转储出PCI配置空间。主要用于调试目的。 off 不检测PCI总线,也就是关闭所有PCI设备。 conf1 强制使用"PCI配置机制1"(目前的事实标准) conf2 强制使用"PCI配置机制2"(已被抛弃的老古董) noaer [PCIE]禁止使用CONFIG_

  • PCI Utilities 工具包包含一些用来处理PCI总线的工具以及一个C语言的库用来访问PCI配置注册表。带有一个lspci命令用来列出所有的PCI设备以及setpci用来配置PCI设备。

  • 问题内容: 是否要保持与旧版本(未生成)的向后兼容性?还是我缺少一个更微妙的细节?我在()中也看到了这种模式,但是归纳为。 问题答案: 之所以使用,是因为它匹配的对象不必与您传递给的对象具有相同的类型;它只要求它们相等。根据规范,如果存在这样的对象,则返回true。请注意,没有什么要求,并且必须是相同的类型。这是因为该方法接受一个as参数,而不仅仅是与该对象相同的类型。 尽管通常已经定义了许多类,

  • 它被转回为“result”变量的值-46,我预期为0.0,认为“float f=I”将转换为1234567890.0,而不是1.23456794 e9。为了理解它,我已经注意到,因为浮点类型最多只允许在基点前7位,如果在基点前输入一个超过7位的浮点,编译器将在该字符串的第二个索引位置输出一个由基点组成的字符串,在倒数第二个索引位置返回一个“e”或“e”。是什么?“e”是什么意思?