Reducing power consumption in embedded systems by controlling voltage based on system state and partition designation
View Patent ↗An embedded system optimally operates with minimal power consumption without sacrificing performance. Power consumption can be reduced by independently and dynamically controlling multiple power partitions, wherein components within a partition can have the same power profile. States of operation can be programmably defined in a table and enforced using hardware. Voltages in the table can be dynamically updated during a runtime of the system using a timing feedback module, which is connected to a critical path in a partition. The timing feedback module can output a vector that indicates the timing margin for that critical path. Using this timing margin, software can increase or decrease the voltage to optimize power consumption of that partition.
1. A system for optimizing power for an embedded system, the system comprising:
means for partitioning a single chip implementation of the embedded system into power domains, wherein at least one power domain includes a plurality of critical paths;
means for selecting at least one critical path in each power domain; and
means for adjusting voltages of the power domains based on timing margins associated with the critical paths,
wherein the means for adjusting includes:
a time delay circuit for each critical path;
means for comparing an output signal of each critical path to propagated signals associated with stages on each time delay circuit, thereby generating a timing margin vector for each critical path; and
means for generating a combined result vector based on the timing margin vectors,
wherein the means for comparing includes:
an XOR gate for receiving the output signal of the critical path and one of the propagated signals; and
means for storing a designation of whether the output signal and the propagated signal are different values, wherein the designations from the stages form the timing margin vector,
wherein the means for storing includes:
an OR gate for receiving an output of the XOR gate; and
a flip-flop for receiving an output of the OR gate and providing an output to another input terminal of the OR gate.
2. The system of claim 1 , wherein the means for generating includes a plurality of OR gates, each OR gate receiving a predetermined order bit from each of the timing margin vectors, wherein the outputs of the plurality of OR gates form the combined result vector.
3. A method of performing time optimization for an embedded system, the method comprising:
selecting multiple, critical paths in the embedded system;
generating a timing margin vector for each critical path using a time delay circuit, wherein each bit of the timing margin vector corresponds to a stage of the time delay circuit; and
determining a worst-case timing margin vector based on the timing margin vectors,
wherein generating the timing margin vector includes:
comparing an output signal from a critical path to propagated signals corresponding to stages of the time delay circuit;
providing a first logic value to the timing margin vector if the output signal and the propagated signal are identical logic values; and
providing a second logic value to the timing margin vector if the output signal and the propagated signal are not identical logic values; and
wherein determining the worst-case timing margin vector includes:
comparing the bits associated with a same stage of the plurality of time delay circuits;
providing the first logic value to the worst-case timing margin vector if the bits are identical logic values; and
providing the second logic value to the worst-case timing margin vector if the bits are not identical logic values.
4. The method of claim 3 , wherein generating the timing margin vector and determining the worst-case timing margin vector can be performed at least once during run time of the embedded system.
5. The method of claim 3 , wherein generating the timing margin vector and determining the worst-case timing margin vector can be performed periodically during run time of the embedded system.
6. The method of claim 3 , wherein a predetermined value in the worst-case timing margin vector triggers one of a voltage decrease.
7. The method of claim 3 , wherein a predetermined value in the worst-case timing margin vector triggers an interrupt in the embedded system to decrease voltages for a current state.
8. The method of claim 3 , wherein a predetermined value in the worst-case timing margin vector triggers a read of the timing margin vectors to identify which critical path has a smallest margin, wherein a voltage of a partition associated with that identified critical path is then increased for a current state.
9. A timing feedback module for generating a timing margin vector, the timing feedback module including:
a time delay circuit coupled to receive an output of a critical path in an integrated circuit; and
a compare circuit for comparing the output signal of the critical path to propagated signals associated with stages on the time delay circuit,
wherein the compare circuit includes:
a plurality of XOR gates, each XOR gate for receiving the output signal of the critical path and one of the propagated signals;
a first plurality of OR gates, each OR gate for receiving an output of the XOR gate; and
a plurality of flip-flops, each flip-flop for receiving an output of the OR gate and providing an output to another input terminal of the OR gate, the output forming a predetermined bit of a timing margin vector.
10. The timing feedback module of claim 9 , further including a second plurality of OR gates, each OR gate receiving a predetermined order bit from each of the timing margin vectors, wherein the outputs of the plurality of OR gates form a combined result vector.