PCIE概述
文章目录
- PCIE概述
- 前言
- 一、应用场景
- 二、PCIE理论
-
- [2.1 硬件](#2.1 硬件)
- [2.2 拓扑结构:处理器和设备之间的关系](#2.2 拓扑结构:处理器和设备之间的关系)
- [2.3 速率](#2.3 速率)
- [2.4 层次接口](#2.4 层次接口)
- [2.5 四种请求类型](#2.5 四种请求类型)
- [2.5.1 bar空间](#2.5.1 bar空间)
- [2.5.2 memory](#2.5.2 memory)
- [2.5.3 IO](#2.5.3 IO)
- [2.5.4 configuration](#2.5.4 configuration)
- [2.5.5 message](#2.5.5 message)
前言
参考链接:
pcie总线知识点解析
一、应用场景
PC和外设之间需要高速数据大量传输,比如AD/DA数据传输,普通的PC是没有GT接口的,那么就需要用FPGA去实现一个数据获取和传输。
PCIE适合背板(CPU和显卡都插到主板上,这个主板相当于背板。网卡显卡都是通过PCIE进行通信的)通信,即短距离通信(cm级别)。为什么不用万兆网传输,因为应用场景不同,长距离适合光纤稳定数据传输。
二、PCIE理论
2.1 硬件
母座:
公口(金手指):
下面是一个X4的PCIE原理图
2.2 拓扑结构:处理器和设备之间的关系
RC:根节点(主机,发起操作)
EP : 从节点(从机,被操作)
注意要清楚,FPGA是作为从机的。在立交交互的时候,需要带入理解
PCIE BRIDGE 用于链接传统的PCI总线
LEGACY ENDPOINT:基本不用了
2.3 速率
GT:是实际发送线速率,如果是2.5GT/s, 实际速率为:2.5*8/10/8 = 250MB/s
多lane传输:就是多个gt口进行传输,其中PCIE会将数据进行分发到多lane,在接受是,再汇聚
效率:
- XDMA的效率为60%
- RIFFA:支持第三方,效率为75-80%
2.4 层次接口
包结构:
数据链路层:
物理层:
2.5 四种请求类型
先举个例子:
2.5.1 bar空间
type0:ep节点使用(一般为FPGA)
tpye1:switch和RC节点使用
type0上面的配置都是在建立IP时设置;
操作方式:
例如:base addr0写一个基地址,这个基地址对应一个内存,如AXI_FIFO,如果RC想操作这个内存,那么RC也会在自己的空间上建立一个同样大小的空间,RC去操作这个自己建立的空间,就等同于操作AXI_FIFO。(原理就是有了这个基地址,RC通过内存映射,就可以操作到这个基地址的空间)。
2.5.2 memory
数据量大,则使用批量的操作,类似axi-full,一次操作多个地址的数据
2.5.3 IO
数据量小,则使用IO操作,类似于axi-lite的操作方式,一次操作一个地址的数据。或者可以理解为用PCIE点亮fpga中的LED灯