IP Library Granted Patent US 9,134,925
Granted Patent B1
US 9,134,925 · App. 14/671,336 · Granted Sep 15, 2015

System and method for distributed computing in non-volatile memory

Inventor: William Kwei-Cheung Lam (Newark, CA)
Assignee: SanDisk Technologies Inc.
G06F3/0688G06F3/0619
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 9,134,925
App. No.
14/671,336
Granted
Sep 15, 2015
Kind
B1
Abstract

A system and method are disclosed for incorporating mathematical and/or logical functionality within a memory system (such as a solid state drive (SSD)). The mathematical and/or logical functionality may comprise an arithmetic logic unit (ALU). The ALU may be resident in one or both of flash memory chips or the SSD controller. When resident in the flash memory chips, a single ALU or multiple ALUs may be used. For example, a single ALU may be assigned to one, some, or each block of flash memory within the flash memory chip. As another example, an ALU may be assigned to a sub-block construct, such as to each bit line in the block. Having ALUs resident in the SSD enables more processing to be performed within the SSD and reduces the need to transmit data outside of the SSD for processing.

Claims (92)

1. A solid state drive (SSD) comprising:

an SSD controller comprising an SSD controller arithmetic logic unit (ALU);

one or more memory chips in communication with the SSD controller, the one or more memory chips comprising:

memory; and

a controller including mathematical computation functionality or logic functionality,

wherein the SSD controller is configured to:

receive a write command from a host device, the write command comprising one or more values;

in response to receiving the write command, send a write instruction to the one or more memory chips to store the one or more values in the memory,

wherein the SSD controller is further configured to:

receive a command from the host device;

in response to receiving the command, send an instruction to the one or more memory chips,

wherein the one or more memory chips are configured to:

responsive to receiving the instruction, use the mathematical computation functionality or the logic functionality of the controller on the one or more values previously stored in the memory of the memory chip in order to generate one or more results; and

send at least a part of the one or more results or an indication of the one or more results to the SSD controller.

2. The SSD of claim 1 , wherein the SSD is configured to perform a plurality of functions, the plurality of functions comprising a first set of functions and a second set of functions;

wherein the SSD controller integrated circuit chip is configured to use the SSD controller ALU to perform the first set of functions; and

wherein the one or more memory chips are configured to use a respective controller to perform the second set of functions on the one or more values stored in the memory.

3. The SSD of claim 2 , wherein the first set of functions comprises higher-level functions; and

wherein the second set of functions comprises lower-level functions.

4. The SSD of claim 3 , wherein the SSD controller is configured to:

review the command received from the host device;

determine one or more lower-level functions to perform responsive to the received command;

determine which of the one or more memory chips to send an instruction to perform the determined one or more lower-level functions; and

send to the determined one or more memory chips the instruction to perform the determined one or more lower-level functions on the one or more values stored in the memory.

5. The SSD of claim 3 , wherein the plurality of functions comprise at least one of database functions, image processing functions, or file system functions.

6. The SSD of claim 1 , wherein the command from the host device comprises a search command;

wherein, responsive to receipt of the search command, the controller is configured to send a search instruction to the one or more memory chips, the search instruction being indicative to the one or more memory chips to search for a data value;

wherein a respective memory chip is configured to receive the search instruction; and

wherein, responsive to receiving the search instruction, the controller of the respective memory chip is configured to determine whether the one or more values stored in the memory match the data value in order to generate the one or more results responsive to the search command.

7. The SSD of claim 6 , wherein, responsive to receipt of the search command from the host device, the SSD controller is configured to determine one or more higher-level functions and one or more lower-level functions, at least one of the one or more lower-level functions comprises the search instruction;

wherein the one or more higher-level functions are different from the one or more lower-level functions;

wherein the SSD controller is configured to perform the one or more higher-level functions; and

wherein the SSD controller is configured to command the one or more memory chips to perform the one or more lower-level functions.

8. The SSD of claim 1 , wherein, responsive to receipt of a mathematical computation command from the host device, the SSD controller is configured to determine memory locations in the memory of a respective memory integrated circuit chip to perform the mathematical computation, wherein the mathematical computation instruction is indicative to perform a mathematical computation; and

wherein, responsive to determining the memory locations in the memory of a respective memory integrated circuit chip to perform the mathematical computation, the SSD controller is configured to send an indication of the mathematical computation to the respective memory integrated circuit chip.

9. The SSD of claim 8 , wherein the mathematical computation command comprises an image processing command.

10. The SSD of claim 1 , wherein the one or more memory integrated circuit chips comprise one or more flash memory chips; and

wherein the memory comprises flash memory.

11. A method for operating a solid state drive (SSD) having an SSD controller and a memory chip, the SSD controller comprising an SSD controller arithmetic logic unit (ALU), the memory chip including memory and a controller including mathematical computation functionality or logic functionality, the method comprising:

