Per-source ordering
AssigneeApple Inc.
InventorsDeniz Balkan, Gurjeet S. Saund
Life of this patent
Estimating the term…
Abstract
Systems and methods for maintaining an order of read and write transactions for each source through a bridge in a bus fabric. The bridge provides a connection from a first bus to a second bus within the bus fabric. The first bus has a single path for read and write transactions and the second bus has separate paths for read and write transactions. The bridge maintains a pair of counters for each source in a SoC to track the numbers of outstanding read and write transactions. The bridge prevents a read transaction from being forwarded to the second bus if the corresponding write counter is non-zero, and the bridge prevents a write transaction from being forwarded to the second bus if the corresponding read counter is non-zero.
Claims24
A bridge circuit comprising control logic, wherein the control logic is configured to:
- maintain a pair of counters for each agent of a plurality of agents, wherein each pair of counters comprises a write counter and a read counter, wherein the write counter tracks a number of outstanding write transactions for a respective agent, and wherein the read counter tracks a number of outstanding read transactions for the respective agent;
- forward a read transaction from a given agent out of the bridge circuit only if the write counter for the given agent is equal to zero;
- and
- forward a write transaction from the given agent out of the bridge circuit only if the read counter for the given agent is equal to zero.
A method comprising:
- maintaining a write counter in a bridge, wherein the write counter tracks a number of outstanding write transactions from a first source;
- maintaining a read counter in the bridge, wherein the read counter tracks a number of outstanding read transactions from the first source;
- preventing a write transaction from the first source from being sent out of the bridge responsive to determining the read counter is non-zero;
- and
- preventing a read transaction from the first source from being sent out of the bridge responsive to determining the write counter is non-zero.
A method comprising:
- receiving a write transaction at a bridge from a first source;
- storing the write transaction in a queue corresponding to the first source;
- checking a read counter corresponding to the first source prior to sending the write transaction out of the bridge, wherein the read counter tracks a number of outstanding read transactions for the first source;
- and
- preventing the write transaction from being sent out of the bridge responsive to determining the read counter is non-zero.
An apparatus comprising:
- two or more agents;
- and
- a bridge coupled to the two or more agents, wherein the bridge comprises control logic, and wherein the control logic is configured to:
- track a number of outstanding write transactions for a first agent;
- track a number of outstanding read transactions for the first agent;
- send a write transaction from the first agent to a second agent responsive to determining the number of outstanding read transactions for the first agent is zero;
- and
- send a read transaction from the first agent to the second agent responsive to determining the number of outstanding write transactions for the first agent is zero.
Dependencies are inferred from the claim text.