Buffer-Aligned Data Access for Storage Bandwidth Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In software-hardware collaborative systems, the inefficiency in accessing storage devices due to misalignment between the minimum operation unit of the file system and the storage device's physical address, leading to wasted bandwidth and reduced access efficiency.

Innovation Solution

A data accessing method that involves loading data into a buffer area aligned with the storage device's block size, determining if additional data can fit within the buffer, and splicing requests to maximize available bandwidth, thereby optimizing access efficiency by minimizing the need for repeated data loading and aligning data with storage device units.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If data is loaded from storage device to coprocessor directly without buffer alignment, then data transfer can proceed, but bandwidth is wasted and access efficiency is reduced due to misalignment between file system operation units and physical storage blocks

Engineering Contradiction:
Improvedata access efficiencyVSAvoidbandwidth utilization
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

A buffer is introduced as an intermediary component between the storage device and coprocessors. The buffer aligns data in units of physical storage blocks rather than file system operation units, enabling efficient data transfer that matches the storage device's native block structure and maximizing bandwidth utilization.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Data is pre-loaded into the buffer in aligned physical storage block units before being transferred to coprocessors. This preliminary alignment action ensures that subsequent data transfers can proceed efficiently without requiring real-time alignment calculations, improving overall access efficiency.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multiple coprocessors access the same storage device simultaneously, then parallel processing capability is utilized, but access port occupancy time increases and system efficiency decreases

Engineering Contradiction:
Improveparallel processing efficiencyVSAvoidaccess port occupancy time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The buffer serves as a mediator that decouples multiple coprocessors from direct simultaneous access to the storage device. Coprocessors can independently access data in the buffer while the buffer manages coordinated access to the storage device, reducing access port occupancy time and enabling more efficient parallel processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If data is transferred without using buffer alignment, then transfer process is simpler, but repeated data loading occurs and access speed decreases

Engineering Contradiction:
Improvedata access speedVSAvoiddata transfer process complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

Data alignment to physical storage block units is performed preliminarily in the buffer before transfer to coprocessors. This upfront alignment prevents the need for repeated data loading operations and real-time alignment calculations during active data transfer, thereby improving access speed despite the added buffer management complexity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11650754B2Data accessing method, device, and storage medium
Publication Date: 2023.05.16 KUNLUNXIN TECHNOLOGY (BEIJING) CO LTD
  • US11650754B2 patent drawing
  • US11650754B2 patent drawing
  • US11650754B2 patent drawing

AI summary

Embodiments of the present disclosure provide a data accessing method, a device and a storage medium. The method includes: obtaining a first accessing request and a second accessing request for a storage device; loading first data associated with the first accessing request from a source device to a pre-allocated buffer area with a size same as a size of a single physical storage block of the storage device; determining a first part of the second data when the first size of second data associated with the second accessing request is greater than or equal to the second size of an available space of the buffer area, a size of the first part being the same as the second size; and providing the first data and the first part to a target device associated with the first accessing request and the second accessing request.