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.

Chapter 3<br />

The Commit-Reconcile & Fences<br />

Memory Model<br />

CRF (Commit-Reconcile & Fences) is a mechanism-oriented memory model <strong>and</strong> intended for<br />

architects <strong>and</strong> compiler writers rather than for high-level parallel programming. It is de ned<br />

by giving algebraic semantics to the memory related instructions so that every CRF program<br />

has a well-de ned operational behavior. The CRF mechanisms give architects great exibility<br />

for e cient implementations, <strong>and</strong> give compiler writers all the control they need. They can be<br />

incorporated in stages in future systems without loss <strong>of</strong> compatibility with existing systems.<br />

In Section 3.1 we de ne the CRF memory model using Term Rewriting Systems. We then<br />

present some derived rules <strong>of</strong> CRF in Section 3.2, <strong>and</strong> discuss coarse-grain CRF instructions in<br />

Section 3.3. Section 3.4 demonstrates the universality <strong>of</strong>CRFby showing that programs under<br />

many existing memory models can be translated into CRF programs, <strong>and</strong> CRF programs can<br />

run e ciently on many existing systems. A generalized model <strong>of</strong> CRF is presented in Section 3.5,<br />

which allows writeback operations to be performed in di erent orders with respect to di erent<br />

cache sites.<br />

3.1 The CRF Model<br />

The CRF model has a semantic notion <strong>of</strong> caches, referred to as saches, which makes the op-<br />

erational behavior <strong>of</strong> data replication to be part <strong>of</strong> the model. Figure 3.1 gives the CRF<br />

instructions. The CRF instructions can be classi ed into three categories: memory access<br />

instructions Loadl (load-local) <strong>and</strong> Storel (store-local), memory rendezvous instructions Com-<br />

mit <strong>and</strong> Reconcile, <strong>and</strong> memory fence instructions. There are four types <strong>of</strong> memory fences:<br />

Fencerr, Fencerw, Fencewr <strong>and</strong> Fenceww, which correspond to read-read, read-write, write-read,<br />

<strong>and</strong> write-write fences, respectively.<br />

CRF exposes both data replication <strong>and</strong> instruction reordering at the Instruction Set Archi-<br />

tecture (ISA) level. Figure 3.2 gives the system con guration <strong>of</strong> CRF. The system contains a<br />

memory <strong>and</strong> a set <strong>of</strong> sites. Each site has a semantic cache, on which Loadl <strong>and</strong> Storel instruc-<br />

tions operate. The Commit <strong>and</strong> Reconcile instructions can be used to ensure that the data<br />

49

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

Saved successfully!

Ooh no, something went wrong!