Memory Controller Command Suspension for Execution Delay Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory systems face delays in processing commands due to the execution of commands handling large amounts of data, which can degrade performance and response times for other commands.

Innovation Solution

A memory system and operating method that allow a host to control the execution order of commands by suspending or aborting commands upon receiving a lock request, with the option to resume execution based on an unlock request or a predetermined suspend time, enabling prioritization of smaller data commands over larger ones.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If commands are processed in input order, then processing simplicity is maintained, but execution time for smaller commands is delayed due to large data commands

Engineering Contradiction:
Improvecommand processing throughputVSAvoidexecution delay for smaller commands
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by checking for lock requests before executing commands. When a lock request is detected for a command handling large data, the system suspends that command's execution in advance, allowing smaller commands to be processed first. This preliminary suspension action prevents the time loss for smaller commands without disrupting the overall processing flow.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If large data commands are executed first, then data processing efficiency is maximized, but response time for subsequent smaller commands deteriorates

Engineering Contradiction:
Improvedata processing efficiencyVSAvoidresponse speed for smaller commands
Core Design Contradiction:
ProductivityVSSpeed

Solution Approach 1:

The system dynamically adjusts command execution order based on real-time lock request status. Instead of a fixed processing order, the memory controller continuously monitors for lock requests and dynamically suspends or aborts large data commands when needed. This dynamic adaptation allows the system to maintain high data processing efficiency for large commands while ensuring fast response times for smaller commands that may require suspension.

Inventive Principle:
Principle #15Dynamics

3Device complexity

If command execution order is fixed, then system complexity is reduced, but flexibility in managing command priorities is limited

Engineering Contradiction:
Improvecommand management complexityVSAvoidcommand priority control flexibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system introduces lock requests as an intermediary mechanism between the host and command execution. Instead of implementing a complex priority queue or scheduling algorithm, the host can simply issue lock requests for specific commands. The memory controller acts as a mediator that interprets these lock requests and automatically suspends or aborts the targeted commands. This intermediary approach provides flexible priority control while keeping the overall system complexity low.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11775214B2Memory system for suspending and resuming execution of command according to lock or unlock request, and operating method thereof
Publication Date: 2023.10.03 SK HYNIX INC
  • US11775214B2 patent drawing
  • US11775214B2 patent drawing
  • US11775214B2 patent drawing

AI summary

Embodiments of the present disclosure relate to a memory system and an operating method thereof. According to the embodiments of the present disclosure, the memory system may fetch a first command from the host into a command queue, suspend execution of the first command when receiving a lock request for the first command from the host, and resume the execution of the first command when receiving an unlock request for the first command or after the first command is suspended for an amount of time corresponding to a suspend time value transmitted together with the lock request.