Self-Clocked Round Robin Scheduling Without Empty Queue Visits

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing schedulers like Self-Clocked Round Robin (SCRR) with Sparse Flow Optimization (SFO) face issues with empty visits to sub-queues, leading to wasted processing and memory resources, especially in hardware implementations, and increased CPU overhead in software.

Innovation Solution

The 'No Empty' technique for SCRR uses the virtual clock to determine eligibility for immediate scheduling of previously empty sub-queues, eliminating empty visits and reducing CPU overhead by integrating them into the scheduling process based on virtual time comparisons.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If Sparse Flow Optimization (SFO) is used in SCRR to enable immediate scheduling of previously empty sub-queues, then latency is reduced, but empty visits occur where the scheduler visits empty sub-queues wasting processing and memory resources

Engineering Contradiction:
ImprovelatencyVSAvoidprocessing overhead
Core Design Contradiction:
Loss of timeVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by checking whether a previously empty sub-queue has packets before scheduling it. The scheduler determines in advance if the sub-queue is non-empty using a flag or counter, and only schedules it if packets are present. This prevents the harmful empty visits while maintaining the low-latency benefit of immediate scheduling for SFO-eligible sub-queues.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If Sparse Flow Optimization (SFO) is used in SCRR to enable immediate scheduling of previously empty sub-queues, then latency is reduced, but memory resource usage increases due to tracking empty sub-queues

Engineering Contradiction:
ImprovelatencyVSAvoidmemory resources
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent reduces memory usage by performing preliminary checks before scheduling. Instead of maintaining complex data structures to track empty sub-queues, the invention uses simple flags or counters that are updated in advance when packets are enqueued or dequeued. This preliminary tracking mechanism uses minimal memory while enabling the scheduler to quickly determine whether a sub-queue is non-empty.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If SCRR scheduler visits all sub-queues in round-robin manner, then fairness is maintained, but processing overhead increases due to visiting empty sub-queues

Engineering Contradiction:
ImprovefairnessVSAvoidprocessing efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent applies preliminary action by pre-checking the status of sub-queues before the round-robin scheduling process. The scheduler determines which sub-queues are non-empty in advance and creates a filtered scheduling list that excludes empty sub-queues. This maintains fairness by ensuring all non-empty sub-queues receive equal service while eliminating wasted processing on empty sub-queues.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts empty sub-queues from the scheduling process by identifying and removing them from the round-robin rotation. This is achieved through flags or counters that mark empty sub-queues, allowing the scheduler to skip them automatically. The extraction principle maintains fairness for active sub-queues while improving processing efficiency by eliminating unnecessary visits to empty sub-queues.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS20250350566A1No empty and initial advance for self-clocked round robin scheduler
Publication Date: 2025.11.13 HEWLETT PACKARD ENTERPRISE DEV LP
  • US20250350566A1 patent drawing
  • US20250350566A1 patent drawing
  • US20250350566A1 patent drawing

AI summary

A system maintains sub-queues used for storing packets. A respective packet is enqueued into a sub-queue and dequeued by a scheduler. A virtual time associated with the respective packet is based on a current sub-queue virtual time corresponding to a previously enqueued packet in the sub-queue. The scheduler tracks a global virtual time based on dequeuing packets from the sub-queues and by advancing the global virtual time in response to completing a scheduling round. The system inserts a packet into a sub-queue which is previously empty. In response to a virtual time associated with the sub-queue being earlier than or equal to the current global virtual time, the system schedules the sub-queue before the non-empty sub-queues. In response to the virtual time associated with the sub-queue being later than the current global virtual time, the system schedules the sub-queue for forwarding packets after the non-empty sub-queues.