Round robin arbiter handling slow transaction sources and preventing block

US9280503B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9280503-B2
Application numberUS-201313861696-A
CountryUS
Kind codeB2
Filing dateApr 12, 2013
Priority dateApr 12, 2013
Publication dateMar 8, 2016
Grant dateMar 8, 2016

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.

In an embodiment, an arbiter may implement a deficit-weighted round-robin scheme having a delayed weight-reload mechanism. The delay may be greater than or equal to a ratio of the fabric clock to a slower clock associated with one or more sources that have no transactions but that have unconsumed weights (or another measure of difference in transaction rate). If a transaction is provided from the one or more sources during the delay, the reload of the weights may be prevented. In some embodiments, the arbiter may be augmented to improve usage of the bandwidth on an interface in which some transactions may be limited for a period of time. The arbiter may implement a first pointer that performs round robin arbitration. If the first pointer is indicating a source whose transaction is temporarily blocked, a second pointer may search forward from the current position of the main pointer to locate a non-blocked transaction.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus comprising: a plurality of transaction sources; and a fabric interface circuit coupled to the plurality of transaction sources, wherein a first transaction rate corresponding to a first transaction source of the plurality of transaction sources is limited compared to a second transaction rate of at least one other transaction source of a plurality of transaction sources, and wherein the fabric interface circuit includes an arbiter configured to arbitrate among transactions from the plurality of sources using a deficit-weighted arbitration scheme, and wherein the first transaction rate is limited by one or more attributes of the first transaction source independent of the deficit-weighted arbitration scheme, and wherein the arbiter is configured to delay a reload of deficit weights responsive to receiving a lack of a transaction from the first transaction source and the first transaction source has unconsumed weight, wherein the delay is dependent on a ratio of the second transaction rate to the first transaction rate, and wherein the arbiter is configured to reload the deficit weights at an expiration of the delay in response to not receiving a subsequent transaction from the first transaction source during the delay, and wherein the arbiter is configured to reload the deficit weights at the expiration of the delay even in a case that the first transaction source has unconsumed weight at the expiration of the delay. 2. The apparatus as recited in claim 1 wherein an interface between each of the plurality of transaction sources and the fabric interface circuit is operable at a first clock frequency, and wherein at least the first transaction source is operable at a second clock frequency that is lower than the first clock frequency, and wherein the arbiter is configured to delay the reload responsive to the second clock frequency being lower than the first clock frequency. 3. The apparatus as recited in claim 2 wherein the delay is N clock cycles at the first clock frequency, where N is an integer greater than or equal to a ratio of the first clock frequency to the second clock frequency. 4. The apparatus as recited in claim 1 wherein the delay is sufficient for the subsequent transaction to be transmitted to the fabric interface circuit by the first transaction source. 5. The apparatus as recited in claim 1 wherein the arbiter is configured to prevent the reload responsive to receiving the subsequent transaction from the first transaction source during the delay. 6. The apparatus as recited in claim 1 wherein the arbiter is configured to grant a first transaction from one of the plurality of transaction sources and to update a corresponding deficit weight, and wherein the arbiter is configured to reload the deficit weights without delay responsive to each of the deficit weights having been consumed. 7. The apparatus as recited in claim 1 wherein the arbiter is configured to maintain a first pointer according to a round robin order of the plurality of transaction sources, and wherein the arbiter is configured to determine that a given transaction from a given transaction source that is indicated by the first pointer is temporarily blocked, and wherein the arbiter is configured to maintain a second pointer and to search for an unblocked transaction responsive to the second pointer. 8. The apparatus as recited in claim 7 wherein the arbiter is configured to grant the unblocked transaction and to update the second pointer to indicate a third transaction source that is next to a fourth transaction source in the round robin order, wherein the fourth transaction source has the unblocked transaction. 9. The apparatus as recited in claim 8 wherein the arbiter is configured to maintain the first pointer at the given transaction source. 10. The apparatus as recited in claim 9 wherein the arbiter is configured to grant the given transaction responsive to the given transaction becoming unblocked, and wherein the arbiter is configured to advance the first pointer to a fifth transaction source that is next to the given transaction source in the round robin order responsive to granting the given transaction, and wherein the arbiter is configured to update the second pointer to be equal to the first pointer. 11. A method comprising: detecting, in an arbiter that implements a deficit-weight round robin arbitration scheme, a lack of a transaction from a first transaction source of a plurality of transaction sources, wherein other ones of the plurality of transaction sources have consumed their respective weights in the deficit-weight round robin arbitration scheme; delaying a reload of the respective weights responsive to the detecting for a predetermined number of clock cycles of a first clock supplied to the arbiter, wherein the predetermined number depends on a ratio of a first clock frequency of the first clock to a second clock frequency of a second clock that is supplied to the first transaction source, wherein delaying the reload permits the first transaction source to present a subsequent transaction in a second clock cycle of the second clock that is consecutive to a first clock cycle in which a preceding transaction was presented by the first transaction source without the reload occurring; and reloading the respective weights responsive to an expiration of the delaying without receiving a subsequent transaction from the first transaction source during the delay, wherein the reloading is performed even in a case that the first transaction source has unconsumed weight. 12. The method as recited in claim 11 further comprising: detecting a first transaction from the first transaction source during the N clock cycles; and preventing the reload responsive to detecting the first transaction. 13. The method as recited in claim 11 further comprising: granting a first transaction from one of the plurality of transaction sources; updating the respective weight; and reloading the respective weights without delay responsive to each of the deficit weights having been consumed. 14. The method as recited in claim 11 further comprising: maintaining a first pointer according to a deficit-weighted round robin order of the plurality of transaction sources; determining that a given transaction from a given transaction source of the plurality of transaction sources that is indicated by the first pointer is temporarily blocked; locating an unblocked transaction using a second pointer maintained according to the deficit-weighted round robin order of the plurality of transaction sources; granting the unblocked transaction; and updating the second pointer to indicate a second transaction source that is next to a third transaction source in the deficit-weighted round robin order, wherein the third transaction source has the unblocked transaction. 15. The method as recited in claim 14 further comprising: granting the given transaction responsive to the given transaction becoming unblocked; advancing the first pointer to a fourth transaction source that is next to the given transaction source in the deficit-weighted round robin order responsive to granting the given transaction; and updating the second pointer to be equal to the first pointer responsive to granting the given transaction. 16. The method as recited in claim 11 further comprising: determining an integer N responsive to clock frequencies of clocks provided to the plurality of transaction sources and the arbiter, wherein the predetermined number is at least N; and programming N into a register in the arbiter

Assignees

Inventors

Classifications

  • for access to common bus or bus system · CPC title

  • G06F13/37Primary

    using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing · 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 US9280503B2 cover?
In an embodiment, an arbiter may implement a deficit-weighted round-robin scheme having a delayed weight-reload mechanism. The delay may be greater than or equal to a ratio of the fabric clock to a slower clock associated with one or more sources that have no transactions but that have unconsumed weights (or another measure of difference in transaction rate). If a transaction is provided from t…
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification G06F13/37. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 08 2016 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).