Memory Controller Scheduling Requests by Variable Scores

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional memory controllers use fixed scheduling methods like FCFS and FR-FCFS, which do not dynamically adjust weights for various elements affecting scheduling performance, limiting their ability to optimize request processing order.

Innovation Solution

A memory controller with a request queue, scheduler, and weight generation circuit that calculates scores for requests based on variable weights, allowing for dynamic control of scheduling rules to improve performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed scheduling method (FCFS or FR-FCFS) is used, then the scheduling rule is simple and easy to implement, but the scheduling performance cannot be optimized for different scenarios

Engineering Contradiction:
Improvescheduling performanceVSAvoidscheduling rule complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies dynamics by making the scheduling weights variable rather than fixed. The weight generation circuit dynamically adjusts weights for different request types (read/write, sequential/random, hot/cold data) based on current system state and workload characteristics, allowing the scheduling policy to adapt to changing conditions while maintaining a manageable computational structure through predefined weight adjustment rules

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of scheduling by introducing adjustable weights that modify the score calculation formula. Different weight combinations enable various scheduling behaviors (e.g., prioritizing reads over writes, favoring sequential access patterns), allowing performance optimization across different scenarios without requiring multiple separate scheduling algorithms

Inventive Principle:
Principle #35Parameter changes

2Productivity

If variable weights are introduced to optimize scheduling performance, then scheduling efficiency improves, but the device complexity increases due to additional weight generation circuit

Engineering Contradiction:
Improvescheduling efficiencyVSAvoidcircuit structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The weight generation circuit serves multiple functions: it generates base weights for different request types, adjusts weights based on workload characteristics, and provides configurable parameters for different scheduling scenarios. This multi-functionality justifies the added complexity by consolidating what would otherwise require multiple separate scheduling algorithms into a single unified framework

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent uses parameter changes to enable flexible scheduling optimization. By adjusting the weight parameters in the score calculation, the system can optimize for different priorities (read vs. write, sequential vs. random access) without changing the fundamental scheduling architecture, thereby improving efficiency with controlled complexity

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9792065B2Memory controller scheduling requests according to scores
Publication Date: 2017.10.17 SK HYNIX INC
  • US9792065B2 patent drawing
  • US9792065B2 patent drawing
  • US9792065B2 patent drawing

AI summary

A memory controller schedules requests to memory devices according to scores. For this purpose, the memory controller variably adjusts weights for determining the scores with respect to the requests, calculates the scores using the weights, and determines a processing order of the requests according to the scores. The memory controller includes a request queue, a scheduler, and a weight generation circuit. The request queue stores the requests provided from an external device. The scheduler calculates a score for each request included in the request queue and determines the processing order of the requests based on the scores for the requests. The weight generation circuit generates a weight vector including the weights used to calculate the scores.