PCIE协议-2-事务层规范-Completion Rules

2.2.9 完成规则

所有Read、Non-Posted Write和AtomicOp请求都需要完成(Completion)。完成包含一个完成头标,对于某些类型的完成,完成头标之后会跟随一定数量的DWs数据。完成头标的每个字段的规则在以下各节中定义。

  • 完成通过ID路由,并使用3DW头部。
    • 请注意,路由ID字段直接对应于与相应请求一起提供的请求者ID。因此,对于完成,这些字段将统称为请求者ID,而不是用于ID路由的不同字段。
  • 除了所有TLPs中包含的头标字段和ID路由字段之外,完成消息还包含以下附加字段(见图2-38):
    • 完成者ID[15:0] - 标识完成者 - 下文详细描述
    • 完成状态[2:0] - 指示完成的状态(见表2-35)
      • 确定完成状态[2:0]字段值的规则在第2.3.1节中。
    • BCM - 字节计数修改 - 这个位不能被PCI Express完成者设置,只能由PCI-X完成者设置
    • 字节计数[11:0] - 请求的剩余字节计数
      • 字节计数值以二进制数指定,0000 0000 0001b表示1字节,1111 1111 1111b表示4095字节,0000 0000 0000b表示4096字节。
      • 对于存储器读取完成,字节计数[11:0]根据第2.3.1.1节中的规则设置。
      • 对于原子操作完成,字节计数值必须等于关联的原子操作的字节大小。
      • 对于所有其他类型的完成,字节计数值必须为4。
    • Tag[9:0] - 与请求者ID字段结合,对应于事务ID
    • 低位地址[6:0] - 完成的起始字节的低位字节地址
      • 对于存储器读完成,该字段的值是与完成一起返回的第一个使能字节的数据的字节地址(见第2.3.1.1节中的规则)。
      • 对于原子操作完成,低位地址字段是保留的。
      • 对于所有剩余类型的完成,该字段必须全部设置为0。接收器可以(但非必须)检查此规则的违规情况。有关详细信息,见第2.3.2节,第二点。

  • 功能必须捕获所有由该功能完成的type0配置写请求中提供的总线号和设备号,并将这些数值提供在设备/功能生成的所有完成消息的总线和设备编号字段中。
    • 如果功能在初始设备配置写请求之前必须生成一个完成,必须在总线号和设备号字段中输入0。
    • 请注意,总线号和设备号可能在运行时改变,因此有必要在每个配置写入请求时重新捕获这些信息。
    • 例外:根复合体内部设备上的总线号分配可能以特定实现的方式进行。
  • 在某些情况下,多功能设备(MFD)可能会生成一个具有未完成(UR)状态的完成,而没有将完成与设备内的特定功能关联——在这种情况下,功能编号字段是保留的。
    • 示例:一个多功能设备(MFD)接收到一个读请求,该请求没有针对设备中任何功能关联的任何资源 - 设备生成一个具有未知请求(UR)状态的完成,并在完成者ID的功能号字段中设置所有位为0。
  • 完成头标必须为请求者ID、Tag和TC提供与相应请求头标中提供的相同的值。
  • 完成头标必须为属性提供与相应请求头标中提供的相同的值,除非明确允许:
    • 当使用基于ID的排序(IDO)时(见第2.2.6.4节)。
    • 当在转换完成中使用宽松排序(RO)时(见第10.2.3节)。
  • 如果完成者是一个轻量级通知完成者(LN Completer,LNC),并且目标存储区支持寄存,则适用以下规则;否则,LN位必须清除:
    • 如果完成状态是成功完成,并且关联的请求是一个LN读取,LN位必须设置。
    • 否则,LN位必须清除。
  • TH位对于完成是保留的。
  • AT[1:0]必须为00b。不要求或鼓励接收器检查这一点。
  • 在完成设备的软件初始化和配置之前(至少使用一个配置写入请求),完成ID字段是没有意义的,对于这种情况,请求者必须忽略完成者ID字段中返回的值。
  • 包含数据的完成必须指定在该完成中返回的实际数据量,并且必须包含指定数量的数据。
    • 在长度字段中指定的比特数多包含或少包含数据是一个TLP格式错误,由此产生的TLP是一个畸形TLP。

注意:这只是要求TLP数据有效载荷长度与长度字段中的值匹配的一般规则的一个特定案例。

 

 

  • 17
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值