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.

can be classi ed into two non-overlapping sets: m<strong>and</strong>atory rules <strong>and</strong> voluntary rules. The<br />

distinction between m<strong>and</strong>atory rules <strong>and</strong> voluntary rules is that m<strong>and</strong>atory rules require at<br />

least weak fairness to ensure the liveness <strong>of</strong> the system, while voluntary rules have no such<br />

requirement <strong>and</strong> are provided purely for adaptivity <strong>and</strong> performance reason. Intuitively, an<br />

enabled m<strong>and</strong>atory rule must be applied eventually, while an enabled voluntary rule may or<br />

may not be applied eventually.<br />

The fairness requirement <strong>of</strong> m<strong>and</strong>atory rules can be expressed in terms <strong>of</strong> weak fairness <strong>and</strong><br />

strong fairness. Weak fairness means that if a m<strong>and</strong>atory rule can be applied, it will be applied<br />

eventually or become impossible to apply at some later time. Strong fairness means that if<br />

a m<strong>and</strong>atory rule can be applied, it will be applied eventually or become impossible to apply<br />

forever. When we say a rule is weakly or strongly fair, we mean the application <strong>of</strong> the rule on<br />

each redex is weakly or strongly fair.<br />

A m<strong>and</strong>atory action is usually enabled by events such as an instruction from the processor<br />

or a message from the network. Avoluntary action, in contrast, can be enabled as long as the<br />

cache or memory cell is in some appropriate state. For example, a m<strong>and</strong>atory writeback rule<br />

requires a cache to write a dirty copy back to the memory once a writeback request is received,<br />

while a voluntary writeback rule allows the same operation as long as the cache state <strong>of</strong> the<br />

address shows that the data has been modi ed.<br />

Conventional cache coherence protocols consist <strong>of</strong> only m<strong>and</strong>atory actions. Our view <strong>of</strong> an<br />

adaptive coherence protocol consists <strong>of</strong> three components, m<strong>and</strong>atory rules, voluntary rules <strong>and</strong><br />

heuristic policies. The existence <strong>of</strong> voluntary rules provides enormous adaptivity that can be<br />

exploited via various heuristic policies. A heuristic mechanism can use heuristic messages <strong>and</strong><br />

heuristic states to help determine when a voluntary rule should be invoked. Di erent heuristic<br />

policies can result in di erent performance, but the soundness <strong>and</strong> liveness <strong>of</strong> the system are<br />

always guaranteed.<br />

4.2 The Message Passing Rules<br />

Figure 4.2 de nes the system con guration <strong>of</strong> Base. The system contains a memory site <strong>and</strong> a<br />

set <strong>of</strong> cache sites. The memory site has three components, a memory, an incoming queue <strong>and</strong> an<br />

outgoing queue. Each cache site contains an identi er, a cache, an incoming queue, an outgoing<br />

queue <strong>and</strong> a processor. Although the memory site appears as one component syntactically,<br />

it can be distributed among multiple sites in DSM systems. Initially all caches <strong>and</strong> message<br />

queues are empty.<br />

A message queue is a sequence <strong>of</strong> messages. We use ` ' <strong>and</strong> ` ' as the constructor for<br />

incoming <strong>and</strong> outgoing queues, respectively. Each message has several elds: a source, a desti-<br />

nation, a comm<strong>and</strong>, an address <strong>and</strong> an optional data. The source <strong>and</strong> destination can be either<br />

a cache site or the home memory (represented by `H'). Given a message msg, we use notations<br />

Src(msg), Dest(msg), Cmd(msg) <strong>and</strong> Addr(msg) to represent its source, destination, comm<strong>and</strong><br />

<strong>and</strong> address.<br />

67

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

Saved successfully!

Ooh no, something went wrong!