Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin
Dynamically reconfigurable multi-core microprocessors and associated methods are provided. A multi-core microprocessor is provided that supports the ability of system software to disable, or kill, selected cores in such a way that they do not cause drag on the processor bus shared with the other cores. Another multi-core microprocessor is provided that supports reconfiguration of an inter-core coordination system of the microprocessor, wherein cores may be selectively designated as masters for purposes of driving signals onto an inter-core communication wire.
1. A dynamically reconfigurable multi-core microprocessor comprising:
a plurality of initially enabled processing cores;
each initially enabled core being configured to execute a kill instruction issued by system software by disabling the core from responding to transactions on a system bus externally coupled to the multi-core microprocessor, thereby disabling the core;
wherein a kill-instruction-disabled core is disabled from complying with a reset message instruction sent over the system bus, but remains operable to be revived by an external reset on a reset pin of the multi-core microprocessor, and, if so reset, to resume operability as an enabled processing core unless and until it receives another kill instruction.
2. The dynamically reconfigurable multi-core microprocessor of claim 1 , wherein as a result of being unresponsive to system bus transactions, a core disabled by the kill instruction does not respond to snoop cycles on the system bus.
3. The dynamically reconfigurable multi-core microprocessor of claim 1 , wherein each initially enabled core is further configured, in response to the kill instruction, to put itself into a power-conserving sleep state.
4. The dynamically reconfigurable multi-core microprocessor of claim 1 , wherein other initially enabled cores not disabled by a kill instruction are configured, by internal power-state management microcode, to coordinate power state management between themselves without accounting for any requested power state value of any disabled cores.
5. A method for dynamically reconfiguring a multi-core microprocessor having a plurality of processing cores, the method comprising:
initially enabling the processing cores;
by each initially enabled core, executing a kill instruction issued by system software by disabling the core from responding to transactions on a system bus externally coupled to the multi-core microprocessor; and
wherein a kill-instruction-disabled core is disabled from complying with a reset message instruction sent over the system bus, but remains operable to be revived by an external reset on a reset pin of the multi-core microprocessor, and, if so reset, to resume operability as an enabled processing core unless and until it receives another kill instruction.
6. The method of claim 5 , wherein as a result of being unresponsive to system bus transactions, a core disabled by the kill instruction does not respond to snoop cycles on the system bus.
7. The method of claim 5 , further comprising:
by each initially enabled core, in response to the kill instruction, putting itself into a power-conserving sleep state.
8. The method of claim 5 , further comprising:
by internal power-state management microcode of other initially enabled cores not disabled by a kill instruction, coordinating power state management between themselves without accounting for any requested power state value of any disabled cores.
9. A computer program product encoded in at least one non-transitory computer usable storage medium for use with a computing device, the computer program product comprising:
computer usable program code embodied in said medium, for specifying a dynamically reconfigurable multi-core microprocessor, the computer usable program code comprising:
program code for specifying a plurality of initially enabled processing cores;
each initially enabled core being configured to execute a kill instruction issued by system software by disabling the core from responding to transactions on a system bus externally coupled to the multi-core microprocessor, thereby disabling the core; and
wherein a kill-instruction-disabled core is disabled from complying with a reset message instruction sent over the system bus, but remains operable to be revived by an external reset on a reset pin of the multi-core microprocessor, and, if so reset, to resume operability as an enabled processing core unless and until it receives another kill instruction.
10. The computer program product of claim 9 , wherein as a result of being unresponsive to system bus transactions, a core disabled by the kill instruction does not respond to snoop cycles on the system bus.
11. The computer program product of claim 9 , wherein each initially enabled core is further configured, in response to the kill instruction, to put itself into a power-conserving sleep state.
12. The computer program product of claim 9 , wherein other initially enabled cores not disabled by a kill instruction are configured, by internal power-state management microcode, to coordinate power state management between themselves without accounting for any requested power state value of any disabled cores.