【PCIe 5.0 - 10】Memory, I/O, and Configuration Request 规则

下列规则适用于所有 Memory, I/O, Configuration Requests,以下是针对各类请求的附加规则。

  • 除通用 header 字段外,所有 Memory, I/O, 和 Configuration Requests 还包括以下字段:
    • Requester ID[15:0] 和 Tag[9:0],组成 Transaction ID。
    • Last DW BE[[3:0] 和 First DW BE[3:0]。对于 TH 位为1的 Memory Read Requests 和 AtomicOp Requests,报头中Last DW BE[3:0] 和 First DW BE[3:0] 字段的字节位置将被调整为 ST[7:0] 字段。对于 TH 位为0的Memory Read Requests,参考 【PCIe 5.0 - 8】PCIe 事务层详解4 - First/Last DW Byte Enables规则 中的 First/Last DW Byte Enables规则。对于 TH 位为1的 AtomicOp Requests,DW BE 字段的值隐含为保留。对于 TH 位为0的 AtomicOp Requests,DW BE 字段为保留。

Memory Requests 适用以下规则:

  • Memory Requests 按地址路由,使用 64 位或 32 位寻址方式(见图1 和图2)。
  • 对于 Memory Read Requests,长度不得超过 Max_Read_Request_Size 指定的值。
  • 对于 AtomicOp Requests,表 1 规定了架构操作数大小及其相关的长度字段值。如果完成器支持 AtomicOps,则适用以下规则。Completer 必须检查 Length 字段值。如果该值与架构值不匹配,则完成器必须将 TLP 作为畸形 TLP 处理。否则,如果该值与 Completer 支持的操作数大小不匹配,Completer 必须将 TLP 作为不支持的请求 (Unsupported Request,UR) 处理。这是一个与接收端口相关的报告错误。
表 1 AtomicOp Requests 的 Length 字段值
AtomicOp Request 32 Bits 64 Bits 128 Bits
FetchAdd, Swap 1 DW 2 DW N/A
CAS 2 DW 4 DW 8 DW
  • FetchAdd Request 包含一个操作数,即 “add” 值。
  • Swap Request 包含一个操作数,即 “swap” 值。
  • 一个CAS Request 包含两个操作数。数据区的第一个操作数是 “compare” 值,第二个操作数是 “swap” 值。
  • 对于 AtomicOp Request,地址必须与操作数大小自然对齐。Completer 必须
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值