Memory Sub-System Dynamic Command Scheduling Bandwidth

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional memory sub-systems implementing the first-ready, first-come, first-serve (FRFCFS) command scheduling policy with read priority suffer from reduced bandwidth due to bus turnaround penalties and inefficient handling of read and write commands, particularly when dealing with read-modify-write transactions and commands accessing the same memory bank.

Innovation Solution

The memory sub-system prioritizes commands based on the number of bank accesses, adjusting the priority of write and read commands to optimize bandwidth by considering the readiness of other commands in the queue and using threshold parameters to trade off latency for increased bandwidth.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the FRFCFS command scheduling policy with read priority is implemented, then read latency is reduced, but bandwidth is reduced due to bus turnaround penalties

Engineering Contradiction:
Improveread latencyVSAvoidbandwidth
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent implements dynamic command scheduling that adapts based on queue conditions. The controller dynamically adjusts scheduling behavior by evaluating the number of ready commands in queues and selectively applying FRFCFS with read priority only when beneficial, otherwise falling back to standard FRFCFS to avoid bus turnaround penalties and maintain bandwidth.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the scheduling parameter based on system state. By monitoring the number of ready commands and their types (read vs. write), the system dynamically selects between different scheduling policies (FRFCFS with read priority vs. standard FRFCFS), effectively changing the scheduling parameter to optimize for either latency or bandwidth depending on current conditions.

Inventive Principle:
Principle #35Parameter changes

2Speed

If read commands are prioritized in the command queue, then read performance is improved, but write command throughput decreases due to frequent bus turnarounds

Engineering Contradiction:
Improveread performanceVSAvoidwrite command throughput
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The system dynamically adjusts read command prioritization based on the state of the command queue. When there are many ready read commands, FRFCFS with read priority is applied to improve read performance. When write commands dominate or bus turnaround would be frequent, the system reduces read prioritization to maintain write throughput, creating a dynamic balance between the two performance metrics.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If commands are scheduled strictly by arrival order (FRFCFS), then scheduling simplicity is maintained, but bandwidth efficiency decreases due to suboptimal command sequencing

Engineering Contradiction:
Improvescheduling simplicityVSAvoidbandwidth efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent introduces dynamic decision-making into the FRFCFS scheduler. The controller dynamically evaluates whether to apply read priority based on the number of ready commands and their types. This dynamic approach maintains the simplicity of FRFCFS while adding conditional logic to improve bandwidth efficiency when appropriate, avoiding the complexity of fully adaptive schedulers.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11625197B2Memory sub-system for increasing bandwidth for command scheduling
Publication Date: 2023.04.11 MICRON TECHNOLOGY INC
  • US11625197B2 patent drawing
  • US11625197B2 patent drawing
  • US11625197B2 patent drawing

AI summary

Initialization is performed based on the commands received at the command queue. To perform initialization, a bank touch count list that includes a list of banks being accessed by the commands and a bank touch count for each of the banks in the list is updated. The bank touch count identifies the number of commands accessing each of the banks. The bank touch count list is updated by assigning a bank priority rank to each of the banks based on their bank touch count, respectively. Once initialized, the commands in the command queue are scheduled by inserting each of the commands into priority queues based on the bank touch count list.