• Join Us |
  • |
  • Sign in with:

werd

by Steve Gibson, Jun 20, 2000 4:24am PDT

So the latest in the string of 'rumors' to come through email around here is some shuffling over at Ion Storm. We've gotten a few conflicting reports from 'reliable' sources which kind of puts the whole thing in question. Whatever it is, there is something going on over at Ion Storm, and I would guess it's going to be freeing up some office space in the building. Glad everyone enjoyed the suckage update. Its not easy sharing a story of dropping $5,000... heh Hopefully Maarten will update that map list above if you guys identify anything else. Use MessageCenter and annoy the hell out of him! He loves it! Oh yeah, going back and looking at the Weekend WAV hunt, This has to be the winner. (make sure and copy/paste the url)




  • To the guy that wanted an explanation of the difference between 4 way and 8 way associative cache:

    Imagine your cache as a bunch of memory slots, and that you can plug, say, 4 bytes into each slot. Associativity has to do with how you index those slots. Each slot is numbered 0 through n-1 where n is the number of bytes in the cache divided by the size in bytes of each slot (4 in this example.) As you can see, with this set up information stored at a given address in system memory is only storable in one specific slot in the cache. (take the memory address you wish to store and mod it by the number of slots you have to figure out which slot it goes in.) This is called 1 way associative. This is bad because you may have 2 frequently used pieces of information in memory that map to the same cache entry.

    To help solve this problem, you can divide the cahce into more than one bank. With this setup, each memory location maps to a slot in each cache bank. To figure out which slot the data goes in, mod the memory address by the number of slots in a single bank (cache size / (slot size * number of banks of slots). This gives you a number of options as to where you can put whatever it is you want to cache. 4 way associative means that you have 4 banks, 8 way assoc. means 8 banks, etc.

    The practical upshot of having more banks is that with a decent algorithm to determine which piece of information gets replaced cache misses are reduced dramatically, improving processor performance a lot. On a side note, it is possible for a cahce that has a higher associativity to perform worse than one with a lower associativity. If all the data needed were stored in cache all the time, higher associativity would be slower since you would have to search more slots for the needed data each time you fetched information. In real world applications this isn't that big a deal with a reasonable associativity because it doesn't take many misses to make up for the slightly slower hits. Associativity is a diminishing returns situation, though. The exact numbers depend on the memory configuration, but generally beyond 8 to 16 way associativity the hit rate isn't improved enough to make it worth the added complexity of the system. This may change if the gap between CPU and memory speeds continues to increase, though.

    That is all.