IP Library Patent Application 14547500
Patent Application
App. No. 14/547,500

DEVICE-BASED SEARCH IN DATA STORAGE DEVICE

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 None
App. No.
14/547,500
Abstract

Systems and methods are disclosed for distributed searching in a data storage system. A data storage device may include a volatile memory module, a non-volatile memory module and control circuitry configured to perform a search on data stored in the non-volatile memory module according to search criteria. The control circuitry is further configured to store search results associated with the search in one or more of the volatile memory module and the non-volatile memory module and provide at least a portion of the search results to a host system.

Claims (66)

1 . A data storage device comprising:

host interface circuitry;

a volatile memory device;

a non-volatile memory device;

a controller configured to:

receive user data from a host system using the host interface circuitry; and

transfer the user data to the non-volatile memory device over a data path comprising one or more data transmission lines electrically coupling the controller to the non-volatile memory device; and

search engine circuitry separate from the controller and the non-volatile memory device and coupled to the data path, the search engine circuitry comprising a plurality of hardware comparators in a sequential arrangement, each of the plurality of hardware comparators being associated with a separate search term of a plurality of search terms, wherein the search engine circuitry is configured to:

compare the user data transferred from the controller to the non-volatile memory device over the data path to the plurality of search terms to generate comparison matches; and

store the comparison matches in one or more of the volatile memory device and the non-volatile memory device, the comparison matches identifying locations of instances of the one or more search terms in the non-volatile memory device.

2 . The data storage device of claim 1 , wherein the search engine circuitry is configured to compare the user data to the plurality of search terms as it is transferred between the controller and the non-volatile memory device over the data path.

3 . (canceled)

4 . The data storage device of claim 1 , wherein:

the search engine circuitry is coupled to the data path at a coupling node; and

the data storage device further comprises one or more of encryption/decryption circuitry and read/write channel circuitry disposed in the data path between the coupling node and the non-volatile memory device.

5 . The data storage device of claim 1 , wherein the search engine circuitry is programmable by the host system.

6 . The data storage device of claim 18 , wherein:

the volatile memory device is configured to communicate with the non-volatile memory device at least partially over the data path: and

the controller is further configured to perform the comparison at least in part by accessing the data path.

7 . (canceled)

8 . The data storage device of claim 18 , wherein the comparison matches are stored in a hit table.

9 . The data storage device of claim 18 , wherein the controller is further configured to:

Initiate a maintenance operation associated with the non-volatile memory device; and

perform the comparison in response to the initiation of the maintenance operation.

10 . The data storage device of claim 9 , wherein the maintenance operations is one of a garbage collection operation and a diagnostics testing operation.

11 . (canceled)

12 . (canceled)

13 . The data storage device of claim 18 , wherein:

the controller is further configured to initiate cache de-staging operations associated with the non-volatile memory device; and

said comparing is performed in response to the initiation of the cache de-staging operations.

14 . The data storage device of claim 18 , wherein:

the controller is further configured to initiate data refresh operations associated with the non-volatile memory device; and

said comparing is performed in response to the initiation of the data refresh operations.

15 . The data storage device of claim 18 , wherein:

the controller is further configured to receive priority data from the host system; and

said comparing is performed according to the priority data.

16 . The data storage device of claim 15 , wherein the priority data indicates that the comparison is to be performed at one of the following times: substantially immediately, during storage device operation idle time, or during performance of one or more background tasks.

17 . (canceled)

18 . A data storage device comprising:

host interface circuitry;

a volatile memory device;

a non-volatile memory device; and

a controller configured to:

receive user data from a host system using the host interface circuitry; and

transfer the user data to the non-volatile memory device over a data path comprising one or more data transmission lines electrically coupling the controller to the non-volatile memory device; and

search engine circuitry separate from the controller and the non-volatile memory device and coupled to the data path, the search engine circuitry comprising hardware comparison circuitry and configured to:

compare the user data as it is transferred from the controller to the non-volatile memory device over the data path to search terms to generate comparison matches; and

store the comparison matches in one or more of the volatile memory device and the non-volatile memory device, the comparison matches identifying locations of instances of the search terms in the non-volatile memory device.

19 . The data storage device of claim 18 , wherein the controller is preprogrammed with the search terms.

20 . The data storage device of claim 18 , wherein the controller is further configured to provide at least part of the comparison matches in response to a request from the host system.

21 . A method of searching data in a data storage device, the method comprising:

by control circuitry of a data storage device:

receiving user data from a host computing device over a host interface;

buffering the user data in a volatile memory device of the data storage device over a data path comprising one or more data transmission lines electrically coupling the controller to the volatile memory device;

decrypting the user data using decryption circuitry disposed in the data path between a controller of the control circuitry and the volatile memory device;

performing a comparison of the user data to search terms using hardware comparison circuitry as the user data is transferred over the data path between the decryption circuitry and the volatile memory device to generate comparison matches;

storing the comparison matches in one or more of the volatile memory device and a non-volatile memory device of the data storage device, the comparison matches identifying locations associated with instances of the search terms; and

providing at least a portion of the comparison matches to the host computing device.

22 . The method of claim 21 , further comprising receiving a search command including the search terms from the host computing device.

23 . The method of claim 21 , wherein:

the user data comprises data objects; and

the data storage device is an object storage device (OSD).

24 . (canceled)

25 . The method of claim 21 , wherein said performing the comparison is performed during performance of one or more of the following types of operations internally in the data storage device: garbage collection operations, diagnostics testing operations, cache de-staging operations, and data refresh operations.

26 . (canceled)

27 . The method of claim 21 , further comprising receiving priority data from the host computing device, wherein the comparison is performed according to the priority.

Assignments (6)
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 16, 2015
From: JENKINS, DEAN M.; MAIN, DALE C.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 036581/0493 →