IBM Plans to Open the Cell Processor
morcheeba writes "According to an EETimes article, IBM is planning on releasing the full specifications and software libraries for the powerful processor that will be in the Playstation 3. The goal is to stimulate open-source development for other applications of the chip. The article doesn't mention if there will be some affordable development systems for all these programmers -- I'm hoping for a ps3 devkit." From the article: "IBM is eager to find other opportunities for Cell, but it's going to take a lot of software work...Going to the open-source community makes sense, because they could attract a lot of pretty smart programmers who could spin out software and applications for Cell."
is how does Sony feel about this?
Holy crap! That's amazing. Now, is this "fully open" a la' "Shared Source" or "fully open" as in "you have the same docs we do?" And what's with the comment about hardware discounts?
-theGreater.The original IBM compatible standard (what we just call X86 nowadays) took off when Compaq reverse-engineered the BIOS and created the first "clone" of a "genuine" IBM PC. This undoubtedly resulted in explosive growth for Intel, who made the CPU. Now that IBM is manufacturing the chip (instead of Intel for the first IBM PC), it is absolutely in their best interest to make the Cell processor as mainstream as possible by opening up all of its specs.
Bill Clinton: Pimp we can believe in. - The Shirt!!!
Of course, it would benefit Sony too.
Really there isn't too much of a story here. It is only a story because Sony is involved. If Sony wasn't using the Cell in the PS3 and the Cell was just some new chip from IBM, they would be doing the exact same thing anyways. We tend to think of the Cell as the "PS3 chip", but really the PS3 is just the first product to market to use it.
Comment forecast: Bits of genius surrounded by a sea of mediocrity.
Why wouldn't Sony want IBM to do this. Since the platform specific game developer is going the way of the Dodo, how do you get an edge?
Perhaps by giving every anti-Microsoft fanatic video game freak an outlet? When licensed 3rd party support becomes even on both sides of the map, it will be consumer mods that make the difference to gamers. Can I mod chip it to play foreign games? Can I put vinyl kits on it? Can I use it to power my toaster?
Theoretically, one might be able to write some code that will allow you to play foreign games without having to void your warranty. How huge is that?
Also, Sony is going to need something extra to get people to buy it's system after a XBOX 360 Holiday season, and this may just be that.
It seems to me that this is a first step by IBM to try and move the Cell more into the foreground of computing i.e. to start transitioning computers over to start using Cell instead of x86. Going to the open source community with this project is the only feasible way to do this anymore, really. As much as big companies might like to, they will not be able to put in near the amount of effort or creativity that open source can provide.
As well, I think that moving to Cell would be a very positive step for the computer industry as a whole, helping it to get out of a rut that it seems to have fallen into. The benefits are enormous, the least of which is that if Cell starts becoming standard, average computing power of a desktop will skyrocket, allowing for brand new, highly computing intensive applications to be developed.
This setup looks a lot like the inverse of IBM's greatest strategic loss: the PC. That time, IBM had the brand, and sold hardware to a maverick niche market of PC hobbyists. They viewed software, including the OS, as a necessary sidelight, and let Microsoft judo them out of their control of the market revolution they created. IBM later lost $20B as their market failure came home to roost, and never recovered the leadership they squandered.
This time, IBM is the necessary part in the Playstation, which is in the hands of this generation's maverick niche market: gamers. Their Cell processors give them Microsoft's opportunity: base the market in the demanding niche, and market their product outside of it, leveraging their market feedback and brand into the larger market, including supplying competitors to the original platform. IBM is flipping the script: selling hardware means opening the software promotes their sales, inverting Microsoft's formula of taking software proprietary to capture more of the market defined by the hardware.
It all looks great on paper. Especially the greater scalability and persistence of open software, compared to Microsoft's centralized, proprietary approach. Time will tell if IBM can manage the opportunity, competing against Microsoft, as well as Microsoft did in the 1980s - and better than Microsoft will in the 2000s.
--
make install -not war
The reason why I mentioned "putting FP back into the curriculum" was, however, that it is my understanding that, if you're right, there's a good chance that programmers would prefer multithreading in imperative languages precisely because it'd be closer to what they'd be used to. So, by getting them used to FP, we'd see a "more fair" evaluation of the practicality of this approach.
Your idea seems to be that idealism would drive the CS curriculum, which then would drive the industry. My observation over the last 10 years has been the opposite. In 1996, CS freshman were learning Scheme and Haskell; today they are using Java, because "it's more practical and aligned with the industry" or some such excuse. But now that the bust has eliminated all the "I just want to get rich" CS students, maybe it will swing the other way.
I don't think the SPEs can be effectively preemptively scheduled. They are designed to have executable code loaded onto them, and work on buffer blocks of data. A context switch would have to load both code, SPE CPU state, and buffer data.
What's more likely is for them to be cooperatively scheduled. SPE code could signal when it's done a block.
Actually, now that I think about it, there's a central memory manager module, which handles transfering data to and from SPEs. Potentially the Cell could build a dependency map of how the buffer blocks feed through the SPEs, and detect when more data is coming from system RAM, and start the context switch then.
RAM -> SPE0 -> SPE5 -> SPE2 -> RAM
The main CPU would build metrics to see how long each SPE takes to process a block of data, so when it's near time to context switch, it could wait for the next copy of data from RAM to SPE0, at which point it would stop not let the copy happen. When all of the old data was done copying from SPE0 to SPE5, then SPE0 could be context switched away. Similarly when SPE5 was done processing its data, and had copied it to SPE2, then it would be context switched, and so on.
Instead of thinking of all of the SPEs as part of one process, that would be preemptively scheduled together, think of them as separate threads that would be independantly scheduled, but whose dependancies would provide hints as to the best time to context switch them each.
The PowerPC element (PPE) of the Cell is not simply a G4 or G5 processor. It's am much simpler design overall. It only issues two instructions per clock cycle, compared to eight on a G4, and is strictly in-order execution only, which complicates optimization on a multi-tasking general purpose computer.
Those fancy vector units are also not tuned for general purpose computing. The 250+ GFLOP numbers that have been widely quoted are for single percision mathematics with non-standard rounding. There is a stricter double percision mode available, but it's a full order of magnitude slower.
I can't help but wonder if this is directly related to IBM's decision to sell their PC business to Lenovo. IBM has watched counless Linux geeks mod the XBox and install their OS of choice. If it were to take off like wildfire, this kind of modding would be potentially dangerous to the traditional OEM PC market, because it would mean that cheap (like $199) machines that can be made to run a powerful OS and do things like MythTV and the like could subvert the normal PC market. Sure, the market for modded Xboxen is small, and confined to hobbyists, but if the architecture were open and you didn't have to mod it, a lot more people would do it.
Of course if you aren't an OEM, this looks much less terrifying. In fact, it starts looking more and more like an opportunity. So a company like IBM can sell its money-losing OEM business and get into the game system market with no worries about what happens to x86 if the new consoles start to hurt the PC.
Maybe they weren't thinking "Let's get rid of this money-losing PC business." Maybe they were thinking "Let's kill x86 by building a cheaper PC market on another architecture, staring with a console, but expanding into other appliances. We'll open it up so that people get interested, Linux will be running on it in no time, new Linksys and Netgear routers will use it, and then on to other appliances we haven't even imagined yet. It'll find its way into PCs, and PCs will suddenly be as cheap as a console. Come to think of it, before we do any of this, let's schedule a meeting with Lenovo ... suckers."