7.7.1 Sun Starfire E10000
The E10000’s coherence protocol is an unremarkable MOESI with write-back caches. What’s remarkable is the machine around it — built to scale snooping to 64 processors on three observations:
- Shared-wire buses don’t scale electrically → use only point-to-point links, with a tree as the logical bus logical bus Any interconnect providing totally ordered broadcast without a physical shared-wire bus: a tree serialized at its root (Starfire), or logical-time ordering on arbitrary topologies (Timestamp Snooping, INSO). defined in Chapter 7 — open in glossary : requests unicast up, the root serializes, broadcasts flow down.
- One logical bus limits request bandwidth → use four address-interleaved logical buses, with processors snooping them in a fixed, pre-determined order to preserve the total order.
- Data responses need neither broadcast nor ordering → carry them on a crossbar whose bandwidth no bus could match.
Figure 7.12 (recreated, eight processors for clarity): the Starfire’s logical-bus tree plus crossbar data network.
The price of this optimized design: the architects had to reason about non-atomic requests and non-atomic transactions — §7.5’s entire menagerie, at commercial scale.
7.7.2 IBM Power5
The Power5 is a 2-core chip (shared L2) whose fabric bus controller links up to eight 4-chip multi-chip modules. Viewed abstractly it’s a MESI protocol on a split-transaction bus — but two features break the mold.
Snooping on rings. Nodes connect by three unidirectional rings (requests; snoop responses/decisions; data), and unidirectional rings provide no total order. So nobody may act immediately. Instead:
- The requestor sends its request around the request ring (absorbing it when it returns).
- Each node observes it and contributes one aggregated snoop response snoop response (aggregated) Power5 ring mechanism: each node appends its aggregated intended action as the request circles the ring; the requestor then broadcasts a decision message naming the responder. defined in Chapter 7 — open in glossary — a description of what its processors would do, accumulated node by node around the response ring.
- When the fully aggregated response reaches the requestor, it determines the outcome and broadcasts a decision message around the ring.
- The node named responsible sends the data on the data ring.
Far more complicated than bus snooping — the total order exists only logically — but every link is point-to-point and ring switching is delightfully simple and fast.
Extra state flavors. The Power5’s L2 states (Table 7.22):
| State | Permissions | Description |
|---|---|---|
| I | None | Invalid |
| S | Read-only | Shared |
| SL | Read-only | Shared local data source: may respond with data to requests from processors in the same node — essentially the F state forward (f) A non-MOESI stable state like Owned except clean (the LLC/memory copy is up-to-date). defined in Chapter 6 — open in glossary , as in Intel’s QuickPath (§8.8.4) |
| S(S) | Read-only | Shared |
| Me (E) | Read-write | Exclusive |
| M (M) | Read-write | Modified |
| Mu | Read-write | Modified unsolicited — received read-write data in response to a read-only request |
| T | Read-only | Tagged tagged (t) state Power5 state for an M block that received a GetS: a store may transition to M immediately, issuing a prioritized non-silent invalidation; SWMR holds in ring-logical (not physical) time; optimizes producer-consumer sharing. defined in Chapter 7 — open in glossary : was M, received a GetS (where MESI would go S, MOSI would go O) |
Check yourself
1.The Starfire E10000 scaled snooping to 64 processors via three observations. Which list is right?
2.With four logical buses, how does the E10000 preserve the total order snooping needs?
3.The Power5's rings provide no total order. How does a coherence request complete?
4.What distinguishes Power5's SL state from plain S?
5.A store to a Power5 block in T(agged) state performs IMMEDIATELY, though S copies may exist. How is this not chaos?