# US 11,650,757 B2 · Storage system and method for time-based data retrieval

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,650,757 B2
- Document ID: US11650757B2
- Status: Granted
- Kind: B2
- Application number: 17/176,818
- Filed: 2021-02-16
- Published: 2022-03-17
- Granted: 2023-05-16
- Earliest claimed: 2020-09-11
- Assignees: Western Digital Technologies, Inc.
- Applicants: Western Digital Technologies, Inc.
- Inventors: Ramanathan Muthiah
- Web page: https://patentgrep.com/patent/US11650757B2

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0673: {Single storage device}
- G06F 12/0238: {Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory}
- G06F 12/10: Address translation
- H04N 19/593: involving spatial prediction techniques
- G06F 2212/657: Virtual address space management
- G06F 2212/7201: Logical to physical mapping or translation of blocks or pages
- G06F 2212/7208: Multiple device management, e.g. distributing data over multiple flash devices
- H04N 21/42661: {for reading from or writing on a magnetic storage medium, e.g. hard disk drive}
- H04N 21/42692: {for reading from or writing on a volatile storage medium, e.g. Random Access Memory [RAM]}
- H04N 21/4302: {Content synchronisation processes, e.g. decoder synchronisation}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A storage system and method for time-based data retrieval are provided. In one embodiment, a controller of the storage system is configured to receive time information from a host; receive a write command from the host, wherein the write command comprises a logical block address; and create a time-to-logical-block-address map from the time information and the logical block address received from the host. Other embodiments are provided.

## Claims

### Claim 1

A storage system comprising:
a memory; and
a controller configured to:
receive time information from a host;
receive a write command from the host, wherein the write command comprises a plurality of logical block addresses and video data comprising a plurality of video frames, each video frame being associated with a respective logical block address; and
create a time-to-logical-block-address map for logical block addresses of a subset of the plurality of video frames from the time information, wherein a granularity between entries in the time-to-logical-block-address map is determined by a time distance between selected frames of the plurality of video frames.

### Claim 2 (depends on 1)

The storage system of claim 1, wherein the time information is part of the video data.

### Claim 3 (depends on 1)

The storage system of claim 1, wherein the video data comprises intra-coded picture frames (I-frames).

### Claim 4 (depends on 3)

The storage system of claim 3, wherein the time information is obtained from time stamps of the I-frames.

### Claim 5 (depends on 4)

The storage system of claim 4, wherein the time stamps comprise a Program Clock Reference (PCR) of a Moving Picture Experts Group (MPEG) transport stream.

### Claim 6 (depends on 1)

The storage system of claim 1, wherein the controller is further configured to:
receive a command to read a video frame associated with a certain time;
determine a logical address of the video frame associated with the certain time using the time-to-logical-block-address map;
determine a physical address in the memory from the logical address using a logical-to-physical address map; and
read the video frame stored at the physical address in the memory.

### Claim 7 (depends on 1)

The storage system of claim 1, wherein start times and end times of the time-to-logical-block-address map change during host writes.

### Claim 8 (depends on 1)

The storage system of claim 1, wherein the time information from the host comprises absolute host time.

### Claim 9 (depends on 1)

The storage system of claim 1, wherein the controller is further configured to populate the time-to-logical-block-address map with an invalid entry for a subsequent write command.

### Claim 10 (depends on 1)

The storage system of claim 1, wherein the controller is further configured to mark an entry in the time-to-logical-block-address map as high endurance.

### Claim 11 (depends on 1)

The storage system of claim 1, wherein the memory comprises a three-dimensional memory.

### Claim 12 (depends on 1)

The storage system of claim 1, wherein start times and end times of the time-to-logical-block-address map change during host overwrites.

### Claim 13

A method for enabling time-based data retrieval, the method comprising:
performing the following in a storage system comprising a memory:
receiving time information from a host;
receiving a write command from the host, wherein the write command comprises a plurality of logical block addresses and video data comprising a plurality of video frames, each video frame being associated with a respective logical block address; and
creating a time-to-logical-block-address map for logical block addresses of a subset of the plurality of video frames from the time information, wherein a granularity between entries in the time-to-logical-block-address map is determined by a time distance between selected frames of the plurality of video frames.

### Claim 14 (depends on 13)

The method of claim 13, wherein the video data comprises intra-coded picture frames (I-frames).

### Claim 15 (depends on 14)

The method of claim 14, wherein the time information is obtained from time stamps of the I-frames.

### Claim 16 (depends on 13)

The method of claim 13, wherein the time information comprises Program Clock Reference (PCR) time stamps.

### Claim 17 (depends on 13)

The method of claim 13, further comprising:
receiving a command to read a video frame associated with a certain time;
determining a logical address of the video frame associated with the certain time using the time-to-logical-block-address map;
determining a physical address in the memory from the logical address using a logical-to-physical address map; and
reading the video frame stored at the physical address in the memory.

### Claim 18 (depends on 13)

The method of claim 13, further comprising marking an entry in the time-to-logical-block-address map as high endurance.

### Claim 19 (depends on 13)

The method of claim 13, wherein start times and end times of the time-to-logical-block-address map change during host overwrites.

### Claim 20

A storage system comprising:
a memory;
means for receiving time information from a host;
means for receiving a write command from the host, wherein the write command comprises a plurality of logical block addresses and video data comprising a plurality of video frames, each video frame being associated with a respective logical block address; and
means for creating a time-to-logical-block-address table for logical block addresses of a subset of the plurality of video frames from the time information, wherein a granularity between entries in the time-to-logical-block-address table is determined by a time distance between selected frames of the plurality of video frames.
