PCIe 系统拓朴结构和基本组件介绍

本文从PCIe常见的系统应用和BaseSpec的角度,简要介绍PCIe拓扑结构和各个组件的功能及基本概念。

PCIe 系统拓扑结构

        

PCIe 拓扑结构

此图是BaseSpec中关于PCIe fabric及拓扑结构的示意图,一个常见的PCIe系统内,一般的会包含一个或多个RootPort及SoC其他组件共同组成的RootComplex。一个或多个PCIe Switch,以及多个PCIe Endpoint(或Legacy Endpoint)组件。

上图以AMD Ryzen CPU为例,Ryzen CPU SoC可以认为是Root Complex,其下挂了若干个Endpoint设备,如Storage,Graphics等。AMD X570可以认为是Switch的部分,因为往往chipset下面还会连接更多的PCIe Endpoint设备,比如更多的PCIe/NVME/SSD/USB等存储设备,以太网控制器,声卡等等。

PCIe系统组件

Root Complex

PCIe BaseSpec中描述的RootComplex不只是描述一个SoC中的IP,而是一系列功能。一般的PCIe接口协议相关的叫Root Port,是pcie系统结构中的一个port。BaseSpec定义的RootComplex是:

  • RC 表示IO Hierarchy的Root,并且和CPU/Memory子系统相连。
  • RC可以包含一个或多个PCIe port (Root Port). 每一个interface分别定义了PCIe域及其层级结构。 每一个PCIe域和层级结构可以包含一个或多个PCIe Switch和Endpoints。
  • RC需要支持产生configuration request。
  • RC可选的支持产生I/O request。
  • 当RC作为Completer时,不允许支持Lock操作。相反的,RC可以支持发送Locked requester as Requester。

上面是一段从BaseSpec翻译过来的,阅读起来非常绕口。稍微总结几句:

1. RC是整个PCIe树形数据结构中唯一的主控者,一个PCIe tree结构下只允许有一个PCIe RC,可以有多个Switch和Endpoint。

2. RC是整个属性结构的发起者和建立者,换言之,因为PCIe是使用Configuration request来枚举和建立PCIe层级结构的,所以只有RC允许发起configuration request。所有其他的PCIe 设备均不允许发送configuration request。

3. RC也是传统PCIe设备中唯一的Host (可以理解为CPU),而传统设备中,只有Host CPU可以发送IO指令,所以BaseSpec描述,RC支持IO Request。因为现代CPU大多使用IOMMU,而非传统IO操作,所以IO request基本已经很少使用了,所以这个IO request对RC来说是Optional。

4. 不支持作为Lock completer, 这个用的比较少,应该是因为RC作为唯一的主控设备,如果他的内存或者某compoment被PCIe hierarchy下面的某个Endpoint给Lock住了,要防止互锁的发生,所以RC是不允许被Lock的。

PCIe Switch

       

上图PEX9797就是AVAGO推出的PCIe Gen3多端口PCIe switch及典型应用场景。
  • 向上连接一个PCIe 的Root Complex (CPU)
  • 下面挂在若干个高速设备(此处是4个GPU)
  • 另外此PCIe switch支持一个端口对接到另一个PEX9797 switch,用于扩展PCIe endpoint设备数量,或者作为transparent bridge (Optional)对接另一个PCIe tree。

下图是一个PCIe Switch的内部结构概念图。一个Switch由一个Upstream Port,负责和上一级Switch或者Root Port对接。和若干个downstream port,以及一个内部的“交换器/桥接器/路由器”,名称可能很多,工程差不多,主要实现TLP或者Message的路由。

PCIe Endpoint

再PC和Server领域,我们大量的能看到PCIe Endpoint(终端)设备,比如个人PC上用的显卡(金手指那个接口就是PCIe),NVMe硬盘,网卡(特别是万兆网卡),插在PCIe插槽上的声卡等。服务器上的GPGPU,AI算力卡等等,基本上全部使用PCIe接口。Endpoint常见支持的Feature有:

  • 支持Memory read/write requestor和completor。
  • 支持发送MSI/MSI-X/INT-x等中断消息。
  • 支持最大实现6个BAR(Base Address Registers)
  • Endpoint只能作为Configuration和IO requester的重点。不能转发和自己发送configuration/IO request.
  • Endpoint可以支持多个function,physical function 和virtual function。


全文完

  • 21
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PCIe系统体系结构标准教材pdf是一本介绍PCIe系统体系结构标准的教材,全称为Peripheral Component Interconnect Express,意为外围组件互连扩展。其为计算机内部总线标准之一,可以用于连接各种外部设备到计算机系统中。 该教材主要内容包括PCIe系统体系结构基本原理、总线拓扑结构、传输协议、数据传输速率等方面的知识。首先,它详细介绍PCIe标准的发展背景和演进过程,以及与其他总线标准之间的比较和优势。其次,教材深入解析了PCIe系统体系结构的各个组成部分,包括根端点、交换机、链路层、传输层等,以及它们之间的工作原理和通信方式。 此外,教材还详细介绍PCIe系统体系结构的拓扑结构,包括点对点拓扑、多点拓扑和层次拓扑等。同时,还解释了PCIe系统中的链路层流控、消息传递、错误处理等重要概念和算法。教材还对PCIe系统中的数据传输速率进行了深入讲解,包括各个版本的速率规范、数据编码方式以及嵌入式时钟等内容。 通过学习该教材,读者可以全面了解PCIe系统体系结构标准,掌握其工作原理和应用。这对于计算机系统设计师、硬件工程师和相关领域的研究人员来说,具有重要的参考价值。通过理解PCIe系统体系结构标准,他们可以在实际应用中更好地设计和优化PCIe总线接口,提高计算机系统的性能和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值