the two most common types of coherence that are typically studied are snooping and directory-based. each has its own benefits and drawbacks. snooping protocols tend to be faster, if enough bandwidth is available, since all transactions are a request/response seen by all processors. the drawback is that snooping is not scalable. every request must be broadcast to all nodes in a system. as the system gets larger, the size of the (logical or physical) bus and the bandwidth it provides must grow. directories, on the other hand, tend to have longer latencies (with a 3 hop request/forward/respond) but use much less bandwidth since messages are point to point and not broadcast. for this reason, many of the larger systems (&gt;64 processors) use this type of cache coherence.