IP Library Granted Patent US 9,098,409
Granted Patent B2
US 9,098,409 · App. 14/302,390 · Granted Aug 4, 2015

Detecting a computing system basic input/output system issue

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,098,409
App. No.
14/302,390
Granted
Aug 4, 2015
Kind
B2
Abstract

A method begins where a processing module accesses at least some of a set of basic input/output system (BIOS) memories to retrieve a decode threshold number of encoded BIOS slices, where a BIOS program is dispersed storage error encoded to produce the set of encoded BIOS slices. The method continues with the processing module reconstructing the BIOS program from the decode threshold number of encoded BIOS slices. The method continues with the processing module detecting a BIOS issue based on one or more of an operational issue with one or more BIOS memories of the set of BIOS memories, a rebuild issue with one or more encoded BIOS slices of the one or more sets of encoded BIOS slices, and a modification to the BIOS program. The method continues with the processing module determining a BIOS change regarding the BIOS issue and implementing the BIOS change.

Claims (145)

1. A basic input/output system (BIOS) system comprises:

a set of BIOS memories;

a decoding module, when enabled, is operable to:

access at least some of the set of BIOS memories to retrieve a decode threshold number of encoded BIOS slices for each set of one or more sets of encoded BIOS slices, wherein a BIOS program is dispersed storage error encoded to produce the one or more sets of encoded BIOS slices; and

reconstruct the BIOS program from the decode threshold number of encoded BIOS slices from each set of the one or more sets of encoded BIOS slices; and

a BIOS management module operable to:

detect a BIOS issue based on one or more of: an operational issue with one or more BIOS memories of the set of BIOS memories, a rebuild issue with one or more encoded BIOS slices of the one or more sets of encoded BIOS slices, and a modification to the BIOS program;

determine a BIOS change regarding the BIOS issue; and

implement the BIOS change to change one or more of: an encoded BIOS slice, a BIOS memory, and utilization of the BIOS program.

2. The BIOS system of claim 1 further comprises:

the BIOS management module is further operable to produce a rebuild request when the BIOS issue is the rebuild issue, wherein the rebuild request includes an identity of an encoded BIOS slice of the one or more encoded BIOS slices requiring the rebuilding to produce an identified encoded BIOS slice;

a rebuilding module operable, in response to the rebuild request, to:

retrieve the decode threshold number of encoded BIOS slices of the set of the one or more sets of the encoded BIOS slices that includes the identified encoded BIOS slice and wherein the decode threshold number of encoded BIOS slices excludes the identified encoded BIOS slice;

reconstruct a data segment of the BIOS program from the decode threshold number of encoded BIOS slices; and

generate a rebuilt encoded BIOS slice from the reconstructed data segment of the BIOS program; and

the BIOS management module is further operable to:

determine a storage location for the rebuilt encoded BIOS slice; and

update the set of BIOS memories to include the storage location of the rebuilt encoded BIOS slice.

3. The BIOS system of claim 1 further comprises:

when the BIOS issue is the operational issue with the one or more BIOS memories of the set of BIOS memories, the BIOS management module is further operable to:

identify an encoded BIOS slice of the one or more sets of encoded BIOS slices that is adversely affected by the operational issue; and

generate a rebuild request regarding the identified encoded BIOS slice;

a rebuilding module operable, in response to the rebuild request, to:

retrieve the decode threshold number of encoded BIOS slices of the set of the one or more sets of the encoded BIOS slices that includes the identified encoded BIOS slice and wherein the decode threshold number of encoded BIOS slices excludes the identified encoded BIOS slice;

reconstruct a data segment of the BIOS program from the decode threshold number of encoded BIOS slices; and

generate a rebuilt encoded BIOS slice from the reconstructed data segment of the BIOS program; and

the BIOS management module is further operable to:

determine a new storage location for the rebuilt encoded BIOS slice; and

update the set of BIOS memories to include the new storage location of the rebuilt encoded BIOS slice.

4. The BIOS system of claim 1 further comprises:

the BIOS management module is further operable to:

determine a level of compromise to the utilization of the BIOS program based on existence of the operational issue and existence of the rebuild issue;

when the level of compromise is above a first threshold, flag a rebuild operation and maintain normal use of the BIOS program;

when the level of compromise is between the first threshold and a second threshold, flag the rebuild operation and restrict re-boot of a computing device that includes the BIOS system to a set of re-bootable operations until the level of compromise is raised above the first threshold; and

when the level of compromise is below the second threshold, flag the rebuild operation and prohibit re-boot of the computing device until the level of compromise is raised above the second threshold.

5. The BIOS system of claim 1 , wherein the set of BIOS memories comprises one of:

a set of read only memory (ROM) devices;

a set of erasable and programmable ROM (EPROM) devices;

at least one ROM device and at least one EPROM device;

a set of memory sections in main memory of a computing device that includes the BIOS system;

at least one memory section of the main memory and at least one ROM device;

a set of random access memory (RAM) devices; and

at least one RAM device and at least one ROM device.

6. The BIOS system of claim 1 further comprises:

