Focuses on advanced Transaction Layer features: TLP routing, header fields, framing, prefix, ordered headers, and steering tags.


1. Transaction Layer Packet (TLP) Routing

PCIe uses multiple routing methods to deliver TLPs to the correct endpoint:

Routing TypeDescription
Address RoutingUses the memory/IO address to determine the destination
ID RoutingUses requester ID (Bus/Device/Function)
Implicit RoutingSystem-defined routing (broadcasts, special messages)

ASCII Example: Address Routing

Root Complex --> Switch --> Endpoint
Address: 0xD0000000 maps to Endpoint 1
TLP follows path through switch to EP1

2. TLP Header Fields

TLP Header carries routing and control information:

FieldDescription
Format/TypeDefines TLP type (Memory, IO, Config, Message)
LengthNumber of DWORDs in payload
Requester IDSource device
Completer IDDestination device
AddressMemory/IO space address
Attributes (AT)Ordering, relaxed/strict, etc.
Traffic Class (TC)QoS class for virtual channels

ASCII TLP Header Example

+------------+------------+-----------+-----------+
| Type/Format| Length     | Req ID    | Comp ID   |
+------------+------------+-----------+-----------+
| Address/Attr| TC       | Other fields           |
+------------+------------+-----------------------+

3. TLP Framing

  • TLPs are encapsulated into flits or symbols at the PHY layer
  • Start-of-packet (SOP) and End-of-packet (EOP) markers indicate TLP boundaries
  • Framing ensures DLL can reconstruct the original TLP

4. TLP Prefix Processing

  • TLP Prefix: Optional header preceding main TLP
  • Types:
    • Local Prefix: Only for the originating device
    • End-to-End (E2E) Prefix: Travels with TLP across devices
  • Carries:
    • PASID (Process Address Space ID)
    • Transaction hints (TPH)
    • Steering tags for routing

ASCII Example:

[TLP Prefix] [TLP Header] [TLP Payload] [CRC]

5. Ordered Header Categories (OHC)

PCIe classifies TLP headers into categories A, B, C, E for ordering rules:

CategoryDescription
AMust be strictly ordered with other A transactions
BCan be reordered with other B, but after A
CRelaxed ordering; can bypass A/B
EExplicit ordering for special messages

Helps devices maintain memory coherency and QoS.


6. Steering Tag

  • Optional tag in TLP to direct routing efficiently through switches
  • Reduces lookup complexity at each switch
  • Enhances latency-sensitive traffic delivery

ASCII Routing Example with Steering Tag

[RC] --> [Switch] --> [EP1]
TLP contains Steering Tag -> Switch forwards without lookup

7. Address Translation Services (ATS) Updates

  • ATS allows endpoints to request address translation from upstream IOMMU
  • Enables virtualization
  • Reduces CPU intervention for memory accesses in multi-VM systems

8. Process Address Space ID (PASID)

  • Each process or virtual machine can have a unique PASID
  • Helps track transactions belonging to different processes
  • Works with TLP Prefix to maintain correct routing and ordering

9. Advanced TLP Rules

  • Transaction Processing Hints (TPH): Suggests how completions should be processed
  • Packet Header Updates: Supports new features like Flit Mode
  • Flit Sequencer Rules: Maintain TLP order across multiple lanes
  • Implicit / Explicit Sequence Numbering: Guarantees reliability

10. Summary – Transaction Layer Advanced Features

Responsibilities:

  • Routes TLPs using address, ID, or implicit routing
  • Maintains header structure with length, IDs, attributes, and QoS
  • Supports TLP Prefix for PASID, TPH, steering tags
  • Enforces Ordered Header Categories (A/B/C/E)
  • Ensures correct transaction ordering and virtual channel prioritization

Scroll to Top