通信与接口协议面试十、PCIe

1.PCI

是一种高速串行计算机扩展总线标准。PCI 是总线的连接方式,PCle是点对点的连接方式。PCle总线使用了高速差分总线,采用端到端的连接方式,因此在每一条PCle链路中只能连接两个设备。因此PCle与PCl总线采用的拓扑结构有所不同。PCI是并行数据传输,PCle是串行数据传输。

2.PCIE概述

PCle总线是连接外部设备的线路。

PCle通道是 PCle 总线的组成部分,PCle总线包含一条或多条PCle通道。一条PCle通道就是X1。PCle卡是一种具有PCle接口的卡,在主板级连接中用作扩展端口。

3.特性

①点对点。PCle使用高速差分总线端到端的方式进行连接,差分信号可以匹配更高的时钟频率,且信号传输时的抗干扰。

②双向(双单工)。"单工"是指物理连接上的单向通信,而"双"是指两个。

③PCle总线最多具有32个通道,当不需要使用全部的数据吞吐量,可以使用部分通道。

④向后兼容之前的PCle版本。

⑤7种规格X1X2X4X8X12X16X32。

4.PCle拓扑结构

Root Complex:根桥设备,是PCle最重要的一个组成部件;是CPU与总线的直接接口。RootComplex主要负责PCle报文的解析和生成。RC接受来自CPU的IO指令,生成对应的PCle报文,或者接受来自设备的PCleTLP报文,解析数据传输给CPU或者内存。

Switch: PCle 的转接器设备,目的是扩展PCle线。挂载更多的PCle设备,那就需要用到 switch 转接器。扮演了数据包路由的功能。

PCle endponit:PCle终端设备,是 PCle 树形结构的叶子节点。比如网卡,NVME卡,显卡都是 PCleep设备。

Bridge 提供了一个转换接口用来连接其他的总线,如PCl/PCI-X。这样可以允许在 PCle的系统中接入一张旧的PCI设备。

内存很重要,CPU一般直接直连。

5.PCle速度

GT/s: Giga transation per second

通信协议的速率属性,描述的是链路上传输的原始数据(单Lane的峰值带宽)。

Gbps: Giga Bits Per Secondd(千兆位/秒)。描述的是链路上传输的有效数据。GT/s与Gbps之间不存在成比例的换算关系。

PCle总线带宽是按长度计算的,最短的是X1。

6.编码方式

吞吐量=传输速率*编码方案。

PCle 3.0协议支持 8.0GT/s,即每一条 Lane上支持每秒钟内传输 8G 个 Bit。而PCle 3.0的物理层协议中使用的是128b/130b的编码方案。即每传输128个Bit,需要发送130个Bit。

PCle 3.0协议的每一条Lane支持8*128/130=7.877Gbps=984.6MB/s的速率。

7.接口类型

①金手指GoldFinger(Add-in)。金手指最主要的作用是连接。

②PCle socket插槽。

8.管脚

电源:+12V5个;+.3.3V3个;3.3VAUX1个。

根据功耗的不同,三种电压的供电能力不同,PCle卡可以分为以下几种:10W,25W,75W,直接通过金手指提供;

+12V主要给PCle设备(如显卡)提供更大的供电能力。

Vcc 3.3V为主电源,PCle设备使用的主要逻辑模块均使用VCC供电。

电源管理相关的逻辑和寄存器使用Vaux供电。

PRSNT1#和PRSNT2#信号

PCle设备的热插拔。Add-in 卡中,PRSNT1#和 PRSNT2#信号直接相连。处理器主板,PRSNT1#信号接地,而PRSNT2#信号通过上拉电阻接为高。

原理:当Add-In卡插入时主板的PRSNT2#信号将与PRSNT1#信号通过Add-In卡连通,此时PRSNT2#信号为低。处理器主板的热插拔控制逻辑将捕获这个"低电平",得知Add-In卡已经插入。PRSNT1#和PRSNT2#信号使用的金手指长度是其他信号的一半。

PERST#信号全局复位信号,由处理器系统提供。TRST#测试复位/TRST。

REFCLK+和REFCLK-信号100Mhz的时钟,给PCle提供时钟。0.3-0.45V左右,PCle的差分时钟的电压。

WAKE#当 PCle设备进入休眠状态,该信号向处理器系统提交唤醒请求,使处理器系统重新为该PCle设备提供主电源。WAKE#信号是可选的。使用辅助电源Vaux供电。

SMCLK 和SMDAT信号与x86处理器的SMBus相关。PCle设备与处理器系统进行交互。可选。JTAG 信号由TCK、TDI、TDO和TMS信号组成。可选。

CLKREQ#信号是一个open-drain 管脚,用于关闭参考时钟。请求运行时钟。

9.电路布局

1.注意:金手指的槽和金手指这两个原理图是不一样的!

金手指(B对应的是RX)(A对应的是TX)PRSNT1、PRSNT2、PRSNT3等等,需要加---个0欧姆的电阻串在一起。

插槽(B对应的是TX)(A对应的是RX)插槽的PRSNT1接地,PRSNT2、PRSNT3及其他接fpga

2.PCle总线采用交流耦合的方式进行传输,耦合电容一般靠近 TX发送端放置。PCle1.0/ PCle2.0 100nF。

3.PCle接口的收发信号直接跟FPGA BANK115,BANK116的GTX收发器相连接。

相关推荐
码匠许师傅3 小时前
【C++ 面试真题】聊聊 C++ 的多继承与虚继承
开发语言·c++·面试
kyriewen3 小时前
面试官说"打开你的AI工具"——我才发现,他考的根本不是写代码
前端·人工智能·面试
日拱一卒的小田5 小时前
ZYNQ学习笔记3-ZYNQ的IIC控制器1
笔记·单片机·学习
cardinal_5086 小时前
STM32MP157F-DK2开发板构建交叉编译链
stm32·单片机·嵌入式硬件
小羊先生car6 小时前
F429-HAL-RS485(回环/双机实验)(2026/8/16)
c语言·单片机·嵌入式硬件·软件构建
木白CPP6 小时前
Linux 驱动UART子系统源码分析
linux·运维·服务器·驱动开发·嵌入式硬件·开源软件
众人皆醒我独醉7 小时前
AI 工作负载可观测性:DCGM + Prometheus + Grafana
面试·llm·gpu
西门老铁7 小时前
JWT 是什么?三段式结构、签名原理与 6 个安全坑一次讲透
后端·面试
zlinear数据采集卡8 小时前
数据采集卡从入门到精通(10):采样率与分辨率的核心关系——反比律、架构分布与过采样
arm开发·嵌入式硬件·算法·fpga开发·架构·开源
gyx_这个杀手不太冷静8 小时前
高级前端开发职业规划(2026—2035)
前端·面试·agent