Parallel Virtual Port Scheduling for Router Bandwidth
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current packet scheduling techniques in routers are limited by memory bandwidth and contention overhead, leading to inefficiencies in selecting packets for transmission on high-speed communication links.
Innovation Solution
The method involves segmenting packets into multiple scheduling domains represented by separate scheduling trees, each managed by a virtual port scheduling engine, with a top-level engine making the final transmission decision, allowing for parallel and independent operation to reduce shared state considerations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a single scheduling engine traverses a scheduling tree to select packets for transmission, then the scheduling process can be implemented with simple structure, but the scheduling performance is limited by memory bandwidth and contention overhead
Solution Approach 1:
The scheduling system is segmented into multiple independent scheduling engines, each responsible for a specific scheduling tree. This segmentation allows parallel processing of packet scheduling operations, increasing the overall scheduling rate by eliminating the bottleneck of a single engine traversing the entire scheduling tree sequentially.
Solution Approach 2:
The system transitions from a single-dimensional sequential scheduling approach to a multi-dimensional parallel scheduling architecture. Multiple scheduling engines operate simultaneously on different scheduling trees, adding a temporal and spatial dimension to the scheduling process, thereby increasing productivity without proportionally increasing complexity.
2Quantity of substance
If multiple packets are queued and scheduled for a single outgoing physical communications link, then packet queues can temporarily store received packets, but the queued packets compete for the common outgoing link reducing scheduling efficiency
Solution Approach 1:
The common outgoing physical communications link is segmented into multiple virtual outgoing links, each associated with a separate scheduling tree and scheduling engine. This segmentation allows multiple packet queues to be served simultaneously without competition, as each scheduling engine independently manages its own tree and can transmit packets without waiting for others.
Solution Approach 2:
The system employs more scheduling engines than there are physical outgoing links, creating a surplus of scheduling capacity. This excessive action allows the system to handle multiple packet queues in parallel, ensuring that packet transmission rate is not limited by the number of physical links but by the available scheduling engine capacity.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Improved packet scheduling methods and apparatuses for use in, among other things, a network interface of a router (or other network element) are described herein. In one such improved method, packets buffered in a network interface are segmented for transmission on a communications link into multiple scheduling domains each being represented by a scheduling tree, each scheduling tree is assigned to a separate virtual port scheduling engine, and a top level scheduling engine is employed to schedule between the outputs of the virtual port scheduling engines to make the final choice of which buffered packet to transmit on the communications link (e.g., to move to the transmit queue of the network interface). By having the virtual port scheduling engines operate in parallel and substantially independently of each other, the rate at which packet can be moved into the transmit queue may increase greatly, thereby increasing the bandwidth of the network interface of the router.