MULTI-DEVICE

Multicast Operations

One-to-many PCIe transactions for efficient data distribution

1. What is PCIe Multicast?

What is Multicast?

PCIe Multicast enables a single TLP to be replicated and delivered to multiple destinations simultaneously. This eliminates the need to send separate copies of the same data to each recipient.

Unicast vs Multicast

    Unicast (Traditional):
    
    Requester  ───TLP1───►  Device A
    Requester  ───TLP2───►  Device B
    Requester  ───TLP3───►  Device C
    (3 separate TLPs)
    
    
    Multicast:
    
                            ┌──►  Device A
    Requester  ───TLP───────┼──►  Device B
                            └──►  Device C
    (1 TLP replicated at switch)

2. Why Multicast?

Benefits

Use Cases

3. Multicast Address Ranges

Multicast Groups

Multicast uses special address ranges configured via MC capability:

MC_Overlay Mechanism

    Multicast Address Decoding:
    
    ┌──────────────────────────────────────────────────────────────┐
    │ Address falls in MC Base + MC Receive range?                 │
    │                                                              │
    │ YES → Route as Multicast                                     │
    │       Bits [5:0] of address = MC Group Number (0-63)         │
    │                                                              │
    │ NO  → Route as normal unicast                                │
    └──────────────────────────────────────────────────────────────┘

4. Multicast Extended Capability

Capability Structure

Offset Register Description
00h Extended Cap Header ID = 0012h
04h MC Capability Max groups, window sizes
08h MC Control Enable, group count
0Ch MC Base Address (Low) MC address range base
10h MC Base Address (High) Upper 32 bits
14h MC Receive Which groups to receive
18h MC Block All Block untranslated MC
1Ch MC Block Untranslated Block specific groups
20h MC Overlay BAR BAR for MC address decode

5. Multicast Routing

Switch Multicast Handling

    Switch receives MC TLP:
    
    1. Decode address → MC Group N
    
    2. For each downstream port:
       - Check MC Receive register bit N
       - If set → Replicate TLP to that port
       
    3. If upstream port enabled for group:
       - Forward upstream copy
       
    ┌─────────────────────────────────────────┐
    │              Switch                      │
    │                                         │
    │  MC TLP ─────►  Port 0 (Group 5 enabled) │
    │           └──►  Port 1 (Group 5 enabled) │
    │           └──►  Port 2 (Group 5 disabled)│
    │                 (not forwarded)          │
    └─────────────────────────────────────────┘

6. Multicast Ordering

Multicast TLPs follow specific ordering rules:

7. System Configuration

  1. Enable MC capability in switch
  2. Configure MC Base Address
  3. Set up MC groups (which ports receive which groups)
  4. Configure endpoint MC Receive registers
  5. Software uses MC addresses for multicast writes