# US 2014/0192801 A1 · Multi-tier switch interface unit arbiter

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0192801 A1
- Document ID: US20140192801A1
- Status: Published application
- Kind: A1
- Application number: 13/736,462
- Filed: 2013-01-08
- Published: 2014-07-10
- Earliest claimed: 2013-01-08
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Erik P. Machnicki
- Web page: https://patentgrep.com/patent/US20140192801A1

## CPC

- H04L 49/254: {Centralised controller, i.e. arbitration or scheduling}
- H04L 49/112: Switch control, e.g. arbitration
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Systems and methods for arbitrating among traffic from a coherence point to a switch fabric. A multi-level arbiter is used to avoid starvation while providing fairness and high bandwidth on the connection path between the coherence point and the switch fabric. A first level of arbitration selects packets with enough available credits for forwarding from the switch fabric on a downstream channel. The second level of arbitration arbitrates among short packets at a first arbiter and arbitrates among long packets at a second arbiter. The selected short packet and the selected long packet are forwarded to a third level of arbitration. The third level of arbitration alternates between long and short packets and forwards the selected packet to the switch fabric.

## Claims

### Claim 1

A coherence point comprising a switch interface unit (SIU), wherein the SIU is configured to:
receive a plurality of packets from one or more coherence control units (CCUs);
arbitrate among the plurality of packets using a plurality of first-level arbiters to select a first group of packets for forwarding to a pair of second-level arbiters, wherein only packets eligible to be sent out of a switch fabric on downstream channels are forwarded to the pair of second-level arbiters;
arbitrate among the first group of packets using the pair of second-level arbiters to select a second group of packets for forwarding to a third-level arbiter; and
arbitrate among the second group of packets using the third-level arbiter to select a final packet for forwarding to the switch fabric.

### Claim 2 (depends on 1)

The coherence point as recited in claim 1, wherein each arbiter of the plurality of first-level arbiters is configured to arbitrate among packets sharing credits and sharing a same sub-channel.

### Claim 3 (depends on 2)

The coherence point as recited in claim 2, wherein request packets are assigned to a first sub-channel, and wherein response packets are assigned to a second sub-channel.

### Claim 4 (depends on 3)

The coherence point as recited in claim 3, wherein the first-level arbiters include a pair of arbiters for each downstream channel out of the switch fabric.

### Claim 5 (depends on 4)

The coherence point as recited in claim 4, wherein the first-level arbiters are configured to determine if packets are eligible to be sent out of the switch fabric on downstream channels based on an availability of credits for each downstream channel.

### Claim 6 (depends on 5)

The coherence point as recited in claim 5, wherein a first second-level arbiter is configured to arbitrate among long packets, and wherein a second second-level arbiter is configured to arbitrate among short packets.

### Claim 7 (depends on 5)

The coherence point as recited in claim 5, wherein the second group of packets comprises a long packet and a short packet.

### Claim 8 (depends on 7)

The coherence point as recited in claim 7, wherein there is a single connection path between the SIU and the switch fabric for forwarding packets.

### Claim 9 (depends on 8)

The coherence point as recited in claim 8, wherein the plurality of packets received from the one or more CCUs target non-memory address space.

### Claim 10 (depends on 9)

The coherence point as recited in claim 9, wherein the third-level arbiter is configured to alternate between selecting long and short packets, and wherein a short packet overlaps with a last data beat of a long packet.

### Claim 11

A method comprising:
sending packets from one or more coherence control units to a switch interface unit (SIU);
arbitrating among packets at a credit group level to select packets with available credits, wherein one or more credits are needed for forwarding a packet from a switch fabric on a given downstream channel;
routing selected packets to corresponding packet-type arbiters;
arbitrating among long packets at a first packet-type arbiter to select a long packet for forwarding to a final arbiter;
arbitrating among short packets at a second packet-type arbiter to select a short packet for forwarding to the final arbiter; and
arbitrating among the selected short packet and the selected long packet at the final arbiter to select a packet for forwarding to the switch fabric.

### Claim 12 (depends on 11)

The method as recited in claim 11, wherein the SIU is configured to receive credit indications from the switch fabric based on a number of available credits per downstream channel.

### Claim 13 (depends on 12)

The method as recited in claim 12, wherein the packet is forwarded on a single connection path from the SIU to the switch fabric.

### Claim 14 (depends on 13)

The method as recited in claim 13, further comprising overlapping a short packet with a last data beat of a long packet.

### Claim 15 (depends on 14)

The method as recited in claim 14, wherein each downstream channel is connected to a corresponding device.

### Claim 16 (depends on 15)

The method as recited in claim 15, wherein the first and second packet-type arbiters are configured to select among packets in a round-robin manner.

### Claim 17

A method comprising:
routing packets to a first level of arbiters based on a credit group and a sub-channel of the packets;
arbitrating among the packets at the first level of arbiters to select packets to be forwarded to a second level of arbiters;
arbitrating among the selected packets at the second level of arbiters to select a long packet and a short packet to be forwarded to a third level arbiter; and
arbitrating among the selected long packet and the selected short packet at the third level arbiter to select a packet to be forwarded to a switch fabric, wherein the third level arbiter is configured to alternate between long and short packets.

### Claim 18 (depends on 17)

The method as recited in claim 17, wherein only packets with available credits are forwarded to the second level of arbiters.

### Claim 19 (depends on 18)

The method as recited in claim 18, wherein the first level of arbiters comprises a separate arbiter for each unique credit group and sub-channel combination.

### Claim 20 (depends on 19)

The method as recited in claim 19, wherein for one or more credit groups, a first sub-channel is reserved for requests and a second sub-channel is reserved for responses.

### Claim 21 (depends on 20)

The method as recited in claim 20, wherein credits are needed for sending packets from the switch fabric on a downstream channel.

### Claim 22

An apparatus comprising:
one or more coherence control units (CCUs);
a switch interface unit (SIU) coupled to the one or more CCUs; and
a switch fabric coupled to the SIU and the one or more CCUs;
wherein the SIU is configured to:
receive a plurality of packets from the one or more CCUs;
arbitrate among the plurality of packets at a first level of arbiters to select packets to be forwarded to a second level of arbiters, wherein the first level of arbiters selects packets that are eligible to be sent out of the switch fabric on one or more downstream channels;
arbitrate among the selected packets at the second level of arbiters, wherein the second level of arbiters are configured to select a long packet and a short packet to be forwarded to a third level arbiter; and
arbitrate among the selected long packet and the selected short packet at the third level arbiter to select a final packet to be forwarded to the switch fabric.

### Claim 23 (depends on 22)

The apparatus as recited in claim 22, wherein the SIU is configured to:
reconstruct a transaction corresponding to the final packet; and
send the transaction to the switch fabric.

### Claim 24 (depends on 23)

The apparatus as recited in claim 23, wherein the third level arbiter is configured to alternate between selecting short packets and long packets.

### Claim 25 (depends on 24)

The apparatus as recited in claim 24, wherein the second level of arbiters comprises a first arbiter for arbitrating among long packets and a second arbiter for arbitrating among short packets.

### Claim 26 (depends on 25)

The apparatus as recited in claim 25, wherein long packets selected by the first level of arbiters are routed to the first arbiter, and wherein short packets selected by the first level of arbiters are routed to the second arbiter.
