IP Library Granted Patent US 10,372,506
Granted Patent B2
US 10,372,506 · App. 15/346,948 · Granted Aug 6, 2019

Compute architecture in a memory device of distributed computing system

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 10,372,506
App. No.
15/346,948
Granted
Aug 6, 2019
Kind
B2
Abstract

A method performed by a processing module embedded in a solid state memory device begins by receiving at least one partial task related to a group of slices of contiguous data, and slices of the group of slices of contiguous data to produce received slices. The received slices are random access stored in the solid state memory device, and the processing module decides whether to execute the at least one partial task. In response to a positive determination, a portion of the received slices are random access retrieved, and the at least one partial task is executed using the portion of the received slices to generate a partial result. The partial result is random access stored in the solid state memory device; and the processing module facilitates dispersed storage of the partial result in a distributed storage task network (DSTN).

Claims (72)

1. A method performed by a processing module embedded in a solid state memory device, the method comprising:

receiving, at the processing module, at least one partial task related to a group of slices of contiguous data;

receiving, at the solid state memory device, slices of the group of slices of contiguous data to produce received slices;

random access storing received slices in the solid state memory device, using the processing module;

determining, by the processing module, whether to execute the at least one partial task;

in response to a positive determination:

random access retrieving, by the processing module, a portion of the-received slices from the solid state memory device;

executing, by the processing module, the at least one partial task using the portion of the received slices to generate a partial result;

random access storing, by the processing module, the partial result in the same solid state memory device used to store the received slices;

dispersed storage error encoding the partial result to produce a plurality of sets of dispersed error encoded slices; and

facilitating, by the processing module, dispersed storage of the plurality of sets of dispersed error encoded slices in a distributed storage task network (DSTN).

2. The method of claim 1 , wherein the random access storing includes:

updating a slice location table.

3. The method of claim 2 , wherein the random access retrieving includes:

accessing the slice location table to retrieve random access addresses within the solid state memory device.

4. The method of claim 1 , further comprising:

determining executions steps and a schedule associated with the at least one partial task; and

executing the at least one partial task in accordance with the execution steps and the schedule.

5. The method of claim 1 , further comprising:

identifying a particular portion of the received slices on which the at least one partial task is to be executed;

random access retrieving the particular portion of the received slices; and

executing the at least one partial task using the particular portion of the received slices to generate the partial result.

6. The method of claim 1 , further comprising:

in response to an unfavorable determination, determining whether more slices are expected to be received.

7. A processing module embedded in a memory device, the processing module configured to execute instructions implementing the following method:

receiving at least one partial task related to a group of slices of contiguous data;

receiving slices of the group of slices of contiguous data to produce received slices;

random access storing received slices in the memory device;

determining whether to execute the at least one partial task;

in response to a positive determination:

random access retrieving a portion of the received slices from the memory device;

executing the at least one partial task using the portion of the received slices to generate a partial result;

random access storing the partial result in the same memory device used to store the received slices;

dispersed storage error encoding the partial result to produce a plurality of sets of dispersed error encoded slices; and

facilitating, by the processing module, dispersed storage of the plurality of sets of dispersed error encoded slices in a distributed storage task network (DSTN).

8. The processing module of claim 7 , wherein the random access storing includes:

updating a slice location table.

9. The processing module of claim 8 , wherein the random access retrieving includes:

accessing the slice location table to retrieve random access addresses within the memory device.

10. The processing module of claim 7 , wherein the processing module is further configured to execute instructions implementing:

determining executions steps and a schedule associated with the at least one partial task; and

executing the at least one partial task in accordance with the execution steps and the schedule.

11. The processing module of claim 7 , wherein the processing module is further configured to execute instructions implementing:

identifying a particular portion of the received slices on which the at least one partial task is to be executed;

random access retrieving the particular portion of the received slices; and

executing the at least one partial task using the particular portion of the received slices to generate the partial result.

12. The processing module of claim 7 , wherein the processing module is further configured to execute instructions implementing:

in response to an unfavorable determination, determining whether more slices are expected.

13. A solid state memory device comprising:

solid state random access storage circuitry; and

a processor coupled to the solid state random access storage circuitry, the processor configured to:

receive a task related to a group of slices of contiguous data;

receive slices of the group of slices of contiguous data to produce received slices;

store received slices in the solid state random access storage circuitry;

determine whether to execute the task;

in response to a positive determination:

retrieve a portion of the received slices from the solid state random access storage circuitry;

execute the task on the portion of the received slices to generate a partial result;

store the partial result in the same solid state random access storage circuitry used to store the received slices;

dispersed storage error encoding the partial result to produce a plurality of sets of dispersed error encoded slices; and

facilitate dispersed storage of the plurality of sets of dispersed error encoded slices in a distributed storage task network (DSTN) memory, at least partially outside of the random access storage circuitry.

14. The solid state memory device as in claim 13 , wherein the processor is further configured to:

update a slice location table.

15. The solid state memory device as in claim 14 , wherein the processor is further configured to:

access the slice location table to retrieve random access addresses within the solid state random access storage circuitry.

16. The solid state memory device as in claim 13 , wherein the processor is further configured to:

determine executions steps and a schedule associated with the task; and

execute the task in accordance with the execution steps and the schedule.

17. The solid state memory device as in claim 13 , wherein the processor is further configured to:

identify a particular portion of the received slices on which the task is to be executed;

retrieve the particular portion of the received slices from the solid state random access storage circuitry; and

execute the task using the particular portion of the received slices to generate the partial result.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 11, 2025
From: BARCLAYS BANK PLC, AS ADMINISTRATIVE AGENT
To: PURE STORAGE, INC.
Reel/Frame 071558/0523 →
SECURITY INTEREST Recorded Aug 26, 2020
From: PURE STORAGE, INC.
To: BARCLAYS BANK PLC AS ADMINISTRATIVE AGENT
Reel/Frame 053867/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0288 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2016
From: BAPTIST, ANDREW D.; DHUSE, GREG R.; GLADWIN, S. CHRISTOPHER; GRUBE, GARY W.; MOTWANI, MANISH; LEGGETTE, WESLEY B.; RESCH, JASON K; SHIRLEY, THOMAS F., JR.; VOLVOVSKI, ILYA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 040267/0964 →
Cited By (5)
US 12,204,403 US 12,242,337 US 12,346,561 US 12,405,857 US 12,417,176