← Back to Patent Explorer
US5724527A Expired / Lapsed US ⏱️ 0.0 years remaining

Fault-tolerant boot strap mechanism for a multiprocessor system

Assignee: Intel Corp
•
Filing: 1995-12-28
•
Granted: 1998-03-03
•
Expires: 2015-12-28
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A multiprocessor computing system includes a serial bus and implements a boot protocol in which each processor compares a vector field of a boot message issued on the serial bus by a first processor with an ID of the processor; a match indicating that the first processor is a bootstrap processor (BSP). The non-BSPs are halted and, after issuing a final message on the bus, the BSP fetches code to start a reset sequence. The BSP then sends a message to wake the non-BSPs, after which time the operating system software is given control. Faulty processors that fail to participate in the boot protocol do not stop the selection of a BSP as long as one processor in the system is functional.

Inventors

  • 👤 Milind Karnik
  • 👤 Joseph Batz
  • 👤 Keshavan Tiruvallur
  • 👤 Andrew Glew
  • 👤 Frank Binns
  • 👤 Shreekant Thakkar
  • 👤 Nitin Sarangdhar

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 12:05
CPC Classifications
G; G06; G06F; G06F15/00; G06F15/16; G06F15/177; G06F9/00; G06F9/06; G06F9/44; G06F9/4401; G06F9/4405

Claims Analysis

