|
AlphaServer GS320
- Recall that SGI Origin 2000 eliminates NACKs related to late and early interventions
- Late interventions are replied by home via writeback forwarding
- Early interventions are buffered at writer until write is completed
- Origin 2000 still uses NACKs if directory state is busy
- GS320 eliminates all NACKs
- Simply doesn’t have busy states
- How do you serialize transactions?
- Eliminating PSH: dirty sharing
- Same as a standard MOESI protocol, but state change in directory is immediate
- Suppose node P0 is caching a block in M state
- Node P1 issues a read request to home
- Home forwards it to P0, changes directory state to clean, and marks P0 as the owner (need an owner field in directory)
- P0 supplies data to P1 and moves to O state
- P1 could also become O (is it better or worse?)
- All subsequent requests are forwarded to P0 by home
- P0 must serialize them properly
- Philosophy: keep home free, serialize in the periphery
- Dirty sharing
- Problem arises if owner evicts the cache block
- Now home cannot figure out what to do
- Directory only specifies the sharers and the owner
- Home does not know exactly which sharers did not get the cache block from P0
- Home only writes the block back to memory, marks that there is no owner for this block, and sends a writeback acknowledgment to owner
- Owner in all cases must source the cache block until the writeback is acknowledged
- Must hold evicted cache blocks in a writeback buffer
- More problems: what if a request arrives at home before the WB, but reaches owner after the WB ACK?
- Dirty sharing
- GS320 maintains total order in the network
- Needed by other optimizations related to invalidation acknowledgments also
- What if the protocol allows the ownership to move along the sharer chain?
- New problem: writeback ordering
- Easy to resolve at home: only accept data from owner marked in the directory entry
- Always acknowledge writebacks
- Still need to rely on network order? No, if there are two types of writeback acknowledgments
- Eliminating the PDEX state: write forwarding
- Same as read case with ownership changing along a chain
- Performance considerations
- How will a migratory sharing pattern perform on GS320?
- How will a large-scale producer-consumer pattern perform on GS320?
- Any special considerations for LL/SC locks?
- Note that lock acquire is essentially a large-scale producer-consumer pattern with the number of consumers decreasing from P-1 to zero
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|