How Sony's Development of the Cell Processor Benefited Microsoft
The Wall Street Journal is running an article about a recently released book entitled "The Race for a New Game Machine" which details Sony's development of the Cell processor, written by two of the engineers who worked on it. They also discuss how Sony's efforts to create a next-gen system backfired by directly helping Microsoft, one of their main competitors. Quoting:
"Sony, Toshiba and IBM committed themselves to spending $400 million over five years to design the Cell, not counting the millions of dollars it would take to build two production facilities for making the chip itself. IBM provided the bulk of the manpower, with the design team headquartered at its Austin, Texas, offices. ... But a funny thing happened along the way: A new 'partner' entered the picture. In late 2002, Microsoft approached IBM about making the chip for Microsoft's rival game console, the (as yet unnamed) Xbox 360. In 2003, IBM's Adam Bennett showed Microsoft specs for the still-in-development Cell core. Microsoft was interested and contracted with IBM for their own chip, to be built around the core that IBM was still building with Sony. All three of the original partners had agreed that IBM would eventually sell the Cell to other clients. But it does not seem to have occurred to Sony that IBM would sell key parts of the Cell before it was complete and to Sony's primary videogame-console competitor. The result was that Sony's R&D money was spent creating a component for Microsoft to use against it."
the cell is not "made from scratch". It's based on powerpc. Minus the branch prediction and some other goodies, and with additional cores specialised for numerics called "SPEs". Without the SPEs it's a piece of junk. And the xbox360's processor doesn't have the SPEs.
This article is full of shit.
Big deal if M$ got their hands on a crap, slow design based on the G5 powerpc, and they made it able to execute 2 threads per core and put 3 cores on a die. It has NOTHING LIKE the gigaflops of the cell.
I'm not a games console programmer, but I understood that the 'core' of the Cell and the chip used in the XBox 360 are both derivatives of the standard PowerPC chip. This smells like a couple of trolls being mischievous. IBM can do what they like with PowerPC, and that includes selling it to both Micrsoft for the XBox 360 and to Nintendo to power the Wii.
Sony's payback comes when Playstation3 programmers learn to fully utilize the Cell architecture.
Maybe I have to read the book to get a better picture, it is possible that the article blows things out of proportion. So, I thought that the whole "deal" about the Cell are the SPE's. The Xenon CPU that powers the Xbox 360 is just a custom-made triple core PowerPC. Now, I guess the "customization" of that core is similar to what is done for the PPE of the Cell, so research there could have overlapped, but I would not think that the PPE is the "essence" of the Cell - at least that is what Sony's and IBM's own claims have made me believe.
Additionally, I have to admit that I always thought the usage of the Cell processor a very bad (or, more precisely, very arrogant) decision. It is not just that it has many "cores"; the fact that they are asymmetric and that SPE's are not your usual general-purpose cores, was bound to make it very hard for developers to utilize them. If you wanted to develop for many platforms there is no way you would want to optimize for the SPE's when all other architectures (PC, Xbox...) use symmetric, general purpose cores. So, in my book, the Microsoft engineers knew much better what they were doing than the Sony ones. I guess they are not the same engineers responsible for gems like Me, Vista or Zune firmware.
What I would like to know are the differences that the modified core has compared to a "classic" PowerPC core? So, if MS had not benefited at all from Cell research and got a triple-core whose cores were closer to the original PowerPC, would it be a much different CPU? Anybody knows? If the answer is not, the whole discussion about MS benefits from Sony is moot...
Violence is the last refuge of the incompetent. Polar Scope Align for iOS
There are a number of errors in the comment above and a number of oversights.
First it is true that the Graphics processing of the PS3 was originally intended to be handled by a Cell processor, but this is not the same as saying the Cell processor was built to be a graphics processor. The original specs for the PS3 included 4 fully functional cell processors. This would have meant that there would be no need for dedicated GPU. Time and cost made this configuration prohibited.
The reason the PS3 does not have dedicated memory is because it is a very different design. First the PS3 contains a very high speed data bus, which allows the system to keep it's lower amount of memory full of the data it needs at any given time, with no need to store data not actively in use. Secondly the GPU in the PS3 has direct access to almost all of the memory in the system (480MB to be exact). It's just not the same picture that some people would like to paint. Dedicated memory has it's advantages (which is why all high end PC GPUs have such).
Now the reason that Sony, Toshiba and IBM design the Cell and crammed it into a PS3, prematurely, is ingenious, but we wont see this for a number of years. The Cell processor is designed from the ground up to work effective as a single node of a multi processor system. This means that you can include more than one, utilize the same code, and get a much faster program rate. What this means is that for computing today you can use a single Cell processor and have a fast machine. In the future you can have a machine with 4, 8, 16, or more cell processors and have an unbelievable fast machine. On top of that speed you also get a very energy efficient machine. Take a look at the top 500 supercomputer list to see what a difference the cell processor makes. Putting in the PS3 on the other hand was a good move because it meant mass production and greatly reducing costs so that they can finally build the system they want in the next console generation.
Ok I'm to tired to finish this, but as you can see if you look, the cell is an interesting chip with great potential, and has already surpassed other chips a number of applications.
Well the idea of sony was to advance the PS2 design further, in my opinion a broken design having two SIMD Vector processors doing everything.
They probably wanted to reduce the design down to one SIMD processor doing everything.
The design of Sony seems to be vector processing is everything you dont need multithreading anyway. The problem with this approach is that even for modern games you need a good mix of everything, good vector processing for graphical stuff and physics, good general purpose processing and multiple cores for the application logic. I personally think Microsofts approach despite the obvious quality problems of the console (which stems mostly from Microsoft internal management decisions, you can read that up) is dead on, while Sonys approach is totally broken even on the PS2, you can remember the complaints of the developers how hard it was to handle the PS2, if it wasnÂt for the success of the hardware among the customers developers probably would have neglegted it due to the fact that pushing an application logic into dual vector processors is a rather hard task. But tools covered that over time!
"Maybe I have to read the book to get a better picture, it is possible that the article blows things out of proportion. So, I thought that the whole "deal" about the Cell are the SPE's. The Xenon CPU that powers the Xbox 360 is just a custom-made triple core PowerPC", Ecuador
.. is based on IBM's PowerPC instruction set architecture, consisting of three independent cores on a single die"
Well unless you know different we'll just have to take the points raised in the article as accurate. And if the CELL was just a custom-made core then why the need to commit $400 million over five years?
"I agree here as well, there is nothing from the Cell design which went into the Microsoft PowerPC core", IamTheRealMike
"Xenon
davecb5620@gmail.com
Slashdot users read and learn because anyone who fails to understand the following is uninformed >
The SPU's on the Cell and the PPC Altivec unit on the Xenon(X360) are very closely associated never before has IBM done a 128register 128Bit Altivec unit. The 128bit X 128register Altivec VMX128 unit on the Xenon is the best of any CPU it is also an almost perfect subset or cut down version of the Cell's SPU !.
In non braching calculations and assuming no cache misses VMX128 performance is equal to the SPU's performance this is not a coincidence it's a newly shared design feature in both the instruction sets and silicon fab and clearly shows the CPU designers shared alot.
The older VMX is only 32 registers. Only the Xenon PPC cores and Cell's SPU's have this new VMX128 type arrangement with 128 SIMD registers - especially enhanced for multimedia and gaming.
Everyone who has written assembler code for an Amiga 500 knows that this isn't true: if you have multiple processors fiddling with data in videomemory, they also share a bus, and that sharing is precisely why it makes it slow. At least compared to memory which is only for 1 processor.
Microsoft's 512MB memory runs at a very slow speed compared to the 3ghz frequency the PS3 cpu memory runs on. It's not a surprise why this is: the bus is shared: display hardware, video chip, main cpu, all have to utilize a bus to the same memory. To schedule all these requests, you have to use even/odd cycle schemes or similar, you can't use the bus all for one chip. 'DMA' only helps you if you own the bus to the memory, which is what the PS3 hardware gives you: very fast data crunchers in the CPU space and a videochip which can do whatever it wants in videomemory.
That the PS3 runs out of texture memory is not really an argument as well: one can easily generate /unpack textures in cpu memory for usage in video memory, as the speed difference is significant. Though what happens is that multi-platform engines in general tend to write most stuff in shaders and want to use a big main memory block for texture memory as that's easier and 'it works on xbox'. Porting it over to ps3 works, unless you have a need for more than a given threshold of texture memory, which gives problems which aren't easy to solve.
It's partly lazyness really: you've to solve it once and you can re-use the engine for multiple games on the multi-platforms you want to support. The question is: do you want to write that special SPU using optimization code or not? More and more studios are willing to do so. Not because they want to, but because they have to: once Sony starts releasing more and more games exclusively for PS3 developed using their maturing engines (e.g. KZ2, uncharted 2 etc.), keeping up with that for a multi-platform game really requires that PS3 optimizations are in place, otherwise the multi-platform game will suck in comparison with the ps3 exclusives. As Sony owns more studios than MS and nintendo combined, this is a matter of time.
Never underestimate the relief of true separation of Religion and State.
Sony's payback comes when Playstation3 programmers learn to fully utilize the Cell architecture.
As someone else pointed out, if that was going to happen, it would have happened by now.
The fundamental problem with the Cell is that each SPU only has 256KB of RAM. (Not 256MB, 256KB.) Data can be moved in and out of main memory in the background with explicit DMA-like operations. Given that model, you have to turn your problem into a data-flow problem, where a data set is pumped sequentially through a Cell processor. The audio guys love this. It's useful for compression and decompression. It's a pain for everything else.
It's not good for graphics. There's not enough memory for a full frame, not enough memory for textures, not enough memory for the geometry, and not enough processors to divide the frame up into squares or bands. Sony had to hang a conventional nVidia GPU on the back to fix that. It's useful for particle systems. If you need snow, or waves, or grenade fragments, the Cell is helpful, because that's a pipelineable problem.
There are some other special-purpose situations where a Cell SPU is useful. But not many. If each SPU had, say, 16MB, the things might be more useful. But at 256KB, it's like having a DSP chip. The Cell part belongs in a cell phone tower, processing signal streams, not in a game machine. It's a great cryptanalysis engine, though. Cryptanalysis is all crunch, with little intercommunication, so that fits the Cell architecture.
We're back to a historical truth about multi-CPU architecture - there are only two things that work. Shared-memory multiprocessors ("multi-core" CPUs, or the Xbox 360) work; they're well understood and straightforward to program. Clusters, like Google/Amazon/any web farm, also work; each machine has enough resources to do its own work and can live with limited intercommunication. Everything in between those extremes has historically been a flop: SIMD machines (Illiac IV through Thinking Machines), dataflow machines (tried in the 1980s), and mesh machines (nCube, BBN Butterfly). The only exception to this are graphics processors and supercomputers derived from them. That, not the Cell, is cutting edge architecture.
I've met one of the architects of the Cell processor, and his attitude was "build it and they will come". They didn't.
OP is talking about gigabytes per sec (GB/s), not gigabits per secont (Gb/s). 20Gb/s = 2.5 GB/s. Everything the OP says is accurate. 20 gigabit isn't that fast, especially for an internal bus.
I still think the issue is x86 (windows) compatibility, portable support and never to forget the lack of small time developer support from IBM as the reason of Apple's switch to Intel.
X86 (windows) compatibility had little to do with it. Apple for a long time was trying to get good Desktop and Laptop performance from the PowerPC architecture. The design is just vastly superior to x86 that it's so much easier and cost effective. Unfortunately, because windows has dominated so strongly, and has only really been available for the x86, (the x86-64 is just a carry on upon the x86 design) and so the most money was spent on improving that.
There are really only three ways to do things. Design well upfront and save costs on furthering that design in the future, use something that already exists, and just pump money at it when you need to, and get crazy about design and assume that people will pick up the costs later, because the benefits of doing so will outweigh the costs.
The first is PowerPC, the second is x86, the third is Itanium. Here's the problem, what is already out there is cheap. Throwing money occasionally beats out upfront costs. A good design minimizes later costs, but only if you have the money to throw at it. Lastly, the last one just doesn't work because it's high upfront costs, and high maintenance cost. (The Itanium now goes the way of the chip in this post... to obscurity...)
Apple doesn't have the market share to throw money at things. As a result, they get better benefit by using what is already out there, even though they had already paid for the design. While the PowerPC design is way better fundamentally, the money poured into the x86 has just been ridiculous.
Apple was also completely unsatisfied with the PowerPC producers. Motorola wasn't interested in producing anything but embedded chips. The G4 was totally an embedded chip, that's why Apple laptops when the G4 came out were way better than x86 laptops until Intel and AMD wised up and started making power-efficient chips. It's also why the TiBooks had 5 hours of run time compared to the Intel books at like 2-3 hours at the time.
So, Apple went to IBM to get a Desktop chip. They worked on the G5, finally pushed it out, and it was an awesome chip. It has really good power-per-watt and performance. There's a reason why Apple started transitioning the G4 laptops first. They could get a 4-times speed increase out of moving from the G4 to an Intel chip. The PowerMac however would have only gained a 50% speed boost at the time of the original announcement. Later Intel development pushed this margin up high enough when they switched the desktops, and frankly, no one really cared that much about switching to x86 at that time... it was old news.
So, the reason Apple went to Intel is because other people, like say.... Microsoft... were pouring money into the x86 development that Apple couldn't match. IBM was more concerned about the big iron aspect of the PowerPC, and Motorola more the embedded aspect of it. Apple just couldn't afford to spend the money on the desktop market. I'm happy to see the consoles taking over PowerPC development, and hope that leads to the same selective pressures that the Intel chips have. Maybe Apple might be tempted to return........
WARNING! This girl exceeds the MAXIMUM SAFE standards established by the FDA for BRATTINESS