第2章 Transaction Layer Specification
isochronous: 等时的,同步的
TLP报文头,相关名词解析
- TC: Traffic Class
- LN: Lightweight Notification (LN)
- TH: TLP Hints (TH)
- EP: Error Poisoned (EP)
- TD: 摘要相关
ATTR: TLP传输序的规定如下
- Strong odered Model: 遵循先来后到的原则,不允许插队
- Relexed ordering Model: 根据轻重缓急找到最佳的方案,提高数据的传输效率
- ID-Based Ordering:相同数据源发送的TLPs属于同一数据流,,不同数据源发送的TLPs属于不同的数据流,IDO模型允许不同数据流的TLPs之间不必遵循事务排序的约定。
AT字段: address translation IOMMU技术的处理器系统才会使用和虚拟化相关
CAM: PCI-compatible Configuration Access Mechanism
ECAM: PCI Express Enhanced Configuration Access Mechanism
ARI Device:ARI Device A Device associated with an Upstream Port, whose Functions each contain an ARI Extended Capability structure.
Alternative Routing-ID, ARI Alternative Routing-ID Interpretation. Applicable to Requester IDs and Completer IDs as well as Routing IDs.
Requester ID, Transaction ID 和Routed ID一样即bus,device,function ID。
T8,T9 其实是TAG的8,9字节,协议说明如下:
10-Bit Tag capability, introduced in [PCIe-4.0] increases the total Tag field size from 8 bits to 10 bits. The two additional
Tag bits, Tag[8] (T8) and Tag[9] (T9), are not contiguous with other Tag[7:0] bits in the TLP Header. The two additional
bits were Reserved in previous versions of this specification.
RCB: Read Completion Boundary determines the naturally aligned address boundaries on which a Completer is permitted to break up the response for a single Read Request into multiple Completions.
For a Root Complex, RCB is 64 bytes or 128 byte
For all other System Elements, RCB is 128 bytes.
Max_Payload_Size Supported - Device Capability Register中定义字段— This field indicates the maximum payload size that then Function can support for TLPs
Max_Payload_Size- Device Control Register中的定义,不能超过Max_Payload_Size Supported
transmitter:
- TLP data payload 长度不能超过Transmitter‘s Device Control register中的Max_Payload_Size
- 对于ARI Device, Max_Payload_Size单独由Function0决定
- 对于 non-ARI Multi-Function Device(MFD) 的上游端口, 所有的function设置Max_payload_size相同,那么发送的TLP data payload不能超过common Max_Payload_Size setting
- 对于 non-ARI Multi-Function Device(MFD) 的上游端口, 所有的function设置Max_payload_size不相同,那么发送的TLP data payload不能超过implementation specific。
note: 对于Max_Payload_Size 只对带有data payloads的TLP有效,对于Memory Read Request 的长度由Length field决定。
receiver:
TLP’s data payload length不能超过Receiver’s Device Control register的 Max Payload Size
- 接收者发现如果违法上面规则,那么就会上报异常TLP error
- 对于ARI设备, Max_Payload_Size仅由Function0中设置决定,其他Function设定则被忽略
- 对于 non-ARI Multi-Function Device(MFD) 的上游端口, 所有的function设置Max_payload_size相同,receiver需要确保TLP’s data payload size 不超过设置大小
- 对于 non-ARI Multi-Function Device(MFD) 的上游端口, 所有的function设置Max_payload_size不相同,那么发送的TLP data payload不能超过implementation specific
摘要不包含在长度内:The value in the Length field applies only to data - the TLP Digest is not included in the Length
Max_Read_Request_Size:
Device Control Register 中的字段:
This field sets the maximum Read Request size for the Function as a Requester
单位为128byte,
路由规则Routing and Address Rules:
Address routing is used with Memory and I/O Requests
ID routing is used with Configuration Requests, with ID Routed Messages, and with Completions
transaction descriptor:
- Transaction ID
- Attributes field
- Traffic class
message rounting: