I want to clearly understand the difference between compulsory miss, conflict miss and capacity miss
what I understood is
compulsory miss: when a block of main memory is trying to occupy fresh empty line of cache, it is called compulsory miss
conflict miss: when still there are empty lines in the cache, block of main memory is conflicting with the already filled line of cache, ie., even when empty place is available, block is trying to occupy already filled line. its called conflict miss
capacity miss: miss occured when all lines of cache are filled.
conflict miss occurs only in direct mapped cache and set-associative cache. Because in associative mapping, no block of main memory tries to occupy already filled line.
is this correct?
Compulsory miss is not when a block occupies a fresh line, it is when a fresh block that was never given access in Cache before appears.