Quadcores – end of a line?
Intel and AMD have both made announcements of new processors in the past couple of weeks, attempting to steal each other's thunder. Intel has announced the last Xeon Cores and AMD has released the first of its Barcelona processors. Both sets are quad-cores; in the former case a pair of coupled dual-cores and in the latter a “full” quad core. Let's start by acknowledging the engineering feats that been achieved in building both these product lines and in evolving them to their present state of refinement.
Whilst Intel and AMD are going head-to-head, we are rapidly reaching a point where the real multi-core effort is about to start and the industry is set for some big changes. Intel demonstrated Penrhyn processors at IDF last week and there have been rumblings again about Larrabee and what it may, or may not, be. The next step for quad cores would be to go to eight or more likely sixteen cores on a chip.
For a rough idea of the complexity involved in an eight-core processor with current technologies, try this exercise. Look at one of those ads that Intel put out showing the inside of a Core Duo, now imagine quadrupling the processor area; and the memory; add probably more than four times as much control hardware, external interfaces and so on. To go to sixteen, double that again. Of course, you can allow for some feature shrinkage and judicious streamlining of some components. But don't forget the packaging, the pin-out necessary for all those lines, not to mention the need to get the power in and heat out.
Even on such a simplistic view of an eight or sixteen core layout, it is clear that something must change. “To what?” is a complex and interesting question; the easy answer might be “to something similar”, but, if changing things a little only delays a more substantial change, is it worth it? How to evolve to a graceful change and what the roadmap might be for any resulting design encapsulates the future of the industry.
Many in the industry reckon that, at about eight cores, we reach a tipping-point beyond which the classical x86 architecture and others really become unviable as a mainstream design. There is, of course, some remaining room for manoeuvre. But increasing the number of CISC-style cores requires a large amount of area, even with feature shrinks. With increased area the probability of faults on the die increases and likely yield decreases. The more cores of that type that are coupled together, the more complex the routing and management hardware becomes and that also impacts on available area. The principle design question then becomes “what alternative architectures are there?”
That automatically throws up questions such as “must the next generation support (say) Windows in the same way that the x86 does and if not what technologies will compensate for lack of direct support? How will on-chip and off-chip communications be handled? What memory model will it use?” And so on.
Software generates more issues. For existing operating systems and tools to work with the systems having the level of complexity of even such a simplistic eight-core system as the one envisaged above is a major task. The demands that would be placed on current software by increasing complexity in the current hardware model also militate for a change in architecture.
Software efficiency is severely decreased by complex hardware designs. The likelihood is that nothing close to peak efficiency can be achieved without new software technologies. Proper use of quad-cores already requires careful restructuring of any software running on them. The situation won't get any easier.
Are quad-cores the end of the line for the x86 architecture, then?
There are a number of factors supporting that point of view and while it must ultimately be in the hands of the manufacturers, it looks likely that a major change is likely at some point in the not too distant future. How far ahead? In terms of announcements to the market; if the timing is roughly in line with Moore's Law, it might be in about two years or so. This is based on an assumption that Intel leads the pack, that they have basically finished announcing their Core-architectured processors; that they are already working on the next step and that AMD can't be far behind them. Release to the mainstream commercial market? Somewhat longer than that, but not that long; commercial and market pressures alone dictate that.
Is such a major change inevitable in that sort of timescale? No, not absolutely, but if you start plotting consumption of power against performance, feature size, complexity and overall cost of ownership and then throw in other factors such as capital costs for development and investment in new plant, it becomes fairly clear that change must come.
From that perspective, then, it is also fairly clear that the current generation stands a good chance of being the last to use the present hardware paradigm. The change, whenever it comes, will represent a real shift in computing technology. For the hardware manufacturers, it will represent both a major opportunity and a major risk.
Is there a halfway house? There may be. Intel's much discussed Larrabee chip is a spin-out from the Terascale Computing Program which developed the eighty-core processor announced some while back. It may well allow Intel to explore some of the technical issues surrounding the change and help resolve some design issues. Although unlikely to be announced until some time next year, it is clear that it will have tens of cores and support a modified version of the IA (Intel Architecture).
Software will change too. Tony Hoare is often quoted as having said “I don't know what language I will be programming with in twenty years but I know that it will be called FORTRAN”. In twenty years many will still be using Microsoft “something”, but if you could look under the hood, like FORTRAN has, it too will have changed beyond recognition.