Total Claims: 35
Claim 1
Independent Claim 135 words
A method of starting-up a multiprocessor (MP) computing system which includes a plurality of processors coupled to a system bus and a dedicated bus, the method comprising the steps of: (a) comparing by each processor in the MP system, a vector field of a boot message issued on the dedicated bus by a first processor with an identification (ID) of the processor, a match indicating that the first processor is a bootstrap processor (BSP); (b) halting other processors in the MP system which are not the BSP; (c) issuing a final message on the dedicated bus by the BSP; (d) receiving the final message by the BSP; (e) fetching a reset vector via the system bus by the BSP; (f) issuing a wake-up message on the dedicated bus by the BSP to the other processors.
Claim 2
Independent Claim 135 words
A method of starting-up a multiprocessor (MP) computing system which includes a plurality of processors coupled to a system bus and a dedicated bus, the method comprising the steps of: (a) comparing by each processor in the MP system, a vector field of a boot message issued on the dedicated bus by a first processor with an identification (ID) of the processor, a match indicating that the first processor is a bootstrap processor (BSP); (b) halting other processors in the MP system which are not the BSP; (c) issuing a final message on the dedicated bus by the BSP; (d) receiving the final message by the BSP; (e) fetching a reset vector via the system bus by the BSP; (f) issuing a wake-up message on the dedicated bus by the BSP to the other processors.
Claim 3
Dependent Claim 34 words
The method according to claim 1 wherein step (a) is performed dynamically such that any processor in the MP system may be the first processor to issue the boot message and become the BSP.
Claim 4
Dependent Claim 19 words
The method according to claim 1 wherein the dedicated bus comprises a serial bus having an arbitration priority mechanism.
Claim 5
Dependent Claim 15 words
The method according to claim 3 wherein the priority mechanism is a round-robin priority mechanism.
Claim 6
Dependent Claim 15 words
The method according to claim 1 wherein the boot, final, and wake-up messages are atomic.
Claim 7
Dependent Claim 17 words
The method according to claim 2 wherein each of the processors in the MP system are symmetric.
Claim 8
Dependent Claim 19 words
The method according to claim 2 wherein each of the processors in the MP system issues a boot message.
Claim 9
Dependent Claim 34 words
The method according to claim 7 further comprising the initial step of: handshaking among each of the processors in the MP system to indicate that the processors are ready to issue their boot message.
Claim 10
Independent Claim 167 words
A method of booting a multiprocessor (MP) computing system which includes a plurality of processors coupled to a system bus and to a dedicated bus, the method comprising the steps of: (a) optionally executing a self-test routine by each of the plurality of processors; (b) sending a boot message on the dedicated bus by each of the plurality of processors, the boot message containing an identification (ID) of the processor; (c) comparing by an individual processor the ID of the boot message on the dedicated bus with the individual processor's ID; if a match exists, the individual processor is a bootstrap processor (BSP); otherwise the individual processor is a non-BSP; (d) issuing a final boot message on the dedicated bus by the BSP; (e) receiving the final boot message by the BSP; (f) fetching code from a memory by the BSP via the system bus; (g) executing the code to start a reset sequence; and (h) issuing a start message on the dedicated bus to the non-BSPs.
Claim 11
Independent Claim 167 words
A method of booting a multiprocessor (MP) computing system which includes a plurality of processors coupled to a system bus and to a dedicated bus, the method comprising the steps of: (a) optionally executing a self-test routine by each of the plurality of processors; (b) sending a boot message on the dedicated bus by each of the plurality of processors, the boot message containing an identification (ID) of the processor; (c) comparing by an individual processor the ID of the boot message on the dedicated bus with the individual processor's ID; if a match exists, the individual processor is a bootstrap processor (BSP); otherwise the individual processor is a non-BSP; (d) issuing a final boot message on the dedicated bus by the BSP; (e) receiving the final boot message by the BSP; (f) fetching code from a memory by the BSP via the system bus; (g) executing the code to start a reset sequence; and (h) issuing a start message on the dedicated bus to the non-BSPs.
Claim 12
Dependent Claim 25 words
The method defined in claim 9 further comprising the step of; (i) transferring control of the MP computing system to an operating system software program.
Claim 13
Dependent Claim 26 words
The method defined in claim 9 wherein the dedicated bus comprises a serial bus in which only a single processor message executes at a given time.
Claim 14
Dependent Claim 50 words
The method defined in claim 11 wherein the dedicated bus operates in accordance with an arbitration mechanism in which the BSP has an arbitration priority of zero such that the final boot message issued by the BSP must wait until the non-BSPs have sent boot messages onto the dedicated bus.
Claim 15
Dependent Claim 16 words
The method defined in claim 12 where in the arbitration mechanism comprises a round-robin priority mechanism.
Claim 16
Dependent Claim 17 words
The method defined in claim 9 further comprising the step, after step (d), of: halting the non-BSPs.
Claim 17
Independent Claim 43 words
The method defined in claims 9, 10, 11, 12, 13 or 14 further comprising the step, after step (a) of: handshaking among the plurality of processors to indicate that the self-test muting optionally executed by each of the plurality of processors has completed.
Claim 18
Dependent Claim 24 words
The method defined in claim 15 wherein the BSP operates with a clock rate which is different from at least one of the non-BSPs.
Claim 19
Dependent Claim 24 words
The method defined in claim 12 wherein the dedicated bus comprises a programmable inter-processor interrupt bus operating in accordance with a predetermined clock frequency.
Claim 20
Dependent Claim 15 words
The method defined in claim 17 wherein the predetermined clock frequency is approximately 16 MHz.
Claim 21
Independent Claim 196 words
A method of starting a computer system which includes first and second processors coupled to an external bus and to a dedicated bus, the second processor comprising an upgraded version of the first processor, the method comprising the steps of: (a) optionally executing a self-test routing by the first and second processors; (b) sending first and second boot messages by the first and second processors, respectively, each of the boot messages containing an identification (ID) of the respective processors: if the first boot message completes first, then (c) issuing a final boot message on the dedicated bus by the first processor; (d) shutting down the first processor's core after the second boot message completes; (e) receiving by the second processor the final boot message issued in step (c); else, if the second boot message completes first, then (f) shutting down the first processor's core; (g) issuing a final boot message on the dedicated bus by the second processor; (h) receiving by the second processor the final boot message issued in step (g); and then (i) fetching code from a memory by the BSP via the external bus; (j) executing the code to start a reset sequence.
Claim 22
Independent Claim 196 words
A method of starting a computer system which includes first and second processors coupled to an external bus and to a dedicated bus, the second processor comprising an upgraded version of the first processor, the method comprising the steps of: (a) optionally executing a self-test routing by the first and second processors; (b) sending first and second boot messages by the first and second processors, respectively, each of the boot messages containing an identification (ID) of the respective processors: if the first boot message completes first, then (c) issuing a final boot message on the dedicated bus by the first processor; (d) shutting down the first processor's core after the second boot message completes; (e) receiving by the second processor the final boot message issued in step (c); else, if the second boot message completes first, then (f) shutting down the first processor's core; (g) issuing a final boot message on the dedicated bus by the second processor; (h) receiving by the second processor the final boot message issued in step (g); and then (i) fetching code from a memory by the BSP via the external bus; (j) executing the code to start a reset sequence.
Claim 23
Dependent Claim 54 words
The method defined in claim 19 wherein the computer system further comprises a third processor symmetric with the second processor, the third processor sending a third boot message onto the dedicated bus containing an ID of the third processor in accordance with step (b), the third boot message completing after the second boot message.
Claim 24
Dependent Claim 55 words
The method defined in claim 19 wherein the computer system further comprises a third processor which is an upgraded version of the first processor, the second processor being an upgraded processor of the third processor, the third processor sending a third boot message on the dedicated bus which contains an ID of the third processor.
Claim 25
Independent Claim 22 words
The method defined in either claims 20 or 21 wherein step (f) further comprises the step of shutting down the third processor.
Claim 26
Independent Claim 27 words
The method defined in either claims 20 or 21 further comprising the step of: (i) transferring control of the computer system to on operating system software program.
Claim 27
Dependent Claim 26 words
The method defined in claim 23 wherein the dedicated bus comprises a serial bus in which only a single processor message executes at a given time.
Claim 28
Dependent Claim 60 words
The method defined in claim 24 wherein the dedicated bus operates in accordance with an arbitration mechanism in which the second processor has an arbitration priority of zero such that the final boot message issued by the second processor must wait until the first and third processors have sent the first and third boot messages, respectively, on the dedicated bus.
Claim 29
Dependent Claim 16 words
The method defined in claim 25 wherein the arbitration mechanism comprises a round-robin arbitration priority mechanism.
Claim 30
Dependent Claim 24 words
The method defined in claim 26 wherein the dedicated bus comprises a programmable inter-processor interrupt bus operating in accordance with a predetermined clock frequency.
Claim 31
Dependent Claim 15 words
The method defined in claim 27 wherein the predetermined clock frequency is approximately 16 MHz.
Claim 32
Dependent Claim 218 words
A multiprocessor (MP) computing system comprising: a system bus; a non-volatile memory coupled to the system bus storing a basic/output system (BIOS) reset sequence; a serial bus having an arbitration mechanism; a plurality of processors coupled to the system bus and to the serial bus, each processor including message handling circuitry that receives and sends messages on the serial bus; wherein upon power-up or reset of the MP system the message handling circuitry being operable to execute a protocol in which each processor first sends a boot message on the serial bus, the boot message having a vector field which contains an identification (ID) of the processor; thereafter the message handling circuitry of an individual processor monitoring the serial bus to identify if the ID of the boot message currently on the serial bus matches the ID of the individual processor; if so, the individual processor is designated a bootstrap processor (BSP); otherwise, the individual processor is designated a non-BSP; the BSP issuing a final boot message on the serial bus which places the non-BSPs in a halt state, after the BSP receives the final boot message, the BSP fetches the BIOS reset sequence via the system bus, following execution of the BIOS reset sequence the BSP sending a start message on the serial bus to the non-BSPs.
Claim 33
Dependent Claim 218 words
A multiprocessor (MP) computing system comprising: a system bus; a non-volatile memory coupled to the system bus storing a basic/output system (BIOS) reset sequence; a serial bus having an arbitration mechanism; a plurality of processors coupled to the system bus and to the serial bus, each processor including message handling circuitry that receives and sends messages on the serial bus; wherein upon power-up or reset of the MP system the message handling circuitry being operable to execute a protocol in which each processor first sends a boot message on the serial bus, the boot message having a vector field which contains an identification (ID) of the processor; thereafter the message handling circuitry of an individual processor monitoring the serial bus to identify if the ID of the boot message currently on the serial bus matches the ID of the individual processor; if so, the individual processor is designated a bootstrap processor (BSP); otherwise, the individual processor is designated a non-BSP; the BSP issuing a final boot message on the serial bus which places the non-BSPs in a halt state, after the BSP receives the final boot message, the BSP fetches the BIOS reset sequence via the system bus, following execution of the BIOS reset sequence the BSP sending a start message on the serial bus to the non-BSPs.
Claim 34
Dependent Claim 27 words
The MP computing system of claim 29 wherein the BSP operates with a clock rate which is different from that of at least one of the non-BSPs.
Claim 35
Dependent Claim 23 words
The MP computing system of claim 30 wherein the serial bus comprises a programmable inter-processor interrupt bus having a round-robin arbitration priority mechanism.

References Cited (Backward Citations)

US4414624A Cited
US4751727A Cited
US4760515A Cited
US5155833A Cited
US5016162A Cited
US4987529A Cited
US5138707A Cited
US5168568A Cited
US5283904A Cited
US5555420A Cited
US5627962A Cited
US5524209A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-03-02 2001-09-01 2002-03-03 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-03-02 2005-09-01 2006-03-03 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-03-02 2009-09-01 2010-03-03 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag