Virtual-Time Memory Scheduling for Multi-Controller Bandwidth Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-processor systems, existing memory request scheduling techniques fail to effectively allocate memory bandwidth, leading to inefficiencies and unnecessary slowdowns of threads due to local memory bandwidth usage misconceptions, resulting in suboptimal utilization of available memory resources.

Innovation Solution

Implementing a virtual-time-based quality-of-service scheduling technique that allocates shares of system memory bandwidth to threads, determining a virtual finish time for each memory request based on its allocated share, and scheduling requests before their virtual finish time, while applying additional rules such as first-ready and first-come, first-served to ensure fair and efficient access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If multiple memory controllers are used to provide large physical memory space to each processor, then memory bandwidth availability increases, but memory request scheduling complexity increases

Engineering Contradiction:
Improvememory bandwidth availabilityVSAvoidmemory request scheduling complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments the memory bandwidth into separate shares allocated to different threads, with each memory controller managing its own queue of memory requests. This segmentation allows independent scheduling decisions at each memory controller while ensuring fair bandwidth distribution across multiple threads sharing the same physical memory space.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces virtual finish time as an intermediary mechanism that mediates between memory controllers and threads. Each memory request is assigned a virtual finish time based on its thread's allocated bandwidth share, allowing memory controllers to schedule requests without direct coordination, thus reducing scheduling complexity while maintaining bandwidth fairness.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If threads are allocated shares of system memory bandwidth, then quality-of-service is improved, but memory request queue management complexity increases

Engineering Contradiction:
Improvequality-of-serviceVSAvoidmemory request queue management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent changes the scheduling parameter from traditional priority-based or FIFO approaches to virtual finish time-based scheduling. The virtual finish time is calculated based on the thread's allocated bandwidth share and the current system state, allowing quality-of-service guarantees while simplifying queue management through a single time-based metric rather than multiple priority levels or complex arbitration logic.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If memory requests are scheduled based on virtual finish time, then memory bandwidth allocation fairness is improved, but scheduling decision complexity increases

Engineering Contradiction:
Improvememory bandwidth allocation fairnessVSAvoidscheduling decision complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent performs preliminary calculation of virtual finish times for all pending memory requests when they are enqueued. This preliminary action eliminates the need for complex real-time scheduling decisions, as the scheduler simply needs to process requests in order of their pre-calculated virtual finish times, reducing scheduling decision complexity while maintaining allocation fairness.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8819687B2Scheduling for multiple memory controllers
Publication Date: 2014.08.26 ADVANCED MICRO DEVICES INC
  • US8819687B2 patent drawing
  • US8819687B2 patent drawing
  • US8819687B2 patent drawing

AI summary

Some embodiments of a multi processor system implement a virtual-time-based quality-of-service scheduling technique. In at least one embodiment of the invention, a method includes scheduling a memory request to a memory from a memory request queue in response to expiration of a virtual finish time of the memory request. The virtual finish time is based on a share of system memory bandwidth associated with the memory request. The method includes scheduling the memory request to the memory from the memory request queue before the expiration of the virtual finish time of the memory request if a virtual finish time of each other memory request in the memory request queue has not expired and based on at least one other scheduling rule.