• 2. PCIE TLP解包封包


    第二十一讲、PCIE的TLP包的封包解包原理.pdf
    00 Packet Coding.docx

    掌握如何发送接收 Mrd(memory read TLP)、Mwr(Memory write TLP)、Cpl(Completion TLP)和Cpld(Completion with data TLP) 命令包

    1、 TLP 包是由 PCIE 的 Endpoint 或者 Root Complex 组建发送。
    2、 TLP 包只包含两种包头长度 3DW 和 4DW(double word is 32bit),数据内可以选择包含和不包含 ECRC 1DW(循环校验字 32bit)
    截图_20230919094031.png

    绿色:传输层协议
    浅蓝色:数据链路层协议
    蓝色:物理层协议
    紧挨着链路层的绿色部分由红色圈圈出的是用户的 TLP 包, 也就是接下来我们要重点讲解的部分。(此部分如果选择使用框架那么由框架创建例如 Riffa 和 XDMA,如果完全自定义那么就是需要自己的写这些 TLP

    传输层细节讲解

    截图_20230919094723.png

    Memory write TLP 包结构

    截图_20230919101551.png

    名称字段作用
    FmtDW0[31:29]决定了包头是3DW长度还是4DW长度的
    TypeDW0[28:24]决定了包的类型,类型有Mrd(读地址内数据)、Mwr(向地址写数据)、Cfg(配置PCIe)、Msg(消息)、Cpl(读地址数据请求后返回的数据包)
    Traffic ClassDW0[22:20]包交换优先级,数字越大优先级越高
    AttrDW0[18]、DW0[13:12]包的属性。Attr[13]是解析包是顺序还是乱序,一般设置为顺序。Attr[12]是Cache一致性,数据量小的时候可以打开以提高数据传输效率,数据量大则关闭
    THDW0[16]PCIe2.1提出,xilinx7不支持此设置
    TD(TLP Digest)DW0[15]为1是必须添加ECRC,为0时不添加
    EP(Error package)DW0[14]错误包标志。为1时代表此包为错误包,将被忽略
    AT(Addr Type)DW0[11:10]地址类型。一共有三种类型:内存地址(00)、虚拟地址(10)、转换完成的内存地址(11)。当表示虚拟地址是需将地址转换成内存地址
    LengthDW0[9:0]用来表示数据包的长度,用于Mwr、Cpl、Msg包。注意单位是DW,也就是32字节的,注意单位转换。一个数据包的数据长度最多为4096byte
    Requester IDDW1[31:16]这个ID是PCIe的endpoint设备在root comlex初始化时对设备分配的,分为bus number[]、Device Number[]、Func[]
    TagDW1[15:8]扩展标识,由请求方产生,与Requeseter ID构成唯一标识,用来识别应答信息
    First/Last byte Enables第一字节和最后一个字节有效标志DW1[7:0]
    AddressDW2或者DW2 + DW3地址位。Fmt决定了这个位数是32位还是64位

    Completion/completion with Data TLPs 完成相应包

    截图_20230919103403.png

    信号名称信号作用
    Completer ID由谁反馈的数据
    Requester ID由谁请求的数据
    Completion status000 是成功相应, 001 是不支持此请求, 010 配置请求请重试, 100 请求被忽略
    Byte Count剩余未反馈数据的字节数量
    routing Tag从请求包中复制此字段
    Lower Address第一个有效字节地址的低 7bit 位 特别注意: Lower address和 Length 不能跨越 Root Complex 的 RCB(Read Completion Boundary)读完成包的边界但可以是 RCB 的整数倍, RCB 是在 Root Complex 设置的,我们的 IPcore可以通过 link control 控制器知道此值, RCB 一般是 64 字节也可设置为 128 字节, 默认没设置情况是 64 字节。
    MPS(Max Payload Size)每一个 EP 和 RC 都可以设置此值,那么系统的 MPS 会取所有 MPS 的最小值, 比如 X86 系统中有多个

    截图_20230919103509.png
    系统中最小的 MPS 是 128byte 那么系统的 MPS 是 128, 此值会通过 IP 核接口呈现出来。

  • 相关阅读:
    IT运维管理平台助力企业打造监、管、控一体化
    PyTorch - Diffusion Model 公式推导 (1)
    Spring注解-1.组件注册
    【车辆动力】基于Matlab模拟停车动力学
    每月AI科研动向(2024年2月)
    基于开放基准下的点击率预估模型研究 · 详解
    lazada按关键字搜索商品 API 返回值说明
    红细胞膜定向包裹血红蛋白-白蛋白纳米粒/载盐酸阿霉素聚乳酸共聚物PLGA的研究
    LCP 28.采购方案
    S3 对象重命名
  • 原文地址:https://blog.csdn.net/weixin_43684667/article/details/133148709