This is a wish list of what the snoopy bus protocol should have:
\begin{enumerate}
\item
flush allowed to complete despite outstanding request to the cache line.
(Perhaps two types of flush should be supported, one that waits, and the other that does not.)
\item
DClaim should be a split-phase operation.  It should allow flush to
complete while it is outstanding, invalidating its cache copy when
this happens.  DClaim may be automatically changed to RWITM? 
\item

\item

\item

\item

\end{enumerate}
And for SMP sites:
\begin{enumerate}
\item
cache-to-cache transfer of dirty, as well as clean(shared) data.  
\item

\item

\item

\item

\item

\end{enumerate}