SSD Controller Offloaded File Reads to Reduce Layer Latency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing file read operations in SSDs involve multiple system software layers, leading to increased latency that affects user experience in applications such as gaming and online shopping.
Innovation Solution
Direct file read requests are sent to an SSD controller, bypassing system software layers by maintaining an offloaded file table (OFT) that maps file pointers to logical block addresses, allowing direct conversion to physical block addresses within the SSD.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If file read operations go through multiple system software layers, then file management and access operations can be performed with comprehensive control, but file read latency increases affecting application performance
Solution Approach 1:
The patent segments the file read operation into two distinct paths: a control path for file management operations that goes through the file system layer, and a direct read path for data retrieval that bypasses the file system layer and accesses the storage device directly through the host interface. This segmentation allows comprehensive file management control to be maintained while eliminating unnecessary latency in the data read path.
Solution Approach 2:
The patent introduces an intermediary mechanism in the form of a direct host interface that enables applications to communicate directly with the storage device controller, bypassing the intermediate file system layer for read operations. This intermediary path maintains the benefits of file system management while reducing the latency introduced by multiple software layers.
2Loss of time
If direct read path is implemented to reduce latency, then file read latency is reduced improving application performance, but system complexity increases due to multiple access paths
Solution Approach 1:
The storage device controller is designed with multi-functionality to handle both traditional file system-mediated read operations and direct host interface read operations. The controller can selectively process read requests from either path, making the system universally capable of handling different access patterns without requiring separate dedicated hardware paths.
Solution Approach 2:
The patent extracts the data read function from the file system layer and places it directly in the host interface path. By taking out the essential data retrieval function from the complex file system software stack and placing it in a direct hardware path, the system reduces latency while the file system layer retains its necessary control functions.
3Productivity
If metadata is stored in the first region and user data in the second region, then data organization and access efficiency are improved, but storage device complexity increases
Solution Approach 1:
The storage device divides its storage medium into distinct segments: a first region dedicated to metadata storage and a second region dedicated to user data storage. This segmentation allows the system to efficiently manage different types of data with appropriate access patterns, improving data access efficiency while maintaining clear organizational boundaries.
Solution Approach 2:
The controller acts as an intermediary that manages the relationship between the metadata region and user data region. It uses the metadata from the first region to efficiently locate and retrieve user data from the second region, reducing the complexity burden on the host system while maintaining high data access efficiency.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Methods and devices are provided in which a controller (706) of a storage device (704) receives a read command including at least a file pointer of a file, from an application at a host device (702). The controller (706) retrieves a physical block address (PBA) list associated with file data from a table maintained at the controller (706) using the file pointer. The controller (706) reads data from a memory using the PBA list, and provides the file data to the application at the host device (702).