Storage Device Anticipatory Data Loading in Shared Memory Buffer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flash memory devices require an erase operation before writing data, leading to inefficiencies in sequential input/output processing, which can hinder the use of file systems in general hard disk environments and necessitate optimized interfaces for SSDs to manage memory resources effectively.

Innovation Solution

Implementing an anticipatory load operation in storage devices connected to a host through an interface sharing a memory buffer, where the storage device anticipates and pre-loads data expected to be requested by the host, allowing for efficient data management and movement within the host memory buffer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If flash memory is used as auxiliary memory device, then storage capacity is improved, but sequential input/output processing efficiency deteriorates due to erase operation requirement

Engineering Contradiction:
Improvestorage capacityVSAvoidsequential input/output processing efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The storage controller performs preliminary actions by anticipating data access patterns and pre-loading data into the host memory buffer before the host actually requests it. This is achieved through analyzing access commands to predict future data needs and proactively transferring data, thereby eliminating the need for sequential read operations and improving productivity while maintaining flash memory's storage capacity.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If data is loaded sequentially into memory buffer, then memory resource management is simplified, but access speed deteriorates

Engineering Contradiction:
Improvememory resource management complexityVSAvoiddata access speed
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

Instead of loading data sequentially only when requested, the storage controller anticipates future data access needs and pre-loads data into the memory buffer proactively. This preliminary action allows the host to access data faster when needed, as the data is already prepared in the buffer, thereby increasing access speed without significantly complicating memory resource management.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The storage controller analyzes access commands from the host to identify data access patterns and uses this feedback to predict future requests. By continuously monitoring and adapting to the host's access behavior, the system can optimize which data to pre-load, improving access speed while maintaining manageable complexity through intelligent feedback-driven decisions.

Inventive Principle:
Principle #23Feedback

3Device complexity

If memory buffer is shared between host and storage device, then interface complexity is reduced, but data management difficulty increases

Engineering Contradiction:
Improveinterface complexityVSAvoiddata management ease
Core Design Contradiction:
Device complexityVSEase of operation

Solution Approach 1:

The storage controller performs self-service by autonomously analyzing access commands, predicting future data requests, and proactively loading data into the shared memory buffer without requiring constant host intervention. This self-service capability simplifies the interface by allowing the storage device to manage its own data loading operations, while the host simply issues access commands without needing to manually manage buffer contents.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10061521B2Storage device and method of operating the same
Publication Date: 2018.08.28 SAMSUNG ELECTRONICS CO LTD
  • US10061521B2 patent drawing
  • US10061521B2 patent drawing
  • US10061521B2 patent drawing

AI summary

An operation method of a storage device, which is connected to a host through an interface sharing a memory buffer of the host, includes receiving an access command from the host, anticipating data that is expected to be requested by the host with reference to the access command, reading out the anticipated data from a nonvolatile memory device and loading the read data to a first area of the memory buffer, and in a case of being requested to load the anticipated data into a second area of the memory buffer by the host, moving the anticipated data from the first area to the second area.