09.08.2013 Views

Design and Verification of Adaptive Cache Coherence Protocols ...

Design and Verification of Adaptive Cache Coherence Protocols ...

Design and Verification of Adaptive Cache Coherence Protocols ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

arbitrarily in an outgoing queue (thus any outgoing message can be brought to the front <strong>of</strong> the<br />

queue). FIFO message passing, on the other h<strong>and</strong>, allows outgoing messages to be reordered<br />

only when they have di erent destinations or addresses. It is worth emphasizing that FIFO<br />

message passing does not guarantee the ordering for messages with di erent addresses, even<br />

if they have the same source <strong>and</strong> destination. The rational behind is that memory cells <strong>of</strong><br />

di erent addresses may physically reside in di erent sites in DSM systems (that is, the home<br />

`H' may represent more than one site in the implementation).<br />

Non-FIFO: msg1 msg2 msg2 msg1<br />

FIFO: msg1 msg2 msg2 msg1<br />

if Dest(msg1) 6= Dest(msg2) _ Addr(msg1) 6= Addr(msg2)<br />

The message passing rules are m<strong>and</strong>atory rules in the sense that each outgoing message<br />

must be delivered to its destination in nite time. Unless otherwise speci ed, FIFO message<br />

passing is assumed for all the protocols described in this thesis.<br />

Bu er Management Ideally we would like to treat incoming queues as FIFOs <strong>and</strong> process<br />

incoming messages in the order in which theyarereceived. However, this may cause deadlock<br />

or livelock unless messages that cannot be processed temporarily are properly bu ered so that<br />

following messages can still be processed. Conceptually, this can be modeled by allowing in-<br />

coming messages to be reordered under appropriate conditions so that stalled messages do not<br />

block other messages.<br />

Di erent protocols have di erent bu ering requirements that can be speci ed by di erent<br />

reordering conditions. For example, by allowing incoming messages with di erent sources or<br />

addresses to be reordered arbitrarily, wecantreat each incoming queue as a set <strong>of</strong> FIFO sub-<br />

queues. This prevents messages with di erent sources or addresses to block eachother.<br />

Sub-queues for di erent sources or addresses:<br />

msg1 msg2 msg2 msg1<br />

if Src(msg1) 6=Src(msg2) _ Addr(msg1) 6=Addr(msg2)<br />

Exposing bu er management at early design stages is inappropriate, since it could give rise<br />

to a bloated set <strong>of</strong> rules <strong>and</strong> dramatically complicate the protocol veri cation. Instead, we rst<br />

model bu er management via message reordering in incoming queues, <strong>and</strong> then determine what<br />

must be done in practice in order to satisfy the reordering requirements. This strategy can lead<br />

to more concise speci cations <strong>and</strong> simplify protocol design <strong>and</strong> veri cation.<br />

We use outgoing queues to model FIFO <strong>and</strong> non-FIFO networks, <strong>and</strong> incoming queues<br />

to model message bu ering at destinations. For outgoing queues, it is desirable to have less<br />

stringent reordering conditions since this implies less requirements on message ordering that<br />

must be guaranteed by the network. For incoming queues, it is desirable to have more stringent<br />

reordering conditions since this implies less e ort for message bu ering.<br />

69

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!