the SSD controller receiving, via an interface configured to communicate with a host device, a write command, the write command comprising one or more values;

responsive to receiving the write command, the SSD controller instructing the memory chip to store the one or more values in the memory;

the SSD controller receiving a command from the host device;

in response to receiving the command, the SSD controller sending an instruction to the memory chip,

the memory chip, responsive to receiving the instruction, using the mathematical computation functionality or the logic functionality of the controller on the one or more values previously stored in the memory of the memory chip in order to generate one or more results; and

the memory chip sending at least a part of the one or more results or an indication of the one or more results to the SSD controller.

12. The method of claim 11 , wherein the SSD is configured to perform a plurality of functions, the plurality of functions comprising higher-level functions and lower-level functions;

wherein the SSD controller integrated circuit chip uses the SSD controller ALU to perform the higher-level functions; and

wherein the memory chip uses the controller to perform the lower-level functions on the one or more values.

13. A memory chip configured for use in a solid state drive (SSD), the memory chip comprising:

an interface configured to communicate with an SSD controller for the SSD, the SSD controller configured to receive one or more values from a host device;

memory; and

a controller in communication with the interface and the memory, the controller comprising searching functionality or computation functionality, and configured to:

receive a write command from the SSD controller, the write command indicative of writing the one or more values to the memory;

in response to receiving the write command, store the one or more values in the memory;

receive at least one search command from the SSD controller, the search command including a data entry;

in response to receiving the search command, use the searching functionality in order to determine whether the one or more values previously stored in the memory match the data entry in order to generate one or more results; and

send at least a part of the one or more results or an indication of the one or more results to the SSD controller.

14. The memory chip of claim 13 , wherein the search command comprises a database command, the database command comprising one of a schema search, insertion, deletion, or append.

15. The memory chip of claim 13 , wherein the controller comprises:

a processor; and

ALU circuitry in communication with the processor, the ALU circuitry including an ALU and comprising the searching functionality and the computational functionality.

16. The memory chip of claim 13 , wherein the controller comprises a processor; and

wherein the processor is configured as an ALU by executing instructions in order to generate the searching functionality and the computational functionality.

17. The memory chip of claim 13 , wherein the memory comprises a first block and a second block;

wherein a first ALU is assigned to the first block; and

wherein a second ALU is assigned to the second block.

18. The memory chip of claim 13 :

wherein the memory comprises a block, the block comprising a plurality of bit lines; and

wherein a separate ALU is assigned to each of the plurality of bit lines in the block.

19. A method for operating a memory integrated circuit chip configured for use in a solid state drive (SSD), the memory integrated circuit chip having a memory, the method comprising:

receiving a write command from the SSD controller, the write command indicative of writing one or more values to the memory;

in response to receiving the write command, storing the one or more values in the memory;

receiving at least one search command from the SSD controller, the search command including a data entry;

in response to receiving the search command, using the searching functionality in order to determine whether the one or more values previously stored in the memory match the data entry in order to generate one or more results; and

sending at least a part of the one or more results or an indication of the one or more results to the SSD controller.

20. The method of claim 19 , wherein the search command comprises a database command, the database command comprising one of a schema search, insertion, deletion, or append.

21. A memory integrated circuit chip configured for use in a solid state drive (SSD), the memory integrated circuit chip comprising:

an interface configured to communicate with an SSD controller for the SSD, the SSD controller configured to receive one or more values from a host device;

memory; and

a controller in communication with the interface and the memory, the controller comprising searching functionality or computation functionality, and configured to:

receive a write command from the SSD controller, the write command indicative of writing the one or more values to the memory;

in response to receiving the write command, store the one or more values in the memory;

receive a mathematical computation instruction, the mathematical computation instruction being indicative to perform a mathematical computation;

responsive to receiving the mathematical computation instruction, perform the mathematical computation on the one or more values in order to generate one or more results; and

send at least a part of the one or more results or an indication of the one or more results to the SSD controller.

22. The memory integrated circuit chip of claim 21 , wherein the mathematical computation command comprises an image processing command.

23. The memory integrated circuit chip of claim 21 , wherein the memory comprises flash memory.

24. The memory integrated circuit chip of claim 21 , wherein the controller comprises:

a processor; and

ALU circuitry in communication with the processor, the ALU circuitry including an ALU and comprising the searching functionality and the computational functionality.

25. The memory integrated circuit chip of claim 21 , wherein the controller comprises a processor; and

wherein the processor is configured as an ALU by executing instructions in order to generate the searching functionality and the computational functionality.

Assignments (4)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2024
From: SANDISK TECHNOLOGIES LLC
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 069796/0423 →
CHANGE OF NAME Recorded May 25, 2016
From: SANDISK TECHNOLOGIES INC
To: SANDISK TECHNOLOGIES LLC
Reel/Frame 038807/0948 →
Continuity (1)
Continuation 14290305 · May 29, 2014