IP Library › Granted Patent US 10,552,270
Granted Patent B2
US 10,552,270 · App. 15/388,146 · Granted Feb 4, 2020

Systems and methods for in-field core failover

Inventors: Eric J. DeHaemer (Shrewsbury, MA); Arijit Biswas (Holden, MA); Reid J. Riedlinger (Wellington, CO); Ian M. Steiner (Hillsboro, OR)
Assignee: Intel Corporation
G06F11/2028G06F11/2041
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 10,552,270
App. No.
15/388,146
Granted
Feb 4, 2020
Kind
B2
Abstract

A multicore processor may include multiple processing cores that were previously designated as active cores and at least one processing core that was previously designated as a functional spare. The processor may include an interface to receive, during operation of the processor in an end-user environment, a request to change the designation of at least one of the processing cores. The processor may be to store, into a desired cores configuration data structure in response to the request, data representing a bitmask that reflects the requested change, and to execute a reset sequence. During the reset sequence, the processor may activate, dependent on the bitmask, a processing core previously designated as a functional spare, or may deactivate, dependent on the bitmask, a processing core previously designated as an active core. The processor may include a predetermined maximum number of active cores and a predetermined minimum number of functional spares.

Claims (69)

1. A processor, comprising:

a plurality of processing cores, including:

multiple processing cores to be designated as active cores;

at least one processing core to be designated as a functional spare; and

an interface to receive, during an execution of program code on the processor in an end-user environment, a request to change a designation of at least one of the plurality of processing cores;

wherein the processor is to:

responsive to the request, store, in a desired cores configuration data structure, data representing a bitmask that reflects the requested change; and

execute a reset sequence in response to the data being stored in the desired cores configuration data structure, wherein the reset sequence when executed is to cause the processor to:

activate, dependent on the bitmask, a processing core that was previously designated as a functional spare; or

deactivate, dependent on the bitmask, a processing core that was previously designated as an active core.

2. The processor of claim 1 , wherein:

the number of processing cores that were previously designated as active cores is equal to a predetermined maximum allowed number of active cores for the processor.

3. The processor of claim 1 , wherein:

the number of processing cores that were previously designated as functional spares is greater than or equal to a predetermined minimum number of functional spares for the processor.

4. The processor of claim 1 , further comprising:

a programmable circuit programmed to indicate which of the plurality of processing cores are enabled for use as active cores or as functional spares, dependent on results of functional testing or characterization performed during manufacturing of the processor.

5. The processor of claim 1 , wherein:

the processor further comprises a programmable circuit programmed to indicate, for each of the plurality of processing cores, results of functional testing and characterization performed during manufacturing of the processor;

the programmable circuit is programmed to indicate that the multiple processing cores that were previously designated as active cores are fully functional and meet all specifications;

the programmable circuit is programmed to indicate that the at least one processing core that was previously designated as a functional spare is fully functional and does not meet all specifications for which a characterization is performed.

6. The processor of claim 1 , wherein:

the desired cores configuration data structure is contained in a register that is writable during operation of the processor in the end-user environment;

the reset sequence comprises a warm reset sequence in which power is maintained for at least a portion of the processor.

7. The processor of claim 1 , wherein:

the request to change the designation of at least one of the plurality of processing cores is received from an operating system executing on the processor or from firmware executing on the processor.

8. A method comprising, in a multicore processor:

receiving, during an execution of program code on the multicore processor in an end-user environment, a request to change respective designations of two or more processing cores of a plurality of processing cores from designations as functional spares to designations as active cores, the plurality of processing cores including multiple processing cores that were previously designated as active cores and at least two processing cores that were previously designated as functional spares;

storing, in desired cores configuration data structure in response to the request, data representing a bitmask reflecting the requested change;

executing a reset sequence, including:

determining, based on the bitmask, that changing the respective designations of the two or more processing cores from designations as functional spares to designations as active cores would result in a number of active cores being greater than a predetermined maximum allowed number of active cores for the processor; and

