Predictive caching in device for media seek in playback or scrolling
View Patent ↗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.
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.