QoS-Aware Memory Controller Traffic Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memory controllers have limited visibility and granularity in segregating traffic, leading to performance improvements only through coarse mechanisms like scheduling read operations before write operations, which restricts their ability to optimize memory access efficiently.

Innovation Solution

Implementing a memory controller that receives memory operations with quality of service (QoS) parameters from multiple sources, allowing it to schedule operations based on QoS levels and bandwidth sharing parameters, enabling finer granularity in traffic management and optimization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If memory controllers use coarse scheduling mechanisms (e.g., scheduling read operations before write operations), then basic memory access performance is improved, but the ability to optimize memory access at finer granularities is limited

Engineering Contradiction:
Improvememory access performanceVSAvoidtraffic segmentation granularity
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent divides memory traffic into multiple quality of service (QoS) classes (e.g., real-time, non-real-time, best-effort) and creates separate scheduling queues for each class. This segmentation enables the memory controller to handle different types of memory operations with different priority levels and timing requirements, thereby improving both performance and adaptability simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic scheduling decisions based on QoS parameters associated with each memory operation. The memory controller dynamically adjusts scheduling priorities based on the QoS class of each operation, allowing flexible adaptation to varying traffic patterns and performance requirements without being constrained by fixed coarse-grained scheduling rules.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If memory controllers lack QoS parameter support, then device complexity is reduced, but the ability to discern relative requirements between different memory requests is limited

Engineering Contradiction:
Improvememory request differentiationVSAvoidQoS parameter handling
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent makes the memory controller universally applicable to multiple traffic types by incorporating QoS parameter handling capability. The same memory controller can now serve real-time, non-real-time, and best-effort traffic streams, making it multi-functional and adaptable to diverse memory access patterns without requiring separate specialized controllers for each traffic type.

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

Solution Approach 2:

The patent introduces QoS parameters as additional attributes that can be attached to memory operations. By changing the parameter space from basic memory operations to QoS-aware operations, the memory controller gains the ability to differentiate and prioritize requests based on their service requirements, enhancing adaptability while managing complexity through standardized parameter handling.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9135072B2QoS-aware scheduling
Publication Date: 2015.09.15 APPLE INC
  • US9135072B2 patent drawing
  • US9135072B2 patent drawing
  • US9135072B2 patent drawing

AI summary

In an embodiment, a memory controller includes multiple ports. Each port may be dedicated to a different type of traffic. In an embodiment, quality of service (QoS) parameters may be defined for the traffic types, and different traffic types may have different QoS parameter definitions. The memory controller may be configured to schedule operations received on the different ports based on the QoS parameters. In an embodiment, the memory controller may support upgrade of the QoS parameters when subsequent operations are received that have higher QoS parameters, via sideband request, and/or via aging of operations. In an embodiment, the memory controller is configured to reduce emphasis on QoS parameters and increase emphasis on memory bandwidth optimization as operations flow through the memory controller pipeline.