The Cell
IBM has ported Linux to the Cell. The interface to the SPUs is implemented as a new filesystem — spufs. Directories in that filesystem correspond to virtual SPU contexts, which are scheduled by the kernel to run on your machine’s physical SPUs. To use an SPU, you create a directory in /spu (say /spu/my-spu-context), copy your binary to /spu/my-spu-context/mem, and call the SPU_RUN ioctl. Very nicely done. Hopefully, it will be merged into 2.6.13 — and hopefully, Cell workstations will be available for purchase to ordinary mortals. If the SPUs could be harnessed for video transcoding, just imagine how many DVDs our pirate friends could rip simultaneously…
In other Cell news, Anandtech posted some thoughts on the Cell’s and Xenon’s real-world performance. The article was here a couple hours ago, but it looks like Anandtech pulled it. (Why did they pull it? Slashdotting? Factual errors? Pressure by Microsoft and/or Sony? Bribes by Microsoft and/or Sony? Pick your favorite theory…) In the meantime, one can get the gist of the article by reading /. comments. The article claimed that real-world performance of both the Xenon and the Cell was about twice that of the Xbox’s puny old 733 MHz Celeron. The combination of a bad branch predictor, in-order execution, and deep pipelines kill PPU performance on anything other than hand-crafted assembly. In the case of the Cell, using the SPUs effectively is difficult, primarily due to the fact that each SPU has too little local memory, and having the PPU constantly write to that memory incurs latency penalties. In the case of the Xenon, two of its three PPU cores tend to be unused because today’s games have only one thread doing the fast majority of the calculations. On the other hand, according to Anand, the GPUs in the PS3 and the 360 will be somewhat faster than the fastest NVidia and ATi products out today.
In other words, next-generation consoles will have shitty CPUs and wonderful graphics cards — just like all other consoles in console history.