2.4 说一说PCIE事务层的请求数据包



内容简介

2024-01-21

    第二章节我们主要介绍的是PCIE的事务层,也就是协议的顶层,通过这一章节我们就可以知道各种TLP包的组成形式,各个字段的含义及用法。在2.2、2.1介绍了不同事务的通用帧头,本节开始介绍不同事务的独属的帧内容。

01

概述

    这里就与PCIE3.0协议的文章结构有所出入了,协议里面介绍完通用帧头就巴拉一堆规则,对于咱们初学者来说很不友好。按我的来,更好理解。

    PCIE协议里面给咱们分好的事务类型,一共8个,如下表所示。这8个事务类型对应5种帧格式,这5种帧格式有两种比较一致,所以又可以分为四大类,分别是请求包、完成包、配置包和消息包。这部分对应pcie3.0的2.2.7到2.2.9,并在此基础上进行了扩展。

02

请求包

    请求包可以适用于好多事务类型,包括内存事务、I/O事务和原子请求,但这种适用仅限于数据帧的格式上,也就是载体上,具体每个标志位的具体设置还得看具体的事务。其实有如下图是两种格式,也就是前面说的3DW和4DW。

    行文到此,我也有个困惑,前面说了有内容、消息、配置和I/O四种事务类型,这四种有具体细分了20种,而且在具体实践中,我们所用的也是这20中的其中一只,那么具体是怎么对应呢?所以整理了下面这个表格

2.1

基于内存事务的帧内容介绍

1

Length

    Length对于读请求和写请求有着不一样的含义。对于读请求,TLP包中不包含Payload字段,Length表示从目标设备读取的数据长度。对于写请求,则表示当前数据包中payload的实际长度。

    Length的最小单位是DW,取值范围是0到1023,如果是0,表示数据长度为1024个DW。

    读写类型由通用帧里面的“Fmt”和“type”决定,要读多长和写多长由length决定。协议里面给出了另外一种场景,就是“Zero-Length”,也就是读请求我可以请求0DW,而这样做的目的是为了实现都刷新等操作,现方式是将Length置1,且“Last DW BE”和“First DW BE”均为0。

2

DW EB字段

    PCIE总线以字节为单位就那些数据的传递存储,但Length的最小单位是32bit。所以需要用“Last DW BE”和“First (1st)DW BE”这两个字段进行字节使能,使得在一个TLP中,有效数以字节为单位。其中“Last DW BE”表示数据的最后一个双字中的有效位,“First DW BE”表示字段中第一个双字中的有效位。

    如果通用字段中的“TH”位为1了,则BE字段的8bit会重新定义为ST字段,这个在后面再说了。

3

Requester ID和Tag字段

    “Requester ID”的15bit包括生成报文的总线号(8bit ,Bus Number)、设备号(5bit,Device Number)和功能号(3bit,Function),但对于存储器写请求的TLP,“Requester ID”并不是必须的,因为目标设备并不需要对接收数据进行应答。但对于存储器的读请求、I/O和配置读写请求则必须该字段。

    存储器、I/O读请求TLP中含有Requester ID和Tag字段,合称为“Transaction ID”,格式如下所示,主要是用于请求TLP的目标设备用于返回确定完成数据包的返回地址。Tag用来标识Requester ID相同的同类不同类型的数据包。对于PCIE总线,所有的Non-Posted数据请求都需要完成报文作为应答,才能结束一次完整的数据传递。一个源设备发出请求若没有收到完成数据包就会保存“Transaction ID”不能再被使用,这里主要的区别就在于Tag字段,Tag决定了发送端能够暂存多少个同类型的TLP。

    另外,PCIE2.1总线还提出来另一种Requester ID格式,叫做ARI(Alternative Routing-ID Interpretation)格式,这种格式将Requester ID分为了总线号(8bit ,Bus Number)、功能号(3bit,Function)两种。因为PCIE链路 上仅可能存在一个PCIE设备,因而Device 会为0。

2.2

IO事务的帧格式

    I/O 读写请求与存储器读写请求TLP格式基本类似,但也有些方面的限定,包括:

1、只能是32位地址模式和基于地址的路由方式,

2、只能使用NON-Posted方式进行传递,这也是为了兼容PCI,在以后的协议几乎要取消I/O 读写请求了

3、TC必须为0

4、Attr的低两位必须为0

5、AT必须为0

6、Length必须为1

7、Last DW必须为0。

如下图所示。






快来扫描下方二维码关注公众号,领取站内所有相关资料,所有哦~

有建议、有需求、有疑问、联系我

<