Grall said:
A cache in a modern MPU has a hitrate of what, 90-95% on average? That's with random, sucky, bloated PC code by the way, with streamlined game code targetted towards the CPU and using explicit prefetching that's only bound to go up.
*G*
Sometimes that code is not too random, if it were caches would be relatively useless as the principle of locality would not hold true.
Give me SPRAM or e-DRAM and fast main memory bandwidth to the CPU and keep the 1-2 MB cache
Well, cache's performance does become size dependent with certain kinds of code.
Even in 3D graphics, processing time for vertices and pixels is growing, but the data sets that are streamed in and out of the Shaders ( to feed the growing processing power ability ) makes the I/O issue very hard to forget.
For the most part 3D graphics work in the stream model, there is not as temporal locality as much spatial locality and in several cases, where the data access gets very random, you have neither: of course in several cases you can sort things to make use of temporal locality like sorting geometry by textures does make a texture cache more useful.
Even then, if the number of textures used per frame grows you get into troubles: the principle works because there are not too many unique textures in your frame and they are not too big.
Let the size and the variety of those displayed textures grow and you will have to add a larger cache.
I am beginning to babble now, so I will better stop it here for now, still the fun in designing high performance processors is that there are lots of different ways of achieving the same goal ( that is, making a faster chip ).