PCIe 6.0/7.0 FLIT MODE

14-Bit Tags Deep-Dive

Extended tag fields, Flit Mode requirements, capability bits, and segment capture

1. Tag Evolution

Tag Size History

Tag Size Max Outstanding PCIe Version Mode
5-bit 32 PCIe 1.0 Non-Flit
8-bit 256 PCIe 2.0+ Non-Flit
10-bit 1024 PCIe 4.0+ Non-Flit
14-bit 16384 PCIe 6.0+ Flit Mode Only

Why 14-Bit Tags?

2. 14-Bit Tag Structure

Tag Field Layout

    14-Bit Tag Field (Flit Mode Header)
    
    ┌──────────────────────────────────────────────────────┐
    │ 13 │ 12 │ 11 │ 10 │  9 │  8 │  7 │  6 │  5 │  4 │  3 │  2 │  1 │  0 │
    └──────────────────────────────────────────────────────┘
    │◄─────── Tag[13:10] ───────►│◄── Tag[9:8] ──►│◄─────── Tag[7:0] ─────►│
           (Extended)              (10-bit ext)        (Base Tag)
    
    Tag Ranges:
    - Tag[7:0]:    Base tag (256 values) - Always present
    - Tag[9:8]:    10-bit extension (additional 768 values)
    - Tag[13:10]:  14-bit extension (additional 15360 values)
    
    Total: 16384 unique tags per Requester

Tag Location in Flit Mode Headers

TLP Type Tag Bits Header DW
Memory Read (MRd) Tag[13:0] DW1
Memory Write (MWr) N/A (Posted) -
Completion (CplD) Tag[13:0] DW2
UIO Read (UIOMRd) Tag[13:0] DW1
UIO Write (UIOMWr) Tag[13:0] DW1

3. Capability and Enable

14-Bit Tag Capability

14-Bit Tag Enable

Capability Checking Rules

Important: End-to-End Support Required

Before enabling 14-bit tags, system software must verify that all potential Completers (including Root Complex, switches, and endpoints) support 14-bit tags. Using 14-bit tags with a non-supporting Completer results in undefined behavior.

4. Flit Mode Requirement

Why Flit Mode Only?

Non-Flit Mode Limitations

Mode Max Tag Size Location
Non-Flit Mode 10-bit Tag[7:0] in header, Tag[9:8] in TLP Prefix
Flit Mode 14-bit Tag[13:0] in header (no prefix needed)

5. Tag Management

Tag Allocation

Tag Ranges Recommendation

Range Tags Usage
0-31 32 5-bit tag compatibility
0-255 256 8-bit tag compatibility
0-1023 1024 10-bit tag range
1024-16383 15360 14-bit exclusive range

Completion Matching

6. UIO and 14-Bit Tags

UIO Requirements

Unordered I/O (UIO) mandates 14-bit tags:

UIO Tag Usage

7. Segment Capture

What is Segment Capture?

When operating with extended tags (10-bit or 14-bit), intermediate switches/RCs may need to capture extended segments for error logging.

Tag Segment Storage

8. System Configuration

Enabling 14-Bit Tags

  1. Enumerate all devices in hierarchy
  2. Check 14-Bit Tag Completer Supported for all potential Completers
  3. Check 14-Bit Tag Requester Supported for requesting devices
  4. If all support, set 14-Bit Tag Requester Enable
  5. Verify Flit Mode is active

Mixed Tag Support