How The 360 Works
The always informative How Stuff Works site has an article today entitled How the Xbox 360 Works. From the piece: "The other interesting thing to note about the Xbox 360 CPU is that each core is capable of processing two threads simultaneously. Think of a thread as a set of instructions for a program's job. The core processes these instructions and does the heavy lifting to get the job done. A conventional processor is traditionally capable of running a single execution thread. Because the Xbox 360 cores can each handle two threads at a time, the 360 CPU is the equivalent of having six conventional processors in one machine."
Why? Because most processors are already superscalar, because there is a single data path for all three cores, and because a single processor has a single context (unless it's hyperthreading, and has two contexts) and multiple processors have multiple contexts.
Am I a whore yet?
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
All the CPUs have to share access to memory, especially if one CPU is locking part of the cache for a big signal processing job. The bottleneck at the memory controller keeps SMP (symmetric multiprocessing) from reaching its theoretical throughput.
In order to get true performance out of a multicore system, you have to use NUMA, which is not just part of the hook from a Romanian pop song. It stands for non-uniform memory access, and it refers to associating a physical memory chip to each CPU. It's "non-uniform" because it takes longer for a CPU to read or write another CPU's memory than to read or write its own. But running threads that don't need to communicate too much and putting their memory on separate cores does ease up on the memory controller bottleneck.
Wonder if How Things Work got paid for that?
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck