IP Library Granted Patent US 12664052
Granted Patent B1
US 12664052 · App. 19/072,007 · Granted Jun 23, 2026

Intelligent storage device to execute a hint search

Inventor: Joji Joseph (Mountain View, CA)
Assignee: Sandisk Technologies, Inc.
G06F11/1096G06F12/0223G06F16/2255G06F16/953
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 12664052
App. No.
19/072,007
Granted
Jun 23, 2026
Kind
B1
Abstract

A storage device enables a host to search for data stored across channels on a memory device without reading the user data stored on the channels. The storage device includes a memory device including user channels to store user data and a hash channel to store hash data associated with the user data. The hash data is used to identify the user data. A controller on the storage device generates the hash data including hint data during storage of user data on the user channels. The controller receives a hint from the host, generates a request and submits the request to a pattern search engine. The controller sends a hint response including flash translation indices to the host, based on a response from the pattern search engine. The host may read the flash translation indices to request data stored at a specific location in the user channels.

Claims (36)

1 . A storage device to enable a host to search for data stored across channels on a memory device without reading user data stored on user channels, the storage device comprises:

the memory device includes the user channels to store user data and a hash channel to store hash data associated with the user data, wherein the hash data is used to identify user data; and

a controller to generate the hash data including hint data during storage of the user data on the user channels in a stripe, receive a hint from the host, generate a request, submit the request to a pattern search engine, and send a hint response including flash translation indices to the host, based on a response from the pattern search engine,

wherein the host reads the flash translation indices to request data stored at a specific location in the user channels.

2 . The storage device of claim 1 , wherein the controller further comprises a front-end module to interface with the host and receive a vendor unique command with the hint from the host.

3 . The storage device of claim 1 , wherein the controller further comprises a flash translation layer to support a RAID-N stripe format including N−2 user channels, the hash channel, and a parity channel and trigger a hash generator when the user data is stored on the user channels, wherein the hash generator generates the hash data.

4 . The storage device of claim 3 , wherein the flash translation layer includes a first search manager to perform one of a full search and a partial search for the hint across the user channels and the hash channel and the first search manager creates a per channel hint search request that is sent to a second search manager.

5 . The storage device of claim 4 , wherein the second search manager reads the hash data for the user channels in the hash channel, generates a request, and submits the request to the pattern search engine.

6 . The storage device of claim 1 , wherein the controller further comprises a back-end module to interface with the memory device and support a RAID-N stripe format including N−2 user channels, the hash channel, and a parity channel.

7 . The storage device of claim 1 , wherein the controller further comprises a parity generator to generate parity information for error correction on the user data, wherein the parity information is stored on a parity channel.

8 . The storage device of claim 1 , wherein the controller further comprises a hash generator to receive predefined sized data and to create a unique hash value for a logical page of data, wherein a hash data size corresponds with the logical page.

9 . The storage device of claim 1 , wherein the hash generator generates a partial hash from a partial data source.

10 . The storage device of claim 1 , wherein the hint is one of a single sequence of bytes and a data structure with multiple information and the hint is a unique hash word associated with a data unit.

11 . The storage device of claim 1 , wherein the hint is a one of a parity polynomial data as a whole and a data structure that is used with additional hints for further accuracy during a search.

12 . The storage device of claim 1 , further comprises the pattern search engine that is a transceiver in a hardware data path in which a search is performed in real time and the pattern search engine searches the hash channel for the hash data associated with the hint and returns a match list of the hash data that matches the hint to the controller.

13 . A method on a storage device for enabling a host to search for data stored across channels on a memory device without reading user data stored on the channels, the storage device comprises a controller to execute the method comprising:

generating hash data including hint data during storage of user data on user channels in a stripe on the memory device;

receiving a hint from the host;

generating a request and submitting the request to a pattern search engine; and

sending a hint response including flash translation indices to the host, based on a response from the pattern search engine,

wherein the host reads the flash translation indices to request data stored at a specific location in the user channels.

14 . The method of claim 13 , further comprising triggering a hash generator when the user data is stored on the user channels to generate the hash data and storing the hash data on a hash channel.

15 . The method of claim 13 , further comprising generating parity information for error correction on the user data and storing the parity information on a parity channel.

16 . The method of claim 13 , further comprising receiving predefined sized input data and creating a unique hash value for a logical page of data, wherein a hash data size corresponds with the logical page.

17 . The method of claim 13 , further comprising generating a partial hash from a partial data source.

18 . The method of claim 13 , further comprising invoking the pattern search engine to perform a search in real time on a hash channel for the hash data associated with the hint and receiving a match list of the hash data that matches the hint from the pattern search engine.

19 . A method on a storage device for generating hash data associated with user data stored on user channels to enable a host to search for data stored across channels on a memory device without reading user data stored on the channels, the storage device comprises a controller to execute the method comprising:

receiving data sent from the host to be saved on the user channels on the memory device;

triggering a parity generator to generate parity data for the user data;

triggering a hash generator to generate hash data for the user data;

storing the user data on the user channels, the parity data on a parity channel, and the hash data on a hash channel;

receiving a hint from the host;

searching the hash channel for the hash data that matches the hint; and

sending a hint response including flash translation indices to the host,

wherein the host reads the flash translation indices to request data stored at a specific location in the user channels.

20 . The method of claim 19 , further comprising invoking a pattern search engine to perform a search in real time on the hash channel for the hash data associated with the hint and receiving a match list of the hash data that matches the hint from the pattern search engine.