how to deal with mismatched tag bits in cache
For every cache set, there are $2^t$ blocks that can potentially be stored in there. However, only $E$ of them are actually stored at any particular time - typically, these would be the &quot;most recently used&quot; ones.
Incidentally, the whole reason for storing the tags themselves inside the cache is to be able to tell which ones are currently cached. The block's tag is not the &quot;index&quot; of a cache line, it's a $t$-bit identifier which is literally compared against every tag in the set in order to check whether this block is available or not.