Pointer Buffer Management for Flash Memory Data Transfer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In systems using flash memory with PCIe host interfaces, the increasing number of pointers required for larger data sizes leads to memory capacity issues and inefficiencies in data transfer operations, as storage devices need to acquire multiple pointers from the host device to execute commands effectively.

Innovation Solution

A memory system with a non-volatile memory and a dual-controller architecture, where a first controller buffers commands and determines whether pointers can be stored in a second buffer, allowing for efficient data transfer only when sufficient buffer capacity is available, thereby reducing memory requirements and improving processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the storage device acquires all pointers corresponding to a command from the host device, then the command execution capability is improved, but the memory capacity requirement increases

Engineering Contradiction:
Improvecommand execution capabilityVSAvoidmemory capacity
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The storage device preliminarily acquires and stores pointers in a pointer buffer before command execution is actually needed. This allows the device to have pointers ready when commands arrive, improving execution capability without requiring all pointers to be simultaneously available in host memory. The buffer pre-stores pointers that may be needed, enabling faster command processing while using manageable memory capacity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A pointer buffer is introduced as an intermediary component between the host device memory and the command execution logic. Instead of directly accessing all pointers in host memory when a command needs to be executed, the storage device uses this intermediate buffer to store and manage pointers. This mediator allows efficient command execution by providing quick access to needed pointers while avoiding the need to maintain large amounts of pointer storage capacity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the data region size is increased to handle larger data transfers, then the data transfer capability is improved, but the number of pointers increases leading to higher memory requirements

Engineering Contradiction:
Improvedata transfer capabilityVSAvoidnumber of pointers
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The pointer management function is extracted from the main command execution path and placed in a dedicated pointer buffer. This separation allows the data transfer capability to be enhanced by processing larger data regions without proportionally increasing the overhead of pointer management. The extracted pointer buffer handles the increased number of pointers efficiently, allowing large data transfers while keeping the system's memory requirements manageable.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of directly managing all pointers for large data regions in host memory, the storage device creates a copy of necessary pointers in its local pointer buffer. This copying mechanism allows the device to work with a subset of pointers locally, enabling efficient handling of large data transfers without requiring the full set of pointers to be simultaneously accessible, thus reducing the effective memory capacity needed for pointer management.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9423979B2Memory system and memory controller for determining whether one or plurality of pointers can be stored in a second buffer and for executing data transfer between data buffer and host using the pointers
Publication Date: 2016.08.23 KIOXIA CORP
  • US9423979B2 patent drawing
  • US9423979B2 patent drawing
  • US9423979B2 patent drawing

AI summary

According to one embodiment, a first controller determines whether one or a plurality of pointers corresponding to a buffered command can be stored in a second buffer. The first controller stores the pointers in the second buffer when the pointers can be stored in the second buffer. The first controller causes a second controller to execute the command and to perform data transfer between a non-volatile memory and a data buffer, and executes data transfer between the data buffer and a host using the pointers stored in the second buffer.