A computing system comprising: one or more functional blocks within a processor core, each configured to produce data corresponding to an activity level of a respective block, wherein each functional block is configured to operate at one or more discrete power-performance states (P-states), and a power manager within the processor core coupled to the one or more functional blocks, wherein the power manager is configured to: determine an average power consumption during a given time interval for the one or more functional blocks based at least in part on said data; determine a signed accumulated difference over time between the average power consumption and a desired power consumption; determine a virtual P-state corresponding to the desired power consumption, wherein the virtual P-state is not a supported discrete P-state; determine a respective minimum residency time to be used for each of a lower P- state lower than the virtual P-state and a higher P-state higher than the virtual P-state; and prevent a P-state transition, in response to determining a respective minimum residency time has not yet elapsed for a current P-state or determining the signed accumulated difference is lower than a first threshold and is greater than a second threshold, wherein each of the first threshold and the second threshold is used for determining when to select a next P-state and the first threshold is a positive threshold and the second threshold is a negative threshold; select a P-state lower than the current P-state in response to at least determining the signed accumulated difference is greater than the first threshold; and select a P-state higher than the current P-state in response to at least determining the signed accumulated difference is less than the second threshold. one or more functional blocks within a processor core, each configured to produce data corresponding to an activity level of a respective block, wherein each functional block is configured to operate at one or more discrete power-performance states (P-states), and a power manager within the processor core coupled to the one or more functional blocks, wherein the power manager is configured to: determine an average power consumption during a given time interval for the one or more functional blocks based at least in part on said data; determine a signed accumulated difference over time between the average power consumption and a desired power consumption; determine a virtual P-state corresponding to the desired power determine an average power consumption during a given time interval for the one or more functional blocks based at least in part on said data; determine a signed accumulated difference over time between the average power consumption and a desired power consumption; determine a virtual P-state corresponding to the desired power consumption, wherein the virtual P-state is not a supported discrete P-state; determine a respective minimum residency time to be used for each of a lower P- state lower than the virtual P-state and a higher P-state higher than the virtual P-state; and prevent a P-state transition, in response to determining a respective minimum residency time has not yet elapsed for a current P-state or determining the signed accumulated difference is lower than a first threshold and is greater than a second threshold, wherein each of the first threshold and the second threshold is used for determining when to select a next P-state and the first threshold is a positive threshold and the second threshold is a negative threshold; select a P-state lower than the current P-state in response to at least determining the signed accumulated difference is greater than the first threshold; and select a P-state higher than the current P-state in response to at least determine a respective minimum residency time to be used for each of a lower P- state lower than the virtual P-state and a higher P-state higher than the virtual P-state; and prevent a P-state transition, in response to determining a respective minimum residency time has not yet elapsed for a current P-state or determining the signed accumulated difference is lower than a first threshold and is greater than a second threshold, wherein each of the first threshold and the second threshold is used for determining when to select a next P-state and the first threshold is a positive threshold and the second threshold is a negative threshold; in response to determining a respective minimum residency time has not yet elapsed for a current P-state or determining the signed accumulated difference is lower than a first threshold and is greater than a second threshold, wherein each of the first threshold and the second threshold is used for determining when to select a next P-state and the first threshold is a positive threshold and the second threshold is a negative threshold; select a P-state lower than the current P-state in response to at least determining the signed accumulated difference is greater than the first threshold; and select a P-state higher than the current P-state in response to at least determining the signed accumulated difference is less than the second threshold.