US 11,695,709 B2
Fair arbitration between multiple sources targeting a destination
Daniel Wilkinson, Bristol (GB); Graham Cunningham, Chippenham (GB); and Hachem Yassine, Bristol (GB)
Assigned to GRAPHCORE LIMITED, Bristol (GB)
Filed by Graphcore Limited, Bristol (GB)
Filed on Apr. 12, 2022, as Appl. No. 17/658,955.
Claims priority of application No. 2115929 (GB), filed on Nov. 5, 2021.
Prior Publication US 2023/0144797 A1, May 11, 2023
Int. Cl. H04L 12/28 (2006.01); H04L 49/9047 (2022.01); H04L 49/90 (2022.01); H04L 47/52 (2022.01); H04L 49/00 (2022.01); H04L 47/62 (2022.01)
CPC H04L 49/9047 (2013.01) [H04L 47/52 (2013.01); H04L 47/6225 (2013.01); H04L 49/3018 (2013.01); H04L 49/3027 (2013.01); H04L 49/9026 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A hardware module for receiving data from a plurality of source components and forwarding at least some of that data to a first destination, the hardware module comprising:
a first ingress port configured to receive a first set of data packets originating from a first subset of the source components and to provide the first set of data packets to a first ingress buffer, wherein the first subset includes one or more of the plurality of source components;
a second ingress port configured to receive a second set of data packets originating from a second subset of the source components and to provide the second set of data packets to a second ingress buffer, wherein the second subset of the source components comprises two or more source components, wherein the first subset includes a different number of source components than does the second subset;
an egress port configured to output the first set of data packets and the second set of data packets, wherein the egress port is further configured to output data to a plurality of destinations including the first destination, and wherein some of the first set of data packets are for dispatch to different ones of the plurality of destinations; and
processing circuitry configured to:
examine a destination identifier in the one of the first set of data packets that is at a head of the first ingress buffer; and
examine one or more second source identifiers in one or more of the second set of data packets to determine from which of the second subset of the source components each of the one or more of the second set of data packets originated; and
in response to determining that the destination identifier identifies the first destination, select between the first ingress buffer and the second ingress buffer from which to send data to the first destination in dependence upon the one or more second source identifiers so as to arbitrate between the plurality of source components for sending data to the first destination.