Single core wakeup multi-core synchronization mechanism
First Claim
1. A microprocessor, comprising:
- a plurality of cores;
a cache memory shared by the cores; and
a control unit, configured to individually put each of the cores to sleep by stopping a clock signal to the core;
wherein each of the cores is configured to execute a sleep instruction and in response to make a respective request of the control unit to put the core to sleep;
wherein the control unit is configured to;
put each of the cores to sleep in response to the respective request; and
detect when all of the cores have made the respective request to be put to sleep and in response to wakeup only a last of the cores to make the respective request;
wherein the last of the cores is configured to;
write back and invalidate the shared cache memory and indicate that the shared cache memory has been invalidated; and
make a request to the control unit to put the last core back to sleep;
wherein the control unit is configured to;
put the last core back to sleep and continuously keep the other cores asleep while the last core writes back and invalidates the shared cache memory, indicates the shared cache memory has been invalidated, and is put back to sleep.
1 Assignment
0 Petitions
Accused Products
Abstract
A microprocessor includes a plurality of cores, a shared cache memory, and a control unit that individually puts each core to sleep by stopping its clock signal. Each core executes a sleep instruction and responsively makes a respective request of the control unit to put the core to sleep, which the control unit responsively does, and detects when all the cores have made the respective request and responsively wakes up only the last requesting cores. The last core writes back and invalidates the shared cache memory and indicates it has been invalidated and makes a request to the control unit to put the last core back to sleep. The control unit puts the last core back to sleep and continuously keeps the other cores asleep while the last core writes back and invalidates the shared cache memory, indicates the shared cache memory was invalidated, and is put back to sleep.
-
Citations
18 Claims
-
1. A microprocessor, comprising:
-
a plurality of cores; a cache memory shared by the cores; and a control unit, configured to individually put each of the cores to sleep by stopping a clock signal to the core; wherein each of the cores is configured to execute a sleep instruction and in response to make a respective request of the control unit to put the core to sleep; wherein the control unit is configured to; put each of the cores to sleep in response to the respective request; and detect when all of the cores have made the respective request to be put to sleep and in response to wakeup only a last of the cores to make the respective request; wherein the last of the cores is configured to; write back and invalidate the shared cache memory and indicate that the shared cache memory has been invalidated; and make a request to the control unit to put the last core back to sleep; wherein the control unit is configured to; put the last core back to sleep and continuously keep the other cores asleep while the last core writes back and invalidates the shared cache memory, indicates the shared cache memory has been invalidated, and is put back to sleep. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for saving power with a microprocessor having a plurality of cores, a cache memory shared by the cores, and a control unit, configured to individually put each of the cores to sleep by stopping a clock signal to the core, the method comprising:
-
by each of the cores, executing a sleep instruction and in response making a respective request of the control unit to put the core to sleep; by the control unit; putting each of the cores to sleep in response to the respective request; and detecting when all of the cores have made the respective request to be put to sleep and in response waking up only a last of the cores to make the respective request; by the last of the cores; writing back and invalidating the shared cache memory and indicating that the shared cache memory has been invalidated; and making a request to the control unit to put the last core back to sleep; by the control unit; putting the last core back to sleep and continuously keeping the other cores asleep while the last core writes back and invalidates the shared cache memory, indicates the shared cache memory has been invalidated, and is put back to sleep. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification