IP Library Granted Patent US 11,640,395
Granted Patent B2
US 11,640,395 · App. 17/181,886 · Granted May 2, 2023

Query compiler for record filtering

Inventors: Israel Zimmerman (Ashdod, IL); Eyal Hakoun (Gesher Haziv, IL); Judah Gamliel Hahn (Ofra, IL)
Assignee: Western Digital Technologies, Inc.
G06F16/2445G06F16/2282G06F16/235G06F16/248G06F16/2452
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,640,395
App. No.
17/181,886
Granted
May 2, 2023
Kind
B2
Abstract

A method and apparatus for carrying out a database select, or query, on a data storage device, upon data stored on that device. Data is received from a host and compressed on the data storage device using a compression code developed on the data storage device for the data. When the host issues a database select request on the compressed data, the compression code is distributed to processing cores of the data storage device and compiled, including the select request, into machine code. The machine code is used to decompress the compressed data while filtering the data with the select request. The filtering result is returned to the host.

Claims (48)

1. A data storage device, comprising:

one or more memory devices; and

a controller coupled to the one or more memory devices and configured to execute a method for querying data, the method comprising:

receiving a database query from a host;

receiving compressed data from the one or more memory devices;

receiving a decompression code from a front-end module (FM) ASIC;

compiling the database query and the decompression code to a machine code;

decompressing the compressed data using the machine code, the decompressing comprising filtering data during decompression based on the database query; and

returning a result of the filtering to the host.

2. The data storage device of claim 1 , further comprising a plurality of processing cores, wherein the machine code is distributed to at least a portion of the plurality of processing cores.

3. A data storage device, comprising:

one or more memory devices;

a controller coupled to the one or more memory devices and configured to execute a method for querying data, the method comprising:

receiving a database query from a host;

receiving compressed data from the one or more memory devices;

decompressing the compressed data, the decompressing comprising filtering data during decompression based on the database query;

returning a result of the filtering to the host; and

receiving decompression code to decompress the compressed data, wherein the decompression code is compiled to machine code

a plurality of processing cores, wherein the machine code is distributed to at least a portion of the plurality of processing cores; and,

a plurality of front-end module (FM) ASICs, the compressed data being distributed among each of the plurality of FM ASICs.

4. The data storage device of claim 3 , wherein the compressed data distributed among the plurality of FM ASICs is provided to the plurality of processing cores.

5. A solid state data storage device, comprising:

a front-end module (FM) ASIC coupled to an NVM die configured to store data; and

a front-end (FE) ASIC comprising a controller and a plurality of processors, the controller configured to perform a method for querying data, the method comprising:

receiving a query for data stored on the NVM die; and

decompressing the data, comprising filtering the data during decompression based on the query.

6. The solid state data storage device of claim 5 , wherein the method further comprises:

receiving decompression code for the data; and

compiling the decompression code and query to machine code.

7. The solid state data storage device of claim 6 , the method further comprising distributing copies of the machine code to the plurality of processors.

8. The solid state data storage device of claim 7 , wherein the FM ASIC comprises a plurality of FM ASICs, each FM ASIC comprising an NVM die configured to store data, the method further comprising receiving data from each one of the plurality of FM ASICs.

9. The solid state data storage device of claim 8 , the method further comprising distributing the data to the plurality of FM ASICs.

10. The solid state data storage device of claim 9 , wherein decompressing the data and filtering decompressed data based on the query is executed in parallel on each of the plurality of processors.

11. The solid state data storage device of claim 10 , wherein the method further comprises aggregating a result of the filtering, and providing the result to a host.

12. The solid state data storage device of claim 11 , wherein the data comprises data organized into a table with a schema.

13. A device for storing data, comprising:

one or more memory means; and

a controller means configured to perform a method for querying data, the method comprising:

receiving a database instruction from a host;

receiving compressed data from the one or more memory means;

receiving a decompression code from a front-end module (FM) ASIC;

compiling a database query and the decompression code to a machine code;

decompressing the compressed data using the machine code, the decompressing comprising filtering data during decompression based on the database query; and

providing a result of the database instruction to the host.

14. The device for storing data of claim 13 , the method further comprising:

combining the decompression code with the database instruction.

15. The device for storing data of claim 13 , wherein the one or more memory means comprises a plurality of memory means, and wherein the method further comprises receiving data from a host, compressing the data, and distributing the compressed data among the plurality of memory means.

16. The device for storing data of claim 15 , wherein the database instruction comprises one of a select, an update, an insertion, and a deletion.

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 056285 FRAME 0292 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 056285/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 23, 2021
From: ZIMMERMAN, ISRAEL; HAKOUN, EYAL; HAHN, JUDAH GAMLIEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 055365/0285 →