what is the difference between software and hardware cache coherence schemes?
Cache coherency deals with keeping all caches in a shared multiprocessor system to be coherent with respect to data when multiple processors read/write to same address. Software cache coherency schemes are implemented in software and uses a cache flush or cache invalidate instruction supported by hardware.