within the set where the contents of those locations at main memory could be held the potential difficulty with a direct mapped cache which does not exist in a four way set associative cache can readily be seen from fig1 that is if block 1 is in the cache at line 1 and then block 513 is to be executed the only location in the cache suitable for accepting block 513 is line 1 which requires the eviction of block 1 if block 1 or indeed block 513 is not often used this is probably not too much of a problem however in programs where block 513 is often used and in particular is often used after block 1 this requires more or less constant cache eviction and replacement which affects performance and increases bus traffic as discussed above 0030 fig2 is an example of an mpeg decoder application stored in main memory 2 and including a variable length decode function vld and an inverse discrete cosine transform idct assume as shown by the arrows that these functions relate to blocks which map onto the same line or lines in the instruction cache 4 due to the frequent usage of these functions within the decoder application this would be a situation where a direct mapped cache would be ineffective the software tool discussed in the following however allows a direct mapped cache.