Dynamic Buffer Prefetching for Mass Storage Read Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for optimizing host sequential reads and writes in mass storage devices do not account for the volume of data transfer, leading to issues such as buffer underrun or overflow, inefficiencies in data prefetching, and suboptimal use of buffer memory.

Innovation Solution

Implementing a method that pre-fetches and flushes data based on a threshold volume, using a buffer memory to store and manage data streams, where data is pre-fetched or flushed only when the threshold is reached, and adjusting the volume of data transferred dynamically to match host requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is pre-fetched every time an I/O read occurs regardless of data size, then the buffer memory is replenished continuously, but the buffer memory will eventually underrun when host requests more data than is pre-fetched

Engineering Contradiction:
Improvebuffer availabilityVSAvoiddata transfer efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system dynamically adjusts the pre-fetch volume parameter based on the actual data transfer volume. When the host requests a certain volume of data, the system pre-fetches a calculated portion (e.g., 50% of the requested volume) rather than a fixed amount, allowing the buffer to be replenished appropriately without causing underrun or overflow conditions

Inventive Principle:
Principle #35Parameter changes

2Reliability

If data is pre-fetched every time an I/O read occurs regardless of data size, then predictive buffering is activated continuously, but the buffer memory will eventually overrun when host requests less data than is pre-fetched

Engineering Contradiction:
Improvepredictive bufferingVSAvoidbuffer memory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system changes the pre-fetch volume parameter dynamically based on host read patterns. By calculating the pre-fetch volume as a function of the actual data requested (e.g., 50% of requested volume), the system prevents buffer overflow while maintaining effective predictive buffering for sequential read patterns

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system monitors actual host read behavior and uses this feedback to adjust pre-fetch operations. When the host reads less data than expected, the system reduces pre-fetch volume accordingly, preventing buffer overflow while maintaining the benefits of predictive buffering

Inventive Principle:
Principle #23Feedback

3Device complexity

If a fixed pre-fetch volume is used regardless of host read patterns, then the buffer management is simplified, but the system cannot adapt to varying data transfer requirements

Engineering Contradiction:
Improvebuffer managementVSAvoiddata transfer adaptation
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The system implements dynamic parameter adjustment where the pre-fetch volume is calculated based on actual host read patterns. This allows the buffer management to adapt automatically to varying data transfer requirements without complex manual configuration, maintaining simplicity while achieving adaptability

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9817761B2Methods, systems, and computer readable media for optimization of host sequential reads or writes based on volume of data transfer
Publication Date: 2017.11.14 SANDISK TECHNOLOGIES LLC
  • US9817761B2 patent drawing
  • US9817761B2 patent drawing
  • US9817761B2 patent drawing

AI summary

A method for optimization of host sequential reads based on volume of data includes, at a mass data storage device, pre-fetching a first volume of predicted data associated with an identified read data stream from a data store into a buffer memory different from the data store. A request for data from the read data stream is received from a host. In response, the requested data is provided to the host from the buffer memory. While providing the requested data to the host from the buffer memory, it is determined whether a threshold volume of data has been provided to the host from the data buffer memory. If so, a second volume of predicted data associated with the identified read data stream is pre-fetched from the data store and into the buffer memory. If not, additional predicted data is not pre-fetched from the data store.