the BIOS management module is further operable to:

select one of a plurality of versions of the BIOS program to produce a selected version of the BIOS program; and

provide an indication of the selected version of the BIOS program to the decoding module; and

the decoding module, when enabled, is operable to:

access at least some of the set of BIOS memories to retrieve a decode threshold number of encoded BIOS slices for each set of one or more sets of encoded BIOS slices of the selected version of the BIOS program.

7. The BIOS system of claim 1 further comprises:

the BIOS management module is further operable to:

select one of a plurality BIOS programs to produce a selected BIOS program; and

provide an indication of the selected BIOS program to the decoding module; and

the decoding module, when enabled, is operable to:

access at least some of the set of BIOS memories to retrieve a decode threshold number of encoded BIOS slices for each set of one or more sets of encoded BIOS slices of the selected BIOS program.

8. A computer-implemented method for execution by a computing device, the computer-implemented method comprises:

accessing at least some of a set of basic input/output system (BIOS) memories to retrieve a decode threshold number of encoded BIOS slices for each set of one or more sets of encoded BIOS slices, wherein a BIOS program is dispersed storage error encoded to produce the one or more sets of encoded BIOS slices;

reconstructing the BIOS program from the decode threshold number of encoded BIOS slices from each set of the one or more sets of encoded BIOS slices;

detecting a BIOS issue based on one or more of: an operational issue with one or more BIOS memories of the set of BIOS memories, a rebuild issue with one or more encoded BIOS slices of the one or more sets of encoded BIOS slices, and a modification to the BIOS program;

determining a BIOS change regarding the BIOS issue; and

implementing the BIOS change to change one or more of: an encoded BIOS slice, a BIOS memory, and utilization of the BIOS program.

9. The computer-implemented method of claim 8 further comprises:

producing a rebuild request when the BIOS issue is the rebuild issue, wherein the rebuild request includes an identity of an encoded BIOS slice of the one or more encoded BIOS slices requiring the rebuilding to produce an identified encoded BIOS slice;

in response to the rebuild request:

retrieving the decode threshold number of encoded BIOS slices of the set of the one or more sets of the encoded BIOS slices that includes the identified encoded BIOS slice and wherein the decode threshold number of encoded BIOS slices excludes the identified encoded BIOS slice;

reconstructing a data segment of the BIOS program from the decode threshold number of encoded BIOS slices;

generating a rebuilt encoded BIOS slice from the reconstructed data segment of the BIOS program;

determining a storage location for the rebuilt encoded BIOS slice; and

updating the set of BIOS memories to include the storage location of the rebuilt encoded BIOS slice.

10. The computer-implemented method of claim 8 further comprises:

when the BIOS issue is the operational issue with the one or more BIOS memories of the set of BIOS memories:

identifying an encoded BIOS slice of the one or more sets of encoded BIOS slices that is adversely affected by the operational issue; and

generating a rebuild request regarding the identified encoded BIOS slice; and

in response to the rebuild request:

retrieving the decode threshold number of encoded BIOS slices of the set of the one or more sets of the encoded BIOS slices that includes the identified encoded BIOS slice and wherein the decode threshold number of encoded BIOS slices excludes the identified encoded BIOS slice;

reconstructing a data segment of the BIOS program from the decode threshold number of encoded BIOS slices;

generating a rebuilt encoded BIOS slice from the reconstructed data segment of the BIOS program;

determining a new storage location for the rebuilt encoded BIOS slice; and

updating the set of BIOS memories to include the new storage location of the rebuilt encoded BIOS slice.

11. The computer-implemented method of claim 8 further comprises:

determining a level of compromise to the utilization of the BIOS program based on existence of the operational issue and existence of the rebuild issue;

when the level of compromise is above a first threshold, flagging a rebuild operation and maintain normal use of the BIOS program;

when the level of compromise is between the first threshold and a second threshold, flagging the rebuild operation and restrict re-boot of a computing device that includes the BIOS system to a set of re-bootable operations until the level of compromise is raised above the first threshold; and

when the level of compromise is below the second threshold, flagging the rebuild operation and prohibit re-boot of the computing device until the level of compromise is raised above the second threshold.

12. The computer-implemented method of claim 8 , wherein the set of BIOS memories comprises one of:

a set of read only memory (ROM) devices;

a set of erasable and programmable ROM (EPROM) devices;

at least one ROM device and at least one EPROM device;

a set of memory sections in main memory of a computing device that includes the BIOS system;

at least one memory section of the main memory and at least one ROM device;

a set of random access memory (RAM) devices; and

at least one RAM device and at least one ROM device.

13. The computer-implemented method of claim 8 further comprises:

selecting one of a plurality of versions of the BIOS program to produce a selected version of the BIOS program;

providing an indication of the selected version of the BIOS program; and

accessing at least some of the set of BIOS memories to retrieve a decode threshold number of encoded BIOS slices for each set of one or more sets of encoded BIOS slices of the selected version of the BIOS program.

14. The computer-implemented method of claim 8 further comprises:

selecting one of a plurality BIOS programs to produce a selected BIOS program;

