Memory Controller Packet Alignment for Host Boundary Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In memory systems using nonvolatile memories, data transmission across host memory boundaries can lead to increased access overhead due to misalignment of data with access boundaries, particularly when using transaction-layer packets (TLPs) in NVMe and PCIe specifications.

Innovation Solution

A memory system with a controller that ensures address alignment by transmitting data in packets that span from the designated location to the next boundary, using a pool buffer to reconfigure commands and data to align with host access boundaries, thereby reducing the need for multiple writes and ECC parity regeneration.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If data is transmitted using TLP without address alignment, then transmission flexibility is improved, but access overhead increases when data crosses host memory boundaries

Engineering Contradiction:
Improvetransmission flexibilityVSAvoidaccess overhead
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The memory controller performs preliminary alignment of data with host memory access boundaries before transmission. By pre-adjusting the data positioning in the pool buffer to align with boundaries defined by the host's access unit, the system eliminates the need for additional overhead operations at the host side, thus resolving the contradiction between transmission flexibility and access overhead.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If data is aligned with host memory access boundaries, then access overhead is reduced, but transmission complexity increases due to boundary calculations

Engineering Contradiction:
Improveaccess overheadVSAvoidtransmission complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The pool buffer acts as an intermediary between the data source and the host memory. It absorbs the complexity of boundary alignment calculations and operations, providing a simplified interface to the host. The pool buffer handles the alignment adjustments internally, shielding the host from complexity while achieving reduced access overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If packet size is adjusted to align with boundaries, then data integrity is improved, but transmission efficiency decreases due to smaller packet sizes

Engineering Contradiction:
Improvedata integrityVSAvoidtransmission efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The transmission data is segmented into multiple packets, with the first packet containing data from the designated location to the next boundary and subsequent packets containing the remaining data. This segmentation ensures that each packet aligns with host memory access boundaries, improving data integrity while allowing the use of standard transmission protocols for each segment.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11880592B2Memory system adjusting packet size and method
Publication Date: 2024.01.23 KIOXIA CORP
  • US11880592B2 patent drawing
  • US11880592B2 patent drawing
  • US11880592B2 patent drawing

AI summary

According to one embodiment, a memory system includes a nonvolatile memory and a controller. The controller communicates with a host. The host includes a host memory and a circuit. The circuit accesses the host memory in a unit of first size. When an address designated as a first location of the host memory where data read from the nonvolatile memory is to be stored is not aligned with a boundary in the host memory defined in a unit of the first size, the controller transmits a first packet which has a size from the first location to the boundary and includes the read data to be stored from the first location, and transmits a second packet which has the first size and includes the read data to be stored from the boundary thereafter.