Virtual channel buffer bypass
AssigneeGraphcore Limited
InventorAshley Robinson
Life of this patent
Estimating the term…
Abstract
A bypass path is provided in the node for reducing the latency and power consumption associated with writing to and reading from the VC buffer, and is enabled when certain conditions are met. Bypass is enabled for a received packet when there is no other data that is ready to be sent from the VC buffer, which is the case when all VCs either have zero credits or an empty partition in the buffer. In this way, data arriving at the node is prevented from using the bypass path to take priority over data already held in the VC buffer and ready for transmission.
Claims19
A first node of an interconnect, wherein the first node comprises:
- an ingress interface configured to receive a plurality of data packets from a second node of the interconnect, wherein each of the plurality of data packets is associated with one of a plurality of virtual channels;
- a buffer configured to store a subset of the plurality of data packets;
- wiring providing a path from the ingress interface to the egress interface, wherein the path bypasses the buffer;
- an egress interface configured to output the plurality of data packets to a third node of the interconnect;
- a credit store configured to store credits, each of the credits being associated with one of the plurality of virtual channels and granting permission for sending to the third node, one of the plurality of data packets that is associated with the respective one of the plurality of virtual channels;
- and
- circuitry configured to:
- forward the subset of the plurality of data packets from the buffer over the egress interface for delivery to the third node;
- upon receipt of a first packet of the plurality of data packets, forward the first packet via the path for output over the egress interface in response to determining that for each of the virtual channels, at least one of the following conditions is met:
- there are zero credits associated with the respective virtual channel in the credit store;
- and
- there are no data packets associated with the respective virtual channel that are held in the buffer and pending transmission to the third node.
A device comprising:
- an interconnect, the interconnect comprising at least a first node, second node and third node,
- the first node comprising:
- an ingress interface configured to receive a plurality of data packets from the second node of the interconnect, wherein each of the plurality of data packets is associated with one of a plurality of virtual channels;
- a buffer configured to store a subset of the plurality of data packets;
- wiring providing a path from the ingress interface to the egress interface, wherein the path bypasses the buffer;
- an egress interface configured to output the plurality of data packets to the third node of the interconnect;
- a credit store configured to store credits, each of the credits being associated with one of the plurality of virtual channels and granting permission for sending to the third node, one of the plurality of data packets that is associated with the respective one of the plurality of virtual channels;
- and
- circuitry configured to:
- forward the subset of the plurality of data packets from the buffer over the egress interface for delivery to the third node;
- upon receipt of a first packet of the plurality of data packets, forward the first packet via the path for output over the egress interface in response to determining that for each of the virtual channels, at least one of the following conditions is met:
- there are zero credits associated with the respective virtual channel in the credit store;
- and
- there are no data packets associated with the respective virtual channel that are held in the buffer and pending transmission to the third node.
A method implemented in a first node of an interconnect, wherein the method comprises:
- storing credits in a credit store, each of the credits being associated with one of a plurality of virtual channels and granting permission for sending to a third node of the interconnect, one of a plurality of data packets that is associated with the respective one of the plurality of virtual channels;
- receiving at an ingress interface, the plurality of data packets from a second node of the interconnect, wherein each of the plurality of data packets is associated with one of the plurality of virtual channels;
- storing a subset of the plurality of data packets in a buffer;
- forwarding the subset of the plurality of data packets from the buffer over an egress interface of the first node for delivery to the third node;
- upon receipt of a first packet of the plurality of data packets, forwarding the first packet via a path that bypasses the buffer for output over the egress interface in response to determining that for each of the virtual channels, at least one of the following conditions is met:
- there are zero credits associated with the respective virtual channel in the credit store;
- and
- there are no data packets associated with the respective virtual channel that are held in the buffer and pending transmission to the third node.
A non-transitory computer readable medium storing a computer program comprising a set of computer readable instructions which, when executed by at least one processor of a first node of an interconnect, cause a method to be performed, wherein the method comprises:
- storing credits in a credit store, each of the credits being associated with one of a plurality of virtual channels and granting permission for sending to a third node of the interconnect, one of a plurality of data packets that is associated with the respective one of the plurality of virtual channels;
- storing a subset of the plurality of data packets in a buffer;
- forwarding the subset of the plurality of data packets from the buffer over an egress interface of the first node for delivery to the third node;
- and
- upon receipt of a first packet of the plurality of data packets at the first node, forwarding the first packet via a path that bypasses the buffer for output over the egress interface in response to determining that for each of the virtual channels, at least one of the following conditions is met:
- there are zero credits associated with the respective virtual channel in the credit store;
- and
- there are no data packets associated with the respective virtual channel that are held in the buffer and pending transmission to the third node.
Dependencies are inferred from the claim text.