|
HLRC
- Home-based LRC
- A process performing acquire obtains write notices from previous releaser
- But on getting a page fault it asks the home node to send the entire page (of course, with already merged diffs)
- Note that this protocol not only provides space advantage, but also leads to two-hop page transfer from home to acquirer (as opposed to multiple two hops corresponding to multiple previous writers)
- Also, home node never suffers from page fault; here also you see a notion of local vs. remote access faults
- However, here the whole page (as opposed to diffs) is communicated every time from the home leading to wastage of BW
Twin and diff overhead
- Diff processing is expensive
- Twin creation, diff computation and diff application take up precious CPU cycles (but still faster than network)
- Some hardware support (especially for fine-grain write propagation) in NI would definitely help
- Writes can be detected by snooping the memory bus if the caches are write-through
- Otherwise, every write can be instrumented in software
- Thus writes can be automatically propagated to home
- Problem is all writes are propagated wasting BW
- All-software approach to avoid diff is also proposed: maintain a dirty bit in software per memory block or memory word; dirty bit is cleared at synchronization points and only the words with dirty bits set are propagated to acquirer
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|