Memory Controller Command Scheduling for Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In memory systems with mixed read and write operations, the frequent switching between processes leads to increased overhead and performance degradation, resulting in reduced throughput for both read and write processes.

Innovation Solution

Implementing a memory system with separate queues for read and write commands and a throughput-oriented scheduler that processes commands in dedicated blocks, allowing for continuous processing of either read or write commands for defined time periods to minimize switching overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the controller frequently switches between read process and write process to handle mixed I/O commands, then the responsiveness to host commands is improved, but the overhead increases and performance degrades

Engineering Contradiction:
Improveresponsiveness to mixed I/O commandsVSAvoidthroughput of read and write processes
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the processing of I/O commands by separating read commands and write commands into different queues (read queue and write queue). This allows the controller to manage read and write operations independently, reducing the overhead of frequent context switching while maintaining responsiveness to mixed I/O commands from the host.

Inventive Principle:
Principle #1Segmentation

2Productivity

If the controller shares resources between read process and write process, then the resource utilization is improved, but the overhead from arbitration and context switching increases

Engineering Contradiction:
Improveresource utilizationVSAvoidoverhead from arbitration and context switching
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent divides shared resources into dedicated resource sets for read operations and write operations. By allocating specific resources to each process type and managing them through separate queues, the controller eliminates the need for frequent arbitration and context switching, thereby reducing overhead while maintaining high resource utilization.

Inventive Principle:
Principle #1Segmentation

3Speed

If the controller prioritizes read operations by suspending write process, then the read performance is improved, but the write performance degrades significantly

Engineering Contradiction:
Improveread speedVSAvoidwrite throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent segments the command processing into independent read and write queues, allowing each queue to be processed without interfering with the other. This eliminates the need to suspend write operations to prioritize reads, as both can proceed independently through their respective queues, maintaining performance for both read and write processes.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12124707B2Memory system
Publication Date: 2024.10.22 KIOXIA CORP
  • US12124707B2 patent drawing
  • US12124707B2 patent drawing
  • US12124707B2 patent drawing

AI summary

A memory controller of a memory system classifies input and output commands issued by a host into a group of read commands and a group of write commands, and manages the group of read commands and the group of write commands using first and second queues, respectively. The controller continuously processes a first group of commands among the group of read commands and the group of write commands until a first time period has elapsed from a start of the continuous processing of the first group of commands. In response to the first time period having elapsed, the controller switches a process target from the first group of commands to a second group of commands that is different from the first group of commands and selected among the group of read commands and the group of write commands.