总线-pcie

pcie介绍

PCIe(Peripheral Component Interconnect Express)总线是一种高速串行计算机总线标准,由Intel提出并在2001年引入市场,其目的是替代旧有的PCI、PCI-X和AGP总线标准。PCIe总线的设计不仅提升了数据传输速率,还简化了系统架构,支持热插拔,并允许更好的扩展性。

PCIe总线采用点对点的连接方式,每个设备都直接与CPU连接,不再像传统的共享总线架构那样多个设备竞争带宽。这种设计极大地提高了数据传输的带宽和效率。PCIe总线使用细长的插槽,即我们常见的PCIe插槽,它与PCIe设备之间的连接通过一系列的信号来完成。

PCIe总线特点

  1. 点对点连接:每个PCIe设备都有自己的专用通道,与CPU直接相连,从而提供了更高的宽和更低的延迟。
  2. 高带宽:PCIe总线提供了比传统总线更高的带宽,随着版本的迭代,带宽也在不断增加。例如,PCIe 1.0提供5GB/s的带宽,而最新的PCIe 5.0则提供了高达2GB/s的带。
  3. 向下兼容性:PCIe总线设计成可以向下兼容,这意味着较高版本的PCIe插槽可以支持较低版本的PCIe设备。
  4. 热插拔支持:PCIe设备支持热插拔,即可以在系统运行时插拔设备,这对于系统维护和升级非常方便。
  5. 电气和物理规范:PCIe规范定义了电气特性和物理接口规范,以确保不同设备之间的兼容性和稳定性。

pcie用途

  • 显卡:PCIe总线最常见的用途之一就是连接图形处理器单元(GPU),也就是我们常说的显卡。PCIe x16插槽是用于插入显卡的标准接口,它提供了足够的带宽来支持高性能图形处理任务,如游戏、视频编辑和其他图形密集型应用。
  • 存储控制器:PCIe总线还用于连接高速存储设备,如固态硬盘(SSD)。PCIe SSD通过直接连接到PCIe总线,可以实现更高的数据传输速率和更低的访问延迟,从而提升系统性能。
  • 网络适配器:PCIe总线也用于连接网络适配器,如网卡和Wi-Fi适配器。PCIe提供了更高的数据传输速率,可支持更快的网络连接速度。
  • 声卡、电视卡和其他扩展卡:PCIe总线还用于连接其他类型的扩展卡,如声卡、电视卡、捕获卡、加密解密卡等。这些扩展卡可以为计算机系统提供额外的功能或性能。
  • 加速卡:PCIe总线也用于连接各种加速卡,如物理加速卡、视频编码加速卡、深度学习加速卡等。这些加速卡可以提供专门的计算能力,加速特定类型的计算任务。
  • 扩展存储和扩展IO:PCIe总线还用于连接其他扩展存储设备,如RAID卡、SAN卡等,以及其他扩展IO设备,如USB卡、串口卡等,以扩展计算机系统的存储容量和IO接口。

pcie的link width

Link Width指的是PCIe链路的宽度,它是指PCIe总线上的数据通道数量。Link Width通常用于描述PCIe设备支持的最大数据传输宽度,也就是PCIe链路可以同时传输数据的通道数。这个宽度决定了PCIe链路的数据传输速率和带宽。

在PCIe总线中,每个通道可以传输一个数据位(bit),因此,Link Width的值通常是2的幂。例如,一个8通道的PCIe链路就有16位宽度(8x2=16)。Link Width的选项通常有1、2、4、8和16位,对应于x1、x2、x4、x8和x16的PCIe接口。

  • x1 Link Width:表示PCIe链路有1个数据通道,提供最高5GT/s(PCIe 1.0)的传输速率。
  • x2 Link Width:表示PCIe链路有2个数据通道,提供最高10GT/s(PCIe 1.0)的传输速率。
  • x4 Link Width:表示PCIe链路有4个数据通道,提供最高20GT/s(PCIe 1.0)的传输速率。
  • x8 Link Width:表示PCIe链路有8个数据通道,提供40GT/s(PCIe 1.0)的传输速率。
  • x16 Link Width:表示PCIe链路有16个数据通道,提供最高80GT/s(PCIe 1.0)的传输速率。

随着PCIe技术的发展,每个版本的PCIe规范都会提供更高的传输速率和更大的Link Width选项。例如,PCIe 4.0可以支持x1、x2、x4、x8、x16和x32的Link Width,而PCIe 5.0和PCIe 6.0进一步增加了支持的Link Width。

Link Width的选择取决于系统的需求和设备的支持。在选择PCIe插槽和设备时,应确保它们之间的Link Width兼容,以充分利用PCIe总线的带宽优势。

pcie的工作模式

  1. 接收和发送数据模式:在这种模式下,PCIe设备可以同时接收和发送数据。这种模式支持双向通信,允许设备之间进行双向数据传输。
  2. 发送数据模式:在此模式下,PCIe设备只能发送数据,不能接收数据。这种模式通常用于设备向另一个设备发送数据的情况。
  3. 接收数据模式:在这种模式下,PCIe设备只能接收数据,不能发送数据。这种模式通常用于设备接收来自另一个设备的数据。
  4. 空闲模式:当PCIe设备没有数据要收发时,会进入空闲模式。在这种模式下,设备消耗的功耗较低,以节省能源。
  5. 预取模式:在此模式下,PCIe设备可以预先获取数据,以提高数据传输的效率。预取操作可以减少延迟,并将数据缓存到设备本地,以待后续处理。
  6. 休眠模式:PCIe设备可以进入低功耗的休眠模式,以减少能源消耗。设备在休眠模式下仍可被唤醒以处理特定的事件或命令。
  7. 自动协商模式:PCIe设备之间会根据彼此的支持情况自动协商最佳的工作模式和数据传输速率。这确保设备之间能够以最高的性能进行通信。

