< previous page page_550 next page >

Page 550
0550-01.gif
Figure 8.25
Relative traffic for Berkeley vs. Firefly on four applications.
(Data taken from Eggers [84].)
Read Private case, the state is changed to Dirty Private. If the state of the line is either Shared Clean or Shared Dirty, the write must be broadcast to other caches. All other sharing caches snoop the bus for the write update, change the state of their copy to Shared Clean, and assert the SharedLine. If the SharedLine is not asserted, the requesting cache knows that no other cache is sharing the line and subsequent writes are not broadcast. So if the SharedLine is not asserted, the requesting cache sets the state of the cache line to Private Dirty; otherwise, it is set to Shared Dirty.
Table 8.4 summarizes the different snoopy cache coherency protocols [83].
Comparing Bus-Based Protocols
The relative performance of shared-bus consistency protocols is heavily dependent on program behavior. Eggers [84] has compared two of the most interesting protocols, Berkeley (a sophisticated invalidate protocol) and Firefly (an update protocol). Figure 8.25 shows that there is no consistent pattern in determining an optimal protocol. Moreover, studies of this sort focus on the shared traffic only. In many practical cases, the I-traffic, the shared read-only traffic, and private data traffic can easily dominate the traffic profile in an application. To make matters even more complex, selection of certain cache parameters such as line size to optimize shared data traffic may work to the detriment of other traffic. Generally, larger line sizes in large caches produce a lower miss rate and, for many read-only accesses, a lower traffic rate. Generally, however, for shared data, large line sizes can increase both miss rate and traffic rate. This occurs because of false sharing [289], when two processors write to two different words in the same line. Miss rate due to shared data traffic has been variously estimated at between 25% for a large cache (greater than 64 KB). The designer must ensure that in trying to minimize the shared miss rate one does not inadvertently increase the nonshared traffic.

 
< previous page page_550 next page >