DisplayPort MST Stream Routing Explained
DisplayPort Multi-Stream Transport (MST) enables a single physical connection to transmit multiple independent audio and video streams across daisy-chained monitors or multi-port hubs. At the core of this architecture is the Stream Routing sublayer, a transport-level mechanism that demultiplexes packetized video data and directs individual streams to their target branch ports. This article explains how the Stream Routing sublayer uses topology mapping, payload allocation tables, and time-slot multiplexing to route display packets accurately through an MST network.
Topology Discovery and Sideband Messaging
Before routing video packets, the DisplayPort source device must map the physical topology of the MST network. This discovery process occurs over the bi-directional Auxiliary (AUX) channel using the Sideband Messaging mechanism:
- Topology Enumeration: The host source issues
sideband commands such as
LINK_ADDRESSto identify connected MST branch devices (hubs) and leaf nodes (displays). - Resource Querying: The source queries available
bandwidth on each link segment using
ENUM_PATH_RESOURCES. - Path Addressing: Each branch device and sink is assigned a relative address based on its physical tier in the hierarchy and the downstream port to which it connects.
Time-Division Multiplexing and Time Slots
The DisplayPort MST physical link divides transmission frames into repeating Multi-Stream Transport Packets (MTPs). Each MTP consists of 64 discrete time slots per lane:
- Slot 0: Reserved for framing and MTP header information, which synchronizes the link and indicates stream positions.
- Slots 1 to 63: Allocated to active video and audio streams based on their resolution, refresh rate, and color depth requirements.
The source slices each native video stream into Transfer Units (TUs) and inserts them into specific time slots across the 64-slot grid.
Virtual Channel Payload IDs (VCPI)
To route the multiplexed data, the source assigns each stream a Virtual Channel Payload Identifier (VCPI). The relationship between the VCPI, the stream, and the designated branch port is programmed into every intermediate branch device:
- The host initiates an
ALLOCATE_PAYLOADsideband transaction over the AUX channel. - This transaction tells each branch device:
- The assigned VCPI for a given stream.
- The start time slot and the number of consecutive time slots the payload occupies within the 64-slot MTP.
- The designated physical downstream port that should receive this payload.
Each branch device stores these instructions in its local DPCD (DisplayPort Configuration Data) payload allocation table.
Packet Handling in the Stream Routing Sublayer
When the multiplexed bitstream reaches an MST branch device, the Stream Routing sublayer parses the data at hardware speed without software intervention:
- Header Inspection: The sublayer locks onto Slot 0 to establish the frame boundary and read the allocation map.
- Time-Slot Extraction: Using its internal allocation table, the sublayer extracts the time slots mapped to its local downstream ports.
- Downstream Delivery:
- To an SST (Single-Stream Transport) Sink: If the downstream port connects directly to a conventional display, the branch device strips the MST encapsulation, extracts the pixel stream from the allocated time slots, converts it back into standard DisplayPort Main Link framing, and outputs it as a native SST signal.
- To Another MST Branch: If the downstream port leads to another daisy-chained hub or monitor, the sublayer repacks the relevant time slots into a new MTP structure according to the bandwidth and configuration of the downstream link, passing the packets down the chain.
By tracking these assigned slot ranges and payload IDs across every hop, the Stream Routing sublayer ensures high-bandwidth, deterministic delivery of independent video feeds without stream collision or latency degradation.