Memory Controller Flush Delay Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory controllers face inefficiencies in handling flush requests, particularly in optimizing Input/Output Operations Per Second (IOPS) due to the lack of effective mechanisms for determining and managing delay times based on the number of write requests, leading to suboptimal performance in storage devices like SSDs and flash memories.

Innovation Solution

A memory controller is designed with a delay time determiner that generates delay information based on the number of write requests between flush requests, allowing for optimized delay times in responding to flush requests, thereby improving IOPS by buffering and merging write commands and delaying flush responses accordingly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the memory controller immediately responds to flush requests, then the response time is reduced, but the IOPS performance deteriorates due to inability to buffer and merge write commands

Engineering Contradiction:
Improveflush response timeVSAvoidIOPS performance
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The memory controller performs preliminary buffering of write commands before executing flush operations. When a flush request is received, the controller checks if there are pending write commands in the buffer and delays the flush response until the buffer is emptied, allowing write commands to be merged and processed together, thereby improving IOPS without significantly increasing flush response time

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The memory controller dynamically adjusts the flush response timing based on the number of pending write commands. The delay time determiner generates dynamic delay information based on real-time buffer status, allowing the system to adaptively optimize between response time and IOPS performance under different workload conditions

Inventive Principle:
Principle #15Dynamics

2Productivity

If the memory controller buffers write commands to improve IOPS, then the throughput increases, but the device complexity increases due to additional delay time determination mechanisms

Engineering Contradiction:
ImproveIOPSVSAvoidcontroller structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The delay time determiner is integrated into the existing memory controller architecture and serves multiple functions: it determines delay timing for flush responses, monitors buffer status, and coordinates with the flush command generator. This multi-functional design avoids adding separate dedicated components, thereby improving IOPS while minimizing the increase in device complexity

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

Solution Approach 2:

The memory controller uses its own internal resources (buffer memory, command queues, and existing control logic) to implement the write command buffering and flush delay mechanisms. The controller self-manages the delay timing based on its own buffer status without requiring external control components, thereby improving IOPS while keeping the complexity increase minimal

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11243715B2Memory controller and operating method thereof
Publication Date: 2022.02.08 SK HYNIX INC
  • US11243715B2 patent drawing
  • US11243715B2 patent drawing
  • US11243715B2 patent drawing

AI summary

A memory controller for processing a flush request includes: a request message controller configured to generate a command or control signal in response to a request of a host, a delay time determiner configured to, when the request is a current flush request, generate delay information based on a number of write requests between a last received flush request before the current flush request and the received flush request and a response message controller configured to generate a flush response corresponding to the received flush request message based on the delay information.