# Extending the Performance of Hybrid NoCs beyond the Limitations of Network Heterogeneity
## 3 On the Performance Improvement of Hybrid NoCs
### Intra-Dimension Bypassing
#### 3.1.3 SVC Tagging Mechanism  
Packets of SVC can enjoy bypassing. Now, the problem is: what packet should be tagged with SVC? In this work, all VCs have the chance to be tagged with SVC to reduce overall packet delay and increase link utilization. SVC can be allocated to any packet that wins the output port. All packets are injected into the network with the SVC tag being zero. A router updates the SVC tag of a packet after it wins the output port. A packet has the first chance to be tagged with SVC when leaving its source. Each output port (excluding the ejection port) has a tagging unit. The principle to tag a head flit with SVC is simple, meeting the following two conditions:  
1. The SVC tag of the output port is not assigned to any packet.
2. The SVC buffer at the corresponding downstream routers empty.  
Otherwise, the SVC tag bit is set to zero. The two rules work together as a lightweight SVC allocator, which assigns the SVC tag to packets. A body flit of a packet follows the SVC tag of its head flit, and the tail flit releases the possession of the SVC tag of that output port.  
Figure 6 shows an example of SVC tagging. The SVC flag of this packet is initialized to zero (\(\overline{SVC}\)) when it is injected to the network. Suppose the SVC tag of east output is idle, and the downstream SVC buffer is empty. When this packet wins the east output port, according to the SVC tagging rule above, its SVC flag will be set after SA. The downstream router that receives this packet will try to bypass this packet if possible. In this figure, the packet bypasses the second router because it is tagged with SVC in the first router. This example shows SVC tagging for the packet in the injection port. The SVC tagging works the same for all packets buffered in other input ports. As long as a packet can win an output port, it can be tagged with SVC if the two conditions for SVC tagging are met.  
Considering the case where the proposed SVC mechanism is not employed, if the packet from the west port of the current router, as well as a packet from the injection port qualifies for the same bypass path, for instance, both packets must go through the VA to be assigned an appropriate VC on the output port as a bypass path. Therefore, if incoming packets to the bypass path belong to different VCs, the VC allocation per packet must be executed. This will incur extra overheads, which will slow down the bypassing decision-making. The proposed SVC and its tagging mechanism are a fast and scalable solution for single-cycle bypassing in virtual-channel adaptive routers. In this work, the SVC tagging is transparent to CPUs or upper level applications. Any packet that wins switch allocation on the current router has a chance to to be tagged with SVC. The packet tagged SVC can enjoy bypassing in the next hop.  
Figure 6: An example of slide virtual channel (SVC) tagging. The packet is injected to the network with SVC being zero (\(\overline{SVC}\)) and is tagged with \(SVC\) when leaving its source node. Packets from other input buffers can be tagged with SVC, as well.