7.7Case Studies: Sun Starfire E10000 and IBM Power5

book pp. 144–147 · ~4 min read

  • Starfire logical buses
  • crossbar data network
  • ring snooping
  • SL state
  • Tagged state

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:

  1. Shared-wire buses don’t scale electrically → use only point-to-point links, with a tree as the logical bus : requests unicast up, the root serializes, broadcasts flow down.
  2. 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.
  3. Data responses need neither broadcast nor ordering → carry them on a crossbar whose bandwidth no bus could match.
Root switchserialization point — unicast up, broadcast downSwitchSwitchSwitchProcProcSwitchProcProcSwitchProcProcSwitchProcProcCrossbar Data Network (point-to-point, unordered — data responses only)Requests climb the tree (×4 address-interleaved logical buses); data crosses the crossbar.

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:

  1. The requestor sends its request around the request ring (absorbing it when it returns).
  2. Each node observes it and contributes one aggregated snoop response — a description of what its processors would do, accumulated node by node around the response ring.
  3. When the fully aggregated response reaches the requestor, it determines the outcome and broadcasts a decision message around the ring.
  4. 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):

StatePermissionsDescription
INoneInvalid
SRead-onlyShared
SLRead-onlyShared local data source: may respond with data to requests from processors in the same node — essentially the F state , as in Intel’s QuickPath (§8.8.4)
S(S)Read-onlyShared
Me (E)Read-writeExclusive
M (M)Read-writeModified
MuRead-writeModified unsolicited — received read-write data in response to a read-only request
TRead-only Tagged : 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?

5 questions