一、TLP概况
1. 四种空间
2. 三种处理类型
3. 两种属性
4. 主要包格式
5. TLP通用包头
二、TLP打包地址和路由导向方式
1. Address寻址
2. ID寻址方式
3. 处理层描述符(transaction Descriptor)
三、I/O,Memory,Configuration,Message Request、Completetion详解
1. Memory Request Package
2. I/O Request 包
3. Configuration Request包
4. Message
5. Completion Rules(应答机制)
四、请求和应答处理机制
1. Request Handling Rules
2. Completion Handling
五、virtual channel(vc)Mechanism虚拟通道机制
1. TC/VC映射
2. Flow Control
六、Data Integrity数据完整性
处理层(transaction Layer specification)是请求和响应信息形成的基础。包括四种地址空间,三种处理类型,从下图可以看出在transaction Layer 中形成的包的基本概括。
2. 三种处理类型
作为事件的信号告知用户。
对memory的读写包分为读请求包和响应包、写请求包(不需要存储器的响应包)。而i/o类型的读写请求都需要返回I/O口的响应包,configuration包对配置寄存器的读写请求也有响应包。这些请求包还可以按属性来分类。
3. 两种属性
4. 主要包格式
每种类型的包都有一定格式的包头(Tlp Header),根据不同的包的特性,还包括有效数据负荷(Data Payload)和tlp开销块(Tlp Digest)。包头中的数据用于对包的管理和控制。有效数据负荷域存放有效数据信息。具有数据的TLP传递是有一定规则的:以DW为长度单位,发送端数据承载量不得超过“Device Control Register”中的“Max_Payload_Size”数值,接收端中,所接收到的数据量也不能超过接收端“Device Control Register”中的“Max_Payload_Size”数值。TLp Digest域是32位的ECRC校验。具体的包结构图如下:
由此图可看出数据从低字节的高位先发送,从左到右。以下详细介绍TLPS的每个成分。
5. TLP通用包头
R为保留信息位,应设为0,路由器switch对此位不做修改,接收器应该忽略此位。
Fmt开销位说明TLP Header的长度和TLP是否包含数据,如下图:
Fmt [0] 表示包头格式是3长字还是4长字,Fmt[1] 表示包头是否包含数据。
Fmt和Type开销组合定义了包(TLP)的类型如下:
在不包含data payload块的包中Length的值应被设置为保留值R,并被接收端忽略。余下的各个开销位将在后文提到。
1. Address寻址
主要用于memory和i/o request请求包
memory读写请求包支持64位地址和32位地址,
i/o读写请求只支持32位地址
64位地址寻址的TLP Header有4DW(16字节),
32位地址寻址的TLP Header有3DW长。
2. ID寻址方式
主要用在configuration 请求包、部分message包、响应包中。ID包括Bus number、Divce number、function number为TLP定位目标接收器。ID寻址的TLP包头长度也有4DW和3DW两种,ID在TLP中位置见下图。
第七个Byte(Byte7)是第一个DW数据负荷和最后一个DW数据负荷使能位(Byte Enables),Byte Enables在于memory,i/o,configuration 请求包中有效,如图。
对于last DW BE和1st DW BE中的每一个位,为0表示相应的数据字节不被读或写,为1表示相应的数据字节有效。每个使能位相对应的字节如下。
3. 处理层描述符(transaction Descriptor)
对于两种路由方式来说是通用的。
用于请求器件和应答器件间转送处理层信息,包括三部分,Transaciton ID、Attributes、Traffic class(TC),如下图。
其中Transaction ID包括: Requester ID、Tag,如图。
Tag[7:0]是由产生请求包的器件生成的,如果请求器件需要应答,则每个Tag[7:0]和Function Number是独一无二的。Transaction ID是一个全局标识符用于响应包寻址请求器件。
TC的规定如下,描述服务的层次和用于映射虚拟通道:
处理层描述符在请求包中第二个DW:
从图中看出,描述字符放在第二个DW的前三个字节中。
第一篇到此结束,下次金带来第二篇,i/o,memory,configuration,message request、completetion(Memory Request Package、I/O Request 包、Configuration Request包、Message、Completion Rules(应答机制))等。
- THE END -
往期精选
FPGA技术江湖广发江湖帖
无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。
FPGA技术江湖微信交流群
加群主微信,备注姓名+学校/公司+专业/岗位进群
FPGA技术江湖QQ交流群
备注姓名+学校/公司+专业/岗位进群