Why Cell?
Ever wonder why Cell processors have been the next, best thing?
BLURB
A common question asked by many ChipGeek posters is, essentially, "Why has IBM and Sony's Cell processor received so much press, and why the interest?" The short answer is that it's not just a logical progression, but rather a new way of thinking about computing.
In fact, it's a trend we're seeing in every area of computing these days. Semiconductor companies are facing real challenges in bringing higher-clocked processors to the market in an economical way. They've chosen instead to add additional cores and maintain the same or similar clock speeds as older models. This concept of adding more cores is called "going wider." It definitely provides the potential for much greater throughput and processing power, and it has the added benefit of not requiring a much-improved and much more expensive manufacturing process. These latest batch of dual-core processors from Intel and AMD are just one sign of this growing trend, and it is Cell that takes it to an extreme.
Background
To understand why Cell has sparked such great interest in the industry we need to take a look at existing microprocessor designs and their history. For the sake of argument, let's break them down into what they are and what they do.
First, a microprocessor is a device that carries out some workload. The workload is not a mechanical workload, but rather a form of sequential math equations executed in sequence to produce real-world results. The precision with which that workload is carried out literally boggles the mind. It's truly amazing that microprocessors even work at all.
Second, the workload is applied to a system that then allows its computed values to change the state of something, such as the data displayed on a monitor, the state of an LED on your keyboard, the magnetic "dots" on a hard drive, the relative position of your speaker horn through its electromagnetic properties, etc.
When you put it all together it's nothing short of the most amazing piece of music you've ever heard being played by the most skilled orchestra you could imagine. And the funny part is we're not even at the apex yet. As precise as everything is today, there is still--at very small scales--jitter, fluctation, and all kinds of flat/sharp-inducing qualities that, to the trained ear, will ruin the piece. Still, for the majority of us it is more than enough.
So, if we go back in history we find that in the beginning there was a single core doing all of the work. In fact, the early 80386 models incorporated a three-stage pipeline consisting of "fetch, decode, and execute." This pipeline performed excellently, doing everything necessary to process data. But it was quickly realized that if we changed the nature of how the workload was attacked and processed, even greater speed-ups would be possible.
Stepping forward, we see the 5-stage pipeline evolving into 10 stages, 12 stages, 20 stages, and even 31 stages over time. As a result of this multi-year experiment, reality has shown us that there is a tradeoff between how deep you can go and how much of a real-world return there is when considering the variable nature of software and its required processing steps. It seems that 10-15 stages is just about ideal for today's high-speed microprocessors, with 13-20 stages being more desirable were streaming instruction sequences possible.
Another practical reality hitting the semiconductor world is this: the faster you go, the more expensive it gets. In order for a processor to run faster the entire orchestra must go faster. Now, whereas for the metaphorical person playing the cymbals this might not truly be an issue, you can rest assured that there's someone in the orchestra who has to do some really, really fast and complex hand movements in order to work those 64th notes. As such, there's a physical limit as to how much faster the orchestra can go.
This example shows us that in order to make a processsor go faster, the entire sum of everything inside the processor must be made to go faster. This requires an enormous effort and explains why we don't see faster and faster processors spewed out to the market every other week. It's really an absolutely amazing technological feat, and we should never forget that.
Multi-Core means better throughput
So if it's that much harder to go faster, what's the next best solution? It's the one that doesn't go faster, but still provides greater throughput. Enter the concept of multiple cores and you're halfway to the reason why Cell is so desirable.
In a multi-core scenario a single chip can now be operating on multiple tasks simultaneously, each working on its own set of fixed resources, thereby providing a relatively known increase in performance. And one advantage of
multi-core systems is that since more than one task can be executed simultaneously, more than one program can run at the same time; plus, a single program, one that can have its workload broken out into multiple and isolated parts, can be executed more quickly.
The type of software necessary to take advantage of multiple cores adds an additional layer of complexity and requires greater skill from the software writer, be it a compiler doing whatever it can or via a skilled developer writing custom-coded algorithms that take advantage of this level of parallelism. In short, it's harder to do. This fact is exemplified by Microsoft's Bill Gates saying a while back that "the free lunch is over," meaning that software developers can no longer count on chipmakers to make their software go faster for them. Now it's up to the developers' skill.
Cell takes the multi-core concept, one born primarily in the world of general-purpose computing, and says, "What if we didn't really need such general-purpose computing, but rather could leverage specific abilities, streamlined and pipelined for the sole purpose of carrying out a particular type of data processing even faster than those general-purpose computers can do?" Cell addresses that question in its architecture.
Cell is Multi-core inside
Cell processors comprise many cores, but each of them is somewhat less than would be found in a straightforward, general-purpose core, such as Intel's Core Duo or AMD's X2 technology. In the Intel and AMD models the full capabilities of doing all kinds of computing at high rates of speed exists, which makes them very well suited for general-purpose computing. The same cannot be said for Cell processors. They do what they do very, very well, but in order to carry out more general-purpose workloads, many more sequences of instructions must be executed, meaning it takes much longer to process data.
Cell carries with it a specialized, or focused idea of computing, and it will be very well suited for its targeted applications. But make no mistake about it: while Cell might be introducing a concept that will eventually morph into what we end up seeing in the general-purpose computing world, it will not be Cell itself that takes the world by storm. It will be a marriage of existing multi-core, general-purpose computing models coupled to the realization that not all workloads require such generalized equipment.
The future
I still believe whole-heartedly that the future of microprocessor design must center itself and focus on the reality that the microprocessor designer cannot possibly know all of the varied and variable workloads that will come at microprocessors in the years to come. As such, the central core must be designed in a completely flexible manner, allowing the plug-in, add-on abilities of whatever specialized pieces of technology are required to carry out the workload in the most efficient manner possible. I truly believe that with everything I've got inside. It's been my dream for a very long time, and one I wrote down on paper nearly 12 years ago.
Cell technology will change specific types of computing. It will add new power and abilities to specific industries, primarily those that have many sequential, specialized computing needs, and it will be well received once its makers get the manufacturing issues resolved. Today's high-end Cell processors have demonstrated enormous throughput potential for those specialized workloads. And what we are seeing is the promise of something greater, and the door opening to the realization that the single, general-purpose
computer, while wholly desirable until about now, is about to change its face as well.
The future will be about multiple, specialized cores running in parallel to carry out the requisite workloads. And today's encapsulated angle of that vision resides in Cell technology. Tomorrow's version will not be quite the same, but it will be an evolution of what we see in Cell now.
Please post your thoughts below on Cell technology and what it has the potential to offer to the world.