Q 0.14: Virtual Channel (VC) Arbitration – Managing Multiple Traffic Lanes

In Lecture 13, we learned how Traffic Classes (TCs) are mapped to independent hardware buffers called Virtual Channels (VCs). But what happens if a device has more than one VC, and multiple VCs have packets ready to send at the exact same time?

This is where Virtual Channel (VC) Arbitration comes into play. VC arbitration is the mechanism that determines the specific order of packet transmission. The primary goals of this arbitration are to implement the desired service policy and to ensure that all transactions make forward progress to prevent inadvertent system time-outs.

The PCIe specification provides three basic approaches to VC arbitration:

1. Strict Priority Arbitration

Strict Priority is the default priority scheme and is based entirely on the inherent priority of the VC IDs themselves. In this model, VC0 is always the lowest priority, and VC7 is the highest.

  • How it Works: The highest numbered VC with a packet ready to send always wins the arbitration.
  • The Benefit: This guarantees that the highest priority packets receive very high bandwidth with minimal latencies. It is also completely automatic and requires no configuration.
  • The Catch: If there is a constant stream of high-priority traffic, strict priority has the potential to completely starve the lower-priority channels of bandwidth. To prevent this, the system must carefully regulate the injection rate of high-priority packets.

2. Group Arbitration

To offer more flexibility and prevent starvation, a device designer can split the VCs into two separate groups: one low-priority group and one high-priority group,.

In this scheme, the high-priority group continues to use Strict Priority arbitration, but the low-priority group uses an alternate arbitration method selected by software,.

3. Alternate Arbitration Schemes (For Low-Priority Groups)

When utilizing Group Arbitration, software can select from the following methods for the low-priority VCs:

  • Hardware Fixed Arbitration: This is a scheme built directly into the hardware by the designer,. It requires no additional software setup and could be as simple as an ordinary round-robin sequence where each VC simply gets an equal turn to send its packets.
  • Weighted Round Robin (WRR) Arbitration: In this scheme, some VCs can be “weighted” higher—meaning they are given more opportunities to transmit than others. This is managed using a VC Arbitration Table (VAT) that is loaded by configuration software,.
    • The table contains multiple entries (called phases), and software can give higher priority VCs more phase entries in the table.
    • The arbiter repeatedly scans the table in a sequential sequence, sending a packet from the VC specified in the current phase before immediately moving on to the next phase.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top