PCIe学习笔记(18)

Completion完成规则

所有的Read, Non - Posted Write和AtomicOp请求都需要Completion。Completion包括一个Completion头,对于某些类型的完成,后面会跟着一些DW的数据。

•Completion通过ID路由,并使用3 DW头

◦请注意,路由ID字段直接对应于与相应请求提供的请求者ID。因此,对于Completions,这些字段将被统称为请求者ID,而不是通常用于ID路由的不同字段。

•除了包含在所有TLPs和ID路由字段的报头字段,Completions包含以下附加字段(见图2-38):

Completer ID[15:0] -标识Completer

Completion Status[2:0] -指示一个Completion的状态(见表2-35)

BCM -字节计数修改-这个位不能由PCI Express Completers设置,只能由PCI- x Completers设置

字节计数Byte Count [11:0]-请求的剩余字节计数   如果一次发送完了,不需要剩余,那么此时指的是发送字节数

▪字节计数值指定为二进制数,用0000 0000 0001b表示1字节,1111 1111 1111b表示4095字节,并且0000 0000 0000b表示4096字节。

▪对于内存读完成,字节计数[11:0]是根据2.3.1.1节的规则设置的。

▪对于AtomicOp completions, Byte Count的值必须等于相关AtomicOp操作数的字节大小。

▪对于所有其他类型的Completions,字节计数值必须为4

Tag[9:0] -与请求者ID字段相结合,对应于事务ID

Lower Address[6:0] -完成起始字节的较低字节地址

▪对于内存读取完成,该字段的值是与完成返回的数据的第一个启用字节的字节地址(参见2.3.1.1节中的规则)。

▪对于AtomicOp completion, Lower Address字段是保留的

▪该字段设置为所有剩余类型的completions全部为0。接收方可以选择检查是否违反此规则。

Completer ID[15:0]是一个16位的值,对于一个层次结构中的每个PCI Express函数都是唯一的

(请求者ID和完成者ID一致,只是发起者不同的区别,都是BDF)

•功能必须捕获由该功能完成的所有Type 0配置写请求提供的总线号和设备号,并将这些数值提供在设备/功能生成的所有完成消息的总线和设备编号字段中。。

◦如果一个功能必须在初始设备配置写请求之前生成一个Completion,必须在总线号和设备号字段中输入0

◦注意总线号和设备号可能在运行时更改,因此有必要重新捕获每个配置写请求的此信息。

◦例外:在根复合体内的设备的总线号的分配可以在实现特定的方式完成。

•在某些情况下,具有UR状态的Completion可以由MFD生成,而无需将Completion与设备内的特定功能相关联-在这种情况下,功能号字段是保留的。

◦示例:MFD接收到一个读取请求,该请求不针对与设备的任何功能相关的任何资源-设备生成一个带有UR状态的Completion,并在Completer ID的Function Number字段中设置一个全0的值。

完成报头必须为请求者ID、Tag和流量类TC提供与相应请求报头中提供的相同的值

•Completion头必须为属性提供与相应请求头中提供的相同的值,除非明确允许:

◦当使用IDO时(参见第2.2.6.4节)

◦当在Translation Completion中使用RO时(参见第10.2.3节)

•如果Completer是LN Completer (LNC)并且目标内存区域支持寄存,则适用以下规则;否则LN位必须为Clear。

如果“Completion Status”为“Successful Completion”,且对应的“Request”为“LN Read”,则必须设置LN位。

否则,LN位必须是Clear。

•TH位预留。

•AT[1:0]必须是00b。不要求或不鼓励接收方检查此选项。

•在完成设备的软件初始化和配置(至少使用一个配置写请求)之前,完成ID字段是没有意义的,对于这种情况,请求者必须忽略完成ID字段返回的值。

•包含数据的Completion必须指定Completion中返回的实际数据量,并且必须包括指定的数据量。

◦这是一个TLP形成错误,包括更多或更少的数据比指定的长度字段,并由此产生的TLP是一个畸形的TLP。

注意:这只是一般规则要求TLP数据有效负载长度与length字段中的值匹配的特殊情况。

  • 21
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值