PCIE的简单整理(1)

 1. PCIE的层次结构

如图所示,PCIE有事务层、数据链路层和物理层组成,各层有都分为发送和接收两功能块。

发送端:在事务层,将Data加上帧头和摘要形成事务层包(TLP),储存在发送缓冲器里,等待推向下层;

              在数据链路层,在 TLP 包上再串接一些附加信息形成数据链路层(DLLP),这些信息是对方接收 TLP 包时进行错误检查要用到的;

              在物理层,对 TLP 包进行编码形成物理层包(PLP),占用链路中的可用通道,从查封发送器发送出去。

接收端:在各层反向解析发送端发来的包。

2. TLP的简介

用 FPGA 实现需要 PCIe 功能,简单的说只需完成 TLP 的处理。

TLP 有三部分组成,帧头、数据、摘要(或者称 ECRC)。 TLP 头标长 3 或者 4 个 DW,格式和内容随事物类型变化;数据端为 TLP 帧头定义下的数据段,如果该 TLP 不携带数据,那该段为空;Digest段( Optional)是基于头标、数据字段计算出来的 CRC,成为 ECRC,一般 Digest 段由 IP 核填充。所以, PCIe 的处理在用户层表现为处理 TLP 中头标和数据段。

3. TLP的详细内容

1.头标(帧头)

       TLP 头标长 3DW(Double Word, 32bit,4byte)或者 4DW,格式和内容随事物类型变化。上图展示了头标的通用字段,其中:

      Fmt 是关于头标长度和该 TLP 是否有数据存在的信息: 00=3DW 头标,无数据; 01=4DW头标,无数据;10=3DW,有数据; 11=4DW 有数据。

      Type 的 5 位编码与 Fmt 字段一起用于规定事物类型、头标长度和是否有数据载荷。如下表所示:

    根据上表的内容,不同的TLP类型有posted和non-posted的要求。如果设备发起端发出一个 non-posted的TLP,在一定时间后,接收端需要回复一个完成包给发起端,如果不回复可能会遇到特别的情况,例如蓝屏。posted的LTP不需要回复完成包给发起端。下表给出了有posted和non-posted的要求的TLP的分类情况:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值