PC-Engine said:
The point I'm making is that how can LS function as cache if it doesn't have a direct connection to main RAM?
Your point is based on a false premise. Each SPE
does have a direct connection to main RAM through its DMA controller.
If it can function as cache then why does it need to connect to another pool of cache to get to main RAM?
You're confused; local store CAN'T function as a cache because it ISN'T a cache. It's just a quite normal piece of random-access memory. Caches are divided up into what is known as cache lines, each line equipped with a "tag" which tells the cache controller logic which sequence of addresses in memory is stored in that particular cache line. When a read request comes in, the cache controller reads through its tags to see if that address is stored or not and acts accordingly. If it is, the data is delivered straight to the CPU. If it isn't, a request for it is generated and then the CPU has to wait for it to come in. It all works automatically, and
the CPU cannot differentiate between cache and main memory. It's completely transparent, and typically there is no way of telling if a piece of data is present in cache or not as cache isn't addressable as memory; it's a MIRROR of the memory it caches.
As local store is just memory, the program has to decide what is stored in the store and what isn't. This doesn't make it into some sort of "software controlled" cache; it ISN'T CACHE plain and simple. It's just a quarter megabyte SRAM memory, that's it. Think of the SPE as a computer of its own equipped with 256 kB memory attached to its motherboard and an I/O controller to bring data in and out of that memory.
Oh and by the way, as someone else brought it up: the local store SRAM isn't zero wait-state. No SRAM running at 3.2GHz is going to be zero wait-state, it isn't physically possible, or at least not with current technology. Even SRAM running at a fraction of that speed have wait-states of a couple cycles.