Originally posted by: Matthias99
Originally posted by: CTho9305
Originally posted by: Matthias99
No, it is different. With set-associative all the addresses are mapped with the same function. With skewed associative each bank (or whatever) is mapped differently. You'd have to either have an extra layer of abstraction (another lookup table, etc.) or build different lookup hardware into each bank, as you can no longer use the same translation for all addresses.
Right... for bank 0, you index it with, say, the last n bits. Bank 1 you index with the last n bits, but XOR some of them with higher-order bits. Bank 2 XORs different higher-order bits. It isn't complicated hardware.
I feel like it probably *does* get complicated when you're dealing with circuits on nanosecond-scale clocks. Most caches have to run at processor speed, which nowadays is ~2GHz -- and the simpler you make the cache logic, the faster you'll be able to run it. I know high-speed clock propogation is difficult -- maybe they had issues placing gates at that particular point in the architecture. A slight increase in clockspeed will help a modern processor more than a slight improvement in cache hit ratio for the most part. Basically, I'm sure Intel did the math and found it wasn't worth it. Who knows what you'll see in the next generation of processors, though...