Choosing the right core depends on what you’re going to do with it, but that doesn’t make it any easier.
By Barry Pangrle
What type of core should I choose if I want to be really power-efficient?
That’s an interesting question. The answer that a lot of people will hate to hear is that it depends. Probably the first question that needs to be answered is, what does power-efficient mean to you and how power-efficient do you really want to be? Most people can’t wait forever for a result to be computed and will have some maximum time limit before the result is considered to be delivered too late.
The intended application makes a lot of difference. For example, suppose that your primary objective is image processing. Then a “non-standard” instruction-set-architecture machine like a graphics processing unit could be more efficient. If your application looks more like a large FSM controller with very little data path then the processor array is probably not the architecture for you. Clearly, the ratio of control to data processing impacts the efficiency of the processor architecture.
There’s also the consideration between power and energy. Suppose I have a battery-operated computer—no, make that two battery-operated computers. I charge both of the batteries up and I start an identical program on each computer to calculate some results on a large set of data so that the CPUs on both machines are kept busy. As an example, let’s say that Machine 1 runs at 50W and Machine 2 runs at 30W. Machine 1 completes the problem in 1 hour and Machine 2 completes the problem in 2 hours. Machine 1 runs at a higher power level but consumes only 0.05 Kwh (like on your electric bill) of energy, while Machine 2 consumes 0.06 Kwh of energy. If once the machines are each finished with the computation they shut themselves off then clearly Machine 1 is the most energy-efficient (for this scenario anyway). I’ll save 0.01 Kwh by running the problem on Machine 1 instead of Machine 2, and I’ll get the added bonus of getting the answer in half the time.
If these were both laptop machines, which would you buy? What if the battery on Machine 2 ran out before it finished the computation? What if you don’t typically stress the CPU much and most of the time you only use the machine for reading e-mail and other office suite tools?
In their article “The Case for Energy Proportional Computing”, Luiz André Barroso and Urs Hölzle of Google note that the typical operating points for server CPUs is in the 10% to 50% utilization range. This clearly points to the potential for power management techniques to dramatically cut back the energy usage when these cores aren’t being fully utilized (which is most of the time). Datacenters have to be provisioned, though, to handle the peak load periods.
Dileep Bhandarkar, who is Microsoft’s chief architect for global foundation services, has performed an analysis of server CPUs in terms of performance/watt/$ and reached the conclusion that the highest-performing and most power-hungry parts don’t deliver the highest scores in this metric. He has requested that x86 manufacturers create 16-core parts using their more power-efficient cores. Given that both major x86 manufacturers have created separate x86 core architectures for different target markets should already be an indication that it’s not only about the instruction set. Likewise, ARM has multiple core implementations and is developing new ones to target more markets. In an article titled “Brawny Cores Still Beat Wimpy Cores, Most of the Time” that appeared in the July/August 2010 “Datacenter Computing” issue of the journal IEEE Micro, Urs Hölzle points out other considerations from a total cost of ownership standpoint that would influence a buyer’s decision. (I also think that “Most of the Time” is really just code for saying, “It depends.”)
The reality, though, is that to make an informed decision it’s important to know the expected workload and to choose a system with an architecture that’s balanced to deliver the best performance, power and cost under that workload. Therefore, it’s even more important that the system architects have access to tools to design a balanced system to match the market. How do your system architects make their tradeoff decisions?
–Barry Pangrle is a solutions architect for low-power design and verification at Mentor Graphics.
Leave a Reply