providing an indication of the selected BIOS program; and

accessing at least some of the set of BIOS memories to retrieve a decode threshold number of encoded BIOS slices for each set of one or more sets of encoded BIOS slices of the selected BIOS program.

15. A non-transitory computer readable storage medium having accessible therefrom a set of instructions interpretable by a processing module, the set of instructions being configured to cause the processing module to carry out operations for:

accessing at least some of a set of basic input/output system (BIOS) memories to retrieve a decode threshold number of encoded BIOS slices for each set of one or more sets of encoded BIOS slices, wherein a BIOS program is dispersed storage error encoded to produce the one or more sets of encoded BIOS slices;

reconstructing the BIOS program from the decode threshold number of encoded BIOS slices from each set of the one or more sets of encoded BIOS slices;

detecting a BIOS issue based on one or more of: an operational issue with one or more BIOS memories of the set of BIOS memories, a rebuild issue with one or more encoded BIOS slices of the one or more sets of encoded BIOS slices, and a modification to the BIOS program;

determining a BIOS change regarding the BIOS issue; and

implementing the BIOS change, to change one or more of: an encoded BIOS slice, a BIOS memory, and utilization of the BIOS program.

16. The non-transitory computer readable storage medium of claim 15 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

producing a rebuild request when the BIOS issue is the rebuild issue, wherein the rebuild request includes an identity of an encoded BIOS slice of the one or more encoded BIOS slices requiring the rebuilding to produce an identified encoded BIOS slice;

in response to the rebuild request:

retrieving the decode threshold number of encoded BIOS slices of the set of the one or more sets of the encoded BIOS slices that includes the identified encoded BIOS slice and wherein the decode threshold number of encoded BIOS slices excludes the identified encoded BIOS slice;

reconstructing a data segment of the BIOS program from the decode threshold number of encoded BIOS slices;

generating a rebuilt encoded BIOS slice from the reconstructed data segment of the BIOS program;

determining a storage location for the rebuilt encoded BIOS slice; and

updating the set of BIOS memories to include the storage location of the rebuilt encoded BIOS slice.

17. The non-transitory computer readable storage medium of claim 15 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

when the BIOS issue is the operational issue with the one or more BIOS memories of the set of BIOS memories:

identifying an encoded BIOS slice of the one or more sets of encoded BIOS slices that is adversely affected by the operational issue; and

generating a rebuild request regarding the identified encoded BIOS slice; and

in response to the rebuild request:

retrieving the decode threshold number of encoded BIOS slices of the set of the one or more sets of the encoded BIOS slices that includes the identified encoded BIOS slice and wherein the decode threshold number of encoded BIOS slices excludes the identified encoded BIOS slice;

reconstructing a data segment of the BIOS program from the decode threshold number of encoded BIOS slices;

generating a rebuilt encoded BIOS slice from the reconstructed data segment of the BIOS program;

determining a new storage location for the rebuilt encoded BIOS slice; and

updating the set of BIOS memories to include the new storage location of the rebuilt encoded BIOS slice.

18. The non-transitory computer readable storage medium of claim 15 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

determining a level of compromise to the utilization of the BIOS program based on existence of the operational issue and existence of the rebuild issue;

when the level of compromise is above a first threshold, flagging a rebuild operation and maintain normal use of the BIOS program;

when the level of compromise is between the first threshold and a second threshold, flagging the rebuild operation and restrict re-boot of a computing device that includes the BIOS system to a set of re-bootable operations until the level of compromise is raised above the first threshold; and

when the level of compromise is below the second threshold, flagging the rebuild operation and prohibit re-boot of the computing device until the level of compromise is raised above the second threshold.

19. The non-transitory computer readable storage medium of claim 15 , wherein the set of BIOS memories comprises one of:

a set of read only memory (ROM) devices;

a set of erasable and programmable ROM (EPROM) devices;

at least one ROM device and at least one EPROM device;

a set of memory sections in main memory of a computing device that includes the BIOS system;

at least one memory section of the main memory and at least one ROM device;

a set of random access memory (RAM) devices; and

at least one RAM device and at least one ROM device.

20. The non-transitory computer readable storage medium of claim 15 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

selecting one of a plurality of versions of the BIOS program to produce a selected version of the BIOS program;

providing an indication of the selected version of the BIOS program; and

accessing at least some of the set of BIOS memories to retrieve a decode threshold number of encoded BIOS slices for each set of one or more sets of encoded BIOS slices of the selected version of the BIOS program.

21. The non-transitory computer readable storage medium of claim 15 , wherein the set of instructions further being configured to cause the processing module to carry out operations for:

selecting one of a plurality BIOS programs to produce a selected BIOS program;

providing an indication of the selected BIOS program; and

accessing at least some of the set of BIOS memories to retrieve a decode threshold number of encoded BIOS slices for each set of one or more sets of encoded BIOS slices of the selected BIOS program.

Assignments (6)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2014
From: GRUBE, GARY W.; MARKISON, TIMOTHY W.
To: CLEVERSAFE, INC.
Reel/Frame 033347/0882 →