下列规则适用于所有 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) 处理。这是一个与接收端口相关的报告错误。
| 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 必须

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



