A processor comprising: a scheduler configured to select and issue instructions; an execution core configured to receive and execute the issued instructions; and a power throttle unit, wherein the power throttle unit is configured to: maintain one or more instruction issue counts for one or more instruction types, wherein maintaining a given instruction issue count comprises: incrementing the given instruction issue count by a first amount each clock cycle an instruction of a given instruction type is issued to the execution core; and decrementing the given instruction issue count by a second amount each clock cycle an instruction of the given instruction type is not issued to the execution core; and in response to determining a given instruction issue count of the one or more instruction counts exceeds a threshold: select at least one instruction type of the one or more instruction types for a limited instruction issue rate; and choose a new issue rate for the at least one instruction type. a scheduler configured to select and issue instructions; an execution core configured to receive and execute the issued instructions; and a power throttle unit, wherein the power throttle unit is configured to: maintain one or more instruction issue counts for one or more instruction types, wherein maintaining a given instruction issue count comprises: incrementing the given instruction issue count by a first amount each clock cycle an instruction of a given instruction type is issued to the execution core; and decrementing the given instruction issue count by a second amount each clock cycle an instruction of the given instruction type is not issued to the execution core; and in response to determining a given instruction issue count of the one or more instruction counts exceeds a threshold: select at least one instruction type of the one or more instruction types for a limited instruction issue rate; and choose a new issue rate for the at least one instruction type. maintain one or more instruction issue counts for one or more instruction types, wherein maintaining a given instruction issue count comprises: incrementing the given instruction issue count by a first amount each clock cycle an instruction of a given instruction type is issued to the execution core; and decrementing the given instruction issue count by a second amount each clock cycle an instruction of the given instruction type is not issued to the execution core; and incrementing the given instruction issue count by a first amount each clock cycle an instruction of a given instruction type is issued to the execution core; and decrementing the given instruction issue count by a second amount each clock cycle an instruction of the given instruction type is not issued to the execution core; and in response to determining a given instruction issue count of the one or more instruction counts exceeds a threshold: select at least one instruction type of the one or more instruction types for a limited instruction issue rate; and choose a new issue rate for the at least one instruction type. select at least one instruction type of the one or more instruction types for a limited instruction issue rate; and choose a new issue rate for the at least one instruction type.