Memory Controller Priority Step Function Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In computing systems, existing memory request scheduling techniques like shortest-job-first scheduling can introduce jitter in response times for long jobs due to favoring newly-received short jobs over prior-received long jobs, especially when job length disparities are reduced, leading to unfairness and increased latency in memory-intensive applications.

Innovation Solution

A memory controller that schedules memory requests based on a priority step function of job length, using functions like ┌x/2n┐ for x<=m and P(x)=m/2n for x>m, or 2n×┌ log2(x)┐, to group jobs of similar lengths and reduce priority decrement for longer jobs, ensuring fair scheduling and reduced jitter.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If shortest-job-first scheduling is used to prioritize short memory requests, then average response time is improved, but jitter in response times for long jobs increases and fairness deteriorates

Engineering Contradiction:
Improveaverage response timeVSAvoidscheduling fairness
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent changes the scheduling parameter from simple job length to a transformed parameter using a step function of job length. This transformation groups jobs of similar lengths together and reduces the priority decrement for longer jobs, thereby maintaining average response time improvement while reducing jitter and improving fairness. The step function parameter transformation effectively modifies how job length is perceived and prioritized in the scheduling algorithm.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If priority is given to newly-received short jobs over prior-received long jobs, then throughput is improved, but latency for long jobs increases and fairness deteriorates

Engineering Contradiction:
Improvememory bandwidth utilizationVSAvoidlatency for long jobs
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies a step function transformation to the job length parameter, which changes how priority is calculated. Instead of linearly decreasing priority with job length, the step function creates discrete priority levels that reduce the penalty for longer jobs. This allows the system to maintain high throughput by still prioritizing shorter jobs while reducing the excessive latency imposed on long jobs, thereby improving fairness without sacrificing productivity.

Inventive Principle:
Principle #35Parameter changes

3Speed

If traditional shortest-job-first scheduling is used, then responsiveness to short jobs is improved, but consistency of handling time across threads with varying job lengths deteriorates

Engineering Contradiction:
Improveresponse speed to short jobsVSAvoidhandling time consistency
Core Design Contradiction:
SpeedVSStability of the object's composition

Solution Approach 1:

The patent transforms the job length parameter using a step function, which groups jobs of similar lengths into the same priority level. This parameter transformation maintains the responsiveness to short jobs by still giving them higher priority, but it improves handling time consistency by reducing the extreme priority differences between jobs of different lengths. The step function creates a more stable and predictable scheduling behavior across threads with varying job lengths.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8505016B2Enhanced shortest-job-first memory request scheduling
Publication Date: 2013.08.06 ADVANCED MICRO DEVICES INC
  • US8505016B2 patent drawing
  • US8505016B2 patent drawing
  • US8505016B2 patent drawing

AI summary

In at least one embodiment of the invention, a method includes scheduling a memory request associated with a thread executing on a processing system. The scheduling is based on a job length of the thread and a priority step function of job length. The thread is one of a plurality of threads executing on the processing system. In at least one embodiment of the method, the priority step function is a function of ┌x/2n┐ for x&lt;=m and P(x)=m/2n for x&gt;m, where x is the number of memory requests in a memory request queue and n and m are integers. In at least one embodiment of the method, the priority step function is a function of 2n×┌ log2(x)┐, where x is the number of memory requests in a memory request queue and n is an integer.