Timer-based apparatus and method for fault-tolerant booting of a storage controller
First Claim
1. An apparatus for automatically selectively booting from redundant copies of a stored program in a storage-controller to tolerate a fault in up to all but one of the copies, the controller having a processor that begins fetching instructions of the stored program each time the processor is reset, the apparatus comprising:
- a timer, coupled to the processor, configured to commence running when the processor is reset a first time, and to reset the processor a second time if said timer expires; and
selection logic, coupled to the processor, configured to select a first of the redundant copies for provision to the processor in response to said first reset, and to select a second of the redundant copies other than said first of the redundant copies for provision to the processor in response to said second reset.
2 Assignments
0 Petitions
Accused Products
Abstract
A fault tolerant storage controller having a processor, redundant copies of a stored program, and a timer that automatically runs when the processor is reset is disclosed. Selection logic selects a first copy of the program to boot on the processor. If the timer expires before the first copy successfully boots, the timer resets the processor and re-enables itself to run again. This time, selection logic selects a second copy of the stored program. In one embodiment, the program comprises separate loader and application programs, each having a redundant copy. The loader re-enables the timer when jumping to the first copy of the application code. If the timer expires before the first application copy successfully boots, the timer resets the processor and re-enables itself to run again. This time, the loader selects a second copy of the application program. In one embodiment, the redundant copies are stored in separate FLASH devices; in another, in distinct regions of the same FLASH device.
93 Citations
84 Claims
-
1. An apparatus for automatically selectively booting from redundant copies of a stored program in a storage-controller to tolerate a fault in up to all but one of the copies, the controller having a processor that begins fetching instructions of the stored program each time the processor is reset, the apparatus comprising:
-
a timer, coupled to the processor, configured to commence running when the processor is reset a first time, and to reset the processor a second time if said timer expires; and
selection logic, coupled to the processor, configured to select a first of the redundant copies for provision to the processor in response to said first reset, and to select a second of the redundant copies other than said first of the redundant copies for provision to the processor in response to said second reset. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40)
-
-
41. A storage controller for providing an improved probability of successfully booting, comprising:
-
first and second copies of a stored program;
a microprocessor, coupled to selectively boot said first and second copies of said stored program;
selection logic, coupling said microprocessor to said first and second stored program copies, wherein said selection logic initially selects said first stored program copy for said microprocessor to boot; and
a timer, coupled to the microprocessor, configured to reset said microprocessor if said microprocessor fails to boot said first stored program copy within a predetermined time and to update said selection logic to select said second stored program copy for said microprocessor to boot. - View Dependent Claims (42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64)
-
-
65. A method for improving the probability of a microprocessor of a storage controller successfully booting a program stored therein, the method comprising:
-
starting a timer in response to the microprocessor being reset;
resetting the microprocessor, after said starting the timer, if the timer expired before the microprocessor successfully boots a first copy of the stored program; and
causing the microprocessor to attempt to boot a second copy of the stored program after said resetting the microprocessor if the timer expired. - View Dependent Claims (66, 67, 68, 69, 70, 71, 72, 73, 74)
-
-
75. A method for improving the probability of a microprocessor of a storage controller successfully booting a program stored thereon, the method comprising:
-
attempting to boot a first copy of the stored program;
determining whether the first copy of the stored program failed to boot; and
attempting to boot a second copy of the stored program, in response to determining the first copy of the stored program failed to boot. - View Dependent Claims (76, 77, 78, 79, 80, 81, 82, 83, 84)
-
Specification