带宽计算

带宽(GBps)= 速度等级(GT/s) x Link Width(每通道的位宽) / 8

其中:
- 速度等级(GT/s):指PCIe总线的数据传输速率,通常以千兆每秒(Gigatransfers per second,GT/s)为单位。不同的PCIe版本有不同的速度等级,比如PCIe 3.0的速度等级是8GT/s,PCIe 4.0的速度等级是16GT/s,PCIe 5.0的速度等级是32GT/s。
- Link Width(每通道的位宽):指PCIe总线上同时传输数据的通道数。通常以x1、x2、x4、x8、x16等单位表示,表示同时传输1、2、4、8、16个数据通道。

举例说明:
- 对于PCIe 3.0 x16总线,速度等级为8GT/s,Link Width为16,带宽 = 8 x 16 / 8 = 16 GBps。
- 对于PCIe 4.0 x8总线,速度等级为16GT/s,Link Width为8,带宽 = 16 x 8 / 8 = 16 GBps。
- 对于PCIe 5.0 x4总线,速度等级为32GT/s,Link Width为4,带宽 = 32 x 4 / 8 = 16 GBps。

拓扑结构

PCIe(Peripheral Component Interconnect Express)的总线拓扑结构可以根据应用场景和需求进行不同的设计。常见的PCIe拓扑结构包括以下几种:

星型拓扑

在这种拓扑结构中,每个PCIe设备都直接连接到中央PCIe桥接器上,形成一个星型网络。这种拓扑结构适用于需要高速数据传输的应用场景,如高性能图形卡和存储设备的连接。

树型拓扑

在这种拓扑结构中,PCIe设备通过一个中心交换机或集线器连接起来,形成一个树状结构。这种拓扑结构适用于需要集中控制和管理的情况,如服务器中的PCIe设备连接。

网状拓扑

在这种拓扑结构中,PCIe设备之间通过多个交换机或路由器连接,形成了一个复杂的网络结构。这种拓扑结构适用于需要高可靠性和低故障率的应用场景,如高带宽数据传输和分布式计算系统的连接。

需要注意的是,PCIe总线是一种高速串行总线接口,支持即插即用和热插拔等特性,可以根据实际需求和设备类型选择合适的拓扑结构,以实现更高效的数据传输和系统性能。

架构组成

根复合体到设备(Root Complex to Device)

在这种拓扑中,PCIe设备通过一个或多个PCIe交换机连接到根复合体。这种结构允许设备连接到系统中,并且可以通过交换机实现设备之间的数据路由。

单根直接连接(Endpoint)

这是最基本的PCIe拓扑结构,其中PCIe设备(如显卡)直接连接到PCIe根复合体(如CPU或主板上的南桥芯片)。这种结构简单,适用于单个设备直接与CPU通信的情况。

交换机(Switch)

当系统中有多于一个PCIe设备时,通常会使用PCIe交换机来连接这些设备。交换机可以将一个设备的输出连接到另一个设备的输入,从而实现设备之间的数据交换。

多级交换(Multi-tier Switching)

复杂的系统中,可能会使用多级交换机来实现设备之间的连接。这种结构可以支持更多的设备,并提供更好的数据路由和管理。

桥接(ridging)

PCIe桥接允许将PCIe总线连接到其他类型的总线,如PCI或PCI-X。这种结构允许PCIe设备与使用传统总线的设备进行通信。

pcie的tlp

TLP 是指 "Transaction Layer Packet",即事务层数据包。TLP 是 PCIe 总线上基本的数据传输单元,用于在 PCIe 设备之间传输数据和控制信息。

TLP组成

  1. 数据传输单元:TLP 是 PCIe 中数据传输的基本单元,用于在 PCIe 设备之间传输数据。TLP 可以携带请求数据或传输数据,以支持在 PCIe 总线上的有效通信。
  2. 包头(Header):TLP 的包头包含有关 TLP 类型、地址信息、传输序列号、数据包长度和其他控制信息。包头提供了关于 TLP 的元数据,以便接收端能够正确解析和处理数据。
  3. 有效载荷(Payload):TLP 的有效载荷部分包含实际的数据信息。有效载荷可以是请求数据,如读写请求,也可以是传输的数据本身。有效载荷的长度取决于具体的数据传输需求。
  4. 端到端校验(ECRC):在 PCIe 通信中,TLP 可以包含端到端校验值,用于检测传输数据的完整性。发送端计算数据的校验值,将其添加到 TLP 中;接收端对接收到的数据进行校验,以确保数据的准确传输。
  5. 传输序列号:TLP 中的传输序列号用于确保每个 TLP 在 PCIe 总线上按照正确顺序传输,以避免丢失或重复的数据传输。
  6. 类型字段:TLP 中的类型字段指示了 TLP 的类型,例如读请求、写请求、数据传输等,以便接收端能够正确地解析和处理数据。

 

  • 28
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值