Credit based low-latency arbitration with data transfer

US9582440B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9582440-B2
Application numberUS-201313763676-A
CountryUS
Kind codeB2
Filing dateFeb 10, 2013
Priority dateFeb 10, 2013
Publication dateFeb 28, 2017
Grant dateFeb 28, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

An apparatus includes multiple data sources and arbitration circuitry. The data sources are configured to send to a common destination data items and respective arbitration requests, such that the data items are sent to the destination regardless of receiving any indication that the data items were served to the destination in response to the respective arbitration requests. The arbitration circuitry is configured to receive and buffer the data items, to perform arbitration on the buffered data items responsively to the arbitration requests, and to serve the buffered data items to the destination in accordance with the arbitration.

First claim

Opening claim text (preview).

The invention claimed is: 1. Apparatus, comprising: multiple data sources, which are configured to send to a common destination data items together with respective arbitration requests in separate messages, such that the data items are sent to the destination regardless of receiving any response to the respective arbitration requests; and arbitration circuitry, which is configured to receive and buffer the data items, to perform arbitration on the buffered data items responsively to the arbitration requests, and to serve the buffered data items to the destination in accordance with the arbitration, wherein the multiple data sources are configured to send some of the data items with respective separate arbitration requests relating to multiple data items, wherein the arbitration circuitry is configured to send to the data sources arbitration grants upon scheduling the respective arbitration requests, and wherein the data sources are configured to send the data items irrespective of the arbitration grants. 2. The apparatus according to claim 1 , wherein the data sources are configured to send the data items in accordance with remaining credit indicated by respective credit counters coupled to the data sources, and wherein the arbitration circuitry is configured to send to a given data source a credit update upon serving a buffered data item received from the given data source. 3. The apparatus according to claim 1 , wherein the arbitration circuitry comprises multiple First-In First-Out (FIFO) memories for buffering the data items, and an arbiter that is configured to perform arbitration on the data items buffered in the FIFO memories. 4. The apparatus according to claim 3 , wherein a size of each FIFO memory depends on a round-trip delay between the data sources and the destination, plus an arbitration processing time of the arbitration circuitry. 5. The apparatus according to claim 1 , wherein a given data source is configured to divide a data item into multiple data chunks, to send the data chunks separately to the destination but to send a single arbitration request for the entire data item. 6. The apparatus according to claim 1 , wherein the data sources comprise input ports of a network switch, and wherein the common destination comprises an output port of the network switch. 7. The apparatus according to claim 1 , wherein the common destination comprises an output port of a Network Interface Card (NIC). 8. The apparatus according to claim 1 , wherein the data sources and the destination are comprised in a single Integrated Circuit (IC). 9. The apparatus according to claim 1 , wherein the multiple data sources are configured to send some of the data items to the destination without a respective arbitration request. 10. The apparatus according to claim 1 , wherein a first one of the multiple data sources is configured to receive a data item, to divide the data item into multiple data chunks, to send a single arbitration request in a separate message from the data chunks, for the entire data item and to send the data chunks separately to the arbitration circuitry, regardless of whether a response to the arbitration request was received. 11. The apparatus according to claim 10 , wherein the single arbitration request is sent with a first one of the multiple data chunks, sent first to the arbitration circuitry. 12. A method, comprising: sending data items together with respective arbitration requests in separate messages from multiple data sources to a common destination, such that the data items are sent to the destination regardless of receiving at the data sources any response to the respective arbitration requests; and buffering the data items and performing arbitration on the buffered data items responsively to the arbitration requests; and serving the buffered data items to the destination in accordance with the arbitration, wherein performing the arbitration comprises sending to the data sources arbitration grants upon scheduling the respective arbitration requests, and wherein sending the data items comprises transmitting the data items from the data sources irrespective of the arbitration grants. 13. The method according to claim 12 , wherein sending the data items comprises transmitting the data items in accordance with remaining credit indicated by respective credit counters coupled to the data sources, and comprising sending to a given data source a credit update upon serving a buffered data item received from the given data source. 14. The method according to claim 12 , wherein buffering the data items comprises storing the data items in multiple First-In First-Out (FIFO) memories, and wherein performing the arbitration comprises arbitrating the data items buffered in the FIFO memories. 15. The method according to claim 14 , wherein a size of each FIFO memory depends on a round-trip delay between the data sources and the destination, plus an arbitration processing time incurred in performing the arbitration. 16. The method according to claim 12 , wherein sending the data items comprises dividing a data item into multiple data chunks, sending the data chunks separately to the destination but sending a single arbitration request for the entire data item. 17. The method according to claim 12 , wherein the data sources comprise input ports of a network switch, and wherein the common destination comprises an output port of the network switch. 18. The method according to claim 12 , wherein the common destination comprises an output port of a Network Interface Card (NIC). 19. The method according to claim 12 , wherein the data sources and the destination are comprised in a single Integrated Circuit (IC). 20. The method according to claim 12 , wherein sending the data items comprises sending some of the data items with respective arbitration requests relating to multiple data items. 21. A network switch, comprising: multiple input ports, which are configured to send to an output port data items together with respective arbitration requests in separate messages, such that the data items are sent to the output port regardless of receiving any response to the respective arbitration requests; and arbitration circuitry, which is configured to receive and buffer the data items, to perform arbitration on the buffered data items responsively to the arbitration requests, and to serve the buffered data items to the output port in accordance with the arbitration, wherein the arbitration circuitry is configured to send to the input ports arbitration grants upon scheduling the respective arbitration requests, and wherein the input ports are configured to send the data items irrespective of the arbitration grants.

Assignees

Inventors

Classifications

  • G06F13/364Primary

    using independent requests or grants, e.g. using separated request and grant lines · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9582440B2 cover?
An apparatus includes multiple data sources and arbitration circuitry. The data sources are configured to send to a common destination data items and respective arbitration requests, such that the data items are sent to the destination regardless of receiving any indication that the data items were served to the destination in response to the respective arbitration requests. The arbitration cir…
Who is the assignee on this patent?
Mellanox Technologies Ltd
What technology area does this patent fall under?
Primary CPC classification G06F13/364. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 28 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).