Last month I read an excellent article in the May issue of Communications of the ACM (CACM) about the future direction of microprocessors. Shekhar Borkar and Andrew Chien’s argument is that energy efficiency is now the limiter of processor development and performance – simply adding cores at ever higher frequencies will lead to prohibitive power consumption. With an expectation of 150-million logic transistors by 2018 they further argue that it will not be feasible to simply replicate identical cores to achieve the performance gain of 30x predicted by the improvements seen over the last two decades. To deal with this issue they suggest that processor designers will instead provide multiple types of core which trade a combination of number, size and complexity against throughput.
In a related blog article at Dr. Dobb’s, Cameron and Tracey Hughes raise the question of transparency for software developers. They question whether they will be able to “write once and run everywhere” or will they need to get out the “Trick Bag” to explicitly deal with the potential variance from processor to processor, machine to machine.
The quick answer, I believe, is that the effect of availability and differences in cores will be felt by system programmers – those that create and maintain operating systems and compiler chains – first. Having said that I don’t believe there is actually an easy answer to the Hughes’ question as the CACM article, whilst being solidly grounded in the hardware aspects, does raise questions related to the software. This is especially true if it is not just the cores that differ, but that the established environment (for example, a flat coherent address space) changes.
The article’s “key insights” summary also talks about application-customised hardware but that, to me, has the implication that gains from multiple cores will only be apparent in specific fields. The aim of energy efficiency may not, in such a situation, translate, or at least achieve its full potential, in a wider market.
So we have lots of questions with no easy answers to any of them. Why is this?
Posted by coolreport