Memory Controller ECC Segmentation for Low-Latency Read Output

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Memory systems face challenges in efficiently performing Error Correction Code (ECC) operations on read data without increasing read latency, particularly due to the limitations in processing speed and write command handling by memory controllers.

Innovation Solution

A memory system and method that involve a memory controller performing two-step ECC encoding operations: a first ECC encoding on read data in response to a read command and a second ECC encoding on counted write command data in response to a send command, combining the results to output read data, thereby enhancing processing efficiency and reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a single-step ECC encoding is performed on read data in response to a read command, then the ECC operation is simple and fast, but the reliability is insufficient for handling write command counting data

Engineering Contradiction:
Improvedata integrityVSAvoidECC operation complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The ECC encoding operation is divided into two separate encoding steps: a first ECC encoding performed on read data in response to a read command, and a second ECC encoding performed on counted data (write command count) in response to a send command. This segmentation allows each encoding to be optimized independently, improving overall reliability without excessive complexity in any single operation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The first ECC encoding is performed on read data before the send command is received, preparing the data in advance. This preliminary action allows the counted data to be encoded separately in response to the send command, ensuring both data types are properly protected without interfering with each other's timing requirements.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If ECC operations are performed at high speed to reduce latency, then the read latency is reduced, but the processing accuracy may be compromised

Engineering Contradiction:
Improveread latencyVSAvoidECC encoding accuracy
Core Design Contradiction:
Loss of timeVSMeasurement precision

Solution Approach 1:

By separating the ECC encoding into two distinct operations performed at different times, the system can optimize each for its specific timing requirements. The first ECC encoding on read data can be performed with standard timing, while the second ECC encoding on counted data is performed later in response to the send command, avoiding timing conflicts and ensuring accuracy without excessive latency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The first ECC encoding is performed in advance on the read data before the send command arrives. This preliminary encoding ensures the data is ready and verified early, allowing the system to respond to send commands with already-processed data, thereby reducing overall latency while maintaining encoding accuracy.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If the memory controller handles write commands sequentially to maintain accuracy, then the write command processing is reliable, but the productivity is reduced

Engineering Contradiction:
Improvecommand processing throughputVSAvoidwrite command counting accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The counting of write commands is extracted as a separate function from the ECC encoding operation. The command counting unit continuously counts write commands independently, and this counted data is then used as input for the second ECC encoding. This extraction allows the counting to occur continuously without blocking other operations, improving productivity while maintaining accuracy through dedicated counting logic.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The write command counting is performed continuously and preliminarily, accumulating the count before it is needed for the send command response. This preliminary counting eliminates the need to pause processing to perform the count, maintaining high productivity while ensuring accurate count data is ready when the send command arrives.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If a multi-step ECC operation is performed with separate sub-operations, then the data reliability is improved, but the operation time increases

Engineering Contradiction:
Improveread data integrityVSAvoidECC operation duration
Core Design Contradiction:
ReliabilityVSDuration of action of moving object

Solution Approach 1:

The first ECC encoding on read data is performed as a preliminary action in response to the read command, before the send command is even received. This overlapping timing ensures that part of the ECC operation is completed in advance, reducing the critical path delay and minimizing the impact on overall operation time despite the multi-step nature of the ECC process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10680656B2Memory controller, memory system including the same, and operation method thereof
Publication Date: 2020.06.09 MIMIRIP LLC
  • US10680656B2 patent drawing
  • US10680656B2 patent drawing
  • US10680656B2 patent drawing

AI summary

A memory controller includes a command input unit suitable for receiving a write command, a read command, and a send command, a command counting unit suitable for performing a counting operation in response to the write command to produce a counted data, a first Error Correction Code (ECC) encoding unit suitable for performing a first ECC encoding onto a data that is read from a memory device in response to the read command to produce a first ECC encoded data, a second ECC encoding unit suitable for performing a second ECC encoding onto the counted data in response to the send command to produce a second ECC encoded data, and a data output unit suitable for combining the first ECC encoded data and the second ECC encoded data to output a read data.