IP Library Granted Patent US 12710871
Granted Patent B2
US 12710871 · App. 17/504,006 · Granted Aug 18, 2026

Methods and devices for file read latency reduction

Inventor: Ramdas P. Kachare (Pleasanton, CA)
Assignee: Samsung Electronics Co., Ltd
G06F3/0611G06F3/0655G06F3/0679
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12710871
App. No.
17/504,006
Granted
Aug 18, 2026
Kind
B2
Abstract

Methods and devices are provided in which a controller of a storage device receives a read command including at least a file pointer of a file, from an application at a host device. The controller retrieves a physical block address (PBA) list associated with file data from a table maintained at the controller using the file pointer. The controller reads data from a memory using the PBA list, and provides the file data to the application at the host device.

Claims (53)

1 . A method of a storage device, comprising:

receiving, from an application at a host device, at a controller of the storage device, a read command generated using an application programming interface (API), the read command comprising at least a file pointer of a file, an amount of file data to be read from the memory and a file read offset;

retrieving, at the controller, a physical block address (PBA) list associated with the file data from a table maintained at the controller using the file pointer;

reading, by the controller, the file data from a memory using the PBA list, and providing the file data, from the controller, to the application at the host device;

receiving, by the controller, a logical block address (LBA) list for entries of the table stored at the controller, from the host device;

determining, by the controller, a first entry of the table from the LBA list that is in a first state and a second entry of the table from the LBA list that is in a second state; and

modifying, by the controller, the second entry of the table with corresponding PBA list information retrieved from a flash translation layer (FTL) table.

2 . The method of claim 1 , wherein the read command comprises a non-volatile memory express (NVMe) command.

3 . The method of claim 1 , wherein the table comprises an offloaded file table (OFT) that comprises at least one of a file pointer column, an LBA list column, a PBA list column, and a file read offset column.

4 . The method of claim 3 , wherein the file data is provided to the application using the file read offset column.

5 . The method of claim 1 , wherein the file data is provided to the application using the file read offset of the command, and the file read offset column is updated using the file read offset of the command.

6 . The method of claim 3 , wherein receiving the LBA list comprises

receiving, from the host device, at the controller, an updated file pointer-LBA list mapping for the second entry of the OFT, and further comprising:

retrieving, by the controller, the PBA list information from the FTL table based on the updated mapping.

7 . The method of claim 3 , further comprising:

detecting, by the controller, a change in a PBA-LBA mapping in an entry of the OFT due to a garbage collection process;

retrieving LBA list information from the entry of the OFT;

retrieving, by the controller, PBA list information from the FTL table based on the retrieved LBA list information; and

updating, by the controller, the entry of the OFT with the retrieved PBA list information.

8 . A storage device, comprising:

a controller; and

a storage medium,

wherein the controller is configured to:

receive, from an application at a host device, a read command generated using an application programming interface (API), the read command comprising at least a file pointer of a file, an amount of file data to be read from the storage medium and a file read offset;

retrieve a physical block address (PBA) list associated with the file data from a table maintained at the controller using the file pointer;

read the file data from the storage medium using the PBA list, and provide the data to the application at the host device;

receive a logical block address (LBA) list for entries of the table stored at the controller, from the host device;

determine, by the controller, a first entry of the table from the LBA list that is in a first state and a second entry of the table from the LBA list that is in a second state; and

modify the second entry of the table with corresponding PBA list information retrieved from a flash translation layer (FTL) table.

9 . The storage device of claim 8 , wherein the read command is a non-volatile memory express (NVMe) command.

10 . The storage device of claim 8 , wherein the table is an offloaded file table (OFT) that comprises at least one of a file pointer column, an LBA list column, a PBA list column, and a file read offset column.

11 . The storage device of claim 10 , wherein the file data is provided to the application using the file read offset column.

12 . The storage device of claim 10 , wherein the file data is provided to the application using the file read offset of the command, and the file read offset column is updated using the file read offset of the command.

13 . The storage device of claim 10 , wherein:

in receiving the LBA list, the controller is further configured to:

receive, from the host device, an updated file pointer-LBA list mapping for the second entry of the OFT; and

the controller is further configured to:

retrieve the PBA list information from the FTL table based on the updated mapping.

14 . The storage device of claim 10 , further comprising:

detect a change in a PBA-LBA mapping in an entry of the OFT due to a garbage collection process;

retrieve LBA list information from the entry of the OFT;

retrieve PBA list information from the FTL table based on the retrieved LBA list information; and

update the entry of the OFT with the retrieved PBA list information.

15 . A method of a host device, comprising:

sending, from an application at the host device, to a controller of a storage device, a read command generated using an application programming interface (API), the read command comprising at least a file pointer of a file comprising file data for the application, an amount of file data to be read and a file read offset; and

receiving, from the controller, at the application, the file data retrieved by the controller using a table maintained at the controller that associates file pointers with physical block address (PBA) lists for file data and using the file read offset to determine a portion of the file data to return; and

sending, from the host device to the controller, a logical block address (LBA) list for entries of the table to the controller to determine a first entry of the table from the LBA list that is in a first state and a second entry of the table from the LBA list that is in a second state, and to modify the second entry with corresponding PBA list information retrieved from a flash translation layer (FTL) table.

16 . The method of claim 15 , wherein the read command is a non-volatile memory express (NVMe) command.

17 . The method of claim 15 , wherein the table is an offloaded file table (OFT) that comprises a file pointer column, an LBA list column, a PBA list column, and a file read offset column.

18 . The method of claim 17 , wherein sending the LBA list comprises:

obtaining a given file pointer of a given file; and

obtaining the LBA list corresponding to the given file pointer using a file system and a storage block layer; and

sending a mapping of the given file pointer and the LBA list to the controller to update the second entry of the OFT at the controller.