<Dt> Write - invalidate </Dt> <Dd> When a write operation is observed to a location that a cache has a copy of, the cache controller invalidates its own copy of the snooped memory location, which forces a read from main memory of the new value on its next access . </Dd> <Dt> Write - update </Dt> <Dd> When a write operation is observed to a location that a cache has a copy of, the cache controller updates its own copy of the snooped memory location with the new data . </Dd>

3. give some reasons why caches are useful. describe cache coherence problem