As an alternative to directory protocols, snoop-based coherence protocols require less storage space and offer the potential for higher performance. Instead of relying on a single structure to track the location of all cached copies of a block, snoop protocols broadcast \emph{snoop} messages to all caches to locate the copies on-demand. When a cache received one of these snoop messages, it performs a tag array lookup to determine whether it has a copy of the requested block, and sends a reply accordingly. Since broadcasts can be sent directly from the requesting node without first sending a message to a directory, the latency for finding an up-to-date copy of the requested block can be lower than for directory protocols resulting in better overall performance.