IP Library Granted Patent US 8,352,719
Granted Patent B2
US 8,352,719 · App. 12/755,200 · Granted Jan 8, 2013

Computing device booting 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,352,719
App. No.
12/755,200
Granted
Jan 8, 2013
Kind
B2
Abstract

A computing device boot-up method begins by a processing module detecting a boot-up of the computing device. The method continues with the processing module addressing a distributed basic input/output system (BIOS) memory to retrieve a plurality of error coded BIOS data slices. The method continues with the processing module reconstructing BIOS data from the plurality of error coded BIOS data slices using an error coding dispersal function. The method continues with the computing device booting up in accordance with the BIOS data.

Claims (88)

1. A method for booting-up a computing device, the method comprises:

detecting, by a processing module, a boot-up of the computing device;

addressing, by the processing module, a distributed basic input/output system (BIOS) memory to retrieve a plurality of error coded BIOS data slices;

reconstructing, by the processing module, BIOS data from the plurality of error coded BIOS data slices using an error coding dispersal function; and

booting up the computing device in accordance with the BIOS data, which includes:

generating, by the processing module, BIOS instructions based on the BIOS data;

executing, by the processing module, the BIOS instructions, wherein the BIOS instructions includes at least one of:

computing device initialization instructions;

computing device test instructions; and

operating system boot-up instructions, which includes:

identifying an operating system (OS);

addressing a distributed OS memory to retrieve a first plurality of error coded OS data slices;

reconstructing a first OS data segment from the first plurality of error coded OS data slices using a second error coding dispersal function;

determining whether to retrieve a second plurality of error coded OS data slices;

when the second plurality of error coded OS data slices is to be retrieved, addressing the distributed OS memory to retrieve the second plurality of error coded OS data slices; and

reconstructing a second OS data segment from the second plurality of error coded OS data slices using the second error coding dispersal function.

2. The method of claim 1 , wherein the addressing of the distributed BIOS memory further comprises:

executing, by the processing module, a graphical user interface (GUI) boot loader;

facilitating, by the processing module, execution of a GUI function;

receiving, via the GUI function, account information; and

determining, by the processing module, the addressing of the distributed BIOS memory based on the account information.

3. The method of claim 2 , wherein the determining of the addressing of the distributed BIOS memory further comprises:

the account information including at least one of:

a user identifier (ID);

a vault identifier (ID);

a password;

a password hash; and

determining the addressing of the distributed BIOS memory based on the at least one of the user ID, the vault ID, the password, and the password hash, wherein the distributed BIOS memory comprises at least one of:

a local memory address;

a local area network (LAN) memory address; and

a wide area network (WAN) memory address.

4. The method of claim 1 , wherein the executing of the BIOS instructions further comprises:

identifying an operating system (OS);

addressing a distributed OS memory to retrieve a plurality of error coded OS data slices; and

reconstructing an OS data segment from the plurality of error coded OS data slices using a second error coding dispersal function.

5. The method of claim 1 , wherein the addressing of the distributed BIOS memory further comprises:

determining whether a BIOS data slice of the plurality of error coded BIOS data slices has a slice error;

when the BIOS data slice has the slice error, reconstructing the BIOS data from other BIOS data slices of the plurality of error coded BIOS data slices using the error coding dispersal function to produce reconstructed BIOS data;

rebuilding the plurality of error coded BIOS data slices from the reconstructed BIOS data to produce a rebuilt plurality of error coded BIOS data slices; and

facilitating storage of the rebuilt plurality of error coded BIOS data slices.

6. A computing device comprises:

a processing module;

a memory controller; and

main memory, wherein, when the computing device is being booted up:

the processing module addresses, via the memory controller, a distributed basic input/output system (BIOS) memory to retrieve a plurality of error coded BIOS data slices;

at least one of the memory controller and the processing module reconstructs BIOS data from the plurality of error coded BIOS data slices using an error coding dispersal function;

the main memory stores the BIOS data; and

booting-up the computing device in accordance with the BIOS data, which includes:

generating BIOS instructions based on the BIOS data;

executing the BIOS instructions, wherein the BIOS instructions includes at least one of:

computing device initialization instructions;

computing device test instructions; and

operating system boot-up instructions, which includes:

identifying an operating system (OS);

addressing, via the memory controller, a distributed OS memory to retrieve a first plurality of error coded OS data slices;

reconstructing a first OS data segment from the first plurality of error coded OS data slices using a second error coding dispersal function;

determining whether to retrieve a second plurality of error coded OS data slices;

when the second plurality of error coded OS data slices is to be retrieved, addressing, via the memory controller, the distributed OS memory to retrieve the second plurality of error coded OS data slices; and

reconstructing a second OS data segment from the second plurality of error coded OS data slices using the second error coding dispersal function.

7. The computing device of claim 6 further comprises:

a plurality of read-only memories (ROM) that function as the distributed BIOS memory.

8. The computing device of claim 7 , wherein the plurality of read-only memories operably couple to the memory controller via at least one of:

an input output (IO) controller; and

an input output (IO) interface.

9. The computing device of claim 6 , wherein the processing module further functions to address the distributed BIOS memory by:

executing a graphical user interface (GUI) boot loader;

facilitating execution of a GUI function;

receiving, via the GUI function, account information; and

determining the addressing of the distributed BIOS memory based on the account information.

10. The computing device of claim 9 , wherein the processing module further functions to determine the addressing of the distributed BIOS memory by:

the account information including at least one of:

a user identifier (ID);

a vault identifier (ID);

a password;

a password hash; and

determining the addressing of the distributed BIOS memory based on the at least one of the user ID, the vault ID, the password, and the password hash, wherein the distributed BIOS memory comprises at least one of:

a local memory address;

a local area network (LAN) memory address; and

a wide area network (WAN) memory address.

11. The computing device of claim 6 , wherein the processing module executing the operating system boot-up instructions comprises:

identifying an operating system (OS);

addressing, via the memory controller, a distributed OS memory to retrieve a plurality of error coded OS data slices; and

reconstructing an OS data segment from the plurality of error coded OS data slices using a second error coding dispersal function.

12. The computing device of claim 6 , wherein the processing module addressing the distributed BIOS memory further comprises:

determining whether a BIOS data slice of the plurality of error coded BIOS data slices has a slice error;

when the BIOS data slice has the slice error, reconstructing BIOS data from other BIOS data slices of the plurality of error coded BIOS data slices using the error coding dispersal function to produce reconstructed BIOS data;

rebuilding the plurality of error coded BIOS data slices from the reconstructed BIOS data to produce a rebuilt plurality of error coded BIOS data slices; and

facilitating storage, via the memory controller, of the rebuilt plurality of error coded BIOS data slices.

Assignments (4)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2010
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 024243/0134 →