Power limits for virtual partitions in a processor
AssigneeIntel Corporation
InventorsAdwait Purandare, Ian Steiner, Vasudevan Srinivasan, Ankush Varma, Nikhil Gupta, Stanley Chen
Life of this patent
Estimating the term…
Abstract
In an embodiment, a processor includes multiple processing engines and a power control unit. The power control unit is to receive a mapping of multiple virtual partitions to sets of the processing engines, and in response to a receipt of the mapping of multiple of virtual partitions: access a power limit table for the processor, and generate multiple virtual partition power limit tables based on the power limit table for the processor, where each virtual partition power limit table is associated with a different virtual partition. Other embodiments are described and claimed.
Claims14
A processor comprising:
- a plurality of processing engines;
- and
- a power control unit to:
- receive a mapping of a plurality of virtual partitions to sets of the processing engines;
- in response to a receipt of the mapping of the plurality of virtual partitions:
- access a power limit data structure for the processor;
- and
- generate a plurality of virtual partition power limit data structures based on the power limit data structure for the processor, wherein each of the plurality of virtual partition power limit data structures is associated with a different virtual partition of the plurality of virtual partitions, wherein the power limit data structure is to include information regarding a plurality of buckets, wherein the information is to at least include, per bucket, a count of active processing engines for the bucket and a maximum clock frequency for the bucket, wherein the power limit data structure is to include K rows associated with K buckets, wherein K is an integer greater than 2;
- each row k of the power limit data structure stores a count N(k) of active processing engines for the associated bucket k, wherein k is an integer value from 1 to K;
- wherein the power control unit is further to:
- for each virtual partition p of P virtual partitions:
- for each bucket k of the power limit data structure:
- determine a ratio R(k) of the count N(k) of active processing engines to a total count T of the plurality of processing engines in the processor;
- multiply the ratio R(k) by a number E(p) of processing engines allocated to the virtual partition p to obtain a count A(k,p) of active processing engines in the virtual partition p for the bucket k;
- and
- store the count A(k,p) in a row k of a virtual partition power limit data structure associated with the virtual partition p.
A method comprising:
- receiving, by a power control circuit of a processor, a mapping of a plurality of virtual partitions to sets of processing engines of the processor;
- in response to a receipt of the mapping of the plurality of virtual partitions, the power control circuit accessing a power limit data structure for the processor;
- and
- generating, by the power control circuit, a plurality of virtual partition power limit data structures based on the power limit data structure for the processor, wherein each of the plurality of virtual partition power limit data structures is associated with a different virtual partition of the plurality of virtual partitions, wherein the power limit data structure is to include information regarding a plurality of buckets, wherein the information is to at least include, per bucket, a count of active processing engines for the bucket and a maximum clock frequency for the bucket, wherein the power limit data structure includes K rows associated with K buckets, wherein K is an integer greater than 2, each row k of the power limit data structure stores a count N(k) of active processing engines for the associated bucket k, wherein k is an integer value from 1 to K, wherein each row k of the power limit data structure stores a maximum clock frequency F(k) for the power bucket k, and the generated plurality of virtual partitions includes P virtual partitions, wherein P is an integer greater than 2;
- for each virtual partition p of the P virtual partitions:
- for each bucket k of the power limit data structure:
- determining a ratio R(k) of the count N(k) of active processing engines to a total count T of the plurality of processing engines in the processor;
- multiplying the ratio R(k) by a number E(p) of processing engines allocated to the virtual partition p to obtain a count A(k,p) of active processing engines in the virtual partition p for the bucket k;
- and
- storing the count A(k,p) in a row k of a virtual partition power limit data structure associated with the virtual partition p.
A non-transitory machine-readable medium storing instructions, the instructions executable by a processor to perform a method comprising:
- receiving a mapping of a plurality of virtual partitions to sets of processing engines of a processor;
- in response to receiving the mapping of the plurality of virtual partitions, access a power limit data structure for the processor;
- and
- generating a plurality of virtual partition power limit data structures based on the power limit data structure for the processor, wherein each of the plurality of virtual partition power limit data structures is associated with a different virtual partition of the plurality of virtual partitions, wherein the power limit data structure is to include information regarding a plurality of buckets, wherein the information is to at least include, per bucket, a count of active processing engines for the bucket and a maximum clock frequency for the bucket, wherein the information is to at least include, per bucket, a count of active processing engines for the bucket and a maximum clock frequency for the bucket, wherein the power limit data structure includes K rows associated with K buckets, wherein K is an integer greater than 2, each row k of the power limit data structure stores a count N(k) of active processing engines for the associated bucket k, wherein k is an integer value from 1 to K, wherein each row k of the power limit data structure stores a maximum clock frequency F(k) for the power bucket k, and the generated plurality of virtual partitions includes P virtual partitions, wherein P is an integer greater than 2;
- for each virtual partition p of the P virtual partitions:
- for each bucket k of the power limit data structure:
- determining a ratio R(k) of the count N(k) of active processing engines to a total count T of the plurality of processing engines in the processor;
- multiplying the ratio R(k) by a number E(p) of processing engines allocated to the virtual partition p to obtain a count A(k,p) of active processing engines in the virtual partition p for the bucket k;
- and
- storing the count A(k,p) in a row k of a virtual partition power limit data structure associated with the virtual partition p.
Dependencies are inferred from the claim text.