A method and apparatus for shared cache coherency for a chip multiprocessor or
a multiprocessor system. In one embodiment, a multicore processor includes a plurality
of processor cores, each having a private cache, and a shared cache. An internal
snoop bus is coupled to each private cache and the shared cache to communicate
data from each private cache to other private caches and the shared cache. In another
embodiment, an apparatus includes a plurality of processor cores and a plurality
of caches. One of the plurality of caches maintains cache lines in two different
modified states. The first modified state indicates a most recent copy of a modified
cache line, and the second modified state indicates a stale copy of the modified
cache line.