IP Library Granted Patent US 11,232,024
Granted Patent B2
US 11,232,024 · App. 16/909,751 · Granted Jan 25, 2022

Predictive caching in device for media seek in playback or scrolling

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 11,232,024
App. No.
16/909,751
Granted
Jan 25, 2022
Kind
B2
Abstract

Systems and methods are disclosed for predictive caching of media data for seek operations or scroll operations. In certain embodiments, a data storage device includes a non-volatile memory, a buffer, and a controller configured to receive from a host a seek command associated with playback of a media file, the seek command including a seek interval. The controller can be further configured to determine a number of seek points; estimate respective logical block address (LBA) ranges corresponding to one or more seek points based on the seek interval; determine respective control pages corresponding to the estimated LBA ranges; load the control pages to the buffer in parallel; load data corresponding to the estimated LBA ranges to the buffer in parallel based on the loaded control pages; and provide the loaded data to the host.

Claims (47)

1. A data storage device comprising:

a non-volatile memory;

a buffer; and

a controller configured to:

receive from a host a seek command associated with playback of a media file, the seek command including a seek interval;

determine a number of seek points;

estimate respective logical block address (LBA) ranges corresponding to one or more seek points based on the seek interval;

determine respective control pages corresponding to the estimated LBA ranges;

load the control pages to the buffer in parallel;

load data corresponding to the estimated LBA ranges to the buffer in parallel based on the loaded control pages; and

provide the loaded data to the host.

2. The data storage device of claim 1 , wherein the number of seek points is determined based on a size of the buffer.

3. The data storage device of claim 1 , wherein the number of seek points is a predetermined value.

4. The data storage device of claim 1 , wherein the seek interval is indicated in a unit of time or is indicated as a multiple of a predetermined value stored on the data storage device.

5. The data storage device of claim 1 , wherein information received from the host includes one or more of: current data for playback, a bit rate for the media file, a frame length for the media file, or a frame length list for the media file.

6. The data storage device of claim 5 , wherein each LBA range includes a start LBA and an end LBA.

7. The data storage device of claim 6 , wherein the start LBA of an LBA range is determined by adding an offset equal to a product of the bit rate and the seek interval to a current LBA or to a start LBA of a previous LBA range.

8. The data storage device of claim 6 , wherein the start LBA of an LBA range is determined by adding an offset equal to a product of a number of frames and the frame length to a current LBA or to a start LBA of a previous LBA range.

9. The data storage device of claim 8 , wherein the number of frames is determined based on the seek interval.

10. The data storage device of claim 6 , wherein determining the respective control pages includes determining a control page covering a particular LBA range in a control table.

11. The data storage device of claim 10 , wherein a control page includes physical address information for an amount of data that exceeds a size of the control page.

12. The data storage device of claim 11 , wherein determining the respective control pages includes dividing the start LBA by a ratio of the amount of data to the size of the control page.

13. A method of performing predictive caching for media data in a data storage system, the method comprising:

receiving from a host a seek command associated with playback of a media file, the seek command including a seek interval;

determining a number of seek points;

estimating respective logical block address (LBA) ranges corresponding to one or more seek points based on the seek interval;

determining respective control pages corresponding to the estimated LBA ranges;

loading the control pages to a buffer in parallel;

loading data corresponding to the estimated LBA ranges to the buffer in parallel based on the loaded control pages; and

providing the loaded data to the host.

14. The method of claim 13 , wherein the seek interval is indicated in a unit of time or is indicated as a multiple of a predetermined value stored on the data storage system.

15. The method of claim 13 , wherein information received from the host includes one or more of: current data for playback, a bit rate for the media file, a frame length for the media file, or a frame length list for the media file.

16. The method of claim 15 , wherein each LBA range includes a start LBA and an end LBA.

17. The method of claim 16 , wherein the start LBA of an LBA range is determined by adding an offset equal to a product of the bit rate and the seek interval to a current LBA or to a start LBA of a previous LBA range.

18. The method of claim 16 , wherein the start LBA of an LBA range is determined by adding an offset equal to a product of a number of frames and the frame length to a current LBA or to a start LBA of a previous LBA range.

19. The method of claim 18 , wherein the number of frames is determined based on the seek interval.

20. A data storage system comprising:

a non-volatile memory;

a buffer; and

a controller means configured to:

receive from a host a seek command associated with playback of a media file, the seek command including a seek interval;

determine a number of seek points;

estimate respective logical block address (LBA) ranges corresponding to one or more seek points based on the seek interval;

determine respective control pages corresponding to the estimated LBA ranges;

load the control pages to the buffer in parallel;

load data corresponding to the estimated LBA ranges to the buffer in parallel based on the loaded control pages; and

provide the loaded data to the host.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 053926 FRAME 0446 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058966/0321 →
SECURITY INTEREST Recorded Sep 29, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 053926/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 25, 2020
From: AGARWAL, DINESH KUMAR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 053040/0310 →