PCIe总线
+ -

从PCI角度认识PCIE

2021-09-23 45 0

从软件角度或者说是从逻辑角度看,PCI跟PCIe有着天然的继承性。让我们首先来看看PCI的逻辑关系。
224113213375

PCI系统中,总线的扩展是依靠桥(Bridge)来扩展的。注意:这里是透明桥(Transparent Bridge),所谓透明是指这个桥对于经过它的报文或者数据,不做任何的处理和表更,直接往下游或者上游传递。既然有透明桥,那么一定就有相对应的非透明桥了么? 是的,没错,确实如此,不过这里我们先卖个关子,后续慢慢再表。PCI的系统中总线的命名关系图中写的比较清楚了,对于每一个桥,都有Primary bus和Secondary bus以及Subordinate bus。

内核代码中pci_bus结构体有对应的定义,各位可以翻阅代码查看。

到了PCIe系统中,情况变成什么样了呢?让我们看一看,如下:
22412611080

这里有个非常重要的部件取代了PCI系统中桥的功能,并且更为强大,它就是PCIe Switch。可以说,PCIe Switch是PCIe系统中的重中之重,掌握了PCIe Switch,基本也就掌握了PCIe系统。为了便于大家理解PCIe Switch,我们把它分解一下,就很容易看明白了:
224210517327

从逻辑上看,Swith可以看作是多个PCI-PCI桥的组合。内部有虚拟PCI总线。当然实际PCIe Switch 内部构造远比这复杂,这里仅仅是从逻辑关系上说明switch和PCI的关系。

注意:图中的P2P指的是PCI-PCI bridge,而不是Peer-to-Peer。

思考:

Switch的各个端口叫什么?

PCIe Switch内部的virtual bus有类似PCI总线的冲突和仲裁么?

Gen1 单lane的PCIe的带宽为什么不是2500M / 8=312.5MB呢?

还记得我们最早提过的8b/10b编码么?PCIe链路上,每一字节是以10位传输的,所以带宽是要除以10,而不是除以8。

PCIe Switch相当于PCI总线中的什么?

相当于多个PCI-PCI桥的组合。

0 篇笔记 写笔记

PCIEPCI区别
PCIe是基于PCI的基础上演进而来的,所以,PCIe在很多地方都有PCI的影子。从软件角度看,基于PCI的驱动和软件几乎可以无缝移植到PCIe系统上来而不需要做任何改变。Linux内核中pci的定义同样适用于PCIe(include /linux/pci.h)而从硬件角度看,差异就非常大了。......
PCI角度认识PCIE
从软件角度或者说是从逻辑角度看,PCIPCIe有着天然的继承性。让我们首先来看看PCI的逻辑关系。PCI系统中,总线的扩展是依靠桥(Bridge)来扩展的。注意:这里是透明桥(Transparent Bridge),所谓透明是指这个桥对于经过它的报文或者数据,不做任何的处理和表更,直接往下游或者......
PCIE 设备层DEVICE LAYERS
类似于网络OSI七层模型,PCIe协议架构上可以分为三个逻辑层次:事务层(Transaction Layer,)、数据链路层(Data Link Layer)和物理层(Physical Layer)。每一层都分为两个部分: 发送和接收,或者称之为outbound和inbound。Device Cor......
PCIE MSI-X (二)
1 、 **MSI-XCAP 结 构**MSI-X和MSI最大的不同是messagedata、message address和status字段没有存放在设备的配置空间中,而是使用MSI-XTable structure和MSI-X PBA structure来存放这些字段。MSI-X Tabl......
PCIE 数据链路层
PCIE数据链路层位于事务层和物理层之间,是整个PCIe链路的数据传输的可靠性非常重要的一层,主要功能如下:生产数据链路层的报文,即DLLP(Data Link Layer Packet)。为每一个TLP报文添加序列号,即Sequence Number。发送DLLP报文前,添加CRC校验,即LC......
PCIE 物理层
物理层(Physical Layer)是PCIe三层模型中的最下面一层。向上即是数据链路层,向下则为物理链路。物理层是整个PCIe的底座,底座不稳,上层自然动摇。实际经验中,大量的相关问题,如协商问题、降速、降lane、误码等,都发生在这一层。而且,很多物理层的error会影响数据链路层和事务层,甚......
PCIE的资源-IO资源、内存资源和中断资源
PCIe系统中,对于每一个PCIe设备,都具有三种类型的资源。具有了资源,PCIe设备才具有了被访问、被使用的基本能力。这三种资源分别是:IO资源仅适用于X86架构中内存资源即设备具备哪些可以提供给外部或内部使用的内存。中断资源中断资资可以为INT中断,MSI中断和MSI-X中断。如我们在......
PCIe和M.2接口区别
PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准。属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽。PCIe有两种存在形式M.2接口通道形式和PCIe标准插槽。PCIe可拓展......
PCIE总线各版本速率及计算方法
PCIe的带宽概念和计算通过下面这个公式计算:并行总线带宽(MB/s) = 并行总线时钟频率(MHz) * 并行总线位宽(bit/8 = B) * 每时钟传输几组数据(cycle)要理解上述的公式,首先需要理清一些概念:对于PCIe 而言总线频率如 1.25GHz、2.5GHz,一般是在 ......
PCIe总线的基础知识
PCI总线不同,PCIe总线使用端到端的连接方式,在一条PCIe链路的两端只能各连接一个设备,这两个设备互为是数据发送端和数据接收端。PCIe总线除了总线链路外,还具有多个层次,发送端发送数据时将通过这些层次,而接收端接收数据时也使用这些层次。PCIe总线使用的层次结构与网络协议栈较为类似。1.......
作者信息
硬核技术
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!