打印
[其他]

PCIe基础概念

[复制链接]
860|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
OKAKAKO|  楼主 | 2024-3-28 09:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
PCIe的全称是Peripheral Component Interconnect Express,是一种用于连接外设的总线。
它于2003年提出来,作为替代PCI和PCI-X的方案,现在已经成了现代CPU和其他几乎所有外设交互的标准或者基石,比如,我们马上能想到的GPU,网卡,USB控制器,声卡,网卡等等,这些都是通过PCIe总线进行连接的,然后现在非常常见的基于m.2接口的SSD,也是使用NVMe协议,通过PCIe总线进行连接的,除此以外,Thunderbolt 3 [2],USB4 [3],甚至最新的CXL互联协议 [4],都是基于PCIe的!
CXL(Compute Express Link)是一种业界支持的高速缓存一致性互连协议,用于处理器、内存扩展和加速器之间的通信。CXL技术在CPU内存空间和附加设备上的内存之间保持一致性,这允许资源共享以获得更高的性能,减少软件堆栈的复杂性,并降低整体系统成本。
所以一旦开始往设备相关的开发上面走了之后,PCIe可以算是一个绕不过的坎。这几天看了一些和PCIe相关的资料,这里简单的总结一下,也希望对大家有所帮助。

使用特权

评论回复
沙发
OKAKAKO|  楼主 | 2024-3-28 09:56 | 只看该作者
1. PCIe总体框图
首先,我们先从PCIe的基本概念开始。PCIe的架构主要由五个部分组成:

Root Complex,
PCIe Bus,
Endpoint,
Port and Bridge,
Switch。
其整体架构呈现一个树状结构,如下图所示:


使用特权

评论回复
板凳
OKAKAKO|  楼主 | 2024-3-28 09:59 | 只看该作者
2. Root Complex(RC)
Root Complex是整个PCIe设备树的根节点,CPU通过它与PCIe的总线相连,并最终连接到所有的PCIe设备上。

主板上最重要、成本最高的两颗芯片,被称为北桥和南桥,其中北桥负责与处理器对接,主要功能包括:内存控制器、PCI-E控制器、集成显卡、前/后端总线等,都是速度较快的模块;而南桥则负责外围周边功能,速度较慢,主要包括:磁盘控制器、网络端口、扩展卡槽、音频模块、I/O接口等等。



Intel与AMD的新一代处理器,已经将传统北桥的大部分功能都整合在了CPU内部,Intel的Clarkdale与Sandybridge处理器则是完全整合北桥芯片,与其搭配的P55/H55/P67/H67等芯片组其实就是一颗南桥。


Clarkdale的北桥(GPU)和CPU部分示意图
CPU部分和GPU部分是各自独立的,微观上通过QPI总线相连,宏观上被封装在了一起,接口是与Lynnfield相同的LGA1156。整体上来看Clarkdale不仅整合了内存控制器和PCI-E控制器,还整合了显示核心,看似更加先进。


实际上,Clarkdale只是将原本放在主板上的北桥芯片,挪到了CPU的铁盖下面,本质上并没有整合任何东西(包括显卡和内存控制器)。但是与之搭配的H55芯片组,确实只剩下了一颗南桥。北桥的发热量远高于南桥,由于北桥位于处理器上面,因此用户再也不用担心主板的散热问题了。

目前市面上热卖的Core i7 8XX和Core i5 7XX处理器,就是基于Lynnfield核心的产品,这是真正意义上整合了北桥的处理器。



使用特权

评论回复
地板
OKAKAKO|  楼主 | 2024-3-28 10:03 | 只看该作者
用图片小结

FSB总线:即前端总线(Front Side Bus),CPU和北桥之间的桥梁,CPU和北桥传递的所有数据必须经过FSB总线,可以这么说FSB总线的频率直接影响到CPU访问内存的速度。
北桥:北桥是CPU和内存、显卡等部件进行数据交换的唯一桥梁,也就是说CPU想和其他任何部分通信必须经过北桥。北桥芯片中通常集成的还有内存控制器等,用来控制与内存的通信。现在的主板上已经看不到北桥了,它的功能已经被集成到CPU当中了。
PCI总线:PCI总线是一种高性能局部总线,其不受CPU限制,构成了CPU和外设之间的高速通道。比如现在的显卡一般都是用的PCI插槽,PCI总线传输速度快,能够很好地让显卡和CPU进行数据交换。
南桥:主要负责I/O设备之间的通信,CPU要想访问外设必须经过南桥芯片。

使用特权

评论回复
5
OKAKAKO|  楼主 | 2024-3-28 10:05 | 只看该作者
3. PCIe总线(Bus)
PCIe上的设备通过PCIe总线互相连接。虽然PCIe是从PCI发展而来的,并且甚至有很多地方是兼容的,但是它与老式的PCI和PCI-X有两点特别重要的不同:

PCIe的总线并不是我们传统意义上共享线路的总线(Bus),而是一个点对点的网络,我们如果把PCI比喻成网络中的集线器(Hub),那么PCIe对应的就是交换机了。换句话说,当Root Complex或者PCIe上的设备之间需要通信的时候,它们会与对方直接连接或者通过交换电路进行点对点的信号传输。[7]

老式的PCI使用的是单端并行信号进行连接,但是由于干扰过大导致频率无法提升,所以后来就演变成PCIe之后就开始使用了高速串行信号。这也导致了PCI设备和PCIe设备无法兼容,只能通过PCI-PCIe桥接器来进行连接。当然这些我们都不需要再去关心了,因为现在已经很少看见PCI的设备了。

使用特权

评论回复
6
Jacquetry| | 2024-3-28 10:23 | 只看该作者
老主机有个pci接口,不知道能插上什么设备

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

153

主题

1075

帖子

3

粉丝