Alstrong said:Is the amount of lockable cahce arbitrary?
http://arstechnica.com/articles/paedia/cpu/xbox360-1.ars/5
Xenon's L1 and L2 caches can function in the conventional manner described above, but they can also function quite differently. More specifically, Xenon invests programmers with an unprecedented level of control over how their applications use the caches. Insofar as they can fall under the explicit control of the programmer, the Xenon's caches, and its L2 cache in particular, can function remarkably like the "local storage" that's attached to each of the Synergistic Processing Elements (SPEs) in IBM's Cell processor. (For more on the Cell and its SPEs, see Part I and Part II of my Cell coverage.)....cont'd.....
In the Xenon's L2 cache, an arbitrary number of the sets can be locked and turned into FIFO queues for private, exclusive use by individual data generation threads. The sets that aren't locked look to the Xenon like normal L2 cache. This means that non-write-streaming threads can use the non-locked L2 cache space normally, as can threads that are write-streaming.
A write-streaming data generation thread that has its own private locked set can also access the pool of generally available, non-locked L2 cache just like any other thread, but with the exception that it can't use too much of it. A write-streaming thread is not allowed to get greedy and use too much L2, because the system will restrict its L2 usage so that it plays nicely with the other running threads.
In sum, write streaming allows the programmer to carve up the L2 cache into small chunks of private, local storage shared between each thread and the GPU. This local storage, in the form of a FIFO queue, acts kind of like a pipe that transports data directly through the L2 without allowing that data to spill over and pollute the rest of the L2.