1、对memory的读写包分为读请求包和响应包、写请求包(不需要存储器的响应包)。而i/o类型的读写请求都需要返回I/O口的响应包,configuration包对配置寄存器的读写请求也有响应包。这些请求包还可以按属性来分就是:NP-non posted ,即请求需要返回completion的响应包;还有一种就是;poste,即不需要completion返回响应包。例如上面的存储器写入请求包和Message包都隶属于posted包。包的主要格式结构如下:每种类型的包都有一定格式的包头(Tlp Header),根据不同的包的特性,还包括有效数据负荷(Data Payload)和tlp开销块(Tlp D
2、igest)。包头中的数据用于对包的管理和控制。有效数据负荷域存放有效数据信息。具有数据的TLP传递是有一定规则的:以DW为长度单位,发送端数据承载量不得超过“Device Control Register”中的“Max_Payload_Size”数值,接收端中,所接收到的数据量也不能超过接收端“Device Control Register”中的“Max_Payload_Size”数值。TLp Digest域是32位的ECRC校验。具体的包结构图如下:由此图可看出数据从低字节的高位先发送,从左到右。以下详细介绍TLPS的每个成分。R为保留信息位,应设为0,路由器switch对此位不做修改,接
3、收器应该忽略此位。 Fmt1:0:Format of TLP (see Table 2-2) bits 6:5 of byte0 Type4:Type of TLP bits 4:0 of byte 0 TC2:0: Traffic Class bits 6:4 of byte1,关于TC的作用将在下文说明。 Attr1: Attributes bits 5:4 of byte 2,详细介绍见下文 TD:1b indicates presence of TLP digest in the form of a single DW at the end of the TLP标志TLPDigest域
4、的有无。 EP: indicates the TLP is poisoned bit 6 of byte 2有效数据中毒(出错)机制。 Length9:Length of data payload in DW.Fmt开销位说明TLP Header的长度和TLP是否包含数据,见下图。0=00b,代表3DW的包头,没有数据。0=01b,代表4DW的包头,没有数据。0=10b,代表3DW的包头,有数据。0=11b,代表4DW的包头,有数据。Fmt和Type开销组合定义了包(TLP)的类型如下。上图定义了各种类型的包,图中的r2:0用于定义Message包的隐含寻址方式,在下文中更为详细。Length
5、域定义了有效负荷的DW长度如下。在不包含data payload块的包中Length的值应被设置为保留值R,并被接收端忽略。余下的各个开销位将在后文提到。 二TLP打包定址和路由导向方式主要有三种TLP寻址方式:地址路由(address)、ID识别路由、间接路由(implicit)。下面主要解释address和ID寻址方式,间接寻址将在后面提及。address寻址主要用于memory和i/o request请求包,memory读写请求包支持64位地址和32位地址,i/o读写请求只支持32位地址。64位地址寻址的TLP Header有4DW(16字节),32位地址寻址的TLP Header有3D
6、W长。上图就是64位地址的4DW的包头和32位地址的3DW的包头。对于memory读写request包,AT(address Type field)有如下的编码。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,confi
7、guration 请求包中有效,如图。对于last DW BE和1st DW BE中的每一个位,为0表示相应的数据字节不被读或写,为1表示相应的数据字节有效。每个使能位相对应的字节如下。处理层描述符(transaction Descriptor),用于请求器件和应答器件间转送处理层信息,包括三部分,Transaciton ID、Attributes、Traffic class(TC)。如下图。其中Transaction ID包括: Requester ID、Tag,如图。Tag7:0是由产生请求包的器件生成的,如果请求器件需要应答,则每个Tag7:0和Function Number是独一无二的
8、。Transaction ID是一个全局标识符用于响应包寻址请求器件。TC的规定如下,描述服务的层次和用于映射虚拟通道:处理层描述符在请求包中第二个DW:。中图中看出,描述字符放在第二个DW的前三个字节中。 三i/o,memory,configuration,message request、completetion详解。memory、i/o、configuration request包头除了基本的域之外还包括:Transaction ID即requester ID、Tag、Last DW BE、1st DW BE,放在第二个DW中。以下分别介绍这三种不同的请求包。memory request
9、package:采用直接地址寻址,有64bit地址和32bit地址两种,其中读请求包的Length域不应大于Max_Read_Request_Size寄存器设置的值。请求器件不会示例一个所访问的memory空间超过4KB的read request包。以下是两种不同地址长度的memory request 包。I/O request 包:I/O request 包只有32位地址寻址。有如下限制:0 must be 000b0 must be 00b AT1:0 must be 00 0000 0001b Last DW BE3:0 must be 0000b格式如下:可见每次只传送一个DW数据。c
10、onfiguration request包:configuration request包采用ID寻址方式,包头(Tlp Header长度是3DW)。有如下规定: TC2: Attr1: AT1: 9: Last DW BE3:包格式:Message 包:Message包分为: INTx Interrupt Signaling INTx中断信息包 Power Management 电源管理机能。 Error Signaling错误信息包 Locked Transaction Support 锁住交易的支持 Slot Power Limit Support插槽电源限制的支持 V
11、endor-Defined Messages制造商自行定义信息所有的Message包都用Msg编码,即不包括数据负荷的Message包,除了Vendor_Defined Messages和Set_Slot_Power_Limit Message包,Message包有以下限制: The Message Code field must be fully decoded (Message aliasing is not permitted). Except as noted, the Attr1:0 field is reserved.保留Attr域。0 must be 00b. Except as
12、 noted, bytes 8 through 15 are reserved.保留包头部分的bytes8到byte15. Message Requests are posted and do not require Completion.Message包不需要返回响应包。 Message Requests follow the same ordering rules as Memory Write Requests.寻址方式:隐含寻址,由Type域中的r2:0决定,即Type域的最后三位。具体寻址映射如下:r2:0是010时,寻址方式就是ID寻址。 completion rules(应答机制):completion包用ID寻址方式,寻址使用的ID就是request提供的requester ID。除了那些正常的域以外,还包括: Completer ID15:0 Identifies the Completer described in detail below Completion Status2:0 Indicates the status for a Compl
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1