Tuesday, December 27, 2005

The Cell Processor

NOTE: This is mostly guess work on my part as explained why at the end.

I have been doing some reading on the Cell Processor to try and understand why Sony is staking so much on it and after reading a couple of articles it is very evident that nobody writing these articles are seeing the full picture. From what I gather the Cell Processor was designed to solve a problem of CPU process management space taking up too much room on the CPU and it getting more and more complicated to sort the L1, L2 cache out and find what instruction should be processed next. At the mo applications get time-slices and processes can be cutoff mid process for something more important even if it isn't the efficient thing to do, but all this requires a huge amount of management by the CPU.

The Cell Processor's Architecture moves all this management from processing-time to compiler-time. So when an application's source code is compiled into an executable the compiler will mark out parts of the code that can be completed quickly by the cell architecture. This from the sounds of it is repetitive tasks that access memory sequentially like an algorithm that does something with an Array maybe.

When this specially compiled code is run on the Cell Processor each marked out part of the code is run and if there is a break that tells the Cell to switch process because the next bit is going to require a delay in fetching something from memory then the Cell will switch process until it comes across another switch.

This is all opposed to the CPU having to choose for itself when to switch between process which can happen at (sometimes) the most inefficient of times.

I have no idea if this is right because all the articles are very vague and just jabber on about haw instructions are divided at a very low level between it's eight SPEs instead of explaining how the high level management stuff is accomplished which is what the Cell architecture is supposed to revolutionise and these articles still manage to call themselves technical reviews.
This little instruction went to RAM.
This little instruction stayed at home.
This little instruction had to run again.
This little instruction did not.
This little instruction cried “Wee! Wee! Wee!” and ran all the way home.
And they get away without explaining the how or why of it all!