Dr. Ahmed G. Abo-Khalil

Flag bits

An instruction cache requires only one flag bit per cache row entry: a
valid bit. The valid bit indicates whether or not a cache block has
been loaded with valid data.

On power-up, the hardware sets all the valid bits in all the caches
to "invalid". Some systems also set a valid bit to "invalid" at other
times -- such as when multi-master bus snooping hardware in the cache of one processor hears an address broadcast from
some other processor, and realizes that certain data blocks in the local
cache are now stale and should be marked invalid.

A data cache typically requires two flag bits per cache row entry: a valid bit and also a dirty bit.
The dirty bit indicates whether that block has been unchanged since it
was read from main memory -- "clean" -- or whether the processor has
written data to that block (and the new value has not yet made it all
the way to main memory) -- "dirty".