refraining from changing the respective designation of at least one of the two or more processing cores from a designation as a functional spare to a designation as an active core based on the determining; and

responsive to executing the reset sequence, activating a processing core previously designated as a functional spare and deactivating a processing core previously designated as an active core, the activating or deactivating being dependent on the bitmask.

9. The method of claim 8 , wherein: a number of processing cores that were previously designated as active cores is equal to the predetermined maximum allowed number of active cores for the processor.

10. The method of claim 8 , wherein: a number of processing cores that were previously designated as functional spares is greater than or equal to a predetermined minimum number of functional spares for the processor.

11. The method of claim 8 , wherein:

executing the reset sequence comprises executing a warm reset sequence during which power is maintained for at least a portion of the processor.

12. The method of claim 8 , wherein: receiving the request to change the respective designations of the two or more processing cores of the plurality of processing cores comprises receiving the request from an operating system executing on the processor or from firmware executing on the processor.

13. A system-on-a-chip, comprising:

a plurality of processing cores, including:

multiple processing cores to be designated as active cores;

at least one processing core to be designated as a functional spare;

a memory comprising a desired cores configuration data structure; a power control unit; and

an interface to receive, during an execution of program code on the system-on-a-chip in an end-user environment, a request to change a designation of at least one of the plurality of processing cores;

wherein the power control unit is to:

responsive to the request, store, in the desired cores configuration data structure, data representing a bitmask that reflects the requested change; and

responsive to the data being stored in the desired cores configuration data structure, execute a reset sequence, wherein the reset sequence when executed is to cause the power control unit to:

activate, dependent on the bitmask, a processing core that was previously designated as a functional spare; or

deactivate, dependent on the bitmask, a processing core that was previously designated as an active core.

14. The system-on-a-chip of claim 13 , wherein:

the number of processing cores that were previously designated as active cores is equal to a predetermined maximum allowed number of active cores for the system-on-a-chip.

15. The system-on-a-chip of claim 13 , wherein:

the number of processing cores that were previously designated as functional spares is greater than or equal to a predetermined minimum number of functional spares for the system-on-a-chip.

16. The system-on-a-chip of claim 13 , further comprising:

a programmable circuit programmed to indicate which of the plurality of processing cores are enabled for use as active cores or as functional spares, dependent on results of functional testing or characterization performed during manufacturing of the system-on-a-chip.

17. The system-on-a-chip of claim 13 , wherein the power control unit is further to:

receive, during operation of the system-on-a-chip in the end-user environment, a second request to change a designation of at least two of the plurality of processing cores;

store, in the desired cores configuration data structure in response to the second request, data representing a second bitmask reflecting the second requested change;

execute, dependent on the second bitmask, a processing core swap sequence;

wherein, during execution of the processing core swap sequence, the power control unit is further to:

migrate context from a particular processing core that was previously designated as an active core to a particular processing core that was previously designated as a functional spare;

deactivate the particular processing core that was previously designated as an active core; and

activate the particular processing core that was previously designated as a functional spare.

18. The system-on-a-chip of claim 13 , wherein:

the desired cores configuration data structure is contained in a register that is writable during operation of the system-on-a-chip in the end-user environment;

the reset sequence comprises a warm reset sequence in which power is maintained for at least a portion of the system-on-a-chip.

19. The system-on-a-chip of claim 13 , wherein:

the plurality of processing cores are processing cores within a multicore processor;

the memory comprising the desired cores configuration data structure is a non-volatile memory external to the multicore processor;

the reset sequence comprises a cold reset sequence in which at least a portion of the multicore processor is powered down.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2016
From: DEHAEMER, ERIC J.; BISWAS, ARIJIT; RIEDLINGER, REID J.; STEINER, IAN M.
To: INTEL CORPORATION
Reel/Frame 040746/0522 →
Continuity (1)
Related Publication 20180181474A1 · Jun 28, 2018
Cited By (1)
US 12,210,880