A die is one piece of silicon; a chiplet design puts several dies in one package, joined by die-to-die links. Place K0 and K1 on different dies and keep H as the global home for X. H is on K0's die (illustrative choice), so legs 2 and 7 of the eight-leg trace in Clusters and Global Homes cross the die boundary. No vendor interface is assumed.
The starting checkpoint is the one in Three-Hop Versus Four-Hop, with C0 in K0. Physical separation does not let H substitute memory's 0 for C0's 1.
A die crossing may add serialization delay (time to push a message's bits over a narrower link), buffering, credits (counters of free receive buffers at the far end), error detection and retry. The die-to-die link adds no FIFO guarantee the protocol relies on. Keep transport acknowledgement separate from coherence completion: delivery to a link endpoint does not prove that a private cache accepted permission, released a conflicting copy, or supplied the newest data.
Illustrative arithmetic, not measured latencies.
On-die leg: 3 cycles. Die-crossing leg: 3 + D cycles, with D = 10.
Legs: 1 C1->H1, 2 H1->H, 3 H->H0, 4 H0->C0,
5 C0->H0, 6 H0->H, 7 H->H1, 8 H1->C1. Data legs: 5, 6, 7, 8.
H on K0's die: legs 2 and 7 cross.
8 x 3 + 2 x 10 = 24 + 20 = 44 cycles
H on a third die: legs 2, 3, 6 and 7 cross.
8 x 3 + 4 x 10 = 24 + 40 = 64 cycles
64-byte Data over an illustrative 16 B/cycle link:
64 / 16 = 4 serialization cycles per data crossing.
H on K0's die, data crosses on leg 7: 44 + 4 = 48 cycles
H on a third die, data crosses on legs 6 and 7: 64 + 2 x 4 = 72 cyclesMoving H off both clusters' dies adds two crossings, one of them carrying data. Where the home sits matters as much as how fast the link is.
Boundary concern | Question to answer | Safety or progress implication |
|---|---|---|
Finite credits and receive capacity | Can responses advance while requests wait? | A die crossing can extend the same held-and-requested resource cycle. |
Transport retry, if implemented | How are duplicate or retried messages recognized? | A replay must not create a second permission effect or count an acknowledgement twice. |
Ordering | Which arrivals may be reordered? | The protocol must not silently acquire a FIFO assumption. |
Reset or link loss | Who preserves dirty data and outstanding transaction identity? | A stopped link is not permission to forget the only current value. |
Rejoin | How is stale state excluded before new grants resume? | Recovery needs a defined system contract, not a timeout alone. |
In the eight-leg trace the only copy of X = 1 moves through H0, H and H1. Until the far side of a die crossing has received the Data, the sender must keep it. After that, the receiver keeps it until the next leg is received. The model assumes reliable eventual delivery for normal progress; link retry is a transport feature, not evidence that a permanent failure can be hidden.
If a failed die held the only dirty value and it is lost, this lesson cannot promise correct continued execution. A higher-level failure model would have to define detection, containment and recovery. Keep that failure question separate from ordinary backpressure on a healthy link.
No. The normal-progress assumption of eventual delivery is false. The implementation must preserve or explicitly fail the affected obligations under its recovery contract, not invent current data at memory.