SSD Memory Command Scheduling via Historical Execution Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Solid State Disk (SSD) devices lack the performance enhancement techniques provided by Native Command Queuing (NCQ) due to their absence of mechanical moving parts, which are inherent in Hard Disk Drives (HDDs).

Innovation Solution

Implementing a memory system that maintains a queue of memory commands, compares local information associated with upcoming commands to previously executed commands, and selects the command with the shortest expected blocking time for execution, utilizing channel, way, Direct Memory Access (DMA) time, and address translation information to optimize command execution order.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If Native Command Queuing (NCQ) is used to optimize command execution order, then performance is improved in HDDs, but SSDs cannot benefit from this technology due to their lack of mechanical moving parts

Engineering Contradiction:
Improvecommand execution efficiencyVSAvoidapplicability across different storage device types
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent replaces the mechanical movement-based optimization of NCQ (designed for HDD head positioning) with a software-based command scheduling system that uses historical execution data and channel utilization information to optimize command ordering for SSDs, which have no mechanical moving parts

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent changes the optimization parameters from mechanical positioning metrics (head movement distance) to SSD-relevant parameters such as channel utilization, command blocking time, and historical execution patterns, allowing the same command queuing concept to be adapted for different storage device architectures

Inventive Principle:
Principle #35Parameter changes

2Productivity

If commands are executed in the order they are received, then implementation is simple, but waiting times increase and performance is reduced

Engineering Contradiction:
Improvecommand execution speedVSAvoidcommand blocking time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary analysis of command characteristics and maintains a history of previously executed commands to predict optimal execution order, selecting commands with shortest expected blocking time before execution begins, thereby reducing waiting time and improving throughput

Inventive Principle:
Principle #10Preliminary action

3Productivity

If command scheduling based on historical data is implemented, then execution efficiency is improved, but system complexity increases

Engineering Contradiction:
Improvememory command execution efficiencyVSAvoidcommand scheduling system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The command scheduling system serves itself by automatically learning from historical execution patterns and making autonomous decisions about command ordering based on channel utilization and blocking time predictions, without requiring complex external control or manual configuration

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8411496B2Systems and methods for scheduling a memory command for execution based on a history of previously executed memory commands
Publication Date: 2013.04.02 SAMSUNG ELECTRONICS CO LTD
  • US8411496B2 patent drawing
  • US8411496B2 patent drawing
  • US8411496B2 patent drawing

AI summary

A memory system is operated by maintaining a queue of memory commands to be executed, maintaining a list of previously executed memory commands, comparing local information associated with the commands to be executed with local information associated with the list of previously executed commands, and selecting one of the commands for execution from the queue of memory commands to be executed based on a result of the comparison.