A processor (110; 400; 500; 1100; 670; 680; 800) comprising: a plurality of cores (120a, 120b; 410a, 410b, 410n; 510; 1101, 1102; 674a, 674b; 684a, 684b) each configured to independently execute instructions; non-volatile storage to store a table having a plurality of entries each associating a performance scale value to a corresponding processor operating frequency, the table corresponding to a static performance-frequency mapping; and a power control unit, PCU, (138; 455; 555; 1160; 840) coupled to the plurality of cores (120a, 120b; 410a, 410b, 410n; 510; 1101, 1102; 674a, 674b; 684a, 684b) configured to control power consumption of the processor (110; 400; 500; 1100; 670; 680; 800), wherein the PCU (138; 455; 555; 1160; 840) includes: a mapping means (459; 559) configured to receive from an operating system, OS, a desired performance scale value corresponding to a desired performance level and to receive from the OS other information to determine an appropriate performance level and further configured to calculate a dynamic performance-frequency mapping curve using a workload scalability value dynamically determined for a given workload based on a set of processor metrics, the calculation based at least in part on the desired performance scale value and on the static performance-frequency mapping; and a frequency control means (458; 558) configured to determine a target operating frequency based at least in part on the desired performance scale value, on the dynamic performance-frequency mapping curve and on one or more processor constraints such as thermal constraints and voltage constraints, the frequency control means (458; 558) configured to cause the processor (110; 400; 500; 1100; 670; 680; 800) to operate at the determined target operating frequency; wherein the mapping means (459; 559) is further configured to receive the determined target operating frequency, to map the determined target operating frequency to a delivered performance scale value using the dynamic performance-frequency mapping curve, and to communicate the delivered performance scale value to the OS for use in self-learning. a plurality of cores (120a, 120b; 410a, 410b, 410n; 510; 1101, 1102; 674a, 674b; 684a, 684b) each configured to independently execute instructions; non-volatile storage to store a table having a plurality of entries each associating a performance scale value to a corresponding processor operating frequency, the table corresponding to a static performance-frequency mapping; and a power control unit, PCU, (138; 455; 555; 1160; 840) coupled to the plurality of cores (120a, 120b; 410a, 410b, 410n; 510; 1101, 1102; 674a, 674b; 684a, 684b) configured to control power consumption of the processor (110; 400; 500; 1100; 670; 680; 800), wherein the PCU (138; 455; 555; 1160; 840) includes: a mapping means (459; 559) configured to receive from an operating system, OS, a desired performance scale value corresponding to a desired performance level and to receive from the OS other information to determine an appropriate performance level and further configured to calculate a dynamic performance-frequency mapping curve using a workload scalability value dynamically determined for a given workload based on a set of processor metrics, the calculation based at least in part on the desired performance scale value and on the static performance-frequency mapping; and a frequency control means (458; 558) configured to determine a target operating frequency based at least in part on the desired performance scale value, on the dynamic performance-frequency mapping curve and on one or more processor constraints such as thermal constraints and voltage constraints, the frequency control means (458; 558) configured to cause the processor (110; 400; 500; 1100; 670; 680; 800) to operate at the determined target operating frequency; wherein the mapping means (459; 559) is further configured to receive the determined target operating frequency, to map the determined target operating frequency to a delivered performance scale value using the dynamic performance-frequency mapping curve, and to communicate the delivered performance scale value to the OS for use in self-learning. a mapping means (459; 559) configured to receive from an operating system, OS, a desired performance scale value corresponding to a desired performance level and to receive from the OS other information to determine an appropriate performance level and further configured to calculate a dynamic performance-frequency mapping curve using a workload scalability value dynamically determined for a given workload based on a set of processor metrics, the calculation based at least in part on the desired performance scale value and on the static performance-frequency mapping; and a frequency control means (458; 558) configured to determine a target operating frequency based at least in part on the desired performance scale value, on the dynamic performance-frequency mapping curve and on one or more processor constraints such as thermal constraints and voltage constraints, the frequency control means (458; 558) configured to cause the processor (110; 400; 500; 1100; 670; 680; 800) to operate at the determined target operating frequency; wherein the mapping means (459; 559) is further configured to receive the determined target operating frequency, to map the determined target operating frequency to a delivered performance scale value using the dynamic performance-frequency mapping curve, and to communicate the delivered performance scale value to the OS for use in self-learning.