Ok, here's a few facts from the articles, which my ramblings below are based on:
- Cell contains a PU, which i a fully functional Power5 derived chip, similar to what we on MacRumors called the G6 for the past year or so
- Cell also contains a bunch of APUs (8 in this chip) which are given little APU programs from the PU. These little programs run on the APUs, and do whatever calculations.
- The PU, being a fully functional Power5 derived CPU, has things like cache, SMT, Altivec, etc.
- The APUs are designed to crunch through streamed data, holding interim data in their registers, so it actually makes no sense to give them cache. Caches only make sense when you have to reaccess parts of memory, which you haven't stored in your registers.
Now my intuition/guesses:
- From a hardware point of view, Cell would require a full motherboard redesign compared to, say, the G5. But, they'll have had years of time to do it, by the time Cell chips ship
- From a software point of view, there are always two stages of supporting new hardware: (1) Make old software run on it (2) Take advantage of new features. So, I wouldn't expect new Cell Macs to come with some totally new operating system initially, but rather follow the pattern of the G5 with OS X 10.2.7.
- Taking the lead from Quartz Extreme and CoreImage and the Pixel Shader programming standards in OpenGL and DirectX, I think we're moving away from a programming model of having the CPU doing number crunching, towards more hardware accelleration.
- In the past, one used the CPU (Use the CPU's ALU and/or FPU), and then later one might use the SIMD unit, then came using the GPU, and soon we'll have the Cell's APU.
- There are several problems with having all of these options:
- Only some compilers properly support autovectorization, so right now we're taking advantage of SIMD units nearly as much as we could
- Not everyone has a GPU that supports Quartz Extreme or CoreImage, or Pixel Shader programs. So, one can't count on using the GPU, and even if one could, the tools and APIs for using it are even further behind support for SIMD units.
- We don't even have Cell's shipped, so who knows how long it will be before there are APIs to make use of the APUs?
- At some point, with all of these different means of accellerated processing competing with each other for software support, the only real solution will be for regular software developers to code at a sufficiently high level, that the APIs or the operating system will then be able to, at install time or runtime, make the decision of which accelleration method to use.
- After a couple years, who knows, maybe one way wil win out and become standard, but for the next 5 years or so, things will get a lot more complex.
- So, look towards codecs and scientific programs, and compilers, and operating systems to all try to provide support for the new accellerations, while standard programs sit on the fence waiting for simple trivial support to be provided to them.
- Oh yes, and some people were wondering if Apple would use the Cell chips. My opinion is that when the Cell chips first ship, all of the capacity will probable go towards PS3, for at least 3-6 months. After that, I assume Apple will be able to get their hands on Cell chips in volume. If the don't support Cell, then I would expect share holders to sue the board for negligence.
- So, one question is, will Apple ship systems with what we called the G6 in the mean time, until Cell arrives, or will they just stall in the water until Cell? It might not be cost effective to make a new motherboard design for the G6, when another will be required for Cell. But, it'll probably be a year at least until Cell Macs come out, and IBM might not want to bother making more 970 chips as they focus more on Power5 and Cell.