IP Library Granted Patent US 8,612,796
Granted Patent B2
US 8,612,796 · App. 13/753,432 · Granted Dec 17, 2013

Computing core application access utilizing dispersed storage

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 8,612,796
App. No.
13/753,432
Granted
Dec 17, 2013
Kind
B2
Abstract

A computing core includes a processing module, main memory, and a memory controller. The memory controller receives a request to fetch an instruction from the processing module and determines whether the instruction is currently stored in the main memory. When the instruction is not currently stored in the main memory, the memory controller determines whether the instruction is stored in a distributed storage network (DSN) memory as one or more sets of encoded instruction slices; and, when it is, the memory controller addresses the DSN memory to retrieve the one or more sets of encoded instruction slices. When at least a threshold number of encoded instruction slices are retrieved for each of the one or more sets of encoded instruction slices, the one or more sets of encoded instruction slices are decoded using a dispersed storage error coding function to reconstruct the instruction, which is provided to the processing module.

Claims (82)

1. A method for execution by a computing core, the method comprises:

receiving a request to fetch an instruction from a processing module of the computing core;

determining whether the instruction is currently stored in main memory of the computing core;

when the instruction is not currently stored in the main memory:

determining whether the instruction is stored in a distributed storage network (DSN) memory as one or more sets of encoded instruction slices;

when the instruction is stored in the DSN memory as the one or more sets of encoded instruction slices, determining whether the instruction is an operating system instruction or an application instruction;

when the instruction is the operating system instruction, addressing first DSN memory of the DSN memory to retrieve the one or more sets of encoded instruction;

when the instruction is the application instruction, addressing second memory of the DSN memory to retrieve the one or more sets of encoded instruction slices;

when at least a threshold number of encoded instruction slices are retrieved for each of the one or more sets of encoded instruction slices, decoding the one or more sets of encoded instruction slices using a dispersed storage error coding function to reconstruct the instruction; and

providing the instruction to the processing module.

2. The method of claim 1 , wherein the instruction comprises one of:

an operating system instruction;

an application instruction;

a software driver instruction; and

an application programming interface (API) instruction.

3. The method of claim 1 , wherein the providing the instruction to the processing module further comprises:

storing the instruction in the main memory prior to the providing.

4. The method of claim 1 comprises, when the instruction is not currently stored in main memory:

identifying a group of instructions to retrieve, wherein the group of instructions includes the instruction;

determining whether the group of instructions is stored in the DSN memory in an error encoded format;

when the group of instructions is stored in the DSN memory in the error encoded format, addressing the DSN memory to retrieve a unique one or more sets of encoded instruction slices for each of the instructions in the group of instructions.

5. The method of claim 1 further comprises:

when the instruction is not currently stored in main memory and is stored in the DSN memory in a non-error encoded format, retrieving a non-error encoded version of the instruction from the DSN memory.

6. The method of claim 1 , wherein the DSN memory comprises at least one of:

non-core memory;

local area network (LAN) memory; and

wide area network (WAN) memory.

7. The method of claim 1 further comprises:

receiving a request from the processing unit to fetch configuration information, wherein the configuration information includes at least one of application configuration parameters regarding an application and user preferences regarding the application;

determining whether the configuration information is currently stored in main memory of the computing core;

when the configuration information is not currently stored in the main memory:

determining whether the configuration information is stored in the DSN memory as one or more sets of encoded configuration slices;

when the configuration information is stored in the DSN memory as the one or more sets of encoded configuration slices, addressing the DSN memory to retrieve the one or more sets of encoded configuration slices;

when at least a threshold number of encoded configuration slices are retrieved for each of the one or more sets of encoded configuration slices, decoding the one or more sets of encoded configuration slices using a dispersed storage error coding function to reconstruct the configuration information; and

providing the configuration information to the processing module.

8. In the method of claim 7 further comprises:

detecting a change in the configuration information;

when a change is detected in the configuration information, updating the configuration information to produce updated configuration information; and

facilitating storage of the updated configuration information in an error encoded format in the DSN memory.

9. A computing core comprises:

a processing module;

main memory; and

a memory controller operable to:

receive a request to fetch an instruction from the processing module;

determine whether the instruction is currently stored in the main memory;

when the instruction is not currently stored in the main memory:

determine whether the instruction is stored in a distributed storage network (DSN) memory as one or more sets of encoded instruction slices;

when the instruction is stored in the DSN memory as the one or more sets of encoded instruction slices, determine whether the instruction is an operating system instruction or an application instruction;

when the instruction is the operating system instruction, address first DSN memory of the DSN memory to retrieve the one or more sets of encoded instruction;

when the instruction is the application instruction, address second memory of the DSN memory to retrieve the one or more sets of encoded instruction slices;

when at least a threshold number of encoded instruction slices are retrieved for each of the one or more sets of encoded instruction slices, decode the one or more sets of encoded instruction slices using a dispersed storage error coding function to reconstruct the instruction; and

provide the instruction to the processing module.

10. The computing core of claim 9 , wherein the instruction comprises one of:

an operating system instruction;

an application instruction;

a software driver instruction; and

an application programming interface (API) instruction.

11. The computing core of claim 9 , wherein the memory controller is further operable to:

facilitate storing the instruction in the main memory prior to the providing the instruction to the processing module.

12. The computing core of claim 9 , wherein the memory controller is further operable to, when the instruction is not currently stored in main memory:

identify a group of instructions to retrieve, wherein the group of instructions includes the instruction;

determine whether the group of instructions is stored in the DSN memory in an error encoded format;

when the group of instructions is stored in the DSN memory in the error encoded format, address the DSN memory to retrieve a unique one or more sets of encoded instruction slices for each of the instructions in the group of instructions.

13. The computing core of claim 9 , wherein the memory controller is further operable to:

when the instruction is not currently stored in main memory and is stored in the DSN memory in a non-error encoded format, retrieve a non-error encoded version of the instruction from the DSN memory.

14. The computing core of claim 9 , wherein the DSN memory comprises at least one of:

non-core memory;

local area network (LAN) memory; and

wide area network (WAN) memory.

15. The computing core of claim 9 , wherein the memory controller is further operable to:

receive a request from the processing unit to fetch configuration information, wherein the configuration information includes at least one of application configuration parameters regarding an application and user preferences regarding the application;

determine whether the configuration information is currently stored in main memory of the computing core;

when the configuration information is not currently stored in the main memory:

determine whether the configuration information is stored in the DSN memory as one or more sets of encoded configuration slices;

when the configuration information is stored in the DSN memory as the one or more sets of encoded configuration slices, address the DSN memory to retrieve the one or more sets of encoded configuration slices;

when at least a threshold number of encoded configuration slices are retrieved for each of the one or more sets of encoded configuration slices, decode the one or more sets of encoded configuration slices using a dispersed storage error coding function to reconstruct the configuration information; and

provide the configuration information to the processing module.

16. The computing core of claim 15 , further comprises:

the processing module operable to:

detect a change in the configuration information;

when a change is detected in the configuration information, update the configuration information to produce updated configuration information; and

the memory controller operable to facilitate storage of the updated configuration information in an error encoded format in the DSN memory.

Assignments (5)
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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE 9992063 AND 10334045 LISTED IN ERROR PREVIOUSLY RECORDED ON REEL 049556 FRAME 0012. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNOR HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2020
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 052205/0705 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2019
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: PURE STORAGE, INC.
Reel/Frame 049556/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: CLEVERSAFE, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 038687/0596 →